오래 못 할 짓 하지 않기

[ 운영체제 ] 4. 프로세스 상태 및 계층구조 본문

3학년 1학기/운영체제 (OS)

[ 운영체제 ] 4. 프로세스 상태 및 계층구조

쫑알bot 2024. 1. 4. 14:22
728x90

이런 거에 대해 알아볼 예정

 


프로세스 상태

프로세스는 5가지 상태로 나눌 수 있다

생성 / 준비 / 실행 / 대기 / 종료

 

● 생성 상태

- 이제 막 메모리에 적재되어 PCB를 할당받은 상태

- 준비가 완료되면 준비 상태로 넘어감

 

 

● 준비 상태

- CPU를 할당받아 실행할 수 있지만, 자신의 차례를 기다리는 상태

- 자신의 차례가 되면 실행상태로 (= 디스패치)

 

 

● 실행 상태

- CPU를 할당받아 실행 중인 상태

- 할당된 시간을 다 사용했을 때 (= Timer Interrupt 발생 시) 준비 상태로 돌아간다.

- 실행 도중 입출력장치를 사용하면

   입출력 작업이 끝날 때까지(= 입출력 완료 Interrupt를 받을 때까지) 대기 상태

 

 

● 대기 상태

- 프로세스가 실행 도중에 입출력 장치를 사용하는 경우

- 입출력 작업은 CPU에 비해 느리기 때문에, 대기 상태로 한다.

- 입출력 작업이 끝나면 준비 상태

 

 

 

● 종료 상태

- 프로세스가 종료된 상태

- PCB, 프로세스 메모리 영역 정리

 

 


프로세스 계층 구조

프로세스 실행 도중 다른 프로세스 생성 가능

 

부모 프로세스 = 새 프로세스를 생성한 프로세스

자식 프로세스 = 부모 프로세스에 의해 생성된 프로세스 

 

+자식 프로세스가 또 다른 자식 프로세스를 만들 수 있음.

10개의 프로세스가 동작하고 있다.

 

[ 특징 ]

부모 프로세스와 자식 프로세스는 별개의 프로세스

따라서, 각기 다른 PID를 가진다.

 

 

예제

최초의 프로세스는 로그인 프로세스라는 자식 프로세스를 생성함

▶ 로그인 프로세스는 bash 프로세스라는 자식 프로세스를 생성함

...

 

이런 거 확인하는 법

pstree   // 프로세스 트리 명령어

 


프로세스 생성 기법 (윈도우와 관련 X)

부모 프로세스는 자식 프로세스를 어떻게 만들고

자식 프로세스는 어떻게 자신만의 코드를 실행할까?

 

비유 : 복제 / 옷 갈아입기  과정을 거쳐서 생성 및 실행된다.

 

● 부모 프로세스는 fork 시스템 호출을 통해 자신의 복사본을 자식 프로세스로 생성

 

 

복사본이 생성된다.

하지만 엄연히 별개의 프로세스이며, PID적재된 MEM의 위치는 다르다.

 

 

● 자식 프로세스는 exec 시스템 호출을 통해 자신의 메모리 공간을 다른 프로그램으로 교체

 

 - 메모리 공간을 새로운 프로그램으로 덮어쓰기

 - 코드/데이터 영역은 실행할 프로그램 내용으로 바뀌고,

           나머지 영역은 초기화

 

 

(출처)

유튜브 한빛미디어