成为“黑客”前,必须学习的“操作系统架构体系”(2)
2)增强了系统的可靠性由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。 3)可移植性在微内核结构的操作系统中,所有与特定 CPU 和 I/O 设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其它绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需的修改是比较小的。 4)提供了对分布式系统的支持由于在微内核 OS 中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核 OS 能很好地支持分布式系统和网络系统。事实上,只要在分布式系统中赋予所有进程和服务器唯一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户和服务器通信时,只需在所发送的消息中表上所发送进程和接收进程的标识符,微内核便可利用系统映射表,将消息发往目标,而无论目标是驻留在哪台机器上。 5)融入了面向对象技术在设计微内核 OS 时,采用了面向对象的技术,其中的"封装"、"继承"、"对象类"和"多态性",以及在对象之间采用消息传递机制等,都十分有利于提高系统的的"正确性"、"可靠性"、"易修改性"、"易扩展性"等,而且还能显著地减少开发系统所付出的开销。 微内核系统存在的问题:在微内核 OS 中,由于客户和服务器及服务器和服务器之间的通信,都需通过微内核,只是同样的服务请求至少需要四次上下文切换。第一次是发生在客户发送请求消息给内核,以请求取得某服务器特定的服务时;第二次是发生在由内核把客户的请求消息发往服务器时,第三次是当服务器完成客户的请求后,把响应消息发送到内核时;第四次是在内核将响应消息发送给客户时。实际情况是,当某个服务器自身尚无能力完成客户请求,而需要其他服务器帮助时,如下图所示,其中的文件服务器还需要磁盘服务器的帮助,这时就需要进行上下文的切换。 为了改善运行效率,可以重新把一些常用的操作系统的基本功能,由服务器移入微内核中,这样可使客户对常用操作系统的功能的请求所发生的用户/内核模式和上下文切换的次数。但是这又会使微内核的容量明显的增大,在小型接口定义和适应性方面的有点也有所下降,同时也提高了微内核的设计代价 四、 操作系统的功能 主要功能: 1、隐藏了硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。 例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制(比如控制磁盘转动,移动磁头读写数据等细节), 2、将应用程序对硬件资源的竞态请求变得有序化 例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c,操作系统的一个功能就是将这种无序变得有序。 详细功能: (1) 处理机管理功能 处理机管理的主要功能是创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理及分配给进程。 1、进程控制 进程控制的主要功能是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换。 2、进程同步 进程同步的主要任务是为多个进程的运行进行协调。有两种协调方式: 1)进程互斥方式:这是指诸进程在对临界资源进行访问时,应采用互斥方式; 2)进程同步方式:这是指在相互合作去完成功能任务的诸进程间,由同步机构对他们的执行次序加以协调。 3、进程通信 在多道程序环境下,为了加速应用程序的运行,应在系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。 4、调度 1)作业调度 作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为他们分配运行所需的资源。在将他们调入内存后,便分别为他们建立进程,使他们都成为可能获得处理机的就绪进程,并按照一定的算法将他们插入就绪队列。 2)进程调度 进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。值得提出的是,在多线程OS中,,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。 (2) 存储器管理功能 存储器的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。 1、内存分配 内存分配的主要任务是为每道程序分配内存空间,使它们"各得其所";提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。 为了实现内存分配,在内存分配的机制中应具有这样的结构功能: 1)内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据。 2)内存分配功能。系统按照一定的内存分配算法为用户程序分配内存空间。 3)内存回收功能。系统对用用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。 2、内存保护 内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;决不允许用户程序访问操作系统的程序和数据;也决不允许用户程序转移到非共享的其他用户程序中去执行。 3、地址映射 4、内存扩充 为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能: 1)请求调入功能。 允许在装入一部分用户程序和数据的情况下,便能启动该程序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向OS发出请求,由OS从磁盘中将所需部分调入内存,以便继续运行。 2)置换功能。 若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至盘上,以腾出内存空间,然后再将所需调入的部分装入内存。 (3) 设备管理功能 完成用户进程提出的 I/O 请求;为用户进程分配所需的 I/O 设备;提高 I/O 设备和 CPU 的利用率;提高 I/O 速度;方便用户使用 I/O 设备。 设备管理应具有:缓冲管理,设备分配,设备处理以及虚拟设备等功能。 1、缓冲管理: 2、设备分配: 设备分配的基本任务是根据用户进程的 I/O 请求、系统的现有资源情况以及按某种设备的分配策略,为之分配其所需的设备。 3、设备处理: 设备处理的基本任务是用于实现 CPU 和设备控制之间的通信。 4、虚拟设备: (4) 文件管理功能 文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。 为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能。 1、文件存储空间的管理 为每个文件分配必要的外存空间,提高外存利用率,并能有助于提高文件系统的存、取速度。 2、目录管理 为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取,即用户只需提供文件名便可对该文件进行存取。 3、文件的读/写管理和保护 1)文件的读、写管理 根据用户的请求,从外存中读取数据,或将数据写入外存。 2)文件保护 ①防止未经核准的用户存取文件 ②防止冒名顶替存取文件 ③防止以不正确的方式使用文件 (5) 操作系统与用户之间的接口 用户与操作系统的接口: 1、用户接口 它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务。 1)联机用户接口 为联机用户提供,它由一组键盘操作命令及命令解释程序所组成。 2)脱机用户接口 (编辑:ASP站长网) |