ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3-1. Process 1
    OS/운영체제 강의정리 2021. 12. 30. 19:25

    3-1. Process 1

    프로세스의 개념, 프로세스의 상태(Process State), 프로세스의 개념, 프로세스 상태도, Process Control Block(PCB), 문맥교환(Context Switch), 프로세스를 스케줄링하기 위한 큐, Ready Queue와 다양한 Device Queue, 스케줄러(Scheduler)

     

    프로세스의 개념

    “Process is a program in execution”

    프로세스의 문맥(context) : 도대체 이 프로그램이 무엇을 어떻게 실행했는지, 정확히 현재 어떤 시점인지 나타내기 위한것

    • CPU 수행 상태를 나타내는 하드웨어 문맥 (Program Counter, 각종 register)
    • 프로세스의 주소 공간(code, data, stack)
    • 프로세스 관련 커널 구조 (PCB(Process Control Block), Kernel stack)

    프로세스의 상태(Process State)

    프로세스는 상태가 변경되어 수행된다.

    • Running : CPU잡고 instruction을 수행중인 상태
    • Ready : CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족)
    • Blocked(wait, sleep) : CPU를 주어도 당장 instruction을 수행할 수 없는 상태, Process 자신이 요청한 event(예 : I/O)가 즉시 만족되지 않아 이를 기다리는 상태
    • Suspended (stopped)
      • 외부적인 이유로 프로세스의 수행이 정지된 상태
      • 프로세스는 통째로 디스크에 swap out된다.
      • 예를들어 사용자가 프로그램을 일시 정지시킨경우, 시스템이 여러 이유로 프로세스를 잠시 중단시킴

    *** Blocked : 자신이 요청한 event가 만족되면 Ready

    *** Suspended : 외부에서 resume해 주어야 Active

    • new : 프로세스가 생성중인 상태
    • Terminated : 수행(execution)이 끝난 상태

     

     

    PCB(Process Control Block)

    운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보, 구조체로 유지함

    1. OS가 관리상 사용하는 정보
      1. Process state, Process ID
      2. scheduling information, priority
    2. CPU 수행 관련 하드웨어 값(Progran conter, registers)
    3. 메모리 관련 (Code, data, stack의 위치 정보)
    4. 파일 관련 (Open file descriptors...)

    문맥교환

    CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정

    CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음을 수행

    • CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
    • CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어 옴

    프로세스를 스케쥴링하기 위한 큐

    • Job queue : 현재 시스템 내에 있는 모든 프로세스의 집합
    • Ready queue : CPU를 기다리는 줄
    • Device queues : I/O 디바이스의 처리를 기다리는 프로세스의 집합
    • 프로세스들은 각 큐들을 오가며 수행된다.
      • 프로세스는 현재 실행중인 모든 프로그램이고, 지금 메인메모리에 로드되고있는 프로그램들
      • job은 모든프로그램

    스케쥴러(Scheduler)

    • Long-term scheduler(장기 스케쥴러 or job scheduler)
      • 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정
      • 프로세스에 memory을 주는 문제
      • degree of Multiprogramming을 제어 (메모리에 동시에 너무많이 너무 적게 올라가면 성능이안좋아지니까)
      • time sharing system에는 보통 장기 스케쥴러가 없음 (무조건 ready)
    • Short-term scheduler(단기 스케쥴러 or CPU scheduler)
      • 어떤 프로세스를 다음번에 running시킬지 결정
      • 프로세스에 CPU를 주는 문제
      • 충분히 빨라야 함(millisecond단위)
    • Medium-Term Scheduler(중기 스케쥴러 or Swapper)
      • 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄
      • 프로세스에게서 memory를 뺏는 문제 (Suspended 상태 해줌)
      • degree of MultiprogrammIng을 제어

    댓글

Designed by Tistory.