十三分层助你理解操作系统
浏览量:1184
发布日期:2015/9/14 12:46:17
对于运行数百万到数千万条代码的大型操作系统,仅仅有模块化程序设计是不够的,软件体系结构和信息抽象的概念正得到越来越广泛的使用。现代操作系统的层次结构按照复杂性、时间刻度、抽象级进行功能划分。我们可以把系统看做是一系列的层。每一层执行操作系统所需功能的相关子集。它依赖于下一个较低层,较低层执行更为原始的功能并隐藏这些功能的细节。它还给相邻的较高层提供服务。在理想情况下,可以通过定义层使得改变一层时不需要改变其他层。
● 第1 层:由电路组成,处理的对象是寄存器、存储单元和逻辑门。定义在这些对象上的操作是动作,如清空寄存器或读取存储单元。
● 第2 层:处理器指令**。该层定义的操作是机器语言指令**允许的操作,如加、减、加载和保存。
● 第3 层:增加了过程或子程序的概念,以及调用/返回操作。
● 第4 层:引入了中断,能导致处理器保存当前环境、调用中断处理程序。前面这4 层并不是操作系统的一部分,而是构成了处理器的硬件。但是,操作系统的一些元素开始在这些层出现,如中断处理程序。从第5 层开始,才真正到达了操作系统,并开始出现和多道程序设计相关的概念。
● 第5 层:在这一层引入了进程的概念,用来表示程序的执行。操作系统运行多个进程的基本要求包括挂起和恢复进程的能力,这就要求保存硬件寄存器,使得可以从一个进程切换到另一个。此外,如果进程需要合作,则需要一些同步方法。操作系统设计中一个最简单的技术和重要的概念是信号量,简单信号机制将在第5 章讲述。
● 第6 层:处理计算机的辅助存储设备。在这一层出现了定位读/写头和实际传送数据块的功能。第6 层依赖于第5 层对操作的调度和当一个操作完成后通知等待进程该操作已完成的能力。更高层涉及对磁盘中所需数据的寻址,并向第5 层中的设备驱动程序请求相应的块。
● 第7 层:为进程创建一个逻辑地址空间。这一层把虚地址空间组织成块,可以在内存和外存之间移动。比较常用的有三个方案:使用固定大小的页、使用可变长度的段或两者都用。当所需要的块不在内存中时,这一层的逻辑将请求第6 层的传送。至此,操作系统处理的都是单处理器的资源。从第8 层开始,操作系统处理外部对象,如外围设备、网络和网络中的计算机。这些位于高层的对象都是逻辑对象,命名对象可以在同一台计算机或在多台计算机间共享。
● 第8 层:处理进程间的信息和消息通信。尽管第5 层提供了一个原始的信号机制,用于进程间的同步,但这一层处理更丰富的信息共享。用于此目的的最强大的工具之一是管道(pipe),它是为进程间的数据流提供的一个逻辑通道。一个管道定义成它的输出来自一个进程,而它的输入是到另一个进程中去。它还可用于把外部设备或文件链接到进程。这个概念将在第6 章中讲述。
● 第9 层:支持称为文件的长期存储。在这一层,辅助存储器中的数据可以看做是一个抽象的可变长度的实体。这与第6 层辅助存储器中面向硬件的磁道、簇和固定大小的块形成对比。
● 第10 层:提供访问外部设备的标准接口。
● 第11 层:负责维护系统资源和对象的外部标识符与内部标识符间的关联。外部标识符是应用程序和用户使用的名字;内部标识符是一个地址或操作系统在低层使用、用于定位和控制一个对象的其他指示符。这些关联在目录中维护,目录项不仅包括外部/内部映射,而且包括诸如访问权之类的特性。
● 第12 层:提供了一个支持进程的功能完善的软件设施,这和第5 层中所提供的大不相同。第5 层只维护与进程相关的处理器寄存器内容和用于调度进程的逻辑,而第12 层支持进程管理所需的全部信息,这包括进程的虚地址空间、可能与进程发生交互的对象和进程的列表以及对交互的约束、在进程创建后传递给进程的参数和操作系统在控制进程时可能用到的其他特性。
● 第13 层:为用户提供操作系统的一个界面。它之所以称做命令行解释器(shell),是因为它将用户和操作系统细节分离开,而简单地把操作系统作为一组服务提供给用户。命令行解释器接受用户命令或作业控制语句,对它们进行解释,并在需要时创建和控制进程。例如,这一层的界面可以用图形方式实现,即通过菜单提供用户可以使用的命令,并输出结果到一个特殊设备(如显示器)来显示。
cephalexin 750mg
click albuterol (salbutamol)