抢占式优先权算法
- 格式:ppt
- 大小:1.59 MB
- 文档页数:31
进程调度算法总结所谓进程,简单来说是计算机中的各种任务,那么计算机如何分配系统资源以供这些任务使⽤呢?此篇博客⽬的就是为⼤家整理⼀下⼏种常见进程调度算法。
进度调度就是按照⼀定的策略,动态地把处理机分配给处于就绪队列的进程,使之执⾏。
常见的进程调度算法:1、先来先服务和短作业(进程)优先调度算法2、⾼优先权优先调度算法3、基于时间⽚的轮转调度算法下⾯细说:1、先来先服务和短作业优先调度算法1.1、先来先服务调度算法这种调度算法由字⾯意思理解很直观,所谓先来先服务,就是谁先来先服务谁。
结合进程,先来先服务调度算法就是对于优先到达就绪队列的进程采取优先服务的策略,直到该进程运⾏结束或发⽣某事件导致阻塞才放弃处理机。
这种调度算法是⼀种最简单的调度算法,适⽤于作业和进程。
当⽤于作业时,先进⼊后备队列的作业先运⾏。
1.2、短作业(进程)优先调度算法短作业(进程)优先调度算法,是对短作业或短进程进⾏得调度算法。
何为短?就是估计运⾏时间短。
该算法从后备队列或就绪队列选择估计运⾏时间较短的作业或进程,将他们调⼊内存运⾏,直到该进程运⾏结束或发⽣某事件导致阻塞才放弃处理机重新进⾏调度。
2、⾼优先权优先调度算法2.1、优先权调度算法上述所说的两种调度算法,过于简单,当系统中有紧急作业或进程,且不满⾜先进队列或运⾏时间短时,这些作业或进程将很难得到资源。
那么对于这些作业或进程,⼜该怎么办呢?因此,⼜有了优先权调度算法,所谓优先权调度算法,顾名思义就是谁的优先权⾼,谁就西安得到资源得以运⾏。
进⼀步将算法分为以下两种:2.1.1、⾮抢占式优先权算法在这种⽅式下,系统⼀旦把处理机分配给就绪队列中优先权最⾼的进程后,该进程便⼀直执⾏下去,直⾄完成;或因发⽣某事件使该进程放弃处理机时,系统⽅可再将处理机重新分配给另⼀优先权最⾼的进程。
这种调度算法主要⽤于批处理系统中;也可⽤于某些对实时性要求不严的实时系统中。
2.1.2、抢占式优先权算法在这种⽅式下,系统同样是把处理机分配给优先权最⾼的进程,使之执⾏。
优先权调度算法的类型
1.非抢占式优先权调度算法:
非抢占式优先权调度算法是指一旦一个进程开始执行,其他进程无法抢占其CPU资源,直到该进程完成或主动释放CPU。
这种类型的优先权调度算法具有简单和易于实现的特点,但容易导致饥饿问题,即一些低优先级的进程可能永远无法执行。
2.抢占式优先权调度算法:
抢占式优先权调度算法允许进程在执行过程中被其他优先级更高的进程抢占CPU资源。
这种类型的优先权调度算法可以有效解决饥饿问题,但实现相对复杂,需要考虑进程状态保存和恢复的问题。
3.静态优先权调度算法:
静态优先权调度算法是在进程创建时就给予每个进程一个优先级,之后不再改变。
这种类型的优先权调度算法适用于优先级相对固定、难以变化的场景。
但是,静态优先权调度算法可能导致低优先级进程无法获得足够的CPU使用时间。
4.动态优先权调度算法:
动态优先权调度算法是根据一定规则和策略不断调整进程的优先级。
这种类型的优先权调度算法可以根据进程的行为和状态来调整优先级,有助于提高系统的性能和公平性。
5.多级队列优先权调度算法:
多级队列优先权调度算法将进程按优先级划分为多个队列,每个队列拥有不同的优先级范围。
进程首先进入最高优先级队列,只有在该队列中
没有可运行的进程时,才会调度下一个优先级较低的队列。
这种类型的优先权调度算法可以根据不同的优先级范围进行调度,提高系统的资源利用率和响应速度。
综上所述,优先权调度算法可以根据是否抢占、是否静态、是否动态以及是否多级队列来进行划分。
不同类型的优先权调度算法在不同的场景下有各自的优势和适用性,选择合适的算法可以提高系统的性能和用户体验。
抢占式最高优先级算法抢占式最高优先级算法是一种常见的调度算法,用于在多进程或多线程的操作系统中,决定拥有高优先级的任务是否可以抢占当前正在执行的低优先级任务,以便让高优先级任务先执行。
本文将介绍抢占式最高优先级算法的原理、应用场景以及其优缺点。
原理抢占式最高优先级算法依据任务的优先级来进行调度。
每个任务都被赋予一个优先级,较高优先级的任务拥有更高的执行权。
如果一个高优先级的任务到达并请求执行,它会立即抢占正在执行的低优先级任务,使自身先执行。
一旦高优先级任务执行完毕或者被阻塞,低优先级任务会继续执行。
抢占式最高优先级算法的关键在于选择高优先级任务并进行抢占。
这一选择常常基于预定的策略,如固定优先级、动态优先级或抢占周期。
应用场景抢占式最高优先级算法在许多实时操作系统(RTOS)中被广泛应用,以确保高优先级任务能够及时响应。
1.实时任务:在实时系统中,某些任务需要及时响应来满足硬实时性要求。
比如,在飞行控制系统中,传感器数据的处理常常具有较高的优先级,以便实时调整飞行控制参数。
2.实时多媒体:在视频或音频播放中,保证实时性是非常重要的。
为了避免出现卡顿或延迟,实时多媒体任务通常具有相对较高的优先级,以确保及时进行数据解码和渲染。
3.紧急事件响应:在多任务的环境中,某些任务可能需要及时响应紧急事件。
比如,网络服务器在遇到高流量或攻击时需要迅速调整优先级以应对。
优点抢占式最高优先级算法具有以下优点:1.及时响应高优先级任务:算法能够保证高优先级任务的及时执行,使得系统能够满足实时性要求。
2.简单高效:算法的实现相对简单,可以高效地处理任务调度。
相比其他调度算法,抢占式最高优先级算法通常需要较少的计算和资源。
3.适用性广泛:算法可以应用于多种场景,可以根据具体需求进行灵活调整。
缺点抢占式最高优先级算法也存在一些局限性:1.低优先级任务饥饿:当高优先级任务过多时,低优先级任务可能被长时间地阻塞,无法得到充分执行。
在单片机系统中,优先级调度算法用于确定在有多个任务同时运行时,哪个任务具有更高的优先级,应该先执行。
这在实时系统和嵌入式系统中非常重要,因为这些系统通常需要对任务的响应时间和执行顺序进行精确控制。
以下是一些常见的单片机优先级调度算法:1. 固定优先级调度(Fixed Priority Scheduling):- 每个任务被分配一个固定的优先级,由开发者在设计时确定。
- 任务按照它们的优先级进行调度,具有更高优先级的任务将在具有较低优先级的任务之前执行。
2. 轮转法(Round Robin Scheduling):- 每个任务都有一个时间片(time slice)或执行时间的最大限制。
- 任务按照轮流的方式执行,每个任务在分配的时间片内运行,然后切换到下一个任务。
- 如果一个任务在其时间片结束之前未完成,它将被放回队列,等待下一个时间片。
3. 最短剩余时间优先(Shortest Remaining Time First,SRTF):- 每个任务都有一个估计的执行时间。
- 在每个调度点,选择剩余执行时间最短的任务来执行。
- 这是一种抢占式调度算法,可能会在执行过程中切换到更紧急的任务。
4. 最早截止期限优先(Earliest Deadline First,EDF):- 每个任务都有一个截止期限。
- 在每个调度点,选择截止期限最早的任务来执行。
- 这是一种抢占式调度算法,适用于实时系统,确保截止期限更早的任务先执行。
5. 多级队列调度(Multilevel Queue Scheduling):- 将任务分为多个队列,每个队列有不同的优先级。
- 任务按照其优先级放置在相应的队列中,每个队列可以采用不同的调度算法。
- 任务可以在队列之间移动,例如,根据它们的执行历史或其他因素。
选择合适的调度算法取决于系统的需求和性能要求。
实时系统通常需要更为精确和可预测的调度,而通用用途的系统可能更关注性能和资源利用率。
抢占式优先级调度算法
抢占式优先级调度算法是一种常用的操作系统进程调度算法,其主要
原理是将进程按照优先级进行排序,然后选择优先级最高的进程进行执行,同时当出现更高优先级的进程时,正在执行的进程会被抢占,优先级更高
的进程得以执行。
这种调度算法的优点是能够优先执行重要性高的进程,尤其是对于实
时性要求高的系统而言,抢占式优先级调度算法确保了高优先级进程的及
时响应和执行。
其次,该算法在实现上相对简单,容易在多处理器系统中
进行实现。
然而,抢占式优先级调度算法也存在一些缺点。
首先,由于优先级的
设置需要有明确的标准,因此可能存在优先级过多或者优先级设计不合理
的问题。
其次,由于是按优先级进行调度,较低优先级的进程容易长时间
等待执行,降低了系统的资源利用率;同时,当出现优先级较高的进程时,抢占式调度会导致正在执行的进程被强制停止,造成不必要的系统开销。
为了克服抢占式优先级调度算法的缺陷,可以采用多种方法进行改进。
一种常见的方法是将进程的优先级根据时间的长短进行动态调整,即优先
级随时间而变化。
另外,可以通过引入多级反馈队列的方式,使得低优先
级的进程能够持续得到调度和执行的机会,从而提高系统资源利用率。
此外,还可以采用不同进程之间互相协作的方式,实现更加高效的进程调度
机制。
总之,抢占式优先级调度算法是一种适用于实时性要求高的系统的进
程调度算法,但其应用存在一定的局限性。
针对不同的应用场景和要求,
可以采用不同的调度算法进行优化和改进,从而实现更加高效、快速、可靠的进程调度和执行。
剥夺式优先级调度算法
剥夺式优先级调度算法(也称为抢占式优先级调度算法)是一种操作系统中用于进程调度的策略。
在这个算法中,系统将所有进程按照优先级排序,优先级高的进程获得CPU执行权的概率更高。
具体运行过程如下:
1. 每个进程都有一个优先级属性。
2. 当有多个进程等待CPU时,系统会选择优先级最高的进程投入运行。
3. 如果在运行过程中,有一个优先级更高的进程到达就绪队列,那么系统会立即停止当前正在运行的低优先级进程,并把CPU分配给新到达的高优先级进程,这就是“剥夺”或“抢占”的含义。
4. 进程在执行过程中,其优先级可能会发生变化,例如,有的系统会根据进程等待时间来动态调整优先级,防止优先级过高的进程长期占用CPU导致低优先级进程饥饿。
这种算法可以有效保证重要性较高的进程得到及时响应,提高了系统的响应速度和效率。
然而,如果设计不当,可能导致低优先级进程长时间得不到执行,即发生“进程饥饿”现象。
因此,在实际应用中,往往会对该算法进行改进,比如设置优先级aging(老化)机制等。
抢占式优先级调度算法是什么意思系统把处理机分配给优先权最⾼的进程,使之执⾏。
但在其执⾏期间,只要⼜出现了另⼀个其优先权更⾼的进程,进程调度程序就⽴即停⽌当前进程(原优先权最⾼的进程)的执⾏,重新将处理机分配给新到的优先权最⾼的进程。
本教程操作环境:windows7系统、C++17版本、Dell G3电脑。
抢占式优先权调度算法在这种⽅式下,系统把处理机分配给优先权最⾼的进程,使之执⾏。
但在其执⾏期间,只要⼜出现了另⼀个其优先权更⾼的进程,进程调度程序就⽴即停⽌当前进程(原优先权最⾼的进程)的执⾏,重新将处理机分配给新到的优先权最⾼的进程。
因此,在采⽤这种调度算法时,是每当系统中出现⼀个新的就绪进程i 时,就将其优先权Pi与正在执⾏的进程j的优先权Pj进⾏⽐较。
如果Pi≤Pj,原进程Pj便继续执⾏;但如果是Pi>Pj,则⽴即停⽌Pj的执⾏,做进程切换,使i 进程投⼊执⾏。
显然,这种抢占式的优先权调度算法能更好地满⾜紧迫作业的要求,故⽽常⽤于要求⽐较严格的实时系统中,以及对性能要求较⾼的批处理和分时系统中。
具体代码:1 #include #include #include using namespace std;using std::cout;struct PCB23 { // 进程名45string name; // 到达时间67int arrivetime; // 运⾏时间89int runtime;1011// 仍需运⾏时间1213int resttime; // 开始时间1415int starttime; // 完成时间1617int endtime; // 运⾏次数1819int runcount; // 周转时间2021int zhouzhuangtime; // 带权周转时间(周转时间/运⾏时间)2223double weightzhouzhuangtime; // 优先级(静态)2425int priority;26272829 PCB *next;3031 };// 进程数int num_process;// 记录所有进程的总时间int totaltime;// 记录所有进程的总带权周转时间double weighttotaltime;32333435 PCB *createPCB()3637 { int i; // 定义队⾸、队尾3839 PCB *head, *rear; // 初始化4041 head = rear = NULL; // 临时指针变量4243 PCB *p; cout<<"请输⼊进程数量:"; cin>>num_process; for(i = 0; i < num_process; i++)4445 { // 初始化⼀个空间给进程4647 p = new PCB; cout<<"请依次输⼊第"<>p->name>>p->priority>>p->arrivetime>>p->runtime;4849 p->resttime = p->runtime;5051 p->runcount = 1;5253 totaltime += p->runtime;5455 p->starttime = 0;5657 p->endtime = 0;5859 p->zhouzhuangtime = 0;6061 p->weightzhouzhuangtime = 0;6263 p->next = NULL; // 存⼊链表中6465if(rear == NULL)6667 {69 head = p;7071 rear = p;7273 } else7475 {7677 rear->next = p;7879 rear = p;8081 }82838485 } return head;8687 }// 链表插⼊排序PCB *insertSort(PCB *head)8889 { /*9091 1、先在原链表中以第⼀个节点为⼀个有序链表,其余节点为待定节点;9293 2、从待定节点中取节点,插⼊到有序链表中相应位置;9495 3、实际上只有⼀条链表,在排序中,实际只增加了⼀个⽤于指向剩下需要排序节点的头指针。
第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块JCB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU 繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
第一章:1.什么是操作系统? os 的基本特性是?主要功能是什么OS 是控制和管理计算机硬件和软件资源,合理组织计算机工作原理以及方程用户的功能的集合。
特性是:具有并发,共享,虚拟,异步的功能,其中最基本的是并发和共享。
主要功能:处理机管理,存储器管理,设备管理,文件管理,提供用户接口。
2.操作系统的目标是什么?作用是什么?目标是:有效性、方便性、可扩充性、开放性作用是:提供用户和计算机硬件之间的接口,提供对计算机系统资源的管理,提供扩充机器3.什么是单道批处理系统?什么是多道批处理系统?系统对作业的处理是成批的进行的,且在内存中始终保持一道作业称此系统为单道批处理系统。
用户所提交的作业都先存放在外存上并排成一个队列,然后,由作业调度程序按一定的算法从后备队列中选择若干个调入作业内存,使他们共享CPU和系统中的各种资源。
4.多道批处理系统的优缺点各是什么 ?优点:资源利用率高,系统吞吐量大。
缺点:平均周转时间长,无交互能力。
引入多道程序技术的前提条件之一是系统具有终端功能,只有有中断功能才能并发。
5.什么是分时系统?特征是什么?分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互的方式使用计算机,共享主机中的资源。
特征:多路性、独立性、及时性、交互性*有交互性的一般是分时操作系用,成批处理无交互性是批处理操作系统,用于实时控制或实时信息服务的是实时操作系统,对于分布式操作系统与网络操作系统,如计算机之间无主次之分就是分布式操作系统,因为网络一般有客户 -服务器之分。
6.什么是实时操作系统?实时系统:系统能及时响应外部事件的请求,在规定的时间内处理完。
按照截止时间可以分为 1 硬实时任务(必须在截止时间内完成) 2 软实时任务(不太严格要求截止时间) 7.用户与操作系统的接口有哪三种?分为两大类:分别是用户接口、程序接口。
用户接口又分为:联机用户接口、脱机用户接口、图形用户接口。
最短作业优先(抢占和非抢占)一、流程图解析:在最开始,我们先创建若干进程,选择自动运行,则在运行完后,按顺序显示运行的结果。
同理,选择手动运行,那么就是最先选择最短的作业开始运行,其实当前进程并非一定在实际运行(改变自己的状态),只是一个虚拟的运行(虚拟最短作业优先运行算法),这时我们可以做其他的事情,在做事之前,先运行虚拟算法,依照最短作业优先去改变相关进程的状态(进程可能就没有实际运行过,被虚拟算法改变了状态(就绪、等待、终止)),在做完相关事情之后,再运行虚拟算法,确定是否要发生最短作业的优先抢占。
根据以上的运行结构,我们可以在这结构的基础上,人为地设置进程状态就是改变进程状态,这时就可以发生最短作业调度的抢占和非抢占式。
我们可以进入查看进程状态,看看运行的状况,也可以进入修改进程状态,修改相关进程状态让其发生最短作业的抢占,或者进入创建进程,创建一个新的进程,这是也有可能实现最短作业优先的抢占。
二、虚拟运行算法:从进程的结构分析,进程里面有状态,到达时间(取系统时间),结束时间(取系统时间),需要运行时间,已运行时间等,我们知道第一个最短作业运行的到达时间(开始运行的时间)就是创建的时间。
在一个进程运行终止时,要设好终止的时间、改变状态等属性,这时进行进程间信息交换,终止进程的时间交给下一个要运行的进程的到达时间,这样不断下去就可以运行到最后一个进程,当发生抢占调度时,也是以上的情况运行。
先在抢占之前,就运行虚拟算法,改变相关的进程状态,发生引起抢占的事的时候就可以利用抢占来进行进程的切换。
这样就能让CPU在有工作做时就不能空闲。
直到把所有在就绪队列的进程运行完,这是CPU可以休息了,如果在CPU休息时有进程从等待进入就绪,那么CPU就要继续开工。
当我们运行完第一批输入的进程,现在CPU在空转,我们又创建了新进程,这时新进程就在创建那一刻起开始运行了,因为新进程创建好就进入了就绪的状态。
抢占式优先级调度算法实验报告一、实验目的1.了解抢占式优先级调度算法的基本原理和实现方法。
2.掌握抢占式优先级调度算法的实现过程。
3.通过实验,加深对操作系统调度算法的理解。
二、实验环境1.操作系统:Windows 102.编程语言:C++三、实验内容1.设计一个简单的抢占式优先级调度算法。
2.编写程序,模拟该算法的实现过程。
3.通过实验,观察和分析该算法的优缺点。
四、实验步骤1.设计抢占式优先级调度算法。
抢占式优先级调度算法是一种基于优先级的调度算法,它的基本思想是将进程按照优先级从高到低排序,然后按照优先级高低依次执行。
如果有更高优先级的进程到来,则当前进程会被抢占,让出CPU资源给更高优先级的进程执行。
2.编写程序,模拟该算法的实现过程。
程序的主要流程如下:(1)定义进程结构体,包括进程ID、进程优先级、进程状态等信息。
(2)定义进程队列,包括就绪队列和阻塞队列。
(3)初始化进程队列,将所有进程按照优先级从高到低排序,放入就绪队列中。
(4)循环执行以下操作:a.从就绪队列中取出优先级最高的进程,执行该进程。
b.如果有更高优先级的进程到来,则将当前进程放回就绪队列中,将新到来的进程放入就绪队列中。
c.如果当前进程执行完毕,则将其从就绪队列中移除。
d.如果当前进程被阻塞,则将其从就绪队列中移除,放入阻塞队列中。
e.如果阻塞队列中有进程被唤醒,则将其放回就绪队列中。
3.观察和分析该算法的优缺点。
优点:(1)能够充分利用CPU资源,提高系统的响应速度。
(2)能够保证高优先级进程的及时响应,提高系统的实时性。
缺点:(1)可能会出现“饥饿”现象,即低优先级进程无法得到执行。
(2)可能会出现“优先级反转”现象,即低优先级进程占用了高优先级进程所需的资源,导致高优先级进程无法得到及时响应。
五、实验结果经过实验,我们发现抢占式优先级调度算法能够有效地提高系统的响应速度和实时性,但也存在一些缺点,需要根据具体情况进行优化。
抢占式优先数调度算法一、背景抢占式优先数调度算法是一种用于操作系统中进程调度的算法。
在多任务环境下,操作系统需要有效地管理计算机资源,确保各个任务能够公平地分配CPU时间,从而提高系统的整体性能。
抢占式优先数调度算法在需要紧急处理的任务出现时,能够快速将其调度到CPU 上执行。
二、算法原理1. 优先数:每个进程都有一个优先数,用来表示该进程的优先级。
这些优先数可以根据不同的策略进行设置,例如静态设置或动态调整。
2. 抢占式:当多个进程的优先数相等时,抢占式调度算法会选择最先进入系统(即最早的进入就绪队列)的进程。
这意味着如果一个高优先级的进程进入系统,低优先级的进程会被强制停止执行,等待高优先级进程执行完毕后再继续执行。
3. 优先级继承:如果一个进程在执行过程中被阻塞(例如等待I/O完成),并且阻塞它的进程的优先数比它高,那么原进程的优先数会被继承,当它再次进入就绪队列时,会获得更高的优先级。
三、实现方式抢占式优先数调度算法的实现通常涉及到操作系统内核中进程管理、时间片分配、中断管理等模块。
具体实现过程包括:1. 实时跟踪每个进程的状态(运行、等待、睡眠等),以便能够准确判断其优先级。
2. 为每个进程分配一个唯一的优先数,以便能够在就绪队列中进行比较。
3. 在每个时间片结束时,根据优先数和时间片的分配情况,重新调整进程的状态和位置。
4. 当需要执行紧急任务时,通过中断或其他机制将当前正在执行的进程打断,强制将其移至就绪队列的末尾,等待调度器处理。
四、应用场景抢占式优先数调度算法广泛应用于实时操作系统和需要高效率处理任务的系统中。
例如,在游戏服务器中,如果有一个玩家请求紧急发送消息,抢占式优先数调度算法可以确保该消息能够及时送达,而不会因为其他任务的存在而延迟。
五、优缺点优点:1. 快速响应:当高优先级的任务出现时,能够快速将其调度到CPU上执行,提高了系统的响应速度。
2. 资源利用率高:通过合理分配时间片和优先级,能够确保各个任务公平地分配CPU时间,从而提高系统的整体性能。
第一章操作系统引论对操作系统的描述:是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
OS的目标:有效性、方便性、可扩充性、开放性。
多道程序必须有中断和通道技术的支持。
OS的作用:1.作为用户与计算机硬件系统之间的接口;2.作为计算机系统资源的管理者;3.实现了对计算机资源的抽象。
OS的三种基本类型:批处理系统、分时系统、实时系统。
OS的四个特征:并发、共享、虚拟、异步性。
第二章进程管理程序顺序执行时的特征:顺序性、封闭性、可再现性。
程序并发执行时的特征:间断性、失去封闭性、不可再现性。
进程的特征:动态性、并发性、独立性、异步性。
传统OS中进程的定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的三种基本状态:就绪、执行、阻塞状态。
PCB昰进程存在的唯一标志。
PCB常驻内存。
PCB的组织方式:链接方式、索引方式。
引起创建新进程的典型事件:用户登录、作业调度、提供服务、应用请求。
创建新进程的步骤:申请空白PCB;为新进程分配资源;初始化PCB;将新进程插入就绪队列。
引起进程阻塞或被唤醒的事件:请求系统服务;启动某种操作;新数据尚未到达;无新工作可做。
进程的阻塞是进程自身的一种主动行为。
Block原语和wakeup原语要匹配使用,以免造成“永久阻塞”。
同步应遵循的规则:空闲让进,忙则等待,有限等待,让权等待。
把每个进程中访问临界资源的那段代码成为临界区。
信号量是一个被保护的变量,它的值只能通过初始化和两个wait、signal原语来操作--作为OS核心代码执行。
互斥信号量:它的P,V在同一个进程中,初值为1或n, 同步信号量:它的P,V在不同的进程中,初值为0或某个正整数。
同步P操作应在互斥P操作之前,两个V操作无关紧要。
设置进程的目的在于实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题。