제이슨의 개발이야기

프로세스 상태와 계층구조 본문

운영체제

프로세스 상태와 계층구조

제이쓰은 2022. 10. 25. 17:39
728x90
반응형

프로세스 상태 다이어그램

안녕하세요

 

오늘은 프로세스 상태 계층 구조에 대해서 공부하려고 합니다!

 

그동안 운영체제 공부를 하셨다면 프로세스는 다양한 상태를 거치면서 실행된다는 것을 알고 게실겁니다!

 

생성단계

프로세스를 생성 중인 상태를 생성 상태(New)라고 합니다 이제 막 메모리에 적재되어 PCB를 할당받은 상태를 말합니다

생성상태를 거쳐 실행할 준비가 완료된 프로세스는 곧바로 실행되지 않고 준비 상태가 되어 CPU의 할당을 기다립니다

 

준비단계

준비상태는 당장이라도 CPU를 할당받아 실행할 수 있지만 아직 자신의 차례가 아니기에 기다리는 상태입니다.

(준비상태에서 실행상태로 전환되는 것을 디스패치(dispatch)라고 합니다

 

실행상태

실행상태는 CPU를 할당받아 실행중인 상태를 의미합니다 

이때 프로세스가 할당된 시간을 모두 사용하면 타이머 인터럽트(timer interupt)가 발생하여 다시 준비상태로 돌아가서 자신의 차례를 기다립니다 그리고 실행 도중 입출력장치를 사용해야 할때 (예를 들면 하드디스크에 데이터 저장 등) 대기 상태로 들어가서 입출력 요청이 완료될때 까지 대기상태가 됩니다

 

대기상태

프로세스는 실행 도중 입출력장치를 사용하는 경우가 있습니다 입출력 장치의 요청이 완료될때 까지 대기상태가 되고 완료가 될 경우 

준비 상태로 바뀝니다

 


다음은 프로세스 계층 구조에 대한 이야기 입니다!

 

시스템 호출 공부했을 때 자식 프로세스를 생성하면 호출이 fork() 라고 배웠습니다 

 

이 부모 프로세스와 자식프로세스와의 관계와 컴퓨터를 최초에 켯을때 부터 실행되는 프로세스는 어떤 식으로 실행되는지 공부해봅시다

 

프로세스는 자신을 나타내는 PID 를 가지고 있습니다 모든 프로세스가 PID를 가지고 있습니다

 

부모 프로세스와 자식 프로세스는 각기 다른 PID를 가지고 있는대 자식 프로세스는 부모의 PIDPPID에 가지고 있습니다 

 

그래서 프로세스의 PPID를 보면 어떤 프로세스에서 생성된 프로세스인지 알 수 있습니다 

 

많은 운영체제들은 프로세스가 자식 프로세스를 낳는 계층 구조를 가지고 있습니다 

최초의 프로세스 하나가 있으면 그 최초의 프로세스로 부터 자식 프로세스를 낳으면서 우리가 컴퓨터를 통해서 프로그램을 사용하고 있는것입니다!

 

프로세스의 계층 구조

이런식으로 컴퓨터를 키는 순간 최초의 프로세스 하나가 자식 프로세스를 낳으면서 여러 프로세스들이 생성되고 실행되고있습니다!!

728x90
반응형