微内核操作系统

目录

1.微内核操作系统的基本概念

  1. 1) 足够小的内核
  2. 2) 基于客户/服务器模式
  3. 3) 应用“机制与策略分离”原理
  4. 4) 采用面向对象技术
2.微内核的基本功能

  1. 1) 进程(线程)管理
  2. 2) 低级存储器管理
  3. 3) 中断和陷入处理
3.微内核操作系统的优点

  1. 1) 提高了系统的可扩展性
  2. 2) 增强了系统的可靠性
  3. 3) 可移植性
  4. 4) 提供了对分布式系统的支持
  5. 5) 融入了面向对象技术
4.微内核操作系统存在的问题
1.微内核操作系统的基本概念

  1. 1) 足够小的内核
  2. 2) 基于客户/服务器模式
  3. 3) 应用“机制与策略分离”原理
  4. 4) 采用面向对象技术
2.微内核的基本功能

  1. 1) 进程(线程)管理
  2. 2) 低级存储器管理
  3. 3) 中断和陷入处理
3.微内核操作系统的优点

  1. 1) 提高了系统的可扩展性
  2. 2) 增强了系统的可靠性
  3. 3) 可移植性
  4. 4) 提供了对分布式系统的支持
  5. 5) 融入了面向对象技术
4.微内核操作系统存在的问题
展开
微内核操作系统(Microkernel Operating System)结构,是20世纪80年代后期发展起来的。由于它能有效地支持多处理机运行,故非常适用于分布式系统环境。当前比较流行的、能支持多处理机运行的操作系统,几乎全部都采用了微内核结构,如卡耐基梅隆大学研制的Mach OS,便属于微内核结构操作系统;又如当前广泛使用的Windows操作系统,也采用了微内核结构。

编辑本段

1.微内核操作系统的基本概念  为了提高操作系统的“正确性”、“灵活性”、“易维护性”和”可扩充性”,在进行现代操作系统结构设计时,即使在单处理机环境下,大多也采用基于客户/服务器模式(即C/S模式)的微内核结构,将操作系统划分为两大部分:微内核和多个服务器。至于什么是微内核操作系统结构,现在尚无一致公认的定义,但我们可以从下面四个方面,对微内核结构的操作系统进行描述。

1) 足够小的内核

  在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:   ① 实现与硬件紧密相关的处理;   ② 实现一些较基本的功能;   ③ 负责客户和服务器之间的通信。   它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。

2) 基于客户/服务器模式

  由于客户/服务器(Client/Server)模式,具有非常多的优点,故在单机微内核操作系统中几乎无一例外地都采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。例如用于提供对进程(线程)进行管理的进程(线程)服务器,提供虚拟存储器管理功能的虚拟存储器服务器,提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。

3) 应用“机制与策略分离”原理

  在现代操作系统的结构设计中,经常利用“机制与策略分离”的原理来构造OS结构。所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。通常,机制处于一个系统的基层,而策略则处于系统的高层。在传统的OS中,将机制放在OS的内核的较低层,把策略放在内核的较高层次中。而在微内核操作系统中,通常将机制放在OS的微内核中。正因为如此,才有可能将内核做得很小。

4) 采用面向对象技术

  操作系统是一个极其复杂的大型软件系统,我们不仅可以通过结构设计来分解操作系统的复杂度,还可以基于面向对象技术中的“抽象”和“隐蔽”原则控制系统的复杂性,再进一步利用“对象”、“封装”和“继承”等概念来确保操作系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等,并提高操作系统的设计速度。正因为面向对象技术能带来如此多的好处,故面向对象技术被广泛应用于现代操作系统的设计中。

编辑本段

2.微内核的基本功能

1) 进程(线程)管理

  大多数的微内核OS,对于进程管理功能的实现,都采用“机制与策略分离”的原理。例如,为实现进程(线程)调度功能,须在进程管理中设置一个或多个进程(线程)优先级队列;能将指定优先级进程(线程)从所在队列中取出,并将其投入执行。由于这一部分属于调度功能的机制部分,应将它放入微内核中。应如何确定每类用户(进程)的优先级,以及应如何修改它们的优先级等,都属于策略问题,可将它们放入微内核外的进程(线程)管理服务器中。

