Multiprocessor and Real-time Scheduling

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Advertisements

When Poll is Better than Interrupt
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
Chapter 2 Operating System Overview
Lecture #8 Multiprocessor and Real-time Scheduling.
Mar OSEK/VDK Woo Dong Kyun.
Chapter 7 ARP and RARP.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
1.1 병렬처리의 한계와 가능성 1.2 병렬처리의 단위 1.3 병렬컴퓨터의 분류 1.4 병렬컴퓨터의 성능 척도
Chapter 3 데이터와 신호 (Data and Signals).
TinyOS 소개와 이해 한양대학교 무선이동통신 연구실
정보통신실습 및 특강(5)
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
Operating Systems Overview
REINFORCEMENT LEARNING
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
제 2 장 프로세스 관리 2.1 개요 프로세스 스케줄링은 준비완료(ready) 상태에 있는 프로세스들 중 어느 것을 중앙처리장치에 할당시킬 것인가를 결정 중앙처리장치 처리율(throughput)의 최대화와 반환 시간(turnaround time)의 최소화 2.2 프로세스.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
운영체제 (Operating Systems)
프로세스 관리.
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
1. 스케줄링 개요 [그림 6-16] 프로세스의 반환, 대기, 반응 시간
[멀티미디어 문서구조화특론 ] Workflow
임베디드 운영체제 (리눅스 중심) Lecture #2.
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
14장. 병렬 프로세서 다루는 내용 병렬 프로세서로의 개념 병렬 처리와 병렬 컴퓨터 분류 배열 프로세서와 다중 프로세서의 개념
On the computation of multidimensional Aggregates
운영체제 (OS: Operating System)
CPU스케줄링(CPU Scheduling) ~
Chapter 5. CPU 스케줄링 (CPU Scheduling)
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
CAVE : Channel-Aware Buffer Management Scheme for Solid State Disk
Multiprocessor and Real-time Scheduling
운영체제 (Operating System)
Chapter 5. CPU 스케줄링 (CPU Scheduling)
Lecture #3 프로세스(Process).
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
운영체제 (Operating Systems) (Multi-Thread Programming)
운영체제 (Operating Systems)
Xen and the Art of Virtualization
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
Chapter 10. 파일 시스템 인터페이스(File System Interface)
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
Cognitive radio Either a network or a wireless node changes its transmission or reception parameters to communicate efficiently avoiding interference with.
제5장 CPU스케줄링(CPU Scheduling)
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
운영체제(Operating System)
제4장 : 노동력 구조 1. 한국의 노동력 구조 2. 일본의 노동력구조 3. 유럽의 노동력 구조 4. 노동력 구조의 변화와 정책방향 동영상 학습과제 1. 노동력 구조와 의미는? 2. 각국의 노동력 구조를 조사하는 방법은? 3. 각국의 노동력 구조의 변화추이는? 4.
운영체제 (Operating Systems) (Memory Management Strategies)
MAC Management 광운대학교 무선네트워크연구실 이 종 헌
Computer System Overview
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
Chapter 12 Memory Organization
시스템 분석 및 설계 글로컬 IT 학과 김정기.
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
제4장 CPU 스케줄링 이나현.
Chapter 13 – 객체 지향 프로그래밍 Outline 13.1 소프트웨어의 재사용과 독립성
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
점화와 응용 (Recurrence and Its Applications)
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
17. Spawning Information Agents on the Web
I/O Management and Disk Scheduling
Lecture #7 CPU Scheduling.
Concurrency: Deadlock and Starvation
Chapter 7: Deadlocks.
가상 기억장치 (Virtual Memory)
Presentation transcript:

Multiprocessor and Real-time Scheduling Lecture #8 Multiprocessor and Real-time Scheduling 신라대학교 컴퓨터공학과 운영체제

다중 처리기의 분류 Loosely coupled multiprocessor 각 프로세서가 자기 고유의 지역 메모리와 I/O 채널을 가진다 Distributed system, clustered system 등 Functionally specialized processors I/O processor 등 master processor에 의해 제어된다 Tightly coupled multiprocessing 모든 프로세서가 주기억장치를 공유한다 SMP 등 신라대학교 컴퓨터공학과 운영체제

