CS/Operating System

[Operating System] Life Cycle (Process & Thread)

hanseongbugi 2024. 4. 6. 18:30

Process Life Cycle

  • 프로세스의 생명주기는 컴퓨터 시스템에서 프로세스가 생성되고 실행되며 종료되는 과정을 나타낸다.
  • 프로세스의 생명주기는 5개의 단계로 나누어진다.
  • Ready 상태와 Wait상태의 프로세스는 각각 list를 통해 작성된다.
    • Ready리스트에 있는 프로세스는 각자 우선순위를 가지며 높은 우선순위대로 CPU를 차지한다.
    • Wait 리스트는 순위가 없다.
    • 대기 상태에서 벗어나기 위해선 대기 상태에 빠졌던 원인이 해결되었기 때문이다.
    • 원인이 해결되면 다시 실행 상태가 될 수 있다.

Process 생명주기 단계

  • 생성상태에서 준비상태로의 이동과정에서는 프로세스가 처리되기 위한 메모리와 필요한 주변장치들을 확인한다.
  • 준비상태에서 실행상태로의 이동과정에서는 미리 정해진 알고리즘에 따라 프로세스가 선택되어 처리
  • 실행상태에서 준비상태로의 이동과정에서는 현재 처리되고 있는 프로세스의 타임 슬라이스가 완료되었을 때이다.
  • 실행상태에서 대기상태로의 이동과정에서는 입출력 요청에 의해 이루어진다.
    • 하나의 프로세스가 입출력 요청을 하면 그 요청이 완료될 때까지 프로세스는 잠시 대기상태로 이동한다.
    • 이후 커널의 스케줄링 알고리즘에 따라 적절한 순위의 프로세스가 실행상태로 이동된다.
  • 대기상태에서 준비상태로의 이동은 입출력이 끝났다는 신호에 의해 이루어진다.
  • 실행상태에서 종료상태로의 이동은 작업이 성공적으로 완료되었거나 에러가 발생하여 작업이 미리 종료되는 경우이다.

생성(Creation)

  • 프로세스가 생성되는 단계
  • 이 단계에서 운영 체제는 필요한 자원을 할당하고, 프로세스의 상태를 설정하며, 해당 프로세스를 관리하기 위한 다양한 데이터 구조를 초기화한다.

준비(Ready)

  • 프로세스가 CPU를 사용하여 실행될 준비가 된 상태
  • 이 상태의 프로세스들은 준비 큐에 있으며, 스케줄러에 의해 선택되어 실행 상태로 전환될 수 있다.

실행(Running)

  • 현재 CPU에서 명령어들이 실행되고 있는 프로세스의 상태

대기(Waiting, Blocked)

  • 입출력 같은 특정 이벤트의 완료를 기다리는 중인 프로세스의 상태
  • 예) 디스크에서 파일을 읽어오는 작업이 완료될 때까지 대기할 수 있다.

종료(Terminated, Exit)

  • 작업이 끝난 후에 도달하는 최종 단계
  • 운영 체제는 모든 자원을 회수하고, 해당 프로세서 관련 데이터 구조를 제거

Thread Life Cycle

  • 스레드는 생성, 실행, 종료, 소멸의 상태를 거치며 실행된다.
  • 스레드의 상태는 TCB에 저장된다.

Thread 생명주기 단계

  • 스레드가 자발적으로 yield() 요청에 의해 스스로 실행을 중단하고 다른 스레드를 스케줄링 하도록 요청할 수 있음
  • 부모 스레드는 join()을 통해 자식 스레드의 종료를 대기할 수 있음

생성(Creation)

  • 스레드는 스레드를 생성하는 시스템 호출이나 라이브러리 함수를 호출하여 새로운 스레드를 생성할 수 있다.
  • 프로세스가 생성되면 자동으로 main 스레드가 생성된다.

준비(Ready)

  • 스레드가 스케줄링 되는 것을 기다리는 상태

대기(Waiting, Blocked)

  • 스레드가 입출력을 요청하거나 sleep과 같은 시스템 호출에 의해 중단된 상태

실행(Running)

  • 스레드가 CPU에 의해 실행중인 상태

종료(Terminated)

  • 스레드가 종료한 상태
  • 모든 스레드가 종료 시 프로세스도 종료된다.
  • 스레드가 종료되었다고 프로세스가 종료된 것은 아님

 

 

 

 

출처

https://velog.io/@jegwlee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0

 

프로세스의 생명주기

프로세스 생명주기(process lifecycle)는 컴퓨터 시스템에서 프로세스가 생성되고 실행되며 종료되는 과정을 나타냅니다. 프로세스 생명주기에는 일반적으로 다음과 같은 단계가 포함됩니다:: 프로

velog.io

https://vmilsh.tistory.com/374

 

운영체제 프로세스 생애주기(Process Lifecycle)에 대해서

안녕하세요? 허니입니다. 운영체제의 프로세스 생애주기(Process Life Cycle)에 대해 포스팅을 하려고 합니다. 프로세스 라이프사이클은 마치 한 사람의 삶의 모습과 닯아 있기 때문에 이해하기 쉬운

vmilsh.tistory.com

https://www.booksr.co.kr/product/%EB%AA%85%ED%92%88-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%88%98%EC%A0%95%ED%8C%90/

 

명품 운영체제(수정판) | 생능출판사

머리말 컴퓨터 시스템의 지배자이며 소프트웨어의 왕인 운영체제를 아는 것은, ‘소프트웨어 개발자’를 꿈꾸는 사람들이 컴퓨터 전문가로 들어서는 기반 지식임을 부인할 수 없습니다. 오늘

www.booksr.co.kr