这些操作系统的概念,保你没听过!(四)

简介: 大部分操作系统提供了特定的基础概念和抽象,例如进程、地址空间、文件等,它们是需要理解的核心内容。下面我们会简要介绍一些基本概念,为了说明这些概念,我们会不时的从 UNIX 中提出示例,相同的示例也会存在于其他系统中,我们后面会进行介绍。

微内核

在分层方式中,设计者要确定在哪里划分 内核-用户 的边界。传统上,所有的层都在内核中,但是这样做没有必要。事实上,尽可能减少内核态中功能可能是更好的做法。因为内核中的错误很难处理,一旦内核态中出错误会拖累整个系统。

所以,为了实现高可靠性,将操作系统划分成小的、层级之间能够更好定义的模块是很有必要的,只有一个模块 --- 微内核 --- 运行在内核态,其余模块可以作为普通用户进程运行。由于把每个设备驱动和文件系统分别作为普通用户进程,这些模块中的错误虽然会使这些模块崩溃,但是不会使整个系统死机。

MINIX 3 是微内核的代表作,它的具体结构如下

微信图片_20220412211036.jpg

在内核的外部,系统的构造有三层,它们都在用户态下运行,最底层是设备驱动器。由于它们都在用户态下运行,所以不能物理的访问 I/O 端口空间,也不能直接发出 I/O 命令。相反,为了能够对 I/O 设备编程,驱动器构建一个结构,指明哪个参数值写到哪个 I/O 端口,并声称一个内核调用,这样就完成了一次调用过程。

位于用户态的驱动程序上面是服务器层,包含有服务器,它们完成操作系统的多数工作。由一个或多个文件服务器管理着文件系统,进程管理器创建、销毁和管理进程。服务器中有一个特殊的服务器称为 再生服务器(reincarnation server),它的任务就是检查服务器和驱动程序的功能是否正确,一旦检查出来错误,它就会补上去,无需用户干预。这种方式使得系统具有可恢复性,并具有较高的可靠性。

微内核中的内核还具有一种 机制策略 分离的思想。比如系统调度,一个比较简单的调度算法是,对每个进程赋予一个优先级,并让内核执行具有最高优先级的进程。这里,内核机制就是寻找最高的优先级进程并运行。而策略(赋予进程优先级)可以在用户态中的进程完成。在这种模式中,策略和机制是分离的,从而使内核变得更小。

客户-服务器模式

微内核思想的策略是把进程划分为两类:服务器,每个服务器用来提供服务;客户端,使用这些服务。这个模式就是所谓的 客户-服务器模式。

客户-服务器模式会有两种载体,一种情况是一台计算机既是客户又是服务器,在这种方式下,操作系统会有某种优化;但是普遍情况下是客户端和服务器在不同的机器上,它们通过局域网或广域网连接。

微信图片_20220412211046.jpg

客户通过发送消息与服务器通信,客户端并不需要知道这些消息是在本地机器上处理,还是通过网络被送到远程机器上处理。对于客户端而言,这两种情形是一样的:都是发送请求并得到回应。

越来越多的系统,包括家里的 PC,都成为客户端,而在某地运行的大型机器则成为服务器。许多 web 就是以这种方式运行的。一台 PC 向某个服务器请求一个 Web 页面,服务器把 Web 页面返回给客户端,这就是典型的客服-服务器模式


往期精选

什么叫操作系统啊 | 战术后仰

对不起,学会这些知识后我飘了

你要问我应用层?我就和你扯扯扯

面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

震惊 | HTTP 在疫情期间把我吓得不敢出门了

你还在为 HTTP 的这些概念头疼吗?

文章参考:

《现代操作系统》第四版

https://baike.baidu.com/item/操作系统/192?fr=aladdin

《Modern Operating System》forth edition

http://faculty.cs.niu.edu/~hutchins/csci360/hchnotes/psw.htm

https://www.computerhope.com/jargon/c/clockcyc.htm

《B站-操作系统》

https://www.bilibili.com/video/av9555596?from=search&seid=8107077283516919308

https://en.wikipedia.org/wiki/System_call

http://c.biancheng.net/cpp/html/238.html

http://www.dossier-andreas.net/software_architecture/layers.html

            </div>
目录
相关文章
|
存储 Unix 数据处理
【操作系统】文件的结构和组织
【操作系统】文件的结构和组织
336 0
|
11天前
|
缓存 算法 安全
深入理解操作系统:虚拟内存管理的原理与实践
【4月更文挑战第8天】 在现代计算机系统的设计与实现中,虚拟内存管理是操作系统核心功能之一。通过抽象物理硬件的细节,提供给用户一个看似无限的地址空间,它允许多个进程独立运行,同时为系统提供必要的内存保护机制。本文将探讨虚拟内存的基本原理、关键组件以及它在操作系统中的实际应用,旨在为读者提供一个清晰的视角来理解这一复杂的技术概念,并讨论其对现代计算环境的重要性和影响。
20 0
|
2月前
|
算法 固态存储 调度
操作系统:磁盘组织与管理
操作系统:磁盘组织与管理
|
6月前
|
安全 Unix Linux
《计算机系统与网络安全》 第八章 操作系统安全基础
《计算机系统与网络安全》 第八章 操作系统安全基础
77 0
|
7月前
|
人工智能 JavaScript 前端开发
「操作系统」1. 基础
「操作系统」1. 基础
|
4月前
|
人机交互 iOS开发 MacOS
【操作系统】—操作系统的发展与分类
【操作系统】—操作系统的发展与分类
|
4月前
|
调度 Windows
【操作系统】—操作系统的概念 目标和功能
【操作系统】—操作系统的概念 目标和功能
|
监控 安全 网络协议
操作系统安全配置制度
操作系统安全配置制度
177 0
|
算法 人机交互
【操作系统】1.2 操作系统的发展与分类
【操作系统】1.2 操作系统的发展与分类
【操作系统】1.2 操作系统的发展与分类
|
调度 C语言 Python
【操作系统】1.1.1 操作系统的概念、目标和功能
【操作系统】1.1.1 操作系统的概念、目标和功能
【操作系统】1.1.1 操作系统的概念、目标和功能