当前位置:文档之家› 什么是微内核

什么是微内核

什么是微内核
什么是微内核

什么是微内核

贴出者为jackyhong

jackyhong写著"

下面是我摘录《linux内核注释》的一部分:

Linux大部分都是单内核的

操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。

按照类似封装的形式,这些术语定义如下:

l 微内核(Microkernel kernel)――在微内核中,大部分内核都作为独立的进程在特

权状态下运行,它们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,如果在设计中有一个系统调用模块,那么就必然有一个相应的进程来接收系

统调用,并和能够执行系统调用的其它进程(或模块)通讯以完成所需任务。

在这些设计中,微内核部分经常只不过是一个消息转发站:当系统调用模块要给文件系

统模块发送消息时,消息直接通过内核转发。这种方式有助于实现模块间的隔离。(某

些时候,模块也可以直接给其它模块传递消息。)在一些微内核的设计中,更多的功能

,如I/O等,也都被封装在内核中了。但是最根本的思想还是要保持微内核尽量小,这样只需要把微内核本身进行移植就可以完成将整个内核移植到新的平台上。其它模块都只

依赖于微内核或其它模块,并不直接直接依赖硬件。

微内核设计的一个优点是在不影响系统其它部分的情况下,用更高效的实现代替现有文

件系统模块的工作将会更加容易。我们甚至可以在系统运行时将开发出的新系统模块或

者需要替换现有模块的模块直接而且迅速的加入系统。另外一个优点是不需要的模块将

不会被加载到内存中,因此微内核就可以更有效的利用内存。

l 单内核(Monolithic kernel)――单内核是一个很大的进程。它的内部又可以被分为

若干模块(或者是层次或其它)。但是在运行的时候,它是一个独立的二进制大映象。

其模块间的通讯是通过直接调用其它模块中的函数实现的,而不是消息传递。

单内核的支持者声称微内核的消息传递开销引起了效率的损失。微内核的支持者则认为

因此而增加的内核设计的灵活性和可维护性可以弥补任何损失。

我并不想讨论这些问题,但必须说明非常有趣的一点是,这种争论经常会令人想到前几

年CPU领域中RISC和CISC的斗争。现代的成功CPU设计中包含了所有这两种技术,就像Li

nux内核是微内核和单一内核的混合产物一样。Linux内核基本上是单一的,但是它并不

是一个纯粹的集成内核。前面一章所介绍的内核模块系统将微内核的许多优点引入到Li nux的单内核设计中。(顺便提一下,我考虑过一种有趣的情况,就是Linux的内核模块

系统可以将系统内核转化成为简单的不传递消息的微内核设计。虽然我并不赞成,但是

它仍然是一个有趣的想法。)

为什么Linux必然是单内核的呢?一个方面是历史的原因:在Linus的观点看来,通过把内核以单一的方式进行组织并在最初始的空间中运行是相当容易的事情。这种决策避免

了有关消息传递体系结构,计算模块装载方式等方面的相关工作。(内核模块系统在随

后的几年中又进行了不断地改进。)

另外一个原因是充足的开发时间的结果。Linux既没有开发时间的限制,也没有深受市场压力的发行进度。所有的限制只有并不过分的对内核的修改与扩充。内核的单一设计在内部实现了充分的模块化,在这种条件下的修改或增加都并不怎么困难。而且问题还在

于没有必要为了追求尚未证实的可维护性的微小增长而重写Linux的内核。(Linus曾多

次特别强调了如下的观点:为了这点利益而损耗速度是不值得的。)后面章节中的部分

内容将详细的重新考虑充足开发时间的效果。

如果Linux是纯微内核设计,那么向其它体系结构上的移植将会比较容易。实际上,有一些微内核,如Mach微内核,就已经成功的证明了这种可移植性的优点。实际的情况是,Linux内核的移植虽然不是很简单,但也绝不是不可能的:大约的数字是,向一个全新的体系结构上的典型的移植工作需要30,000到60,000行代码,再加上不到20,000行的驱动程序代码。(并不是所有的移植都需要新的驱动程序代码。)粗略的计算一下,我估计

一个典型的移植平均需要50,000行代码。这对于一个程序员或者最多一个程序小组来说是力所能及的,可以在一年之内完成。虽然这比微内核的移植需要更多的代码,但是Li nux的支持者将会提出,这样的Linux内核移植版本比微内核更能够有效的利用底层硬件,因而移植过程中的额外工作是能够从系统性能的提高上得到补偿的。

