Santos의 개발블로그

프로세스 관리 본문

CS(Computer science)/컴퓨터 구조&운영체제

프로세스 관리

Santos 2020. 1. 5. 18:37

작업(Job) / 프로그램

실행할 프로그램과 데이터를 합친 것으로써 컴퓨터 시스템에 실행 요청 전의 상태를 말한다.

 

프로세스(Process)

프로그램 실행을 위해 시스템(커널)에 등록되고 시스템 성능 향상을 위해 커널에 의해 관리되는 상태를 말한다. 각종 자원들을 요청하고 할당을 받을 수 있으며, 실행 중인 프로그램이라고도 불리운다. 

 

자원

커널의 관리하에 프로세스에게 할당되거나 반납되는 수동적인 개체를 말한다. 

 

PCB(Process Control Block)

OS가 프로세스 관리에 필요한 정보들을 저장하는 공간으로써 프로세스가 생성시 동시에 만들어진다. PCB안에는 하나의 프로세스의 정보가 담긴다. 

1. PCB에 저장되는 정보(Process Metadata)

 가. PID(Process Identification Number) 

 나. 스케줄링 정보

 다. 프로세스 상태

 라. 메모리 관리 정보 

 마. 입출력 상태 정보 

 바. Context save area

 사. 계정 정보 

 

2. PCB의 관리 방법

 가. Linked List를 사용하여 관리 

 나. 주소값으로 연결이 이루어진 연결리스트이므로 삽입, 삭제가 용이

 

3. PCB가 필요한 이유 

 CPU에서는 프로세스의 상태에 따라 교체작업이 계속적으로 이루어지는데, 다시 수행 할 대기 중인 프로세스에 관한 값을 PCB에 저장함으로써, 프로세스 관리를 효율적으로 할 수 있게 된다. 

 

프로세스 실행 순서

프로그램 실행 --> 프로세스 생성 --> 프로세스 주소공간에 코드, 데이터, 스택 생성 --> 프로세스 메타데이터들을 PCB에 저장

 

프로세스 상태

1. Created state 

 - Created State -

 가. 작업을 커널에 등록

 나. PCB 할 및 프로세스 생성 

 다. Ready 또는 Suspended Ready 

 

2. Ready state 

- Ready State -

 가. 프로세서 외에 다른 모든 자원을 할당 받은 상태 

 나. 프로세서 할당 대기 상태 

 다. 즉시 실행 가능 상태

 

3. Running state 

- Running  state -

 가. 프로세서와 필요한 자원을 모두 할당 받은 상태 

  1) Preemption 

    - Running state ----> Ready state 

    - 프로세서 스케줄링 -> Time out, Priority Changes

 

  2) Block/Sleep

   - Running state -----> Asleep state 

   - I/O 등 외부에서 자원 할당 요청이 되었을 때 Interrupt 발생 

 

4. Blocked/Asleep state 

- Blocked/Asleep state -

 가. 프로세서 외에 다른 자원을 기다리는 상태

  1) Wake up 

   - Asleep state ----> Ready state 

 

5. Suspended state

- Suspended state -

 가. 메모리를 할당 받지 못한 상태 

  1) 메모리 이미지를 Swap device( ex) 하드디스크 )에 보관 

 

6. Terminated/Zombie state

- Terminated/Zombie state -

 가. 프로세스 수행이 끝난 상태 

 나. 모든 자원을 반납 후 커널 내에 일부 PCB정보만 남아 있는 상태

 

프로세스의 상태 정리


<참고자료>

 

https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN

 

<Computer structures> chapter 6 프로세서 관리 end>


 

'CS(Computer science) > 컴퓨터 구조&운영체제' 카테고리의 다른 글

스레드  (0) 2020.01.06
프로세스 스케줄링  (0) 2020.01.06
운영체제  (0) 2020.01.04
시스템 버스  (0) 2020.01.02
하드웨어(Hardware)  (0) 2020.01.02
Comments