프로세스 병렬성(Process Parallelism) Synchronization Granularity Independent Parallelism 다수의 연관성이 없는 프로세스 사이의 병렬성 Very coarse grained parallelism 네트워크 노드 상의 분산 처리(distributed processing) Coarse grained parallelism 다중 프로그래밍 환경에서 프로세스들의 다중 처리 (multiprocessing) Medium grained parallelism 하나의 응용에서의 병렬 처리(Parallel processing) Thread 수준의 병렬성 Fine grained parallelism 명령어 수준의 병렬성 신라대학교 컴퓨터공학과 운영체제

Independent Parallelism Separate application or job No synchronization among processes Example is time-sharing system 신라대학교 컴퓨터공학과 운영체제

Coarse and Very Coarse-Grained Parallelism Synchronization among processes at a very gross level Good for concurrent processes running on a multiprogrammed uniprocessor Can by supported on a multiprocessor with little change 신라대학교 컴퓨터공학과 운영체제

Medium-Grained Parallelism Single application is a collection of threads Threads usually interact frequently 신라대학교 컴퓨터공학과 운영체제

Fine-Grained Parallelism Highly parallel applications Specialized and fragmented area 신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

Process Scheduling Single queue for all processes Multiple queues are used for priorities All queues feed to the common pool of processors 신라대학교 컴퓨터공학과 운영체제

Thread Scheduling Executes separate from the rest of the process An application can be a set of threads that cooperate and execute concurrently in the same address space Threads running on separate processors yields a dramatic gain in performance 신라대학교 컴퓨터공학과 운영체제

다중 처리기 스케줄링 (Multiprocessor Scheduling) (1) Multiprocessor thread scheduling Load sharing processes are not assigned to a particular processor Gang scheduling a set of related threads is scheduled to run on a set of processors at the same time Dedicated processor assignment threads are assigned to a specific processor Dynamic scheduling number of threads can be altered during course of execution 신라대학교 컴퓨터공학과 운영체제

다중 처리기 스케줄링 (Multiprocessor Scheduling) (2) Load Sharing(부하 분산) 부하를 모든 프로세서에 대해 적절하게 분산한다 유휴 프로세서가 없음을 보장 중앙 집중식 스케줄러가 필요 없다 global queue을 사용 단 점: global queue에 대한 상호배제  하나 이상의 프로세서가 동시에 실행할 작업을 얻고자 할 때에 bottleneck이 될 수 있다 선점된 스레드가 동일한 프로세서에서 실행을 재개할 가능성이 적다  캐시의 효율성을 떨어뜨린다 하나의 프로그램을 구성하는 모든 스레드가 동시에 프로세서를 얻어 실행할 가능성이 적다 신라대학교 컴퓨터공학과 운영체제

다중 처리기 스케줄링 (Multiprocessor Scheduling) (3) Gang Scheduling 하나의 프로세스을 구성하는 모든 스레드들에 대해 동시 스케줄링 응용 프로그램의 부분적인 실행으로 성능이 심각하게 떨어지는 응용 프로그램에 대해서는 유용하다 스레드는 상호간에 동기화를 종종 요구한다 Dedicated Processor Scheduling 하나의 프로세스를 구성하는 모든 스레드를 하나의 프로세서에 할당한다 일부 프로세서가 유휴상태가 될 수 있다 process switching을 피한다 신라대학교 컴퓨터공학과 운영체제

다중 처리기 스케줄링 (Multiprocessor Scheduling) (4) Dynamic Scheduling 프로세스를 구성하는 스레드 수가 실행되는 동안에 동적으로 변하는 경우 운영체제가 각 프로세서의 부하를 고려하여 프로세서를 할당한다 Assign idle processors New arrivals may be assigned to a processor that is used by a job currently using more than one processor Hold request until a processor is available Assign a processor to a job in the list that currently has no processors (i.e., to all waiting new arrivals) 신라대학교 컴퓨터공학과 운영체제

