[운영체제] 프로세스

su_y2on·2022년 9월 8일
0

CS

목록 보기
2/9
post-thumbnail

1일차 : 프로세스 관리


프로세스

프로세스는 메모리를 할당받고 커널에 등록되어 커널의 관리를 받는 작업(프로그램 + 데이터)입니다. 즉 실행중인 프로그램이 프로세스입니다. 따라서 커널에 등록된 프로세스는 각종 자원을 요청하고 할당받을 수 있으며 PCB(프로세스 관리 블록)을 갖게 됩니다.

자원

자원은 크게 HW와 SW로 나뉘며 커널의 관리하에 프로세스에 할당되고 반납됩니다.




프로세스의 상태

Created

프로그램이 메모리에 올라가 PCB를 할당받으면서 프로세스가 생성됩니다

Ready

이제 CPU의 할당을 기다리는 상태가 됩니다. Ready는 CPU를 제외한 나머지 모든 자원이 할당되어 CPU만 할당되면 실행할 수 있는 상태를 뜻합니다.

Running

프로세스가 실행할 수 있는 모든 자원이 충족되면 Running상태가 됩니다

Block/Sleep

I/O등 자원 할당이 필요한 상태가 되면 머물게 되는 상태입니다. 해당자원이 충족될 때까지 실행을 먼추고 기다립니다. 만약 요청한 자원이 다시 충족되면 CPU를 할당받기위해 Ready상태로 갑니다

Suspended

Ready나 Block상태에서 메모리를 빼앗긴 상태입니다. 이때 Memory Image를 Swap Device에 보관해놓고 다시 메모리를 할당받으면 복구합니다.

Terminated

프로세스의 수행이 끝이난 상태입니다. 모든 자원을 반납하고 커널에서 PCB의 정보를 수집합니다.




Context Switching (문맥교환)

context(문맥)

프로세스와 관련된 정보들을 의미하며 점유하고있던 CPU안에 레지스터에 저장된 정보인 register context와 메모리안에 저장된 정보인 memory context(code, data, PCB..)로 나뉩니다.

context saving

register context를 메모리에 저장하는 과정입니다

context restoring

저장해 놓았던 register context다시 복구하는 과정입니다

context switching

실행중이었던 프로세스의 context를 저장하고 실행 할 프로세스의 context를 복구하는 작업이며 비용이 따르고 OS에 성능에 영향을 주는 요소입니다.

0개의 댓글