中断处理

计算机组成原理期末复习往年卷子

怎甘沉沦 提交于 2019-12-29 21:35:29
1. I/O设备的编址方式通常有___ 统一编址 __和_ 独立编址 __两种方式。 P145 2.Cache是一种高速缓冲存储器,是为了解决____CPU____和___主存____之间速度不匹配而采用的一项重要技术 。 P124 3.在计算机系统中, I/O 设备与主机传递消息的控制方 式除了 程序查询方式、程序中断方式 ( 硬件方式 ) 外,还有_ _DMA__ 方式、 __ 通道 _ 方式、 __I/O 处理机 _ _方式( 软件方式 )。 P148 1. I/O设备的编址方式通常有___ 统一编址 __和_ 独立编址 __两种方式。 P145 4.动态随机存储器常见的刷新方式有___集中式__刷新、__分散式__刷新、_异步式___刷新三种。 P109 5.直接寻址方式中,指令的地址码部分直接给出操作数在内存中的 真实地址 EA (有效地址) ,在执行阶段只需要__ __1 ____次访存即可得到操作数。 P178 6.RISC称为 ___精简指令系统计算机 ,与其对应的是___ CISC ,即复杂指令系统计算机 。 P189 7.用二进制代码0、1表示的计算机语言称为___ _ 机器语言 ______,用助记符编写并增加了指示性指令的计算机语言称为____ 汇编语言 ____。 8.CPU从主存取出一条指令并执行该指令所需的全部时间叫做__ _ 指令周期 _。 P203

单片机(5)

寵の児 提交于 2019-12-29 11:29:57
计算机通信   随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。 通信有并行通信和串行通信两种方式。   在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。   计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。   并行通信通常是将数据字节的各位用多条数据线同时进行传送 。      并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。   串行通信是将数据字节分成一位一位的形式在 一条传输线上逐个地传送。      串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。 串行通信的基本概念   一、异步通信与同步通信     1、异步通信       异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。              异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系

ucosii-2- 5330杨璟旭

老子叫甜甜 提交于 2019-12-29 10:04:21
题目要求 阅读附件中的代码,回答: ucos是如何分层的? HAL都有哪些代码? 分析任务是如何切换的? 1. ucos是如何分层的? 一共四层:硬件相关层,驱动接口层,应用接口层,应用层。好的分层会让软件开发相对独立化,分工同步进行。 所有的硬件被抽象化,应用层的程序,在硬件完全更换的情况下,只要硬件相关层被更新,完全可以等同原先的所实现的功能。这样就极大成度上方便了移植。 硬件相关层: 在这层中,要尽量所有硬件相关都囊括在其中。不管是GPIO还是定时器,或串行接口。只要提供标准统一的接口,就可以让上层会因此而变的很潇洒。这其中有三个最为重要的接口Open,Close,Ctrl。 Open主要来完成对应硬件初始化,形参中包括了些,初始化的相关参数。Close失能硬件。Ctrl来实现一些控制的修改如:优先级,中断回调函数等等,硬件的不同,内容也大为不同。 驱动接口层: 其实在上一层也算是驱动层,只不过因为硬件相关,而把他分离。这层中会用到一个或多个硬件层的接口,进行组合来实现特定功能的程序。这部分程序可举例进行说明。以Flash为列,它这里主要调用硬件层的SPI函数接口,但是主要的写,读指令都是在这里函数中完成的。在这层中需要提供5个标准统一的接口函数: XXXOpen XXXClose XXXWrite XXXRead XXXIoCtl 没有被用到的函数,可以为空

Java 高并发五:JDK并发包1详细介绍

女生的网名这么多〃 提交于 2019-12-29 06:06:14
转自: https://www.jb51.net/article/92363.htm 1.1.1 ReentrantLock ReentrantLock感觉上是synchronized的增强版,synchronized的特点是使用简单,一切交给JVM去处理,但是功能上是比较薄弱的。在JDK1.5之前,ReentrantLock的性能要好于synchronized,由于对JVM进行了优化,现在的JDK版本中,两者性能是不相上下的。如果是简单的实现,不要刻意去使用ReentrantLock。 相比于synchronized,ReentrantLock在功能上更加丰富,它具有可重入、可中断、可限时、公平锁等特点。 /** @author Allen李 @date 说明ReentrantLock最初步的用法 */ public class TestReentrantLock01 implements Runnable { public static ReentrantLock lock = new ReentrantLock(); public static int i=0; @Override public void run() { for (int j = 0; j < 10000000; j++) { //并发规范写法一个加锁 lock.lock(); try { i++;

