-
[OS] Process ManagementComputer Science/Operation System 2020. 4. 9. 12:49
✔️ 프로세스의 생성
1️⃣ 부모 프로세스가 자식 프로세스를 생성한다.
2️⃣ 프로세스는 트리구조를(계층 구조) 형성한다.
3️⃣ 프로세스는 자원을 필요로 한다.
◾ OS로부터 자원을 할당 받는다.
◾ 부모 프로세스의 자원을 공유한다.
4️⃣ 자원의 공유
◾ 부모와 자식이 모든 자원을 공유하는 모델
◾ 일부를 공유하는 모델
◾ 전혀 공유하지 않는 모델 (일반적임)
5️⃣ 프로세스 수행(Excution)
◾ 부모와 자식이 공존하며 수행되는 모델
◾ 자식이 종료될 때까지 부모가 기다리는(wait, blocked)모델
6️⃣ 프로세스 주소 공간
◾ 자신은 부모의 공간을 복사한다. (Context까지 다 복사)
◾ 자식은 그 공간에 새로운 프로그램을 올린다.
◾ 유닉스에서는 fork() 시스템 콜로 부모를 복사하고 주소공간을 할당한다. 그 다음 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올린다.
✔️ 프로세스와 관련한 시스템콜
◾ fork() : create a child(copy)
◾ exec() : overlay new image
◾ wait() : sleep until child is done
◾ exit() : frees all the resources, notify parent
✔️ IPC ( Inter Process Communication)
1️⃣ 독립적 프로세스
◾ 프로세스는 각자의 주소 공간을 가지고 수행되므로 원칙적으로 하나의 프로세스는 다른 프로세스의 수행에 영향을 미치지 못함
2️⃣ 협력 프로세스
◾ 프로세스 협력 메커니즘을 통해 하나의 프로세스가 다른 프로세스 수행에 영향을 미칠 수 있음
3️⃣ 프로세스 간 협력 메커니즘 ( IPC )
◾ 메세지를 전달하는 방법 ( message passing ) : 커널을 통해 메세지 전달( Direct Communication, Indirect Communication 등이 있다. )
◾ 주소 공간을 공유하는 방법 ( shared memory ) : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 shared memory 메커니즘이 있다.
◾ 쓰레드(thread)는 사실상 하나의 프로세스이므로 프로세스 간 협력으로 보기는 어렵지만 process를 구성하는 thread들 간에는 주소 공간을 공유하므로 협력이 가능하다.
'Computer Science > Operation System' 카테고리의 다른 글
[OS] DeadLock (0) 2020.04.23 [OS] Process Synchronization (0) 2020.04.14 [OS] CPU Scheduling (0) 2020.04.10 [OS] Process / Thread (0) 2020.04.09 [OS] Operating System Introduction (0) 2020.04.09