/////
Search
📝

4월15일(월)

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

어느 시점에 어느 프로세스에게 자원을 할당할 것인지 결정 프로세서 스케쥴링 인터럽트 처리, 오류 처리, 시스템 콜 같은 경우엔, 스케쥴링 불필요

장점

프로세스 이용륭 증가 프로세서 처리율 증가 작업 응답시간 최소화