Process
프로세스는 관리의 "단위" 이다. 이때, 관리의 주체는 "OS"가 된다.
프로세스가 존재하면 최소 한개의 스레드도 존재하는데, 프로세스 안에 수많은 스레드가 존재한다고 이론적으로 접근할 수 있지만 사실 프로세스 역시 한개의 메인 스레드라고 한다.
한개의 프로세스 내부에 단일 ~ 여러 스레드가 존재할 수 있고 이들은 "동시에" "각자" 작업한다
연산
프로세스가 뭐하는 애냐?! 하고 묻는다면 "연산"하는 애라고 보면 된다. 프로세스는 연속적으로 연산처리를 하는데 이때 스레드를 사용해서 연산하는 것,,, 이때, OS가 연산에 필요한 CPU와 연습장 (RAM) 을 제공해주는 것이다.
Process Flow
큰 그림 : Process -> 연산 -> 연산을 위해서는 하드웨어의 CPU와 RAM을 사용해야함 (resource) -> OS가 VM 할당
CPU에는 여러 코어가 있는데 OS에서 어떤 core를 사용할 건지 (CPU), 어느 RAM을 사용할 건지 (주로 페이지 단위로 자름) 결정해준다. CPU가 연산처리를 해준다면 RAM은 연습장이다..*참고로 이 core가 i-core 9 할때 그 코어임
Virtual Memory
이때, CPU와 램을 직접적으로 사용하게끔 이어주진 않는다. CPU는 직접 사용하게끔도 하지만 RAM은 절대 불가,,
대신 Virtual Memory(VM)이라는 곳을 사용한다.
- RAM : 1차 메모리
- HDD : 2차 메모리
- Virtual Memory : 1차 + 2차 메모리
VM은 연속된 메모리로 1+2차 메모리가 전부 나열되어있는 메모리 공간이라고 생각하면 된다. 이때, 프로세스가 VM의 한 공간을 할당받았는데 알고보니 HDD공간일 수도 있다 (허위매물 ㅎㄷㄷ 배정받고났는데 겁나 느린 상황.. 그래도 아무것도 없는것보단 낫자너..? 하는 심정으로 할당해준다) 아무래도 연속적으로 여러 업무를 처리하려다보니까 이렇게 허위매물도 올려놓은게 아닐까..?한다.
정리
- 프로세스(작업)은 최소 한개의 스레드를 갖는다.
- 스레드는 연산하는 놈임
- OS는 Virtual Memory를 프로세스에게 할당한다
- 따라서, 프로세스에 속한 모든 스레드(연산의 주체)는 프로세스의 VM으로 공간이 제한되어있다.
Process and Thread
집 : 프로세스 -> 프로세스에 할당된 VM 만큼의 크기를 갖는다
방 : 스레드 -> 스레드 마다 고유 Thread Local Storage를 가지며 스레드 마다 스택으로 분리됌
거실 : Heap 영역
Reference
'STUDY > OS' 카테고리의 다른 글
03. CPU의 예측 (0) | 2022.12.01 |
---|---|
01. Kernel (0) | 2022.11.30 |
00. Operating System Concept (0) | 2022.11.30 |