




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 引入线程的概念后,可把进程和线程的使用分为以下几种模型: 单进程单进程/ /单线程模型单线程模型(如MS-DOS):整个系统只有一个进程、一个线程 单进程单进程/ /多线程模型多线程模型:在单进程/多线程模型中,整个系统有一个进程、多个线程 多进程多进程/ /单线程模型单线程模型(如传统的UNIX):在多进程/单线程模型中,整个系统有多个进程,每个进程只有一个线程 多进程多进程/ /多线程模型多线程模型(如Windows NT、Solaris、Mach等):在多进程/多线程模型中,系统有多个进程,每个进程又可包含多个线程 嵌入式系统的核心-嵌入式微处理器 实时多任务 存储区保护 可扩展的处理
2、器结构 功耗低与通用计算机区别 通用: 方便用户管理计算机资源 追求系统资源最大利用率 RTOS 调度的实时性 响应时间可确定性 高可靠性 RTOS的衡量指标 系统响应时间(System response time ):系统发出处理要求到系统给出应答信号的时间; 任务切换时间(Context-switching time):任务之间切换而使用的时间; 中断延迟(Interrupt latency time ) :是计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间;RTOS的任务调度机制 决定了多任务能力与实时性 通用模式: 调度策略:优先级调度、时间片轮转调度 调度方式
3、:抢占式、不可抢占式、选择可抢占式 时间片:定长时间片与变长时间片 RTOS一般使用抢占式任务调度 在微内核中保留哪些东西? 进程管理 存储管理 进程间通信 中断响应框架微内核的优点 小而且简单,容易理解,容易维护 各模块可以独立开发 系统配置灵活方便 大多数嵌入式实时内核:单进程/多线程模型,或简单地称为任务模型 把整个应用当作一个没有定义的进程来对待; 应用则被划分为多个任务的形式来进行处理。 适用于实时性要求较高的、相对简单的应用适用于实时性要求较高的、相对简单的应用 也有一些嵌入式实时操作系统采用了多进程/多线程模型: 系统中包含多个进程,每个进程对应又包含多个线程 适合于处理复杂的应
4、用适合于处理复杂的应用任务的定义及其主要特性 任务是一个具有独立功能的无限循环的程序段的一次运行活动,是实时内核调度的单位,具有以下特性: 动态性动态性:任务状态是不断变化的。 一般分为就绪态、运行态和等待态。 在多任务系统中,任务的状态将随着系统的需要不断进行变化。 并行性并行性: 系统中同时存在多个任务,这些任务在宏观上是同时运行的。 异步独立性异步独立性: 每个任务各自按相互独立的不可预知的速度运行,走走停停。 任务的内容 任务主要包含以下内容: 代码代码:一段可执行的程序 数据数据:程序所需要的相关数据(变量、工作空间、缓冲区等) 堆栈堆栈 程序执行的上下文环境程序执行的上下文环境任务
5、的内容 任务与程序的区别: 任务能真实地描述工作内容的并发性,而程序不能; 程序是任务的组成部分 除程序外,任务还包括数据、堆栈及其上下文环境等内容; 程序是静态的,任务是动态的; 任务有生命周期,有诞生、有消亡,是短暂的;而程序是相对长久的; 一个程序可对应多个任务,反之亦然; 任务具有创建其他任务的功能,而程序没有。 任务状态与变迁 任务拥有的资源情况是不断变化的,导致任务状态也表现出不断变化的特性。 不同的实时内核实现方式对任务状态的定义不尽相同,但是都可以概括为三种基本的状态: 等待等待(waiting):任务在等待某个事件的发生; 就绪就绪(ready): 任务等待获得处理器资源;
6、执行执行(running):任务获得处理器资源,所包含的代码内容正在被执行。 任务状态与变迁 任务会在不同的状态之间进行转换,即任务状态的变迁就绪态就绪态运行态运行态等待态等待态获得获得CPUCPU被高优先级被高优先级任务抢占或任务抢占或超时超时获得资源获得资源需要需要资源资源任务切换任务切换任务切换时机时机中断、自陷中断、自陷运行任务因缺乏资源而被运行任务因缺乏资源而被阻塞阻塞时间片轮转调度时时间片轮转调度时高优先级任务处于就绪时高优先级任务处于就绪时退出退出第三节任务调度基于优先级的可抢占调度基于优先级的可抢占调度时间片轮转调度时间片轮转调度静态调度静态调度*动态调度动态调度*静态调度与动
7、态调度之间的比较静态调度与动态调度之间的比较* 设计调度程序时,通常需要综合考虑如下因素: CPU的使用率(CPU utilization) 输入/输出设备的吞吐率 响应时间(responsive time) 公平性 截止时间调度算法 抢占式调度和非抢占式调度:任务在运行过程中能否被打断的处理情况。 抢占式调度:正在运行的任务可能被其他任务所打断。 非抢占式调度:一旦任务开始运行,该任务只有在运行完成而主动放弃CPU资源,或是因为等待其他资源被阻塞的情况下才会停止运行。 实时内核大都采用了抢占式调度算法,使关键任务能够打断非关键任务的执行,确保关键任务的截止时间能够得到满足。抢占式和非抢占调度
8、 抢占式调度算法要更复杂些,且需要更多的资源,并可能在使用不当的情况下会造成低优先级任务出现长时间得不到执行的情况。 非抢占式调度算法常用于那些任务需要按照预先确定的顺序进行执行,且只有当任务主动放弃CPU资源后,其他任务才能得到执行的情况。抢占式和非抢占调度内核的可抢占性 内核可抢占与不可抢占:执行内核提供的系统调用的过程中,是否可以被中断打断。 可抢占内核:即使正在执行的是内核服务函数,也能响应中断,并且中断服务程序退出时能进行任务重新调度: 如果有优先级更高的任务就绪,就立即让高优先级任务运行,不要求回到被中断的任务,将未完成的系统调用执行完。基于优先级的可抢占调度 基于优先级的可抢占调
9、度方式 如果出现具有更高优先级的任务处于就绪状态时,当前任务将停止运行,把CPU的控制权交给具有更高优先级的任务,使更高优先级的任务得到执行。 实时内核需要确保CPU总是被具有最高优先级的就绪任务所控制。 当一个具有比当前正在运行任务的优先级更高的任务处于就绪状态的时候,实时内核应及时进行任务切换,保存当前正在运行任务的上下文,切换到具有更高优先级的任务的上下文。实时系统 在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间 响应时间限定 可预知实时操作系统与I/O 实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。
10、就是: 系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。 系统能够处理和存储控制系统所需要的大量的数据。 周期性的系统 非周期性系统 硬实时系统 灾难后果 软实时系统 性能下降 图1 VFS与具体文件系统的关系与具体文件系统的关系用户程序(进程)用户程序(进程)VFSminixFAT设备文件设备文件Ext2文件系统操作的系统文件系统操作的系统调用界面,包括调用界面,包括read(),write(),open(),close()等等函数函数sys_read() sys_write() sys_open()等等通过通过file结构结构中的中的f_op指指针实现的针实现的”文件系统总文件
11、系统总线线”用户空间用户空间系统空间系统空间251.4 计算机体系结构分类 1.冯诺依曼结构 26 ALU,Controller, Memory, Input,Output 核心部件:早期是CPU,后来是Memory 存储程序(stored program):程序以数字形式存在,可以与数据一样被读写冯诺依曼结构五大部件272.哈佛体系结构28哈佛体系结构 程序与数据有单独的存储器 PC只能指向程序存储器 目前仍然广泛应用 指令cache与数据cache 适用于实时信号处理(大部分的DSP) 大量数据流入计算机 数据必须在精确的时间内处理完成291.5 RISC和CISC 计算机自40年代中叶问
12、世以来,其体系结构的发展经历了:简单复杂极其复杂简单复杂极其复杂 CISC:复杂指令系统计算机 RISC:精简指令系统计算机 RISC一般性能比CISC高CISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式,指令长度可变具有大量的指令和寻址方式,指令长度可变8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简
13、指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)只包含最有用的指令,指令长度固定只包含最有用的指令,指令长度固定确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单312.1 嵌入式片上系统( SoC ) SoC - System on Chip CPU + DSP + USB + TCP/IP + GPRS + GSM + IEEE1394 + BLUETOOCH + SOC的优点: 改变内部工作电压,减少功耗 减少芯片对外管脚数
14、,简化制造过程 减少外围驱动与电路板之间的信号传递,提高速度 内嵌的线路可以避免外部电路板在信号传递时引起的干扰322.2 SOC的设计开发33SoC 芯片设计中 的IP 模块 SoC 的设计基础是IP(Intellectual Property)复用技术。 已有的IC 电路以模块的形式在SoC 芯片设计中调用这些可以被重复使用的IC 模块就叫做IP 模块 IP 模块是一种预先设计好,已经过验证,具有某种确定功能的集成电路、器件或部件。它有3 种不同形式:软IP 核(soft IP core)、固IP 核(firm IP core)和硬IP 核(hard IP core) 34高速缓存、 MM
15、U 解决方法: 1。 求助于高速缓存来提高内存的平均性能。 2。存储管理单元(MMU)进行地址转换,它在一个小的物理内存中提供相对较大的虚拟存储空间。35高速缓存、 MMU 解决方法: 1。 求助于高速缓存来提高内存的平均性能。 2。存储管理单元(MMU)进行地址转换,它在一个小的物理内存中提供相对较大的虚拟存储空间。36虚拟地址存储系统 37总线协议 基本构件是四周期握手协议 : 握手保证当两个设备想通信时,一个准备好发送,另一个准备好接收。 握手使用两根用来进行握手的电线enq(表示查询)和ack(表示应答)。 在握手期间,有专用的电线用来传输数据。 38四周期握手描述 1) 设备1升高它
16、的输出电平来发查询信号,它告诉设备2应准备好监听数据。2) 当设备2准备好接收数据时,它升高它的输出电平来发应答信号。这时,设备1和2已准备好发送或接收。3) 一旦数据传送完毕,设备2降低它的输出电平表示它已经接收完数据。4) 看见应答信号变低,设备1降低它的输出电平。 在握手结束时,双方握手信号均为低电平,就像开始握手前一样。因此,系统回到其初始状态,为下一次以握手方式传输数据做准备。 39四周期握手协议 40内存管理机制 静态分配系统在启动前系统在启动前,所有的任务都获得了所需要的所,所有的任务都获得了所需要的所有内存,运行过程中将不会有新的内存请求。有内存,运行过程中将不会有新的内存请求
17、。在强实时系统中,减少内存分配在时间上可能带来的在强实时系统中,减少内存分配在时间上可能带来的不确定性。不确定性。不需要操作系统进行专门的内存管理操作。不需要操作系统进行专门的内存管理操作。系统使用内存的效率比较低下,只适合于那些强实时,系统使用内存的效率比较低下,只适合于那些强实时,且应用比较简单,任务数量可以静态确定的系统。且应用比较简单,任务数量可以静态确定的系统。 内存管理机制动态分配 堆(堆(heap):应用通过分配():应用通过分配(malloc)与释)与释放(放(free)操作来使用内存。)操作来使用内存。堆会带来碎片堆会带来碎片:内存被逐渐划分为位于已被使用区域之间的越来越小内
18、存被逐渐划分为位于已被使用区域之间的越来越小的空闲区域。的空闲区域。垃圾回收垃圾回收:对内存堆进行重新排列,把碎片组织成为大的连续可对内存堆进行重新排列,把碎片组织成为大的连续可用内存空间。但垃圾回收的时间长短不确定:不适合用内存空间。但垃圾回收的时间长短不确定:不适合于处理实时应用。于处理实时应用。在实时系统中,避免内存碎片的出现,而不是在在实时系统中,避免内存碎片的出现,而不是在出现内存碎片时进行回收出现内存碎片时进行回收。 内存管理机制 常用管理方式:常用管理方式: 固定大小存储区固定大小存储区:在指定边界的一块地址连续的内存空间中,在指定边界的一块地址连续的内存空间中,实现固定大小内存
19、块的分配。实现固定大小内存块的分配。 可变大小存储区可变大小存储区:在指定边界的一块地址连续的内存空间中,在指定边界的一块地址连续的内存空间中,实现可变大小内存块的分配。实现可变大小内存块的分配。 应用根据需要从固定大小存储区或者可变大应用根据需要从固定大小存储区或者可变大小存储区中获得一块内存空间,用完后将该小存储区中获得一块内存空间,用完后将该内存空间释放回相应的存储区。内存空间释放回相应的存储区。1 缺少MMU支持的内存管理 内存管理是操作系统中非常重要的子模块。 如同普通操作系统一样,在嵌入式操作系统中,内存管理实现的好坏对系统性能有决定性的作用。 1.1 3种内存管理模型 操作系统的
20、内存管理模型可以分成如下3种:1. 单一程序模型 这是没有硬件地址转换的内存管理模型。 应用程序始终在物理内存中的同一地址空间运行,一个时刻只有一个应用程序被加载运行,程序加载器把应用程序加载到内存低端,将操作系统加载到高端。 一个应用程序可以对所有的物理内存地址进行寻址。 早期的操作系统受限于硬件能力多采用这种模型,现代操作系统中这种内存管理方式已经不见了。2. 多程序模型 这也是没有硬件地址转换的内存管理模型。 即使没有硬件地址转换功能,多个程序也可以共享相同的物理地址。 在程序被加载到内存的时候,改变程序中寻址指令(load,store,jump)所使用的地址值为当前被加载到的位置。 u
21、Clinux正是使用了这种模型。3. 具有地址转换硬件的内存管理模型 应用程序使用的是虚拟地址,CPU实际执行程序所使用的是物理地址,从虚拟地址到物理地址的转换需要操作系统和MMU(Memory Management Unit)硬件的参与。 标准Linux以及大多数现代操作系统都使用这种内存管理模型。体系结构API设备管理设备管理中断驱动程序中断驱动程序串口驱动程序串口驱动程序键盘驱动程序键盘驱动程序串口卡串口卡A 硬件抽象硬件抽象串口卡串口卡B 硬件抽象硬件抽象串口串口1串口串口2串口串口4串口串口2串口串口3串口串口1驱动逻辑层驱动逻辑层硬件抽象层硬件抽象层设备设备设备管理层设备管理层AP
22、I层层为了有效组织和管理各种不同的设备,可以采用分层的思想,把为了有效组织和管理各种不同的设备,可以采用分层的思想,把I/OI/O系统系统从上到下分为四层,分别为从上到下分为四层,分别为APIAPI、设备管理、驱动逻辑和硬件抽象。、设备管理、驱动逻辑和硬件抽象。体系结构 提供硬件的多种使用模式API设备管理设备管理驱动程序驱动程序硬件抽象硬件抽象应用程序(用户程序、操作系统及其组件等)应用程序(用户程序、操作系统及其组件等)xlanchen2008.3.14Embedded Operating systems52Boot Loader的典型结构框架 由于 Boot Loader 的实现依赖于
23、CPU 体系结构,大多数 Boot Loader 都分为 stage1 和 stage2 两大部分 Stage1 依赖于 CPU 体系结构,如设备初始化代码 通常用汇编语言实现,短小精悍 Stage2 通常用C语言 可以实现复杂功能 代码具有较好的可读性和可移植性 xlanchen2008.3.14Embedded Operating systems53Boot Loader的stage1 Stage1直接运行在固态存储设备上,通常包括以下步骤 硬件设备初始化 为加载 Boot Loader的stage2准备RAM空间 拷贝 Boot Loader的stage2到RAM 空间中 设置好堆栈 跳
24、转到 stage2 的 C 入口点 xlanchen2008.3.14Embedded Operating systems54Boot Loader的stage2通常包括以下步骤1. 初始化本阶段要使用到的硬件设备2. 检测系统内存映射(memory map)3. 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中4. 为内核设置启动参数5. 调用内核嵌入式Linux的软件层次 一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选)和 Boot Loader 两大部分 Linux内
25、核。特定于嵌入式板子的定制内核及内核的启动参数 文件系统。包括根文件系统和建立于 Flash 内存设备之上的文件系统通常用RAM-Disk来作为根文件系统 用户应用程序。特定于用户的应用程序xlanchen2008.3.14Embedded Operating systems55引导加载程序 引导加载程序是系统加电后运行的第一段软件代码 BIOS的主要任务是 进行硬件检测和资源分配 将MBR中的OS Boot Loader读到系统的 RAM 中 将控制权交给 OS Boot Loader Boot Loader 的主要运行任务是 将内核映象从硬盘上读到 RAM 中 跳转到内核的入口点去运行,也
26、即启动操作系统。 xlanchen2008.3.14Embedded Operating systems56三、linux启动流程 初始化流程 1 加电或复位 2 BIOS的启动 3 Boot Loader 4 操作系统初始化1 加电或复位 冷启动过程开始,中央处理器进入复位状态,将内存中的所有数据清零,对内存进行校验,如果没错,CS寄存器将置入FFFF,IP寄存器置入0000,这个CS:IP组合指向的是BIOS的入口。系统就是这样进入BIOS启动过程的。2 BIOS启动 上电自检POST(Power On Self Test) 对系统内的硬件设备进行监测和连接 最后,BIOS将从软盘或硬盘上
27、读入Boot Loader.如果从硬盘启动,BIOS将读入该盘的零柱面零磁道1扇区(MBR),这个扇区上就放着Boot Loader.2 BIOS启动 除了启动程序,BIOS还提供了一组中断以便于对硬件设备的访问。我们知道,当键盘上的某一键被按下,CPU就会产生一个中断并把这个键的信息读入。 在操作系统没有被装入以前(Bootsect.S还没有被读入),中断的响应程序由BIOS提供。3 Boot Loader Boot Loader是一段汇编代码,存放在MBR中,它的主要作用就是将系统启动代码读入内存。3 Boot Loader 因为在启动过程中,BIOS会把Boot Loader读入内存,并
28、把控制权交给它。MBR(硬盘启动)内的代码就是Boot Loader或者它的一部分,为了说明Boot loader的实现,先解释磁盘结构。3 Boot Loader 一个硬盘在DOS文件系统下可被分为四个基本分区,可以把一个基本分区定义为一个扩展分区,然后再把这个基本分区分为一个或多个逻辑分区。 整个硬盘的分区表存放在硬盘的第一个扇区(MBR),每个扩展分区也对应一个分区表,它存放在该扩展分区对应的第一个扇区里。 除主引导扇区外,每个基本分区和扩展分区也有自己的引导扇区,结构与MBR相同,但逻辑分区的引导扇区不能用于启动。3 Boot Loader 如果是硬盘启动,Boot Loader将查找
29、主分区表中标记为活动分区的表项,把该表项对应的分区的引导扇区读入,然后将控制权交给该扇区内的引导程序。3 Boot Loader 如果计算机上装有不只一个操作系统,仅仅MS-DOS的Boot Loader无法完成这种工作,需要一个可以多重起动的工具,下面介绍Linux下最常用的LILO.3 Boot Loader LILO实际上是一个在Linux环境下编写的Boot Loader程序,主要功能是引导Linux操作系统的启动。 LILO的功能实际上是有几个程序共同实现的,它们是: (1)Map Installer 这是LILO用于管理启动文件的程序。它将boot loader写入引导分区,创建纪
30、录文件以映射内核的启动。 (2)The boot loader 它负责把Linux内核或其他操作系统 的引导分区读入内存。还提供命令行接口,让用户选择从哪个操作系统启动和加入启动参数。 (3)其他文件:主要包括用于存放Map Installer记录的map文件和存放LILO配置信息的配置文件。4 进入操作系统 Boot Loader 做了这么多工作,一言以蔽之,只是把操作系统的代码调入内存,所以当它执行完后,自然该把控制权交给操作系统,由操作系统的启动程序来完成剩下的工作。4 进入操作系统 把控制权交给Setup.S这段程序 进入保护模式,同时把控制权交给Head.S Head.S调用/ini
31、t/main.C中的start_kernel函数,启动程序从start_kernel()函数继续执行Boot Loader 的概念 Boot Loader 是在操作系统内核运行之前运行的第一段小程序。 初始化硬件设备 建立内存空间的映射图 将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 加载操作系统内核映象到RAM中,并将系统的控制权传递给它 例如:Linuxxlanchen2008.3.14Embedded Operating systems69ICE ICE(In-Circuit Emulator)是一种用于替代目标机上CPU的设备,即在线仿真器。 它比
32、一般的CPU有更多的引出线,能够将内部的信号输出到被控制的目标机。 ICE上的Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。边界扫描技术(JTAG) JTAG标准测试访问接口与边界扫描结构(Standard Test Access Port and Boundary Scan Architecture),已被IEEE1149.1标准所采纳,是面向用户的测试接口。 该接口一般由4个引脚组成: 测试数据输入(TDI) 测试数据输出(TDO) 测试时钟(TCK) 测试模式选择引脚(TMS) 异步测试复位引脚(TRST,可选)边界扫描技术(JTAG) 优点
33、 可以通过边界扫描操作测试整个板的电气连接,特别为表面贴元件提供方便 各个引脚信号的采样,并可强制引脚输出用以测试外围芯片 可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径 可以进行多内核和多处理器的板级和芯片级的调试,通过串接 ,为芯片制造商提供芯片生产、测试的途径 不占用系统资源,能够调试没有外部总线的芯片,代价非常小 边界扫描技术(JTAG) 缺点 通过串口依次传递数据,速度比较慢 只能进行软件断点级别的调试 不能完成实时跟踪和多种事件触发等复杂调试功能 几种增强版本 ARM芯片的实时调试方案(E-TRACE) 背景调试模式BDM 片上仿真OnCE I/O时间时间内聚内聚功能
34、功能内聚内聚时间时间内聚内聚 抢占式调度和非抢占式调度:任务在运行过程中能否被打断的处理情况。 抢占式调度:正在运行的任务可能被其他任务所打断。 非抢占式调度:一旦任务开始运行,该任务只有在运行完成而主动放弃CPU资源,或是因为等待其他资源被阻塞的情况下才会停止运行。 实时内核大都采用了抢占式调度算法,使关键任务能够打断非关键任务的执行,确保关键任务的截止时间能够得到满足。抢占式和非抢占调度内核的可抢占性 内核可抢占与不可抢占:执行内核提供的系统调用的过程中,是否可以被中断打断。 可抢占内核:即使正在执行的是内核服务函数,也能响应中断,并且中断服务程序退出时能进行任务重新调度: 如果有优先级更
35、高的任务就绪,就立即让高优先级任务运行,不要求回到被中断的任务,将未完成的系统调用执行完。内核的可抢占性 不可抢占内核:不可抢占内核有两种情况 内核服务函数不能被中断:系统在执行内核服务函数时处于关中断状态,不能响应外部可屏蔽中断,这样就会在一定程度上延迟中断响应时间。 能被中断但是不能进行任务重新调度。 系统在执行内核服务函数时可以响应中断,不会延迟中断响应时间; 但是在中断退出时不进行任务重新调度。基于优先级的可抢占调度 基于优先级的可抢占调度方式 如果出现具有更高优先级的任务处于就绪状态时,当前任务将停止运行,把CPU的控制权交给具有更高优先级的任务,使更高优先级的任务得到执行。 实时内
36、核需要确保CPU总是被具有最高优先级的就绪任务所控制。 当一个具有比当前正在运行任务的优先级更高的任务处于就绪状态的时候,实时内核应及时进行任务切换,保存当前正在运行任务的上下文,切换到具有更高优先级的任务的上下文。平面内存模式:平面内存模式:应用程序和系统程序能够对整个内存空间进应用程序和系统程序能够对整个内存空间进行访问。行访问。平面内存模式比较简单,易于管理,性能也平面内存模式比较简单,易于管理,性能也比较高。比较高。适合于程序简单、代码量小和实时性要求比适合于程序简单、代码量小和实时性要求比较高的领域。较高的领域。内存保护:内存保护:应用比较复杂、程序量比较大的情况;应用比较复杂、程序
37、量比较大的情况;防止应用程序破坏操作系统或是其他应用程防止应用程序破坏操作系统或是其他应用程序的代码和数据。序的代码和数据。概述 内存保护内存保护内存保护 内存保护可通过硬件提供的MMU(memory management unit)来实现。 目前,大多数处理器都集成了MMU: 大幅度降低那些通过在处理器外部添加MMU模块的处理方式所存在的内存访问延迟。 MMU现在大都被设计作为处理器内部指令执行流水线的一部分,使得使用MMU不会降低系统性能,相反,如果系统软件不使用MMU,还会导致处理器的性能降低。 在某些情况下,不使能MMU,跳过处理器的相应流水线,可能导致处理器的性能降低80%左右。 内
38、存保护 MMU通常具有如下功能: 内存映射内存映射; 检查逻辑地址是否在限定的地址范围限定的地址范围内,防止页面地址越界; 检查对内存页面的访问是否违背特权信息特权信息,防止越权操作内存页面; 在必要的时候(页面地址越界或是页面操作越权)产生异常异常。 理想情况下 高优先级任务就绪后,能够立即抢占低优先级任务而得到执行。 但在有多个任务需要使用共享资源的情况下,可能会出现高优先级任务被低优先级任务阻塞,并等待低优先级任务执行的现象。 优先级反转(priority inversion):高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象。优先级反转 理想情况下
39、 高优先级任务就绪后,能够立即抢占低优先级任务而得到执行。 但在有多个任务需要使用共享资源的情况下,可能会出现高优先级任务被低优先级任务阻塞,并等待低优先级任务执行的现象。 优先级反转(priority inversion):高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象。优先级反转优先级继承协议优先级继承协议的基本思想是: 当一个任务阻塞了一个或多个高优先级任务时,该任务将不使用其原来的优先级,而使用被该任务所阻塞的所有任务的最高优先级作为其执行临界区的优先级。 当该任务退出临界区时,又恢复到其最初的优先级。 优先级天花板协议 使用优先级天花板协议的目
40、的在于解决优先级继承协议中存在的死锁和阻塞链问题。 优先级天花板指控制访问临界资源的信号量的优先级天花板。 信号量的优先级天花板为所有使用该信号量的任务的最高优先级。 在优先级天花板协议中,如果任务获得信号量,则在任务执行临界区的过程中,任务的优先级将被抬升到所获得信号量的优先级天花板。 在实际应用中,广义的中断通常被分为中断、自陷和异常(exception)等类别。 中断是由于中断是由于CPU外部的原因而改变程序执行外部的原因而改变程序执行流程的过程,属于流程的过程,属于异步事件异步事件,又称为,又称为硬件硬件中断中断。自陷和异常则为。自陷和异常则为同步事件同步事件; 自陷表示通过处理器所拥
41、有的自陷表示通过处理器所拥有的软件指令软件指令、可预期地使处理器正在执行的程序的执行可预期地使处理器正在执行的程序的执行流程发生变化,以执行特定的程序。自陷流程发生变化,以执行特定的程序。自陷是是显式的事件显式的事件,需要无条件地执行;,需要无条件地执行; Motorola 68000系列中的系列中的Trap指令指令 ARM中的中的SWI指令指令 Intel 80 x86中的中的INT指令指令 概述 中断的分类 分类方式 硬件中断是否可以被屏蔽:硬件中断是否可以被屏蔽: 可屏蔽中断可屏蔽中断和和不可屏蔽中断不可屏蔽中断 中断源:中断源: 硬件中断硬件中断和和软件中断软件中断 中断信号的产生:中
42、断信号的产生: 边缘触发中断边缘触发中断和和电平触发中断电平触发中断 中断服务程序的调用方式:中断服务程序的调用方式: 向量中断向量中断、直接中断直接中断和和间接中断间接中断 向量中断、直接中断和间接中断 向量中断:通过中断向量来调用中断服务程序。 直接中断:中断对应的中断服务程序的入口地址是一个固定值,当中断发生的时候,程序执行流程将直接跳转到中断服务程序的入口地址,执行中断服务程序。 间接中断:中断服务程序的入口地址由寄存器提供。 中断处理的过程 中断处理的过程分为: 中断检测中断检测 中断响应中断响应 中断处理中断处理 中断检测 中断检测在每条指令结束时进行,检测是否有中断请求或是否满足
43、异常条件。 为满足中断处理的需要,在指令周期中使用了为满足中断处理的需要,在指令周期中使用了中断周期中断周期。 在中断周期中,处理器检查是否有中断发生,在中断周期中,处理器检查是否有中断发生,即是否出现中断信号。即是否出现中断信号。 没有中断信号:处理器继续运行,并通过取指周期没有中断信号:处理器继续运行,并通过取指周期取当前程序的下一条指令;取当前程序的下一条指令; 有中断信号:将进入中断响应,对中断进行处理。有中断信号:将进入中断响应,对中断进行处理。 取指令取指令执行指令执行指令检查中断检查中断处理中断处理中断开始开始停止停止取周期取周期执行周期执行周期中断周期中断周期允许中断允许中断中
44、断和指令周期中断和指令周期 不允许不允许中断中断中断响应 中断响应是由处理器内部硬件完成的中断序列,而不是由程序执行的。 在Intel 80 x86中,中断响应过程的操作如下: 对可屏蔽中断,从对可屏蔽中断,从82598259中断控制器芯片读取中断向量中断控制器芯片读取中断向量号;号; 将标志寄存器将标志寄存器EFLAGEFLAG、CSCS和和IPIP压栈;压栈; 对于硬件中断,复位标志寄存器中的对于硬件中断,复位标志寄存器中的IFIF和和TFTF位,禁止位,禁止可屏蔽外部中断和单步异常;可屏蔽外部中断和单步异常; 根据中断向量号,查找中断向量表,根据中断服务程根据中断向量号,查找中断向量表,
45、根据中断服务程序的首址转移到中断服务程序执行。序的首址转移到中断服务程序执行。中断处理 中断处理:执行中断服务程序。 中断服务程序用来处理自陷、异常或是中断。中断服务程序用来处理自陷、异常或是中断。 尽管导致自陷、异常和中断的事件不同,但大尽管导致自陷、异常和中断的事件不同,但大都具有相同的中断服务程序结构。都具有相同的中断服务程序结构。 中断处理 中断服务程序的主要内容: 保存上下文:保存中断服务程序将要使用的保存上下文:保存中断服务程序将要使用的所有寄存所有寄存器的内容器的内容,以便于在退出中断服务程序之前进行恢复;,以便于在退出中断服务程序之前进行恢复; 如果中断向量被多个设备所共享,为
46、了确定产生该中如果中断向量被多个设备所共享,为了确定产生该中断信号的设备,需要断信号的设备,需要轮询轮询这些设备的中断状态寄存器;这些设备的中断状态寄存器; 获取中断相关的其他信息;获取中断相关的其他信息; 对中断进行具体的处理;对中断进行具体的处理; 恢复保存的上下文恢复保存的上下文; 执行执行中断返回指令中断返回指令,使,使CPUCPU的控制返回到被中断的程序的控制返回到被中断的程序继续执行。继续执行。实时内核的中断管理 中断服务程序通常包括三个方面的内容: 中断前导:中断前导: 保存中断现场,进入中断处理。保存中断现场,进入中断处理。 用户中断服务程序:用户中断服务程序: 完成对中断的具体处理。完成对中断的具体处理。 中断后续:中断后续: 恢复中断现场,退出中断处理。恢复中断现场,退出中断处理。 实时内核的中断管理 如果中断处理导致系统中出现比被中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚姻出轨风险控制与赔偿保障协议书
- 高空航拍气象监测直升机空域服务协议
- 高效生物技术研发平台共建合作协议
- 医疗机构医疗服务价格合规性审计协议
- 离婚案件中家暴受害者精神损害赔偿合同
- 煤矿安全风险防范与经营管理委托协议
- 影视动画渲染能力租赁与专业团队协作保障协议
- 皮肤脓肿护理规范与操作要点
- 中班音乐活动《小雨沙沙》教案设计
- 剪纸工艺流程与审美特征
- 高考英语688高频词汇excel版
- 连栋简易温室结构计算书
- 正餐服务业连锁经营模式研究
- 2023年山东济南先行投资集团有限责任公司招聘考试真题
- 核磁共振硅谱分析方法
- (高清版)JTGT 3222-2020 公路工程物探规程
- ZXB∕T 0202-2013 球墨铸铁给排水管道工程施工及验收规范 技术要求
- 消毒供应中心进修汇报
- 充电桩业主委托书
- MOOC 锅炉原理-长沙理工大学 中国大学慕课答案
- 企业档案分类方案归档范围保管期限表(详细)
评论
0/150
提交评论