이숭간 공부기록

프로세스 상태도 _ Five-state 본문

CS공부/운영체제

프로세스 상태도 _ Five-state

이숭간 2021. 4. 10. 23:16
728x90

jhnyang.tistory.com/7

 

[운영체제]프로세스 상태(Process State-ready, waiting etc)

프로세스라고 하는 것은 상태(state)를 가지고 있습니다. 이번에는 그 프로세스 상태에 대해서 설명해보려고 합니다 프로세스 상태 - new, ready, running, waiting, terminated 프로그램을 하나를 실행시키

jhnyang.tistory.com

프로세스는 실행되면서 매 순간 상태가 변한다. 이 상태를 정의하는 이름들은 OS종류에 따라 다르지만, 대부분 OS에서 같은 개념을 갖는다.

이를 보통 Five-state라 한다.

 

1. new : 프로세스가 생성중

프로세스가 생성되었지만 아직 OS에 의해 승인받지 못한 상태

 

2. ready : 프로세스가 CPU에 할당되기를 기다림, running할 준비가 된상태 

CPU를 제외한 다른 자원이 준비완료된 상태

보조기억장치(하드웨어) 에 있는 프로그램을 실행시켜 메모리에 로드된 상태

 

3. running : 명령어들이 실행중

프로세스가 CPU를 할당받아 실제로 프로세스가 수행되고 있는 상태

 

4. waiting : 프로세스가 어떤 사건 (event)가 일어나기를 기다림

프로세스가 실행하다가 할당받은 CPU를 반납하고, 입출력 작업이 완료되기를 기다리는것같은 특별할한 사건을 기다림

입출력을 수행하는동안 CPU를 놀리면 안되니까

 

5. terminated : 프로세스의 실행이 종료

프로세스의 실행이 완료되고 할당된 CPU를 반납함 

 

  • 프로세스가 만들어지는 과정의 상태가 new이고 프로세스가 다 수행되어 종료될때 잠시 생기는 state가 terminated임
    • 즉 new하고 terminated는 운체가 프로세스를 만들거나 종료시킬때 잠시 임시적으로 있는 state를 말하고 이외의 3개의 상태가 돌아가면서 프로세스가 수행되는것
  • ready랑 waiting의 차이가 뭘까?
    • 둘다 똑같이 어떤 상태의 변화를 기다리는건 맞지만, ready는 실행준비가 완료되어있는 상태에서 다른애가 차지하고있는 cpu를 기다리고 있는것이고, waiting은 I/O나 다른 이벤트가 발생하기를 기다리는것을 나타내는 상태다.
    • 예를들어, 메이플게임에서 게임이 실행되어 프로세스가 running상태였는데 내가 로그인을 하느라 아이디 패스워드를 치는동아는 i/o 가 완료되기를 기다려야하는데, 이 짧은 순간에도 CPU는 놀리면 안되기 때문에 (낭비니까) 그때 CPU는 그 작업(프로세스)를 waiting상태로 바꾸고 다른 프로세스를 가져와서(ready상태에있는 프로세스) 인풋을 기다리는 동안 running으로 돌리는것
    • 만약 내가 입력을 다한경우, 프로세스가 CPU에게 인터럽트 신호를 걸어서 나 입력 다했어!! 이제 안기다려도돼! 라는 신호를 보냄. 그럼 이제 다시 waiting 에서 ready로 변하게됨
  • Ready -> running
    • 운영체제가 "스케줄링"을 통해 ready상태의 프로세스들 중에서 하나를 골라 CPU에게 할당해줌

'CS공부 > 운영체제' 카테고리의 다른 글

[OS] 뮤텍스와 세마포어  (0) 2021.07.28