视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
西安交通大学操作系统1有答案
2025-09-27 23:45:11 责编:小OO
文档


成绩
西安交通大学考试题               

  课  程    操作系统原理(A卷)    

学    院                          考 试 日 期           年     月    日

专业班号                      

姓    名                        学  号                  期中    期末

注意:请将答案全部写在答题纸上,写在试卷和草稿纸上无效。

一.名词解释(每小题3分,共15分)

1. 信号量:信号量是表示资源的实体,是一个与队列有关的整型变量, 其值仅能由P、V操作来改变。

2. 死锁:死锁是系统中一组进程,该组进程中的每一个进程都占用了某些资源,而又都在无限等待该组中其它进程释放资源,它们都无法向前推进,称此时系统处于死锁状态或系统产生了死锁。

3. 系统调用:系统调用是操作系统为了扩充机器功能、增强系统能力、方便用户使用而建立的。它作为操作系统与用户编程时使用的接口。

4. 虚拟存储器:根据局部性原理,一个作业在运行之前,没有必要把全部作业装入内存,而仅将那些当前要运行的那部分页面或段,先装入内存便可启动运行,其余部分暂时留在磁盘上,程序在运行时如果用到时再装入。这样,便可使一个大的用户程序在较小的内存空间中运行,也可使内存中同时装入更多的进程并发执行。从用户角度看,该系统所具有的内存容量,将比实际内存容量大得多,人们把这样的存储器称为虚拟存储器。

5. 设备性:为了提高OS的可适应性和可扩展性,目前几乎所有的OS都实现了设备的性(也称为设备无关性)。其基本思想是:用户程序不直接使用物理设备名(或设备的物理地址),而只能使用逻辑设备名;而系统在实际执行时,将逻辑设备名转换为某个具体的物理设备名,实施I/O操作。

                                             

二.填空(每空1分,共20分)

1.现代操作系统的两个最基本的特征是    并发性  和  共享性  。

2.产生死锁的必要条件是:互斥条件、  请求保持 、不可剥夺条件和  环路等待  。

3.磁盘存储器空闲存储空间的常用管理方法有:空闲表法,空闲链表法和  位示图  。

4.活动头磁盘的访问时间包括寻道时间、  旋转等待(延迟)时间  和传输时间。

5.采用交换技术获得好处是以牺牲  时间  和  空间  为代价的。

6.实现虚拟存储器的理论基础是   局部性    原理。

7.在操作系统中引入线程的主要目的是  提高系统效率、提高系统资源利用率、减少进程并发执行时所付出的时空开销,使OS具有更好的并发性    。

8.在分区分配算法中,首次适应算法倾向于优先利用内存中  低地址  部分的空闲分区。

9.在进程中,访问  临界资源  的代码称为临界区。

10.进程控制块的初始化工作包括初始化标识符信息、初始化处理机状态信息和  进程调度和控制信息  。  

11.I/O进行设备分配时所需的表格主要有  系统设备表  、设备控制表、  控制器控制表  和通道控制表。

12.一台计算机有13台磁带机,它们由N个进程竞争使用,每个进程可能需要4台磁带机。N最大为  4  时系统没有死锁危险。

13.页式存储管理中,一个由4个页面,每页有512个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,逻辑地址需要  211  位二进制数来表示,绝对地址需要  214  位二进制数来表示。

14.CPU调度的任务是从   就绪   队列中选择一个进程,把CPU分配给它。

15. 交换技术与虚拟存储管理  技术允许进程部分装入内存就可以执行。

三.判断题,正确用T表示,错误用F表示(每题1分,共10分)。

1,分时系统中,时间片设得越小,则平均响应时间越短。F

2,一个进程的状态发生变化总会引起其他一些进程的状态发生变化。F

3,为提高对换空间的利用率,一般对其采用离散的分配方式。T

4,隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随机存取。T

5,设备的性是指每类设备有自己的设备驱动程序。F

6,虚拟设备是指允许用户使用比系统中具有的物理设备更多的设备。T

