操作系统试题6

¬Article by admin with 0 comments
19 Jan 2007

1、什么叫进程?  

  进程是程序在一个数据集合上运行的过程,它是传统操作系统进行资源分配和调度的一个独立单位。关键是“共享资源”引起的。

2、进程的互斥和同步有什么异同点?

  同 步 互 斥

  

  如果将时间看成共享资源,同步是互斥的特例。

3、引入进程的概念关键在于:

  共享资源

4、死锁是指两个或多个进程都处于相互等待状态而无法继续工作。 (正确)

  死锁是两个或两个以上的进程中的每一个,都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。

5、举例说明一个程序有可能同时属于多个进程。

6、说明进程的结构、特征和基本状态。

  结构:进程 = 进程控制块PCB + 程序 + 数据集合。

  特征:动态性、并发性、独立性、制约性、结构性。

  基本状态:

  1、就绪态:进程具备运行条件,但尚未占用CPU

  2、执行态:进程正在占用CPU

  3、等待态:进程由于等待某个事件不能享用CPU

进程的三个基本状态及转换

7、为什么多道系统的程序要以进程的形式参与系统的并发执行?

  多道程序的特点(资源分配的动态性、程序执行的间断性、相互通信的可能性以及同步互斥的必要性)要求在并发执行时操作系统能够描述执行时的动态特性。程序本身是静态的,无法描述这个动态特性。所以引进进程的形式参与系统的并发执行。

8、什么是临界资源?

  当一个资源被一个用户占用后,就加锁禁止其他用户进入同时使用该资源。这样的资源叫临界资源。

9、通常有哪几种创建进程的方法?创建一个新进程要做那些工作?

  在UNIX操作系统中,用户创建一个新进程的唯一方法就是系统调用fork。调用fork的进程称为父进程,而新创建的进程叫做子进程。

  创建一个新进程:

  1、首先检查可用的内核资源。如果资源不足,则fork失败。

  2、内核为新建进程分配唯一的进程标识号。

  3、检查用户没有过多的运行的进程。

  4、将子进程的状态设为“创建”状态;

  5、继承父进程的特征(如真正用户标识号等)

  6、创建子进程的上下文。

  7、将子进程状态改为“就绪”

10、一进程入睡时其断点落在何处?一进程被唤醒后从何处继续原来的执行?

  两种情况:

  1、进程由运行态转到就绪态(时间片到),保存下条指令地址

   2、进程由运行态转到等待态(有阻塞发生),保存当前指令地址

   唤醒时从保存的断点中执行者

11、什么是临界区?

  临界区是一个进程对公共变量(或单位共享资源量)部分的操作,每次只准一个进程进入,进入后不许其它进程进入。

12、试说明进程互斥、同步和通信三者之间的关系。

13、考虑一个理发店,只有一个理发师,只有N张可供顾客等待理发的椅子,如果没有顾客,则理发师睡觉;如果有一顾客进入理发店发现理发师在睡觉,则把他叫醒,写一程序协调理发师和顾客之间的关系。

  设S1表示空椅子个数,初始为N,

  S2表示理发店中顾客个数,初始为0;

  A进程表示顾客进入理发店(前提有空椅子)

  B进程表示理发店一个顾客工作

  A进程 B进程

   While (True){

  P(S1); P(S2);

  V(S2); ┋ 理发师给用户理发

  ┋ 顾客坐入椅子 V(S1);}

14、一个二元信号量是一个其值只能取0,1的信号量,给出一个二元信号量实现一般信号量P、V操作的程序。

  设A进程为从读卡机向缓存中写入数据

  B进程为从缓存中取出数据加工并存盘

  为此,设置两个信号时:

  S1:表示缓存是否空(0:表示不空,1:表示空);初始为0;

  S2:表示缓存是否满(0:表示不满,1:表示满);初始为0。

  A进程 B进程

  L1:启动读卡机 L2:P(S2)

   . 从缓存中取出数据

   . V(S1)

   收到输入结束中断 加工并存盘

   V(S2); Go to L2;

   P(S1);

   Go to L1

