이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다.
Proces는 연산할 것에 대한 관리의 단위이다.
그 단위는 OS가 관리한다.
연산은 연속적이며, Process에는 흐름이 기본적으로 1개 있다.
한 Process내부에 흐름이 n개 있을 수 있다.
동시에 각자 작용한다. 이때의 흐름을 Thread라고 한다.
이 흐름이 여러개가 되면 Multi-threading
OS는 가상 메모리 공간을 프로세스에게 할당한다.
Process(작업)는 최소 1개의 Thread 존재
OS는 Virtual Memory(제한된 공간)를 Process에게 할당한다.
Process에 속한 모든 Thread는 Process의 Virtual Memory로 공간 제약 된다.
Multi-Threading > 동시성 > 동기화
Process : 한 가구
행정상 집(Virtual memory)이라는 공간이 부여된다.
집에 있는 방(Thread Local Storage | Stack)은 세대원(Thread)이 각자 사용.
거실, 부엌, 화장실은 공동(Heap)으로 사용.
Thread마다 각자의 고유한 TLS를 가지고 있다.
Thread의 영역은 OS가 제공한 Virtual Memory공간으로 한정된다.
왜 Thread로 나눌까? Process를 여러번 실행시키면 되지 않을까?
Virtual Memory는 Process별로 할당된다.
즉, Process를 여러개로 만들면 자원이 낭비된다.
Thread를 여러개 만들면 V-M를 공유하여 자원을 절약할 수 있다.
운영체제의 설계철학에 따라 다르다.
Thread 위주 정책 > 윈도우
Process 위주 정책 > Linux
긴 글 읽어주셔서 감사드립니다.
22.12.15
'TIL (Today I Learned) > 컴퓨터 시스템(CS)' 카테고리의 다른 글
[CS] Process Scheduler #1 (1) | 2022.12.16 |
---|---|
[CS] 스레드 관리 (0) | 2022.12.15 |
[CS] 표준 입출력, File offset & File pointerIO #5 (0) | 2022.12.14 |
[CS] 표준 입출력, Standard IO #4 (0) | 2022.12.14 |
[CS] 표준 입출력, Standard IO #3 (1) | 2022.12.14 |
댓글