7,在内存中就绪等待接受调度的进程组成了等待队列。F

8,磁盘文件的访问时间与磁头的位置无关。F

9,系统调用的执行不能被中断。F

10,系统处于不安全状态必然导致死锁。F

四.简答题(共25分)

1.什么是文件目录?文件目录中包含哪些信息?常用的目录结构形式有哪几种?(6分)

答:文件目录记录文件的管理信息,也称文件控制块FCB(File Control Block,FCB)。

文件目录通常包含以下三类内容:

(1)有关的文件结构信息:逻辑结构信息和物理结构信息。

(2)有关文件的管理信息 :文件建立的日期和时间、文件要求保留的日期和时间、上一次存取文件的日期和时间等 。

(3)文件的存取控制权限信息:文件主(本人)所具有的存取权限;文件主、同组用户所具有的存取权限;其它用户的存取权限。

常用的文件目录结构有:单级目录结构(或称简单文件目录)、二级目录结构和多级目录结构。

                                                            共 3 页   第 1 页

2.画出批处理系统作业和进程的状态和变迁图,说明作业调度、进程调度在每种状态变迁中的功能。(7分)

作业调度功能:作业调度程序负责作业从“后备状态”到“执行状态”以及从“执行状态”到“完成状态”的转换。作业调度程序为作业分配的是一台虚拟的逻辑处理机。

通常作业调度程序具有以下功能:

① 记录系统中各个作业的情况,系统为每个作业建立一个作业控制块。

② 按照某种调度算法从后备作业队列中挑选作业。调度算法的好坏直接关系到系统的性能。调度时可以选择对资源需求不同的作业进行合理搭配,使得系统中各部分资源得到均衡利用。

③ 为选中的作业分配内存和外设等资源。作业调度程序在挑选作业进程中要调用存储管理程序和设备管理程序中的某些功能。为选中的作业建立相应的进程。

④ 作业结束后进行善后处理工作。如输出必要的信息,收回该作业所占有的全部资源,撤消该作业相关的全部进程和该作业的JCB。

进程调度功能:进程调度主要任务是实现进程从“就绪状态”到“运行状态”的转变。它按照确定的进程调度算法从就绪队列中选择一个进程,让它占有CPU运行。进程调度程序为作业分配的是一台真实的物理处理机。

3.操作系统为用户提供哪些接口?它们的区别是什么?(5分)

操作系统为用户提供了两类接口。一类是命令级接口,供用户组织和控制作业的执行和管理计算机系统。另一类是程序级接口,供编程人员使用操作系统提供的系统调用来请求操作系统提供服务。

4.在一个不允许发生死锁的系统中,通常会采用静态方法或动态方法,请描述这两种方法的原理,并分别给出一个典型算法。(7分)

答:保证系统不进入死锁状态的静态策略,它是在采用的资源分配策略中使发生死锁的四个条件中的任何一个条件不成立,就可以预防死锁的发生。如采用资源的静态分配策略,要求每一个进程在开始执行前就要申请它所需要的全部资源,仅当系统能满足进程的资源申请要求时才把资源分配给进程,该进程才能开始执行(注意,所有并发执行的进程要求的资源总和不能超过系统拥有的资源数)。采用静态分配策略后,进程在执行中不再申请资源,因而,不会出现占有了某些资源再等待另一些资源的情况,即破坏了第二个条件(占有和等待条件)的出现,从而防止死锁的发生。

死锁避免是保证系统不进入死锁状态的动态策略。与死锁预防策略不同,它不是对进程申请资源施加任何,而是对于进程发出的资源申请加以动态检查,并根据检查结果决定是否分配资源。Dijkstra(1965 )提出了一种能够避免死锁的调度方法,称为银行家算法。银行家算法是把操作系统比作银行家,操作系统管理的各种资源比作银行的周转资金,申请资源的进程比作向银行借款的借款人。银行家占有有限的资金,他不可能满足所有客户的请求,但可以满足一部分客户的借款请求,等这些客户归还后,又可把这笔资金借给其他客户,其原则是不能使银行家的钱被借完,使资金无法周转。

