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