这种特殊设计的权衡也不是很轻松就可以达到的,单内核的实现策略公然违背了传统的看法,后者认为微内核是未来发展的趋势。但是由于单一模式(大部分情况下)在Linu x中运行状态良好,而且内核移植相对来说比较困难,但没有明显地阻碍程序员团体的工作,他们已经热情高涨地把内核成功的移植到了现存的大部分实际系统中,更不用说类似掌上型电脑的一些看起来很不实际的目标了。只要Linux的众多特点仍然值得移植,新的移植版本就会不断涌现。"

计算机操作系统(第四版)课后答案第一,二,三章

第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2.OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象 3.为什么说OS实现了对计算机资源的抽象? 答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 4.试说明推劢多道批处理系统形成和収展的主要劢力是什么? 答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。5.何谓脱机I/O和联机I/O? 答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。 6.试说明推劢分时系统形成和収展的主要劢力是什么? 答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 7.实现分时系统的关键问题是什么?应如何解决? 答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。解决方法:针对及时接收问题,可以在系统中设臵多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配臵缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。 8.为什么要引入实时OS? 答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。引入实时OS 是为了满足应用的需求,更好地满足实时控制领域和实时信息处理领域的需要。 9.什么是硬实时任务和软实时任务?试举例说明。 答:硬实时任务是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。举例来说,运载火箭的控制等。软实时任务是指它的截止时间并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大。举例:网页内计算机操作系统第三版答案 2 / 47 容的更新、火车售票系统。 10.试从交互性、及时性以及可靠性方面,将分时系统不实时系统迚行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 11.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。14.是什么原因使操作系统具有异步性特征? 答:操作系统的异步性体现在三个方面:一是进程的异步性,进程以人们不可预知的速度向前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。15.处理机管理有哪些主要功能?它们的主要任务是什么? 答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。进程同步:为多个进程(含线程)的运行进行协调。通信:用来实现在相互合作的进程之间的信息交换。处理机调度:(1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源(首选是分配内存)。(2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设臵运行现场,使进程投入执行。 16.内存管理有哪些主要功能?他们的主要任务是什么? 答:内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。内存分配:为每道程序分配内存。内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。计算机操作系统第三版答案 3 / 47 地址映射:将地址空间的逻辑地址

计算机操作系统(第三版-汤小丹等)课后习题答案(全)整理后

第一章操作系统引论 1.设计现代OS的主要目标是什么 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2.OS的作用可表现在哪几个方面 答:(1)OS作为用户与计算机硬件系统之间的接口;(2)OS作为计算机系统资源的管理者;(3)OS实现了对计算机资源的抽象。 3.为什么说OS实现了对计算机资源的抽象 答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 4.试说明推动多道批处理系统形成和发展的主要动力是什么 答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。 5.何谓脱机I/O和联机I/O 答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。 6.试说明推动分时系统形成和发展的主要动力是什么 答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 7.实现分时系统的关键问题是什么应如何解决 答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。

简述单内核操作系统及其优缺点

简述单内核操作系统及其优缺点 单内核也叫集中式操作系统。整个系统是一个大模块,可以被分为若干逻辑模块,即 处理器管理、存储器管理、设备管理和文件管理,其模块间的交互是通过直接调用其他模 块中的函数实现的。 优点: 单内核模型以提高系统执行效率为设计理念,因为整个系统是一个统一的内核,所以 其内部调用效率很高。 缺点: 单内核的缺点也正是由于其源代码是一个整体而造成的,通常各模块之间的界限并不 特别清晰,模块间的调用比较随意,所以进行系统修改或升级时,往往“牵一发而动全身”,导致工作量加大,使其难于维护。 补充:1.微内核操作系统及其优缺点 微内核是指把操作系统结构中的内存管理、设备管理、文件系统等高级服务功能尽可 能地从内核中分离出来,变成几个独立的非内核模块,而在内核只保留少量最基本的功能,使内核变得简洁可靠,因此叫微内核。 微内核实现的基础是操作系统理论层面的逻辑功能划分。几大功能模块在理论上是相 互独立的,形成比较明显的界限,其优点如下: · 充分的模块化,可独立更换任一模块而不会影响其他模块,从而方便第三方开发、设计模块。 · 未被使用的模块功能不必运行,因而能大幅度减少系统的内存需求。 · 具有很高的可移植性,理论上讲只需要单独对各微内核部分进行移植修改即可。 由于微内核的体积通常很小,而且互不影响,因此工作量很小。 不出:2.操作系统其它两种内核系统简述 外内核 外内核系统,也被称为纵向结构操作系统,是一种比较极端的设计方法。 外内核这种内核不提供任何硬件抽象操作,但是允许为内核增加额外的运行库,通过 这些运行库应用程序可以直接地或者接近直接地对硬件进行操作。它的设计理念是让用户

计算机操作系统(第四版)1-8章 课后答案(全)

第一章操作系统引论 1.设计现代OS的主要目标是什么?答:方便性,开放性,有效性,可扩充性 2.OS的作用可表现在哪几个方面?答:OS作为用户与计算机硬件系统之间的接口;OS作为计算机系统资的管理者;OS实现了对计算机资源的抽象。 3.为什么说操作系统实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层1/0设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。0s通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 4·说明推动分时系统形成和发展的主要动力是什么?答:主要动力是提高资源利用率和系统吞吐里,为了满足用户对人一机交互的需求和共享主机。 5.何谓脱机I/O和联机I/O?答:脱机1/0是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或一片上的数据或程序输入到殖带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而耽机1/0方式是指程序和数据的輸入输出都是在主机的直接控制下进行的。 6.试说明推动分时系统形成和发展的主要动力是什么?答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及寸接收并及时处理该命令,在用户能接受的时采内将结果返回给用户。解决方法:针对及时接收问题,可以在系统中设路多路卡,健主机能同时接收用户从各个终端上轮入的数据;为每个终端配路缓冲区,暂存用户捷入的命令或教据。针对反时处理问题,应便所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。 8.为什么要引入实时OS?答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。引入实时OS是为了满足应用的需求,熏好地满足实时控制领域和实时信息处涯领域的需要。 9.什么是硬实时任务和款实时任务?试举例说明。答:硬实时任务是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的结是。举例来说,运载火箭的控制等。软实时任务是指它的截止时间并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大。举例:网页内容的更新、火车售票系统。 10.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带未巨大的经济损失,甚至是灾难性后,,所以在实时系统中,往往都采取了

基于Linux内核定制X86平台的微操作系统(很完整详尽文章)

基于Linux内核定制X86平台的微操作系统摘要:1 0 前言2 0.1 Linux系统简介2 0.2 Linux的基本思想2 0.3 Linux内核2 0.4 Linux内核版本命名3 0.5 Linux文件系统3 0.6Linux内核引导4 0.7Linux系统组成4 1 平台的搭建4 1.1 硬件平台4 1.2 软件平台4 1.2.1 Ubuntu系统的下载4 1.2.2 Ubuntu系统的安装4 1.2.3 Ubuntu系统的配置4 2 Linux内核的编译5 2.1 内核的下载5 2.2 内核的定制5 2.3 内核的编译5 2.4 内核的制作6 3 BusyBox的编译6 3.1 BusyBox的下载6 3.2 BusyBox的配置6 3.3 BusyBox的编译7 4 Linux文件系统的制作7 4.1 文件系统的制作7 4.2 文件系统的配置9 4.3 文件系统的压缩7 5 Linux引导程序配置10 5.1 ISOLINUX的下载10 5.2 ISOLINUX的配置10 6 LinuxCD-ROM的制作10 7 Linux定制系统的运行11 7.1 VirtualBox下的运行11 7.2 U盘引导在X86平台下的运行12 8定制系统过程中的问题12 8.1 平台搭建中的问题12 8.2 内核编译中的问题12

8.3 BusyBox编译中的问题12 8.4 文件系统制作中的问题12 8.5 引导程序制作中的问题12 8.6 CD-ROM制作中的问题13 8.7 定制系统运行的问题13 参考13 基于Linux内核定制X86平台的微操作系统 王林强 (河南大学物理与电子学院通信专业,河南开封,475004) 摘要: Linux是一种自由和开放,用C语言和汇编语言写成,并符合POSIX标准的类Unix操作系统。并且由于其可定制、可裁剪的特性,不仅在桌面操作系统中有重要的地位,而且在手机、平板电脑、路由器和视频游戏控制台等嵌入式设备有其巨大的优势。 为了更好、更深入的了解及掌握Linux系统。本文详细的讲述并实践,如何从Linux内核源码,经过定制、裁剪、编译、制作文件系统、内核引导,iso光盘制作到最终完整的基于Linux内核定制的微操作系统。 通过基于Linux内核定制的微操作系统的制作,深入的理解Linux内核的工作原理、文件系统结构、内核引导等,从而精通嵌入式开发。 关键词: Linux;定制;嵌入式;微系统 An implementation of micro-operating system based on the x86 platform Linux kernel customization Wang Lin-qiang (School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China) Abstract: Linux is a free and open, and POSIX-compliant Unix-like operating system written in C and assembly language. And can be cut because of its customizable features, not only in the desktop o perating system in an important position, and its huge advantage in the embedded devices, mobile phones, tablet PCs, routers, and video game consoles. In order to better and deeper understanding of and master Linux system. This article tells in d etail and practice, from the Linux kernel source code has been customized, cutting, compiling, pro

一种超微内核嵌入式实时操作系统的设计

开发研究与设计技术 本栏目责任编辑:谢媛媛 1引言 嵌入式实时系统,一般指计算机以片级、板级或箱级埋藏在智能设备中的实时系统。这种系统中,内存空间一般较小,且没有可用的外存,程序放在有限的内存中(一般是固化在ROM或 FLASH等)。 随着实时应用领域的扩大,实时应用覆盖的范围也不断加大,从低端到高端都有应用的需求,这给现代实时操作系统(RTOS)的研究提出了新的要求与挑战。 传统嵌入式实时操作系统设计采用一体化、高效大内核结构的方法。系统功能集中在内核实现,内核向应用程序提供高效率的系统调用及良好的系统响应时间。传统设计方法设计的嵌入式实时操作系统固然有其好的一面,但与现在嵌入式实时操作系统需求相比仍有较大差距,主要表现在操作系统的可伸缩性、可移植性、对新型结构的硬件平台的支持及接口标准的开放性上。而且大内核结构的系统设计对功能的扩展往往造成内核修改牵一发而动全身。为满足现在实时操作系统的需求,同时兼顾嵌入式应用的特点,本文提出了一种基于对象的超微内核嵌入式实时操作系统的设计方法。我们采用面向对象的分析和设计技术,结合了微内核和层次式操作系统的特点,设计了一种超微内核的嵌入式实时操作系统,有效地解决了实时操作系统的可伸缩性、实时性、可移植性等问题,并具有信息隐藏、代码可重用等优点,使得嵌入式实时系统的软件开发方便和快捷。 2可伸缩性设计 现代RTOS应能支持多种实时应用的需求,用户希望开发的RTOS可方便配置,满足各种实时应用的需求,无论它们是高端的实时分布式应用(如银行业务),还是低端的强实时、深嵌入应用(如智能武器系统和工业控制系统等)。要求RTOS有良好的可伸缩性、可裁剪性和重用性。 在用面向对象的分析和设计技术来设计超微内核嵌入式实时操作系统,内核的可伸缩性设计以下三个方面来设计: (1)从操作系统中抽象出超微内核,且内核的大小可以根据用户的需要和具体运行环境来配置的。超微内核抽象层次高、高内聚、代码小,以对象的形式提供给内核其他的部分使用,内核对象高内聚、松耦合,使得内核的扩充变得非常容易,扩充新的类和对象,并不影响超微内核代码本身,从而为系统功能的扩展提供条 件。超微内核中的就绪任务表结构设计如图1。超微内核维护了用于系统管理的数据结构,当系统创建新的任务时,调用超微内核的方法动态创建任务控制块并挂接到超微内核中的就绪任务控制块;而且系统中任务的最大优先级和任务的优先级都是由用户指定,从而实现内核的大小可以由用户根据具体情况设定。 图1就绪任务表结构 (2)通过在编译时进行重新配置来实现静态扩展系统功能。在 编译时进行重新配置,通过省略一些用不到的系统成分,或者在特定接口下对提供不同权衡的实现做出选择,来针对特定工作负载进行定制。 (3)使用微内核的消息传递机制来实现动态扩展系统功能。实时应用的多样性,要求实时操作系统为应用提供多种服务,甚至一些现在没有,但将来可能需要的应用提供扩展支持。现代新型操作系统采用基于消息传送的微内核设计来实现系统的可伸缩性,这一方法同样适合实时嵌入式操作系统设计。微内核设计思想是将操作系统中不常用的系统调用移到核外服务器中实现,并且支持核外服务器的动态配置(加入/退出),微内核与核外服务器之间的联系通过消息传送来实现。微内核可使操作系统的功能扩展靠加入服务器来方便完成。 3实时性能设计 对于实时系统,一个重要的条件就是延迟有确定的上界,这样的系统属于确定性系统,是从系统论的观点讲的一个功能完整的设计,能够独立和外部世界交互,实现预期功能,包括实时硬件系统设计、实时操作系统设计、实时多任务设计三个部分。 对于实时操作系统来说,应满足的条件有如下几点:可强占式内核、可强占优先级、中断优先级、中断可嵌套、系统服务的优先级由请求该服务的任务的优先级来确定、优先级保护(优先级翻转保护)、中断延迟时间有固定上界、任务切换时间有固定上界、系统响应时间有固定上界等。 (下转第231页) 收稿日期:2006-10-31 作者简介:杨小明(1978-),男,助教,研究方向:嵌入式系统;陈晓华(1977-),男,助教,硕士,主要研究方向:嵌入式系统,数据库技术;邹晓(1981-),女,硕士研究生,研究方向:数据库技术,远程网络教育。 一种超微内核嵌入式实时操作系统的设计 杨小明1,陈晓华1,邹晓2 (1.湖州师范学院信息工程学院,浙江湖州313000;2.华东师范大学教育科学学院,上海200062) 摘要:本文提出了一种基于对象的超微内核嵌入式实时操作系统的设计方法。采用面向对象的分析和设计技术,结合了微内核和层 次式操作系统的特点,设计了一种超微内核的嵌入式实时操作系统,有效地解决了实时操作系统的可伸缩性、 实时性、可移植性等问题,并具有信息隐藏、代码可重用等优点,使得嵌入式实时系统的软件开发方便和快捷。 关键词:超微内核;嵌入式;实时操作系统;面向对象 中图分类号:TP316 文献标识码:A文章编号:1009-3044(2007)01-10171-01TheDesignofaNanokernelEmbeddedReal-TimeOperatingSystem YANGXiao-ming1,CHENXiao-hua1,ZOUXiao2 (1.SchoolofInformation&Engineering,HuzhouTeachers,Huzhou313000,China;2.SchoolofEducationScience,EastChinaNormalUniversity, Shanghai200062,China) Abstract:Inthispaper,wepresentadesignmethodofanobject-basednanokernelembeddedreal-timeoperatingsystem.Weuseobject-orientedanalysisanddesigntechnology,andcombinemicrokernelandlayeredoperatingsystemcharacteristics.Thedesigncanefficientlyresolvetheseproblemsofscalability,real-timebehaviorsandportingbehaviorsinthereal-timeoperatingsystem,andhasmanyadvantages,suchasin-formationhiding,codingreusing.Italsomakessoftwaredevelopmentmoreconvenientandrapidintheembeddedreal-timesystem. Keywords:nanokernel;embedded;real-timeoperating system;object-oriented

操作系统精髓与设计原理-第4章 线程_对称多处理和微内核

第四章线程、对称多处理和微内核 复习题: 4.1表3.5列出了在一个没有线程的操作系统中进程控制块的基本元素。对于多线程系统, 这些元素中那些可能属于线程控制块,那些可能属于进程控制块? 答:这对于不同的系统来说通常是不同的,但一般来说,进程是资源的所有者,而每个线程都有它自己的执行状态。关于表3.5中的每一项的一些结论如下:进程标识:进程必须被标识,而进程中的每一个线程也必须有自己的ID。处理器状态信息:这些信息通常只与进程有关。进程控制信息:调度和状态信息主要处于线程级;数据结构在两级都可出现;进程间通信和线程间通信都可以得到支持;特权在两级都可以存在;存储管理通常在进程级;资源信息通常也在进程级。 4.2请列出线程间的模式切换比进程间的模式切换开销更低的原因。 答:包含的状态信息更少。 4.3在进程概念中体现出的两个独立且无关的特点是什么? 答:资源所有权和调度/执行。 4.4给出在单用户多处理系统中使用线程的四个例子。 答:前台和后台操作,异步处理,加速执行和模块化程序结构。 4.5哪些资源通常被一个进程中的所有线程共享? 答:例如地址空间,文件资源,执行特权等。 4.6列出用户级线程优于内核级线程的三个优点。 答:1.由于所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核模式的特权,因此,进程不需要为了线程管理而切换到内核模式,这节省了在两种模式间进行切换(从用户模式到内核模式;从内核模式返回用户模式)的开销。2.调用可以是应用程序专用的。一个应用程序可能倾向于简单的轮询调度算法,而另一个应用程序可能倾向于基于优先级的调度算法。调度算法可以去适应应用程序,而不会扰乱底层的操作系统调度器。3.用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程。线程库是一组供所有应用程序共享的应用级软件包。 4.7列出用户级线程相对于内核级线程的两个缺点。 答:1.在典型的操作系统中,许多系统调用都会引起阻塞。因此,当用户级线程执行一个系统调用时,不仅这个线程会被阻塞,进程中的所有线程都会被阻塞。2.在纯粹的用户级进程策略中,一个多线程应用程序不能利用多处理技术。内核一次只把一个进程分配给一个处理器,因此一次进程中只能有一个线程可以执行。 4.8定义jacketing。 答:Jacketing通过调用一个应用级的I/O例程来检查I/O设备的状态,从而将一个产生阻塞的系统调用转化为一个不产生阻塞的系统调用。 4.9简单定义图4.8中列出的各种结构。 答:SIMD:一个机器指令控制许多处理部件步伐一致地同时执行。每个处理部件都有一个相关的数据存储空间,因此,每条指令由不同的处理器在不同的数据集合上执行。 MIMD:一组处理器同时在不同的数据集上执行不同的指令序列。主/从:操作系统内核总是在某个特定的处理器上运行,其他处理器只用于执行用户程序,还可能执行一些操作系统实用程序。SMP:内核可以在任何处理器上执行,并且通常是每个处理器从可用的进程或线程池中进行各自的调度工作。集群:每个处理器都有一个专用存储器,而且每个处理部件都是一个独立的计算机。 4.10列出SMP操作系统的主要设计问题。 答:同时的并发进程或线程,调度,同步,存储器管理,可靠性和容错。

微内核

微内核 1.简介 微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成,这些原语仅仅包括了建立一个系统必需的几个部分,如线程管理,地址空间和进程间通信等。 微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务用于完成操作系统中比较高级的操作,这样的设计使内核中最核心的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分。 微内核 在微内核结构中,操作系统的内核只需要提供最基本、最核心的一部分操作(比如创建和删除任务、内存管理、中断管理等)即可,而其他的管理程序(如文件系统、网络协议栈等)则尽可能的放在内核之外。这些外部程序可以独立运行,并对外部用户程序提供操作系统服务,服务之间使用进程间通信机制(IPC)进行交互,只在需要

内核的协助时,才通过一套接口对内核发出调用请求。 2.特点 在微内核结构中,操作系统的内核只需要提供最基本、最核心的一部分操作(比如创建和删除任务、内存管理、中断管理等)即可,而其他的管理程序(如文件系统、网络协议栈等)则尽可能的放在内核之外。这些外部程序可以独立运行,并对外部用户程序提供操作系统服务,服务之间使用进程间通信机制(IPC)进行交互,只在需要内核的协助时,才通过一套接口对内核发出调用请求。 3.优点 微内核系统的优点时操作系统具有良好的灵活性。它使得操作系统内部结构简单清晰。程序代码的维护非常之方便。但是也有不足之处。微内核系统由于核心态只实现了最基本的系统操作,这样内核以外的外部程序之间由于独立运行使得系统难以进行良好的整体优化。另外,进程间互相通信的开销也较单一内核系统要大许多。从整体上看,在当前的硬件条件下,微内核在效率上的损失小于其在结构上获得的收益,故而选取微内核成为操作系统的一大潮流。 https://www.doczj.com/doc/2816268611.html,/logs/6204606.html

计算机操作系统第四版课后习题参考答案完整版

计算机操作系统第四版课后习题参考答案 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2.OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象 3.为什么说OS实现了对计算机资源的抽象? 答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 4.试说明推劢多道批处理系统形成和収展的主要劢力是什么? 答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。 5.何谓脱机I/O和联机I/O? 答:脱机I/O是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。 6.试说明推劢分时系统形成和収展的主要劢力是什么? 答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 7.实现分时系统的关键问题是什么应如何解决 答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。解决方法:针对及时接收问题,可以在系统中设臵多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配臵缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。 8.为什么要引入实时OS? 答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。引入实时OS是为了满足应用的需求,更好地满足实时控制领域和实时信息处理领域的需要。 9.什么是硬实时任务和软实时任务?试举例说明。答:硬实时任务是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。举例来说,运载火箭的控制等。软实时任务是指它的截止时间并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大。举例:网页内计算机操作系统第三版答案2/47容的更新、火车售票系统。 10.试从交互性、及时性以及可靠性方面,将分时系统不实时系统迚行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 11.OS有哪几大特征其最基本的特征是什么 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 14.是什么原因使操作系统具有异步性特征? 答:操作系统的异步性体现在三个方面:一是进程的异步性,进程以人们不可预知的速度向前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。 15.处理机管理有哪些主要功能它们的主要任务是什么 答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。进程同步:为多个进程(含线程)的运行进行协调。通信:用来实现在相互合作的进程之间的信息交换。处理

微内核操作系统及L4 概述

微内核操作系统及L4概述 杰夫 jliu71@https://www.doczj.com/doc/2816268611.html, 摘要:本文是对微内核操作系统及L4的发展历程和主要功能的综述。本文还对微内核操作系统的优缺点及发展前景发表评论。 关键词:微内核,操作系统,L4 Abstract: This paper describes the history of microkernel-based operating systems, and the structure and main functions of L4. It also discusses the pros and cons of microkernel systems and their prospect of actual deployments in the industry. Keywords: microkernel, operating system, L4 1. Introduction 微内核(microkernel)并非是一个新的概念,这个名词至少在七十年代初就有了。一般认为,他的发明权属于Hansen [Han70] 和Wulf [Wul74]. 但是在这一名词出现之前已经有人使用类似的想法设计计算机操作系统了。 早期的操作系统绝大多数是Monolithic Kernel, 意思是整个操作系统 - 包括Scheduling (调度), File system (文件系统), Networking (网络), Device driver (设备驱动程序), Memory management (存储管理), Paging(存储页面管理) – 都在内核中完成。一直到现在广泛应用的操作系统,如UNIX,Linux,和Windows还大都是monolithic kernel操作系统。但随着操作系统变得越来越复杂(现代操作系统的内核有一两百万行C程序是很常见的事情),把所有这些功能都放在内核中使设计难度迅速增加。 微内核是一个与Monolithic Kernel相反的设计理念。它的目的是使内核缩到最小,把所有可能的功能模块移出内核。理想情况下,内核中仅留下Address Space Support(地址空间支持),IPC (Inter-Process Communication,进程间通讯),和Scheduling(调度),其他功能模块做为用户进程运行。对于内核来说,他们和一般用户进程并无区别。它们与其他用户进程之间的通讯通过IPC进行。 在八十年代中期,微内核的概念开始变得非常热门。第一代微内核操作系统的代表作品是Mach [Mac85]。Mach是由位于痞子堡的卡内基梅隆大学(CMU)设计。CMU是美国计算机科学研究重镇,其计算机排名长期位于美国大学前五位。美国只有少数几所大学的计算机是学院不是系,CMU就是其中之一。除Mach外,CMU的另一重要成果是衡量计算机软件设计能力的CMM (Capability Maturity Model) 模型,广泛用于评估业界软件公司的计算机软件开发能力。好像印度的软件公司们非常热衷于此,通过CMM-5最高规格评价的软件公司们有一半是印度的。 在微内核刚兴起时,学术界普遍认为其优点是显而易见的:

四种实时操作系统的分析比较

四种实时操作系统的分析比较 本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux--新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。 近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。 1、基本特征概述 QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1、(程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。 LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。 RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。 KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出"严格(firm)"实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的"严格的"实时系统。 2、体系结构异同 实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM 固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。 QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。 LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的"Galaxy"技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS 3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错

计算机操作系统简答题答案版)

第一章 13.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。21.试描述什么是微内核OS。 答:1)足够小的内核 2)基于客户/服务器模式3)应用机制与策略分离原理 4)采用面向对象技术。 第二章 11.试说明引起进程创建的主要事件。 答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。 18. 同步机构应遵循哪些基本准则?为什么? 答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待原因:为实现进程互斥进入自己的临界区。 第三章 第三章处理机调度与死锁 1.高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 答:高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理器分配给进程。引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。 18.何谓死锁?产生死锁的原因和必要条件是什么? 答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。 第四章 6.为什么要引入动态重定位?如何实现? 答:在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑

