中山大学操作系统期末复习 吴峻峰
- 格式:pdf
- 大小:2.09 MB
- 文档页数:28
第1章引论(yǐn lùn)1.OS(Operating Systems)定义(dìngyì)计算机硬件系统上配置的第一个大型软件,称为计算机操作系统(cāo zuò xì t ǒnɡ),如果该软件满足:1)管理(guǎnlǐ)计算机系统的硬件和软件;2)控制计算机系统的工作(gōngzuò)流程;3)为其他软件和用户提供安全、方便的运行、操作环境;4)提高计算机系统的效率。
2.多道程序设计并发执行与现代操作系统的关系(p5,例子)多道程序设计是指:在内存同时存放多道程序,这些程序可以并发执行。
多道程序的并发执行(Concurrence),是指:在多道程序设计环境下,处理器在开始执行一道程序的第一条指令后,在这道程序完成之前,处理器可以开始执行另一道程序、甚至更多的其他程序。
这种工作流程的外在表现就是多任务,现代的计算机操作系统都采取了并发执行的工作流程。
顺序执行是指:处理器在开始执行一道程序后,只有在这道程序执行结束(程序指令运行完成,或程序执行过程出现错误而无法继续运行),处理器才能开始执行下一道程序。
这种工作流程的外在表现就是单任务,早期的计算机系统是所采用顺序执行的工作流程。
例子:假定某计算机系统需要执行两道程序A、B,程序A、B的任务描述如下:程序A:程序B:2ms CPU 12ms CPU10ms I/O 5ms I/O2ms CPU 2ms CPU在同样假定程序A先运行的情况,如果分别按顺序执行和并发执行的工作方式,那么,系统的工作过程怎样?3.OS基本(jīběn)类型及特征1.批处理系统(xìtǒng)及其特征批处理系统(xìtǒng)的特征➢批量(pī liànɡ)处理,减少手工操作➢自动执行(zhíxíng),资源利用率高➢缺少人-机交互能力2.分时系统及其特征分时系统具备如下四个特征➢同时性➢独立性➢及时性➢交互性3.实时系统及其特征实时系统的特征➢高及时性➢高可靠性4.OS的基本(jīběn)功能(gōngnéng)操作系统的主要(zhǔyào)功能➢用户(yònghù)接口及作业管理➢处理器管理(guǎnlǐ)➢存储器管理➢文件系统➢设备管理第2章操作系统接口1.OS用户接口类型命令接口和程序接口2.系统调用含义什么是系统调用1)一组操作系统设计人员事先编写的子程序,这些子程序作为内核的一部分;2)程序员使用这组子程序的方法。
操作系统复习题一、选择题(每题2分,共40分)1.Windows XP 中,按住( )键可以在各种中文输入法和英文间按顺序切换。
A .Ctrl+ShiftB .Ctrl+AltC .Ctrl+空格D .Ctrl+Tab2.在Windows XP 的桌面上单击鼠标右键,将弹出一个 ( )。
A .窗口 B .工具栏 C .对话框 D .快捷菜单3.在Windows XP 中,如果要删除一个文件夹,将( )。
A .仅删除该文件夹中的文件 B .删除文件夹中部分文件C .删除该文件夹及文件夹里所有的内容D .仅删除该文件夹4.Windows XP 是Microsoft 公司推出的基于Windows NT 内核的纯 ( )桌面操作系统。
A .8位B .16位C .32位D .64位 5.用户在使用计算机的过程中,可以通过( )对计算机系统环境进行调整和一些设置。
A .“显示”属性B .控制面板C .设备管理器D .资源管理器 6、下列( )与文件名BOOK?.TXT 相匹配。
A )BOOK.TXTB )BOOK9.TXTC )BOOK3D )BOOK12.TXT 7、关于Windows XP 的桌面,下列说法( )是正确的。
A )桌面上的图标是打开相应程序的唯一入口。
B )桌面是个图形化的目录。
C )桌面上的图标无法增减。
D )桌面的背景是固定不变的。
8、计算机关机后,操作系统软件存储在( )中。
A )内存 B )U 盘 C )硬盘 D )光盘 9、同一文件夹中,( )A )可以同名B )不能同名C )必须具有相同属性D )必须具有相同类型10、文件“MLST.TXT ”的路径为“F :\2011\MLST.TXT “其中”MLST.TXT “是一个( )A )文件夹B )根文件夹C )文件D )文本文件 11、Windows XP 为我们提供的图标排列方式没有按( )排列。
A )名称 B )大小 C )类型 D )缩略图 12、下列有关删除文件的说法,不正确的是( )。
中山大学软件学院2008级软件工程专业(2009春季学期)《操作系统》期末考试试卷(A )(考试形式:闭 卷 考试时间: 2小时)《中山大学授予学士学位工作细则》第六条考试作弊不授予学士学位方向: 姓名: ______ 学号:一、 E xplain following terms (Please select and answer ONE of the following twogroups, 15 pts )1. Virtual Machine, Dead Lock, Critical, Internal Fragmentation,FCB (File Control Block)2. Caching, Race condition, Busy waiting, Working sets, Inode二、 S hort Answer (Please select and answer FIVE of the following questions ,25pts )1. Why should we distinguish between kernel mode and user mode? When the CPU isrunning operating system code, which mode is the processor in?2. What problems do caches cause in the computer systems?3. How is the control of CPU transferred in a system call, and w hat's the differencebetween system call and general procedure call?4. Please describe the five states of process and the possible conversion between them.5. How the MMU with a base register and a limit register translate a logical address into aphysical address and protect the operating system from user processes?6. Please describe the difference among short-term, medium-term, and long-termscheduling.7. What actions are taken by the operating systems when a page fault occurs?8. What are the benefits to users by manipulating external devices as files?9. Why open operation must be done before a file is read or written in a user process? 10. Please describe the thrashing, and explain the cause of thrashing.三、 There is a system with 150 storage units. The storage units were allocated to P1 ~ P3 as thefollowing table at T0. Show how the Banker’s Algorithm works to decide whether the system is in a safe state or in an unsafe state.(1)The 4th process P4 arrived , maximum needs is 60 storage units, current allocation is25 units. (5 pts)(2)The 4th process P4 arrived , maximum needs is 60 storage units, current allocation is35 units. (5 pts)If the system is in a safe state, please give a possible safe sequence; Otherwise, please explain.Process Max AllocationP170 25P260 40P360 45四、C onsider a file in a UNIX file system. There are 15 pointers of disk blocks in a file’s inode.The first 12 of these pointers are the direct block pointers, and the next 3 pointers point to the indirect blocks (a single indirect block, a double indirect block and a triple indirect block).Each indirect block contain 256 block number at most. Consider a file currently consisting of 10000 data blocks, and the inode of the file is already in memory.(1) How many blocks does the largest files in this file system occupy under this method(the block of the inode of the file is excluded)? (5 pts)(2) How many blocks does this file occupies (the block of the inode of the file isexcluded)? (5 pts)(3) How many blocks are read from the disk by the file system for a user’s request toread the block at the end of the file?(5 pts)五、P lease select and answer ONE of the following two questions,15 pts1、Supposed a computer system supports a 32-bits logical address and the CPU has a MMUwith three-level hierarchical paging hardware, and an operating system with paging divided logical address space into pages of page size of 4 KB and use an outer page table of 1024 entries.(1)How many pages at most are there in the page table of a process? (5 pts)(2)Which and how many bits of the logical address are used for the index of the outerpage table? (5 pts)(3)If a logical address is 0001 0001 0011 0011 0011 0010 0010 0010, then the MMU usewhich entries in the outer page table to map this logical address to the correspondingphysical address? (5 pts)2、A system have a demand-page storage management schemes, 20-bits logic address, thelow-order 11 bits of a logical address for the page address, and the high-order 9 bits of a logical address for the page number. The logical page 0,1,2,3 of a four-page manager were loaded in block 4,7,5,8 (as the following shows) .Page number 0 1 2 3Block number 4 7 5 8(1)The size of virtual address space? (3 pts)(2)The size of the page? (5 pts)(3)Logical address is 5000(decimal), what’s the corresponding physical address?(7 pts)六、P lease select and answer ONE of the following two questions,20 pts1、The k-Readers-Writers Problem. A file is to be shared among several concurrentprocesses. Some of these processes(i.e. the Readers) may want only read the content of the shared file, whereas others (i.e. the Writers) may want to update the shared file. The file can be read simultaneously by at most k processes when no other process is updating it, and only one process can update at one time when no Readers are reading at this time.(1) Please write a program to coordinate the Readers and the Writers to avoid racecondition happening in these concurrent processes. (10 pts)(2) Explain why readers or writers may be starved in your solution. (5 pts)(3) Please write a new solution, such that if a writer is waiting to write, no new readerscan start reading. (5 pts)2、Consider a system that uses page-based memory mapping, and one-level page table.Assume that the page table always in main memory.(1)To improve effective access time, we use MMU which will cost 20ns whether hitor not. Assume that per memory access takes 200 ns, 85% of the accesses are inthe TLB of MMU, what is the effective memory access time?(5 pts)(2) Now the access address sequence of a process is: 10, 11, 104, 170, 73, 309, 185,245, 246, 434, 458, 364, the page size is 100 bytes and this process memory spacesize is 300 bytes.Please give the page reference string of this address sequence (3 pts), and use theFIFO scheduling algorithm respectively, and LRU scheduling algorithm, to calculatehow many page faults occur for the algorithms. Write down the number ofeliminative page after page fault, and calculate their page fault rate (The firstreference causes a page fault to the operating system, you need to write down thecomputational procedure) (12 pts).。
操作系统复习提纲1):什么是OS?,目的,功能操作系统是一种管理计算机硬件的程序,为应用程序提供了基本的运行条件,在计算机用户和计算机硬件之间扮演着中介的角色。
操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。
操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。
操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。
操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。
2)中断形式,process获取CPU的形式,双模,特权非特权,中断形式:软中断(trap)和硬中断通过指定一些能够造成伤害的机器指令作为特权指令可以实现这种保护,特权指令只能在监控模式下执行,在用户模式下运行会自陷给os。
通过调用特权指令,可以执行只有操作系统才能执行的任务。
完成与操作系统的交互。
为了阻止用户执行非法的I/O 操作,我们将所有的I/O 指令定义为特权指令。
在系统引导时,硬件以监控模式开始运行。
然后装入操作系统并以用户模式开启用户进程。
无论自陷和中断何时发生,硬件都会从用户模式转向监控模式(将模式位的状态转为0)。
这样,不管操作系统何时获得计算机的控制权,它都处于监控模式。
在将控制转给用户程序前系统总是要转为用户模式(通过将模式位设置为1)。
指具有特殊权限的指令。
这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。
在多用户、多任务的计算机系统中特权指令必不可少。
它主要用于系统资源的分配和管理,包括改变系统工作方式,检测用户的访问权限,修改虚拟存储器管理的段表、页表,完成任务的创建和切换等。
常见的特权指令有以下几种:(1)有关对I/O设备使用的指令如启动I/O设备指令、测试I/O设备工作状态和控制I/O设备动作的指令等。
吉林大学22春“计算机科学与技术”《操作系统》期末考试高频考点版(带答案)一.综合考核(共50题)1.为了实现对临界区的共享,在每个进程中的临界区前面应设置V操作,在临界区之后应设置P操作。
()A.正确B.错误参考答案:B2.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是()。
A、无上邻空闲区,也无下邻空闲区B、有上邻空闲区,但无下邻空闲区C、有下邻空闲区,但无上邻空闲区D、有上邻空闲区,也有下邻空闲区参考答案:D3.在请求分页内存管理的页表表项中,其中修改位供()时参考。
A、分配页面B、置换页面C、程序访问D、换出页面E、调入页面参考答案:B4.在一单处理机系统中,若有5个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有()个。
A.4B.3C.2参考答案:A5.操作系统的主要设计目标是界面友好,系统能高效工作。
()A.正确B.错误参考答案:A6.银行家算法是防止死锁发生的方法之一。
()A、错误B、正确参考答案:B7.在最佳适应算法中是按()顺序形成空闲分区链。
A、空闲区首址递增B、空闲区首址递减C、空闲区大小递增D、空闲区大小递减参考答案:C8.产生死锁的四个必要条件是互斥条件、请求和保持条件、不剥夺条件和()。
A.线性增长条件B.环路条件C.有序请求条件D.无序释放条件E.无序请求条件参考答案:B排队等待时间最长的作业被优先调度,这种算法是()。
A、优先级调度B、响应比高优先C、短作业优先D、先来先服务参考答案:D10.文件系统的主要目的是()。
A.用于存贮系统文档B.提高外围设备的输入输出速度C.实现虚拟存贮器D.实现对文件的按名存取参考答案:D11.对进程间互斥地使用临界资源最准确的描述是()。
A、互斥地进入临界区B、互斥地进入各自的临界区C、互斥地进入同一临界区D、互斥地进入各自的同类临界区参考答案:A12.用户程序中的输入,输出操作实际上是由操作系统完成的。
2022年暨南大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、在系统内存中设置磁盘缓冲区的主要11的是()。
A.减少磁盘1/0次数,B.减少平均寻道时间C.提高磁盘数据可靠性D.实现设备无关性2、文件的顺序存取是()。
A.按终端号依次存取B.按文件的逻辑号逐一存取C.按物理块号依次存取,D.按文件逻辑记录大小逐存取3、若系统中有n个进程,则在阻塞队列中进程的个数最多为()?Α. n B.n-1 C.n-2 D.14、在个交通繁忙的十字路口,每个方向只有一个车道,如果车辆只能向前直行,而不允许转弯和后退,并未采用任何方式进行交通管理。
下列叙述正确的是()。
A.该十字路口不会发生死锁,B.该十字路口定会发生死锁C.该上字路口可能会发生死锁,规定同时最多3个方向的车使用该十字路是最有效的方法D.该十字路口可能会发生死锁,规定南北方向的两个车队和东西方向的两个车队互斥使用十字路口是最有效的方法5、若系统中有5台绘图仪,有多个进程需要使用两台,规定每个进程一次仪允许申请一台,则最多允许()个进程参与竞争,而不会发生死锁。
A.5B.2C.3D.46、在可变分区分配管理中,某一作业完成后,系统收回其内存空间,并与相邻区合并,为此修改空闲区说明表,造成空闲分区数减1的情况是()。
A.无上邻空闲分区,也无下邻空闲分区B.有上邻空闲分区,但无下邻空闲分区C.无上邻空闲分区,但有下邻空闲分区D.有上邻空闲分区,也有下邻空闲分区7、在页式虚拟存储管理系统中,采用某些页面置换算法,会出现Belady异常现象,即进程的缺页次数会随着分配给该进程的页框个数的增加而增加。
下列算,法中,可能出现Belady异常现象的是()。
I.LRU算法 II.FIFO算法 III.OPT 算法A. 仅IB.仅IIC.仅I、IIID. 仅I、III8、处理外部中断时,应该山操作系统保存的是()A.程序计数器(PC)的内容B.通用寄存器的内容C.快表(TLB)中的内容D.Cache中的内容9、执行系统调用的过程包括如下主要操作:①返回用户态②执行陷入(trap)指令③传递系统调用参数④执行相应的服务程序正确的执行顺序是()A.②->③->①->④B.②->④->③->①C.③->②->④->①D.③->④->②->①10、缓冲技术的缓冲池通常设立在()中。
设某计算机系统有一个CPU,一台输入设备,一台打印机。
现有两个进程同时进入就绪状态,且进程A先得到CPU运行,进程B后运行。
进程A的运行轨迹是:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。
试画出它们的时序关系图(甘特图),并说明:1.开始运行后,CPU有无空闲等待?若有,在哪段时间内等待?计算CPU的利用率。
2.进程A运行时有无等待现象?若有,在什么时候发生等待现象?3.进程B运行时有无等待现象?若有,在什么时候发生等待现象?在一单道批处理系统中,一组作业的提交时间和运行时间如下表,利用先来先服务调度算法试计算以下三种作业的平均周转时间T和平均带权周转时间W。
作业提交时间运行时间18.0 1.028.50.539.00.249.10.1假设系统中有4个进程P1,P2和p3,P4.它们的运行时间依次是6,8,7和3(单位是ms). 如果进程以p1,p2,p3, P4的顺序在时刻0到达,并设置他们的优先级分别为1,2,3,4,数字越大优先级越高,采用优先级调度算法,计算其平均等待时间.作业优先级提交时间运行时间开始时间完成时间等待时间P1106182418P2208101810P3*******P4403030.用pv原语解决司机与售票员的问题分析:为保证车辆行驶安全,售票员必须关好车门,然后通知司机启动车辆,在行驶过程中售票员不能打开车门,待车到站停稳后,司机通知售票员才能打开车门,如此不断重复。
为此,须设置两个信号量START,OPEN用来控制司机和售票员的行为,初值都为0。
司机进程:while(1){P(START)启动车辆正常驾驶到站停车V(OPEN)}…售票员进程:while(1){关门V(START)售票P(OPEN)开门}…16.用PV原语解决下图之同步问题.提示:考虑对缓冲区S的同步设置两个信号量Sempty=1,Sfull=0 get:while(1){P(Sempty);将数放入S;V (Sfull);copy:while(1){P (Sfull);将数从S取出;V (Sempty);}此题类似于一个生产者一个消费者一个缓冲区的情况。
2008操作系统A卷参考答案班级姓名学号成绩一、术语解释(5个,共20分)1、内核:实现操作系统的最基本功能、常驻内容并要求CPU在核心态方式下运行的代码和相关数据结构。
2、信号量:操作系统内容定义和管理的一种特殊数据结构,提供了初始化、增值和减值等操作供进程调用,以实现进程互斥或同步。
3、临界区:两个或多个进程中,对应的程序中各存在一段访问共享数据的代码块,设为CS1、CS2、。
,这些代码块中,若有某个进程执行其中一个(设CSi),则其它进程执行其它相应代码块只能在CSi完成后才能开妈执行。
具有这种要求的代码块称为临界区4、线程:进程中的一个独立的调度执行单位。
多线程技术中,同一进程中可以有多个独立的调度执行单位,并且可以并发执行。
5、逻辑地址:程序设计员在程序中使用的地址。
二、简答题(5题,共30分)6、系统调用的过程中,控制的转移步骤如何答:CPU控制权在用户态的进程中,进程执行陷入或软中断指令硬件执行中断响应动作进入内核,CPU控制权在核心态的操作系统内核代码中,执行系统调用服务程序,并可能进行进程调度,选择下一个可运行的进程恢复可运行进程的上下文CPU控制权又交给在用户态的进程,7、与层次结构比较,微内核结构的主要优缺点是什么答:优点有接口一致性、系统安全性高、功能扩展灵活性、可移植性高、适用于分布式环境。
缺点是效率较低。
8、与多进程技术相比,多线程技术有哪些优点答:同一进程的多个线程共享进程的资源,因此与进程相比,线程占用的资源极少;创建/撤消线程更快;同一进程的多个线程同属一个地址空间,可以使用共享变量直接通信;用户级线程还不需内核管理,减少了内核的开销。
9、用Test_And_Set指令如何实现互斥10、文件打开过程主要工作及步骤答:1搜索文件目录,以获取该文件控制信息;2 检查操作权限;3 分配活动文件表的表项和打开文件表的表项,填入相应的文件控制信息;分配必要的缓冲区;4 返回打开文件表的表项指针(文件句柄),供进程以后读写文件。
2022年中山大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、在文件的索引节点中存放直接索引指针10个,一级和:级索引指针各1个。
磁盘块大小为IKB,每个索引指针占4B。
若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为1234 和307400处所在的磁盘块读入内存,需访问的磁盘块个数分别是()。
A.1.2B.1.3C.2.3D.2.42、现代操作系统中,文件系统都有效地解决了重名(即允许不同用户的文件可以具有相同的文件名)问题。
系统是通过()来实现这一功能的。
A.重名翻译结构B.建立索引表C.树形目录结构D.建立指针3、设与某资源相关联的信号量初值为3,当前值为1,若M表示该资源的可用个数,N 表示等待该资源的进程数,则M、N分别为()。
A.0,1B.1,0C.1,2D.2,04、关于临界问题的一个算法(假设只有进程P0和P1,能会进入临界区)如下(i为0或1代表进程P0或者P1):Repeatretry:if(turn!=-1)turn=i;if(turn!=i)go to retry;turn=-1;临界区:turn=0;其他区域;until false;该算法()。
A.不能保持进程互斥进入临界区,且会出现“饥饿”B.不能保持进程互斥进入临界区,但不会出现“饥饿”C.保证进程互斥进入临界区,但会出现“饥饿”D.保证进程互斥进入临界区,不会出现“饥饿”5、一次性分配所有资源的方法可以预防死锁的发生,这种方法破坏的是产生死锁的4个必要条件中的()。
A.互斥条件B.占有并请求C.不剥夺条件D.循环等待6、在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是()。
A.可变分配,全局置换B.可变分配,局部置换C.固定分配,全局置换D.固定分配,局部置换7、若用8个字(字长32位,H字号从0开始计数)组成的位示图管理内存,用户归还一个块号为100的内存块时,它对应位示图的位置为()(注意:位号也从0开始)。
期末复习一、I/O设备缓冲机制1 引入缓冲的原因①缓和CPU和IO设备间的速度不匹配矛盾计算时输出(输入)设备等待CPU,输出(输入)时CPU等待打印机(输入)②减少CPU中断频率,放宽对CPU中断响应时间的限制如果从远地终端发来的数据仅用一位缓冲接收,则每次收到一位数据便中断一次CPU,即段时间就要中断CPU,CPU也必须在同样的短时间内作出相应否则数据就被冲掉。
因此需要设置多位缓冲。
③解决数据粒度不匹配问题若生产者生产的数据粒度比消费者消费的数据粒度小,生产者可以产生多个数据单元数据,直到总和达到消费者进程要求的数据单元大小,消费者再从缓冲区中取出消费;反之,若生产者生产的数据粒度比消费者消费的数据粒度大,对于生产者每次生产的数据,消费者可分几次从缓冲区取出消费。
④提高CPU与IO设备的并行性生产者在生产一批数据并将其放入缓冲区后,便可立即进行下一次生产,同时,消费者可以从缓冲区取出数据消费,CPU与打印机可以实现并行工作。
2 缓冲区管理2.1 单缓冲在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,如图a所示。
在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,OS将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理(计算)的时间为C,由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M+T;反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T) + M。
在字符设备输入时,缓冲区用于暂存用户输入的一行数据,在输入期间,用户进程被挂起以等待数据输入完毕;在输出时,用户进程将一行数据输入到缓冲区后继续进行处理,当用户进程已有第二行数据输出时,如果第一行数据尚未被提起完毕,则此时用户进程应阻塞。
2.2 双缓冲为了加快输入和输出速度,提高设备利用率,人们又引入了双缓冲区机制,也称为缓冲兑换。
在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。
此时操作系统可以从第一缓冲区中移出数据,并送入用户进程(如图a)。
接着由CPU对数据进行计算。
在双缓冲时,系统处理一块数据的时间可以粗略地认为是Max(C,T),如果C<T,可使块设备连续输入;如果C>T,则可使CPU不必等待设备输入。
对于字符设备,若采用行输入方式,则采用双缓冲通常能消除用户的等待时间,即用户在输入完第一行后,在CPU执行第一行中的命令时,用户可继续向第二缓冲区输入下一行数据。
2.3 环形缓冲环形缓冲区的组织(1) 多个缓冲区。
在环形缓冲中包括多个缓冲区,其中每个缓冲区的大小相同。
作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C,如图所示(2) 多个指针。
作为输入的缓冲区可设置三个指针:用于指示计算进程下一个可用缓冲区G的指针Nextg、指示输入进程下次可用的空缓冲区R的指针Nexti,以及用于指示计算进程正在使用的缓冲区C的指针Current。
环形缓冲区的使用(1) Getbuf过程。
当计算进程要使用缓冲区中的数据时,可调用Getbuf过程。
该过程将由指针Nextg所指示的缓冲区提供给进程使用,相应的,须把它改为现行工作缓冲区,并令Current指针指向该缓冲区的第一个单元,同时将Nextg移向下一个G缓冲区。
类似地,每当输入进程要使用空缓冲区来装入数据时,也调用Getbuf过程,由该过程将指针Nexti所指示的缓冲区提供给输入进程使用,同时将Nexti指针移向下一个R缓冲区。
(2) Releasebuf过程。
当计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放。
此时,把该缓冲区由当前工作缓冲区C改成空缓冲区R。
类似的,当输入进程把缓冲区装满时,也应调用Releasebuf过程,将该缓冲区释放,并改为G缓冲区。
进程之间的同步问题(1) Nexti指针追赶上Nextg指针。
这意味着输入进程输入数据的速度大于计算机进程处理数据的速度,已把全部可用的空缓冲区装满,再无缓冲区可用。
此时,输入进程应阻塞,直到计算进程把某个缓冲区中的数据全部提取完,使之成为空缓冲区R,并调用Releasebuf过程将它释放时,才将输入进程唤醒。
这种情况被称为系统受计算机限制。
(2) Nextg指针赶上Nexti指针。
这意味着输入数据的速度低于计算进程处理数据的速度,使全部装有输入数据的缓冲区都被抽空,再无装有数据的缓冲区供计算进程提取数据。
这时,计算进程只能阻塞,直至输入进程又装满某个缓冲区,并调用Releasebuf 过程将它释放时,才去唤醒计算进程。
这种情况被称为系统受I/O限制。
2.4 缓冲池缓冲池的组成缓冲池管理着多个缓冲区,每个缓冲区由用于标识和管理的缓冲首部以及用于存放数据的缓冲体两部分组成。
缓冲首部一般包括缓冲区号、设备号、设备上的数据块号、同步信号量以及队列链接指针等。
为了管理上的方便,一般讲缓冲池中具有相同类型的缓冲区链接成一个队列,于是可以形成以下三个队列:(1) 空白缓冲队列emq。
这是由空缓冲区所链成的队列。
其队首指针F(emq)和队尾指针L(emq) 分别指向该队列的首缓冲区和尾缓冲区。
(2) 输入队列inq。
这是由装满输入数据的缓冲区所链成的队列。
其中队首指针F(inq)和队尾指针L(inq)分别指向输入队列的队首和队尾缓冲区。
(3) 输出队列outq。
这是由装满输出数据的缓冲区所链成的队列。
其队首指针F(outq)和队尾指针L(outq)分别指向该队列的首、尾缓冲区。
除了上述三个队列外,还应具有四种工作缓冲区:用于收容输入数据的工作缓冲区,用于提取输入数据的工作缓冲区,用于收容输出数据的工作缓冲区,以及用于提取输出数据的工作缓冲区。
缓冲区的工作方式(1) 收容输入。
输入进程可调用Getbuf(emq)过程,把空缓冲队列emq的队首摘下一空缓冲区,把它作为收容输入工作缓冲区hin,然后把数据输入其中,装满后再调用Putbuf(inq,hin)过程,将它挂在输入队列inq队列上。
(就是把空的缓冲区进行输入然后放到输入队列里)(2) 提取输入。
计算进程可调用Getbuf(inq)过程,从输入队列inq的队首取得一缓冲区,作为提取输入工作缓冲区(sin),计算进程从中提取数据。
计算进程用完该数据后,再调用Putbuf(emq, sin)过程,将它挂到空缓冲队列emq上。
(是将输入队列里的东西放到工作缓冲区里然后清空输入队列)(3) 收容输出。
计算进程可调用Getbuf(emq),从空缓冲队列emq的队首取得一空缓冲,作为收容输出工作缓冲区hout。
当其中装满输出数据后,又调用Putbuf(outq, hout)过程,将它挂到outq末尾。
(是用一个空缓冲区去放输出的内容,满了后放到输出队列里)(4) 提取输出。
输出过程可调用Getbuf(outq)过程,从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区sout。
在数据提取完后,再调用Putbuf(emq,sout)过程,将它挂在空缓冲区队列末尾。
(将输出队列里装满了的放到输出工作缓冲区,然后释放后放回空缓冲区)二、I/O通道的分类和工作原理1 字节多路通道按字节交叉方式工作的通道,含有多个非分配型子通道,数量达几十到数百个,每个子通道连接一个I/O 设备,并控制其IO 操作。
子通道以按时间片轮转的方式共享主通道。
第一个子通道控制其IO 设备完成一个字节交换后立即腾出主通道,供第二个子通道使用,以此类推。
所有子通道轮转一周后,再回到第一个子通道。
只要字节多路通道扫描每个子通道速率足够快,且连接到子通道的设备速率不太高就不会丢失数据。
(不停地扫描各个通道)不适于连接高速设备2 数组选择通道可以连接多台高速设备,但是只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送。
导致,如果某台设备占用了该通道后,便一直独占,即使无数据传送,通道被闲置也不允许其它设备使用该通道,直到该设备传送完毕释放该通道。
通道利用率很低,传输速率高。
3 数组多路通道将数组选择通道传输速率高,和字节多路通道可以使个子通道分时并行操作的优点结合而成的新通道。
含有多个非分配型子通道,有很高的传输速率和通道利用率。
数据传送按数组方式进行,应用于连接多台高中速外围设备。
三、内存空间分配算法1 单一连续分配单一连续分区存储管理把整个内存空间的最低端和最高端作为操作系统区,中间作为用户程序区。
在DOS 操作系统中就采用了这种方法,如图所示。
这种存储分配思想将内存分为两个区域:系统区和用户区。
应用程序装入到用户区,可使用用户区全部空间。
单一连续分区的优点是:简单,适用于单用户、单任务的操作系统(比如CP/M 和DOS 操作系统),不需要复杂的硬件支持。
单一连续分区的缺点是:一个作业运行时要占用整个内存的地址空间,即使很小的程序也是如此,对内存造成了很大的浪费,内存的利用率很低。
分配给用户作业的空间0xFFF…002 固定分区分配 为了便于管理整个内存,需建立一个表格来登记和管理整个内存。
在这个表中登记了每一个分区的大小,起始地址和分配状态,如表1和图1所示。
当有作业装入时,系统便可以搜索这个表,找出一个大小合适的分区分配给它。
当程序运行结束时,可以把它所占用的空间再释放回去。
地址重定位可以采用静态地址定位或是动态地址定位的方法。
表1 图1多道程序环境下,将整个用户空间划分为若干固定大小的区域,每个分区只装入一道作业。
假如内存中有4个内存分区,便允许4个程序并发运行,当有一空闲分区时,再从后备作业队列中选择一个适当大小的作业装入该分区,当该作业结束时,同理。
多道程序下固定分区原理划分分区:可分为大小相等的分区(不灵活,容易浪费)/大小不等的分区内存分配:将分区按大小排序,构成分区使用表,有程序要装入时,则顺序的检索该表,找出大小合适的分区分配给用户,若无合适分区,分配失败。
固定分区的优点是:与单一连续分配方法相比,固定分区法的内存利用率提高了;可以支持多道程序;实现简单,开销小。
固定分区的缺点:必须预先能够估计作业要占用多大的内存空间,有时候这是难以做到的;区内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。
3 动态分区分配1) 空闲存储区表若采用固定分区法,则作业运行时所需内存一般不会刚好等于某一个分区的大小,因此分区内部的“内零头”被白白浪费了;另一方面,固定分区的分区数在系统启动以后不能任意改变,当系统中运行的作业数大于分区数时,就不可避免地会有一些作业分配不到分区,即使所有作业所需存储空间总和小于内存总和也不行。