我们把早期的无结果的OS(第一代)、模块化结构的OS(第二代)和分层式结构的OS(第三代),都统称为传统结构的OS,而把微内核结构的OS称为现代结构的OS。
无结构操作系统
适合编写小型OS,可调试,可维护,可扩展性差。
模块化结构OS
自顶向下设计。
分层式结构OS
自底向上设计。
现代操作系统一般将OS划分为若干层次,再将OS的不同功能分别设置在不同的层次中。通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行效率较高的模块(如时钟管理、进程调度和许多模块所共用的一些基本操作),都安排在紧密硬件的软件层次中,将它们常驻内存,即通常被称为OS内核。
这种安排方式的目的在于两方面:一是便于对这些软件进行保护,防止遭受其他应用程序的破坏;二是可以提高OS的运行效率。
内核是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序。
一些与硬件关联较紧密的模块,如时钟管理、中断管理、设备驱动等处于操作系统的最底层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。
内核是计算机上配置的底层软件,是计算机功能的延伸。主要包括四个方面。
时钟管理:在计算机的各种部件中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。系统管理的方方面面无不依赖于时钟。
中断机制:中断机制是操作系统各项操作的基础。如键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。
原语:原语具有的特点,处于操作系统的最底层,是最接近硬件的部分;这些程序的运行具有原子性,其操作只能一气呵成(主要从系统安全性和便于管理考虑);这些程序的运行时间都较短,而且调用频繁。定义原语的直接方法就是关闭中断(关中断),让其所有动作不可分割地完成后再打开中断(开中断)。在核心态下执行,常驻内存。
系统控制的数据结构及处理:系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有一下三种:进程管理、存储器管理和设备管理。
典型的大内核/宏内核/单内核 操作系统: Linux、UNIX
典型的 微内核 操作系统: Windows NT
微内核OS结构相对宏内核而言,宏内核指OS初期所采用,所有服务都在同个地址空间运行。
微内核操作系统的基本概念
在单计算机环境下,大多也采用基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器。
基本概念:
1)足够小的内核
2)基于客户/服务器模式
3)应用“机制与策略分离”原理
机制是指实现某一功能的具体执行机构。策略是在机制的基础上借助于某些参数和算法来实现该功能的优化或达到不同的功能目标。通常将机制放在OS的微内核中。
现在一般都采用“机制与策略分离”原理,将机制部分以及与硬件紧密相关的部分放入微内核中。
4)采用面向对象技术
面向对象技术可以用来编写操作系统
微内核的基本功能
1)进程(线程)管理
确定进程优先级,切换调度进程之间的通信。
2)低级存储器管理
逻辑地址转换为物理地址。
3)中断和陷入处理
捕获发送消息给服务器。
微内核操作系统的优点
1)提高了系统的可扩展性,各服务器彼此独立
2)增强了系统的可靠性
当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。
3)可移植性
所有与特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其他绝大部分——各种服务器,均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。(内核小,修改内核工作量小)
4)提供了对分布式系统的支持
由于在微内核OS中,客户和服务器之间、服务器和服务器之间的通信采用消息传递通信机制,致使微内核OS能很好地支持分布式系统和网络系统。
5)融入了面向对象技术。
微内核操作系统存在的问题
运行效率低。主要原因是,在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换(进程切换)。
微内核的服务比较少,所以它较大内核比较稳定,但最大的问题就是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。为了改善运行效率,可以重新把一些常用的操作系统基本功能由服务器移入微内核中。
网友评论