ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스 상태와 계층 구조
    CS/운영체제 2025. 6. 8. 23:21

    유튜브에 공개된 『혼자 공부하는 컴퓨터 구조+운영체제』 강의를 보고 정리한 내용입니다.

     

    출처 : 유튜브 - 혼자 공부하는 컴퓨터 구조+운영체제


    프로세스는 저마다 상태를 가지고, 운영체제는 이 상태를 PCB에 기록해 관리한다.

    많은 운영체제는 동시에 실행되는 수많은 프로세스들을 계층으로 관리한다.

    프로세스 상태

    운영체제마다 일부 차이가 있을 수 있음

    1. 생성 상태
      • 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
      • 준비가 완료되어 CPU를 할당받아 실행할 수 있는 상태가 된다면 준비 상태로 변경
    2. 준비 상태
      • 언제든지 CPU를 할당 받아 실행 가능하지만 자신의 차례가 아니기에 기다리는 상태
      • 자신의 차례가 된다면 실행 상태로 변경(= 디스패치)
    3. 실행 상태
      • CPU를 할당 받아 실행 중인 상태
      • 할당된 시간을 모두 사용 시(=타이머 인터럽트 발생 시) 준비 상태로 변경
      • 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때 까지(=입출력 완료 인터럽트를 받을 때 까지) 대기 상태로 변경
    4. 대기 상태
      • 프로세스가 실행 도중 입출력 작업을 사용하는 경우 입출력 작업은 CPU에 비해 느리기에 대기 상태로 변경
      • 입출력 작업이 끝나면(=입출력 완료 인터럽트를 받으면) 준비 상태로 변경
    5. 종료 상태
      • 프로세스가 종료된 상태
      • PCB, 프로세스 메모리 영역 정리

    프로세스 상태 다이어그램


    프로세스 계층 구조

    프로세스 생성 도중 (시스템 호출을 통해) 다른 프로세스 생성 가능

    • 부모 프로세스 : 새 프로세스를 생성한 프로세스
    • 자식 프로세스 : 부모 프로세스에 의해 생성된 프로세스일부 운영체제에서는 자식 프로세스 PCB에 부모 프로세스 PID(PPID)를 명시하기도 함
    • 부모 프로세스와 자식 프로세스는 별개의 프로세스이므로 각기 다른 PID를 가짐

    프로세스 계층 구조

    • 자식 프로세스는 또 다른 자식 프로세스를 낳을 수 있고
    • 그 자식 프로세스는 또 다른 자식 프로세스를 낳을 수 있고..

    → 프로세스의 계층적인 구조 형성

     

    최초의 프로세스를 확인하는 방법?


    프로세스 생성 기법

    Windows 운영체제와는 큰 관련 x

    부모 프로세스는 자식 프로세스를 어떻게 만들어내고, 자식 프로세스는 어떻게 자신만의 코드를 실행할까?

    → 복제, 옷 갈아입기 두 과정을 통해 프로세스가 생성됨

    • 부모 프로세스는 fork 시스템 호출을 통해 자신의 복사본을 자식 프로세스로 생성(=복제)
    • 자식 프로세스는 exec 시스템 호출을 통해 자신의 메모리 공간을 다른 프로그램으로 교체(=옷 갈아입기)

    fork 시스템 호출

     

    복사본(=자식 프로세스) 생성

    부모 프로세스의 자원 상속

     

    fork는 자기 자신 프로세스의 복사본을 자식 프로세스로 생성하는 시스템 호출

     

     

     

     

     

     

     

     

     

    exec 시스템 호출

     

    메모리 공간을 새로운 프로그램으로 덮어쓰기

    코드/데이터 영역은 실행할 프로그램 내용으로 바뀌고, 나머지 영역은 초기화

     

     

     

     

     

     

     

     

     

    정리

     


    출처

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

    반응형

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

    0과 1을 문자로 표현하는 방법  (0) 2025.07.14
    메모리 관리 방식 - 연속 메모리 할당  (0) 2025.07.06
    교착 상태를 예방하는 방법  (0) 2025.06.29
    CPU 스케줄링  (3) 2025.06.15
    프로세스  (0) 2025.06.08

    댓글

Designed by Tistory.