운영체제 5주차

nostalgia yo·2021년 9월 29일

운영체제

목록 보기
4/7

프로세스 스케줄링

1) 프로세스 정의
2) 프로세스 상태
3) 프로세스 스케쥴링

  • 다중프로그래밍 환경(context switching)에서 여러 프로세스들의(작업 수행시간이 길어지면 다른 프로세스들이 수행 가능하도록 조정) 각 작업 순서를 조정하는 작업
    (1) preemptive(선점) programming

  • 현재 수행중인 프로세스를 강제 중지 시키고 다른 프로세스가 수행할 수 있는 방법

  • 대화식 시분할 시스템에 사용되며, 우선순위가 높은 프로세스 수행이 가능하고, 빠른 응답을 요구하는 프로세스를 처리하지만 선점으로 인한 오버해드 발생

    1) round-robin scheduling

    • 각 프로세스는 cpu의 일정한 time slice만큼 수행되며, 할당시간 내에 작업을 완료하지 못한 프로세스는 대기큐의 맨 뒤로 이동하는 방식
    • 시간 할당량이 크면 FIFO(FCFS) 방식이 되며, 작으면 문맥 교환으로 인한 오버헤드 발생
    • 인터럽트 - 문맥교환 발생 - 다중 프로그래밍
      2) shortest remaining time scheduling
    • 수행중인 프로세스의 실행시간 추정치가 가장 적은 프로세스를 우선으로 처리하는 방법
    • 각 프로세스에 대한 실행시간을 추적 및 관리
    • 첫 프로세스는 그대로 -> 두번째부터 적용
      3) multi-level feedback queue schedulinlg
    • 주어진 시간 내에 작업을 완료하지 못한 프로세스는 다음단계의 큐로 이동하여 처리하며, 프로세스에 대한 수행시간이 길어지면 우선순위가 낮아지고, 하위단계 큐에 배정된 cpu의 time slice는 더 크게 배정
    • 최하위 단계에서는 RR 방법 적용
    • 수행시간이 짧은 프로세스에게 우선권 부여

PSWR(program status word register)
cpu에 존재, 8 byte크기, 현재 수행중인 프로그램 조건, 코드, 레지스터 정보 저장, pc,스택(주기억)

(2)non-preemptive scheduling
비선점 스케줄링-FIFO,SJF,HRN

  • 모든 프로세스 요구 공정히 처리
  • 응답시간 예측이 용이

1) FIFO(FCFS)
- First in First out, 순서에 의해 대기큐에 돡한 프로세스들을 cpu가 처리
- 중요하지 않은 작업 수행으로 중요한 작업이 대기
- 긴 작업 수행으로 인해 짧은 작업이 대기
- 대화식 시분할 시스템에는 부적합한 방법

2) Shortest Job First(SJF)
- 작업 완료의 수행시간이 가장 적은 프로세스를 우선 처리하는 방법
- 프로세스 요구시간 파악이 어려운 단점이 있다.

3) Highest Response ratio Next(HRN)

  • SJF의 긴 작업과 짧은 작업의 불평등을 개선하기 위한 방법
  • 프로세스에 대한 우선순위를 고려하여 프로세스를 수행시키는 방법
  • 우선순위=(대기시간+서비스시간)/서비스시간(=burst time)

03 스레드: 실행중에는 문맥 교환과 상관없이 수행되는 단위

  • 프로세스에서 실행의 개념만을 분리한 것으로서, 입출력과 연계되는 작업에 제한을 받지 않고, 인터럽트(내부: s/w 프로그램과 동기, 외부: h/w 프로그램과 비동기)와 무관하게 cpu에 의해 처리되는 단위

  • 스레드는 독립된 제어 흐름을 가지며, 자신의 스택과 레지스터와 같은 자원을 사용하고, 다른 스레드와 코드, 주소공간, 자원등을 공유하면서 수행

문맥교환: 할당> 인터럽트

profile
보안 새싹

0개의 댓글