ecsimsw

Process / Thread 본문

Process / Thread

JinHwan Kim 2019. 9. 26. 13:35

Process creation / termination

 

   - 프로세스는 프로세스에 의해 생성된다. 

 

   - 운영체제가 init (PID =1) 프로세스를 만들어두고, 그 프로세스가 자식의 자식을 낳아 트리를 형성한다.

 

   ** 모든 프로세스는 고유의 ID (PID)를 갖는다.

 

   fork : 새로운 프로세스 생성 

   

   exec : 메모리 공간을 새로운 프로그램으로 교체

   

   exit : 프로세스 종료

 

Zombie process / Orphan process 

 

   Orphan process : 부모 프로세스와 자식 프로세스는 항상 짝을 이뤄야한다. 부모 프로세스가 자식 프로세스보다 먼저 소멸할 경우 자식은 부모를 잃고 orphan process가 된다.

 

   - orphan phan process는 kernel에 의해 init 프로세스를 부모 프로세스로 갖게 된다. 즉 종료되는 프로세스가 생길 경우 해당 프로세스의 자식 프로세스가 있다면 이 자식 프로세스의 PPID (부모 프로세스 ID)를 1로 바꾼다.

 

   Zombie process : 프로세스는 종료 시 부모 프로세스에 종료 정보를 보내고, 부모는 프로세스 테이블에서 해당 프로세스를 지워야한다. 이때, 자식 프로세스가 자원을 이미 반납했지만 부모에게는 정보가 전달되지 않아 프로세스 테이블에만 남아있는 프로세스가 있을 수 있다. 이것을 zombie process라고 한다. 

 

   - zombie process는 부모 프로세스가 wait 과 같은 자식 프로세스의 상태를 확인하는 시스템 콜을 통해 처리한다. 

 

Thread 

 

   - 현대식 컴퓨터에는 Context 단위가 프로세스가 아닌 스레드 단위로 이뤄진다. 스레드는 프로세스 내에서 실행되는 세부 작업 단위로, 한 프로세스 내에서 여러 스레드가 파생된다.

 

   - 한 프로세스 내에서 파생된 스레드는 Code와 Data 공간을 공유한다. 프로세스 자체에서 다루고 있는 File, I/O devices를 공유하고, switching에 필요한 자원, stact 영역, pc / sp/ register 값은 공유하지 않는다.

   

'Computer Science > Operating system' 카테고리의 다른 글

Semaphore  (0) 2019.10.02
Process Synchronization  (0) 2019.09.26
Cpu scheduling  (0) 2019.09.24
Process Management / job queue  (0) 2019.09.23
Interrupt  (0) 2019.09.23
Comments