操作系统03进程管理Process_Scheduling

2 Process Scheduling

>Type of scheduling

>Scheduling Criteria (准则)

>Scheduling Algorithm

>Real-Time Scheduling (嵌入式系统)

 

2.1 Learning Objectives

By the end of this lecture you should be able to

·Explain what is Response Time 响应时间--分时系统

   Turnaround Time 周转时间--批处理系统

   Deadlines 截止时间--实时系统

   Throughput 吞吐量--批处理系统

·理解进程调度的目标、类型、原则

·理解Decision ModeNon-preemptive 非剥夺  Preemptive 剥夺

·理解经典的调度算法

FCFS

Round Robin

Shortest Process Next  需估计

Shortest Remaining Time Next  需估计

Highest Response Ratio Next  工程上难实现

Feed Back

·理解Real--Time System 及 类型

·理解掌握 Real--Time Scheduling

   Deadline Scheduling

   Rate Monotonic Scheduling (速度调节)

 


Type of Scheduling

Aim of Scheduling

·Response Time 响应时间 分时系统

·Throughout 系统吞吐量 批处理系统

·效率

·公平

 

2.2 Types of Scheduling

·按OS的类型划分:

批处理调度、分时调度、实时调度、多处理机调度

·按OS的层次划分

Long-term Scheduling 长程调度    作业-->进程

Medium-term Scheduling 中程调度  进程在内存中的调度

Short-term Scheduling 短程调度    Swap调度



 

  

Long-term Scheduling

频率较低,通常几分钟一次,甚至更久

又称高级调度,作业调度,它为被调度作业或用户程序创建进程,分配必要的系统资源,并将新创建的进程插入就绪队列,等待Short-term Scheduling.

·Determines which programs are admitted to the system for processing.

这取决于调度算法,如FCFS、短作业优先、基于优先权、响应比高者优先等调度算法。

·How many programs are admitted to the system?

---controls the degree of multi-programming.

·When does the scheduler be invoked?

---Each time a job terminates.

---Processor is idle exceeds a certain threshold.

 

Medium-term Scheduling

又称中级调度,它调度换出到磁盘的进程进入内存,准备执行

·中程调度配合对换技术使用;

·其目的是为了提高内存的利用率和系统吞吐量;

·在多道程序度允许的情况下,从外存选择一个挂起状态的进程调度到内存(换入)


 Short-term Scheduling

·又称为进程调度,低级调度,调度内存中的就绪状态执行。

·know as the dispatcher  决定就绪队列which进程将获得处理机

·Executes most frequently

· Invoked when an event occurs

---Clock interrupts

---IO interrupts

---Operating System calls

---Signals(信号)

 

进程调度程序主要功能

1、选择占有处理机进程;

2、进程上下文切换。

 

进程调度依据的算法与系统的设计目标相一致。

对不同的系统,通常采用不同的调度算法。

批处理:短作业进程优先  目标:增加系统吞吐量,提高系统资源利用率

分时:时间片轮转  目标:保证每个用户能容忍的响应时间

———————————————————————————————————————————————————————————————————————————— 


2.3 Scheduling Criteria

面向用户

面向系统

 

User-oriented

·Response Time 响应时间

---Elapsed time between the submission of a request until there is output. 常用于评价分时系统性能。

·Turnaround Time 周转时间

---是指从作业提交给系统开始,到作业完成为止的这段时间间隔,也称为作业周转时间,常用语评价批处理系统的性能。

·Deadlines 截止时间

---是指某任务必须开始执行的最迟时间(starting deadline)或必须完成的最迟时间(completion deadline),常用于评价实时系统的性能。

 

BEST EFFORT 原则

 

System-oriented

·Throughput 吞吐量

---单位时间内系统所完成的作业数,用于评价批处理系统的性能。

·处理机利用率

---This is the percentage of time that the processor is busy.

---Effective and efficient utilization of the processor.

·Balance Resource 资源平衡

---keep the resources of the system busy. 适用于长程调度和中程调度。

·Fairness 公平性

---Process should be treated the same, and no process should suffer starvation.

 

Priorities

·Scheduler will always choose a process of higher priority over one of lower priorities.

·Have multiple Ready Queues to represent each level of priority.

·Lower-priority may suffer starvation.

---allow a process to change its priority based on its age(生存期) or execution history.

 

  

2.4 Scheduling Algorithm

 

Decision Mode

·Non-preemptive (非剥夺方式)

---Once a process is in the running state, it will continue until it terminates or blocks itself for IO.

---主要用于批处理系统。

·Preemptive (剥夺方式)  优先原则;短进程优先原则;时间片原则