실시간 시스템(Real-Time System) Correctness of the system depends not only on the logical result of the computation but also on the time at which the results are produced Task Deadline - 외부 사건에 실시간을 대처하는 태스크의 시작 및 종료 시간 분 류 – deadline 준수 강도에 따라 경성 실시간 시스템(Hard Real-Time System) 연성 실시간 시스템(Soft Real-Time System) 예 : Control of laboratory experiments Process control plants Robotics Air traffic control Telecommunications 신라대학교 컴퓨터공학과 운영체제

실시간 운영체제의 특성 (1) Deterministic Responsiveness Operations are performed at fixed, predetermined times or within predetermined time intervals Concerned with how long the operating system delays before acknowledging an interrupt and there is sufficient capacity to handle all the requests within the required time Responsiveness How long, after acknowledgment, it takes the operating system to service the interrupt Includes amount of time to begin execution of the interrupt Includes the amount of time to perform the interrupt Effect of interrupt nesting 신라대학교 컴퓨터공학과 운영체제

실시간 운영체제의 특성 (2) User control Reliability Fail-soft operation User specifies priority Specify paging What processes must always reside in main memory Disks algorithms to use Rights of processes Reliability Degradation of performance may have catastrophic consequences Fail-soft operation Ability of a system to fail in such a way as to preserve as much capability and data as possible Stability 신라대학교 컴퓨터공학과 운영체제

실시간 운영체제의 기술적 특징 (1) Fast process or thread switch Small size Ability to respond to external interrupts quickly Multitasking with interprocess communication tools such as semaphores, signals, and events 신라대학교 컴퓨터공학과 운영체제

실시간 운영체제의 기술적 특징 (2) Use of special sequential files that can accumulate data at a fast rate Preemptive scheduling base on priority Minimization of intervals during which interrupts are disabled Delay tasks for fixed amount of time Special alarms and timeouts 신라대학교 컴퓨터공학과 운영체제

Scheduling of a Real-Time Process (1) 신라대학교 컴퓨터공학과 운영체제

Scheduling of a Real-Time Process (2) 신라대학교 컴퓨터공학과 운영체제

Real-Time Scheduling Static table-driven Determines at run time when a task begins execution e.g) Deadline scheduling Static priority-driven preemptive Traditional priority-driven scheduler is used e.g) Rate monotonic algorithm Dynamic planning-based Feasibility determined at run time Dynamic best effort No feasibility analysis is performed 신라대학교 컴퓨터공학과 운영체제

Deadline Scheduling (1) Real-time applications are not concerned with speed but with completing tasks Information used for real-time task scheduling Ready time Starting deadline Completion deadline Processing time Resource requirements Priority Subtask scheduler 신라대학교 컴퓨터공학과 운영체제

Deadline Scheduling (2) Earliest deadline scheduling 데드라인이 가장 임박한 태스크를 먼저 실행하도록 스케줄링 데드라인이 가장 가까운 태스크에게 높은 우선순위를 부여 데드라인을 만족시켜 주지 못하는 태스크의 수를 최소화 단일 처리기/다중 처리기 시스템 모두에 적용 가능 모드 태스크들이 주기적으로 실행되고 또 예측 가능하여야 함 자발적 유휴 시간을 허용하는 earliest deadline scheduling 기본적으로 earliest deadline scheduling 정책에 따라 스케줄링 충분한 데드라인을 가지는 타스크에 대해 유휴 시간을 가지게 함으로써 다른 타스크에 대한 스케줄링에 융통성을 제공 신라대학교 컴퓨터공학과 운영체제

Two Tasks 신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

Rate Monotonic Scheduling Assigns priorities to tasks on the basis of their periods Task period T 어떤 타스크의 인스턴스가 도착한 후부터 다음 번의 인스턴스가 도착할 때까지의 시간 타스크의 경성 데드라인 역할 Task rate R - 타스크 주기의 역수, Hz 단위로 표시 Highest-priority task is the one with the shortest period 주기적 실시간 다중 타스크들을 스케줄링할 때 발생하는 문제점들을 효율적으로 해결 신라대학교 컴퓨터공학과 운영체제

Periodic Task Timing Diagram 신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

