본문 바로가기

전공/운영체제

(16)
[운영체제] CPU 스케줄링: 알고리즘의 평가 - (1) 알고리즘의 평가(Algorithm Evaluation) - 시스템에 맞는 CPU 스케줄링 알고리즘을 선택하는 방법 1. 알고리즘을 선택하는 데 사용할 기준을 정의한다. 2. 선택 기준이 정의되면, 선택 기준에 따라 알고리즘들을 평가한다. 결정론적 모델링(Deterministic Modeling) 평가 방법 중 중요한 부류 중 하나가 분석적 평가(analytic evaluation)이다. 분석적 평가는 알고리즘 성능 평가하는 공식이나 값을 생성하기 위해 주어진 알고리즘과 시스템 부하를 이용한다. 결정론적 모델링(deterministic modeling)은 분석적 평가의 한 가지 유형이다. 이는 미리 정의된 특정 작업 부하를 이용하여 각 알고리즘의 성능을 정의한다. 결정론적 모델링의 장점은 단순하고 빠르고,..
[운영체제] CPU 스케줄링: 실시간 CPU 스케줄링 - (3) Earliest-Deadline-First 스케줄링(EDF Scheduling) Earliest-Deadline-First(EDF) 스케줄링 기법은 마감시간(deadline)에 따라서 우선순위를 동적으로 부여한다. 마감시간이 빠를수록 우선순위가 높아지고, 늦을수록 우선순위가 낮아진다. 프로세스는 실행 가능한 상태가 되면, 시스템에 마감시간을 알려야 한다. 우선순위는 새로 실행 가능한 프로세스의 마감시간을 반영해서 조정된다. RM 스케줄링과 달리, EDF 스케줄링은 프로세스들이 주기적일 필요도 없고, CPU burst time이 상수일 필요도 없다. 대신 프로세스는 실행 가능할 때 스케줄러에게 마감시간을 알려야 한다. 이론적으로 EDF 스케줄링은 각 프로세스의 마감시간 요구를 만족시키고 CPU 이용률이 1..
[운영체제] CPU 스케줄링: 실시간 CPU 스케줄링 - (2) 우선순위 기반 스케줄링(Priority-Based Scheduling) 실시간 OS의 가장 중요한 기능은 실시간 프로세스에 CPU가 필요할 때 즉시 응답을 해주는 것이다. 따라서, 실시간 OS의 스케줄러는 선점형 우선순위 기반 알고리즘을 지원한다. 이는 프로세스의 중요도에 따라 우선순위를 부여하고, 현재 CPU를 사용하고 있는 프로세스가 더 높은 우선순위를 가지는 프로세스에 의해 선점될 수 있다. 선점형 우선순위 기반의 스케줄러를 제공하는 것은 연성 실시간 시스템(soft real-time system) 임을 보장해준다. 하지만, 경성 실시간 시스템(hard real-time system)은 마감시간(deadline) 내에 수행되는 것을 보장해야 하므로, 부가적인 스케줄링 기법이 필요하다. 스케줄링될 프..
[운영체제] CPU 스케줄링: 실시간 CPU 스케줄링 - (1) 실시간 CPU 스케줄링(Real-Time CPU Scheduling) 실시간 시스템(real-time system)의 두 가지 종류 1. 연성 실시간 시스템(soft real-time system) 중요한 실시간 프로세스가 언제 스케줄링되는 지를 보장하지 않는다. 중요한 프로세스가 덜 중요한 프로세스보다 우선적으로 스케줄링된다는 것만 보장한다. 2. 경성 실시간 시스템 (hard real-time system) 태스크는 반드시 마감시간(deadline)까지 서비스되어야 한다는 것을 보장한다. 지연시간 최소화(Minimizing Latency) - 실시간 시스템의 event-driven 특성 실시간 시스템은 실시간으로 발생하는 이벤트를 기다린다. 이때, 이벤트는 타이머 만료와 같은 소프트웨어적 이벤트이거나..
[운영체제] CPU 스케줄링: multiprocessor 스케줄링 - (3) Heterogeneous Multiprocessing(HMP) - Heterogeneous multiprocessing(이기종 다중처리, HMP)란? 클럭 속도, 전력 관리 측면에서 코어들이 기능적으로 다르게 설계된다. 이때, 시스템/사용자 태스크는 모든 코어에서 실행될 수 있으므로 AMP(asymmetric multiprocessing) 형태는 아니다. HMP의 목적은 태스크의 특정 요구에 따라 특정 코어에 할당하여 전력 소비를 더 잘 관리하는 것이다. 예시) ARM 프로세서의 big.LITTLE big core: 더 많은 에너지를 소비하므로 짧은 시간 동안만 사용해야 한다. little core: 더 적은 에너지를 소비하므로 더 오랫도안 사용할 수 있다. - HMP의 장점 느린 코어와 빠른 코어의 결..
[운영체제] CPU 스케줄링: multiprocessor 스케줄링 - (2) load balancing(부하 균등화) SMP 시스템에서, multiprocessor의 이점을 최대한 활용하기 위해서, 부하를 모든 프로세서에서 균등하게 유지하는 것이 중요하다. 그렇지 않으면, 다른 프로세서들이 ready 큐에서 기다리는 스레드들이 많은 부하가 큰 상태일때, 하나 이상의 프로세서가 유휴(idle) 상태일 수 있다. 부하 균등화(load balancing)는 SMP 시스템에서 모든 프로세서들의 부하를 동일하게 유지하도록 노력한다. 부하 균등화는 각 프로세서별로 자신만의 ready 큐를 가지는 시스템에서 필요하지만, 공통 ready 큐를 가지는 경우에는 필요하지 않다. 부하 균등화의 두 가지 방법 1. push migration (push 이주) 특정 task가 주기적으로 각 프로세서의 ..
[운영체제] CPU 스케줄링: multiprocessor 스케줄링 - (1) 여러 CPU가 사용 가능하면, 여러 스레드가 병렬로 실행될 수 있으므로 부하 공유(load sharing)가 가능하다. multiprocessor라는 용어는 다음과 같은 시스템 아키텍처에서 사용할 수 있다. 1) multicore CPUs 2) multithreaded cores 3) NUMA systems 4) Heterogeneous multiprocessing 이때, 1), 2), 3)의 경우에는 각 코어의 동작이 기능적으로 동일하고, 4)의 경우에는 각 코어의 동작이 기능적으로 동일하지 않다. multiprocessor 스케줄링에 대한 접근 방법 multiprocessor 시스템에서의 CPU 스케줄링 방법 1. 비대칭 다중 처리(asymmetric multiprocessing, AMP) maste..
[운영체제] CPU 스케줄링: 스레드 스케줄링 현대의 운영체제에서는 프로세스가 아닌 커널 수준의 스레드가 스케줄링된다. 사용자 수준의 스레드는 스레드 라이브러리에 의해 관리되고 커널은 사용자 수준 스레드를 알 지 못한다. 사용자 수준 스레드는 CPU상에서 실행되기 위해서 커널 수준 스레드에 매핑되어야 한다. contention scope(경쟁 범위) 사용자 수준 스레드와 커널 수준 스레드의 스케줄링 방식의 차이 1. 프로세스 경쟁 범위(process contention scope, PCS) 다대일과 다대다 모델에서 사용자 수준 스레드를 가용한 LWP에 스케줄링한다. 이때, 동일한 프로세스 내 스레드 간 CPU를 경쟁하기 때문에 프로세스 경쟁 범위라 한다. 2. 시스템 경쟁 범위(system contention scope, SCS) 일대일 모델에서 커..