操作系统(一)研讨题(学生用)20140901

更新时间:2024-01-04 13:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012级操作系统(一)教学研讨题

2012级操作系统(一)教学研讨参考题

第一次

1、列举你所用过的或者熟知的或者你认为当前最常用的操作系统,并从外在特点、适用领域和内部构造上对它们进行简单描述。

要点:各类桌面、服务器操作系统、手机操作系统、实时操作系统等。

2、介绍Intel奔腾架构的主要寄存器组。

3、描述奔腾处理器中的地址转换机制。 包括:1、逻辑地址、线性地址、物理地址的关系,2、地址转换相关的寄存器(GDTR、LDTR,CR3等,3、页表格式及其中各个位的含义,4、不同模式之间的切换。

4、在PC体系结构中,起到中断控制器的芯片是8259a,请描述其工作原理。

5、简介下intel奔腾架构中的中断类型。

6、比较x86架构中实模式和保护模式中的中断机制。

7、IA32中提供了哪些机制来帮助实现安全可靠的多任务多用户的操作系统。

8、PC体系结构中,用来提供时钟中断的外部芯片是什么,简介它的工作原理。时钟中断对于操作系统起到什么作用。

9、测试设置指令或者交换指令的作用是什么?这些指令如何实现原子操作,在操作系统中哪些地方需要使用这些指令?

10、以linux为例,说明计算机系统的启动过程。

11、Linux/Unix的进程家族树的描述?结合进程家族树的形成过程描述进程层次和Shell工作过程。

12、在Linux操作系统下面查看进程树的命令是什么?

第二次

1、实验思考题: Linux环境下进程信息查看和作业控制。

【操作要求】虚拟终端1(root用户)利用vi新建f1.txt文件,将vi作业挂起;后台启动find进程;显示当前所有作业和进程号;显示所有进程含优先级的进程详细信息,并画出进程家族树后,中止find进程的后台运行。虚拟终端2(student用户)启用vi新建f2.txt文件,其优先级为5, 后台启动find进程,显示含优先级的进程详细信息;再将student用户进程的优先数改为-5,显示含优先级的进程详细信息。写出相应操作步骤。

第 1 页 共 9 页

2012级操作系统(一)教学研讨题

【操作步骤】

参考书籍:LINUX基础及应用 谢蓉 中国铁道出版社 2008。

2、实验思考题:请归纳并给出Linux环境以下信息获取的方法。

读取指定进程的进程信息、 获取总线信息、 获取内核所使用设备信息、 获取系统所引入的NFS文件系统信息、 获取IDE设备信息、 获取IRQ信息、 获取网络信息、 获取SCSI设备信息、获取系统信息和获取TTY设备信息。

参考书籍:LINUX基础及应用 谢蓉 中国铁道出版社 2008。

3、实验思考题:Linux环境下用户间非实时通信。

【操作要求】root用户向student用户发送一封邮件,内容为“请尽快上交实验一:Linux的桌面环境及基本shell命令的实验报告。”,主题是“催交实验报告”,并请转发给hellen用户。student用户阅读邮件后,回复“知道”,并将发来的信件保存为文件vipletter后删除该邮件。最后退出mail.,检查mbox文件,并分析说明检查结果。写出相应操作步骤。 【操作步骤】

参考书籍:LINUX基础及应用 谢蓉 中国铁道出版社 2008。

4、管道是unix操作系统中以读写文件的方式实现进程通信的机制,通过读管道接收数据,

通过写管道发送数据。管道分为有名管道和无名管道两种。请论述linux的管道机制以及有名管道和无名管道的异同点。

5、1965年,Dijkstra提出并解决了一个他称之为哲学家进餐的同步问题。从那时起,每个

发明新的同步原语的人都希望通过解决哲学家就餐问题来展示其同步原语的精妙之处。这个问题可以简单地描述如下:五个哲学家围坐在一张圆桌周围,每个哲学家面前都有一碟通心面,由于面条很滑,所以要两把叉子才能夹住。相邻两个碟子之间有一把叉子,餐桌如下图所示。

第 2 页 共 9 页

2012级操作系统(一)教学研讨题

哲学家的生活包括两种活动:即吃饭和思考(这只是一种抽象,即对本问题而言其他

活动都无关紧要)。当一个哲学家觉得饿时,他就试图分两次去取他左边和右边的叉子,每次拿一把,但不分次序。如果成功地获得了两把叉子,他就开始吃饭,吃完以后放下叉子继续思考。这里的问题就是:为每一个哲学家写一段程序来描述其行为,要求不能死锁。(要求拿两把叉子是人为规定的,我们也可以将意大利面条换成中国菜,用米饭代替通心面,用筷子代替叉子。)

6、 一个主修人类学、辅修计算机科学的学生参加了一个课题,调查非洲狒狒是否能被教会理解死锁。他找到一处很深的峡谷,在上边固定了一根横跨峡谷的绳索,这样狒狒就可以攀住绳索越过峡谷。同一时刻可以有几只狒狒通过,只要它们朝着相同的方向。但如果向东和向西的狒狒同时攀在绳索上则将发生死锁(狒狒将被卡在中间),因为它们无法在吊在峡谷上时从另一只的背上翻过去。如果一只狒狒想越过峡谷,它必须看当前是否有别的狒狒正在逆向通过。使用信号量写一个避免死锁的程序来解决该问题。 继续该问题,但现在要避免饥饿:当一只想向东去的狒狒到了绳索跟前,但发现有别的狒狒正在向西越过峡谷时,它将一直等到绳索可用为止。但在至少有一只狒狒向东越过峡谷之前,不允许再有狒狒开始从东向西越过峡谷。

7、睡觉理发师问题(如下图所示):一个理发店有一个理发师,一张理发椅子,多张等待

椅子(可以假定为n>1张)。当没有顾客的时候,理发师就睡觉。当一个顾客来到店里是,如果理发师在睡觉,则叫醒理发师;如果理发师正在给人理发,则坐在椅子上等待。试问: (1)请问这种安排有发生竞争的可能吗?如果没有,请予以证明。如果有,什么情况下会发生竞争?

(2)利用记录型信号量分别对下面两种情形给出同步算法: ①如果等待的椅子都满了,则顾客仍然在理发店等待理发;

②如果等待的椅子都满了,则顾客就离开理发店而不理发了。

第 3 页 共 9 页

2012级操作系统(一)教学研讨题

8、设有三个进程,input进程、compute进程和output进程;它们通过共享一个缓冲区buf

的合作关系如下:

(1)input进程每次输入数据后,把数据送到buf,供compute进程计算和output进程打印;

(2)comput进程每次从buf取出已输入的可计算的数据进行计算,并当output进程把输入数据打印完成后,把计算结果送入buf供output进程打印; (3)output进程每次把buf中要打印的数据在打印机上输出。 请给出能正确实现这三个进程同步关系的的进程同步算法。

9、前趋图中的同步应用。

求一元二次方程 ax2+bx+c = 0 的根:x1 = (-b+sqrt(b*b – 4*a*c)) / (2*a) ; x2 = (-b-sqrt(b*b – 4*a*c)) / (2*a)。现把计算分解为如下 6 个可并发执行的过程:请分析这 6 个过程的同步关系,画出前趋图,并用P、V操作实现它们的同步。 P1: d1 = 4*a*c; P2: d2 = b*b; P3: d3 = 2*a;

P4: d4 = sqrt ( d2 – d1); P5: x1 = (-b+d4) / d3; P6: x2 = (-b-d4) / d3。

研讨要点:前趋图的Bernstein条件---》参考书籍:操作系统教程,李素华,人民邮电出版社,P14。 10、前趋图中的同步应用实例与分析(学生自拟题)。

11、 管道通信的实验思考题:无名管道通信的应用。

(1) 利用一条管道命令实现统计指定目录中子目录和文件的总数,并将统计结果保存到指

第 4 页 共 9 页

2012级操作系统(一)教学研讨题

定的文件中。

(2) 利用一条管道命令实现将一封来自键盘的邮件发给用户USER1、USER2,邮件内容自定。

12、管道通信的编程题:无名管道通信的实例分析。

编写一算法,建立一个管道。同时,父进程生成子进程P1、P2,这两个子进程分别向管道中写入各自的字符串,父进程读出它们,其原理如下图所示。

参考书籍:计算机操作系统教程(第2版),张尧学 ,清华大学出版社。

13、管道通信的编程题:有名管道通信的实例分析(学生自拟题)。

14、Linux/Unix的信号机制(软中断)。 阅读下面的程序:

(1)给出程序执行的结果,并指出程序执行所对应的进程数。

(2)在Linux环境下,给出输入编辑源程序(设文件名为prg2.c)、编译和执行此目标程序的shell命令。

#include #include func( ) {

printf(“A signal has been received\\n”); }

main() {

int i ;

signal(18,func);

printf(?Processing signal function has been set\\n”); i = fork( ); if (i = = 0)

第 5 页 共 9 页

本文来源:https://www.bwwdw.com/article/q6bx.html

Top