[운영체제] 프로세스 상태

Lee Seung Jae·2022년 4월 5일

사용자가 프로그램을 실행시키면 메모리에 올라가며 프로세스가 실행된다.

지금의 컴퓨터는 수많은 프로세스들이 실행된다.

시분할 시스템이 사용되는 운영체제에서는 여러개의 프로세스를 돌아가면서 실행한다.

cpu가 병렬적으로 여러 프로세스를 막 실행시키는것이 아니라,

한 순간에 하나의 프로세스만 처리가 가능하다.

그렇지만, 그 속도가 우리가 눈치챌 수도 없을 만큼의 속도로 분할되어 실행되기

때문에 여러 프로세스가 동시에 실행되는것 처럼 느끼게 한다.

프로세스는 시분할 시스템 처리를 위한 5가지의 상태가 존재한다.

  • 생성

    • 이 상태는 PCB를 생성하고, 메모리에 프로그램 적재를 요청한 상태
    • 메모리에 프로그램 적재를 승인받으면 준비상태로 넘어간다.
  • 준비

    • CPU를 사용하기 위해 기다리고 있는 상태
    • 준비 상태의 프로세스는 CPU 스케줄러에 의해 CPU가 할당
    • 대부분의 프로세스가 이 상태에 존재함.
  • 실행

    • CPU스케줄러에 의해 CPU를 할당 받아 실행되는 상태
    • 실행 상태에 있는 프로세스의 수는 CPU의 개수만큼
    • 이 상태에 있는 프로세스도 CPU를 무한정 쓸 수 있는것이 아니라 할당된 시간만큼만 사용이 가능하다.
    • CPU스케줄러는 할당된 시간을 초과하면 할당했던 CPU를 강제로 뺏는다.
      • 이 때, 프로세스는 다시 준비 상태로 되돌아간다.
  • 완료

    • 프로세스가 종료된 상태
    • 프로세스가 사용했던 데이터들을 메모리에서 제거한 후 생성된 PCB도 제거한다.
  • 대기

    • 프로세스가 입출력요청이 있으면, 완료될 때까지 기다리는 상태
    • CPU는 굉장히 빠른데 비해 입출력은 굉장히 느린작업에 속함.
    • 특정 프로세스가 입출력 요청을 한다면 요청이 완료될 때까지 CPU를 기다리게 하는것은 굉장히 비효율적이기 떄문에 입출력 요청을 한 프로세스를 이 상태에 두고 다른 프로세스에게 CPU를 할당함.
    • 시간이 지나, 입출력이 완료되면 이 대기상태에게 CPU할당 기회를 준다.
    • 이렇게 되면, CPU에게는 미안하지만 쉬는 시간을 주지 않고 빡세게 굴릴 수 있다.
  • 출처

profile
💻 많이 짜보고 많이 경험해보자 https://lsj8367.tistory.com/ 블로그 주소 옮김

0개의 댓글