스케줄링 종류
배치 처리 시스템
프로그램을 순차적으로 실행될 수 있드록 하는 시스템
큐 구조와 비슷하다
문제점
특정 프로그램은 실행시간이 너무 오래 걸려서 다른 프로그램 실행을 위해 오랜 시간을 기다려야 할 수 있음
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 |
댓글