프로세스 관리 한줄 정리

ssuda·2020년 1월 3일
0

프로세스


  • 프로그램(Program) vs 프로세스(Process)
    - 프로그램(Program) : 하드디스크(Hard Disk)에 있고 아무 일도 못한다.
    • 프로세스(Process = Task = Job) : 내부적으로 프로세스의 text, data, stack, PC, SP, Registers 등이 메인메모리(Main Memory)에 올라와 현재 실행 중인 프로그램(=Program in execution)
  • 프로세스 관리 : 컴퓨터에서 가장 중요한 자원인 CPU를 효과적으로 각 프로세스(process)에게 어떻게 나눠줄 것인가를 결정하는 것이다.
  • 프로세스 상태 : Multi Programming System에서의 Process Status에는 new, ready, running, waiting, terminated가 있다.
    - new : 프로세스(Process)가 메인메모리(Main Memory)로 올라왔다.
    • ready : 프로세스(Process)가 초기화를 끝내고 실행할 준비를 마쳤다.
    • running : CPU를 점유해서 실행하고 있다.
    • waiting : I/O Device를 사용하고 있다.
    • terminated : Process가 끝났다.
    • +) Time Expired : Time Sharing System에서는 일정 시간 후에 다른 Process로 강제로 스위칭 시킨다. 이때 Process를 Running 상태에서 Ready 상태로 간다.

프로세스 제어 블록 ( PCB Process Control Block = TCB Task Control Block)


  • PCB : 프로세스에 대한 모든 정보를 저장한다.
    프로세스 당 하나의 PCB가 할당되고, O/S의 Process Management안에 들어있다.
    - PCB에 있는 정보
    PC(Program Counter) : 다음 실행할 명령어의 위치
    Registers : waiting이나 ready상태에서 running상태로 바뀔 시에, 이전 상태를 복구하기 위함이다.
    MMU(Memory Management Unit) : 프로세스의 base와 limit주소값을 저장한다.
    CPU Time : 프로세스가 CPU를 얼마나 사용했는지에 대한 정보이다.
    PID(Process ID) : 프로세스의 고유 번호이다.
    List Of Open Files : 프로세스가 하드디스크의 어떤 파일들을 사용하고 있는 지에 대한 정보이다.

Queues


Queue는 Program이나 Process가 특정 Service를 받기위해 대기하는 줄이다. 실제로는 PCB가 Queue안에 줄 서 있다.

  • Job Queue
    - Hard Disk에서 Main Memory로 가기위해 기다리는 Program의 줄.
    • Job Scheduler에 의해 선택된다. Job Scheduler는 Scheduling이 자주 일어나지 않고 몇 분 간격으로 일어나기 때문에 Long Term Schedler라고 한다.
  • Ready Queue
    - Main Memory에서 CPU의 Service를 받기위해 기다리는 Process의 줄.
    • CPU Scheduler에 의해 선택된다. CPU Scheduler는 Scheduling이 1초에소 몇 번씩 빈번하게 일어나기 때문에 Short Term Scheduler라고 한다.
  • Device Queue
    - Process 실행 중에 I/O Service를 받기 위해 기다리는 Process의 줄.
    - Device Scheduler에 의해 선택된다.

Multiprogramming


  • Degree of Multiprogramming
    - Multiprogramming은 Main memory에 여러 개의 process를 올리는 프로그램을 말하고, 이때 몇 개의 Process가 Main Memory에 올라와 있는지를 나타낸다.
  • I/O-Bound vs CPU-Bound
    - 프로세스는 주된 일이 I/O와 관련된 프로세스인 I/O Bound Process와 주로 CPU와 관련된 프로세스인 CPU bound Process로 나눌 수 있다.
    • 효율적인 CPU와 I/O의 사용을 위해 Job Scheduler를 I/O bound process와 CPU bound process를 적절하거 섞어서 올려준다.
  • Medium Term Scheduler
    • O/S가 Main Memory의 상태를 보고 현재 동작되고 있지 않는 Proces를 Swapping하는 일을 하는 스케줄러이다.
      • Swapping이란? 현재 사용되고 있지 않은 Process의 Main Memory에 있는 정보를 Hard Disk로 옮기거나(Swap Out) 이를 다시 Hard Disk에서 Main Memory로 가져오는 것(Swap In)을 말한다. 그리고 이러한 용도로 사용되는 Hard Disk를 Swap Device(= Backing Store)라고 부른다.
  • Context Switching
    - Contex Switching : CPU는 어떤 한 순간에는 하나의 Process만을 실행시킬 수 있다. CPU가 실행하는 Process를 전환하는 것을 문맥전환(Context Switching)이라고 한다.
    • CPU scheduler : 지금 실행 중인 Process가 끝난 후에 실행시킬 Process를 결정하는 것이다.
    • Dispatcher : Scheduler가 선택한 Process를 실행하기 위해 현재 Process와 실행될 Process의 상태값을 저장해주는 역할을 한다.
      예) Scheduler가 P1의 작업을 중단하고 P2를 작업하기로 결정 -> P1의 현재 상태를 PCB#1에 저장 -> P2의 이전 상태가 저장되어 있는 PCB#2의 값을 복원(restore) -> P2 작업 시작
    • Context Swithcing Overhead : Context Switching시 일어나는 부담.

참고 영상


본 글은 다음 링크의 강의 영상을 정리한 것입니다.
운영체제:(6)프로세스 관리-Youtube

profile
안녕하세요 코딩을 사랑하는 ssuda 입니다.

0개의 댓글