五.(10分)假定一个磁盘有200个柱面(编号0-199),磁盘请求队列由对如下柱面的请求序列构成:50, 60, 30, 18, 90, 165, 150, 38, 12, 190. 已知磁头当前位于95号柱面,移动方向为向内。

1.如果系统采用SSTF算法进行调度,那么系统处理完上述所有的磁盘请求所需的寻道距离是多少?

2.如果系统采用SCAN算法进行调度,那么系统处理完上述所有的磁盘请求所需的寻道距离是多少?

SSTF                                 SCAN

                                                                      第 2  页

西安交通大学考试题

四.(10分) 设正在处理器上执行的一个进程的页表如下表所示,表中的虚页号和物理块号是十进制数,起始页号(块号)均为0。所有的地址均是存储器字节地址。页的大小为1024字节。

1.详述在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程。

2.下列十进制虚地址对应于什么物理地址:5579,2232

进程的页表

虚页号     状态位     访问位      修改位     物理块号

0          1          1          0            4

1          1          1          1            7

2          0          0          0            -

3          1          0          0            2

4          0          0          0            -

5          1          0          1            0

注: 当某页被访问时,其访问位置1。

    答:1. 

1.判断是否越界,若是,则中断,否则,继续。

2.查找快表,若找着页表项,则修改访问位等,形成物理地址,结束。否则, 继续。

3.查找页表,若找着页表项,则修改访问位等,形成物理地址,将该页表项放入快表中,结束。否则,产成缺页中断,继续。

4.若内存不满,则将找着的页从外存调入内存。否则,置换一页出内存,然后将找着的页从外存调入内存

5.修改页表

2.

十进制虚地址5579对应(5,459),由于虚页号5对应0块,所以虚地址5579的物理地址是459。

十进制虚地址2232对应(2,184),虚页号为2,对应的页不在内存中,故发出缺页中断。

五.(10分) 某数据处理系统由数据采集、数据计算和数据输出三个进程组成,采集进程把采集到的数据送入由M个缓冲块组成的输入缓冲区(每次向一个缓冲块送数据),计算进程从输入缓冲区取数据计算(每次取一个缓冲块的数据),并将计算结果送入到由N个缓冲块组成的输出缓冲区(每次向一个缓冲块送数据),输出进程每次从输出缓冲区取一个结果输出。编写利用信号量机制实现的三者之间同步算法,要求写出信号量的含义和初值。

答. 

本题是采集进程、数据计算进程和数据输出三个进程共享二个缓冲区M和N。其中采集进程是生产者,数据计算进程既是生产者又是消费者,数据输出是消费者。

设置如下信号量和初值:

mutex1:=mutex2:=1;   

avail1:=avail2:=1;     

full1:=full2:=0;

这里mutex1和mutex2是两个公用信号量,用于控制进程对缓冲区M和缓冲区N这两个临界资源访问的互斥。avail1、full1、avail2和full2为两组私用信号量,分别对应两个缓冲区,其中avail1、avail2初值分别为m,n,表示可以利用的缓冲区数目;full1、full2的初值为0,表示存在于缓冲区内的数据的个数为0。通过对这两组私用信号量和P、V操作,就实现了进程的同步。

采集进程、数据计算进程和数据输出三个进程协作解决问题的流程为:

数据输出进程

L3:P(full2)

    P(mutex2);

    get form buffer 2;

    V(avail2);

    V(mutex2);

    print record;

    goto L3;

PAREND

END

BEGIN

PARBEGIN

采集进程

L1:read from disk;

    P(avail1);

    P(mutex1);

    put to buffer 1;

    V(full1);

    V(mutex1);

    goto L1;

数据计算进程

L2:P(full1);

    P(mutex1);

    get form buffer 1;

    V(avail1);

    V(mutex1);

    P(avail2);

    P(mutex2);

    put to buffer 2;

    V(full2);

    V(mutex2);

    goto L2;
                                                                      第 3  页 下载本文
显示全文
专题