개발자 노트

[프로세스관리]1.프로세스개요 본문

컴퓨터과학 기초/운영체제

[프로세스관리]1.프로세스개요

jurogrammer 2020. 4. 7. 15:36

출처
http://www.kocw.net/home/search/kemView.do?kemId=978503 (경성대 양희재교수님 자료)
operation system concepts(공룡책)

프로세스 관리

1. 프로세스 개요

프로그램과 프로세스의 차이

  • 프로그램은 보조기억장치에 있는 코드들.

  • 프로세스는 그 프로그램이 메모리 상에서 작동하고 있는 상태인 것.

  • 프로세스가 메모리상에 있으면서 sp,stack,data,pc,registers 등등을 가지게 됨.

  • 프로세스와 동의어로는 job,task가 있음

프로세스의 상태

  • 프로세스는 실행되면서(excutes) 상태를 변화한다. 그 상태는 프로세스의 현재 활동에 따라 정의 됨.

  • new, ready, running, waiting, terminated 상태가 존재.

    • new : 프로세스가 생성되는 중인 상태
    • Running : Instruction이 실행 중인 상태
    • Waiting : 특정 이벤트가 발생하길 기다리고 있는상태(I/O가 완료 되던가 reception of singal)
    • Ready : 프로세스가 특정 프로세서에게 할당받길 기다리는 상태. 즉, 인스트럭션 실행할 준비 되있는 상태
    • Terminated : 실행을 완료한 상태
  • 프로세스 상태 천이도

  • 상태 천이는 언제 발생하는가?

    new -> ready : admit한 경우

    ready -> running : scheduler dispatcher에 의해.

    running -> ready : 타이머 인터럽트 발생(시분할 시스템)

    running -> waiting : I/O or event wait

    waiting -> running : I/O or event 완료

    running -> terminated : 종료될 때.

PCB

  • 운영체제에서 프로세스를 관리하기 위해 프로세스를 표현하는 자료형.(process control block)
  • PCB에 저장되는 정보들.
    • Process state (new,ready,running 등)
    • Program Counter
    • CPU registers
      • acc, index registers, sp,범용레지스터 등 포함.
    • CPU-scheduling information
      • process 우선순위, 스케쥴 큐 포인터 등 가지고 있음
    • Memory-management information.

프로세스 스위칭 과정

  • 위 그림을 보면 스위치할 때 오버해드 발생.
    • 실행중인 PCB 상태정보 저장
    • 다음 PCB상태 로딩
  • 두 행동에 대해 cpu idle 발생.

ubuntu PCB정보

  • 위치

  • 내부 내용

Queues

  • Job Queue

    • 프로세스가 생성됬을 때 바로 Main Memory로 안올라감. 어떤 프로세스를 Main Memory로 올릴지 결정.(I/O bound, CPU bound job 섞어 올림.)
    • Job scheduler가 관리.
      • 운영체제의 Process Management 부분에 구현되어 있음.(현재 PM배우는 중)
    • Long-Term scheduler라 함.
      • 프로세스가 실행될 때만 작동.
  • Ready Queue

    • CPU scheduler가 관리
      • ready queue에서 대기 중인 프로세스에게 cpu자원 할당.
    • Short-term scheduler라고 부른다.(1초에 수십번씩 작동)
  • Devicce Queue

    • Device scheduler
    • Device 사용을 기다리는 프로세스를 관리한다.
      • device엔 프린터나 키보드 마우스 등등 존재.

멀티프로그래밍

멀티프로그래밍을 적용할 때 나오는 개념들

  • Degree of multiprogramming
    • 메인 메모리에 몇 개의 프로세스를 올릴 것인가에 대한 내용
  • i/o bound/cpu bound process
    • i/o 작업 위주의 프로세스냐 cpu 작업 위주의 프로세스이냐 내용.
      • i/o bound process 종류로는 hwp,word 등 존재
      • cpu bound process 종류로는 텐서플로우 등!
  • Medium-term scheduler
    • 어떤 프로그램을 swap out할 건지 결정하는 스케쥴러
    • swapping이란?
      • 시분할 시스템에서 우선 순위가 낮은 프로세스(미사용 중인 프로세스)를 메인 메모리로부터 backing store로 쫓아내고 (backing store에 저장) 우선 순위가 높은 프로세스를 메인 메모리에 올리는 것.(swap in)을 스와핑이라고 함.
  • Context switching(문맥전환)
    • Scheduler
      • ready queue에 대기중인 프로세스 중 어떤 프로세스를 실행할 것인지 결정
    • Dispatcher
      • reg,pc,base,limit 등 pcb정보를 저장하고 복원(restore)해주는 프로그램
    • Context switching overhead
      • Dispatcher에서 저장, 복원시 오버해드 발생하는 것. 위 Figure 3.4내용
반응형
Comments