C H A P T E R 11 体系结构对操作系统的支持.

Slides:



Advertisements
Similar presentations
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
Advertisements

第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
电子商务专业人才培养方案 五年制高职. 一、招生对象、学制与办学层次  (一)招生对象:初中毕业生  (二)学制:五年  (三)办学层次:专科.
這是來自中南海的健康長壽讀本 不管你有多忙,這個讀本都應該讀一下,因為這是一位科學 家給國家領導人的忠言。日理萬機的領導人曾放下手頭工
《单片机原理及应用》 《微型计算机原理及接口技术 》 授课专业:测控13级 授课学时: 78 学时 理论教学:52学 实验教学:26学时
提高阶段: ——ARM部分 电气工程系 赵志衡.
美味料理 5223汪芮臣.
德 国 鼓 励 生 育 的 宣 传 画.
计算机系统结构 主讲:任国林
嵌入式系统与结构 —基于ARM的体系结构和应用开发
基于s3c44B0X嵌入式uCLinux系统原理及应用
第6章 计算机网络基础 信息技术基础.
NEUSOFT Institute of information Technology .ChengDu
微型计算机技术及应用 王 健 主讲 授课学时:40学时 大连理工大学计算机系.
第一章 嵌入式系统概况 大连理工大学 马洪连.
Foundations of Computer Science
旗山國中103學年度 美術藝才班新生術科鑑定 家長說明會
香港普通話研習社科技創意小學 周順強老師.
云想衣裳花想容 报告人 王雪梅.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
项目2-1 店铺的定位.
Principles of Microcomputers
最新計算機概論 第3章 計算機組織.
贴近教学 服务师生 方便老师.
基于ARM和linux的开发 华中科技大学 武汉创维特 2017/3/20.
Windows Server 2003操作系统相关配置
第8章 机床操作 主讲:臧红彬 博士.
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
William Stallings 计算机组成与结构(第8版)
嵌入式操作系统 陈天洲、陈文智.
第七章 异常控制流 CPU控制流的概念 进程上下文切换 异常和中断的基本概念 异常和中断的响应和处理
Chapter 13 輸入/輸出系統 (I/O Systems)
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
作業系統的結構 日期 : 2018/9/17.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
计算机应用基础 第二章 操作系统基础 2018/11/16.
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
第3章 ARM体系结构.
嵌入式系统设计与开发 第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计
ICT RTOS Research Group 胡伟平,王剑
第2章 Linux概述 2.1 操作系统的功能和分类 2.2 Linux操作系统概述 2.3 Linux的应用现状与前景
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
嵌入式系統概論-以S3C2440核心為架構 第1章 嵌入式系統概念.
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
第二章 Linux简介 Linux概述 Linux系统的特点 Linux中使用的应用程序 Linux的组成 Linux版本介绍
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
(第2版).
作業系統 第三章 作業系統結構.
Operation System(OS).
中華大學 資訊工程學系 報告人:資訊工程學系 許慶賢 系主任.
RTOS.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
第七章  事业单位支出的核算      §第一节  支出概述     §第二节  拨出款项     §第三节  各项支出     §第四节  成本费用.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
核心系统数据库组 了解应用服务器 核心系统数据库组
李元金 计算机与信息工程学院 第 14 讲 存储器管理(3) 李元金 计算机与信息工程学院 1/
第八节 算术运算符和算术表达式.
实验三 键盘软加锁实验 2019/5/9.
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
架构师成长感悟 吴隆烽
县级支中心 乡镇基层服务点的建设 朱 庆 华.
佛山房地产市场周报 2018/4/7-2018/4/13 合富研究院(佛山) 佛山市禅城区祖庙路33号百花广场30楼 室
Presentation transcript:

C H A P T E R 11 体系结构对操作系统的支持

嵌入式操作系统的任务是什么? 主要要解决的问题: 概述 机器硬件的接口 多个程序并行执行(多任务) 过程间冲突的减小 对存储器保护下的数据共享窗口的控制 对硬件设备的访问

ARM存储系统的体系结构,为了适应一些复杂的应用要求,一般包括以下几种技术: 用于存储管理的系统控制协处理器CP15 存储器保护单元MPU 存储器管理单元MMU Cache及Write Buffer技术 快速进程上下文切换技术

