操作系统结构

操作系统结构

概述

操作系统是一种设计,使用户应用程序能够与机器的硬件进行通信。操作系统应该非常小心地构建,因为它是如此复杂的结构,应该简单易用和修改。部分开发操作系统是实现这一目标的简单方法。每个组件都需要具有独特的输入、输出和功能。

本文讨论了许多实现操作系统的结构,如下所列,以及它们的工作原理和原因。它还定义了操作系统的结构。

  • 简单结构
  • 单内核结构
  • 分层结构
  • 微内核结构
  • Exo-Kernel 结构
  • 虚拟机

什么是操作系统结构?

由于操作系统具有复杂的结构,我们希望有清晰的结构来让我们将操作系统应用到我们的特定需求中。就像我们将大问题分解成更小、更易于管理的子问题一样,分开创建操作系统更容易。每个部分也是操作系统的一部分。操作系统结构可以被认为是在内核中连接和整合各种操作系统组件的策略。如下所述,使用许多类型的结构来实现操作系统:

简单结构

这是最简单的操作系统结构,但缺乏定义,仅适用于小型和受限制的系统。由于此结构中的接口和功能程度已明确定义,因此程序可以访问 I/O 例程,这可能会导致未经授权的 I/O 过程。

MS-DOS 操作系统使用此组织结构:

  • MS-DOS 操作系统由四个层次组成,每个层次都有自己的功能。
  • 这些层包括 ROM BIOS 设备驱动程序、MS-DOS 设备驱动程序、应用程序和系统程序。
  • MS-DOS 操作系统从分层中受益,因为每个级别可以独立定义,并在必要时可以相互交互。
  • 如果系统按层构建,将更容易设计、管理和更新。因此,简单结构可用于构建较不复杂的限制系统。
  • 当用户程序失败时,整个操作系统就会崩溃。
  • 由于 MS-DOS 系统的抽象水平较低,程序和 I/O 过程对最终用户可见,因此给他们带来了未经授权的访问的可能性。

以下图示了简单结构中的层次结构:

操作系统结构

简单结构的优点:

  • 由于只有少量接口和级别,因此开发简单。
  • 由于硬件和应用程序之间的层数较少,因此具有更好的性能。

简单结构的缺点:

  • 如果只有一个用户程序出现故障,则整个操作系统会崩溃。
  • 由于各层之间相互连接并相互通信,因此没有抽象或数据隐藏。
  • 操作系统的操作对层可见,这可能导致数据篡改和系统故障。

单内核结构

单内核操作系统控制操作系统的所有方面,包括文件管理、内存管理、设备管理和运营操作。

计算机操作系统的核心被称为内核(OS)。内核为所有其他系统组件提供基本服务。操作系统和硬件使用它作为其主要接口。当操作系统集成到单个硬件中时,例如键盘或鼠标,内核可以直接访问其所有资源。

单内核操作系统通常被称为单内核。多种编程技术,如批处理和分时处理,增加了处理器的可用性。在操作系统之上工作,并完全掌握所有硬件的控制权下,单内核执行虚拟计算机的角色。这是一种旧的操作系统,在银行中使用,以执行像批处理和分时处理这样的简单任务,允许在不同终端上的众多用户访问操作系统。

以下图表表示单内核结构:

操作系统结构

单内核结构的优点:

  • 由于不需要分层,只有内核负责管理所有操作,因此易于设计和执行。
  • 由于内存管理、文件管理、进程调度等功能在同一地址区域实现,因此与其他系统相比,单内核运行速度相当快。利用相同的地址可加快并减少新进程地址分配所需的时间。

单内核结构的缺点:

  • 单内核的服务在地址空间中相互连接,彼此影响,因此如果其中任何一个出现故障,则整个系统也会出现故障。
  • 它不太适应变化。因此,启动新的服务很困难。

分层结构

在这种安排中,操作系统被分成不同的层或级别。第 0 层(最低层)包含硬件,第 1 层(最高层)包含用户界面(第 N 层)。这些层以分层结构进行组织,顶层层次结构利用底层层次结构的功能。

使用此方法将每个层次的功能分开处理,同时抽象也是一种选择。由于分层结构是分层次的,因此调试更简单,因此在检查上层之前,所有较低级别的层都已调试完成。因此,只需评估当前层,因为所有较低的层已经过审核。

下图显示了操作系统如何组织成层:

操作系统结构

分层结构的优点:

  • 由于每个层都有自己的功能,并且具有一定程度的抽象,因此工作职责得到了分离。
  • 由于先检查较低级别的层次,然后是顶层,因此调试更简单。

分层结构的缺点:

  • 由于分层,性能受到影响。
  • 层的构建需要仔细设计,因为上层只利用下层的能力。

微内核结构