PCIE知识点

安稳与你 提交于 2019-12-28 16:16:24
概念: 一种高速串行计算机扩展总线标准。 物理: PCIExpress卡适合其物理尺寸或更大的插槽(使用×16作为最大的)。实际连接到插槽的通道数量也可能少于物理槽大小所支持的数量。一个例子是一个×16插槽可以运行×1、×2、×4、×8、×16的卡,当运行×4卡时只提供4条通道。其规格可以读为“×16(×4模式)”,而“×size @×速度”符号(“×16 @×4”)也是常见的。 标准: 总线架构: 分层结构: 它共分为四层,从下到上分别为:物理层(Physical Layer)、数据链路层(Link Layer)、处理层(Transaction Layer)和软件层(Software Layer)。图中并木有显示出软件层。 1、物理层 物理层是最底层,它负责接口或者设备之间的连接。物理层决定了PCIe总线接口的物理特性,如点对点串行连接、微差分信号驱动、热拨插、可配置带宽等,决定了其四根线全双工的串行数据传输方式。 在物理层的另一处重要方面就是中断。PCIe总线支持两个类型的中断,现行的PCI INTx (x= A, B, C, or D) 中断(即PCI总线的中断)被保留下来了,仍可在PCIe总线中应用。还有一个新的中断类型,那就是MSI (Message Signaled Interrupt,信息信号中断),INTx中断方式可以用信号方式中断主机芯片请求

Java并发(基础知识)—— Java中断机制

£可爱£侵袭症+ 提交于 2019-12-28 05:30:05
上文讲解了Java线程的创建、启动以及停止,在讲到停止线程时说到了Java中断,Java中断是停止线程的一种协作机制,本文打算对Java中断机制进行详细讲解。 在网上搜索Java中断机制,发现两篇好文章,分别如下: Java 理论与实践: 处理 InterruptedException 以及 详细分析Java中断机制 ,推荐大家仔细阅读。 中断是一种协作机制 必须记住,中断是一种协作机制。当一个线程中断另一个线程时,被中断的线程不一定要立即停止正在做的事情。相反,中断是礼貌地请求另一个线程在它愿意并且方便的时候停止它正在做的事情。有些方法,例如 Thread.sleep(),很认真地对待这样的请求,但并不是每个方法一定要对中断作出响应。 您可以随意忽略中断请求,但是这样做的话会影响响应。 中断状态 每个Java线程都有一个与之相关联的 Boolean 属性,该属性用于表示线程的中断状态,Thread类提供了三个方法用于操作中断状态,这些方法包括: public static boolean interrupted () 测试当前线程是否已经中断。线程的 中断状态 由该方法清除。换句话说,如果连续两次调用该方法,则第二次调用将返回 false(在第一次调用已清除了其中断状态之后,且第二次调用检验完中断状态前,当前线程再次中断的情况除外)。 public boolean

多线程与Android线程性能优化

假装没事ソ 提交于 2019-12-26 17:17:38
目录 多线程与Android线程性能优化 基础概念 CPU核心数和线程数的关系 CPU时间片轮转机制 什么是进程和线程 澄清并行和并发 高并发编程的意义、好处和注意事项 认识Java里的线程 线程的启动与中止 对Java里的线程再多一点点认识 深入理解run()和start() 其他的线程方法 线程间的共享和协作 线程间的协作 ThreadLocal 显式锁 Lock接口和synchronized的比较 Lock接口和核心方法 可重入锁ReentrantLock、所谓锁的公平和非公平 读写锁ReentrantReadWriteLock Condition接口 多线程与Android线程性能优化 基础概念 CPU核心数和线程数的关系 多核心:也指单芯片多处理器( Chip Multiprocessors,简称CMP),CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理 多线程: Simultaneous Multithreading.简称SMT.SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或

2019年9月9日星期一(STM32 内部时钟 中断)

