操作系统(OperatingSystem)的目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口,而为裸机配置的一种系统软件,如下图所示。
从上图可以看出,操作系统是裸机上的第一层软件,是对硬件系统功能的首次扩充。它在计算机系统中占据重要而特殊的地位,其他系统软件属于第二层,如编辑程序、汇编程序、编译程序和数据库管理系统等系统软件;大量的应用软件属于第三层,例如银行账务查询、股市行情和机票预定系统等。其他系统软件和应用软件都是建立在操作系统基础之上的,并得到它的支持和取得它的服务。从用户角度看,当计算机配置了操作系统后,用户不再直接使用计算机系统硬件,而是利用操作系统所提供的命令和服务去操纵计算机,操作系统已成为现代计算机系统中必不可少的最重要的系统软件,因此把操作系统看作是用户与计算机之间的接口。
在设计微内核 OS 时,采用了面向对象的技术,其中的 “封装”,“继承”,“对象类” 和 “多态性”,以及在对象之间采用消息传递机制等,都十分有利于提高系统的 “正确性”、 “可靠性”、“易修改性”、“易扩展性” 等,而且还能显著地减少开发系统所付出的开销。采用微内核结构的操作系统与传统的操作系统相比,其优点是提高了系统的灵活性、可扩充性,增强了系统的可靠性,提供了对分布式系统的支持。其原因如下。
①灵活性和可扩展性:由于微内核 OS 的许多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核 OS 只需在相应的服务器(软件?)中增加新的功能,或再增加一个专门的服务器。与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统。
②增强了系统的可靠性和可移植性:由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核 外部的程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。另外,由于在微内核结构的操作系统中,所有与特定 CPU 和 I/O 设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其他绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。
③提供了对分布式系统的支持:由于在微内核 OS 中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核 OS 能很好地支持分布式系统和网络系统。事实上,只要在分布式系统中赋予所有进程和服务器唯一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微内核便可利用系统映射表将消息发往目标,而无论目标是驻留在哪台机器上。
操作系统为用户提供了两类接口:操作一级的接口和程序控制一级的接口。其中,操作一级的接口包括操作控制命令、菜单命令等;程序控制一级的接口包括系统调用。
根据题意,假设系统中有 n 个进程共享 3 台打印机, 意味着每次只允许 3 个进程进入互斥段,那么信号量的初值应为 3。
上面的解析中指出了最大值的取法,取得负值是什么意思呢
十进制数 1111 转化为二进制数为:10001010111。物理页的大小为 512 字节,这说明页内地址为 9 个二进制位,进程 A 的逻辑址中,右边的 9 位是页内地址,左边的 2 位是页号,即:10001010111。页号为二进制的 10,即十进制的 2,对应的物理页号为 4。若 A 页表的逻辑页 4 和进程 B 页表的逻辑页 5 共享物理页 8,则说明他们都对应物理页 8,所以均填 8。