在用户模式下访问CP15中的寄存器需使用软中断(SWI)调用的方式。 ARM的存储器管理是通过系统控制协处理器CP15完成的。CP15包含16个32位寄存器C0~C15,在系统模式下访问CP15中的寄存器需使用下面2个指令: MCR: ARM寄存器->CP15寄存器的数据传送指令 MRC: CP15寄存器->ARM寄存器的数据传送指令 在用户模式下访问CP15中的寄存器需使用软中断(SWI)调用的方式。 其中,C1是一个控制寄存器,它控制MMU(MPU)的使能、数据Cache或统一Cache的使能、指令Cache的使能、写缓冲使能等.

1.在ARM系统中,存储管理单元MMU主要完成工作: 存储器访问权限的控制。 设置虚拟存储空间的缓冲的特性。

存储管理单元MMU 2.存储访问过程 使能MMU时存储访问过程 :

存储管理单元MMU 禁止MMU时存储访问过程: ① 先要确定芯片是否支持cache和write buffer。如果芯片规定当禁止MMU时禁止cache和write buffer,则存储访问将不考虑C和B控制位。如果芯片规定当禁止MMU时可以使能cache和write buffer,则数据访问时,C=0,B=0;指令读取时,如果使用分开的TLB,那么C=1,如果使用统一的TLB,那么C=0。 ② 存储访问不进行权限控制,MMU也不会产生存储访问中止信号。 ③  所有的物理地址和虚拟地址相等,即使用平板存储模式。

3. MMU中的地址变换过程:通过两级页表实现。 a)一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表是实现的地址映射粒度较大。以段为单位的地址变换过程只需要一级页表。 b)二级页表中包含有以大页和小页为单位的地址变换条目。有一种类型的二级页表还包含有以极小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。

存储管理单元MMU 一级页表的地址变换过程 :

存储管理单元MMU 4.一级描述符: 从页表中得到的相应地址变换条目称为一级描述符。它定义了与之相应的1M存储空间是如何映射的。一级描述符的位[1:0]定义了该一级描述符的类型,共有4种格式的一级描述符:

存储管理单元MMU 1)粗粒度页表描述符:当一级描述符的位[1..0]为0b01(0b代表二进制)时,该一级描述符中包含了粗粒度的二级页表的物理地址,这种一级描述符称为粗粒度页表描述符。它的格式和各个字段的含义如下:

存储管理单元MMU 由粗粒度页表描述符获取二级描述符的过程 :

存储管理单元MMU 2)段描述符:当一级描述符的位[1:0]为0b10时,该一级描述符为段描述符,它的格式和各个字段的含义如下:

存储管理单元MMU 基于段的地址变换过程 :

存储管理单元MMU 3)细粒度页表描述符:当一级描述符的位[1:0]为0b11时,该一级描述符中包含了细粒度的二级页表的物理地址,称为细粒度页表描述符。它的格式和各个字段的含义如下:

存储管理单元MMU 由细粒度页表描述符获取二级描述符的过程

存储管理单元MMU 5.MMU中的存储访问权限控制

存储管理单元MMU 6.  MMU中的域(Domain) MMU中的域指的是一些段、大页或者小页的集合。ARM支持最多16个域,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。这两位的字段编码和含义:

存储管理单元MMU 7.快速上下文切换技术 快速上下文切换技术FCSE(Fast Context Switch Extension)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。 FCSE位于CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。

存储管理单元MMU 8.存储器映射的输入/输出 在ARM系统中,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和中断输入的组合来实现的。 但是,对于存储器映射的I/O空间的操作,不能使用Cache技术。

嵌入式操作系统 嵌入式操作系统 实时操作系统 微内核与单内核

嵌入式操作系统发展 近十年来,嵌入式操作系统得到飞速的发展 从支持8位微处理器到16位、32位甚至64位微处理器; 从支持单一品种的微处理器芯片到支持多品种微处理器芯片; 从只有内核到除了内核外还提供其他功能模块,如文件系统,TCP/IP网络系统,窗口图形系统等。

嵌入式操作系统技术现状 适应不同的嵌入式硬件平台,具有可移植、可伸缩能力。 采用的主要技术: 编程语言普遍采用高级语言实现,主要以C语言为主。 体系结构采用分层和模块化结构或微内核结构。

