티스토리 뷰

OS

[OS] 프로세스 관리

cherishee 2020. 1. 15. 17:05

프로세스 (Process) 정의

  • 실행중인 프로그램

  • 커널에 등록되고 커널의 관리하에 있는 작업

  • 각종 자원들을 요청하고 할당 받을 수 있는 개체

  • 능동적인 개체 : 실행 중에 각종 자원을 요구, 할당, 반납

  • 프로세스 관리 블록(PCB)을 할당 받는 개체

PCB (Process Control Block)

  • 각 프로세스들에 대한 정보를 관리

  • 프로세스 생성 시, 생성 됨

  • PCB가 관리하는 정보

    • PID : 프로세스 고유 식별 번호

    • 스케줄링 정보 : 프로세스 우선순위 같은 스케줄링 관련 정보

    • 프로세스 상태 : 자원 할당, 요청 정보 등

    • 메모리 관리 정보 : page table, segment table 등

    • 입출력 상태 정보 : 할당 받은 입출력 장치, 파일 등에 대한 정보

    • 문맥 저장 영역(context save area) : 프로세스의 레지스터 상태를 저장하는 공간

    • 계정 정보 : 자원 사용 시간 등 관리

  • PCB 정보는 OS별로 서로 다름

  • PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 요소 중 하나이다.

프로세스 상태

프로세스의 상태

프로세스 상태 다이어그램

Process State Transition Diagram

 

Created State : 생성된 상태

  • 작업을 커널에 등록

  • PCB 할당 및 프로세스 생성

  • 커널 : 가용 메모리 공간 체크 및 프로세스 상태 전이

Created State

Ready State

  • 프로세서 외에 다른 모든 자원을 할당 받은 상태

    • 프로세서 할당 대기 상태, 즉시 실행 가능한 상태

    • 즉, 메모리를 할당받았다면, CPU만 할당받으면 된다 => 즉시 실행 가능한 상태

  • Dispatch (or Schedule) : ready -> running

Ready State

Running State

  • 프로세서와 필요한 자원을 모두 할당 받은 상태

  • 벗어나는 2가지

    • Preemption (CPU 빼앗김)

      • Running state -> ready state

      • 프로세서 스케줄링

    • Block / Sleep : I/O가 끝나기를 기다리는 상태

      • Running state -> asleep state

Running State

Blocked/Asleep state

  • 프로세서 외에 다른 자원을 기다리는 상태

  • wake-up : I/O가 끝났다면!

    • Asleep state -> ready state

Blocked/Asleep state

Suspended State : 지연된 상태

  • 메모리를 할당 받지 못한(빼앗긴) 상태

    • 메모리 이미지를 swap device에 보관

      • swap device : 프로그램 정보 저장을 위한 특별한 파일 시스템

    • 커널 또는 사용자에 의해 발생

  • Swap-out(suspended), Swap-in(resume)

Terminated/Zombie state 

  • 끝났는데 죽지 않음

  • 프로세스 수행이 끝난 상태

  • 모든 자원 반납 후, 커널 내에 일부 PCB 정보만 남아 있는 상태 : 이후 프로세스 관리를 위해 정보 수집

Terminated/Zombie state 

 

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

  • Ready Queue

  • I/O Queue

  • Device Queue

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

 

 

인터럽트

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

인터럽트 처리 과정

인터럽트 처리 과정

  1. Interrupt 발생
  2. 현재 Context(문맥)을 PCB에 저장한다.
  3. Interrupt Handling :  어디서, 왜 발생했는지 파악한다.
  4. Interrupt service : 만약 서비스를 해줘야 한다면 서비스를 해준다. 이때, 그 서비스를 처리할 procces(Pih)를 넣는다.
  5. Context restoring :  그 다음 대기 순서인 Pj가 들어간다. 

Context Switching(문맥 교환)

- Context : 프로세스와 관련된 정보들의 집합이다.

  • CPU register context 는 CPU안에 저장

  • Code & data, stack, pcb는 메모리안에 저장

- Context saving : 현재 프로세스의 register context를 저장하는 작업

- Context restoring : register context를 프로세스로 복구하는 작업

- Context switching : 실행중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구하는 일 - 커널의 개입으로 이루어짐

  • Context switching은 OS의 성능에 큰 영향을 준다. 그래서 불필요하게 사용하면 안된다.

본 게시글은 공부를 목적으로 작성합니다.

강의자료 및 강의의 저작권은 다음과 같습니다.

https://sites.google.com/view/hpclab/courses/operating-system?authuser=0

 

HPC Lab., KOREATECH - Operating System

Copyright © High Performance, Heterogeneous Parallel Computing Lab, KOREATECH. All right reserved.

sites.google.com

 

문제시 삭제하겠습니다

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함