---Currently running process may be interrupted and moved to the Ready State by the operating system.

---Allows for better service since any one process cannot monopolize the processor for very long.

---主要用于实时性要求较高的实时系统 及 性能要求较高的批处理系统 和 分时系统。

 

Process Scheduling 

1、First-Come-First-Served (FCFS) 

进程一旦获得处理机,便一直进行下去,直到完成或阻塞

·Each process joins the Ready queue.

·When the current process ceases to execute, the oldest process in the Ready queue is selected.

·A short process may have to wait a very long time before it can execute.

·Favors CPU-bound processes

---IO processes have to wait until CPU-bound process completes.

FCFS is unfair to short process.

FCFS算法的实际应用

·一般,FCFS与其他调度算法混合使用

·系统可以按照不同的优先级维护多个就绪队列,每个队列内部按照FCFS算法调度。

  

2、短进程优先

3、最高响应比优先 

非剥夺调度算法  响应比 = (等待时间+要求服务的时间)/ 要求服务的时间

4、优先级

——静态优先级:进程创建时确定其优先级    进程类型:系统进程优先;    对资源的需求:需求少优先;    用户申请的优先级:付费高者优先

——动态优先级:优先级在进行期间动态调整    UNIX根据  占用处理机时间/等待处理机时间  动态调整

5、时间片轮转

6、前后台调度 用于批处理和分时相结合的系统中

分时--前台--时间片轮转  

批处理--后台--先来先服务 

仅当前台无作业时,才将处理机分配给后台作业。

7、多级反馈队列轮转算法


时间片S0<S1<...<Sn

每个进程运行2~3个时间片,若未完成,则降级。

先调度优先级高的队列,当高优先级队列为空时,调度下一队列。

只要有高优先级进程进入,则立即调度。

调度算法决定进程,分派程序完成分配处理机给该进程。


工程经验很重要    小作业 --> 大设计

 

————————————————————————————————————————————————————————————————————————————

 

2.5 Real-Time Scheduling

 

Real-Time Systems

·Correctness of the system depends not only on the logical result of the computation but also the time at which the result are produced.

·Tasks or processes attempt to control or react to events that take place in the outside world.

·These events occur in “real time” and process must be able to keep up with them.

 

 

Apply to

·Control of laboratory experiments

·Process control plants

·Robotics

·Aircraft control

·Telecommunications

·Military command and control system

 

指能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行的计算机系统。

·实时控制系统:指要求进行实时控制的系统,用于生产过程的控制,实时采集现场数据,并对采集的数据进行及时处理。如飞机的自动驾驶系统,以及导弹的制导系统。

·实时信息处理系统:指能对信息进行实时处理的系统。典型的信息处理系统有:飞机订票系统,情报 检索系统。

 

Real-Time Task

·按任务执行时是否呈现周期性来划分

>periodic (周期性)实时任务

>aperiodic (非周期性)实时任务,必须联系着一个deadline

·根据对截止时间的要求来划分

>hard real-time task 硬实时任务

---系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。

>soft real-time task 软实时任务

 

Characteristics of Real-Time Operating System

·Deterministic (确定性)

---Operations are performed at fixed, predetermined times or within predetermined time intervals.

---Concerned with how long the operating system delays before acknowledging an interrupt.

·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 amount of time to perform the interrupt.

 

Features of Real-Time Operating Systems

·Fast context switch

·Small size

·Ability to respond to external interrupts quickly

·Multi-tasking with inter-process communication tools such as semaphores, signals and events

·Files that accumulate data at a fast rate

·Use of special sequential files that can accumulate data at a fast rate

·Preemptive scheduling based 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

>Real-Time Scheduling

>Deadline Scheduling

>Rate Monotonic Scheduling

 

Scheduling of a Real-Time Process

·Round Robin Preemptive Scheduler 基于时间片的轮转调度算法

·Priority-driven Preemptive Scheduler 基于优先级的剥夺调度算法

·Priority-driven Non-preemptive Scheduler 基于优先级的非剥夺调度算法

·Immediate Preemptive Scheduler 立即剥夺调度算法

 

Round Robin Preemptive Scheduler

·响应时间在秒级

·广泛应用于分时系统,也可用于一般的实时信息处理系统

·不适合于要求严格的实时控制系统

 

Priority-driven Preemptive Scheduler

·当实时任务到达后,可以在时钟中断时,剥夺正在执行的低优先级进程的执行,调度执行高优先级的任务。

·响应时间较短,一般在几十毫秒或几毫秒。

 

 

 

 

Priority-driven Non-preemptive Scheduler