分层和模块化结构,将操作系统分为: 每层再划分功能模块 移植工作集中在硬件相关层,与其余两层无关 嵌入式操作系统技术现状(续) 分层和模块化结构,将操作系统分为: 硬件无关层 硬件抽象层 硬件相关层 每层再划分功能模块 移植工作集中在硬件相关层,与其余两层无关 功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。

功能复杂,具有可剪裁、可配置的能力 采用的主要技术: 嵌入式操作系统技术现状(续) 功能复杂,具有可剪裁、可配置的能力 采用的主要技术: 可剪裁技术。操作系统以内核为中心,包括很多独立的功能组件如文件、网络等。除内核外其他组件的选择任意搭配,由应用决定。 可配置技术。每个功能组件都可以根据应用的要求进行配置,比如最大任务数、内存地址、堆栈大小、系统任务的优先级、缓冲区大小及文件数等。

良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。 嵌入式操作系统技术现状(续) 良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。 采用的主要技术: 采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。 采用内存静态分配策略和零拷贝技术保证确定性。 内存管理不采用虚存管理机制 采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题

嵌入式操作系统技术现状(续) 可靠性和高可用 采用的主要技术: 利用存储管理单元(MMU)、用户态和核心态机制,实现操作系统与应用程序的隔离,以及应用程序和应用程序之间的隔离,以防止应用程序破坏操作系统的代码、数据。

行业的标准:多种操作系统平台,应用决定操作系统 结构紧凑、功能强大 嵌入式操作系统的发展趋势 体系结构向微内核方向发展 可伸缩、可移植、可剪裁、可配置 行业的标准:多种操作系统平台,应用决定操作系统 结构紧凑、功能强大 高可用(High Available)、高可靠(High Reliable )、支持多处理器和分布式计算 可动态加载和升级软件 与开发工具有机的结合起来

行业标准 行业性嵌入式软硬件平台 嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台 吸取PC的成功经验,形成不同行业的标准。 统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。

嵌入式操作系统 <>实时操作系统 嵌入式操作系统常常有实时要求 早期:嵌入式操作系统 = 实时操作系统 近期: 1)手持计算机和掌上计算机的出现; 2)CPU速度的提高; 3)常规操作系统增加实时进程调度的支持,如POSIX.4 嵌入式操作系统 <>实时操作系统

嵌入式操作系统 许多嵌入式操作系统的内核是微内核结构 许多嵌入式操作系统都不带磁盘 根本不支持文件系统 结构上为了设备驱动而支持文件系统,但不支持文件系统的文件存储功能

许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术 许多嵌入式操作系统不划分“系统空间”和“用户空间” 操作系统的“内核”与外围应用程序之间不再有物理的边界; 系统中所谓“进程”实际上全都是内核线程 静态连接、系统调用、进程调度/切换

嵌入式操作系统 对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之; 系统调用的界面太庞大; 共享变量的访问,需要谨慎对待; 把通用操作系统上的应用移植过来需考虑“可重入”的问题;

嵌入式操作系统 不分系统空间和用户空间 <>必须静态连接 如DOS、CP/M的INT21 不分系统空间和用户空间 <>不能用页面映射技术 但只用于不同进程之间,而非不同空间之间 即使采用了存储管理,基本上都不采用页面交换技术 重启动技术(watch dog)

RTOS 是否实时 一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题; 另一方面同时也是反映速度在多大的程度上得到保证的问题

中断延迟(Interrupt Latency) 中断不可嵌套 LINUX的Bottom Half 中断可嵌套:优先级中断 大多微处理器不支持; LINUX不支持; UNIX支持 与指令集有关 DMA操作有关 保证系统调用的原子性有关

Linux既不是完全的可剥夺,也不是完全的不可剥夺 调度延迟(Scheduling Latency) 中断处理程序 进程处理 一般调度算法(Round Robin)不能及时选中 基于优先级调度算法,一般能及时选中 如果目标进程优先级低呢? 可剥夺调度和不可剥夺调度 LINUX是属于什么调度? Linux既不是完全的可剥夺,也不是完全的不可剥夺

上下文切换延迟(Context Switch Latency) 大小取决于CPU和操作系统 采用MMU > 不采用MMU