使用微内核框架创建操作系统,该框架剥离了内核的任何不必要部分。这些可选的内核组件是通过系统和用户应用程序来实现的。因此,已经开发出了这些系统的名称为 Micro-Kernel。

每个微内核都是单独创建的,并与其他内核分开保留。因此,系统现在更加值得信赖和安全。如果一个微内核出现故障,则其余操作系统不受影响,继续正常工作。

下图显示了微内核操作系统结构:

操作系统结构

  • 微内核结构的优点:
    • 它使操作系统能够跨平台移植。
    • 由于每个微内核都是隔离的,因此它是可靠和安全的。
    • 微内核的减小尺寸可以进行成功的测试。
    • 即使一个组件或微内核出现故障,剩余的操作系统仍然不受影响并保持正常运行。
  • 微内核结构的缺点:
    • 增加了模块间通信,降低了系统的性能。
    • 系统的构建相对复杂。

Exokernel

在麻省理工学院创建了一个名为 Exokernel 的操作系统,旨在提供应用程序级别的硬件资源管理。Exokernel 架构的目标是通过分离资源管理和保护来实现应用程序特定的定制。由于其可操作性有限,因此 Exokernel 的大小趋向于最小化。

由于操作系统位于程序和实际硬件之间,它将始终影响开发在其上的应用程序的功能、性能和广度。通过拒绝操作系统必须提供抽象来支持应用程序的想法,Exokernel 操作系统试图解决这个问题。目标是尽可能减少对使用抽象的限制,同时允许他们在必要时自由地这样做。由于 Exokernel 架构的设计方式,一个单独的微小内核负责将所有硬件抽象移入不可靠的库操作系统中。Exokernel 不同于微内核和单内核的主要目标是防止强制抽象。

Exokernel 操作系统具有以下特征:

  • 支持增强的应用程序控制。
  • 分离管理和安全。
  • 安全地将抽象转移到不可靠的库操作系统。
  • 引出低级接口。
  • 库操作系统提供兼容性和可移植性。

Exokernel 结构的优点:

  • 提高应用程序的性能。
  • 准确的资源分配和撤销提高了硬件资源的有效利用。
  • 更容易测试和开发新的操作系统。
  • 每个用户空间程序都允许使用其自己定制的内存管理。

Exokernel 结构的缺点:

  • 一致性下降
  • Exokernel 接口具有复杂的架构。

虚拟机(VM)

虚拟机将我们个人计算机的硬件,包括 CPU、磁盘驱动器、RAM 和 NIC(网络接口卡),根据我们的需求抽象为各种不同的执行上下文,使我们产生每个执行环境都是单独的计算机的印象。VirtualBox 就是一个例子。

操作系统使用 CPU 调度和虚拟内存技术,让我们同时执行多个进程,同时给出每个进程都在使用单独的处理器和虚拟内存的印象。系统调用和文件系统是进程可以具有的额外功能的例子,而硬件无法提供这些额外功能。虚拟机方法只提供与最基本的硬件类似的接口,而不是提供这些额外功能。针对底层计算机系统,为每个进程提供了虚拟副本。

我们可以为各种原因开发虚拟机,所有这些原因都基本上与能够共享相同的底层硬件并同时支持各种执行环境,即各种操作系统相关。

虚拟机技术的基本问题在于磁盘系统。想象一下,如果实际机器只有三个磁盘驱动器,但需要承载七个虚拟机。显然,无法为每个虚拟机分配一个磁盘驱动器,因为创建虚拟机的程序需要大量的磁盘空间才能提供虚拟内存和 spooling。提供虚拟磁盘是解决方案。

结果是用户会得到自己的虚拟机。然后,他们可以使用安装在下面的计算机上的任何操作系统或软件程序。虚拟机软件负责将多个虚拟机同时编程到物理机器中;无需考虑任何用户支持软件。通过这种配置,可以将为多个用户构建交互式系统的挑战分成两个可管理的部分。

虚拟机的优点:

  • 由于每个虚拟机与所有其他虚拟机之间彼此隔离,因此不存在安全问题。
  • 虚拟机可以提供不同于实际计算机的指令集架构。
  • 可简化可用性、可访问性和恢复方便。

虚拟机的缺点:

  • 在主机计算机上同时运行多个虚拟机可能会对其中一个虚拟机产生不利影响,具体取决于工作负载。
  • 在硬件访问方面,虚拟计算机比物理计算机效率低。

结论

  • 操作系统使用户能够与计算机的硬件进行通信。操作系统用作安装和使用系统软件的基础。
  • 各种操作系统组件之间的互联可以定义为操作系统结构。
  • 操作系统被分为各种不同的结构类型:简单结构、单内核方法、分层方法、微内核、Exokernel 和虚拟机。
  • 每当这些方法或结构之一发生变化时,操作系统就会逐步变得更好。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程