15、在一个系统中,若进程之间除了信号量之外不能共享任何变量,进程之间能互相通信吗?

  同步与互斥是进程通信的基本内容。信号量和P、V操作基本解决进程间的同步和互斥问题。所以在一个系统中,若进程之间除了信号量之外不能共享任何变量,进程之间也能互相通信。(对吗?)

16、写一个无死锁、无饥饿的哲学家进餐问题的解。

17、有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:

(1)为描述读者的动作,应编写几个程序,设置几个进程?

(2)试用PV操作描述读者进程之间的同步关系。

  2个进程(2个程序),一个为进入阅览室,一个为离开阅览室。进入为A进程,离开为B进程。

  设两个信号量

   S1:表示空座位数,初始为100

   S2:互斥信号量,初始值为1(因为访问登记与表示互斥进入)

  A进程 B进程

  P(S1); P(S2);

  P(S2); 消登记表信息

  填写登记表 V(S2);

  V(S2); V(S1);

18、进程之间有哪些基本的通信方式?它们分别有什么特点?适用于哪些场合?

2、操作系统设计的基本原则是什么?

  1、正确性

  2、安全可靠性:系统不容易被破坏。

  3、高效性:性能完善,系统效率高

  4、适应性要强:具有可扩充性和可移植性

  5、易于维护和掌握:面对一般用户、系统管理员和程序开发人员

3、操作系统设计的基本方法是什么?

  1、层次模块模型

  2、整体内核模型

  3、进程模型

  4、对象模型

4、如何尽快熟悉一个计算机操作系统

  从操作系统五大功能入手:

  1、看界面

  2、看文件系统

  3、看设备驱动

  4、看内存管理

  6、看处理机管理

5、新一代操作系统采用微内核技术,有什么优缺点?

  微内核的优点:

  1、统一的接口:在用户态和核心态(微内核)之间无需进程识别。

  2、可伸缩性好:能适应硬件更新和应用变化;

  3、可移植性好

  4、实时性好;微内核可方便地支持实时处理

  5、安全可靠性高

  6、支持分布式系统

  7、真正面向对象的操作系统

6、在大程序的编程过程中,模块大小如何选择?分块原则是什么?

  分块原则:一般按功能分块,形成简单的相对独立的模块,模块可大可小。所编写的程序模块接口应有比较明确的通讯规则。模块间形成转接、相互依赖甚至循环。但要尽量禁止使用GOTO、ASSIGN一类功能语句。因为容易造成结构不清晰、难读和难调试。

7、操作系统中分层原则是什么?你认为在什么场合下应用?

  操作系统的分层原则:

  1. 按程序的嵌套情况排成有序的层次;

  2. 把活动频繁的模块和为很多模块所公用的模块放在最低软件层,存储器管理模块设置在较低软件层;

  3. 为获得可移殖性和可适应性而设置的软件层,应分别放在较低的层次和最外层。

  4. 在严格的层次结构中,只允许高层调用低层中的软件,决不允许低层调用高层的软件。在高层调用低层的软件时的方法:

   (1) 高层仅能调用它下一层中的软件;

   (2) 高层能调用所有低层的软件;

   (3) 高层能部分地调用低层中的软件。

8、计算机操作系统如何提供系统调用的服务?

操作系统将其功能进行模块化设计,并提供模块接口。所谓系统调用就是通过模块接口调用系统模块。

9、为什么计算机系统要设计用户态和系统态两种运行状态?

  当计算机操作系统内的程序模块运行时,机器处于核心态。其他程序运行时,机器处于用户态。

  区分用户态和核心态两种运行状态,其目的是使操作系统拥有一些“特权”,使系统运行比较安全可靠。

Tags:
Category: 谈天说地
Name (Req)

E-mail (Req)

URI

Message

pages

categories

archives

ad ad ad

blogroll