·为实时任务赋予较高的优先级,将它插入就绪队列队首,只要正在执行的进程释放processor,则立即调度实时任务执行。

·响应时间一般在数百毫秒到数秒之间。

·多用于多道批处理系统,也可以用于要求不太严格的实时系统。

 

Immediate Preemptive Scheduler

·要求操作系统具有快速响应外部事件的能力,一旦出现外部中断,只要当前任务未处于临界区,便立即剥夺其执行,把处理机分配给中断请求。

·调度时延可以降至100微妙,甚至更低。

 

Aim of Real-Time Scheduling

·hard real-time task 在其规定的截止时间内完成

·尽可能使soft real-time task 也能在规定的截止时间内完成

公平性和最短平均响应时间等要求已不再重要。

但是,大多数现代实时操作系统无法直接处理任务的截止时间,它们只能尽量提高响应速度,以尽快地调度任务。

 

Real-Time Scheduling

·Static table-driven 静态表驱动调度法

---Determines at run time when a table begins execution

·Static priority-driven preemptive 静态优先级剥夺调度法

---Traditional priority-driven scheduler is used

·Dynamic planning-based 动态计划调度法

·Dynamic best effort 动态最大努力调度法


Static table-driven approaches

·用于调度周期性实时任务

·按照任务周期到达的时间、执行时间、完成截止时间(ending deadline)以及任务的优先级,制定调度表,调度实时任务。

·最早截止时间优先(EDF)调度算法即属于此类。

·此类算法不灵活,任何任务的调度申请改动都会引起调度表的修改。

·此类算法多用于非实时多道程序系统。

·优先级的确定方法很多,例如在分时系统中,可以对IO bound processor bound的进程赋予不同的优先级,例如速度单调(RM)算法,即是为实时任务赋予静态优先级。

 

Dynamic planning-based approaches

·当实时任务到达后,系统为新到达的任务和正在执行的任务动态创建一张调度表。

·在当前执行进程不会错过其截止时间的条件下,如果也能使新到达任务在截止时间内完成,则立即调度执行新任务。

 

Dynamic best effort approaches

·实现简单,广泛用于非周期性实时任务调度

---当任务到达时,系统根据其属性赋予优先级,优先级高的先调度。例如最早截止时间有限EDF调度算法就采用了这种方法。这种算法总是尽最大努力今早调度紧迫任务,因此成为最大努力调度算法。

·缺点在于,当任务完成,或截止时间到达,很难知道该任务是否满足其约束时间。

 

Deadline Scheduling

·Information used

---Ready time

---Starting deadline

---Completion deadline 不会同时出现

---Processing time

---Resources requirement

---Priority

---Sub-task scheduler

一个任务可分解出强制子任务(mandatory sub-task)和非强制子任务(optional sub-task)。

只有强制子任务拥有硬截止时间 hard deadline

·Which task to schedule next?

---Scheduling tasks with the earliest deadlines minimized the fraction of tasks that miss their deadlines.

·What sort of preemptive is allowed?

---When starting deadlines are specified, then a non-preemptive scheduler make sense.

在执行完强制子任务或临界区后,阻塞自己。

---For a system with completion deadlines, a preemptive strategy is most appropriate.

 

Earliest Deadline 最早截止时间优先,简称ED

·常用调度算法

·若指定任务的starting deadline,则采用Non-preemption,当某任务的开始截止时间到达时,正在执行的任务必须执行完其强制部分或临界区,释放CPU,调度开始截止时间的任务执行。

Periodic tasks with completion deadlines

·由于此类任务是周期性的,可预测的,可采用静态表驱动之最早截止时间优先调度算法,使系统中的任务都能按要求完成。

·举例:周期性任务AB,指定了它们的完成截止时间,任务A每隔20毫秒完成一次,任务B每隔50毫秒完成一次。任务A每次需要执行10毫秒,任务B每次需要执行25毫秒。

Execution Profile of Two Periodic Tasks

Process

Arrival Time

Execution Time

Ending Deadline

A(1)

0

10

20

A(2)

20

10

40

A(3)

40

10

60

A(4)

60

10

80

...

...

...

...

B(1)

0

25

50

B(2)

50

25

100

 

 

 

Aperiod tasks with starting deadlines

·可采用最早截止时间优先调度算法或允许CPU空闲的EDF调度算法。

·Earliest Deadline with Unforced Idle Times (允许CPU空闲的EDF调度算法)

指优先调度最早截止时间的任务,并将它执行完毕才调度下一个任务。即使选定的任务未就绪,允许CPU空闲等待,也不能调度其他任务。尽管CPU利用率不高,但这种调度算法可以保证系统中的任务都能按要求完成。

 

