본문 바로가기
운영체제

운영체제 프로세스의 상태

by PudgeKim 2020. 11. 21.

프로세스란?

우리의 프로그램들은 평소에 보조기억장치(HDD, SSD..)에 저장되어있다. 프로그램들을 사용하기 위해서는 메모리에 올려야 하는데 프로그램들이 메모리에 올라가 있으면 프로세스라고 한다.

하나의 응용 프로그램은 여러개의 프로세스로 이루어질 수도 있다.

 

프로세스의 상태

프로세스의 상태는 아래와 같이 5가지로 나누어질 수 있다.

- new (프로세스가 생성)
- exit (프로세스가 종료)
- ready (프로세스가 CPU에 의해 실행되기전 대기상태)
- running (프로세스가 CPU에 의해 실행되고 있는 상태)
- block ( 특정 이벤트가 발생하여 대기상태)

이 5개 중 ready, running, block에 대해 조금 더 자세히 알아보자.

현재 어떤 프로세스가 cpu에 의해 실행되고 있는 running상태에 있다고 해보자.

실행중간에 파일 읽기 요청이 들어오면 block상태에 돌입하게 된다. (이 때 ready상태에 있는 프로세스들 중에 하나가 running 상태가 된다.)

이제 파일 읽기가 완료되면 그 프로세스는 바로 running 상태로 가는게 아니라 ready상태로 가게되고 스케쥴러는 정해진 알고리즘에 의해 ready 상태에 있는 프로세스들 중 running 상태로 갈 프로세스를 선택하게 된다.

그러나 파일 읽기 요청 등이 아니더라도 running 상태를 벗어날 수 있다.
최근의 컴퓨터들은 프로세스 하나를 끝까지 완료하고 다음 프로세스를 실행시키는게 아니라 각 프로세스들을 일정시간 동안 번갈아가면서 실행시킨다. (우리의 눈에는 동시에 실행되는 것처럼 보인다.)

그러므로 파일읽기요청 같은 요청이 없어도 일정시간이 지나면 running 상태에서 ready상태로 가고 ready상태에 있는 프로세스들 중 스케쥴러의 선택을 받은 프로세스가 running 상태가 된다.