第一章导论1、操作系统的功能作用:(1)作用:操作系统是控制和管理计算机系统各种硬件和软件资源,有效地组织多道程序运行的系统软件,使用户与计算机之间的接口。
(2)功能:处理机管理、存储管理、设备管理、文件管理、用户接口。
2、操作系统的发展过程:(1)手工操作时期:人工干涉,用户独占。
(2)早期批处理时期:出现了完成作业自动转换工作的程序叫监督程序,包括早期联机批处理、早期脱机批处理。
(3)多道批处理系统:在存中同时存放多道程序在管理程序的控制下交替执行,用户独占。
(4)分时系统:用户与主机交互。
(5)实时系统:具有专用性及时性。
(6)现代操作系统(网络操作系统和分布式操作系统):有网络地址,提供网络服务,实现资源共享。
第二章计算机系统结构1、计算机系统在硬件方面的保护:(1)双重模式操作:用户模式、监督程序模式,双重模式操作为人们提供了保护操作系统和用户程序不受错误用户程序影响的手段。
(2)I/O保护:定义所有I/O指令为特权指令,所以用户不能直接发出I/O指令,必须通过操作系统来进行。
(3)存保护:对中断向量和中断服务程序进行保护,使用基址寄存器和界限寄存器。
(4)CPU保护:使用定时器防止用户程序运行时间过长,操作系统在将控制权交给用户之前,应确保设置好定时器,以便产生中断。
第三章操作系统结构1、操作系统的基本组成:进程管理、存管理、文件管理、输入/输出系统管理、二级存储管理、联网、保护系统、命令解释系统。
2、系统调用的含义:系统调用提供了进程与操作系统之间的接口。
分为五类:进程控制、文件管理、设备管理、信息维护、通信。
3、操作系统设计所采用的结构:(1)简单结构:以较小、简单且功能有限的系统形式启动,但后来渐渐超过了其原来的围,由于运行所用的硬件有限,它被编写成利用最小的空间提供最多的功能。
(2)分层方法:优点:模块化,简化了调试和系统验证(灵活性强);缺点:涉及对层的仔细认真的定义的困难,效率较差(3)微核:优点:便于操作系统扩充,便于移植;缺点:关于哪些服务应保留在核,而哪些服务应在用户空间实现,并没有定论。
4、虚拟机的优点(1)通过完全保护系统资源,虚拟机提供了一个坚实的安全层。
(2)虚拟机允许进行系统开发而不必中断正常的系统操作。
第四章进程1、进程的含义:进程是由数据结构以及在其上执行的程序组成,是程序在这个数据集合上的运行过程,也是操作系统进行资源分配和保护的基本单位。
进程是运行中的程序。
2、进程包含的容:程序代码、程序计数器、堆栈段、数据段。
3、进程和程序的联系和区别:(1)程序是静态的,进程是动态的,程序是代码的集合,进程是程序的执行。
(2)程序是永久的,进程是短暂的。
(3)程序的组成是代码,进程的组成包括程序、数据、进程控制块。
(4)一个程序可对应多个进程,通过调用关系,一个进程也可包括多个程序。
(5)进程可生成其他进程,程序不能生成新的程序4、并发与并行的区别:并行指两个或多个事件在同一时刻发生;并发指两个或多个事件在同一时间间隔发生。
在单处理机系统中,每一时刻仅能执行一个程序,所以从微观角度来看程序的并发执行时,它们是交替执行,即串行。
程序间真正的并行只有在多处理机系统中才会出现。
5、进程的状态及转换条件:(1)状态:新建,运行,阻塞,就绪,终止。
(2)转换条件:①新建--〉就绪:就绪队列能够容纳新的进程。
②就绪—〉运行:处于就绪状态的进程被调度程序选中,分配到CPU。
③运行—〉阻塞:正在运行的进程因某种条件为满足而放弃对CPU的占用。
④阻塞—〉就绪:处于阻塞状态的进程所等待的事情发生了。
⑤运行—〉就绪:正在运行的进程用完了本次分配给它的CPU时间。
⑥运行—〉终止:正在运行的进程完成自己的工作或者由于发生某些事件而被异常中止。
注:就绪挂起表示将某进程挂起,把空间让给更急迫的进程。
6、进程控制块的作用及容:(1)容:进程状态、程序计数器、CPU寄存器、CPU调度信息、存管理信息、记账信息、I/O状态信息。
(2)作用:① PCB是进程组成中最关键的部分,每个进程都有惟一的PCB,操作系统对每个进程实施控制和管理。
②系统创建一个进程时,为它创建一个PCB,当进程终止时,系统收回其PCB,该进程在系统中就不存在了,所以PCB是进程存在的惟一标志。
7、上下文切换的过程:将CPU切换到另一个进程需要保存原来进程的状态并装入新进程的保存状态。
过程如下:①保存处理器容②对当前运行进程的PCB进行更新③将这个进程的PCB移入适当的队列④挑选其他进程执行⑤对挑选进程的PCB进行更新⑥对存储器管理数据结构进行更新⑦将被选中进程上次移出时的处理器状态进行恢复。
8、进程间通信的机制有哪些,包括单机系统和网络系统:(1)单机系统:进程通信根据交换信息量的多少分为高级通信和低级通信。
①低级通信方式:P,V操作。
②高级通信方式:共享存储器方式、消息传递方式、管道文件(pipe)。
(2)网络系统:套接字(socket)、远程过程调用、远程方法调用。
其中,共享存使用于传递大量的信息的场合。
第5章线程1、定义:是CPU使用的基本单元;他由现程ID,程序计数器,寄存器集合和堆栈组成。
2、优点:(1)响应度高(2)资源共享(3)经济(4)多处理器体系结构的利用。
3、多线程模型(1)多对一模型:允许开发人员随意创建任意多的用户线程,但是由于核只能一次调度一个线程,所以并不能增加并发性。
(2)一对一模型:提供更大的并发性,但是创建核的开销会影响应用程序的性能。
(3)多对多模型:没有以上两者缺点。
4、线程的亲和性:表示将联系关系紧密的线程安排在一起。
第6章 CPU调度1、调度的层次(1)长程调度:又称为作业调度或高级调度。
长程调度决定哪些作业可参与竞争CPU和其他资源。
一般功能是:从后备作业中挑选一个或多个作业,为它(它们)分配基本的存和外设资源并建立相应的进程。
(2)中程调度:也称中级调度。
中级调度决定哪些进程可参与竞争CPU,用以实现进程的活动状态与静止的挂起态之间的转换。
引入中程调度的主要目的,是为了提高存的利用率和系统吞吐量。
中程调度实际上就是存储器管理中的置换功能。
(3)短程调度:又称为进程调度或低级调度。
短程调度决定哪个进程可获得物理CPU。
短程调度的功能是:从就绪进程队列中挑选一个进程并启动执行该进程。
短程调度是最基本的一种调度,它可以采用非抢占方式或抢占方式。
2、调度的方式(1)可抢占:提高响应性,进来后马上使用CPU。
When a process switches from the running state to the ready state or switches from the waiting state to the ready state.(2)不可抢占:一旦把CPU分配给一个进程,那么该进程就会保持CPU直到终止或轮转到等待状态。
When a process switches from the running state to the waiting state or terminates.3、调度算法(1)先来先服务(FCFS)——非抢占式的。
FCFS策略遵循先来者优先服务的原则。
例如:进程 Burst 时间:P1 24秒,P2 3秒,P3 3秒如果进程以P1、P2、P3 的顺序到达,并且以FCFS 规则服务,我们将获得如下的甘特图:0 24 27 30P1 的等待时间是0 毫秒,进程P2 是24 毫秒,P3 是27 毫秒。
这样,平均时间是(0 + 24 + 27)/3= 17毫秒。
优点:它简单易行缺点:调度性能较差,有可能使短的进程长期等待长的进程(护送效应)。
它有利于偏重CPU的进程,不利于偏重I/O的进程。
(2)短作业优先调度算法(SJF)——抢占式的/非抢占式的。
当CPU 有效时,它将被赋给下一个CPU burst 最小的进程。
例如:进程 Burst 时间P1 6秒;P2 8秒;P3 7秒;P4 3秒用SJF 调度,我们将依照如下的甘特图来调度这些进程:0 3 9 16 24P1 的等待时间是3 毫秒,P2 是16 毫秒,P3 是9 毫秒,P4 是0 毫秒。
因而,平均等待时间是(3 + 16 + 9 +0)/4 =7 毫秒。
如果使用FCFS 调度策略,那么平均等待时间是(0+6+14+21)/4=10.25 毫秒。
新进程的下一个CPU burst 可能会比当前执行进程的剩余量短。
在抢占式SJF 算法中,新进程抢占当前的进程;而非抢占式SJF 算法允许当前运行的进程结束其CPU burst.例如:Process Arrival Time Burst TimeP1 0 8P2 1 4P3 2 9P4 3 5按照抢占式SJF 调度会产生如下的结果:0 1 5 10 17 26P2 在时间1 到达。
进程P1 的剩余时间大于进程P2的时间需求(4 毫秒),所以进程P1 被抢占,P2 被调度。
这个例子的平均等待时间是((10 - 1) + (1 - 1) + (17- 2) + (5 - 3))/4 = 26/4 = 6.5 毫秒(被调度时间减去到达的时间)。
而采用非抢占式SJF 调度的平均等待时间为((0-0)+(8-1)+(12-3)+(17-2))/ 4 =7.75 毫秒(p1,p2,p4,p3).优点:可证明SJF 调度算法是最佳的算法,因为它为指定的进程组给出了最小的平均等待时间。
对短作业或短进程最为有利。
缺点:对长作业不利,特别是在抢占方式下,可能会使长作业无限延迟。
而且实际上无法预测下一CPU瞬时段的长度。
(3)优先级调度算法——抢占式的/非抢占式的为每个进程赋予一个优先权,把CPU 分配给拥有最高优先权的进程。
缺点:优先调度算法可能导致一些低优先权进程无限的等待CPU(即无限阻塞)解决一个方法是老化(aging))是指逐渐地提高在系统中长时间等待的进程的优先权。
(4)轮转调度算法(RR)——抢占式的CPU分配给每一个进程一段时间,到时间轮转到下一个进程。
若需要CPU 的时间 < 分配的时间量——自己释放CPU,等待下一次轮转;若需要CPU的时间 > 分配的时间量——进程一结束就释放CPU,让给下一个进程使用。
(5)多级队列调度算法就绪队列划分为多个独立的队列。
每个队列有自己的调度算法。
进程不会在队列间移动。
在队列间进行调度,这种调度通常实现为权限固定的抢占式调度或采用时间片机制。
(6)多级反馈队列调度算法——抢占式的它综合考虑了多种因素,根据进程运行情况的反馈信息动态改变进程的优先级,按优先级别组织设置了规定CPU时间片的各就绪队列;对同一队列中的各就绪进程按FCFS或RR算法调度。
优点:这种策略不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要。