宏内核与微内核

目录

进程间通信

安全与稳定

I/O通信

可扩展性和可移植性


这是小文章分享,所有的中文都是机翻()

可以看看:http://web.cs.wpi.edu/~cs3013/c12/Papers/Roch_Microkernels.pdf

大致来说,操作系统本身由两部分组成:内核空间(特权模式)和用户空间(非特权模式)。 对于宏内核:在内核空间中包含所有基本服务有三大缺点:内核大小太大、缺乏可扩展性和可维护性差 为了克服这些可扩展性和可维护性的限制,微内核的想法出现在20世纪80年代末。 微内核不再是一个系统服务块,而是代表了几个基本的抽象和基元,用于控制进程之间以及进程与底层硬件之间的通信。微内核领域的研究表明,创建混合内核1不是最好的解决方案,而是一个纯微内核,它必须非常小。如此之小,以至于它可以作为一个整体放入处理器的一级缓存中。像L4这样的第二代µ内核经过了高度优化,不仅涉及处理器系列,还涉及处理器本身,这带来了非常好的I/O性能

进程间通信

进程是指程序在内存中的表示。它可能由更小的、程序员定义的部分规模的“线程”组成。线程实际上允许并行执行程序的不同部分。线程是可执行代码的最小单元。一个进程可以由几个线程组成。 进程间通信(IPC)最早的概念被称为信号。套接字的所有者,即绑定到套接字的进程,也称为服务器,而其他进程称为客户端。 一个比套接字更强大的系统是消息队列。消息队列作为fifo队列构建,用于存储其他进程发送的所有传入消息,并根据优先级对其进行排序。一个进程可以有多个消息队列,每个消息队列负责不同类型的消息。当单片内核使用信号和套接字来确保进程通信时,微内核方法使用消息队列。他保证了系统的所有部分是都是信息可交换的 单片内核实现了内核空间中内存管理所需的一切。这包括分配策略、虚拟内存管理和页面置换算法 第一代微内核将内存管理委托给用户空间,仅控制基本访问权限。其中一个服务器负责管理页面故障并保留新内存。每次出现页面错误,请求都必须通过内核到达寻呼机。寻呼机必须进入特权模式才能访问内存并返回到用户模式。然后它将结果发送回触发进程(再次通过内核)。处理页面故障或保留新内存页面的整个过程是乏味和耗时的。 微内核在启动时将整个系统内存保留给一个进程,即基本系统进程,该进程(像其他进程一样)驻留在用户空间中。如果一个进程需要内存,他不必再通过内核,而是直接询问基本系统进程。

安全与稳定

随着多任务(和多线程)的引入,出现了新的问题,涉及内存和进程的隔离。这些问题包括竞争条件、内存保护和系统安全本身等问题。内核必须能够保证,在进程出现故障的情况下,系统的性能不会受到影响。如果我们谈论在用户空间中运行的进程,这或多或少是一项简单的任务。但是,如果进程在内核内部崩溃,会发生什么呢?由于系统进程的“硬接线”以及由此产生的对单片方法的依赖性,可以预见其他进程也会崩溃,导致系统范围内的停机。 将系统进程排除在内核空间之外是解决这些问题的一种方法。真正的微内核的另一个论点是它的代码大小。确保小内核的正确性比确保大内核更容易。这样一来,用这种方法更容易解决稳定性问题。

I/O通信

单片内核(以及大多数第一代微内核)在内核空间内运行设备驱动程序。引入所谓模块的概念是为了实现更多的独立性和与内核的分离。一个模块表示驱动程序的(部分),并且在运行时不可加载。 微内核方法不直接处理I/O通信。它只保证了沟通。微内核将来自或到硬件的请求作为消息重定向到用户空间中的服务器。如果硬件触发了中断,微内核会向设备驱动程序服务程序发送一条消息告知之,并且对此没有任何操作

可扩展性和可移植性

对于微内核来说,不稳定性是最突出的事实。除了大小之外,它是与单一内核最大的区别之一 微内核保持与机器无关,并且可以很容易地移植。不幸的是,这种方法阻止了那些微内核实现必要的性能和灵活性。[2] 显示,在内核和处理器之间引入这样一层有几个含义:i)这样的微内核不能利用特定硬件。ii)它不能采取预防措施来规避或避免特定硬件的性能问题。iii)微内核形成操作系统的最底层。因此,即使是微内核内部使用的算法及其内部概念也极为依赖处理器。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值