1 분 소요

프로세스란?

메모리에 적재되어 CPU에서 실행중인 프로그램을 말한다.

프로세스 상태

  1. New : 프로세스가 생성되는 중

  2. Running : CPU에서 명령이 실행되는 중

  3. Waiting : 프로세스가 어떤 event(입출력 완료, signal 수신)가 발생하기를 기다리는 중

  4. Ready : 프로세스가 CPU에 할당되어 실행되기를 기다리는 중

  5. Terminated : 프로세스 실행 종료

컴퓨터 하드웨어인 CPU는 여러개의 프로세스를 동시에 실행할 수 없다. 언제나 한순간에 오직 1개의 프로세스를 수행한다. 다만, 운영체제의 멀티태스킹(Multi tasking)과 스케줄링 기법으로 여러개의 프로세스가 동시에 실행되는 것처럼 보일뿐이다.

img

프로세스가 생성되면 Ready상태에 있다. 운영체제의 스케줄링 기법에 따라 그 중 1개만 Running 상태로 바뀔 수 있다.

스케줄러(Scheduler)

여러개의 프로그램을 동시에 실행되는 것처럼 보이게 하기 위해 어떤 규칙을 부여하는 것

Running 상태의 프로세스는 I/O가 발생하면 Waiting 상태가 되며 I/O 이벤트 완료 인터럽트가 발생되면 다시 Ready 상태로 돌아가 스케줄러에 의한 실행을 기다린다.

1ms ~ 10ms 마다 타이머 인터럽트가 발생하여 운영체제는 현재 실행중인 프로세스를 강제로 중지를 시킨 뒤 Ready 상태로 빼놓는다. 그리고 Ready 상태에 있는 다른 프로세스를 실행 시킨다. 이 과정은 매우 빠르게 상태 변화를 일으키며 반복되기 때문에 마치 여러개의 프로세스가 1개의 CPU를 가지고 동시에 실행되는 것처럼 보인다.

프로세스 제어 블록(Process Control Block, PCB)

프로세스의 실행을 제어하는데 사용하기 위한 자료구조로, 하나의 프로세스마다 한개의 이 자료구조가 만들어진다.

운영체제는 프로세스가 관리 되기 위해 필요한 정보(PCB) 를 커널 영역에 저장하고 있다. 때문에 프로세스의 상태가 계속 변하더라도 PCB를 이용해 해당 프로세스가 연속성 있게 실행되는 것처럼 보인다.

Context Switch

쉽게 말해 프로세스 교체를 의미한다.

스케줄러가 CPU에 다른 프로세스를 할당하려고 할 때, 현재 프로세스의 Context를 PCB에 저장하고, 새로운 프로세스의 PCB로 교체한다.

Overhead

프로세스 교체가 빨라지면 동시에 많은 프로그램을 실행할 수 있는 장점이 있지만, CPU 입장에서는 많은 메모리를 읽고, 저장하는 시간이 필요하게 된다. 이러한 PCB의 저장과 복구 과정이 일어나는 동안 프로세스의 유효한 동작은 중지된다. 즉, 프로그램의 순수한 사용 시간 외에 문맥교환을 위한 시간이 발생하게 된다.

따라서 overhead를 최소화 하면서 프로세스를 많이 실행하는 것이 최적화에 중요한 요소이다.

img

P0의 Context가 PCB에 저장되고, P1의 PCB에서 Context가 로드되어 CPU나 필요한 메모리 공간에 올라가게 된다.

PCB의 저장과 복구 과정에서 idle이 발생(overhead)하게 되고, 이 시간 동안 P1의 유효한 동작은 중지된다.

출처

https://sweetday-alice.tistory.com/167

태그: ,

카테고리:

업데이트:

댓글남기기