地址转换成物理地址,引入了动态重定位; 具体实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址,程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现动态重定位。 10.在系统中引入对换后可带来哪些好处? 答:交换技术将暂不需要的作业移到外存,让出内存空间以调入其它作业,交换到外存的作业也可以被再次调入。目的是解决内存紧张问题,带来的好处是进一步提高了内存利用率和系统吞吐量。 19.虚拟存储器有哪些特征?其中最本质的特征是什么? 答:虚拟存储器有多次性、对换性、虚拟性三大特征。最本质的特征是虚拟性。第五章 9.引入缓冲的主要原因是什么? 答:引入缓冲的主要原因是: (1)缓和CPU与I/O 设备间速度不匹配的矛盾 (2)减少对CPU的中断频率,放宽对中断响应时间的限制 (3)提高CPU与I/O 设备之间的并行性 18.试说明SPOOLing 系统的组成。 答:SPOOLing 系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程 SPi 和输出进程 SPo 三部分组成。 21.试说明设备驱动程序应具有哪些功能? 答:设备驱动程序的主要功能包括: (1)将接收到的抽象要求转为具体要求; (2)检查用户I/O请求合法性,了解I/O 设备状态,传递有关参数,设置设备工作方式; (3)发出I/O 命令,启动分配到的I/O设备,完成指定I/O 操作; (4)及时响应由控制器或通道发来的中断请求,根据中断类型调用相应中断处理程序处理; (5)对于有通道的计算机,驱动程序还应该根据用户 I/O 请求自动构成通道程序。

