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

2024. 7. 29. 17:59·Computer Science/운영체제

이전 시간에 프로세스는

  • 실행 중인 프로그램
  • 컴퓨터에서 실행 중인 프로그램의 인스턴스(프로그램은 프로세스라고 할 수 없다 ..)
  • 프로세서에 할당되고 실행될 수 있는 엔티티

이라고 공부했다 ..

 

 

# 1. Process States Model

 

프로세스 상태 모델은 컴퓨터 과학에서 프로세스의 생명 주기를 나타내는 모델이다. 이 모델은 프로세스가 생성되어 실행될 때부터 종료될 때까지의 다양한 상태를 설명한다. 대부분의 운영 체제는 프로세스를 이러한 상태로 관리하며, 각 상태는 특정한 활동이나 이벤트와 연결되어 있다.

 

흔히 사용되는 프로세스 상태 모델은 다음과 같은 상태를 포함합니다:

  1. 생성 (Creation): 프로세스가 시작되고 시스템이 해당 프로세스를 생성하는 단계이다. 프로세스는 여기서 메모리에 로드되고 초기화된다.
  2. 준비 (Ready): 프로세스가 실행을 기다리는 상태이다. 이 상태에 있는 프로세스는 CPU를 할당받기 위해 대기하고 있다. 여러 프로세스가 준비 상태에 있을 수 있으며, 스케줄링 알고리즘에 따라 어떤 프로세스가 CPU를 할당받을지 결정된다.
  3. 실행 (Running): CPU를 할당받아 실행 중인 상태이다. 이 상태에 있는 프로세스는 명령을 실행하고 결과를 생성한다. 하나의 CPU 코어에서는 한 번에 하나의 프로세스만 실행된다.
  4. 대기 (Waiting 또는 Blocked): 프로세스가 어떤 이벤트를 기다리거나 입출력 작업을 수행하는 동안 발생하는 상태이다. 이 상태에 있는 프로세스는 특정 이벤트가 발생할 때까지 CPU를 할당받을 수 없다.
  5. 종료 (Termination): 프로세스의 실행이 완료되었거나 종료되었을 때의 상태이다. 여기서는 프로세스가 종료되고 시스템 자원이 해제된다.

이러한 상태 중 일부는 시스템에 따라 다를 수 있다. 예를 들어, 일부 시스템은 준비 상태와 대기 상태를 별도의 상태로 취급하지 않고 준비 대기(Ready-Waiting) 또는 준비 실행(Ready-Running) 상태로 결합할 수도 있다.

 

프로세스 상태 모델은 프로세스의 생명 주기를 이해하고 프로세스 스케줄링 및 관리에 필요한 기반을 제공한다. 이 모델을 기반으로 운영 체제는 CPU 할당, 우선 순위 설정, 입출력 관리 등과 같은 다양한 작업을 수행하여 시스템 자원을 효율적으로 활용한다.

 
비 실행 중인 프로세스
  • 준비 상태
    • 실행 준비가 된 상태
    • 프로세서가 디스패치되기를 기다리고 있는 상태
  • 차단된 상태 (대기 상태 또는 슬립 상태)
    • 어떤 이벤트가 발생할 때까지 기다리는 상태 (예: I/O 완료)
  • 디스패처에 의해 가장 오랫동안 대기한 프로세스가 항상 선택되지 않는다.
    • 해당 프로세스가 차단되어 있을 수 있기 때문이다.
    • 차단 상태인 프로세스는 다른 대기열에 유지한다 : 차단 대기열

위 내용은 프로세스의 상태 모델에 관한 것이다. 여기서 '비 실행 중인 프로세스'는 준비 상태와 차단된 상태를 의미한다. 준비 상태는 프로세서가 할당되기를 기다리는 상태를 나타내며, 차단된 상태는 어떤 이벤트가 발생할 때까지 기다리는 상태를 의미한다. 이들 중 어떤 상태든 디스패처에 의해 가장 오랫동안 대기한 프로세스가 항상 선택되는 것은 아니다. 왜냐하면 선택된 프로세스가 블럭된 상태에 있을 수 있기 때문입니다. 따라서 차단된 상태인 프로세스는 다른 대기열에 유지된다.

 
 

## 1-1 Five-State Process Model

 

프로세스 상태도

위의 예시는 5가지의 프로세스 상태도를 나타낸 것이다.

 

 

## 1-2 Process States

 

 

프로세스 상태도 중 Running과 Ready, Blocked의 예시

 

'Computer Science > 운영체제' 카테고리의 다른 글

[운영체제] 프로세스에 대하여 ..  (0) 2024.04.24
[운영체제] Operating System Architecture  (0) 2024.04.23
[운영체제] 분산 시스템과 Command-Interpreter System  (0) 2024.04.23
[운영체제] Multi-programming과 Timesharing  (1) 2024.04.23
[운영체제] 운영체제란 무엇인가 ?  (0) 2024.04.22
'Computer Science/운영체제' 카테고리의 다른 글
  • [운영체제] 프로세스에 대하여 ..
  • [운영체제] Operating System Architecture
  • [운영체제] 분산 시스템과 Command-Interpreter System
  • [운영체제] Multi-programming과 Timesharing
하가네
하가네
  • 하가네
    하 렌
    하가네
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • Computer Science (23)
        • 운영체제 (7)
        • 데이터통신 (6)
        • 자료구조 (4)
        • 논리회로 (0)
        • 확률 및 통계 (0)
        • 데이터베이스 (2)
        • AI소프트웨어 (3)
        • 컴퓨터네트워크 (1)
      • Language (0)
        • Java (0)
      • Framework (8)
        • Spring (8)
      • Tips (2)
        • 터미널 명령어 (1)
        • 우분투 명령어 에러 (1)
      • SSA (6)
        • Front (1)
        • Back (4)
        • DB (0)
        • 기획 (1)
      • 우아한테크코스 (0)
        • 7기 프리코스 (0)
      • CNU SW 아카데미 (42)
        • 1주차 (5)
        • 2주차 (5)
        • 3주차 (2)
        • 4주차 (1)
        • 5주차 (3)
        • 6주차 (2)
        • 7주차 (0)
        • 8주차 (1)
        • 9주차 (14)
        • 10주차 (0)
        • 11주차 (1)
        • 12주차 (0)
        • 13주차 (2)
        • 14주차 (2)
        • 15주차(최종 프로젝트) (3)
        • 최종 프로젝트 이후 (1)
      • 모각코 (6)
        • 2023 동계 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.
하가네
[운영체제] 프로세스 상태도
상단으로

티스토리툴바