본문 바로가기

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

     

    .