- 操作系统教程
- OS - 首页
- OS - 需求
- OS - 概述
- OS - 历史
- OS - 组件
- OS - 结构
- OS - 架构
- OS - 服务
- OS - 属性
- OS - 周转时间 & 等待时间
- OS 进程
- OS - 进程
- OS - 进程调度
- OS - 调度算法
- 先来先服务 (FCFS) 调度算法
- 最短作业优先 (SJF) 调度算法
- 轮询 (Round Robin) 调度算法
- 最高响应比优先 (HRRN) 调度算法
- 优先级调度算法
- 多级队列调度
- 上下文切换
- 进程操作
- 彩票进程调度
- 预测突发时间 SJF 调度
- 竞争条件漏洞
- 临界区同步
- 互斥同步
- 进程控制块
- 进程间通信
- 抢占式和非抢占式调度
- OS 同步
- 进程同步
- OS 内存管理
- OS - 内存管理
- OS - 虚拟内存
- OS 存储管理
- OS - 文件系统
- OS 类型
- OS - 类型
- OS 其他
- OS - 多线程
- OS - I/O 硬件
- OS - I/O 软件
- OS - 安全
- OS - Linux
- 考试题库及答案
- 考试题库及答案
操作系统 - 架构
操作系统允许用户应用程序与系统硬件交互。由于操作系统是一个如此复杂的结构,其架构在其使用中起着重要的作用。操作系统架构的每个组件都应该有明确的输入、输出和功能定义。
重要术语
在操作系统架构中,我们有两个主要术语来定义操作系统的主要组件。
内核 (Kernel) − 内核是大多数操作系统架构实现中的核心组件。内核负责所有主要操作以及与硬件的交互。内核管理内存、处理器、输入/输出设备,并为应用程序提供与硬件组件交互的接口。
Shell (外壳) − Shell 是操作系统的接口。它可以是命令行接口或图形用户接口。用户使用 Shell 与操作系统交互。应用程序也可以使用 Shell 接口与底层操作系统交互。
系统软件 − 系统软件是与内核交互并提供安全管理、内存管理和其他低级活动接口的程序。
应用程序 − 应用程序软件/程序是用户与操作系统交互所使用的程序。例如,文字处理器用于创建文档并将其保存到文件系统中,记事本用于创建笔记等。
流行的架构
以下是操作系统架构的各种流行实现。
简单架构
单体架构
微内核架构
外核架构
分层架构
模块化架构
虚拟机架构
简单架构
许多操作系统具有相当简单的结构。它们最初是小型系统,后来迅速扩展到远超出其范围的程度。MS-DOS就是一个常见的例子。它最初的设计只是为了满足一小部分人的需求,并没有预料到它会如此流行。
一些操作系统具有简单而强大的架构,例如 MS-DOS。这将带来对计算机系统及其各种应用程序的更大控制。简单的架构允许程序员根据需要隐藏信息,并根据需要实现内部例程,而无需更改外部规范。
优点
以下是简单操作系统架构的优点。
易于开发 - 在简单的操作系统中,由于接口很少,开发很容易,尤其是在只需要提供有限功能的情况下。
性能更好 - 这样的系统由于层数少且直接与硬件交互,因此与其他类型的操作系统相比,性能更好。
缺点
以下是简单操作系统架构的缺点。
系统故障频繁 - 由于设计不完善,这样的系统不够健壮。如果一个程序失败,整个操作系统都会崩溃。因此,简单的操作系统中系统故障非常频繁。
可维护性差 - 由于操作系统的各个层紧密耦合,一层中的更改可能会严重影响其他层,并使代码随着时间的推移难以管理。
单体架构
在单体架构操作系统中,一个名为内核的中央代码段负责操作系统的全部主要操作。这些操作包括文件管理、内存管理、设备管理等等。内核是操作系统的核心组件,它向应用程序和系统程序提供操作系统的全部服务。
内核可以访问所有资源,并且充当应用程序和底层硬件之间的接口。单体内核架构促进了分时、多编程模型,并被用于旧的银行系统。
优点
以下是单体操作系统架构的优点。
易于开发 - 由于内核是唯一需要开发所有主要功能的层,因此设计和开发更容易。
性能 - 由于内核负责内存管理和其他操作,并且可以直接访问硬件,因此性能更好。
缺点
以下是单体操作系统架构的缺点。
容易崩溃 - 由于内核负责所有功能,如果一个功能失败,整个操作系统都会失败。
难以增强 - 在单体操作系统中,添加新服务而不影响其他服务非常困难。
微内核架构
与单体架构只有一个内核不同,在微内核中,我们有多个内核,每个内核都专门负责一项特定服务。每个微内核都是独立开发的,这使得系统更加稳定。如果一个内核失败,操作系统将继续使用其他内核的功能。
优点
以下是微内核操作系统架构的优点。
可靠且稳定 - 由于多个内核同时工作,操作系统失败的可能性非常小。如果一个功能出现故障,操作系统仍然可以使用稳定的内核提供其他功能。
可维护性 - 由于内核体积小,代码大小易于维护。可以增强微内核代码库而不会影响其他微内核代码库。
缺点
以下是微内核操作系统架构的缺点。
设计复杂 - 这种基于微内核的架构很难设计。
性能下降 - 与单体架构相比,多内核、多模块通信可能会影响性能。
外核架构
外核架构操作系统在麻省理工学院设计和开发。该设计的目标是保持内核大小最小,同时允许应用程序直接管理硬件资源。移除操作系统对硬件资源的抽象的目的,是为了使应用程序程序员能够编写高性能代码,而外核则处理其他操作。
优点
以下是外核操作系统架构的优点。
高性能 - 由于应用程序可以分配内存,因此设计良好的代码可以优化使用并提高性能。
应用程序控制 - 由于资源管理不是由操作系统来保证的,因此应用程序对系统资源有更多控制权,并且可以在系统资源上编写自定义操作。
缺点
以下是外核操作系统架构的缺点。
不可靠且不安全 - 由于安全性在应用程序级别,因此编写不当的代码可能会破坏系统。
设计复杂 - 外核设计复杂。
分层架构
在操作系统中实现模块化的一种方法是分层方法。在这种方法中,底层是硬件,最顶层是用户界面。
演示分层方法的图像如下:
从图像中可以看出,每一上层都建立在下层之上。所有层都对其上层隐藏了一些结构、操作等。
分层架构的一个问题是需要仔细定义每一层。这是必要的,因为上层只能使用其下层的功能。
优点
以下是分层操作系统架构的优点。
高度可定制 - 由于分层,每一层的实现都可以轻松定制。可以添加新功能而不会影响其他模块。
可验证性 - 由于模块化,每一层都可以轻松验证和调试。
缺点
以下是分层操作系统架构的缺点。
性能较低 - 与基本结构的操作系统相比,分层结构的操作系统性能较低。
设计复杂 - 每一层都需要仔细规划,因为每一层只与下层通信,因此需要良好的设计流程才能创建分层操作系统。
模块化架构
模块化架构操作系统的工作原理与单体架构类似,但设计更好。一个中央内核负责操作系统的全部主要操作。这个内核具有一组核心功能,其他服务作为模块在启动时或运行时动态加载到内核中。Sun Solaris OS 是模块化结构操作系统的示例之一。
优点
以下是模块化操作系统架构的优点。
高度可定制 - 由于模块化,每一模块的实现都可以轻松定制。可以添加新功能而不会影响其他模块。
可验证性 - 由于模块化,每一层都可以轻松验证和调试。
缺点
以下是模块化操作系统架构的缺点。
性能较低 - 与基本结构的操作系统相比,模块化架构的操作系统性能较低。
复杂的设计 - 每个模块都需要仔细规划,因为每个模块都与内核通信。需要设计一个通信 API 来促进通信。
虚拟机架构
在这种架构中,CPU、内存、硬盘等硬件被抽象成虚拟机。用户可以使用它们,并使用执行上下文实际配置它们。虚拟机占用大量的磁盘空间,需要进行配置。可以在一台物理机上创建多个虚拟机。
优点
以下是基于虚拟机的操作系统架构的优点。
高度可定制 - 由于是虚拟的,功能很容易访问,可以根据需要进行定制。
安全 - 由于是虚拟的,并且没有直接访问硬件,因此此类系统非常安全。
缺点
以下是基于虚拟机的操作系统架构的缺点。
性能较低 - 与模块化结构的操作系统相比,虚拟结构的操作系统性能较低。
复杂的设计 - 机器中的每个虚拟组件都需要仔细规划,因为每个组件都需要抽象底层硬件。