操作系统驱动调度
- 格式:doc
- 大小:83.00 KB
- 文档页数:15
2022年武汉纺织大学外经贸学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描2、现有一个容量为10GB的磁盘分区,磁盘空间以簇(Cluster)为单,位进行分配,簇的大小为4KB,若采用位图法管理该分区的空闲空问,即用.位(bit)标识一个簇是否被分配,则存放该位图所需簇的个数为()A.80B.320C.80KD.320K3、进程和程序的本质区别是()A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的4、下面哪个特征是并发程序执行的特点()。
A.程序执行的间断性B.相通信的可能性C.产生死锁的可能性D.资源分配的动态性5、下列进程调度算法中,综合考虑进程等待时间和执行时间的是()A.时间片轮转调度算法B.短进程优先调度算法C.先来先服务调度算法D.高响应比优先调度算法6、当系统发生抖动(Trashing)时,可以采取的有效措施是()。
I.撤销部分进程 II.增大磁做交换区的容量 III.提高用户进程的优先级A. 仅IB.仅IIC.仅IIID.仅I,II7、不会产生内部碎片的存储管理是()。
A.分页式存储管理B.分段式存储管理C.固定分区式存储管理D.段页式存储管理8、下列指令中,不能在用户态执行的是()A.trap指令B.跳转指令C.压栈指令D.关中断指令9、中断处理和子程序调用都需要压栈以保护现场。
中断处理一定会保存而子程序调用不需要保存其内容的是()。
A.程序计数器B.程序状态字寄存器C.通用数据寄存器D.通用地址寄存器10、下列关于SPOOLing的叙述中,不正确的是()A.SPOOLing系统中必须使用独占设备B.SPOOLing系统加快了作业执行的速度C.SPOOLing系统使独占设备变成了共享设备D.SPOOLing系统利用了处理器与通道并行上作的能力11、某进程的段表内容见表,当访问段号为2、段内地址为400的逻辑地址时,进行地址转换的结果是()。
操作系统试卷3及答案一、单项选择题(本大题共15小题,每小题1分,共15分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题中的括号内。
1通道又被称为I/O处理器,它用于实现()之间的信息传输。
A、主存与外设B、CPU与外设C、外设与外设D、CPU与辅存2、磁盘是可共享的设备,每一时刻( )进程与它交换信息。
A、允许有两个B、可以有任意多个C、最多有1个D、至少有1个3、在存储管理的各方案中,可扩充主存容量的方案是( )存储管理。
A、固定分区B、可变分区C、连续D、页式虚拟4、分时系统中进程调度算法通常采用( )。
A、响应比高者优先B、时间片轮转法C、先来先服务D、短作业优先5、设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是( )。
A、1,0,-1,-2B、2,0,-1,-2C、1,0,-1D、3,2,1,06、设有三个作业J1,J2,J3,它们的到达时间和执行时间如下表:作业名到达时间执行时间J1 8:00 2小时J2 8:45 1小时J3 9:30 0.25小时它们在一台处理器上按单道运行,若采用短作业优先调度算法,则此三作业的执行次序是( )A、J3,J2,J1B、J1,J2,J3C、J1,J3,J2D、J3,J1,J27、计算机系统中设置的访管指令,( )执行。
A、只能在目态B、只能在管态C、既可在目态又可在管态D、在目态和管态下都不能8、一个多道批处理系统,提高了计算机系统的资源利用率,同时( )。
A、减少各个作业的执行时间B、增加了单位时间内作业的吞吐量C、减少单位时间内作业的吞吐量D、减少了部份作业的执行时间9、操作系统实现文件管理后,允许用户对记录式文件进行存取的最小单位是( )。
A、文件B、记录C、数据项D、字符串10、文件系统采用多级目录结构可以( )。
A、节省存储空间B、解决命名冲突C、缩短文件传送时间D、减少系统开销11、在页式虚拟存储管理中,为实现地址变换,应建立()。
2022年吉林化工学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描2、为支持CD-ROM小视频文件的快速随机播放,播放性能最好的文件数据块组织方式是()。
A.连续结构B.链式结构C.直接索引结构D.多级索引结钩3、进程P1和P2均包含并发执行的线程,部分伪代码描述如下所//进程P1 //进程P2int x=0; int x=0;Thread1() Thread3(){int a; {int a:a=1; a=x;x+=1; x+=3;Thread2() Thread4(){ {int a: int b, aa=2; b=x;x+=2; x1=4;} }下列选项中,需要互斥执行的操作是()。
A. a=l与a=2B. a=x与b=xC. x+=1与x+=2D. x+=1与x+=34、进程和程序的本质区别是()A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的5、一个正在访问临界资源的进程由于申请等待1/0操作而被中断时,它()。
A.允许其他进程进入与该进程相关的临界区B.不允许其他进程进入临界区C.允许其他进程抢占处理器,但不能进入该进程的临界区D.不允许任何进程抢占处理器6、总体上说,“按需调页”(Demand-Paging)是个很好的虚拟内存管理策略。
但是,有些程序设计技术并不适合于这种环境,例如()A.堆栈B.线性搜索C.矢量运算D.分法搜索7、不会产生内部碎片的存储管理是()。
A.分页式存储管理B.分段式存储管理C.固定分区式存储管理D.段页式存储管理8、用户程序在口态下使用特权指令引起的中断属于()。
A.硬件故障中断B.程序中断C.外部中断D.访管中断9、实时操作系统必须在()内处理完来白外部的事件。
2022年河南师范大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描2、下面关于目录检索的论述中,正确的是()。
A.由于散列法具有较快的检索速度,因此现代操作系统中都用它来替代传统的顺序检索方法B.在利用顺序检索法时,对树形目录应采用文件的路径名,应从根目录开始逐级检索C.在利用顺序检索法时,只要路径名的一个分量名未找到,便应停止查找D.在顺序检索法的查找完成后,即可得到文件的物理地址,3、死锁与安全状态的关系是()。
A.死锁状态有可能是安全状态B.安全状态有可能成为死锁状态C.不安全状态就是死锁状态D.死锁状态一定是不安全状态4、结构(Cobegin语句1:语句2 Coend)表示语句1和语句2并发执行。
代码如下:X:=0;Y:=0;CobeginBeginX:=1;Y:=Y+X;EndBeginY:=2;X:=X+3;EndCoend当这个程序执行完时,变量X和Y的值有可能为()。
I.X=1,Y=2 II.X=1,Y=3 III.X=4,Y=6A.IB. I和IIC.II和IIID. I、II和III5、有两个并发执行的进程P1和P2,共享初值为1的变量x。
P1对x加1,P2对x减1。
加1操作和减1操作的指令序列分别如下所示://加1操作load R1,x ① //取x到寄存器R1中inc R1 ②store x, R1:③ //将R1的内容存入x//减1操作load R2,x ① //取x到寄存器R1中inc R2 ②store x, R2:③ //将R1的内容存入x两个操作完成后,x的值()。
A.可能为-1或3B.只能为1C.可能为0,1或2D.可能为-1,0,1或26、在一个操作系统中对内存采用页式存储管理方法,则所划分的页面大小()。
A.要依据内存大小而定B.必须相同C.要依据CPU的地址结构而定D.要依据内存和外存而定7、下列关于页式存储说法中,正确的是()。
2022年武汉华夏理工学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描2、文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024B.盘块和块内字节均从0开始编号。
假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是()。
A.81,1B.81,2C.82,1D.82,23、下面关于进程的叙述中,正确的是()A.进程获得CPU运行是通过调度得到的B.优先级是进程调度的重要依据,确定就不能改变,C.单CPU的系统中,任意时刻都有一个进程处于运行状念D.进程申请CPU得不到满足时,其状态变为阻塞4、下面哪个不会引起进程创建()A.用户登录B.作业调度C.设备分配D.应用请求5、下列关于管程的叙述中,错误的是()。
A.管程只能用于实现进程的互斥B.管程是由编程语言支持的进程同步机制C.任何时候只能有一个进程在管程中执行D.管程中定义的变量只能被管程内的过程访问6、考虑页面替换算法,系统有m个页帧(Frame)供调度,初始时全空:引用串(Reference String)长度为p.包含了n个不同的页号,无论用什么算法,缺页次数不会少于()A.mB.pC.nD.min(m,n)7、使用修改位的目的是()。
A.实现LRU页面置换算法B.实现NRU页面置换算法C.在快表中检查页面是否进入D.检查页面是否最近被写过8、下列选项中,操作系统提供给应用程序的接口是()。
A.系统调用B.中断C.库函数D.原语9、中断处理和子程序调用都需要压栈以保护现场。
中断处理一定会保存而子程序调用不需要保存其内容的是()。
A.程序计数器B.程序状态字寄存器C.通用数据寄存器D.通用地址寄存器10、系统将数据从磁盘读到内存的过程包括以下操作:① DMA控制器发出中断请求②初始化DMA控制器并启动磁盘③从磁盘传输一块数据到内存缓冲区④执行“DMA结束”中断服务程序正确的执行顺序是():A.③①②④B.②③①④C.②①③④D.①②③④11、在SPOOLing系统中,用户进程实际分配到的是()。
2022年北京师范大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描2、下列关于打开文件open()操作和关闭文件close()操作的叙述,只有()是错误的。
A.close()操作告诉系统,不再需要指定的文件了,可以丢弃它B.open()操作告诉系统,开始使用指定的文件C.文件必须先打开,后使用D.目录求必须先打开,后使用3、在单处理器的多进程系统中,进程切换时,何时占用处理器和占用多长时间取决于()A.进程响应程序段的长度B.进程总共需要运行时间的长短C.进程自身和进程调度策略D.进程完成什么功能4、有5个批处理任务A、B、C、D、E几乎同时到达一计算中心。
它们预计运行的时间分别是10min,6min,2min、4min和8min。
其优先级(由外部设定)分别为3,5,2,1和4,这里5为最高优先级。
下列各种调度算法中,其平均进程周转时间为14min 的是()。
A.时间片轮转调度算法B.优先级调度算法C.先来先服务调度算法D.最短作业优先调度算法5、下面关于进程的叙述中,正确的是()A.进程获得CPU运行是通过调度得到的B.优先级是进程调度的重要依据,确定就不能改变,C.单CPU的系统中,任意时刻都有一个进程处于运行状念D.进程申请CPU得不到满足时,其状态变为阻塞6、采用分页或分段管理后,提供给用户的物理地址空间()。
A.分页支持史大的物理空间B.分段支持更大的物理空间C.不能确定D.一样大7、在虚拟页式存储管理方案中,()完成将页面调,入内存的T作。
A.缺页中断处理B.页面淘汰过程C.工作集模型应用D.紧缩技术利用8、用户程序在口态下使用特权指令引起的中断属于()。
A.硬件故障中断B.程序中断C.外部中断D.访管中断9、下面说法错误的有()。
I分时系统中,时间片越短越好。
操作系统-阶段测评31. 单选题1.1 3.0下面对移臂调度算法的描述错误的是(d)您答对了«a移臂调度的目的是减少寻找时间,包括先来先服务、最短寻找时间优先、电梯调度、单向扫描等算法* b先来先服务调度算法不考虑访问要求的物理位置,只考虑提出请求的先后次序* c最短寻找时间优先、电梯调度和单向扫描算法根据访问请求的柱面位置调度«d相比之下先来先服务调度算法是最简单实用且花费时间短的算法1.2 3.0下列关于SPOOLIN(系统的说法不正确的是(d)您答错了* aSPOOLING是Simultaneous Peripheral Operation On Line 的缩写,又称斯普林系统* bSPOOLIN係统由预输入程序、井管理程序和缓输出程序三部分组成* c操作系统实现虚拟设备的功能模块是在计算机控制下通过联机的外围设备同时操作来实现其功能的* dSPOOLIN(系统是一种类似于通道的硬件设备,是实现独占设备与共享设备的映射1.3 3.0磁盘上的某个磁道被划分成四块,磁盘的转速为20毫秒/转,当前磁头在第二块的开始位置,则花费(b)毫秒的时间可把第一块信息读到主存。
(假设旋转是按由块号从小到大方向的)您答对了«a40«b20* c10* d51.4 3.0对磁盘而言,输入输出操作的信息传送单位为:(b)您答对了* a字符* b块文件考察I/O的信息传递单位。
1.5 3.0在通道结构中,操作系统启动和控制外围设备完成输入/输出操作的过程(a)您答对了* a包括准备、启动I/O和结束处理三个阶段* b包括启动、选择通道和设备、控制设备处理输入/输出操作和完成处理几个步骤* c包含启动I/O等特权准备,是一种访管中断,属于强迫性中断事件* d不属于“设备处理一致性”的处理方法本题考查的知识点为输入/输出操作控制。
操作系统启动和控制外围设备完成输入/输出操作的过程可分为以下三个阶段:(1)准备阶段。
国家开放大学电大操作系统(试题30道含答案)作业调度选择一个作业装入主存后,该作业能否占用处理器必须由()来决定。
A.设备管理B.作业控制C.进程调度D.驱动调度正确答案:C在页式虚拟存储管理系统中,LRU算法是指()。
A.最早进入内存的页先淘汰B.近期最长时间以来没被访问的页先淘汰C.近期被访问次数最少的页先淘汰D.以后再也不用的也先淘汰正确答案:B在分时系统中,可将进程不需要或暂时不需要的部分移到外存,j让出内存空间以调入其他所需数据,这种技术称为()。
A.覆盖技术B.对换技术..C.虚拟技术D.物理扩充.正确答案:B在单CPU的系统中,若干程序的并发执行是由()实现的。
A.用户B.程序自身C.进程D.编译程序正确答案:B在UNIX/Linux系统中,用户程序经过编译之后得到的可执行文件属于()。
A.设备文件B.普通文件C.目录文件D.特别文件正确答案:B用户要在程序一级获得系统帮助,必须通过()。
A.进程调度B.作业调度C.键盘命令D.系统调用正确答案:D用Is命令以长格式列目录信息时,若某一文件的特征在文件列表中按如下顺序显示在屏幕上:drwxrw-r-2usergk3564Qct2810:30/user/asD.h则同组用户的访问权限是()。
A.读和执行B.读、写、执行C.写和执行D.读和写正确答案:D一个含有6个盘片的双面硬盘,盘片每面有100条磁道,则该硬盘的柱面数为()。
A.12B.250C.100D.1200正确答案:C一般中断处理的主要步骤是什么?正确答案:一般中断处理的主要步骤是:保存被中断程序的现场,分析中断原因,转入相应处理程序进行处理,恢复被中断程序现场,即中断返回。
一般说来,文件系统应具备哪些功能?正确答案:一般说来,文件系统应具备以下功能:文件管理;目录管理;文件存储空间的管理;文件的共享和保护;提供方便的接口。
虚拟存储器有哪些基本特征?正确答案:虚拟存储器的基本特征是:虚拟扩充———不是物理上,而是逻辑上扩充了内存容量;部分装入———每个进程不是全部一次性地装入内存,而是只装入一部分;离散分配———不必占用连续的内存空间,而是“见缝插针”;多次对换———所需的全部程序和数据要分成多次调入内存。
2022年湖北汽车工业学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描2、文件系统采用两级索引分配方式。
若每个磁盘块的大小为1KB.每个盘块号占4B,则该系统中单个文件的最大长度是()A.64MBB.128MBC.32MBD.都不对3、通常用户进程被建立后()A.使一直存在于系统中,直到被操作人员撤销B.随着作业运行正常或不正常结束而撤销C.随着时间片轮转而撤销与建立D.随着进程的阻塞或唤醒而撤销与建立4、在下述父进程和子进程的描述中,正确的是()A.父进程创建了子进程,因而父进程执行完后,子进程才能运行B.父进程和了进程可以并发执行C.撤销了进程时,应该同时撤销父进程D.撤销父进程时,应该同时撤销子进程5、下面关于进程的叙述中,正确的是()A.进程获得CPU运行是通过调度得到的B.优先级是进程调度的重要依据,确定就不能改变,C.单CPU的系统中,任意时刻都有一个进程处于运行状念D.进程申请CPU得不到满足时,其状态变为阻塞6、在一个请求分页系统中,采用LRU页面置换算法时,加入一个作业的页面走向为:1,3,2,1,1,3,5,1,3,2,1,5。
当分配给该作业的物理块数分别为3和4时,在访问过程中所发生的缺页率为()。
A.25%,33%B.25%,100%C.50%,33%D.50%,75%7、下列关于页式存储说法中,正确的是()。
I.在页式存储管理中,若关闭TLB,则每当访问一条指令或存取一个操作数时都要访问两次内存II.页式存储管理不会产生内部碎片III.页式存储管理当中的页面是为用户所感知的IV.页式存储方式可以采用静态重定位A.仅I、II,IVB. 仅I、IVC. 仅ID.I、II、III、IV8、下面叙述中,错误的是()A.操作系统既能进行多任务处理,又能进行多重处理B.多重处理是多任务处理的子集,C.多任务是指同一时间内在同一系统中同时运行多个进程D.一个CPU的计算机上也可以进行多重处理9、用户程序在口态下使用特权指令引起的中断属于()。
操作系统的原理与实现操作系统是支持计算机硬件与软件之间的交互的核心软件系统。
它的作用是管理计算机的资源、协调程序的运行、为用户提供接口等。
在本文中,我们将深入探讨操作系统的原理与实现。
一、操作系统的原理1. 中断机制中断机制是操作系统的基础。
当外部设备发生事件或进程发生异常时,操作系统会通过中断机制暂停正常的执行,转而处理这些事件或异常。
中断机制使操作系统能够及时响应外部请求,并提高了系统的可靠性。
2. 进程管理进程是指正在执行的程序,操作系统通过进程管理来协调多个进程的执行。
它负责分配CPU时间片、管理进程的创建与撤销、调度进程执行等。
通过合理的进程管理机制,操作系统能够提高系统的效率和吞吐量。
3. 内存管理内存管理是操作系统的重要任务之一。
它负责管理计算机的内存资源,为进程提供内存空间,并进行内存的分配与回收。
内存管理还包括虚拟内存的实现,通过将部分内存存储在硬盘上来扩展内存容量。
4. 文件系统文件系统是操作系统对外部存储设备的一种抽象,它负责管理文件和目录,并提供文件的读写操作。
文件系统使得用户可以方便地组织和访问文件,同时也提供了数据的安全性和可靠性保证。
二、操作系统的实现1. 内核设计操作系统的内核是其最核心的部分,它负责处理中断、调度进程、管理内存等关键任务。
内核的设计需要考虑到系统的可伸缩性、可移植性和可靠性。
常见的内核设计有单内核、微内核和混合内核等。
2. 设备驱动程序操作系统需要与各种硬件设备进行交互,设备驱动程序负责实现操作系统与硬件之间的通信。
它包括设备驱动程序的开发和设备管理的实现,以及对设备的配置与控制等。
3. 用户界面用户界面是用户与操作系统进行交互的接口。
它可以是命令行界面、图形界面或Web界面等。
用户界面的设计需要考虑到用户的易用性和用户体验,提供友好的操作方式和丰富的功能。
4. 软件开发工具为了方便开发人员编写操作系统相关的软件,操作系统通常提供一些开发工具。
这些工具包括编译器、调试器、性能分析工具等,它们能够提高软件开发的效率和质量。
操作系统五大功能模块包括操作系统是一种系统软件,它作为计算机硬件与应用软件之间的桥梁,为用户提供了一个友好、高效的计算环境。
操作系统是一个复杂的软件系统,由多个功能模块组成。
这些功能模块相互协作,为计算机提供了五大核心功能。
本文将介绍操作系统的五大功能模块,分别为进程管理、内存管理、文件系统、设备管理和用户接口。
1. 进程管理进程管理是操作系统的核心功能之一,它负责对计算机中运行的进程进行管理和调度。
进程是指正在运行的程序的实例,每个进程都有自己的地址空间、状态和优先级。
操作系统通过进程管理模块,实现了对不同进程的创建、执行、切换和终止等操作。
进程管理模块主要包括进程调度、进程同步和进程通信等功能。
进程调度算法决定了进程在CPU上的执行顺序,常见的进程调度算法包括先来先服务(FCFS)、最短作业优先(SJF)和时间片轮转等。
进程同步和进程通信是确保多个进程能够安全并发执行的重要手段,常见的机制包括信号量、互斥锁和管道等。
2. 内存管理内存管理是操作系统的另一个重要功能模块,它负责对计算机的内存进行分配和管理。
内存是计算机用于存储程序和数据的地方,操作系统通过内存管理模块,实现了对内存空间的分配、回收和保护等功能。
内存管理模块主要包括内存分配、内存回收和虚拟内存等功能。
内存分配负责将进程所需的内存分配给它们,并保证不同进程之间的内存空间互不干扰。
内存回收负责回收进程终止后的内存空间,并将其重新分配给其他进程使用。
虚拟内存是一种扩展了物理内存大小的技术,它使得进程可以访问比实际物理内存更大的地址空间。
3. 文件系统文件系统是操作系统中负责管理和组织存储设备上的文件的功能模块。
文件是计算机中存储数据的基本单位,文件系统通过提供文件的创建、读取、写入和删除等操作,使用户能够方便地管理自己的数据。
文件系统模块主要包括文件目录、文件存储和文件权限等功能。
文件目录记录了文件在存储设备上的位置和属性信息,用户可以通过文件目录查找和访问文件。
操作系统原理与设计操作系统是一种管理计算机硬件和软件资源的系统软件,它是计算机系统不可或缺的一部分。
操作系统可以看作是计算机与用户之间的桥梁,它负责协调和控制计算机的硬件和软件资源,为用户提供方便、高效、安全的计算环境。
一、操作系统的基本概念1.1 操作系统的定义操作系统是一种位于硬件与应用程序之间的软件:它是硬件的管理者,是用户和计算机硬件之间的接口,它掌管着计算机的一切资源,管理着计算机的各种操作。
1.2 操作系统的功能1.2.1 资源管理操作系统负责管理计算机的各种资源,包括处理器、内存、硬盘、输入输出设备等。
它通过对资源的分配和调度,实现对系统资源的高效利用。
1.2.2 进程管理操作系统负责管理和调度计算机中运行的各个进程。
它分配进程的资源,控制进程的执行顺序,以及提供进程间的通信和同步机制。
1.2.3 文件管理操作系统负责管理计算机中的文件系统,实现文件的创建、读写、删除等操作。
它提供了文件的共享和保护机制,保证用户对文件的访问安全和高效。
1.2.4 设备管理操作系统负责管理和控制计算机的各种输入输出设备,包括键盘、鼠标、显示器、打印机等。
它提供了设备的驱动程序和接口,使得用户可以方便地使用这些设备。
1.3 操作系统的分类操作系统可以按照不同的标准进行分类。
根据管理方式,操作系统可以分为批处理操作系统、分时操作系统和实时操作系统等。
根据运行环境,操作系统可以分为单机操作系统和分布式操作系统等。
二、操作系统的设计原理2.1 抽象与层次结构操作系统通过抽象将底层的硬件资源向上层应用程序隐藏,提供简化的接口给应用程序,使应用程序可以方便地访问资源,屏蔽了底层硬件的复杂性。
2.2 进程管理和调度进程是指在操作系统中运行的程序的实体,它是操作系统中的基本单位。
操作系统通过进程管理和调度来控制进程的运行顺序和资源分配,使得多个进程可以并发执行。
2.3 内存管理内存是计算机中的一项重要资源,操作系统负责管理和分配内存空间。
盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 实验三 驱动调度
一、实验内容 模拟电梯调度算法,实现对磁盘的驱动调度。 二、实验目的 磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务、在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求。这就叫驱动调度,使用的算法称为驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实验要求学生模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实验使学生理解和掌握驱动调度的职能。
三、数据结构 #define M 20 typedef struct PCB { char proc[M];//进程名 int cylinder_num;//柱面号 int track_num;//磁道号 int phy_num;//物理记录号 struct PCB *next; }PCB;
四、实验题目 模拟电梯调度算法,对磁盘进行移臂和旋转调度。 (1)磁盘是可供多个进程共享的存储设备,但一个磁盘每时刻只能为一个进程服务。当有进程在访问某个磁盘时,其他想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出要求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。选择访问者的工作由“驱动调度”进程来完成。 由于磁盘与处理器是可以并行工作的、所以当磁盘在作为一个进程服务时,占有处理器的另一进程可以提出使用磁盘的要求,也就是说,系统能动态地接收新的输入输出请求。为了模拟这种情况,在本实验中设置了一个“接收请求”进程。 “驱动调度”进程和“接收请求”进程能否占有处理器运行,取决于磁盘的结束中断信号和处理器调度策略。在实验中可用随机数来模拟确定这两个进程的运行顺序,以代替中断处理和处理器调度选择的过程。因而,程序的结构可参考图3—1 (2)“接收请求”进程建立一张“请求I/O”表,指出访问磁盘的进程要求访问的物理地址,表的格式为:
进程名 柱面号 磁道号 物理记录号
初始化 输入在[0,1]区间 内的一个随机数
随机数>1/2
开始
驱动调度 接受请求
继续? 结束
是 是 否
否 图3—1 程序结构 假定某个磁盘组共有200个柱面,由外向里顺序编号(0—199),每个柱面上有20个磁道,编号为0—19,每个磁道分成8个物理记录,编号0—7。进程访问磁盘的物理地址可以用键盘输入的方法模拟得到。图3—2是“接收请求”进程的模拟算法。 在实际的系统中必须把等待访问磁盘的进程排入等待列队,由于本实验模拟驱动调度,为简单起见,在实验中可免去队列管理部分,故设计程序时可不考虑“进程排入等待队列”的工作。 (3)“驱动调度”进程的功能是查“请求I/O”表,当有等待访问磁盘的进程时,按电梯调度算法从中选择一个等待访问者,按该进程指定的磁盘物理地址启动磁盘为其服务。 对移动臂磁盘来说,驱动调度分移臂调度和旋转调度。电梯调度算法的调度策略是与移动臂的移动方向和移动臂的当前位子有关的,所以每次启动磁盘时都应登记移动臂方向和当前位子。电梯调度算法是一种简单而实用的驱动调度方法,这种调度策略总是优先选择与当前柱面号相同的访问请求,从这些请求中再选择一个能使旋转距离最短的等待访问者。如果没有与当前柱面号相同的访问请求,则根据移臂方向来选择,每次总是沿臂移动方向选择一个与当前柱面号最近的访问请求,若沿这个方向没有访问请求时,就改变臂的移动方向。这种调度策略能使移动臂的移动频率极小,从而提高系统效率。用电梯调度算法实现驱动调度的模拟算法如图3-3。
图 3—2 “接收请求”模拟算法 (4)图3-1中的初始化工作包括,初始化“请求I/O”表,置当前移臂方向为里移;置当前位置为0号柱面,0号物理记录。程序运行前可假定“请求I/O”表
开始 有请求? 输入:进程 名物理地址
进程排入等待队列 登记“请求I/O表
返回 是 否 是 是 是 是 是 否 否 否 否 中已经有如干个进程等待访问磁盘。 在模拟实验中,当选中一个进程可以访问磁盘时,并不实际地启动磁盘,而用显示:“请求I/O”表;当前移臂方向;当前柱面号,物理记录号来代替图3-3中的“启动磁盘”这项工作 开始 查”请求I/O表” 有等待访问者? 有与当前柱面号相同的访问者? 当前移臂方向是向里移? 有比当前柱面号小的访问请求? 有比当前柱面号大的访问请求? 置当前移臂方向为向外移 置当前移臂方向为向里移 从大于当前柱面号的访问请求中选择一个最小者 从大于当前柱面号的访问请求中选择一个最小者 选择能使旋转距离最短的访问者 添加当前位置:柱面号;物理记录号 启动磁盘,被选中者退出“请求I/O表” 返回 五、源程序 #include"stdio.h" #include"stdlib.h" #include"conio.h" #include"string.h" #define M 20 typedef struct PCB { char proc[M];//进程名 int cylinder_num;//柱面号 int track_num;//磁道号 int phy_num;//物理记录号 struct PCB *next; }PCB; PCB *head=NULL; int direction ;//定义方向,1为up,-1为down PCB *h=NULL; //存放当前运行中的进程的信息
返回 图3-3 电梯调度模拟算法 void init () //初始化当前进程 { h=(PCB *)malloc(sizeof(PCB)); direction=1; strcpy(h->proc,"p"); h->cylinder_num = 0; h->track_num= 0; h->phy_num= 0; } //模拟记录当前运行进程 void current_process(PCB *Q) { strcpy(h->proc,Q->proc); h->cylinder_num = Q->cylinder_num; h->track_num=Q->track_num; h->phy_num=Q->phy_num; } //插入函数 void insert(PCB *p) { PCB *q; q=head; if(head==NULL) head=p; else { for(q=head;q->next!=NULL;q=q->next); p->next=q->next; q->next=p; } } void out_info() {//输出进程的信息 printf("┌────┬─────┬───────┬────────┬────┐\n"); printf("│ 进程名│ 柱面号│ 磁道号 │ 物理记录号 │ 方向 │ \n"); printf("└────┴─────┴───────┴────────┴────┘ \n"); printf(" %s \t%d \t%d \t%d",h->proc,h->cylinder_num,h->track_num,h->phy_num); } void output() { PCB *p; p=head; printf("进程名柱面号 磁道号 物理记录号\n"); if(p==NULL) { printf("---*进程表为空,接收请求或按'n'退出*----\n"); } else { while(p!=NULL) { printf("%s \t%d \t%d \t%d\n",p->proc,p->cylinder_num,p->track_num,p->phy_num); p=p->next; } } } //初始化I/O请求表 void create_PCB() { PCB *p,*q; q=head; int i,n; printf("\n"); printf("请输入I/O进程表中进程等待的个数:\n"); printf("\n"); scanf("%d",&n); printf("请依次输入进程的相关信息: (用空格分隔)\n"); printf("━━━━━━━━━━━━━━━\n"); printf("进程名,柱面号,磁道号,物理记录号\n"); for(i=1;i<=n;) { i++; //printf("请输入第%d个进程的信息:\n",i); p=(PCB *)malloc(sizeof(PCB)); scanf("%s",&p->proc); scanf("%d",&p->cylinder_num); scanf("%d",&p->track_num); scanf("%d",&p->phy_num); p->next=NULL; insert(p); } printf("━━━━━━━━━━━━━━━\n");