4장(19page) 이어서 진행
Parallelism
시간과 정확도는 Trade-off가 존재합니다 → 개선할 수 있는 한계점이 존재
계산복잡도
시간(속도)는 Hardware에 영향을 많이 받음
물론, Software를 경량화해서 더 좋은 속도를 만들어냄
게산복잡도
정확도는 Software에 영향을 많이 받음
물론, Hardware가 좋은 것을 써서, 정확도를 높임
Amdahl’s Law
Trade-off가 존재해서 성능 개선의 한계점이 있다
Gustafson Law
Amadahl’s Law는 너무 보수적으로 성능 개선을 측정했다(비관적이다)
Amadahl’s Law의 단점은 이러하다
•
컴퓨틴 작업에서 순차작업의 비중이 상당 차지
•
작업을 최적화(최소화)하기 어렵다
•
병렬처리가 어렵고, 병렬처리에 적합하지 않음
•
하드웨어 병목현상(메모리 대역폭, 대기시간 등)에 대한 고려X
•
스레드 생성, 동기화, 통신 오버헤드 등을 고려X
Gusafson Law의 최대성능개선 계산식
Multi - (…)
Multi Processing
병렬처리 | 프로세서 두 개 이상이 일을 동시에 처리
Multi Programming
어떤 프로세스가 입출력 작업을 하는 동안, 프로세서가 다른 프로그램을 실행할 수 있도록 하는 것
프로세서 자원낭비를 최소화
Multi Tasking
작업(프로그램들)이 운영체제의 스케쥴링에 따라 번갈아가며 수행
정해진 시간동안 교대로 프로그램 실행
Multi Thread
프로세스 하나에서 스레드 여러 개를 동시 실행
IPC 불필요
User Threads & Kernel Threads
User Threads
유저레벨의 스레드 라이브러리에서 수행되는 관리 : 세 개의 대표적인 주요 스레드 라이브러리
Posix Pthreads, Windows threads, Java threads
Kernel Threads
커널에 의해 지원되는 스레드
일반적 목적의 가상 운영체제 : Windows, Linux, MacOS, IOS, Android
MultiThreading Models : 3가지
Many-to-one
One-to-one
Many-to-many
Fork - Join Parallelism
5장 진입
CPU Scheduling
프로세스가 생성되고, 레디 상태로 들어간 경우, 여러 상태가 존재할 수 있다
CPU가 어떤 프로세스에게 자원을 할당해서 해당 프로세스를 진행시킬 것인지에 대한 내용이 CPU Scheduling
Basic Concepts
멀티프로그래밍을 통해 CPU 활용을 극대화 가능
CPU - I/O Burst Cycle : CPU 실행과 I/O Wait의 사이클로 구성된 프로세스 실행
CPU Burst : I/O Burst가 딸려옴
CPU Burst
I/O Burst
Scheduling
Histogram of CPU-burst Times
대부분은 짧게짧게 끝나는 프로세스의 비중이 매우 높다
길게 진행되는 프로세느는 잘 없음
CPU Scheduler
Ready Queue 안에서 프로세스들 중 하나를 골라서, 자원을 할당해준다
발생 시기
•
Running → Waiting state
•
Running → Ready state
•
Waiting → Ready state
•
Terminate
NonPreemptive(비선정형)
CPU 스케쥴러가 ReadyQueue 내의 프로세스를 꼭 골라줘야한다
•
Running → Waiting state가 되는 경우
•
Terminated되는 경우
Preemptive(선정형) VS Non-Preemptive(비선정형)
Preemptive Scheduling
•
특정 프로세스가 CPU를 할당받아 실행중이더라도, 운영체제가 CPU를 강제로 회수할 수 있는 스케쥴링 방식
•
실행상태의 프로세스를 중단시키고 새로운 프로세스 실행 가능
•
우선순위 높은 프로세스가 낮은 프로세스 중단시키고 CPU 점유 가능
•
프로세스가 CPU를 독점할 수 없음
◦
대화형, 시분할 시스템에 적합
•
I/O 요청, 프로세스 종료 등등
Non-Preemptive Scheduling
•
CPU를 강제 회수 불가능한 스케쥴링 방식
•
실행상태 프로세스 작업이 완료될때까지 회수 불가능
◦
실행중인 프로세스의 CPU 반환 전까지 다른 프로세스는 CPU 점유 불가
•
작업량이 적음
•
기다리는 프로세스들이 많아짐 → 처리율 감소
•
일괄작업방식 스케쥴러
Scheduling
어느 시점에 어느 프로세스에게 자원을 할당할 것인지 결정
프로세서 스케쥴링
인터럽트 처리, 오류 처리, 시스템 콜 같은 경우엔, 스케쥴링 불필요
장점
프로세스 이용륭 증가
프로세서 처리율 증가
작업 응답시간 최소화


