操作系统设计与实现 第一章 引言(四)

1.5 操作系统结构

从现在开始,观察操作系统的内部的组成结构。
五种结构分别是:整体结构、分层结构、虚拟机、外核和客户-服务器结构。

1.5.1 整体结构

最常用的组织方式,常被称为“一锅粥”,实际上就是“无结构”。

整个操作系统实际上就是一组函数的集合,其中每个函数在需要的时候可以去调用任何其他函数。系统中每个函数都有一个定义完好的接口,包括它的入口参数和返回值,而且相互之间的调用不受任何约束

操作系统提供的服务(系统调用)的请求过程是这样的:先将参数放入预先确定的地方,如寄存器或栈,然后执行一条特殊的陷阱指令,即访管程序调用指令或内核调用指令。

这条指令把CPU从用户态切换到内核态,并将控制权交给操作系统。

这里写图片描述

这种组织方式提出了操作系统的一种基本结构:

1. 一个主程序,用来调用被请求的服务例程。
2. 一组服务例程,用来实现相应的系统调用。
3. 一组工具函数,用来帮助服务例程的实现。

在这种模型中,每一个系统调用都由一个服务例程来完成。而工具函数则负责一些辅助性的工作,如从用户程序获取数据。

三层模型如图所示:

这里写图片描述

1.5.2 分层结构

把上图加以推广,即分层结构。把操作系统组织成一个层次结构,每一层都是在它下层软件的基础上构造起来的。

THE系统分为六层。如下图所示:
这里写图片描述

1.5.3 虚拟机

系统的核心是一个虚拟机监控程序,它在裸机上运行并具备多道程序功能。它向上层提供了若干台虚拟机,如图:
这里写图片描述

由于每台虚拟机都与裸机完全一样,所以在每台虚拟机上都可以运行任何一种操作系统。一般来说,在不同的虚拟机上运行的是不同的操作系统。

1.5.4 外核

在内核状态下运行的最底层软件是一个称为外核的程序,其任务是为虚拟机分配资源并确保资源的使用不会发生冲突。每台用户层的虚拟机可以运行它自己的操作系统,不同之处在于它们各自只能使用分配给它的那部分资源。

1.5.5 客户-服务器模型

现代操作系统的一个趋势是把代码移到更高层次的思想进一步发展,从操作系统中取出更多的东西,只留下一个最小的内核。通常的方式就是大多数操作系统功能由用户进程来实现。为了获取某项服务,用户进程(客户进程)将此请求发送给一个服务器进程,服务器进程随后完成此次操作并发送应答信息。

内核的全部工作就是处理客户与服务器之间的通信。操作系统被分割为很多部分。每一部分只处理一方面的功能,如文件服务、进城服务、终端服务或内存服务。这使得每一部分变得更小、更易于管理。

客户-服务器模型适用于分布式系统。
这里写图片描述

1.7 小结

免于口舌,直接上图
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值