농장/독&필 <쉽게 배우는 운영체제>

3-1 프로세스 개요

귤발자 2021. 8. 5. 22:46
728x90
반응형

프로세스란?

프로그램 = 정적인 상태, 저장장치에 위치

프로세스 = 컴퓨터 시스템의 작업 단위(Task) = 동적인 상태, 실행을 위해 메모리에 위치

작성한 프로그램을 실행하면, 프로세스가 된다.

<프로세스 생성 과정>

  1. 프로그램이 메모리로 로드된다.
  2. 프로세스 제어 블록(PCB)을 생성한다.
    : PCB가 있어야 프로그램을 프로세스로 전환할 수 있으며, 프로세스를 처리하는데 필요한 정보들을 가지고 있다.

운영체제 또한 프로그램이기에 부팅과정을 통해 프로세스 형태로 실행된다. 때문에 컴퓨터에선 운영체제의 커널 프로세스(kerner process), 일반 사용자의 사용자 프로세스(user process)가 있다.

 

 

프로세스의 상태

일괄 작업 시스템의 상태 변화: 생성(create) >> 실행(run) >> 완료(terminate)

오늘 날 사용되는 시분할 시스템의 프로세스 상태는 다음과 같다.

활성 상태 

  • 생성(create): 프로세스가 메모리에 올라와 실행 준비를 완료한 상태로, 프로세스 제어 블록이 생성된다.
  • 준비(ready): 생성된 프로세스가 CPU를 얻을 때(본인의 작업 차례)까지 기다린다. CPU 스케줄러가 다음에 실행할 프로세스를 선정하여 실행상태로 바꾸는데, 이 작업을 디스패치(dispatch)라고 한다.
  • 실행(running, execute): CPU를 얻어 작업을 수행한다. 프로세스에 배당된 작업 시간을 타임 슬라이스 또는 타임 퀸텀이라고 한다. 이 시간 안에 프로세스가 완료되지 않을 경우 타임아웃(time out, 인터럽트) 명령으로 준비상태로 돌아가 다시 돌아올 순서를 기다린다. 이때 타임아웃 인터럽트는 클록이 CPU에게 전달한다.
  • 대기(blocking, wait): 실행 상태의 프로세스가 입출력을 요청하면 입출력이 완료될 때까지 대기 상태에 진입해 기다린다. 이때 프로세스는 입출력장치별로 마련된 큐에서 기다린다. 입출력 완료 후엔 wakeup 명령을 통해 프로세스가 준비 상태로 이동한다.
  • 완료(terminate): 실행 중인 프로세스가 작업을 마친 상태이다. 프로세스 정상 종료이므로 프로세스 제어 블록이 폐기된다. exit() 명령을 사용한다.
코어 덤프(core dump): 오류나 다른 프로세스에 의한 강제 종료(abort)를 만났을 때, 디버깅을 위해 강제 종료 직전의 메모리 상태를 저장장치로 옮기는 것.
728x90
반응형