小型微内核操作系统内核模型设计与实现

1. 引言 微内核操作系统的开发是基于LINUX系统平台的,而不是基础window平台的,具体原因就设计到LINUX作为操作系统相对于其它操作系统的优点和特点,比如多任务、多平台、开源、GNU软件的支持、费用低等。基于种种优点,使得LINUX方面的技术发展非常迅速,也更全面,由于它是开源的,我们可以免费在网上下载到最新的和需要的版本软件,同时也可以把自己的成果在网上发布,供大家分享,出现什么问题或者有什么好的建议,我们还可以交流,就是在这样的趋势下,LINUX朝着更好的方向发展,我们的个人能力也在不断的提高。 2. 需求分析 小型微内核操作系统模型的设计与实现主要是为了LINUX内核编程方面的爱好者提供了一个学习和交流的设计模型。在这个模型上,我们可以看到内核平台模型的模块结构,应用的语法等。微内核操作系统模型提供的模块包括操作系统引导模块、屏幕显示控制模块、键盘输入模块、TTY控制模块、中断与陷阱模块。 2.1 操作系统引导模块 我们知道仅仅是写一个启动扇区并将其放入软盘镜像的合适位置。由于启动扇区 512 字节的大小限制,我们仅仅能写入像打印一个字符串这样的非常简单的程序,这也太小了,很显然的是我们要利用其它的扇区,将程序保存在其它扇区,运行前将其加载到内存后再跳转过去执行。要把程序存储到软盘上,可能最直接最容易理解的存储方式就是顺序存储,可能这样需要的工作量最小,在启动时操作系统仅仅需要序列地将可执行代码拷贝到内存中来继续运行。可是经过简单的思考我就可以发现这样做有几个缺陷:1. 软盘中仅能存储操作系统程序,无法存储其它内容;2. 我们必须使用二进制拷贝方式来制作软盘镜像,修改系统麻烦。 引入文件系统可以让我们在一张软盘上存储不同的文件,并提供文件管理功能,可以让我们避免上述的两个缺点。在使用某种文件系统对软盘格式化之后,我们可以像普通软盘一样使用它来存储多个文件和目录,为了使用软盘上的文件,我给启动扇区的代码加上寻找文件和加载执行文件功能,让启动扇区将系统控制权转移给软盘上的某个文件,这样突破启动扇区 512 字节大小的限制。 有了FAT12文件系统的相关知识之后,我们就可以跨越512字节的限制,就可以从文件系统总加载文件并执行了。 2.2 键盘输入模块 键盘输入模块:主要就是实现操作系统的键盘输入功能。 敲击键盘有两个方面的含义:动作和内容。动作可以分解成三类:按下、保持按住的状态以及放开;内容则是键盘上不同的键,字母键还是数字键,回车键还是箭头键。所以根据敲击动作产生的编码,8048既要反映“哪个”按键产生了动作,还要反映产生了“什么”动作。 敲击键盘产生的编码被称为扫描码(Scan Code),它分为Make Code 和Break Code两类。当一个键被按下或者保持住按下的状态时,就会产生Make Code,当键弹起时,产生Break Code。出了Pause键之外,每一个按键都对应一个Make Code和一个Break Code。 对于输入和输出缓冲区,可以通过in和out指令来进行相应的读取操作。也就是一个in al,0x60指令就可以读取扫描码,我们还要建立一个缓冲区,用来放置中断程序收到的扫描码。 typedef struct s_kb { char* p_head; /* 指向缓冲区中下一个空闲位置 */ char* p_tail; /* 指向键盘任务应处理的字节 */ int count; /* 缓冲区中共有多少字节 */ char buf[KB_IN_BYTES]; /* 缓冲区 */ }KB_INPUT; 2.3 屏幕显示控制模块 屏幕显示控制模块:把我在程序中要在屏幕上输出的内容正确显示出来,并且按照我在程序中设置好的格式输出。另外当我在键盘中输入不同的字符的时候,屏幕能够立即响应并能正确顺序显示我的出入。当屏幕内容充满之后,屏幕还能自动向下滚动,以能够显示并能控制我当前是输入。 2.4 TTY控制模块 不同的TTY对应的输入设备是同一个键盘,但是输出却好比在不同的显示器上。在TTY中执行一个循环,这个循环将轮训每一个TTY,处理它的事件,包括从键盘缓冲区读取数据,显示字符等内容。如图2-1 图2-1 TTY任务示意图 基于TTY多任务的考虑,我新建了两个结构体,分别表示TTY和CONSOLE,从TTY缓冲区中取出键值,然后用 out_char 显示在对应的CONSOLE中。 2.5 中断与陷阱模块 中断通常在程序执行时因为硬件而随即发生,它们通常用来处理处理器外部的事件,比如外围设别的请求,而异常则通常在处理器执行指令过程中检测到错误时发生,比如遇到零除的情况。我知道如何 小型微内核操作系统内核模型设计与实现 陈云龙 (南京晓庄学院 计算机科学与技术系,江苏 南京 211171) 摘要:微内核操作系统模型为操作系统教学提供了基本功能和应用需求,同时也是学习操作系统模型的基础。为实现微内核模型特设计了一个运行在VMWARE虚拟机上的微内核结构的小型操作系统模型,简单描述了键盘输入模块、屏幕显示模块、中断模块和TTY控制模块等的设计与实现。本系统模型的设计与实现将有利于从微观上观察操作系统的行为特征,更好地学习、理解和实践微内核机制。 关键词:VMWARE;微内核;模型;GNU;AT&T 中图分类号:TP302.1 文献标识码:A 文章编号:1003-9767(2011)05-0080-02 (下转第82页)

相关主题
文本预览
相关文档 最新文档