一.操作系统概述
(Operating System掌控局势的系统)
考点1:操作系统定义(不唯一):
(是什么)是计算机系统中的一个系统软件,是一些程序模块的集合 —(干什么)它们管理和控制计算机系统中的软硬件资源,合理的组织计算机的工作流程,(为什么)以便有效的利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。
考点2:操作系统的功能(5)
(1)处理及的管理;
(2)存储管理;
(3)设备管理;
(4)文件系统管理;
(5)用户接口;
考点3:
操作系统的产生:
手工操作阶段;单道批处理阶段;
操作系统的形成:
多道批处理操作系统(多道程序设计技术)->分时操作系统->实时操作系统->通用操作系统->现代操作系统;
上述前三种是基本的三种操作系统类型;
考点4:
现代操作系统:
微机操作系统->嵌入式操作系统->网络操作系统->分布式操作系统->多处理机操作系统;
考点5:
操作系统的基本特性:并发;共享;虚拟;异步(不确定);
考点6:模块化结构->分层式结构->微内核结构 ;
二.操作系统用户界面
操作系统为用户提供的接口体现在:(1)为用户提供的各种命令控制界面接口;(2)为用户提供的系统调用;
考点7
作业的概念:在一次应用业务处理过程种,从输入开始道输出结束,用户要求计算机所作的有关该次业务处理的全部工作称为一个作业;
作业一般由3个部分组成(程序、数据和作业说明书)
作业控制语言:批处理系统提供作业控制语言(批处理系统的用户界面JCL),用于写作业说明书;
作业说明书:体现用户的控制意图;
作业控制块(JCB):由作业说明书在系统中生成的一个表格,保存系统对于作业进行管理所需要的 全部信息
操作系统提供的3种有效交互方式:中断;系统调用;陷阱;
两种状态:
系统态(管态、内核态、核心态)--->特权指令
用户态(目态)--->非特权指令
考点8
系统调用的基本概念;
系统调用的过程;
系统调用与普通调用的区别;
三.进程管理
考点9:
伯恩斯坦条件;
考点10:
程序与进程的区别与联系;
进程与作业的关系;
进程的概念;
考点11:
进程的描述:由程序段、数据结构集和进程控制块(PCB常驻内存);
PCB的内容;
考点12:
进程上下文;
考点13:
进程的三种基本状态(就绪、执行和阻塞)及转换;
要求:自己能画出来
考点14:
原语(不可中断、不允许并发执行、原子性、管态下执行);
为什么进程控制要用原语;
不同原语种类;
考点15:
进程之间的两种关系:
资源共享(间接制约)-->互斥;
相互合作(直接制约)-->同步;
互斥其实也是一种同步;
考点16:
临界资源与临界区;
考点17:
互斥的概念以及互斥的原则;
考点18:
软件实现进程互斥:加锁法;
硬件实现进程互斥:测试与设置指令(test and set);
考点19:
进程同步的概念以及实现同步的 信号量机制;
考点20:
对于N个并发进程,1个可用资源,信号量的取值范围是 1-N <= mutex <=1;
对于N个并发进程,m个可用资源,信号量的取值范围是 m-N <= mutex <= m;
考点21:
pv操作:
互斥:同一进程;同步:不同进程;
例1.生产者-消费者,之间是一个有界缓冲区。
设置:
(1)实现同步,应该设置两个同步信号量;
设信号量empty为生产者的私有信号量,表示缓冲区种空单位的数目,初值为缓冲区大小n;
设信号量full为消费者的私有信号量,表示缓冲区非空单位数目,初值为0;
(2)实现互斥,对有界缓冲区进行互斥使用,设置一个互斥信号量mutex,其初值为1;
例2.哲学家进餐问题
问题描述:一张圆桌上坐着五个哲学家,每两个哲学家之间摆一根筷子,筷子的中间是一碗米饭。哲学家们的生活方式是交替地进行思考和进餐,哲学家在思考时,并不影响他人.只有当哲学家饥饿的时候,才试图拿起左、右两根筷子。如果筷子已在他人手上则需等待。饥饿的哲学家只有同时拿到了两根筷子才可以开始进餐当进餐完毕后,放下筷子继续思考。描述哲学家进餐进程。
问题分析:
(1)关系分析。显然这里有五个哲学家进餐进程并发执行,拿到左右两个筷子可以进餐。筷子是临界资源,五个哲学家与左右邻居对其中间筷子的访问是互斥关系。
(2)信号量设置。应为每个筷子设置互斥信号量,定义互斥信号量数组chopstick[5]={1,1,1,1,1}用于对五个筷子的互斥访问。
该算法存在以下问题:
当五个哲学家都想要进餐,分别拿起他们左边筷子的时候(都恰好执行完P(chopstick[i]) ),筷子已经被拿光了,等到他们再想拿右边的筷子的时候(执行P(chopstick[(i+1)%5]) )就全被阻塞了,这就出现了死锁。
解决方法有两个:
进餐时同时拿两个筷子(AND信号量机制)
对每个哲学家的动作制定规则,避免饥饿或者死锁现象的发生,可采取以下几种解决方法。
①至多允许四个哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在进餐完毕后释放出他用过的两只筷子,从而使更多的哲学家能够进餐。
②仅当一个哲学家左右两边的筷子都可用时才允许他拿起筷子。
③对哲学家顺序编号,要求奇数号哲学家先拿左边的筷子,然后再拿他右边的筷子,而偶数号哲学家刚好相反。按此规定,1、2号哲学家竞争1号筷子;3、4号哲学家竞争3号筷子。即五位哲学家都先竞争奇数号筷子,获得后再去竞争偶数号筷子,最后总会有一个哲学家能获得两只筷子而进餐。
考点22:
通信的分类:
低级通信和高级通信(通信交换的数据量);
共享存储器机制、消息传递机制(消息缓冲机制-->直接通信和信箱通信-->间接通信方式)和管道(pipe)通信机制(共享文件方式);
考点23:
死锁的概念、产生死锁的原因、产生死锁的四个必要条件;
死锁的处理策略--->预防、避免、检测与解除;
例1.有三个进程p1,p2,p3,有12台磁带机。P1共要求10台,P2共要求4台,P3共要求9台。在T0时刻,p1,p2,p3分别获得5、2、2台,尚有3台空闲。(避免)
经分析,在T0时刻,系统是安全的。因为存在一个安全序列p2、p1、p3,使各进程执行完成。
如在T0以后,T1时刻P3要求1台磁带机,T1时刻系统是否安全?能否给P3分配所需资源?
因为其余2台分给P2,P2完成后,只能释放4台,这既不能满足P1(5台),也不能满足P3(6台)。将导致死锁。可见当P3申请资源时,尽管系统中有资源也不能分给它。
考点24:
银行家算法
银行家算法是最有代表性的避免死锁算法,是Dijkstra提出的。其模型基于一个小城镇的银行家,他向一群客户分别承诺了一定金额的贷款,而他知道不可能所有客户同时都需要最大的贷款额。在这里,我们可将客户比作进程,银行家比作操作系统。银行家算法就是对每一个客户的请求进行检查,检查如果满足它是否会引起不安全状态。假如是,那么不满足该请求;否,那么便满足。
一般而言,os中采取死锁的检测和恢复处理死锁;
考点25:
线程的概念等相关知识;
线程控制块;
线程与进程的区别与联系;
线程实现的两种方式(用户级线程和核心级线程);
四.处理机调度
考点26
处理机调度的四级(作业调度、交换调度、进程调度和线程调度);
考点27
调度算法;
几种调度算法;
五.存储管理
考点27
存储管理的功能;
考点28
动态分区的几种策略;
考点29
页式管理的地址转换;
考点30
页面置换算法
考点32
算法
考点33
局部性原理;
六.设备管理
考点34
设备的分类;
I/o设备管理功能
考点35
常用的四种方式(程序直接控制方式、中断控制方式、DMA方式、通道方式)的对比;
通道的种类(字节多路通道、数据选择通道、数据多路通道)
考点36
中断等相关概念和中断处理过程;
考点37
缓冲的概念;
考点38
设备分配的数据结构;
两者分配方式(静态和动态);
设备分配算法(1.先请求先分配;2.优先级高的先分配)
SPOOLING系统(输入井与输出井);
考点39
设备独立性;
考点40
磁盘访问时间(寻道+旋转+传输);很可能启动磁臂时间0.2ms;
考点41
磁盘的调度算法(先来先服务FCFS、最短寻找时间优先SSTF、扫描SCAN、循环扫描C-SCAN);
七.文件系统管理
考点42
文件的分类(性质与用途-->系统文件、用户文件、库文件 \ 组织形式-->普通文件、目录文件、特殊文件)
考点43
文件的逻辑结构的类型(有结构文件和无结构文件)
文件的三种存取方式
考点44
文件的三种物理结构
考点45
文件的三种空闲块管理方法
考点46
文件目录和目录文件的区别
考点47
文件共享和保护
第一章 绪论
1.什么是操作系统?操作系统的功能有哪些?
操作系统的概念:
是计算机系统中的一个系统软件,是一些程序模块的集合 ,它们管理和控制计算机系统中的软硬件资源,合理的组织计算机的工作流程,以便有效的利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。(管理计算机软硬件资源,从而让计算机协调正确为用户工作)
操作系统的功能(5点):
(1)处理机管理
(2)存储管理
(3)设备管理
(4)文件系统管理
(5)用户接口
2.你认为推动操作系统发展的动力是什么?
操作系统的发展的动力:
(1)硬件成本的不断下降;
(2)计算机的功能和复杂性的不断变化(用户对计算机功能需求的提出)
3.为什么引入多道程序技术?
引入多道批处理系统的原因:
由于单道批处理CPU和I/O设备的运行是串行的,即在程序进行输入输出时,CPU只能等待。为了实现并发,使得CPU和I/O重叠起来运行,可将多个程序同时加载到计算机内存里,能够进一步提高资源的利用率和系统中作业的吞吐量,因而引进了多道程序技术
4.目前的操作系统有哪些类型?操作系统的三种基本类型是什么类型?
目前的操作系统的类型:
微机操作系统、嵌入式操作系统、网络操作系统、分布式操作系统、多处理机操作系统
操作系统的基本类型:
多道程序系统、分时、实时系统是三种基本的操作系统类型。
5.什么是多道批处理、分时和实时的操作系统?各有什么特点?
多道批处理:
(1)定义:批处理系统中采用多道程序设计技术,就形成了多道批处理系统
(2)特点:
1>多道:计算机内存中同时存放几道相互独立的作业
2>宏观上并行:同时有多道作业有内存运行,某一时间段上,各道作业不同程度地向前推进
3>微观上串行:任一时刻最多只有一道作业占用CPU,多道作业交替使用CPU
分时操作系统: (1)定义:一般采用时间片轮转的方式,使一台计算机为多个终端用户服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。
(2)特点:
1>交互性:可人机对话,用户可以在程序动态运行情况下对其加以控制;用户上机提交作业方便
2>多用户同时性:共享CPU和其他资源,充分发挥系统的效率。
3>独立性:每一用户独占一个终端。 及时性:用户的请求能在很短的时间内获得响应
实时操作系统:
(1)定义:是以在允许时间范围之内做出响应为特征的。它要求计算机对于外来信息能以足够快的速度进行处理,并在被控对象允许时间范围内做出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级或更小。
(2)特点:
1>高响应性(在允许时间范围之内作出响应)
2>高可靠性、高安全性
3>具有一定的专用性,与批处理和分时系统相比,资源利用率和吞吐量可能较低.
6.操作系统的特征?
并发性:多个事件在同一时间间隔内发生。消除部件之间的等待,提高利用率,改进吞吐率,提高系统效率。;
共享性:指操作系统中的资源可被多个并发执行的进程所使用,即资源分配、信息保护、存取控制等,方式有互斥共享和同时访问 ;
虚拟性:是指把一个物理上的实体变为若干个逻辑上的对应物,通过多道程序和分时使用CPU技术,物理上的一个CPU变成逻辑上的多个CPU。;
异步性:内存中的多个进程都按照各自独立的、不可预知的速度向前推进。这是由于它们共享资源、并发执行的缘故;
7.实现操作系统的结构有哪几种?各有什么特点?
操作系统的结构(3种):
(1)模块化结构: 各种功能归为不同的功能块,每个功能块相对独立,又经过固定的界面互相联系。任意一个功能块可以调用另一个功能块的服务。整个操作系统本身是一个巨大单一体,运行在内核态下,为用户提供服务.
(2)分层式结构: 1>自下而上的设计方式,有序且可靠,利于保证整个操作系统的正确性。 2>系统和维护更加容易,只要不改变相应层次间的接口,就不会影响其它层次。
(3)微内核结构: 1>足够小的内核: 拥有操作系统的基本部分,使得核做到最小。 2>基于 C/S 模式: 将操作系统中最基本的部分放入内核中,把操作系统的绝大部分功能放在微内核外面的一组服务器(进程)中实现。这些服务器运行在用户态,客户与服务器之间借助微内核提供的消息传递机制来实现通信
第二章 操作系统用户界面
1.什么是作业?作业由哪几部分组成?各有什么功能?
作业的定义: 在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所作的有关该次业务处理的全部工作称为一个作业。
作业的组成部分: 由程序、数据和作业说明书组成
1.程序和数据完成用户所有要求的业务处理工作 2.作业说明书控制文件形式的程序和数据,使之执行和操作。表达用户对作业的控制意图。
2.操作系统为用户提供哪些接口?它们的区别是什么?
操作系统为用户提供两个接口:
1.命令控制界面:为用户提供的各种命令接口界面(菜单、命令行、图形界面、作业控制语言(命令)等),用户可利用这些操作命令来组织和控制作业的执行或管理计算机系统
2.系统调用:编程人员通过系统调用来请求操作系统提供服务(例如申请和释放外设等资源、控制程序的执行速度等),调用系统中已有的系统功能。
两种接口之间的区别: 1.使用者不同:命令控制界面是为用户提供的;而系统调用是为编程人员提供的。 2.操作过程不同:命令控制界面接口是利用操作命令来组织和控制作业的执行或管理计算机系统;系统调用是请求操作系统提供服务,例如申请和释放外设等资源、控制程序的执行速度。
3.处理机为什么要区分核心态和用户态?在什么情况下进行两种方式的切换?
区分核心台态与用户态的原因:
1> 在cpu中运行的操作系统程序和用户程序对应的机器指令集是不同的。操作系统使用所有指令,但是用户程序只能使用部分指令。
2>从资源管理和程序控制执行的角度出发,将指令系统分为两大部分:特权指令和非特权指令。为了保护系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:1.系统态(也称为管态、内核态或核心态)2.用户态(也称为目态)。
在什么情况下进行两种情况的切换:
有3种情况:中断、系统调用和异常(也叫陷阱)(全为中断措施,但发生的原因不同,叫法不同)
1>系统调用 这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
2>中断 当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
3>异常 当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
4.什么是系统调用?它与一般用户程序有什么区别?与库函数又有什么区别?
系统调用的定义:
1>是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级使用这些系统调用,可获得操作系统的底层服务,使用或访问系统的各种软硬件资源(请求使用各种外部设备进行信息传输、向系统申请资源等)
2>系统调用象一个黑盒子一样,对用户屏蔽了OS的具体动作而只提供有关的功能。事实上,命令控制界面也是在系统调用的集成上开发而成的
系统调用与一般用户程序、库函数的区别 状态不同:系统调用程序是执行在内核态,调用它们需要一个类似于硬件中断处理机制来提供系统服务。而普通的用户程序一般执行在用户态。
5.系统调用和普通过程调用的区别
1>运行状态不同 系统调用的调用过程和被调用过程运行在不同的状态,而普通的过程调用一般运行在相同的状态。
2>调用方法不同 系统调用必须通过软中断机制首先进入系统核心,然后才能转向相应的命令处理程序。普通过程调用可以直接由调用过程转向被调用过程。
3>返回问题 在采用抢先式调度的系统中,当系统调用返回时,要重新进行调度分析――是否有更高优先级的任务就绪。普通的过程调用直接返回调用过程继续执行。
6.简述系统调用的实现过程。
系统调用的过程:
1>编写系统调用处理程序
2>设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序
3>陷阱(trap或称陷入)处理机制,将陷阱指令中所包含的指令号与该入口地址表对应起来
4>需开辟现场保护区,以保存发生系统调用时的处理器现场
总结: 用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。
第三章 进程管理
1.为什么要引入进程?
引入进程的目的: 1.为了提高CPU利用率,多批道处理系统一次性载入多个作业到内存中让程序并发执行,但这会造成一系列的问题,程序顺序执行的三个特点:顺序性、封闭性和可再现性难以保证,而进程的概念引入则可以解决这个问题; 2.应该有一个描述各程序段执行过程和共享资源的基本单位,以采取某些措施来制约、控制各并发程序段,程序是指静态的,描述过程并不合适。
2.程序的并发执行将导致最终结果失去封闭性。这句话对所有的程序都成立吗?试举例说明。
答:程序的并发执行将导致最终结果失去封闭性并不是对所有程序都成立,例子如下:
Begin local x;
x=10;
print x;
End;
当程序中都使用内部变量,不可能被外部程序访问时,程序的运行不会受到环境的影响。
3.什么是进程,进程和程序的区别是什么?
答: 进程的概念: 1.进程是一个可以并行执行的计算部分; 2.进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源; 3.进程是一个独立的可以调度的活动; 4.并发执行的程序在执行过程中分配和管理资源的基本单位。 从理论角度看,是对正在运行的程序过程的抽象; 从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统运行的程序; (注重动态是一个动态的执行过程)
进程与程序的区别: 1.程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 2.程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。 3.进程更能真实地描述并发,而程序不能;
4.试说明PCB的作用,为什么说PCB是进程存在的唯一标志?
答:
1.PCB的作用:
(1)它是进程实体的一部分,是操作系统中最重要的记录型数据结构;
(2)PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。操作系统是根据PCB来对并发执行的进程进行控制和管理的。
2.为什么说PCB是进程存在的唯一标志?
(1)PCB包含了有关进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映; (2)系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的;
(3)进程的PCB是系统感知进程的唯一实体.
5.试着描述进程的三个基本状态?
答:
1.进程的三个基本状态:
(1)就绪状态:当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态;
(2)执行状态 :进程已获得CPU,正在执行。在单处理机系统中,只有一个进程处于执行状态;
(3)阻塞状态:正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态,也称为等待状态。
2.三个进程之间的转换关系:
(1)就绪状态→执行状态:进程调度,进程分配到CPU资源;
(2)执行状态→就绪状态:时间片用完;
(3)执行状态→阻塞状态:I/O请求;
(4)阻塞状态→就绪状态:I/O完成。
6.为什么要引入挂起状态?
引入挂起状态的原因:
1.终端用户的请求 : 当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来。
2.父进程请求: 有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。
3.负荷调节的需要: 当实时系统中的工作负荷较重,有可能影响到对实时任务的控制时,系统把一些不重要的进程挂起,以保证系统能正常运行。
4.操作系统的需要: 操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。
5.对换需要
7.在多道程序环境下,系统中并发的进程间存在哪两种制约关系?引起制约的原因是什么?
答:
1.存在的两种机制:
(1)资源共享关系(间接制约): 多个进程之间彼此无关,它们并不知道其他进程的存在,但这些进程既然是同处于一个系统中,也就必然存在着资源共享的关系,如共享CPU和I/O设备等; (2)相互合作关系(直接制约):多个进程间知道对方的存在,表现出来的是一种相互合作的关系。例如在输入进程、计算进程和打印进程三者之间。
2.引起制约的原因:
(1)直接制约是有并发进程相互共享对方的私有资源引起的;
(2)间接制约是有竞争公有资源引起的。
8.什么是临界资源和临界区?试着举一个临界区的例子?
答:
1.临界资源和临界区的定义:
(1)临界资源: 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。临界资源可能是硬件,也可能是软件:变量,数据,表格,队列等。
(2)临界区:
1>不允许多个并发进程交叉执行的一段程序
2>在每个进程中访问临界资源的那段代码
3>访问公共数据的那段程序。 例如:如有程序段A、B是关于变量X的临界区,而C、D是关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间也要互斥执行,而A与C、B与D之间不用互斥执行。
9.什么是进程间的互斥与同步?
答:
1.互斥:
定义:一组并发过程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥。
2.同步: 指的是两个或多个进程为了合作完成同一个任务,在执行速度或某些个确定的时序点上必须相互协调,即一个进程的执行依赖于另一个进程——其合作伙伴的消息,当一个进程到达了某一确定点而没有得到合作伙伴发来的“已完成某些操作”的消息时必须等待,直到该消息到达被唤醒后,才能继续向前推进。
10.试着比较信号量机制和加锁法实现进程间互斥的区别?
答:
1.加锁法定义: 是对临界区加锁以实现互斥。当某个进程进入临界区后,就锁定临界区直到它退出临界区,其他进程要进入时,须要不断测试临界区是否被用着,直到临界区空着是才能进入。这会影响系统的可靠性和执行效率。
2.信号量机制定义:P,V原语操作能改变信号量的数值,信号量(sem)可代表管理相应临界区公共资源的实体。当sem>=0时,表示可供并发进程使用的资源实体数,当sem<0是时,表示正在等待使用临界区的进程数。而一次P操作使得sem减1,一次V操作使得sem加1。
3.区别:加锁法 循环测试锁定位将损耗较多的 cpu 计算时间,同时,也有可能产生不公平的现象,而P,V操作相较而言,更简单,且表达能力强,但P,V相对来说不安全,会出现死锁,遇到复杂的同步互斥问题时会更复杂。
11.在生产者-消费者问题中,将有界缓冲区变为长度为m的缓冲区队列(每次数据操作单位为一个缓冲区),用信号量机制描述生产者和消费者进程。
设信号量empty为生产者进程的私用信号量,初值为m,表示空缓冲区的数目。 设信号量full为消费者进程的私用信号量,初值为0,表示已用缓冲区的数目。 设第i块缓冲区的公用信号量为mutex[i]保证生产者进程和消费者进程对同一块缓冲区操作的互斥,初值为1。
12.一组读者与一组写者循环访问共享的同一个数据对象。读者:指的是能对共享数据读的进程,写者:指的是能对共享数据对象只要求写的进程。规定:多个读者可以同时读这个数据对象,但绝不允许多个写者同时对这个数据对象进行写操作,也不允许读者、写者同时访问这个数据对象。用信号量机制描述读者和写者进程。
所用信号量和其他变量设置如下:
13.桌上有个只能盛得下一个水果的空盘子。爸爸可向盘中放苹果或桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定:当盘子空时,一次只能放入一个水果供吃者取用。试用信号量机制实现爸爸儿子和女儿这三个循环进程之间的同步。
所用信号量如下:
爸爸进程的同步信号量empty,初值为1,表示盘子是空的,即儿子或女儿已把盘中的水果取走。
儿子进程的同步信号量orange,初值为0,表示爸爸尚未把桔子放入盘中。
女儿进程的同步信号量apple,初值为0,表示爸爸尚未把苹果放入盘中。
14.有三个进程ABC使用一个包含N(N>0)个单元的缓冲区。A每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中:B每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;C每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动;
A、B、C之间的临界资源为缓冲区,AB、AC之间同步; AB、AC、BC之间互斥;
设临界资源缓冲区的公有信号量为mutex,表示可用缓冲区的数量,mutex=1;
A的私用信号量为empty,表示缓冲区中空单元的个数,empty=N;
B的私用信号量为odd,表示缓冲区中奇数的个数,odd=0;
C的私用信号量为even,表示缓冲区中偶数的个数,even=0;
15.进程间的高级通信有哪几种?
答:
进程间的高级通信有 3 种:
1.共享存储器机制: 要求通信进程之间共享某些变量,并通过这些变量交换信息,不需要数据移动。
2.消息传递机制: 在消息传递系统中,进程间的数据交换,是以格式化的消息(message)为单位的; 程序员直接利用系统提供的一组通信命令(原语)进行通信。操作系统隐藏了通信的实现细节,大大简化了通信程序编制的复杂性,而获得广泛的应用。
3.管道通信机制: 向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程)则从管道中接收(读)数据。由于发送进程和接收进程是利用管道进行通信的,故称为管道通信,又名共享文件通信。
16.什么是死锁?死锁产生的原因是什么?产生死锁的必要条件有哪些?
答:
1.死锁的定义: 所谓死锁,是指各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。从而造成大家都想得到资源而又得不到资源,各并发进程不能继续向前推进
2.死锁的产生原因: (1)并发进程的资源竞争 (2)根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数
3.产生死锁的必要条件: (1)互斥条件:涉及的资源不能同时被两个进程以上的进程使用; (2)不剥夺条件:不能强行剥夺进程拥有的资源; (3)部分分配条件:进程在等待一新资源时继续占有已分配的资源; (4)环路条件:存在一种进程的循环链,链中的每一个进程已获得的资源同时被链中的下一个进程所请求。
17.处理死锁有哪些方法?各有什么特点?
处理死锁的方法有:
(1)解决死锁的方法为:预防、避免、检测与解除
1>预防是采用某种策略,限制并发进程对资源的请求,从而使得死锁的必要条件在系统执行的任何时间都不满足。
2>避免是指系统在分配资源时,根据资源的使用情况提前做出预测,从而避免死锁的发生。
3>死锁检测与解除是指系统设有专门的机构,当死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的条件,从而使得并发进程从死锁状态中恢复出来。
(2)各自的特点:
1>预防:
优点:同前两法相比,其资源利用率和系统吞吐量有较明显的改善 缺点:实现较困难,因为很难给出合适的资源编号,不便于系统增添新设备,不便于用户编程,且仍有一定的资源浪费现象 2>避免:较大的系统开销,甚至不能充分利用资源。
3>死锁检测与解除:无论哪一种解除死锁的方法,都需要很大的开销。但是死锁的检测与解除办法不对系统的资源分配加任何限制,因此是对付死锁的诸办法中资源利用率最高的一种办法 ;
18.系统中有5个进程和3种类型的资源(A,B,C),资源的数量分别为(17,5,20)。T0时刻系统状态如下表所示。系统采用银行家算法实施死锁避免策略。
(1)T0时刻是否是安全状态,若是请给出安全序列。
(2)若在T0时刻进程P2提出请求资源分配(0,3,4),系统能否将资源分配给它,为什么?
(3)若在T0时刻进程P4提出请求资源分配(2,0,1),系统能否将资源分配给它,为什么?
19.为什么要引入线程?什么是线程?
引入线程的原因:
(1)进程同时作为一个资源拥有者和可独立调度的基本单位,在创建、撤消、切换中,系统必须为之付出较大时空开销。所以系统中进程的数量不宜过多,进程切换的频率不宜过高,但这也就限制了并发程度的进一步提高。
(2)为解决这个问题,把进程的两项功能--“独立分配资源”与“被调度执行”分离开来,由进程掌管资源,同一进程下的线程实现调度执行,轻装运行,被频繁地调度和切换,提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间和空间,提高操作系统的并发性能
线程的概念: (1)一个进程内的基本调度单位称为线程(thread) (2)线程具有进程的许多特征,故又称轻型进程 (3)在引入线程的OS中,线程是进程中的一个实体,是被系统独立调度的基本单位 (4)线程自己基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器、栈。 (5)它可与同属一个进程的其它线程共享进程所拥有的全部资源。
20.线程的两种实现方式?
答:
线程实现的两种方式(也是线程的两个基本类型)是: (1)用户级线程: 对于这种线程的创建、撤消、和切换全部由用户进程来完成,OS内核只对进程进行管理。 (2)核心级线程: 所有线程管理由操作系统内核完成,没有线程库,但内核提供API。OS内核维护进程和线程的上下文,线程之间的切换需要内核支持,以线程为基础进行调度。
第四章 处理及调度
1.什么是分级调度?
答: 分级调度的概念: 处理机调度是指动态地把CPU分配给并发执行的进程,不同操作系统对处理机管理的策略不同,大多数操作系统根据需要采用坚固某些目标的简单调度算法。我们需要一定的方法和策略为作业分配空间。因为处理机调度需要分级,即分级调度。一般分为4级:作业调度,交换调度,进程调度,线程调度。
2.作业调度的主要功能?
答: 作业调度主要是完成作业从后备到执行状态的转变,以及从执行到完成状态的转变;
作业调度的主要功能:
1>记录系统中各作业的状况: 系统为每个作业建立一个作业控制块JCB记录有关信息,系统通过JCB而感知、调度和管理作业从而掌握作业的各个状态和信息并且挑出一个作业投入执行和对其进行管理;
2>从后备队列中挑选出一部分作业投入执行: 作业调度程序根据选定的调度算法,从后备作业队列中挑选出若干作业去投入执行;
3>为被选中作业作好执行前的准备工作: 为选中的作业建立相应的进程,并为这些进程分配它们所需要的系统资源,如分配内存、外存、外设等;
4>在作业执行结束时做善后处理: 输出作业管理信息,如输出执行时间等,回收该作业所占用的资源,撤销与该作业有关的全部进程和该作业的JCB;
3.试述进程调度的主要功能?
答: 进程调度即为用户进程和系统进程都要使用处理机,因此进程调度程序应该按照一定的策略动态地把处理机分配给处于就绪队列中的某一个进程,使之执行;
进程调度的主要功能:
1>记录系统中所有进程的执行情况: 进程调度模块通过PCB变化来掌握系统中所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据处理机;
2>选择占有处理机的进程 按照一定的策略选择一个处于就绪状态的进程,使其获得处理机执行;
3>进行进程上下文切换 当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使得另一个进程得以执行;
4.进程调度的时机?
答: 进程调度的时机有:
(一)对于CPU执行方式不可剥夺: 1>正在执行的进程执行完毕; 2>执行中进程自己调用阻塞原语将自己阻塞起来进入等待状态; 3>执行中进程调用了P原语操作,因为资源不足而被阻塞;或用V原语激活了等待资源的进程队列; 4>执行中进程提出了I/O请求后被阻塞; 5>正在执行的进程的CPU时间片已经用完; 6>在执行完系统调用,返回用户进程时,可以认为系统进程执行完毕,从而可调度选择一个新的用户进程执行;
(二)对于CPU执行方式可剥夺(抢占): 7>就绪队列中的某进程的优先级高于当前执行进程的优先级;
5.假设一个系统中有5个进程,它们处于就绪状态的时刻和估计运行时间如下表所示忽略1/0以及其它开销时间,若分别按先来先服务,最短进程优先,最短剩余时间、优先响应比优先、时间片轮转(时间片=1)、非抢占多级反馈队列(第i级队列的时间片=2的i次方-1)以及抢占的多级反馈队列调度算法进行CPU调度请给出各进程的调度顺序、完成时间、周转时间。
周转时间=完成时间-到达时间;
带权周转时间=周转时间/运行时间;
平均周转时间=作业周转总时间/作业个数;
平均带权周转时间=带权周转总时间/作业个数;
不可剥夺:响应比优先、先来先服务等
可剥夺:时间片和抢占式多级反馈
操作系统之进程管理:6、调度算法(先来先服务FCFS、最短作业优先SJF、最高响应比优先HRRN、时间片轮转法、优先级调度、多级反馈队列)_千寻瀑-CSDN博客_操作系统高响应比优先调度算法
6. 在单CPU和两台/0设备(11,12)的多道程序设计环境下,同时投入3个作业Job1、 Job2、Job3运行。这3个作业对CPU和I/0设备的使用顺序和时间如下所示: Job1:12(30ms);CPU(10ms);11(30ms);CPU(10ms);12(20ms)
Job2:11(20ms);CPU(20ms);12(40ms) Job3:CPU(30ms);11(20ms);CPU(10ms);11(10ms)
假定CPU、11、12都能并行工作,Job1优先级最高,Job2次之,Job3最低,优先级高的作业可以抢占优先级低的作业的CPU但不可抢占11,12。求:
(1)3个作业从投入到完成分别需要的时间。(2)从投入到完成的CPU利用率。(3)1/0设备利用率。
第五章 存储管理
1.存储管理的功能;
(1)虚拟存储器;
虚拟存储器是存储管理的核心概念 ,存储器包括内存和外存。其基本思想是用软硬件技术把内存与外存这两级存储器当成一级存储器来用,从而给用户提供一个比内存也比任何应用程序大的多的虚拟存储器,不受内存大小的限制;
(2)地址变换;
当一个虚拟地址空间的程序装入到物理地址空间时候,由于两个空间不一致,需要进行地址的映射,即地址的重定位;
(3)内外存数据传输的控制;
要实现虚拟存储器,达到内存扩充的目的,那么在程序执行的过程中,内存和外存之间必须经常交换数据,最基本的控制方法有两种:用户自己控制和操作系统控制;
(4)内存的分配与回收;
由于进程的开始和结束、进程运行过程中内存变化和内存有限,系统不可能容容纳所有进程,为了充分利用内存空间,要对其进行分配与回收;
(5)内存信息的共享与保护;
共享被允许的部分;对于不被允许的部分,(多道程序互不干扰),则要防止地址越界和操作越权;
2.什么是虚拟存储器;
(1)虚拟存储器是存储管理的核心概念,存储器由内存(primary storage)和外存(secondary storage)组成: 内存由顺序编址的块组成,每块中包含相应的物理单元,内存的每个存储单元都有一个编号,这种编号称为内存地址(或称为物理地址,绝对地址),内存地址的集合称为内存空间(或物理地址空间)且内存访问速度快、价格贵、容量小;外存访问速度慢、价格便宜、适合存放大量信息,容量大;
(2)虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和来决定,其运行速度接近于内存速度,而每位的成本却又接近于外存;
(3)进程中的目标代码、数据等的虚拟地址组成的虚拟空间成为虚拟存储器。
3.试述分区存储管理两种方法的原理。分区存储管理能实现虚拟存储器吗?为什么?
(1)固定分区法: 把内存固定地划分为若干个大小不等的区域,分区的划分由操作系统设定;分区一旦划分结束,在整个执行过程中每个分区的长度和内存的总分区个数将保持不变;系统对内存的管理和控制通过数据结构-分区说明表进行,分区说明表说明各分区号、分区大小、起始地址和是否是空闲区(分区状态);内存的分配和回收、地址变换都通过分区说明表进行;
(2)动态分区法: 在系统运行的过程中建立分区,分区的大小和数目可以改变。这种存储管理的方法解决了固定分区严重浪费内存的问题;在系统初启动时,除了OS中常驻内存部分之外,只有一个空闲分区,随后将该区依次划分给调度选中的作业或进程;随着进程的执行会出现一系列的内存分配和释放;
在动态分区存储管理中,也要有相应的数据结构来登记空闲区的说明信息
1>可用表(空闲区表):每个表目记录一个空闲区,主要参数包括长度和起始地址(表的大小不确定,要占用一部分内存);
2>自由链(空闲区队列):利用每个内存空闲区的头几个单元存放本空闲区的大小以及下个空闲区的起始地址,从而把所有的空闲区链接起来(不占用额外的内存
分区存储管理能实现虚拟存储器吗?
不可以
1>因为动态分区每次必须将作业完整调入并连续存放,这不适合虚拟存储的要求。
2>动态分区的硬件地址转换机构把绝对地址超出限定范围时作地址错处理,而不是产生”缺分区中断“;
4.有作业序列:作业A 21k , 作业B 30k, 作业C 25k。系统中的空闲区如下图所致,先给出三种算法组成的空闲区链表,再分析哪种算法合适;
可知,最坏适应法对这个作业序列是合适的;
5.什么是页式存储管理?静态页式管理能实现虚拟存储器吗?为什么?
页式存储管理: 1>页式管理正是为了减少碎片以及为了只在内存存放那些反复执行的或即将执行的程序段与数据部分,而把那些不经常执行的程序段和数据存放于外存,待执行时调入,以提高内存利用率而提出来的; 2>各进程的虚拟空间被划分为若干个长度相等的页(page)。一般页长大约为1-4k,经过页划分之后进程的虚地址变为页号p与页内地址(页内偏移量)w所组成; 3>把内存空间也按页的大小划分为块或页面(page frame); 4>用户进程在内存空间内除了在每个页面内地址连续之外,每个页面之间不再连续; 5>逻辑上相邻的页,物理上不一定相邻;
静态页式管理不能实现 虚拟存储器: 原因: 虽然静态页式管理解决了分区管理时的碎片问题。但是,由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,该作业或进程只好等待,而且,作业或进程的大小仍受内存可用页面数的限制,因而,未能真正实现虚拟存储器。
6.已知某分页系统,主存容量为64k,页面大小为1k,对于一个4页大小的作业,其0、1、2、3页分别被分配到主存的2、4、6、7页面中。将十进制的逻辑地址1023、3500、4500转换为物理地址,以1023为例解释并画出地址变换过程。
答: 1>转换成物理地址: 1023: 1023/1k=0......1023,0即为虚页号,转换成页框号2(即将进程的第0页转换成主存的2页),1023即为页内地址,所以转换的物理地址为2*1K+1023=3071; 3500: 3500/1k=3......428,3即为虚页号,转换成页框号7(即将进程的第3页转换成主存的7页),428即为页内地址,所以转换的物理地址为7*1k+428=7596; 4500: 4500/1k=4......404,4即为虚页号,因为页号不小于页表的长度,故产生越界中断;
2>以1023为例解释并画出地址变换过程:
(1)对逻辑地址取商取余:1023/1k=0......1023;
(2)比较页号及页表长度,是否产生越界中断:0即为虚页号,并未越界;同时将其转换为内存对应页数;
(3)转换物理地址:1023即为页内地址,所以转换的物理地址为2*1K+1023=3071;
7.内存的分配和替换策略有哪些?
答:
内存的分配策略: 1>固定分配:固定分配策略是分配给进程的内存块数是固定的, 并在最初装入时(即进程创建时)确定块数; (1)平均分配: -这是将系统中所有可供分配的物理块平均分配给各个进程。例如,当系统中有100个物理块,有5个进程在运行时,每个进程可分得20个物理块。这种方法看似公平,实际不然,因为它未考虑到各进程本身的大小。假如有一个进程大小为200页,只分配给它20个块,它必然有很高的缺页率;而另一进程只有10页,却有10个物理块闲置未用。 (2)按进程大小比例分配: 这是根据进程的大小按比例分配物理块的算法。如果系统中共有n个进程,每个进程的页面数为Si,则系统中各进程页面数的总和为:S=S1+S2+...+Si+...+Sn-1+Sn (i=1~n) 又假定系统中可用的物理块总数为m,则每个进程所能分到的物理块数为bi,则有: bi=(Si*m)/S 其中,b应该取整,它必须大于最小物理块数 (3)考虑优先级的分配算法: 在实际应用中,为了照顾到重要的、紧迫的作业能尽快地完成,应为它分配较多的内存空间。通常采取的方法是把内存中可供分配的所有物理块,分成两部分:一部分按比例地分配给各进程;另一部分则根据各进程的优先权,适当地增加其相应份额后,分配给各进程。在有的系统中,如重要的实时控制系统,则可能是完全按优先权来为各进程分配其物理块的。
2>可变分配:在作业要求装入内存时,若当时内存中有足够的存储空间满足该作业的需求,那就划分出一个与作业相对地址空间同样大小的分区分配给它使用;
内存的替换策略:
1>固定分配局部置换: 这是指基于进程的类型(交互型或批处理型等),或根据程序员、程序管理员的建议,为每个进程分配一定数目的物理块,在整个运行期间都不再改变。采用该策略时,如果进程在运行中发现缺页,则只能从该进程在内存的n个页面中选出一个页换出,然后再调入一页,以保证分配给该进程的内存空间不变(固定分配)。
2>可变分配全局置换: 这可能是最易于实现的一种物理块分配和置换策略,已用于若干个OS中。在采用这种策略时,先为系统中的每个进程分配一定数目的物理块,而OS自身也保持一个空闲物理块队列。当某进程发现缺页时,由系统从空闲物理块队列中取出一个物理块分配给该进程,并将欲调入的(缺)页装入其中。这样,凡产生缺页(中断)的进程,都将获得新的物理块。仅当空闲物理块队列中的物理块用完时,OS才能从内存中选择一页调出,该页可能是系统中任一进程的页,这样,自然又会使那个进程的物理块减少,进而使其缺页率增加
3>可变分配局部置换: 这同样是基于进程的类型或根据程序员的要求,为每个进程分配一定数目的物理块,但当某进程发现缺页时,只允许从该进程在内存的页面中选出一页换出,这样就不会影响其它进程的运行。如果进程在运行中频繁地发生缺页中断,则系统需再为该进程分配若干个附加的物理块,直至该进程的缺页率减少到适当程度为止;反之,若一个进程在运行过程中的缺页率特别低,则此时可适当减少分配给该进程的物理块数,但不应引起其缺页率的明显增加。
8.某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个块,页表如下所示。
当前时刻,要访问逻辑地址为17CAH(十六进制)的数据,请回答下列问题
(1)该逻辑地址对应的页号是多少?
(2)若分别采用先进先出、最近最久未使用、改进型Clock算法进行页面置换,置换后该逻辑地址对应的物理地址分别是多少(用十进制、十六进制表示均可)。
1>逻辑地址对应的页号是: 由题可知,
逻辑地址为17CAH(H为十六进制)= 0001 0111 1100 1010B; 由题可知,页的大小为1k,是2的10次方,则内页地址为10位,则前6位是页号,000101B十进制为:5,则逻辑地址对应的页号为:5,页内地址为970;
2>用以下算法进行页面置换并写出对应的物理地址:
(1)先进先出: 根据先进先出算法,需要替换装入时间最早的页,故需要置换装入时间最早的3号页,即将5号页装入9号页面中,所以物理地址为:0010 0111 1100 1010B,十进制为:10186,换成十六进制为:27CAH;
2)最近最久未使用:选择最后一次访问时间距离当前时间最长的一页并淘汰,即淘汰当前未使用时间最长的页; 可知,最后访问时间可知,7号页是距离当前时间最长的一页,则将其淘汰,则物理地址为000 1 1111 1100 1010B,十进制为:8138,换成十六进制为1 FCAH;
3)改进型Clock算法:根据Clock算法,如果当前指针所指页面的访问位为0,则替换该页;否则将使用位清零,并将指针指向下一个页面; 假设当前指针指的是7号页面,且其访问位为0,则物理地址为0010 0111 1100 1010B,十进制为:10186,换成十六进制为:27CAH; 假设当前指针指的是2号页面,且其访问位为0,则物理地址为0000 1011 1100 1010B,十进制为:3018,换成十六进制为:0BCAH;
9.对于一个将页表放在内存中的分页系统,如果访问内存需要0.2微秒,那么CPU访问一条指令或数据的有效时间是多少?如果增加一个快表,且假定在快表中找到页表项的机率为90%,则有效访问时间为多少?(假定访问快表的时间忽略不计)
答: 1>分页系统要访问两次: 第一次访问页表:将页号换成页地址,并与偏移量相加,得出实际地址; 第二次访问实际地址; 则一共 0.2 +0.2 = 0.4(us)
2>若增加一个快表,且命中几率为90%:命中则只访问一次,若不命中,则要要访问两次; 0.2*90% + 0.4*10% = 0.22(us); 则一共 0.22 us.
10.什么是Belady现象?请举例说明,并解释产生的原因
答:
Belady现象: FIFO算法会产生异常现象(Belady现象),即:当分配给进程的物理页面数增加时,会出现缺页次数反而增加的现象;
例子:进程P共有5页,访问串为1,2,3,4,1,2,5,1,2,3,4,5 页面数=4,缺页次数=10 缺页率=83.3% 内存工作区页面为3时: 页面数=3,缺页次数=9,缺页率9/12;
产生原因: 这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。 因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去,没有考虑到程序执行的动态特征
11.什么是段式管理?它与页式管理有何区别?
答: 段式管理的概念: 一个用户作业的程序按其逻辑结构可划分为若干段,例如主程序段、子程序段、数据段、堆栈段等。这些段中的每一段在逻辑上都是完整的,因此每一段都是一组逻辑信息,有自己的名字,且都有一段连续的地址空间。这样的分段组织便于实现段共享和保护,便于实现动态链接和数据动态增长;
段式管理与页式管理的区别: 1>段是依据程序的逻辑结构划分的,页是按内存线性空间物理划分的; 2>段式技术中程序地址空间是二维的,分页技术中程序地址空间是一维的; 3>段是面向用户的,页对用户而言是透明的;4>段长由用户决定,且各段的大小一般不相等。页长是由系统决定的,各页的长度必须相等; 5>段的共享比页的共享更容易。
12一个进程的段表如下表所示,写出下列指令在执行时产生的结果。
(1)STORE R1[0,70]
(2)STORE R1[1,20]
(3)LOAD R1[3,20]
(4)LOAD R1[3,100]
(5)JMP[2,100]
答:
1>指令STORE R1,[0,70],从段表的第0项可知,该段的存在位为0,内存始址为空,则说明相应段并未装入内存,因此地址变换机构将产生一缺段中断,以请求OS将其调入内存;
2>指令STORE R1,[1,20],从段表的第1项可知,该段的存在位为1,内存始址不为空,则说明相应段已装入内存,但是保护码字段为:R,与本指令对内存的访问方式:写 不符,因此硬件将产生保护性中断信号;
3>指令LOAD R1,[3,20],从段表的第3项可知,该段的存在位为1,内存始址为8000,段长为80,保护码字段为:R,因此,逻辑地址合法,访问方式也合法,之后形成地址8020之后,指令将把该单元的内容读到寄存器R1中;
4>指令LOAD R1,[3,100],从段表的第3项可知,该段的存在位为1,内存始址为8000,段长为80,保护码字段为:R ,因此,指令的逻辑地址中段内地址超过了段长,地址变换机构将产生越界中断号;
5>指令JMP [2,100],从段表的第2项可知,该段的存在位为1,内存始址为3000,段长为200,保护码字段为:E ,因此,逻辑地址合法,访问方式也合法,形成物理地址3100,指令执行后,将跳转到内存单元 3100处继续执行;
13.什么是局部性原理?什么是抖动现象?如何减少系统的抖动现象?
答:
局部性原理的概念:局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
(1) 时间局部性:如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被访问过, 则不久以后该数据可能再次被访问。产生时间局限性的典型原因,是由于在程序中存在着大量的循环操作;
(2) 空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行 ;
抖动现象: 系统换页或换段频繁时,以致大部分时间都花费在内外存之间的来回调入调出上,访问外存时间和输入/输出处理时间大大增加,反而造成CPU因等待数据空转,使得整个系统性能大大下降,这就造成了系统抖动;
如何防止抖动现象:
( 针对产生抖动现象的原因:(1)分给进程的内存小于所要求的工作集;(2)选择的页或段的淘汰算法不适 来制定策略)
1>扩大工作集; 2>选择不同的淘汰算法; 3>挂起某些进程。 当出现CPU利用率很低、 而磁盘I/O非常频繁的情况时, 就可能因为多道程序度太高而造成抖动;
第六章 设备管理
1.设备管理的功能
答: 设备管理,是对计算机I/O系统的管理,具有多样性和复杂性; 主要的功能有:
<1>提供和进程管理的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序;
<2>进行设备分配与回收。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列,使用之后并将其进行回收;
<3>实现设备和设备、设备和 CPU 之间的并行操作。这需要有相应的硬件支持,对应于不同的输入输出控制方式,需要有 DMA、通道等硬件完成并行操作的任务;
<4>进行缓冲区管理。一般来说, CPU 的执行速度和访问内存速度都比较高,而外部设备的数据速度则低得多,为了减少外部设备和内存与 CPU 之间的数据速度不匹配的问题,系统中一般设有缓冲区来暂放数据。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。
2.数据传输控制方式有哪几种?试比较它们各自的优缺点?
答: 数据传输控制方式常用的有4种方式:
一.程序直接控制方式(忙一等/循环测试方式);
(1)概念:控制者是用户进程,由程序直接控制内存或CPU和外围设备之间进行信息传送的方式。通常又叫“忙一等”方式或者循环测试方式,且在传输过程中,必不可少的硬件设备是I/O控制器;
(2)优点: <1>控制简单,需要的硬件支持少;
(3)缺点:
<1>CPU和外围设备只能串行工作,CPU的利用率低;
<2>不能实现设备之间的并行工作;
<3>无法发现和处理产生的错误;
(因而适用于CPU执行速度慢且外围设备较少的系统)
二.中断控制方式;
(1)概念:为了减少程序直接控制方式中 CPU 等待时间以及提高系统的并行工作程度,中断方式被用来控制外围设备和内存与 CPU 之间的数据传送。这种方式要求 CPU 与设备(或控制器)之间有相应的中断请求线,而且在设备控制器的控制状态寄存器中有相应的中断允许位;
(2)优点: <1>提高了设备之间的并行程度:能支持多道程序和设备的并行操作; <2>大大提高了CPU的利用率:CPU 在等待寄存器状态时,没有像程序直接控制方式那样循环测试状态控制寄存器的状态是否已处于 Done,已被调度程序分配给其他进程在另外的进程上下文中执行。
(3)缺点: <1>在一次数据传送过程中,发生中断的次数较多,消耗CPU处理时间; <2>外围设备较多,中断次数多会造成CPU无法响应中断和出现数据丢失的现象; <3>如果外围设备的速度也很高时,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失;
(因而适用于高效场所)
三.DMA方式;
(1)概念:DMA方式又称为直接存储器访问方式,其基本思想是:在外设和主存之间开辟直接的数据交换通路。在DMA控制器的控制下,设备同主存之间可成批交换数据,不用CPU干预;
(2)优点: <1>DMA方式是在要求所传送的数据快全部传送结束时要求CPU进行中断处理,相较于中断处理,大大减少了CPU进行中断处理的次数; <2>不需要CPU的频繁干涉:除了开始和结束时,数据传送时大部分在DMA控制器的控制下完成,不经过CPU;
(3)缺点: <1>DMA方式对外围设备的管理和某些操作仍由CPU控制,随着外设的数量和种类越来越多,多个DMA控制器的同时使用会引起内存地址的冲突并使得控制过程进一步复杂化; <2>且随着DMA的增多,成本也在上升;
(因而适用于不需要CPU干预介入的控制器来控制内存与外设直接交流的数据交流的场合)
四.通道方式;
(1)概念:在CPU的控制下,通道独立地执行通道程序,对外部设备的I/O操作进行控制,以实现内存和外设之间成批的数据交换。
(2)优点: <1>减轻了CPU的工作负担:由一个专门负责输入/输出的硬件--通道来控制,相较于DMA方式可能会需要多个DMA控制器带来的控制过程复杂和成本增大等问题,一个通道可控制多台设备与内存进行数据交换; <2>增加了计算机系统的并行工作程度:与CPU并行工作时间最长; (3)缺点: <1>价格较高,不宜过多使用; (因而适用于以字节为单位的干预,同时实现CPU、通道和I/O设备三者并行操作的场合)
3.什么是通道?通道的三种类型是什么?
答:
一.通道的概念: 一种以内存为中心,实现设备和内存直接交换数据的控制方式,通道是一个独立于 CPU 的专管输入输出控制的处理机, 它控制设备与内存直接进行数据交换,通道有自己的通道指令,这些通道指令受 CPU 启动,并在操作结束时向 CPU 发中断信号(在CPU的控制下,通道独立地执行通道程序,对外部设备的I/O操作进行控制,以实现内存和外设之间成批的数据交换。)
二.通道的三种类型:
(1)字节多路通道: 字节多路通道是以字节为基本传输单位,当一子通道控制的某台外设交换了一个字节后,就转向下一个子通道,以控制下一台设备传送一个字节。这就实现了子通道的循环轮转,以达到多路控制的目的,字节多路通道最主要用来控制低速、并且以字节为基本传送单位的设备。如打印机。
(2)数据选择通道: 这种通道一次执行一个通道程序,控制一台设备连续地传送一批数据,当一个程序执行完后,才转向下一个程序,它的优点是传输速度高,缺点是一次只能控制一台设备进行I/O操作。它主要用来控制高速外设。如磁盘。
(3)数据多路通道: 这种通道是上述两种通道的折中,可以分时的方式执行多道程序,每道程序可传送一组数据。它主要用于中高速设备的控制,如磁带机。 (在一大型系统中,可以同时使用存在着三种类型的通道以便控制各种不同类型的设备)
4.什么是中断、中断源、中断请求和中断响应?简述中断处理的过程。
答:
一.基本概念:
中断:计算机在执行期间,系统内发生任何非寻常的或非预期的继续处理的事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕又返回原来被中断处继续执行或调度新的进程执行的过程;
中断源:引起中断发生的事件称为中断源;
中断请求:中断源向CPU发出的请求中断处理信号称为中断请求;
中断响应:CPU收到中断请求后转相应的事件处理程序称为中断响应;
二.简述中断处理的过程:
①中断源发出中断请求,CPU判断响应中断的条件是否满足;
②若CPU响应中断,则关中断;
③保存中断进程现场;
④分析中断原因,调用中断处理子程序;
⑤执行中断处理子程序;
⑥退出中断,恢复被中断进程的现场;
(7)开中断,CPU继续执行;
中断全过程分简单概括为为5个阶段:中断请求、中断判优、中断响应、中断处理和中断返回
5.什么是缓冲?为什么要引入缓冲?
答:
一.缓冲的概念: 缓冲:缓冲是使用专用硬件缓冲器或在内存中划出一个区域用来暂时存放输入输出数据的器件。
二.为什么要引入缓冲?
1.匹配CPU和设备的速度的差异和负荷的不均匀;
2.提高CPU(处理机)与I/O设备(外设)之间的并行性; (凡是数据到达和离去的速度不匹配的地方均可采用缓冲技术)
3.为了减少中断次数和CPU的中断处理时间。如果没有缓冲,慢速I/O设备每传一个字节就要产生一个中断,CPU必须处理该中断。如果用了缓冲技术,则慢速的I/O设备将缓冲区填满时,才向CPU发出中断,从而减少了中断次数和CPU的中断处理时间。
4.为了解决DMA或通道方式下数据传输的瓶颈问题。DMA或通道方式都适用于成批数据传输,在无缓冲的情况下,慢速I/O设备只能一个字节一个字节的传输信息,这造成DMA方式或通道方式数据传输的瓶颈。缓冲区的设置适应了DMA或通道方式的成批数据传输方式,解决了数据传输的瓶颈问题。
6.用于设备分配的数据结构有哪些?它们之间的关系是什么?
答:
一.用于设备分配的数据结构有:
<1>设备控制表DCT: 是设备管理的重要数据结构,反映了每台设备的特性、连接和使用的状态等信息。当一台设备进入系统时必须创立对应的DCT,其内容则是根据系统执行情况动态修改;
<2>系统设备表SDT: 整个系统一张,为每个物理设备设一项。反应系统中设备资源的状态,即系统中有多少设备,有多少是空闲的,有多少已分配了哪些进程;
<3>控制器表COCT: 每个控制器一张,反应I/O控制器的使用状态以及和通道的连接情况等,在DMA方式时,该项时没有的;
<4>通道控制表CHCT: 只在通道控制方式的系统中存在,每个通道一张,包括:通道标识符、通道忙/闲标志、等待获得该通道的进程队列首指针;
二.它们之间的关系有: SDT整个系统一张,每个设备有一张DCT,每个控制器有一张COCT,每个通道有一张CHCT,SDT中有一个DCT指针,DCT中有一个COCT指针,COCT中有一个CHCT指针。
7.什么叫做设备独立性?
答:
设备独立性,也称为设备无关性。
其基本含义是:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称的功能,着非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。 提供了很多好处:1、 方便用户2,提高设备的利用率 3、提高系统的可适应性和可扩展性。
8.假设计算机系统采用循环扫描磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。
(1)请说明在上述条件下如何进行磁盘块空闲状态的管理。
(2)设某单面磁盘的旋转速度为6000r/min,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号请求队列为50、90、30、120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多少时间?
(3)如果将磁盘替换为随机访问的 Flash半导体存储器(如U盘、固态硬盘等),是否有比循环扫描更高效的磁盘调度策略?并说明理由。
答:
(1)由题目可知一共有 16384 个盘块需要管理,因为盘块数量大,不适合采用空闲表和空闲链表法进行管理,所以采用位示图进行管理。 每一个盘块用一位来记录,则需要 16384 bit,也就是 16384 / 8 = 2048B = 2KB,刚好可以用题目给出的 2KB 内存空间来记录。
(2)
1>采用CSCAN调度算法,访问磁道的顺序为100->120->30->50->90,则移动磁道长度为20+90+20+40= 170,总的移动时间为170×1ms=170ms。
2>由于转速为6000r/min,则转一圈的时间为0.01s=10ms,则旋转时间为10ms*0.5*4=20ms;
3>由于转速为6000r/min,则转一圈的时间为0.01s=10ms,则读取一个磁道上的一个扇区的平均读取时间为10ms/100=0.1ms,总的读取扇区的时间=0.1ms×4=0.4ms。
4>读取上述磁道上的所有4个扇区所花费的总时间=170ms+20ms+0.4ms=190.4ms。(若考虑磁臂启动时间,则加上一般启动时间为2ms)
(3) 采用FCFS(先来先服务)调度策略更高效。因为Flash半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按I/O请求的先后顺序服务。
第七章 文件系统
1.什么是文件?文件系统?文件系统有哪些功能?
答:
(1)文件的概念: 在计算机系统中,文件被解释为一组赋名的相关字符流的集合或者是相关记录的集合;( 文件,是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件(记录式文件)和无结构文件(流式文件)两种。)
(2)文件系统的概念:操作系统中与管理文件有关的软件和数据称为文件系统。
(3)文件系统的功能:
为用户建立文件、撤销、读写、修改和复制文件,以及完成对文件的按名存取和进行存取控制。 1>为了合理地存放文件,必须对磁盘等辅助存储器空间(或称文件存储空间)进行统一管理。在用户创建新文件时为其分配空闲区,而在用户删除或修改某个文件时,回收和调整存储区。
2>为了实现按名存取,需要有一个用户可见的文件逻辑结构,用户按照文件逻辑结构所给定的方式进行信息的存取和加工。这种逻辑结构是独立于物理存储设备的。
3>为了便于存放和加工信息,文件在存储设备上应按一定的顺序存放。这种存放方式称为文件的物理结构。
4>完成对存放在存储设备上的文件信息的查找。
5>完成文件的共享和提供保护功能
2.什么是文件的逻辑结构?有哪些存取存取方法?
答:
(1)文件的逻辑结构: 文件的逻辑结构,这是从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性。仅用户可见,可分为字符流式的无结构文件和记录式有结构文件两大类。
(2)存取方法有: 常用的存取方法有 3 种:顺序存取法、直接存取法(又称随机存取法)、按键存取法。
1>顺序存取法:按照文件的逻辑地址顺序存取;
2>直接存取法(又称随机存取法):允许按任意顺序存取文件中的任何一个记录,可以根据记 录的编号来直接存取文件中的任意一个记录,或者是根据存取命令把读写指针移到欲读写信息处
3>按键存取法:按键存取法实质上也是直接存取法,它不是根据记录编号或地址来存取,而根据文件记录中的关键字(通常称为键)经过某种方法计算处理,转换成相应的物理地址后进行取,它被广泛用于现代操作系统和数据库管理系统中的数据查找。按键存取法首先搜索到要进行存取记录的逻辑位置,再将其转换到相应的物理地址后进行存取。
3.什么是文件的物理结构?有哪几种结构形式?为什么说链接结构不适于直接存取?
答:
(1)文件的物理结构: 文件的物理结构,是指文件在存储设备上的存放方法。事实上,由于文件的物理结构决定了文件信息在存储设备上的存储位置,因此,文件信息的逻辑块号(逻辑地址)到物理块号(物理地址)的变换也是由文件的物理结构决定的。
(2)物理结构的种类: 常用的文件物理结构有连续结构、链接结构、索引结构。
1>连续结构: 一个文件的全部信息存放在外存的一片连续编号的物理快中,这种结构称为连续结构,或称为连续文件 。
2>链接结构:链接结构又称串联结构,它将一个逻辑上连续的文件信息存放在外存的不连续(或连续)物理块中。在采用链接结构时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表。
3>索引结构:索引结构要求系统为每个文件建立一张索引表,表中每一栏指出文件信息所在的逻辑块号和与之对应的物理块号.
(3)原因; 串联文件结构用非连续的物理块来存放文件信息。这些非连续的物理块之间没有顺序关系,链接成一个串联队列。搜索时只能按队列中的串联指针顺序搜索,存取方法应该是顺序存取的。否则,为了读取某个信息块而造成的磁头大幅度移动将花去较多的时间。因此,串联文件结构不适于随机存取。
4.常用的文件存储空间管理方法有哪几种?试述主要优缺点。
答:文件存储设备的管理实质上是一个空闲块的组织和管理问题。有3种不同的空闲块管理方法。即空闲文件目录、空闲块链和位示图。
(1)空闲文件目录管理方法就是把文件存储设备中的空闲块的块号统一放在一个称为空闲文件目录的物理块中,其中空闲文件目录的每个表项对应一个由多个空闲块构成的空闲区。该方法实现简单,适于连续文件结构的文件存储区的分配与回收。但是由于回收时不进行合并,所以使用该方法容易产生大量的小块空闲区。
(2)空闲块链法把文件存储设备上的所有空闲块链接在一-起,从链头分配空闲块,把回收的空闲块插人到链尾。该方法不占用额外的空间,但实现复杂。
(3)位示图法是从内存中划出若干字节,每一位对应 一个物理块的使用情况。如果该位为0则表示对应的是空闲块,为1则表示对应的物理块已分配出去。位示图法在查找空闲块时无须启动外设,但要占用内存空间。
5.什么是文件目录和目录文件? 文件目录包含哪些信息?
答:
(1)文件目录:一个文件的文件名和对该文件实施控制管理的说明信息称为该文件的说明信息又称为该文件的目录。
(2)目录文件: 文件系统将若干个文件目录组成一个独立的文件,这种仅由文件目录组成的文件称为目录文件。它是文件系统管理文件的手段,文件系统要求文件目录和目录文件占用空间少、存取方便。由于文件系统中一般有很多文件,故目录文件也很大,因此目录文件并不放在主存中,而是放在辅存中。
(3)文件目录的内容: 文件目录中包含文件名与文件名相对应的文件内部标识以及文件信息在文件存储设备上第一个物理块的地址等信息。另外还可能包含关于文件逻辑结构、物理结构、存取控制和管理等信息。
6.某文件系统为一级目录,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次创建新文件。请回答:
(1)采用哪种文件物理结构形式更合适?说明理由。为定位文件数据块,需要FCB中设计哪些相关描述字段?
(2)为快速找到文件,对于 FCB是集中存储好,还是与对应文件数据块连续存储好?为什么?
答:
(1)连续结构更合适。
理由:
1>因为一次写入不存在插入问题,而且写入文件之后不需要修改,连续的数据块组织方式很适合一次性写入磁盘不再修改的情况。
2>同时连续存储相对于链式和索引结构省去了指针的空间开销,支持随机查找,查找速度最快。
包含的字段有:存放文件的设备名、文件在外的起始盘块号、文件长度等。
(2)FCB集中存储好。 理由:FCB存储有文件的很多重要信息,同时是文件目录的重要组成部分,在检索时,通常会访问对应文件的FCB,如果将FCB集中存储,则可以减少在检索过程中产生的访盘次数,提高检索速度。
7.文件存取控制方式有哪几种?试比较它们的优缺点。
答:文件存取控制方式一般有存取控制矩阵、存取控制表、口令和密码4种方式。
(1)存取控制矩阵方式以一个二维矩阵来进行存取控制。矩阵的一维是所有的用户,另一维是所有的文件。对应的矩阵元素则是用户对文件的存取控制权。存取控制矩阵的方法在概念上比较简单,但是当用户和文件较多时存取控制矩阵将变得非常庞大从而时间和空间的开销都很大。
(2)存取控制表方式以文件为单位把用户按某种关系划分为若干组同时规定每组的存取限制。这样所有用户组对文件权限的集合就形成了该文件的存取控制表。存取控制表方式占用空间较小,搜索效率也较高但要对用户分组引入了额外的开销。
(3)口令方式有两种。一种是当用户进入系统为建立终端进程时获得系统使用权的口令。另一种口令方式是每个用户在创建文件时为每一个创建的文件设置一个口令且将其置于文件说明中。当任一用户想使用该文件时都必须首先提供口令。口令方式比较简单,占用的内存单元以及验证口令所费时间都非常少。不过相对来说,口令方式保密性能较差。
(4)密码方式在用户创建源文件并写人存储设备时对文件进行编码加密,在读出文件时对其进行译码解密。加密方式具有保密性强的优点。但是由于加密和解密工作要耗费大量的处理时间,因此加密技术是以牺牲系统开销为代价的。