일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Algorithm
- 자바
- 백준
- 그레이들
- Javascript
- network
- 안드로이드
- 다이나믹 프로그래밍
- Data Structure
- git
- java
- vscode
- Database
- react
- Graph
- frontend
- CS
- DP
- LeetCode
- 리트코드
- 프로그래머스
- 알고리즘
- Redux
- DFS
- BFS
- 동적 계획법
- Python
- TypeScript
- db
- VIM
Archives
- Today
- Total
늘 겸손하게
CS - Operating System - 프로세스와 스레드 본문
[ 프로세스(Process)란? ]
컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말합니다.
프로그램이란 하드 디스크에 저장되어 있는 컴퓨터 실행 코드를 말하고 프로그램이 메모리 영역을 할당받고 cpu에 의해 동작되면 프로세스라고 말합니다.
특징
- 프로세스는 각각 독립된 메모리 영역(Code, Data, Heap, Stack의 구조)를 할당받는다.
- 기본적으로 프로세스당 최소 1개의 스레드(메인스레드)를 가지고 있다
- 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다
- 한 프로세스가 다른 프로세스의 자원에 접근하려면 IPC(Inter-process communication)을 사용해야한다
[ 스레드 (Thread)란? ]
프로세스내에서 실제로 작업을 수행하는 단위를 말합니다. 일반적으로 한 프로세스는 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 여러개의 스레드를 동시에 실행할 수 있습니다. 이 방식을 멀티스레딩(multithreading)이라고 합니다.
특징
- 스레드는 프로세스로부터 각각의 Stack만 할당받고 나머지 자원은 공유한다 (Code, Data, Heap은 공유)
- 스레드는 프로세스 내의 주소공간이나 자원들을 같은 프로세스 내부의 스레드끼리 공유한다
- 각각의 스레드는 별도의 레지스터와 스택을 갖고 있지만, 힙 메모리는 서로 읽고 쓸 수 있다
- 한 스레드가 프로세스 자원을 변경하면, 같은 프로세스 내의 다른 스레드도 변경된 자원을 즉시 볼 수 있다
[ 출처 ]
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4
https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)
'Computer Science > Operating System' 카테고리의 다른 글
CS - Operating System - PCB & Context Switching (0) | 2022.11.23 |
---|---|
CS - Operating System - 시스템 콜 (System Call) (0) | 2022.11.23 |
CS - Operating System - 인터럽트 (Interrupt) (0) | 2022.11.23 |
CS - Operating System - 프로세스의 주소 공간 (0) | 2022.11.23 |
CS - Operating System - 운영체제 (0) | 2022.11.23 |