2) 低级存储器管理

  通常在微内核中,只配置最基本的低级存储器管理机制。如用于实现将用户空间的逻辑地址变换为内存空间的物理地址的页表机制和地址变换机制,这一部分是依赖于机器的,因此放入微内核。而实现虚拟存储器管理的策略,则包含应采取何种页面置换算法,采用何种内存分配与回收策略等,应将这部分放在微内核外的存储器管理服务器中去实现。

3) 中断和陷入处理

  大多数微内核操作系统都是将与硬件紧密相关的一小部分放入微内核中处理。此时微内核的主要功能,是捕获所发生的中断和陷入事件,并进行相应的前期处理。如进行中断现场保护,识别中断和陷入的类型,然后将有关事件的信息转换成消息后,把它发送给相关的服务器。由服务器根据中断或陷入的类型,调用相应的处理程序来进行后期处理。   在微内核OS中是将进程管理、存储器管理以及I/O管理这些功能一分为二,属于机制的很小一部分放入微内核中,另外绝大部分放在微内核外的各种服务器中来实现。事实上,其中大多数服务器都比微内核大。这进一步说明了为什么能在采用客户/服务器模式后,还能把微内核做得很小的原因。

编辑本段

3.微内核操作系统的优点

1) 提高了系统的可扩展性

  由于微内核OS的许多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核OS只须在相应的服务器中增加新的功能,或再增加一个专门的服务器。与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统。

2) 增强了系统的可靠性

  这一方面是由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其它服务器。

3) 可移植性

  随着硬件的快速发展,出现了各种各样的硬件平台,作为一个好的操作系统,必须具备可移植性,使其能较容易地运行在不同的计算机硬件平台上。在微内核结构的操作系统中,所有与特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其它绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。

4) 提供了对分布式系统的支持

  由于在微内核OS中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核OS能很好地支持分布式系统和网络系统。事实上,只要在分布式系统中赋予所有进程和服务器惟一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微内核便可利用系统映射表,将消息发往目标,而无论目标是驻留在哪台机器上。

5) 融入了面向对象技术

  在设计微内核OS时,采用了面向对象的技术,其中的“封装”,“继承”,“对象类”和“多态性”,以及在对象之间采用消息传递机制等,都十分有利于提高系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等,而且还能显著地减少开发系统所付出的开销。

编辑本段

4.微内核操作系统存在的问题  应当指出,在微内核OS中,由于采用了非常小的内核,以及客户/服务器模式和消息传递机制,这些虽给微内核OS带来了许多优点,但由此也使微内核OS存在着潜在的缺点。其中最主要的是,较之早期OS,微内核OS的运行效率有所降低。   效率降低的最主要的原因是,在完成一次客户对OS提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式及上下文的多次切换。然而,在早期的OS中,用户进程在请求取得OS服务时,一般只需进行两次上下文的切换:一次是在执行系统调用后,由用户态转向系统态时;另一次是在系统完成用户请求的服务后,由系统态返回用户态时。在微内核OS中,由于客户和服务器及服务器和服务器之间的通信,都需通过微内核,致使同样的服务请求至少需要进行四次上下文切换。第一次是发生在客户发送请求消息给内核,以请求取得某服务器特定的服务时;第二次是发生在由内核把客户的请求消息发往服务器时;第三次是当服务器完成客户请求后,把响应消息发送到内核时;第四次是在内核将响应消息发送给客户时。   实际情况是往往还会引起更多的上下文切换。例如,当某个服务器自身尚无能力完成客户请求,而需要其它服务器的帮助时,其中的文件服务器还需要磁盘服务器的帮助,这时就需要进行八次上下文的切换。[1]

参考资料
  • 1

    《计算机操作系统》(第三版)西安电子科技大学出版社

转载于:https://www.cnblogs.com/heartstill/archive/2010/09/17/1829594.html

