Home OS Process (1)
Post
Cancel

OS Process (1)

목적


  1. 프로세스의 개념을 이해한다.
  2. 프로세스 메모리 배치를 이해한다.
  3. 프로세스의 상태와 그 전이를 이해한다.
  4. 프로세스 제어 블록을 이해한다.
  5. 프로세스 스케줄링과 문맥교환을 이해한다.
  6. 프로세스 생성을 이해한다.

실천 목표


  1. 프로세스의 개별 구성요소를 식별하고 운영체제에서 해당 구성요소가 어떻게 표현되고 스케줄되는지 기술한다.
  2. 운영체제에서 프로세스를 생성하고 종료하는 방법을 설명한다. 이러한 작업을 수행하는 적절한 시스템 콜을 사용하여 프로그램의 개발 등이 포함된다.

프로세스의 개념


  1. 프로세스란 실행 중인 프로그램
  2. 프로세스는 현재 컴퓨팅 시스템에서 작업의 단위
  3. 작업을 수행하기 위해 특정 자원을 필요로 함
    • CPU
    • 메모리
    • 파일
    • I/O 장치

프로세스 메모리 배치


  1. 프로세스 메모리 배치 2022-09-24-os-process-01
    • CPU (Central Processing Unit, 중앙처리장치) 1개+
    • 텍스트 섹션 : 실행코드
    • 데이터 섹션 : 전역변수
    • 힙 섹션 : 프로그램 실행 중에 동적으로 할당되는 메모리
    • 스택 섹션 : 활성화 레코드 (= 함수를 호출할 때 임시 데이터 저장공간) [참고] 활성화 레코드는 함수 매개변수, 지역변수, 복귀주소를 포함

프로세스의 상태와 그 전이


  1. 프로세스의 상태
    • new : 프로세스가 생성 중인 상태
    • running : 프로세스 내 명령어가 실행되고 있는 상태 [참고] 어느 한 순간에 한 처리기 코어에서는 오직 하나의 프로세스만이 실행됨
    • waiting : 프로세스가 이벤트(입출력 완료 또는 신호의 수신)가 일어나기를 기다리는 상태
    • ready : 프로세스가 처리기에 할당되기를 기다리는 상태
    • terminated : 프로세스의 실행이 종료된 상태
  2. 프로세스의 상태 전이 2022-09-24-os-process-02
    • (예) 동사무소에 입장한(new) 프로세스 P0 군은 증명서를 발급받기 위해 번호표를 발급받아(ready) 기다리다가 제 차례가 오자 담당자(CPU)에게 해야 할 일을 설명하고 몇 마디 말이 오간다. 담당자(CPU)는 프로세스 P0 군에게 양식지를 주며 이걸 채워오라고 했다. 프로세스 P0 군이 뒷편에 마련된 의자와 책상에서 양식지가 채워지는 작업을 하는 동안(waiting), 담당자(CPU)는 다음 번호를 부르며 프로세스 P1 양의 작업을 처리해주고, 그 다음 번호인 프로세스 P2 양의 작업도 처리하고 있었다. 프로세스 P0 군이 작업이 완료되고 고개를 들어보니 P2 양의 작업이 진행되고 있고 담당자(CPU)도 바빠보여서 다시 번호표를 발급받아(ready) 자신의 차례를 기다려 양식지를 제출해서 증명서를 발급받고 업무를 마쳤다.(terminated)

프로세스 제어 블록 (PCB, Process Control Block)


  1. 프로세스 제어 블록 : 운영체제가 프로세스를 관리하기 위해 표현하는 프로세스 구조체 단위 2022-09-24-os-process-03
    • 프로그램 카운터 : 이 프로세스가 다음에 실행할 명령어의 주소를 가리키는 공간
    • CPU 레지스터들 : CPU 레지스터는 컴퓨터의 구조에 따라 다양한 수와 유형을 가짐
    • CPU 스케줄링 정보 : 프로세스 우선순위, 스케줄 큐에 대한 포인터와 다른 스케줄 매개변수 포함
    • 메모리 관리 정보 : 기준 레지스터와 한계 레지스터의 값, 페이지 테이블 또는 세그먼트 테이블 등의 정보 포함
    • 회계 정보 : 해당 프로세스의 CPU 사용 시간, 경과된 시간, 시간 제한, 계정 번호, 프로세스 번호 포함
    • 입출력 상태 정보 : 해당 프로세스에 할당된 입출력 장치들과 열린 파일의 목록 포함

프로세스 스케줄링과 문맥교환


  1. 스케줄링 큐 : 프로세스 스케줄링을 위한 큐 2022-09-24-os-process-04
    1. 준비 큐 (Ready Queue)
      • 프로세스가 Ready 상태가 되어 CPU 코어에서 실행되기를 기다리는 상태의 큐
    2. 대기 큐 (wait Queue)
      • I/O 완료와 같은 특정 이벤트가 발생하기를 Wait하는 상태의 큐
  2. 문맥교환 : CPU 코어를 다른 프로세스로 교환하는 것 2022-09-24-os-process-05
    1. 인터럽트되는 프로세스에 대해 CPU가 가진 정보를 저장하는 작업을 수행
    2. 인터럽트하는 프로세스에 대해 CPU가 가진 정보를 복구하는 작업을 수행

프로세스의 생성


  1. 프로세스가 새로운 프로세스를 생성할 때의 두 가지 방법
    1. 부모 프로세스가 자식 프로세스와 병행해서 계속 실행됨
    2. 부모 프로세스가 자식 프로세스의 일부 또는 전체가 실행을 종료할 때까지 기다림
  2. 새로운 프로세스의 주소 공간 측면에서의 두 가지 가능성
    1. 자식 프로세스는 부모 프로세스의 복사본
    2. 자식 프로세스는 새로운 프로그램을 가지고 있음

참고


  1. 운영체제 공룡책 강의 | 주니온 | 인프런 https://www.inflearn.com/course/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B3%B5%EB%A3%A1%EC%B1%85-%EC%A0%84%EA%B3%B5%EA%B0%95%EC%9D%98/dashboard
  2. 운영체제 제 10판Abraham Silberschatz, Peter Baer Galvin, Greg Gagne 저/박민규 역퍼스트북2020년 02월 28일
  3. 운영체제 제 10판 솔루션 https://codex.cs.yale.edu/avi/os-book/OS10/practice-exercises/index-solu.html
This post is licensed under CC BY 4.0 by the author.