IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> I/0设备管理与死锁知识随记 -> 正文阅读

[嵌入式]I/0设备管理与死锁知识随记

概念性知识

? ? ? ? 设备与CPU之间数据传送和控制方式有程序直接控制方式(利用输入\输出指令或询问指令测试一台设备的忙/闲标志位,根据设备当前的忙/闲状态决定是否继续询问设备状态还是由主存储器和外围设备交换一个字符或一个字)、中断控制方式(当设备控制器接收到对应设备数据后通过中断控制器引脚向CPU发送中断申请,当CPU响应中断后就会调用设备中断处理程序来访问交换数据)、DMA方式(也称成组数据传送方式,一般用于高速传输成组数据,其传输单位为块)和通道控制方式(通道是一个独立于CPU的专门I/O控制的处理机,控制设备与内存直接进行数据交换。通道按照信息交换方式通常设立三种类型的通道,分别为字节多路通道、数据选择通道和数组多路通道)。

? ? ? ? 对于DMA方式,在DMA控制器的控制下,它采用“偷窃”总线控制权的方法,让设备和内存之间可成批地进行数据交换,而不用CPU干预。这样既大大减轻了CPU的负担,也使I/O的数据传送速度大大提高。DMA的操作全部由硬件实现,不影响CPU寄存器的状态。

? ? ? ? 中断控制方式的处理过程如下

? ? ? ? ①CPU通过数据总线发出命令,启动外设工作,当前进程阻塞,调度程序调度其他进程;

? ? ? ? ②外设数据准备好,置位中断请求触发器;

? ? ? ? ③若此时接口中断屏蔽触发器状态位为非屏蔽状态,则接口向CPU发出中断请求;

? ? ? ? ④CPU接收中断请求(设备控制器的功能),且中断为允许中断状态,则中断判优电路工作;

? ? ? ? ⑤中断判优电路对优先级最高的中断请求予以响应,CPU中断正在执行的其他进程,转而执行中断服务程序。

? ? ? ? 通道所能实现的功能

? ? ? ? ①接受CPU的指令,按指令要求与指定的外围设备进行通信;

? ? ? ? ②从内存读取属于该通道的指令并执行通道程序,向设备控制器和设备发送各种命令;

? ? ? ? ③组织外围设备和内存之间进行数据传送,并根据需要提供数据缓存空间以及提供数据存入的地址和传送的数据量;

? ? ? ? ④从外围设备得到设备的状态信息形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元供CPU使用;

? ? ? ? ⑤将外围设备的中断请求和通道本身的中断请求,按序及时报告CPU。

? ? ? ? 计算机操作系统中,设备管理的主要任务有缓冲区管理设备分配设备处理虚拟设备以及实现设备独立性

? ? ? ? 在进行设备分配时,通常要借助于一些用于记录系统中有关设备、控制器和通道的信息。基本的表格有系统设备表(SDT)(包含设备类型、设备标识、获得设备的进程号、设备控制表指针)、设备控制表(DCT)(设备类型、识别标识、设备忙/闲标记、控制器控制表指针、设备等待队列首指针和设备等待队列尾指针)、控制器控制表(COCT)(控制器标识、控制器忙/闲标记、通道控制表指针、控制器等待队列首指针与控制器等待队列尾指针)、通道控制表(CHCT)(通道标识、通道忙/闲标记、控制器控制表指针、通道等待队列首指针和通道等待队列尾指针)。

? ? ? ? 时钟中断属于临时性资源(不可重用资源),是指某个进程所产生、只为另一个进程使用一次或经过短暂时间后不再使用的资源,如I/O和时钟中断、同步信号、消息等。

? ? ? ? 中央部分是CPU和主存,通过总线与第二层的接口(适配器)部件相连,第三层是各种外围设备控制器,最外层是外围设备。

? ? ? ? 通信控制器可以连接的设备主要是数据通信设备,数据通信设备是指数据通信系统中交换设备、传输设备和终端设备的总称。数据传输设备主要包括网络适配器、网络收发器、集线器(串行控制端口)、调制解调器(分基带和频带)、数据服务单元、时分复用器等。

? ? ? ? ?可以通过如下技术提高I/O性能

? ? ? ? ①通过应用缓冲技术,解决传输速度差异的问题;

? ? ? ? ②通过应用异步I/O技术,使CPU不必等待I/O的操作结果;

????????③通过应用DMA和通道部件,使CPU与这些部件能够并行执行;

????????④通过应用虚拟设备技术,减少进程阻塞时间,提高独占设备的利用率。


? ? ? ? ?死锁产生的原因有竞争资源进程推进顺序不当

? ? ? ? 解除死锁的方法有剥夺某些进程所占有的资源撤销某些进程重新启动系统

? ? ? ? 为了预防死锁可以进行如下操作,建立SPOOLING(假脱机)系统,采用逻辑共享,破坏互斥条件;静态分配资源(进程必须在开始执行前就申请它所要的全部资源,仅当系统能满足且分配给进程后,该进程才能开始执行);按序分配资源(对系统中每一个资源给出一个编号,规定任何一个进程申请两个以上的资源时,总是先申请编号小的资源,再申请编号大的资源,破坏了死锁形成的循环等待条件);剥夺式分配资源(当一个进程申请资源得不到满足时则可从另一个进程那里去抢夺。目前只适用于对处理器和内存的分配)。

? ? ? ? 形成死锁的必要条件:互斥条件、请求和保持条件、不可剥夺条件、环路等待条件。

? ? ? ? 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败。活锁和死锁的区别在于处于活锁的实体是在不断改变状态,而处于死锁的实体表现为一直等待。活锁有可能自行解开,而死锁不能

参考资料:

[1]活锁_360百科

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:18:15  更:2022-09-25 23:19:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:23:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码