Rate Monotonic Scheduling

速度单调调度算法

·Assigns priorities to tasks on the basis of their periods.

·Highest-priority task is the one with the shortest period.

·Period(任务周期),指一个任务到达至下一个任务到达之间的时间范围。

·Rate(任务速度),即周期(秒)的倒数,以赫兹为单位。

·任务周期的结束,表示任务的硬截止时间、任务的执行时间不能超过任务周期。

 

 ——————————————————————————————————————————————————————————————————————————


Linux PCB 为task_struct,定义在文件include/linux/seched.h中

系统有一个task[]数组,用于存放每一个进程控制块的指针。

fork()  一个进程创建其子进程,除PID外,代码段和数据的内容相同

exec() 进程执行

wait() 等待子进程结束

exit() 结束本进程


进程调度

普通进程  SCHED_OTHER  优先级 0~99  task_struct中的counter

实时进程  SCHED_RR/SCHED_FIFO  1~99  rt_priority

实时进程优先级高于其他进程


系统的3个TASK_QUEUE:tq_timer  tq_imediate  tq_scheduler

在文件sched.c中定义,DECLARE_TASK_QUEUE


Linux具体调度流程sched.c

调用run_task_queue处理任务队列tq_scheduler,普通进程counter值,实时进程counter+1000


SPINLOCK自旋锁  spinlock.h

普通自旋锁

读/写自旋锁  允许多个读者,一个写者

希望进入此区域的进程试图将此锁(是一个整数)的初始值从0置为1。如果是1,则再次尝试,此时进程好像在一段循环代码中自旋。

对包含此锁的内存区域的存取必须是原子性的。

控制进程离开临界区时,递减自旋锁。

任何自旋进程都可读取它,最快读取的将递增此值并进入临界区。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

skimage库需要依赖 numpy+mkl 和scipy

skimage库需要依赖 numpymkl 和scipy1、打开运行&#xff0c;输入cmd回车&#xff0c;输入python回车&#xff0c;查看python版本2、在https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 中&#xff0c;根据自己python版本下载需要的包 &#xff08;因为我的是python 2.7.13 …

操作系统04进程同步与通信

4.1 进程间的相互作用 4.1.1 进程间的联系资源共享关系相互合作关系临界资源应互斥访问。临界区&#xff1a;不论是硬件临界资源&#xff0c;还是软件临界资源&#xff0c;多个进程必须互斥地对它们进行访问。把在每个进程中访问临界资源的那段代码称为临界资源区。显然&#x…

oracle迁移到greenplum的方案

oracle数据库是一种关系型数据库管理系统&#xff0c;在数据库领域一直处于领先的地位&#xff0c;适合于大型项目的开发&#xff1b;银行、电信、电商、金融等各领域都大量使用Oracle数据库。 greenplum是一款开源的分布式数据库存储解决方案&#xff0c;主要关注数据仓库和BI…

CNN框架的搭建及各个参数的调节

本文代码下载地址&#xff1a;我的github本文主要讲解将CNN应用于人脸识别的流程&#xff0c;程序基于PythonnumpytheanoPIL开发&#xff0c;采用类似LeNet5的CNN模型&#xff0c;应用于olivettifaces人脸数据库&#xff0c;实现人脸识别的功能&#xff0c;模型的误差降到了5%以…

操作系统05死锁

进程管理4--Deadlock and Starvation Concurrency: Deadlock and Starvation 内容提要 >产生死锁与饥饿的原因 >解决死锁的方法 >死锁/同步的经典问题&#xff1a;哲学家进餐问题 Deadlock 系统的一种随机性错误 Permanent blocking of a set of processes that eith…

CNN tensorflow 人脸识别

数据材料这是一个小型的人脸数据库&#xff0c;一共有40个人&#xff0c;每个人有10张照片作为样本数据。这些图片都是黑白照片&#xff0c;意味着这些图片都只有灰度0-255&#xff0c;没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 942&am…

数据结构01绪论

第一章绪论 1.1 什么是数据结构 数据结构是一门研究非数值计算的程序设计问题中&#xff0c;计算机的操作对象以及他们之间的关系和操作的学科。 面向过程程序数据结构算法 数据结构是介于数学、计算机硬件、计算机软件三者之间的一门核心课程。 数据结构是程序设计、编译…

css3动画、2D与3D效果

