操作系统笔记_操作系统结构

单体系统

全部操作系统在内核态中以单一程序的方式运行,整个操作系统以过程集合的方式编写,链接成一个大型可执行的二进制程序。

AK8iOx.png

结构模型

  • 主过程:处理服务过程请求
  • 服务过程:执行系统调用
  • 实用过程:辅助服务过程

这些过程可以不受限制地彼此调用,同时也常常导致出现一个笨拙和难以理解的系统。

层次式系统

将单体结构的系统进一步通用化,就变成一个层次式结构的操作系统,它的上层软件都是在下一层软件的基础之上构建的。

AKJ2O1.png

上图所示为按此模型构造的第一个操作系统,该系统分为六层,每一层通用化,而不必考虑其他层次的细节。比如,用户程序不用考虑进程,内存,控制台等细节。

实际上,THE 分层方案只是为设计提供了一些方便,因为该系统的各个部分仍然被链接成了完整的单个目标程序。

MULTICS 系统中采用了更进一步的通用层次化概念,它由许多同心环构造而成,内层环比外层环有更高的级别,这种环形机制在运行中是实际存在的,而且是由硬件实现的,并且易于扩展。

微内核

在分层方式中,设计者要确定在哪里划分内核-用户边界。尽可能减少内核态中的功能是一种较好的做法,因为内核中的错误会快速拖累系统。

微内核设计的思想是,为了实现高可靠性,将操作系统划分成小的,良好定义的模块,只有其中一个模块–微内核,运行在内核态上,其余模块则作为普通用户进程运行。

AKdEJf.png

系统对每个进程的权限有着许多限制,这些限制是让每个驱动和服务器只拥有完成其工作所需要的权限,别无其他,这样极大地限制了故障部件可能造成的危害。

内核中的机制策略分离原则:一个比较简单的调度算法是,对每一个进程赋予一个优先级,并让内核执行在具有最高优先级进程中可以运行的某个进程。这里的机制就是寻找最高优先级的程序并运行之,而策略则是赋予进程优先级,可以由用户态中的进程完成。

客户机-服务器模式

一个微内核思想的略微变体是将进程划分为两类:服务器和客户端。

  • 服务器:每个服务器提供某种服务
  • 客户端:使用这些服务

这个模式的本质是存在服务器进程和客户端进程。

AKgkuV.png

许多 web 就是以这个方式运行的,一台 pc 机向服务器请求一个资源,服务器返回资源。

虚拟机

虚拟机不是那种具有文件等优良特征的扩展计算机,与之相反,它们仅仅是裸机硬件的精确复制品。它包含了内核态/用户态,I/O功能,中断以及其他真实硬件所应该具有的全部内容。

当一个虚拟机执行系统调用时,该调用被陷入到其虚拟机的操作系统上,然后虚拟机发出普通的硬件 I/O 指令读出虚拟磁盘或其他需要执行的调用,这些指令由宿主机陷入。

外核

外核在内核态中运行,它的任务是为虚拟机分配资源,并检查试图使用这些资源的企图。

外核机制的优点是减少了映像层,在其他设计中,每个虚拟机认为它有自己的磁盘,其盘块从 0 到最大编号,而虚拟机监控程序必须维护一张表格以重映像磁盘地址,有了外核则不需要了。外核只需记录以及分给各个虚拟机的相关资源即可,保持多个虚拟机不发生冲突。