본문 바로가기

CS study/운영체제 - JSCODE 스터디

[2주차 스터디 노트] 쓰레드, 멀티 프로세스/쓰레딩, 프로세스 상태 변화

 

프로세스 상태

프로세스의 수행 상태 변화는 운영 체제의 프로세스 관리의 중요한 부분이다.

운영 체제는 프로세스의 생명 주기 동안 여러 가지 상태를 가지며, 프로세스의 현재 상황과 다음에 수행해야 할 작업을 나타낸다. OS에서는 이 상태를 PCB를 통해 인식하고 관리한다.

 

프로세스의 상태 전이도

  1. 새로 생성된 상태 (New)
    • 프로세스가 생성되고 초기화되는 단계이다.
      프로세스는 프로세스에 필요한 초기 리소스와 설정을 할당받있지만, 아직 실행 준비가 완전히 되지 않은 상태.
      -> 프로세스가 필요한 모든 리소스를 할당받고, 실행을 위한 준비가 완료되면 "준비 상태"로 전환된다.

      여기서 할당받을 리소스들은 다음과 같다.

      - 프로세스 식별자 (PID):
      - 프로세스 제어 블록 (PCB):
      - 프로세스 실행을 위한 최소한의 메모리 공간
      - 기타 초기 설정(운영체제마다 상이)
      이걸 다 받으면 준비 상태로 전환된다.
  2. 준비 상태 (Ready)
    • 프로세스가 CPU를 할당받기 위해 대기하는 상태이다.
      이 상태의 프로세스는 실행을 위해 필요한 모든 리소스를 할당받았으며, CPU를 제외한 모든 것이 준비된 상태.
  3. 실행 상태 (Running)
    • 프로세스가 CPU를 할당받아 명령어를 실행하고 있는 상태(실제로 계산을 수행하거나, 작업을 진행)
    • 프로세스는 일정 시간만 실행되며, 할당 시간을 전부 소모하면 다시 준비 상태로 전환된다.
    • 만약 IO 작업 등이 발생한다면 대기 상태로 전환된다.
  4. 대기 상태 (Waiting or Blocked)
    • 프로세스가 특정 이벤트(I/O 작업의 완료) 또는 자원의 가용성을 기다리는 상태.
    • 이 상태에서 프로세스는 CPU를 사용할 수 없으며, 필요한 이벤트나 자원이 준비될 때까지 대기한다.
      - (동기 Blocking 방식을 사용한다면 프로세스가 이 상태로 진입했다.)
  5. 종료 상태 (Terminated or Exit)
    • 프로세스가 실행을 완료하고 시스템에서 제거되는 상태이다.
    • 이 상태에서 프로세스는 모든 작업을 마치고, 사용하던 자원을 운영 체제에 반환한다.

프로세스 생성 기법

fock() 명령어를 통해 새로운 프로세스를 호출할 수 있다.

 

질문 목록

  • 프로세스 수행 상태 변화 과정에 대해 설명해주세요.
  • fork() 명령어에 대해 설명해주세요.

 

  • 쓰레드에 대해 설명해주세요.
  • 프로세스와 쓰레드가 어떤차이가 있는지 예시를 들어 설명해주세요.
  • 쓰레드의 메모리 공간(스택, 데이터, 코드)에대해 설명해주세요.
  • 쓰레드 제어블록(TCB)에 대해 설명해주세요.

 

  • 멀티 프로세스에 대해서 설명해주세요.
  • 멀티 쓰레딩에 대해서 설명해주세요.
  •  
  • 프로세스끼리 협력하는 방법에 대해서 설명해주세요.

 

 

참고자료

 

- 혼자 공부하는 컴퓨터구조 + 운영체제

 

프로세스 상태

https://cornswrold.tistory.com/124

https://velog.io/@rudy91/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%83%81%ED%83%9C-Five-State-Process-Model

 

 

프로세스 생성 기법

https://velog.io/@ckstn0777/OS-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4

 

.