1.兼容性 css3针对同一样式在不同浏览器的兼容 需要在样式属性前加上内核前缀&#xff1b; 谷歌&#xff08;chrome&#xff09; -webkit-transition: Opera&#xff08;欧鹏&#xff09; -o-transition: Firefox&#xff08;火狐&#xff09; -moz-transition Ie -ms-tr…

数据结构02线性表

第二章 线性表 C中STL顺序表&#xff1a;vector http://blog.csdn.net/weixin_37289816/article/details/54710677链表&#xff1a;list http://blog.csdn.net/weixin_37289816/article/details/54773406在数据元素的非空有限集中&#xff1a; (1)存在唯一一个被称作“第…

训练一个神经网络 能让她认得我

写个神经网络&#xff0c;让她认得我(๑•ᴗ•๑)(Tensorflow,opencv,dlib,cnn,人脸识别) 这段时间正在学习tensorflow的卷积神经网络部分&#xff0c;为了对卷积神经网络能够有一个更深的了解&#xff0c;自己动手实现一个例程是比较好的方式&#xff0c;所以就选了一个这样比…

数据结构03栈和队列

第三章栈和队列 STL栈&#xff1a;stack http://blog.csdn.net/weixin_37289816/article/details/54773495队列&#xff1a;queue http://blog.csdn.net/weixin_37289816/article/details/54773581priority_queue http://blog.csdn.net/weixin_37289816/article/details/5477…

树莓派pwm驱动好盈电调及伺服电机

本文讲述如何通过树莓派的硬件PWM控制好盈电调来驱动RC车子的前进后退&#xff0c;以及如何驱动伺服电机来控制车子转向。 1. 好盈电调简介 车子上的电调型号为&#xff1a;WP-10BLS-A-RTR&#xff0c;在好盈官网并没有搜到对应手册&#xff0c;但找到一份通用RC竞速车的电调使…

数据结构04串

第四章 串 STL&#xff1a;string http://blog.csdn.net/weixin_37289816/article/details/54716009计算机上非数值处理的对象基本上是字符串数据。 在不同类型的应用中&#xff0c;字符串具有不同的特点&#xff0c;要有效的实现字符串的处理&#xff0c;必须选用合适的存储…

CAS单点登录原理解析

CAS单点登录原理解析 SSO英文全称Single Sign On&#xff0c;单点登录。SSO是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。CAS是一种基于http协议的B/S应用系统单点登录实现方案&#xff0c;认识CAS之前首先要熟悉http协议、Session与Co…

数据结构05数组和广义表

第五章 数组 和 广义表 数组和广义表可以看成是线性表在下述含义上的扩展&#xff1a;表中的数据元素本身也是一个数据结构。 5.1 数组的定义 n维数组中每个元素都受着n个关系的约束&#xff0c;每个元素都有一个直接后继元素。 可以把二维数组看成是这样一个定长线性表&…

数据结构06树和二叉树

第六章 树和二叉树 6.1 树的定义和基本术语 树 Tree 是n个结点的有限集。 任意一棵非空树中&#xff1a; &#xff08;1&#xff09;有且仅有一个特定的称为根&#xff08;root&#xff09;的结点&#xff1b; &#xff08;2&#xff09;当n>1时&#xff0c;其余结点可…

CountDownLatch,CyclicBarrier和Semaphore

在java 1.5中&#xff0c;提供了一些非常有用的辅助类来帮助我们进行并发编程&#xff0c;比如CountDownLatch&#xff0c;CyclicBarrier和Semaphore&#xff0c;今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲&#xff1a;一.CountDownLatch用法二.CyclicBarrie…

数据结构07排序

第十章内部排序 10.1 概述 排序就是把一组数据按关键字的大小有规律地排列。经过排序的数据更易于查找。 排序前KiKj&#xff0c;且Ki在前: 排序方法是稳定的&#xff0c;若排序后Ki在前&#xff1b; 排序方法是不稳定的&#xff0c;如排序后Kj在前。 分类&#xff1a; 内…

数据结构08查找

第九章 查找 另一种在实际应用中大量使用的数据结构--查找表。 所谓查找&#xff0c;即为在一个含有众多的数据元素的查找表中找出某个“特定的”数据元素。 查找表 search table 是由同一类型的数据元素构成的集合。集合中的数据元素之间存在着完全松散的关系&#xff0c;故…

下载Centos7 64位镜像

下载Centos7 64位镜像 1.打开Centos官网 打开Centos官方网站地址&#xff1a;https://www.centos.org/&#xff0c;点击Get CentOS Now 2.点击Minimal ISO镜像 Minimal ISO镜像&#xff0c;与DVD ISO镜像的差别有很多&#xff0c;这里只说两点 1.Minimal ISO类似于Windows的纯净…