是否可以不用中断、也不用调度,回到最简单的“监控程序” ? 只要发生调度,就能选中目标进程吗? 根据时间片的耗用调整优先级 拉开距离,分等级 对实时进程而言,“应该没有问题”不够。 是否可以不用中断、也不用调度,回到最简单的“监控程序” ?

实时性简介 对于什么是实时系统,POSIX 1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务 实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型 一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度

实时调度分类 各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别: 基于优先级的调度算法(Priority-driven scheduling-PD) 基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD) 基于时间的进程调度算法(Time-driven scheduling-TD) 从调度方式上来讲可以分为: 可抢占 不可抢占 从时间片来分: 固定时间片 可变时间片

实时性改造 对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展 向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多 向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理

实时多任务OS-RTOS 单片机 无os 主程序 RTOS 资源包装 API 可移植(只要1-4%)

实时系统 在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间 响应时间限定 可预知

实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。即: 系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。 系统能够处理和存储控制系统所需要的大量的数据。

周期性的系统 非周期性系统 硬实时系统 灾难后果 软实时系统 性能下降

RTOS与分时系统 事件响应时间限定 事件随机到达 系统可确定性

RTOS基本struct 实时多任务core 任务管理:多任务和基于优先级的任务调度 定时器:系统的实时时钟服务,以及各个定时任务的调入等 Mem:管理系统的内存资源,如DRAM,ROM,FLASHRAM等 资源管理:管理系统的各种资源如系统的各种设备,端口,中断等; 事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的通讯

RTOS的系统调用 90%以上的设备独立 RTOS的任务--分时系统Process

实时带来的问题1-时间 在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法 系统提供一种指定时间尺度的方法 通用系统的延时不能满足

问题2-实时系统的结构 实时系统的体系结构必须满足: 高运算速度 高速的中断处理 高的I/O吞吐率 合理的处理器和I/O设备的拓扑连接 高速可靠的和有时间约束的通信 体系结构支持的出错处理 体系结构支持的调度 体系结构支持的操作系统 体系结构支持的实时语言特性

问题3-容错与分布 稳定性 容错 分布式应用

问题4-实时通讯 逻辑正确 要有确定的延迟时间

问题5-其他问题 时间特性的指定和确正,这点与实际系统设计相同。 实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。 实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。

实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Ada语言,FORTH语言。 分布式的实时数据库 系统的容错 实时时钟的同步 实时系统中的人工智能

与通用计算机区别 通用: 方便用户管理计算机资源 追求系统资源最大利用率 RTOS 调度的实时性 响应时间可确定性 高可靠性

性能衡量标准 对传统的通用系统: 实时系统 大的系统吞吐量 合理的响应速度 对每个系统用户相对公平的进行计算资源的分配 实时的数据吞吐取代了以吞吐量为目标的标准。 对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。 系统的计算资源和其他外设资源必须优先满足实时应用的要求

RTOS的衡量指标 系统响应时间(System response time ):系统发出处理要求到系统给出应答信号的时间; 上下文切换时间(Context-switching time):任务之间切换而使用的时间; 中断延迟(Interrupt latency time ) :是计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间;

RTOS的任务调度机制 决定了多任务能力与实时性 通用模式: RTOS一般使用抢占式任务调度 调度策略:优先级调度、时间片轮转调度 调度方式:抢占式、不可抢占式、选择可抢占式 时间片:定长时间片与变长时间片 RTOS一般使用抢占式任务调度

时间限定的任务调度算法 速度单调算法 时限驱动算法 工作由定期任务组织 任务时间定长度 使用频率高的优先级高 工作定期与不定期 执行时长随着时间变化 下一个要安排执行的任务是时限最早的任务

Mem管理 存储管理单元(MMU) 实模式 保护模式

中断禁止时间 用户态->中断态

中断延时时间 确认中断-----中断服务第一语句执行 三部分 Microprocessor 的硬件延时 RTOS由中断将权利交给相关代码的时间 中断禁止时间

可中断式内核 中断发生时;即使运行核心服务也保证一定时间内响应 缩短中断延时时间

任务切换时间 控制权取回 交给另外一任务

两个主要评价实时性的指标: 最大中断禁止时间 任务切换时间