考系统架构设计师必看--微内核操作系统相关推荐

  1. 考系统架构设计师必看--《软件工程》网页教程

    http://wsjx.mnu.cn/learning/web_course/software/ 转载于:https://www.cnblogs.com/heartstill/archive/2010 ...

  2. 【软考系统架构设计师】第八章 Web架构(知识点必知必会)

    [软考系统架构设计师]第八章 Web架构(知识点必知必会) 第八章 Web架构(知识点必知必会) [软考系统架构设计师]第八章 Web架构(知识点必知必会) 一. 负载均衡与集群技术 1)什么是负载均 ...

  3. 【软考系统架构设计师】知识点必知必会系列汇总

    [软考系统架构设计师]知识点必知必会系列汇总 章节号 章节名 链接 第一章 安全性和保密性设计 https://blog.csdn.net/Last_Impression/article/detail ...

  4. 【软考系统架构设计师】2009年下系统架构师综合知识历年真题

    [软考系统架构设计师]2009年下系统架构师综合知识历年真题 2009年下系统架构师综合知识历年真题 [软考系统架构设计师]2009年下系统架构师综合知识历年真题 [2009下架构真题第01题:绿色] ...

  5. 【软考系统架构设计师】2017下系统架构师综合知识历年真题

    [软考系统架构设计师]2017下系统架构师综合知识历年真题 [2017下架构真题第01题:绿色] 01.某计算机系统采用5级流水线结构执行指令,设每条指令的执行由取指令(2Δt).分析指令(1Δt). ...

  6. 2022下半年《软考-系统架构设计师》备考经验分享

    前言 我参加了2022年11月份的<软考-系统架构设计师>考试,在一个多月的备考之中我总结了一些学习经验和答题技巧,现毫无保留的分享给大家,希望对报考的同学们有所帮助.彩蛋:关注我的公众号 ...

  7. 视频教程-2020年软考系统架构设计师-上午历年真题解析视频培训课程-软考

    2020年软考系统架构设计师-上午历年真题解析视频培训课程 河北师范大学软件学院优秀讲师,项目经理资质,担任操作系统原理.软件工程.项目管理等课程教学工作.参与十个以上百万级软件项目管理及系统设计工作 ...

  8. 【软考系统架构设计师】2021年下半年系统架构设计师考后心得

    [软考系统架构设计师]2021年下半年系统架构设计师考后心得 [软考系统架构设计师]2021年下半年系统架构设计师考后心得 [软考系统架构设计师]2021年下半年系统架构设计师考后心得 前言 第一部分 ...

  9. 【软考系统架构设计师】计算机组成原理与体系结构章节习题集

    [软考系统架构设计师]计算机组成原理与体系结构章节习题集 [计算机组成原理章节习题集第01题:红色] 01.RISC指令系统的特点包括() ①指令数量少 ②寻址方式多 ③指令格式种类少 ④指令长度固定 ...

最新文章

  1. 归纳苹果,Facebook大规模部署的Spark-用户界面详细执行操作。
  2. SQL Server查询性能优化——堆表、碎片与索引(一)
  3. Dell R740服务器添加GPU卡
  4. 全志代码中的bug之2
  5. [渝粤教育] 扬州工业职业技术学院 微言品语文 参考 资料
  6. 当我们谈AI时,到底该谈什么?
  7. android 分析so崩溃,分析libunity.so Release崩溃
  8. IDEA设置生成带注释的getter和setter解决方案 (图文教程)
  9. 2020中国年度AI评选结果揭晓!领航企业、商业人物、创新产品……AI落地最佳参考就在这里
  10. 线程和进程有什么区别(简单介绍)
  11. 过VMP加壳程序的自效验
  12. 毕业设计基于SpringBoot框架的作业查重系统
  13. Cortex-M3 (NXP LPC1788)之IIS控制器
  14. Linux复制文件内容到另一个文件
  15. ROS2与C++入门教程-进程内(intra_process)话题发布和订阅演示2
  16. Excel怎么快速删除隐藏区域
  17. 青客公寓挂牌房源分城市爬取
  18. 金山卫士界面源码解读及界面库分离(4)
  19. 今日头条校招真题——头条校招
  20. 计算机英语中文谐音,翻译成中文的英文歌 英文歌用中文谐音唱

热门文章

  1. C++ 判断某个变量是某一种类型
  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY4-决策树
  3. php 长文本_php字符串太长怎么办
  4. 网络营销专员浅析如何以低成本高获取实现网络营销?
  5. 网络推广外包——网络推广外包专员面对外链发布更注重细节
  6. 修改aconda镜像服务器,Jupyter安装链接aconda的实现方法
  7. html制作滚动游戏,HTML标签marquee实现滚动效果的简单方法(必看)
  8. 统计分析与spss的应用第五版数据_#统计分析与SPSS应用# 4.1.3 SPSS频数分析的扩展功能...
  9. body添加代码 js_hexo 博客添加评论和阅读量
  10. Kotlin学习 PART 3:类,对象和接口