취업 준비/운영체제

프로세스 상태와 스케쥴링

openingsound 2020. 12. 30. 19:18

멀티프로그래밍과 Wait

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

프로세스 상태

프로세스 상태

  • 프로세스 상태

    • 실행 가능상태인것을 실행 시켜야 하니 스케쥴러가 현재 프로세스의 상태를 알아야 한다.
    • 실행가능 (ready)
      • CPU에서 실행 가능 상태
    • 대기 (block / waiting)
      • 특정 이벤트 발생 대기 상태
      • 프린팅이 다 되었따!
      • 저장매체에 파일을 읽어달라고하면 읽는동안 block상태가 됨(읽는거 기다림)
    • 실행중(running state)
      • 현재 CPU에서 실행 상태
    • 종료(exit)
      • 사용하던 자원같은거도 돌려놓는 시간이 필요함
  • 프로세스 상태간 관계

    • Running → Block → Ready ← → Running
    • Running상태에서 프린팅을 하면 Block 상태가 되고 프린팅이 다 끝나면 Ready 상태가 된다. 그럼 스케쥴러가 Running으로 바꾸면 실행 되는 것이다.
    • 실행이 되다가 시분할 시스템 떄문에 작업이 끝나지 않았지만 Running 에서 Ready상태가 될 수도 있다.

idle 상태

  • CPU가 아무것도 안하고 놀고 있는 상태

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

  • 선점형 스케쥴러(Preemptive Scheduling)
    • 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음
    • 이전에 작동중인(running) 프로세스를 ready상태로 바꿔 버리고 다른 프로세스로 교체 가능
    • 작동중이던걸 스케쥴러가 막 멈추고 바꿔 버림
    • 최근에는 대부분 선점형 스케쥴러 이다.
    • RoundRobin
  • 비선점형 스케쥴러(Non-preemptive Scheduling)
    • 하나의 포로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
    • CPU가 A를 실행중이다가 자발적으로 block되거나 end가 되어야만 ready상태에 있던 다른 B, C가 CPU에서 실행 될 수 있음
    • FIFO, SJF , Priority-based
  • 비선점형과 선점형을 섞어서 만듬
    • FIFO + 선점형
    • 정적 우선순위 + 선점형
      • 우선순위 비교를 매 순간마다 하는경우도 있고 선점형 교체 시에만 하는 경우가 있다 후자가 복잡도가 더 낮다.

쉬어가기

  • 렉?
    • 마우스 / 키보드 반응이 느린 경우?
    • 스케쥴러가 해결해야하는 이슈
    • 다양하고 복잡한 스케쥴링 알고리즘이 필요하다.
    • interactive, IO, CPU 중심 프로세스로 미리 구분할 수 있다면 보다 개선된 스케쥴링이 가능함

'취업 준비 > 운영체제' 카테고리의 다른 글

프로세스와 컨텍스트 스위칭  (0) 2020.12.30
인터럽트  (0) 2020.12.30
스케쥴링 알고리즘  (2) 2020.12.30
프로세스 스케쥴링 기초  (0) 2020.12.24
운영체제의 구조  (0) 2020.12.23