任务 分时系统以进程(线程)为基本单位 RTOS以任务为基本单位 组成: 任务控制块 程序区 数据区 堆栈区 系统堆栈 用户堆栈

任务的状态 运行 就绪 挂起 休眠

任务的同步与通讯 消息 事件 信号量 信箱 共享内存

消息 系统公用数据交换区 消息机制 消息可以是定长与不定长 私有消息缓冲区 公用消息缓冲池 创建 删除 接受消息 发送消息 广播消息 紧急消息 消息可以是定长与不定长

事件 应用于同步,通讯数据量不大 接受事件 发送事件 RTOS一般有15-32个事件

信号量 创建 删除 P操作 V操作 RTOS需要解决优先级倒置问题

优先级倒置问题 条件 高优先级任务H 低优先级任务L 中优先级任务M 共享内存Y,写操作 信号量S,互斥

优先级倒置问题 步骤 结果: M比H优先 如果不断的M出现,H不能执行 1)L取得S(P操作),但是未做V操作 2)H中断,H运行态 3)H写Y,但是Y的S被占用 4)L重新取得控制权 5)M出现,取得控制权 结果: M比H优先 如果不断的M出现,H不能执行

(priority inheritance) 解决方法 1、采用非抢占式任务管理 2、优先级继承 L抢回控制权后,暂时继承H的优先级 (priority inheritance) 设S为正占用着某项共享资源的进程P以及所有正在等待占用这个资源的进程的集合; 找出这个集合中的优先级最高者,其优先级为P’ 把进程P的优先级设置成P’

优先级封顶(priority ceiling) 设S为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限p’,使得这个集合中所有进程的优先级都小于p’。注意p’并不一定是整个系统中的最好优先级。 在创建保护该项资源的信号量或互斥量时,将p’作为一个参数。 每当有进程通过这个信号量或互斥量取得共享资源时,就将此进程的优先级暂时提高到p’,一直到释放该项资源的时候才恢复其原有的优先级。

可以看出,操作系统的“实时”与否,并不仅仅取决于速度问题,甚至更多的是反应速度和处理时间的可预测性问题。

嵌入式系统的用户群以及对功能的要求是相对封闭的 商业上考虑,大而全也不合适 微内核与单内核 分层模拟 通用计算机需要“大而全”的内核 你不需要,别人可能需要 当局限于某个具体领域时,做些“裁减” 嵌入式系统的用户群以及对功能的要求是相对封闭的 商业上考虑,大而全也不合适

“裁减”或“系统生成”没有根本上解决问题 将内核中的部分内容移到内核外面,作为服务进程运行。 微内核与单内核(续) “裁减”或“系统生成”没有根本上解决问题 将内核中的部分内容移到内核外面,作为服务进程运行。 代表:MACH 把内核中的部分内容移到外面,但不作为独立的进程运行,而是作为让应用程序调用的库函数存在。 fopen与open socket

微内核与单内核(续) 在微内核中保留哪些东西? 进程管理 存储管理 进程间通信 中断响应框架

微内核的优先级倒置问题 有A、B两个应用程序,A的优先级比B高,但是A在睡眠,而B在运行。 本来在睡眠的文件服务进程接受到B的请求后开始为B服务。 此时A因某外部事件而变成就绪。 发生调度时,A与文件服务进程都是就绪状态。文件服务进程由于优先级高而更为优先。可是文件服务进程代表的是B,因此发生优先级倒置。

微内核的优先级倒置问题 以上问题的解决办法是采用“客户驱动优先级”,但是对于LINUX等操作系统,由于是不可剥夺的,因此天生不可解决。

微内核的优先级倒置问题 A > B > C ,C正在运行 C需要文件操作,发请求给文件服务进程,进入睡眠,等待文件操作完成。 文件服务进程开始为C服务,并将优先级设成与C相同。 此时A被外部时间唤醒,也需要文件操作,发请求,进入睡眠。 A的请求在文件服务进程的等待队列中。发生优先级倒置。

微内核的优先级倒置问题 B由于外部事件变成就绪 由于B > C,B会被调度。 对于C是合理的,但是对于A,太不公平。 如果还有B1,B2,B3,B4

微内核的优点 小而且简单,容易理解,容易维护 各模块可以独立开发 系统配置灵活方便

微内核的缺点 效率降低 安全降低