Earliest Deadline Scheduling(EDS) vs. Rate Monotonic Scheduling(RMS) EDS가 이론적으로 더 높은 처리기 이용률을 달성하여 RMS보다 더 많은 주기적 타스크들을 스케줄링 가능 반면, 상용 실시간 시스템에서는 RMS를 광범위하게 사용 두 스게줄링 정책의 성능 차이가가 현실적으로 크기 않다 경성 실시간 타스크와 연성 실시간 타스크가 동시에 지원되는 환경에서 RMS는 경성 실시간 타스크 스케줄링 과정에서 발생하는 유휴 처리기 시간을 이용하 연성 실시간 타스크를 스케줄링함으로써 시스템 효율성을 높임 RMS가 EDS보다 높은 시스템 안정성을 확보 신라대학교 컴퓨터공학과 운영체제

Priority Inversion Can occur in any priority-based preemptive scheduling scheme Occurs when circumstances within the system force a higher priority task to wait for a lower priority task 신라대학교 컴퓨터공학과 운영체제

Unbounded Priority Inversion Duration of a priority inversion depends on unpredictable actions of other unrelated tasks 신라대학교 컴퓨터공학과 운영체제

Priority Inheritance Lower-priority task inherits the priority of any higher priority task pending on a resource they share 신라대학교 컴퓨터공학과 운영체제

Thread Scheduling (1) Possible scheduling of user-level threads 50-msec process quantum / threads run 5 msec/CPU burst 응용 스레드 스케줄러 사용으로 보다 효율적으로 스케줄링 가능 스레드 문맥 교환은 운영체제의 개입이 필요 없어 간단 신라대학교 컴퓨터공학과 운영체제

Thread Scheduling (2) Possible scheduling of kernel-level threads A1 스레드가 블록킹 된 후에 다른 스레드로 스케줄링할 때에 A2와 B1 스레드의 중요도가 같으나 문맥교환 비용이 B1이 높을 때에 다음에 실행될 스레드는? Possible scheduling of kernel-level threads 50-msec process quantum / threads run 5 msec/CPU burst 커널 스케줄러에 의해 스레드 스케줄링이 실행 스레드 문맥 교환 비용이 크다 신라대학교 컴퓨터공학과 운영체제

알고리즘 평가 Which one is best? The answer depends on: 평가 방법 on the system workload (extremely variable) hardware support for the dispatcher relative weighting of performance criteria (response time, CPU utilization, throughput...) evaluation method used 평가 방법 결정성 모형화(Deterministic Modeling) 큐잉 모형(Queueing Model) 모의실험(Simulation) 구현(Implementation) 신라대학교 컴퓨터공학과 운영체제

Linux Scheduling Scheduling classes SCHED_FIFO: First-in-first-out real-time threads SCHED_RR: Round-robin real-time threads SCHED_OTHER: Other, non-real-time threads Within each class multiple priorities may be used 신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

Non-Real-Time Scheduling Linux 2.6 uses a new scheduler the O(1) scheduler Time to select the appropriate process and assign it to a processor is constant Regardless of the load on the system or number of processors 신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

UNIX SVR4 Scheduling Highest preference to real-time processes Next-highest to kernel-mode processes Lowest preference to other user-mode processes 신라대학교 컴퓨터공학과 운영체제

UNIX SVR4 Scheduling Preemptable static priority scheduler Introduction of a set of 160 priority levels divided into three priority classes Insertion of preemption points 신라대학교 컴퓨터공학과 운영체제

SVR4 Priority Classes 신라대학교 컴퓨터공학과 운영체제

SVR4 Priority Classes Real time (159 – 100) Kernel (99 – 60) Guaranteed to be selected to run before any kernel or time-sharing process Can preempt kernel and user processes Kernel (99 – 60) Guaranteed to be selected to run before any time-sharing process Time-shared (59-0) Lowest-priority 신라대학교 컴퓨터공학과 운영체제

SVR4 Dispatch Queues 신라대학교 컴퓨터공학과 운영체제

Windows Scheduling Priorities organized into two bands or classes Real time Variable Priority-driven preemptive scheduler 신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제

신라대학교 컴퓨터공학과 운영체제