软件水平 > 中级资格 > 嵌入式系统设计师 > 文章内容

软件水平考试嵌入式系统设计师辅导:存储管理、设备管理

2017-6-29编辑:daibenhua

  存储管理

  见《嵌入式系统设计师考试复习笔记之存储管理篇》。

  设备管理

  (1)设备管理基础

  一个I/O 单元通常由两个部分组成:

  A、机械部分:I/O 设备本身。

  B、电子部分:设备控制器或设备适配器。

  硬件寄存器的编址方式有三种:

  A、I/O独立编址:对于各种设备控制器中的每一个寄存器,分配一个唯一的I/O端口编号,也叫I/O 端口地址,然后用专门的I/O 指令对这些端口进行操作。这些端口地址构成的地址空间是完全独立的,与内存地址空间没有任何关系。

  B、内存映象编址:把各种设备控制器当中的每一个寄存器都映射为一个内存单元,这内存单元专门用于I/O 操作。端口地址空间与内存地址空间是统一编址的,端口地址空间是内存地址空间的一部分。

  C、混合编址:对于设备控制器当中的寄存器采用独立编址的方法,每个寄存器有一个独立的I/O 端口地址;而对于设备的数据缓冲区,则采用内存映象编址的方法,把他们统一到内存地址空间当中。

  (2)I/O控制方式:

  A、程序循环检测:要一直占用CPU,浪费CPU 的时间。

  B、中断驱动方式:前后台系统。

  C、直接内存访问:DMA 控制,减少了中断的次数。

  (3)I/O软件

  A、中断处理程序:当一个用户程序需要某种I/O 服务时,它会去调用相应的系统函数,而这个函数又会去调用相应的设备驱动程序,在驱动程序中会启动相应的I/O 操作,并且被阻塞起来,直到这个I/O 操作完成后,产生一个中断程序,并跳到相应的中断处理程序,在这里将会唤醒被阻塞的驱动程序。

  B 设备驱动程序:直接同I/O 设备打交道,直接对它们进行控制的软件模块。上层的I/O软件通过抽象的函数接口与设备驱动程序打交道,这些接口是标准的、稳定不变的,而硬件设备的具体细节被封装在设备驱动程序里面。设备驱动程序的管理通过驱动程序地址表来实现。驱动程序表中存放了各个设备驱动程序的入口地址,可以通过此表来实现设备驱动的动态安装与卸载。

  C、设备独立I/O软件:这部分软件在设备驱动程序的上面,是独立的I/O软件,也是系统内核的一部分,主要任务是实现所有设备都需要的一些通用I/O 功能,并向用户级的软件提供一个统一的访问接口。

  D、用户空间的I/O软件:大部分的I/O软件都是包含在操作系统当中的,也有一小部分运行在系统内核之外。主要可以分为下面两种:

  a、与用户程序进行链接的库函数:例如C 语言中与I/O 相关的库函数。

  b、完全运行在用户空间当中的程序:例如Spooling 技术。

  注:Spooling技术

  Spooling 是“外围设备联机操作”的所写,spooling 技术也叫假脱机技术或虚拟设备技术,它可以把一个独占的设备转变为具有共享特征的虚拟设备。在多道系统中,对于一个独占设备,专门利用一道程序来增强该设备的I/O 功能。优点有二:能提供高速的虚拟I/O 服务;能实现对独占设备的共享。

软件水平考试嵌入式系统设计师辅导:嵌入式操作系统的任务管理

热点推荐

登录注册
触屏版电脑版网站地图