티스토리 뷰

패스트캠프 강의를 듣고 정리했습니다.

프로세스 상태와 스케쥴링

멀티 프로그래밍과 Wait

  • 멀티프로그래밍
    • CPU 활용도를 극대화 하는 스케쥴링 알고리즘
  • Wait
    • 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정

프로세스 상태

  • running state: 현재 CPU에서 실행 상태
  • ready state: CPU에서 실행 가능한 상태(실행 대기 상태)
  • block state: 특정 이벤트 발생 대기 상태(예: 프린팅 다 되었다!)

프로세스 상태간 관계

  1. Process block for input.[blocking]
    • CPU자원이 필요없는 I/O wait, Lock, Idle, event wait
  2. Scheduler picks another process.[dispatch]
  3. Scheduler picks this process[timeout]
  4. Process becomes available[unblocking]

선점형과 비선점형 스케쥴러

  • 선점형 스케쥴러(Preemprive Scheduling)
    • 하나의 프로세스가 다른 프로세스 대신에 프로세스(CPU)를 차지할 수 있음
    • 프로세스 running중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능
    • RoundRobin은 시분할 시스템을 위한 기본 알고리즘
  • 비선점형 스케쥴러(Non-preemprive Scheduling)
    • 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
    • 프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을 때만, 다른 프로세스로 교체 가능
  • FIFO(FCFS), SJF, Priority‑based 는 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘(선점형, 비선점형 구분 X)

쉬어가기
랙? 마우스/키보드 반응이 느린경우?
스케쥴러가 해결해야하는 이슈!
다양하고 복잡한 스케쥴링 알고리즘 필요
리눅스 스케쥴러: O(1), CFS와 같이 다양한 방식으로 변경시도 중
인터렉티브, IO, CPU 중심 프로세스로 미리 구분할 수 있다면 스케쥴링이 가능하다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
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
글 보관함