시스템 프로그래밍

5-1. 프로세스의 생성과 소멸

CalebHong 2022. 5. 12. 11:15

프로세스의 이해

* 프로세스란?

 - 메인 메모리로 이동하여 실행 중인 프로그램? → 일반적인 정의

 

프로세스 구체적인 이해

* 프로세스의 범위

 - 메모리 구조 + 레지스터 Set

 - 프로세스 별 독립적인 대상은 프로세스의 범주에 포함시킬 수 있음

Code 영역 명령어
(Instruction Code)
Data 영역 전역변수
Static 변수
Heap 영역 프로그래머 할당
Stack 영역 지역변수
전달인자 정보

cf) Context Switching : A프로세스와 B프로세서가 함께 실행되어 질 때, 레지스터 정보(레지스터 Set)는 프로세스에 따라서 저장&불러오기를 하여 레지스터를 사용함.

이는 1초에 수십번 이뤄져 프로세스가 동시 진행되도록 함.

프로세스마다 레지스터 Set이 할당되어 레지스터를 사용.

 

프로세스 스케줄러

- 소프트웨어적으로 구현되어 있는, Windows 운영체제에서 제공해주는 장치(Block)

 

* 프로세스 스케줄러 기능

 - 둘 이상의 프로세스가 적절히 실행되도록 컨트롤 프로세스

 

* 스케줄링 방법

 - 스케줄링 알고리즘에 따라 다양함

 - Ready 상태 / Running 상태를 결정하여 프로세스를 관리

 

프로세스의 상태

Blocked 상태는 I/O 연산 중인 프로세스를 잠시 두는 곳.

I/O 연산이 끝나면 다시 Ready상태로 이동함.

다른 프로세스에게 양보하기 위해 Running에서 Ready 상태로 오게 됨.

 

Context Switching

 - CPU의 레지스터는 현재 Running 상태의 프로세스의 정보로 채워져 있음.

이 때 Ready 상태의 프로세스가 Running 상태가 되려고 할 때, 메모리에 현재 Running 상태의 프로세스의 레지스터 Set을 저장하고, 다시 메모리에서 Ready 상태의 프로세스를 가져와 레지스터에 채워놓음으로써 프로세스 변경할 준비가 됨