본문 바로가기
CS(Computer Science)/운영체제

[운영체제] 프로세스

by whdgus928 2023. 1. 26.

프로세스의 문맥

1. cpu 수행 상태를 나타내는 하드웨어 문맥

2. 프로세스의 주소 공간

  - code, data, stack

3. 프로세스 관련 커널 자료 구조

  - pcb

  - kernel stack

 

※ 커널스택을 프로세스별로 별도로 두고 있다. 

 

 

 

 

PCB(Process Control Block): 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보

(1) os가 관리상 사용하는 정보

(2) cpu 수행 관련 하드웨어 값

(3) 메모리 관련

(4) 파일 관련

 

 

 

 

 

 

 


프로세스 상태

1. Running: cpu 잡고 instruction 수행 중인 상태

2. Ready: cpu 기다리는 상태

3. Blocked: cpu 주어도 당장 instruction을 수행할 수 없는 상태

  - process 자신이 요청한 event가 즉시 만족되지 않아 이를 기다리는 상태

  - ex) 디스크에서 file을 읽어와야 하는 경우

4. Suspended

  - 외부적인 이유로 프로세스의 수행이 정지된 상태

  - 프로세스는 통째로 디스크에 swap out 된다

  - 외부에서 resume해 주어야 active

※ New: 프로세스가 생성중인 상태

    Terminated: 수행이 끝난 상태

 

※ 프로세스 자기 코드 실행하다가 시스템 콜하면  커널모드에서 러닝하고 있다


문맥교환(Context Switch): cpu를 한 프로세스에서 다른 프로세스로 넘겨주는 과정

  - cpu를 내어주는 프로세스의 상태를 PCB에 저장

  - cpu를 새롭게 얻는 프로세스의 상태를 PCB에서 불러옴

  - time 인터러트나 입출력 시스템 콜에서 주로 일어남

 

스케줄러

1. 장기 스케줄러

  - 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정

  - 프로세스에 메모리를 주는 문제

  - time sharing system에는 보통 없음(무조건 ready)

2. 단기 스케줄러(cpu)

  - 프로세스에 cpu를 주는 문제

  - ms 단위, 충분히 빨라야 함

3. 중기 스케줄러

  - 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄

 

반응형

댓글