☆樱花仙子☆ 提交于 2019-12-26 13:56:03
一 .stm32 的启动过程 在stm32的开发中,芯片的启动代码官方通常会提供,一般不需要修改。但是对芯片的启动代码有一定了解,有助于对某些组件工作原理加深了解 可以借助官方提供的启动代码来理解启动过程,启动代码是一个汇编文件(.s作为后缀),我们开发板的启动文件是start_stm32f40_41xxx.s 1.初始化栈 2.初始化堆 3.实现异常向量表 4.处理各个异常的代码 其中复位异常中 ----- 初始化一些基本硬件(时钟,SRAM,FLASH...),调用主函数 二 .stm32 的时钟系统 stm32f407的推荐时钟频率 168MHz 1. 提供参考时钟的硬件 晶振 ----------- 产生低频的稳定震荡信号 RC震荡电路 ----- 产生低频的不稳定震荡信号 以上产生的频率不足以直接供给CPU使用,实际上使用PLL(锁相环)通过一个低频信号产生一个高频信号,供给CPU使用 stm32f407一共4个原始时钟源 HSIRC -------- 高速内部RC震荡时钟(16M) HSEOSC -------- 高速外部晶振(4-26M) LSIRC -------- 低速内部RC震荡时钟(32K) LSEOSC ------- 低速外部晶振(32.768K) 2.stm32f407 时钟树 绝大多数的外设挂在AHB总线和APB总线上

操作系统知识系列之基础篇

為{幸葍}努か 提交于 2019-12-26 08:34:34
一、操作系统概述 特性 1. 并发: 同一时间间隔内支持执行多个任务, 对于一个核则是交替执行; 2. 共享: 硬件资源或数据资源支持多个进程共享; 3. 异步: 并发情况下, 一个程序会陆陆续续被执行,完成时间不可预知; 4. 虚拟: 物理实体转化为逻辑实体,如虚拟内存。 基本功能 CPU管理:对处理器的管理和调度最终归结为对进程和线程的管理和调度,包括进程控制和管理,线程控制和管理,确定处理器调度策略,设计处理器调度算法,做好处理器分配和回收。 存储管理:存储管理的主要任务是管理内存资源,为多道程序运行提供有力支撑,提高存储空间利用率,具体来说有内存分配与回收,地址转换与存储保护,内存共享与存储扩充等。 设备管理:设备管理的除妖任务是管理各种外部设备,完成用户提出的I/O请求;加快数据传输速度,发挥设备的并行性,提高设备的利用率;提供设备驱动程序和中断处理请求。 文件管理:文件库案例的主要任务有提供文件逻辑组织方法,提供文件物理组织方法,提供文件存取和使用方法,实现文件目录管理,实现文件共享和安全性控制,实现文件存储空间管理等。 体系结构 大内核:将操作系统作为一个整体放在内核当中。 微内核:将操作系统的功能进行详细划分,只有微内核在内核态中存在,其他的在用户态。由于存在用户态和内核态的切换所以会影响系统整体性能。 补充 用户栈: 进程在用户空间时创建的栈

并发编程基础知识-一

£可爱£侵袭症+ 提交于 2019-12-26 00:37:47
开始总结一下有关并发方面的知识,先用几篇博客来总结一下并发编程的相关基础知识,之后再对源码进行阅读和分析。 线程和进程 线程是进程的一个执行单元,也是进程内的可调度实体,线程和进程主要有以下区别: 地址空间 :进程内的一个执行单元,进程至少有一个线程,它们共享进程的地址空间,各个进程有自己独立的地址空间 资源拥有 :进程是资源分配和拥有的单位,同一个进程内的线程共享进程资源。 进程是系统分配资源和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。 线程的创建和执行方式 继承Thread类重写run()方法 实现Runnable接口的run()方法 使用Callable 这里前两种就不再赘述了,要强调的是 在调用start方法之后,线程并没有马上启动,只是处于就绪状态,等待获取cpu资源之后才会进入运行状态。 前两种方式都没有返回值,这里我们来说一下第三种,通过实现Callable接口重写call()方法,这里可以通过指定泛型类型来指定它的返回值。 线程通知和等待 Object类是所有类的父类,我们先来回忆一下它当中都有哪些方法。分别是 hashCode()、notify()、notifyAll()、equals()、finalize()、getCalss()、clone()、toString()、wait()、wait(long