본문 바로가기
Computer Science

운영체제 스케줄링의 종류

by 개발자 데이빗 2021. 12. 20.

스케줄링 종류

배치 처리 시스템

프로그램을 순차적으로 실행될 수 있드록 하는 시스템

큐 구조와 비슷하다

 

문제점

특정 프로그램은 실행시간이 너무 오래 걸려서 다른 프로그램 실행을 위해 오랜 시간을 기다려야 할 수 있음

ex) 음악을 들으면서 문서 작성이 불가능하다

다양한 프로그램 동시 실행이 불가능하다 (동시성)

여러 사용자가 동시에 하나의 컴퓨터를 사용할 수 없다 (다중 사용자 지원)

 

시분할 시스템

다중 사용자 지원을 위해 응답 시간을 최소화 하는 시스템

 

멀티 태스킹

단일 CPU에서 여러 응용프로그램이 동시에 실행되는 것 처럼 보이도록 하는 시스템

실제 멀티 태스킹 (리눅스) 10~20ms 마다 실행 프로그램이 바뀌어 사용자에게는 동시에 실행되는 것처럼 보인다

특정 시점에 실행되고 있는 프로그램은 하나이나 잘게 쪼개 실행한다.

 

멀티 프로그래밍

하나의 프로세서에 대하여 다수의 프로세스를 메모리에 적재해 작업을 처리하는 것

멀티 프로그래밍은 CPU의 활용도를 최대한 높이기 위해 등장했다.

시간 대비 CPU 활용을 높인다

짧은 시간안에 응용 프로그램 실행을 완료 시킬 수 있다

 

멀티프로그래밍 예시

응용 프로그램이 실행되다가 파일을 읽는다 -> blocking 상태로 status 변경  -> 다른 응용프로그램 실행 -> 파일 읽기 완료 -> 기존 프로그램 실행

 

메모리 계층 예시

register -> level1 -> level 2 -> level 3 -> main memory -> flash drive -> hard disk

1 cycle -> 2~4 cycle -> 1-cycle -> 40 cycle -> 200cycle -> 10~100us -> 10ms

 

flash drive 또는 hard disk 계층의 데이터를 읽어오는데는 cycle로 표현하지 않고 us 또는 ms로 표현할만큼 시간이 오래 걸린다.

이러한 시간에 프로세스는 blocking 상태로 변경되며 그 동안 다른 프로세스가 실행된다.

 

멀티 프로세싱

여러 CPU에 하나의 프로그램을 병렬로 실행하여 실행속도를 극대화 시키는 시스템

 

DMA 란?

cpu의 저장매체 접근이 오래걸리기 때문에 dma에 저장매체에 데이터를 가져오도록 명령한 후 그동안 다른 응용프로그램 실행

 

정리

  • 시분할 시스템
    •  다중 사용자 지원, 컴퓨터 응답시간 최소화
  • 멀티 태스킹
    • 단일 cpu에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템
  • 멀티 프로세싱
    • 여러 cpu에서 하나의 응용 프로그램을 병렬로 실행해서 실행속도를 높이는 시스템
  • 멀티 프로그래밍
    • 최대한 cpu를 일정 시간당 많이 활용하는 시스템

 

'Computer Science' 카테고리의 다른 글

프로세스간 커뮤니케이션 (IPC)  (0) 2021.12.28
프로세스의 구조와 컨텍스트 스위칭  (0) 2021.12.27
인터럽트  (0) 2021.12.26
프로세스 스케줄링 알고리즘  (0) 2021.12.25
운영체제의 구조  (0) 2021.12.19

댓글