OS - 프로세스 관리

sunkeydokey·2022년 12월 9일
0

운영체제

목록 보기
2/9
post-custom-banner

HPC Lab. KOREATECH 채널 OS 강의를 듣고 정리

배우게 된 것

  • 프로세스의 개념
  • 프로세스의 종류
  • 자원의 개념
  • PCB (프로세스 관리 블럭)
  • 프로세스의 상태 (Process States)
  • 인터럽트
  • Context Switching

앞으로 알아야 할 것 : 스레드

Context Switching의 비용은 운영체제 성능에 큰 영향을 준다. 따라서 불필요한 Context Switching은 줄여야 하는데, 대표적으로 스레드의 사용이 있다.
차후에 스레드에 대하여 알아보기로 한다.

프로세스의 개념

프로세스

프로세스

  • 실행을 위해 시스템(커널)에 등록된 작업
  • 각종 자원들을 요청하고 할당받을 수 있는 객체
  • 프로세스 관리 블럭(PCB)를 할당 받은 객체
  • 능동적
  • 시스템 성능 향상을 위해 커널이 관리함

작업

  • 실행할 프로그램과 데이터
  • 컴퓨터 시스템에 실행 요청 전의 상태

프로세스의 종류

역할에 따른 구분

시스템(커널) 프로세스

  • 모든 시스템 메모리와 프로세서의 명령에 엑세스할 수 있는 프로세스
  • 프로세스 실행순서를 제어
  • 다른 사용자 및 커널 영역을 침범하지 못하도록 감시
  • 사용자 프로세스를 생성

사용자 프로세스

  • 사용자 코드를 수행하는 프로세스

병행 수행 방법에 따른 구분

독립 프로세스

  • 다른 프로세스와 영향을 주고 받지 않으면서 수행하는 병행 프로세스

협력 프로세스

  • 다른 프로세스와 영향을 주고 받는 프로세스

자원의 개념

  • 커널의 관리 하에 프로세스에게 할당 또는 반납되는 수동적 개체
  • 자원의 분류
    - 하드웨어 리소스
    - 소프트웨어 리소스

Process Control Block (프로세스 관리 블럭)

PCB

개념

  • 운영체제가 프로세스 제어에 필요한 정보를 저장한 공간
  • 프로세스가 생성되면서 같이 생성

PCB가 관리하는 정보

PCB 정보는 운영체제마다 다르다.
PCB 참조 및 갱신 속도는 운영체제 성능의 중요한 요소이다.

  • PID : Process Identification Number
    - 프로세스 고유 식별 번호
  • 스케줄링 정보
    - 프로세스 우선순위 등과 같은 스케줄링 관련 정보들
  • 프로세스 상태
    - 자원 할당, 요청 정보 등
  • 메모리 관리 정보
    - Page table, segment table 등
  • 입출력 상태 정보
    - 할당 받은 입출력 장치, 파일 등에 대한 정보 등
  • 문맥 저장 영역 (context save area)
    - 프로세스의 레지스터 상태를 저장하는 공간 등
  • 계정 정보
    - 자원 사용 시간 등을 관리

프로세스의 상태 (Process States)

프로세스는 시스템에 등록된 후에 여러가지 상태를 거치면서 작업을 수행한다.
상태는 자원 간의 상호작용에 의해 결정된다.
프로세스의 상태

Process State Transition Diagram

Created State

Created State

작업이 커널에 등록된 상태
PCB가 할당되고 프로세스가 생성된다
커널은 가용 메모리 공간이 있으면 프로세스를 Ready 상태로 전환하고, 없으면 Suspended ready 상태로 전환한다.

Ready State

Ready State

프로세서(CPU) 외에 다른 모든 자원을 할당받은 상태
즉시 실행 가능한 상태
CPU를 할당받아 Dispatch(Schedule)되면 Running State로 전환된다.

Running State

Running State

프로세서와 필요한 자원을 모두 할당받은 상태
프로세서 스케줄링이나 시분할로 인한 Preemption으로 프로세서를 빼앗기면 Ready State로 전환된다.
I/O 등의 자원의 할당을 요청하는 Block의 경우 Asleep State로 전환된다.

Asleep State

Asleep State

Block의 원인이 된 자원을 기다리는 상태
System call에 의해 자원을 할당받아 Wake-up이 되면 Ready State로 돌아간다.

Running State로 바로 돌아가지 않는다.
Asleep State에서 메모리를 빼앗긴 경우 Suspended Blocked State로 전환된다.

Suspended State

Suspended State

메모리를 할당받지 못한 상태
메모리 이미지를 프로그램 정보 저장을 위한 파일 시스템인 Swap Device에 보관한다.

Swap Device에 메모리 이미지를 저장하는 것을 Swap-out, 메모리를 할당받아 이미지를 다시 메모리에 올리는 것을 Swap-in이라고 한다.

Terminated(Zombie) State

Terminated State
프로세스 수행이 끝난 상태
모든 자원을 반납하고 커널 내에 일부 PCB정보만 남아 있다.

후에 비슷한 작업이 들어왔을 때 용이하게 관리할 수 있도록 일부 정보를 남겨 놓는다. 죽었는데 죽지 않은 것 같아서 Zombie.

프로세스 관리를 위한 자료구조

프로세스 관리를 위한 자료구조

인터럽트

개념

예상치 못한, 외부에서 발생한 이벤트

유형

  • I/O interrupt
  • Clock interrupt
  • Console interrupt
  • Program check interrupt
  • Machine check interrupt
  • Inter-process interrupt
  • System call interrupt

처리 과정

인터럽트 처리 과정 1

인터럽트 처리 과정 2

나(커널)는 카페에서 공부(Process x)를 한다.
친구가 갑자기 나를 부른다. (인터럽트 발생)
보던 페이지의 내용을 확인하고 책을 덮는다. (프로세스 중단과 Context Saving)
왜 부르냐고 물어보니 배가 고프다고 한다. (인터럽트 핸들링)
옆에 있는 당근 케이크 접시를 내어준다. (인터럽트 서비스)
흐름이 끊긴 김에 폰을 꺼내 웹툰(Ready State인 Process y)을 전에 보던 14화부터 다시 본다. (Context Restoring)

Context Switching (문맥 교환)

주요 개념

Context
프로세스와 관련된 정보들의 집합

  • CPU register context -> CPU
  • Code & data, Stack, PCB -> Memory

Context Saving
현재 프로세스의 Register Context를 저장하는 작업

Context Restoring
Register Context를 프로세스로 복구시키는 작업

Context Switching
실행중인 프로세스의 Context를 저장하고 앞으로 실행할 프로세스의 Context를 복구하는 것
(커널의 개입을 통해서 이루어진다.)

Context Switch Overhead

Context Switching에 소요되는 비용으로 운영체제마다 다르고, 성능에 큰 영향을 준다.
따라서 스레드 사용하는 등 불필요한 Context Switching을 줄이는 것이 중요하다.

profile
내일은 더 잘하기
post-custom-banner

0개의 댓글