分层结构是一种系统结构,其中操作系统的不同服务被分成不同的层,每一层都有一个特定的明确定义的任务来执行。它的创建是为了改进预先存在的结构,如整体结构 (UNIX) 和简单结构 (MS-DOS)。
示例 – Windows NT 操作系统使用这种分层方法作为其中的一部分。
设计分析:
如图所示,整个操作系统分为几个层(从 0 到 n )。每一层都必须有自己的特定函数来执行。在层的实现中有一些规则如下。
- 最外层必须是用户界面层。
- 最内层必须是硬件层。
- 一个特定的层可以访问它下面的所有层,但它不能访问它上面的层。即第 n-1 层可以访问从 n-2 到 0 的所有层,但不能访问第 n 层。
因此,如果用户层想要与硬件层交互,响应将通过从 n-1 到 1 的所有层。每一层必须被设计和实现,以便它只需要由它下面的层提供的服务.
优点 :
这种设计有几个优点:
- 模块化:
这种设计促进了模块化,因为每一层只执行它计划执行的任务。 - 轻松调试:
由于层是离散的,因此很容易调试。假设CPU调度层出现错误,开发者只能搜索该特定层进行调试,不像单体系统那样所有的服务都存在。 - 轻松更新:
在特定层中进行的修改不会影响其他层。 - 不能直接访问硬件:
硬件层是设计中存在的最内层。因此,用户可以使用硬件的服务,但不能直接修改或访问它,这与用户可以直接访问硬件的简单系统不同。 - 抽象:
每一层都关心自己的功能。所以其他层的功能和实现对它来说是抽象的。
缺点:
尽管该系统与 Monolithic 和 Simple 设计相比有几个优点,但也存在以下一些缺点。
- 复杂而仔细的实施:
由于一个层可以访问其下层的服务,所以层的安排必须小心。例如,后备存储层使用内存管理层的服务。所以它必须保持在内存管理层之下。因此,强大的模块化带来了复杂的实现。 - 执行速度较慢:
如果一个层想要与另一层交互,它会发送一个请求,该请求必须穿过两个交互层之间存在的所有层。因此,它增加了响应时间,与比这更快的单片系统不同。因此,层数的增加可能会导致非常低效的设计。