OS 学习笔记 操作系统的体系结构

Posted 临风而眠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OS 学习笔记 操作系统的体系结构相关的知识,希望对你有一定的参考价值。

OS 学习笔记(5) 操作系统的体系结构

王道OS 1.4 操作系统的体系结构

文章目录

知识总览

绿色为2023考纲新增

分层结构

  • 分层法是将操作系统分为若干层,最底层(层0)为硬件,最高层(层N)为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)。
  • 分层法的优点:
    • 便于系统的调试和验证,简化了系统的设计和实现。第1层可先调试而无须考虑系统的其他部分,因为它只使用了基本硬件。第1层调试完且验证正确之后,就可以调试第2层,如此向上。如果在调试某层时发现错误,那么错误应在这一层上,这是因为它的低层都调试好了。
    • 易扩充和易维护。在系统中增加、修改或替换一层中的模块或整层时,只要不改变相应层间的接口,就不会影响其他层。
  • 分层法的缺点:
    • 合理定义各层比较困难。因为依赖关系固定后,往往就显得不够灵活。
    • 效率较差。操作系统每执行一个功能,通常要自上而下地穿越多层,各层之间都有相应的层间通信机制,这无疑增加了额外的开销,导致系统效率降低。

模块化

  • 模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能够通过接口进行通信。还可以进一步将各模块细分为若干具有一定功能的子模块,同样也规定好各子模块之间的接口。这种设计方法被称为模块-接口法。

  • 模块化的优点:

    • 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
    • 支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
    • 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
  • 模块化的缺点:

    • 模块间的接口定义未必合理、实用
    • 模块间相互依赖,更难调试和验证

操作系统的内核

  • 操作系统的功能可以分为内核功能和非内核功能

  • 时钟管理:利用时钟中断实现计时功能

  • 原语:一种特殊的程序,具有原子性(一气呵成,不可被中断)

  • 内核是操作系统最基本、最核心的部分

  • 实现操作系统内核功能的那些程序就是 内核程序

大内核 vs 微内核

  • 注意:

    • 操作系统内核需要运行在内核态
    • 操作系统的非内核功能运行在用户态
  • 一个情境:现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储管理、设备管理

    • 注意:状态转换的过程是有成本的,要消耗不少时间,频繁的状态转换会降低系统性能

  • 宏内核(大内核)也使用了"模块化"的设计思想

    • 优点

      • 性能高,内核内部各种功能都可以直接相互调用

        而微内核功能间互相调用需要通关消息传递的方式

    • 缺点

      • 内核庞大功能复杂,难以维护
      • 大内核中某个功能模块出错,就可能导致整个系统崩溃
  • 微内核只把中断、原语、进程通信等最核心的功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态

    • 优点
      • 内核小功能少、易于维护,内核可靠性高
      • 内核外的某个功能模块出错不会导致整个系统崩溃
    • 缺点
      • 性能低,需要频繁的切换用户态/核心态。用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递“来间接通信
      • 用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递“来间接通信

知识回顾与重要考点

Mermaid居然还能画甘特图

  • https://zhuanlan.zhihu.com/p/166668789
操作系统的体系结构 大内核 将操作系统的主要功能模块都作为系统内核,运行在核心态 优点:高性能 缺点:内核代码庞大,结构混乱,难以维护 微内核 只把最基本的功能保留在内核 优点:内核功能少,结构清晰,方便维护 缺点:需要频繁地在核心态和用户态之间切换,性能低
  • 典型的大内核/宏内核/单内核 操作系统: Linux、UNIX
  • 典型的 微内核 操作系统: Windows NT

外核

  • 不同于虚拟机克隆真实机器,另一种策略是对机器进行分区,给每个用户整个资源的一个子集。这样,某个虚拟机可能得到磁盘的0至1023盘块,而另一台虚拟机会得到磁盘的1024至2047块,等等。在底层中,一种称为外核(exokernel)的程序在内核态中运行。它的任务是给虚机分配资源,并检查使用这些资源的企图,以确保没有机器会使用他人的资源。每个用户层的虚拟机可以运行自己的操作系统,但限制只能使用已经申请并且获得分配的那部分资源。
  • 外核机制的优点是减少了映射层。在其他的设计中,每个虚拟机都认为它有自己的磁盘,其盘块号从0到最大编号,这样虚拟机监控程序就必须维护一张表格以重映像磁盘地址(或其他资源),有了外核,这个重映射处理就个需要了。外核只需要记录已经分配给各个虚拟机的有关资源即可。这种方法还有一个优点,它将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突。

王道chap1 回顾

视频里举的太监、大臣和皇上的例子挺好玩的

英文表达、术语积累(《操作系统概念》第九版、ostep 《OPERATING SYSTEMS THREE EASY PIECES》)

  • Bibliographical Notes 参考书目注释
    • bibliographical adj.书目的;书目提要的;书志学的

以上是关于OS 学习笔记 操作系统的体系结构的主要内容,如果未能解决你的问题,请参考以下文章

数据结构入门学习笔记-1

这可能是最详细的 iOS 学习入门指南(含书目/文档/学习资料)

OS 学习笔记 操作系统引导

OS 学习笔记 操作系统的发展与分类

OS 学习笔记 操作系统的发展与分类

C++ 类