##结合社区几位大神的笔记,整理了一些计算机四级嵌入式工程师备考试题。写下以下理解和必要性。如有错误和遗漏,请纠正
计算机由运算器、控制器、存储器、输入设备和输出设备组成。 非操作系统名称:SNMP(在这里专门设计 IP 网络管理网络节点(服务器、工作站、路由器、交换机和HUBS等)标准协议,是应用层协议),Eclipse(基于开开源代码的开放源代码Java是:Linux,BSD((Berkeley Software Distribution,伯克利软件套件)是Unix衍生系统),DOS(磁盘操作系统) 操作系统分类:批处理系统、分时操作系统、实时操作系统、嵌入式操作系统、个人计算机操作系统、网络操作系统等。 从计算机系统开发的角度来看,操作系统的主要功能是提供虚拟机和扩展机。 从开发者或用户的角度来看,操作系统的主要功能是提供系统调用。 从计算机应用的角度来看,操作系统的主要功能是提供人机交互接口 局部原理:CPU访问存储器时,访问的存储单元往往聚集在较小的连续区域,无论是访问指令还是访问数据。 时间局部原理:如果一个信息项目被访问,他很可能会在不久的将来再次访问,这意味着指令有很多重复,如循环代码。 空间局部性:未来使用的信息很可能接近当前使用的信息(因为程序代码的顺序) -0原码=10000000 -0反码=11111111 -0补码=00000000 CPU的状态: CPU所处的状态分为内核态和用户态 内核状态(管理状态、管理状态)和用户状态(目标状态、目标状态)是用于操作系统运行安全的状态标志 当用户过程从用户状态转变为核心状态时,使用的指令是访问管理指令。 在用户态下使用特权指令导致用户程序中断:访问中断。(从用户态到核心态的唯一途径) 操作系统需要从内核状态到用户状态进行处理:修改程序状态字。 算术运算指令可以在用户态下执行,(不可以的:设置控制寄存器指令,关中断指令,切换指针指令。) 该系统为用户提供接口: 程序位于用户态,被调用程序位于核心态。 操作系统为用户提供的接口:1。命令行(在终端窗口输入命令控制计算机)系统调用(应用程序编程的唯一接口)3。 菜单(windows) 编写程序通常使用过程调用和系统调用。系统调用无法实现的功能是调用程序多次嵌套和递归。 fork()函数,属于过程控制系统调用。
操作系统核心程序:过程调度程序、中断服务程序、设备驱动程序。
批处理操作系统的特点:批处理用户提交的操作;用户不能干预操作;系统资源利用率高。 批处理操作系统的优点:批处理用户操作,自动化程度高,系统资源利用率高,操作吞吐率高。缺点:用户不能直接与计算机交互,周转时间长。 对于运行批处理作业的大型计算机中心,调度算法的设计目标是:1.吞吐量大,2.周转时间短,3.较高CPU利用率。 对于交互式系统,调度算法的设计目标是:1。响应时间快;2.性能更均衡。
构造操作系统的方法:微内核结构。操作系统结构有三种类型:整体结构(CP/M和MS-DOS操作系统属于此类结构)、层次结构、微核结构。 微内核结构是指:客户机/服务器结构 微内核结构特点:灵活性和可扩展性高,提高了操作系统的可靠性,更适合分布式系统。 微内核结构的优点:1。提高了系统的可扩展性;2。提高了系统的可靠性;3。可移植性;4。为分布式系统提供支持;5。集成到目标技术中
顺序执行程序的特点:顺序性(严格顺序执行)、封闭性(所有资源独有)、结果确定性(初始值确定,结果确定)、结果可再现性(赋值后多次运行结果相同)
多个程序设计特点:独立性(执行与其他程序无关)、随机性(执行前后顺序)、资源共享(CPU、IO设备共享)
多个程序设计可以实现过程并发性,多个程序设计环境的特点:独立性、随机性和共享性。多个程序设计是将几个独立的程序同时存储在计算机内存中,以便它们在管理程序的控制下相互穿插。特点:多、宏并行、微串行。 多程序设计的意义在于宏观上同时运行多个程序 程序局部原理分为空间局部和时间局部,空间局部是指程序代码的顺序。 并发执行程序:并发程序之间存在相互限制;并发程序不再对应于计算;并发程序的执行结果不能再现。
提高操作系统性能: (1)高速缓存 (2)合理分配磁盘空间 (3)磁盘驱动调度 (4)信息优化分布 (5)RAID技术(磁盘阵列Redundant Arrays of Independent Disks)
1.过程调度: 进程控制块(PCB):一般分为两部分:调度信息和现场信息。调度信息包括:过程名称(PID、流程标识符、流程号)、存储信息(、优先级、当前状态)、资源清单、家庭关系、消息队列指针、流程队列指针和当前开放文件等。现场信息包括:程序状态字、时钟、边界地址寄存器等。*无用户栈、磁盘目录等奇怪的东西
进程控制块PCB组织方法:线性方法、链接方法、索引方法。B 树方法)
由于设计目标不同,计算密集型,I/O密集型
从操作系统的角度来看,过程的必要组成部分是1.PCB,2.指令,3.数据
fork()函数(系统调用):创建子过程。子过程返回0,父过程返回子过程PID建失败将返回0
当一个运行过程打开一个新的文件时,指向文件数据结构的关键指针存储在过程控制块中PCB进程控制块包含了进程申请的所有资源清单
可重入代码是一种允许多个过程同时访问的代码,可以由多个过程共享。(可重入代码,又称纯代码,是允许多个过程访问的代码。因此,可重入代码是一种不允许任何过程修改的代码 。为了修改和访问纯代码的过程,将执行中可能发生变化的部分复制到数据区域,只需修改数据区域的内容,而不改变共享代码,然后共享代码成为可重新访问代码)
英语描述了过程的几种状态:
suspend() 【悬挂暂停状态】(将过程从内存转移到外存) block()?? 【阻塞】? (过程在内存中等待事件) Wakeup() 【唤醒】? active()? 【激活】(从外存到内存的过程)
处理器调度:高级调度,中级调度,低级调度
如果由于申请的内存资源长期无法满足一个过程,则操作系统处理过程的最佳方法是悬挂过程。
使用:suspend()。 挂起方式:1。挂起原语调用者本身,也就是挂起自己。 2.悬挂标识符的过程。 3.将指定的标志符及其全部或部分子孙后代挂起保存n过程pcb副本内存区。
在单核处理机中,最多有一个过程处于运行状态,至少没有一个过程。如果总过程为n,则最多处于就绪状态n-1!!(有运行态就会有就绪态,有就绪态就会有运行态)
系统流程优先于用户流程优先; 静态优先级:创建时首先确定初始优先级,工艺运行时优先级不变; 动态优先级:创建时首先确定初始优先级,并随过程特性而变化;
进程调度算法: 1.先服务先服务先服务FCFS?? 2.最短作业优先SJF?? 3.剩余时间最短优先?SRT??? 4.时间片旋转法 5.最高优先级算法 6.多级反馈队列算法(多级反馈队列调度算法不仅能响应高优先级作业,还能快速完成短作业(过程)。UNIX操作系统采用这种调度算法) 适应交互式操作系统:1.多级反馈队列2.高优先级算法3.时间片旋转
进程同步:(进程之间的合作) 多个过程之间有明显的前后关系
计算机系统并发过程中存在相互感知的问题:
1.互不感知(竞争) 2.相互间接感知(通过共享合作) 3.相互直接感知(通过通信合作)
不能使用过程共享P,V为了实现操作,可以实现的是(进程同步,进程相互排斥,进程的前趋关系。
实现过程互斥的方法:1.Peterson算法;2.Test-and-Set(TS)指令;3.Swap或Exchange指令;4.信号量。 Peterson算法是一种并发程序设计算法,可以在指令中读写。 硬件指令Test-and-Set,简称TS,实现临界资源互斥访问。 Swap或Exchange该指令是寄存器与存储内容交换的指令,可用于信号量操作,实现系统任务之间的同步或排斥。 信号量机制是实现过程互斥的重要途径。
分配器是分配器实时系统调度策略之一,而不是过程互斥。
有四种操作:1.初始化;2.等信号(wait)(挂起)(P操作);3.给信号(signa)(发信号)(post)(V操作);4.清理(destroy)
进程通信: 共享内存:在通信过程中设置公共内存区,一个读,一个写 消息机制:利用内存中的公共缓冲区组织队列 管道通信:连接两个进程之间的一个打开共享文件,专门用于进程间数据通信。 箱:创建一个连接两个进程间的信箱,发送发把信件投入信箱,接收方打开信箱。 套接字:一组进程间交换数据的协议 共享内存即共享缓冲区方式进行通信,缓冲区数目不为1时可同步或异步;消息机制是指进程间通过互发送消息进行通信,可同步或异步;套接字是一组进程间交换数据的协议,可以是异步或同步;管道通信,是一方进程发送另一方只能接收,此方法只为同步。只有管道通信是同步不能异步。 采用共享内存方式可以进行进程间的通信,该方式需要程序员解决的是:处理进程间对公共内存使用的互斥关系。(1.怎样提供共享内存;2.公共内存中的读写互斥问题。) 共享内存(shared memory)是Unix下的多进程之间的通信方法,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存,不需要多分内容的拷贝来传递信息,特点是可以高效的共享大量信息。
生产者和消费者问题:生产者往缓冲区放产品的时候要先执行P(empty空闲槽=1)操作,确保缓冲区内部有足够的空间能容纳产品。消费者从缓冲区取出产品的时候要先执行P(full产品=0)操作,确保缓冲区内有可以取出的产品,此处不是为了缓冲区互斥使用,而是实现一个基本的同步关系。
P操作,申请资源,资源数减一,V操作,释放资源,资源数目加一。
临界资源的4个区:1.进入区(进入前访问)2.临界区(存放了临界资源)3.退出区(退出时访问)4.剩余区(代码其他部分)
进程访问临界区时:空闲让进 忙则等待,有限等待,让权等待。
信号量初值一定大于或者等于0
Pthread线程包的主要几个函数(一般出现在一段线程创建的考题中):
pthread_create 创建一个新线程 pthread_exit 结束调用线程 pthread_yield 线程主动释放CPU来运行其他线程 pthread_join 等待其他“线程”的结束,
pthread_create函数的使用:创建线程。有四个参数:第一个参数为指向线程标识符的指针;第二个参数用来设置线程属性;第三个参数是线程入口函数的起始地址;第四个参数是入口函数的参数。一般以线程运行函数名来命名线程名,但线程标识信息放在tid里。如:
status = pthread_create(&threas[i],NULL,function,void*tid);
线程的实现机制:1.用户线程;2.内核线程;3.混合线程。
在引入线程的系统中,进程作为资源拥有的基本单位,线程作为调度和分派的基本单位
引入线程主要目的是:提高并发度,减少通信开销,线程之间切换时间短,每个线程拥有独立的栈
线程描述表记录:线程ID,指令地址寄存器,处理器寄存器,硬件设备寄存器,栈现场状态。
处理器寄存器的值,硬件设备寄存器的值,栈现场状态。
死锁:相关的进程阻塞,且无法被唤醒 活锁:相关的进程阻塞,但是可以调度,却没有进展 饥饿:相关的进程没有阻塞,但是调度被无限期延后
四个必要条件:
(1)资源互斥使用(资源本身的特性) (2)不可抢占资源(进程本身内部特性) (3)占有的资源不释放(进程本身内部特性) (4)存在等待回路(进程之间的外部特性)
计算机系统死锁原因:1推进顺序2.资源分配不合理
死锁预防:通过破坏产生死锁的条件(除第一条外)来防止死锁 死锁避免:通过一些条件限制来防止系统进入不安全状态来避免死锁
死锁的4种预防方法:
1.Spooling技术(拥护层面感觉取消互斥) 2.强行剥夺资源 3.一次性分配资源(破坏请求和保持) 4.资源有序分配(哲学家进餐问题)
死锁避免:银行家算法:
十字路口预防死锁:是破坏请求和保持条件。
死锁检测和解除
安全状态:安全状态是不死锁状态,不安全状态不一定就是死锁状态,死锁状态包含在不安全状态里面
处理机调度
存储器的三个性能指标:存取速度,存储容量,每位价格
每个进程在得到处理机运行前,必须首先进行 "部分调入内存"的工作
内存分配: 内存管理方法: 固定分区管理 可变分区管理:设计简单,碎片多,无法实现虚拟存储 页式分配管理:管理简单,资源利用率高,可以实现虚拟存储(内存的利用率较高且管理简单的方法)
可变分区存储管理方案: 1.首次(最先)适应算法:优先分配第一个足够大的内存可变分区给程序。 2.最佳(优)适应算法:选取最小且大小满足要求的分区来分配 3.最坏适应算法:选取最大的分区分配 4.下次适应算法:从上次的分配的点开始继续依次分配
虚拟存储器:1.将主存储空间和辅存储空间统一编址;2.需要硬件支持,并由操作系统调度;3.根据组织形式,可分为页式虚拟存储器,段式虚拟存储器和段页式虚拟存储器。为了扩大程序的访问空间。 在虚拟页存储方案中,常用的页面调入策略:请求调页,预调页。 实现虚拟页式存储管理的硬件基础是缺页中断机制。
虚拟页式存储管理方法: 1.先进先出页面置换法(FIFO):淘汰先进内存的页面 2.最近最少使用算法(least recently used LRU):淘汰最长时间未被使用的页面,即关注页面最后一次调用到发生置换时的时间长短。 3.最近不常用的页面置换算法(least frequently used LFU):淘汰一定时期被访问次数最少的页面,关注一端时间内页面被使用的频率,需要定一个时间周期T 4.理想的页面置换算法(最佳页面置换算法)(OPT):理想的,不可实现。
页式存储管理方案的地址转换工作是由硬件完成的,不是操作系统完成的
虚拟页式存储管理中,为实现地址变换所涉及到的数据结构是:空闲区表,页表,位图。
Belady现象:在分页式虚拟存储器管理中,发生缺页时置换算法采用FIFO(先进先出)算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配页面增多,但缺页率反而提高的异常现象。FIFO有可能产生Belady现象。 “抖动”现象是页面置换算法不合理。抖动:刚被替换出去的页,立即又要被访问,需要将它调入,因无空闲内存又要替换另一页,而后者又是即将被访问的页,于是造成了系统需花费大量时间忙于这种频繁的页面交换。
内存在读操作时内存可以为多个进程所同时共享,属于共享资源,而在写操作时只能是互斥访问,属于临界资源。
虚拟页式存储管理系统,页表必须包含的项: 1.页号 2.页框号 3.访问位(进行页面置换时查看) 4.驻留位、中断位、有效位、存在位(用来判断是否已经进入内存) 5.修改位(进行页面置换时查看) 6.保护位
存在外碎片的存储管理方案是:1.段式 2.动态分区(不是段页式,不是页式)
可以与虚拟存储技术结合的使用:1.段式2.页式3.段页式
支持多道程序设计的管理方案: 1.可变分区 2.页式存储管理 3.固定分区 4.段页式
页式存储管理中的页面和页框大小可以采用不同的尺寸,为了提高内存利用率,根据需要采用多种不同大小的页面,用户进程在运行过程中不可以改变页面尺寸,只能由操作系统设置页面的大小。
内存和cache的映射方式: 全相联映射方式:主存上的任意一块可以映射到cache中的任意一块 直接相联映射方式:主存上的其中一块固定映射到cache上的其中一块 组相联映射方式:
文件按照文件的组织形式划分: 文件按照文件的性质和用途划分: 文件按照文件保护方式划分: 文件按照文件的存放时限划分: 文件按照文件的物理结构划分:
文件逻辑结构分类: 文件物理结构分类:
FAT32文件系统:链接结构(Windows使用这种方法)
FAT文件系统是指文件分配表(file allocation table),FAT16是指系统中用16位表示簇号,FAT文件系统是windows支持的文件系统,FAT文件系统中文件的物理结构是链接结构。(FAT16不支持长文件名,文件名不可达到255个字符。)
文件的创建步骤:(建立文件系统调用的一般形式为create(文件名,访问权限,,等))
1.检查参数的合法性(检查文件名是否合法) 2.检查同一目录是否重名 3.在目录中有没有空位置 4.填写目录项信息(文件名,用户名,存取权限等) 5.返回
使用文件系统时,通常要显式地进行open()操作,这样做的目的是将文件控制块(FCB)读入内存。
使用文件系统时,通常要显示地进行close()操作,这样目的是:将文件控制块写入磁盘或缓存。
文件系统的一个特点是“按名存取”,即用户只要给出文件的符号名就能方便地存取在存空间地该文件信息而不必了解和处理文件地具体物理地址。
从用户角度看,建立文件系统的主要目标是:实现文件的按名存取。
树型多级目录优点:1.可以很好反映现实世界复杂层次结构地数据集合;2.加快了目录地检索速度;3.可以重名,只要这些文件不在同一个子目录中;4.易于实现子树中文件保护,保密和共享。
目录管理:树形,优点是:1.层次清楚2.解决了文件重名问题3,搜索速度快
文件储存空间管理:空闲空间的分配和回收:
1.空闲区表 2.空闲块链 (相对于空闲区表省内存,但是效率低) 3.位示图,(需要理解位示图的原理和使用)(效率强,x86使用) 4.成组链接(有些版本UNIX采用这种方法)
文件读写管理和保护:存取控制矩阵,基于目录的存取权限,基于文件的存取权限
保证操作系统中文件的安全:定期转储备份文件,设置文件访问控制列表,(采用RIAD阵列不是)
UNIX系统文件权限。 XYZ;X:文件所有者;Y:所在同组用户;Z:其他用户;(存取控制矩阵)
rwx:可读可写可执行。 r:100;w:010;x:001。 如【123】,则1为001,2为010,3为011, 文件所有者可以执行不可读写
计算机操作系统中,设备管理的主要任务
1.解决设备和CPU之间的性能不匹配和通过协调技术避免设备冲突。 2.方便用户使用设备管理 3.保证设备使用的安全,传送过程中数据是保密安全的。
设备的分类:按速度分类:高速设备,低速设备 按传输的形式分类:流设备,块设备 按共享和独享方式分类:独享设备(独占设备),共享设备
设备分配:(针对独立设备的操作) 设备分配步骤:先查找系统设备表(SDT),发现空闲设备,银行家算法通过后,在查找设备控制表(DCT),再找控制器控制表(CCT),进程控制块映射,逻辑设备映射表(LDT)计入PCB。
设备与CPU之间数据传送和控制方式有:
程序直接控制方式 | DMA方式 | 通道控制方式 | 中断控制方式 |
---|
(不包含设备控制方式。
- 程序直接控制方式:利用输入/输出指令或询问指令测试一台设备的忙/闲位,根据设备当前的忙或闲的状态,决定是继续询问设备状态还是由主存储器和外围设备交换一个字符或一个字。(用户进程在等待鼠标点击输入时,不断检测对应接口寄存器的完成位是否为1)
- 中断控制方式:CPU与外设在大部分时间内并行工作,当CPU启动外设后,不需要去查询其工作状态,可继续执行主程序,该I/O设备控制方式称为:中断控制方式。中断机构引入后,外围设备有了反映其状态的能力,仅当操作正常或异常结束时才中断中央处理器。实现了主机和外围设备一定程度的并行操作,这叫中断方式。
- 通道控制方式:系统引入一个不同于CPU的特殊功能处理单元,他有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。 (通道是指:一个独立于CPU的专门I/O控制的处理机,控制设备与内存直接进行交换。在操作结束时向CPU发出中断信号。)
- DMA方式,是CPU通过向DMA控制器设定若干参数,然后DMA打开了一条内存到设备的通道,这样,设备(内存)中的数据可以不通过CPU来进行数据交互。缺点是多少设备就需要多少DMA,而且,DMA方式下,CPU的访问设备是以数据块为周期的。
通道和DMA区别:
1、通道一般用在大型计算机系统中(不是大型机)。 2、通道实质是一台能够执行有限的输入输出指令,并能被多台外设共享的小型DMA专用处理机。 3、通道的作用–解决了两个问题:
1)由cpu承担输入输出的工作。 虽然DMA无需cpu进行外设与内存的数据交换工作,但是这只是减少了cpu的负担。因而DMA中,输入输出的初始化仍然要由cpu来完成。 2)大型计算机系统中高速设备共享DMA接口的问题。大型计算机系统的外设太多以至于不得不共享有限的DMA接口(小型计算机系统比如pc机中每个高速设备分配一个DMA接口)。
当用户使用外部设备时,其控制设备的命令传递途径以此:用户应用层→设备独立层→设备驱动层→设备硬件
计算机I/O系统的软件包括:中断处理程序,设备驱动程序,与设备无关的操作系统软件,用户级软件。
硬件描述层软件 属于硬件范围。
缓冲区的作用:匹配低速设备和高速运行的内存等,能并发执行一些数据处理 磁盘结构:盘面、磁道,扇区 磁盘调度算法:
先来先服务 | 最短寻道时间优先 | 扫描算法(电梯算法) | 循环扫描法 |
---|---|---|---|
寻道时间大 | 存在饥饿现象 | 仍然存在少量饥饿现象 | 减少饥饿现象,但是增加寻道时间 |
影响磁盘性能:寻道时间,旋转时间,传输时间。(调度时间不影响)访问磁盘时间:寻道时间Ts,旋转时间Tr,传输时间Tt。其中数据传输时间最短。
设备的通道控制:
I/O设备管理中,i/o软件的层次结构有(用户应用层,设备独立层,设备驱动层,中断处理层)(设备执行层不属于)
虚拟设备:作用:将低速设备虚拟成高速设备,将独享设备虚拟成共享设备 Spooling技术,以磁盘作为虚拟设备
SPOOLing系统的主要组成部分是 1.输入井和输出井 2.输入缓冲区和输出缓冲区 3.输入进程和输出进程
计算机接口及组成原理
芯片结构 8086CPU 8086CPU结构 分为两部分,以是指令执行部件(EU)和总线接口部件(BIU),如图: 其中执行部件包括:
执行部件 总线接口部件
标志寄存器(FR) 算术逻辑单元ALU 堆栈指针寄存器SP 基数指针寄存器BP 源变址寄存器SI 目的变址寄存器DI
20位地址加法器 4个16位段地址寄存器CS,DS,SS,ES 16位指令指针寄存器IP(用户不能直接使用) 6字节指令队列缓冲器 四个通用寄存器
其中标志标志寄存器如图所示: 一共9个标志寄存器,6个状态标志,3个控制标志:
6个状态标志:
SF(符号标志), OF(溢出标志), ZF(零标志), AF(辅助进位标志auxiliary flag), PF(奇偶标志parity flag), CF(进位标志)
3个控制标志:
DF(方向标志), TF(陷阱标志), IF(中断允许标志)
在字符串指令中,源数据的地址由DS给出段地址,SI给出偏移量;目的数据的地址由ES给出段地址,DI给出偏移量。
处理器中对用户可见的寄存器:数据寄存器(又称通用寄存器),地址寄存器,条件码寄存器。只用控制和状态寄存器对用户不可见(如PC,IR,PSW)
当寄存器中有符号数进行乘除法就是进行算术左移或右移
8086的最小模式和最大模式: 8086CPU工作在最小模式下,则构成计算机系统的基本部件有:8282地址锁存器,8284时钟发生器,8286数据驱动器。
8086CPU工作在最大模式下,产生ALE,DEN,INTA等控制信号的芯片是8288
8086CPU工作在最小模式下,当其他总线控制部件控制系统总线期间,CPU引脚信号HOLD和HLDA的状态是:1和1。
8086的编址方式:4位短地址+16位逻辑地址=物理地址(因为8086为16位CPU,而它有20条地址线,地址为20位,所以形成特殊的编址方式)
8086最大的IO寻址为64KB(因为用的是地址线的低16位来管理IO端口空间,故为2^16 =64K),中断向量可储存256个中断向量,存储器寻址1MB=2^20,采用储存器分段后,每段可为64KB
8086 CPU被复位而恢复正常工作,是指从内存物理地址FFFF0H处开始执行程序。FFFF0H单元存放一条无条件转移指令,用于转到系统程序入口处,这样系统一旦被启动边自动进入系统程序。
在8086CPU的中断中,需要由硬件提供中断类型码的是:INTR 8086CPU在响应INTR中断时中断类型码由I/O提供 8086微机系统中,NMI中断的中断向量位置固定在00008H开始的4个单元中。 . 中断向量表存放CS IP 高位CS,低位IP。 8086CPU构成的微机系统中,关中断指令CLI的作用是禁止CPU响应可屏蔽中断 8086CPU构成的微机系统中,在执行INT n指令或者相应硬件中断时,CPU保护现场的顺序是:CS,IP,FR。 8086CPU中断响应和处理。8086CPU执行完一条指令后对中断进行判断;响应中断时,首先保护标志寄存器内容和断点。 .硬件中断和软件中断的区别:中断的引发方式不同,获取中断类型码的方式不同,根据中断类型码转向中断服务程序的方式不同,中断响应的条件不同。
8086CPU构成的微机系统中,中断优先权顺序由高到低:溢出中断,NMI,单步中断。
8086系统的DMA方式下,数据传送过程中CPU与总线的关系是成高阻状态。 8086CPU执行IRET指令,从堆栈当前栈顶弹出的字节数为6个字节。 . Pentium处理器:
Pentium微处理器的寄存器 1.通用寄存器; 2.段寄存器和描述符寄存器; 3.指令指针寄存器; 4.标志寄存器: VIF为虚拟中断标志。 VIP为虚拟中断挂起标志。 ID为鉴定标志,该标志用以指示Pentium处理器是否支持CPUID指令。 Pentium处理器的标志寄存器:
Pentium的四种工作模式的转换: 各寄存器的功能:
CR0:负责控制处理器工作模式的 CR1:未使用 CR2和CR3:用于分页和分段管理 CR4:Pentium处理器特有
实地址模式:上电复位后的模式 保护模式:可以上操作系统,能执行多任务,并且具有储存保护(类似系统模式和用户模式)有各种安全管理机制。
Pentium微处理器工作在保护模式下时,组成虚拟地址的是:16位段选择符和32位偏移量。
Pentium微处理器可访问的物理存储器的范围是:4GB,(64位数据线,32位地址线,所以2^32=4GB)
Pentium微处理器在系统各部件之间进行高速数据传输操作的系统总线是PCI
Pentium微处理器中,程序员不能直接读写的32位的寄存器是TR(任务寄存器)
Pentium存储管理:由分段部件和分页部件协同完成 分段部件将逻辑地址转换为线性地址 分页部件将线性地址转换为物理地址 段描述符为处理器提供段的访问控制及状态信息 采用描述表结构进行管理
Pentium微处理器构成的微机系统中,实模式下的中断向量表所占用的内存空间是1KB. Pentium微处理器的调试寄存器的作用是存放断点的地址和状态 Pentium微处理器执行RET指令返回时,标志寄存器的嵌套标志位的值是NT=0 Pentium处理器中,由CALL指令,中断或异常引起程序被调用时,标志寄存器的嵌套标志位NT=1。 Pentium微处理器的引脚收到 SMI请求 进入系统管理模式
Pentium微处理器进行一次算术和逻辑运算时,可以处理的信息长度是16位,8位。
6个段寄存器 Pentium系统段描述符:每个任务可定义很多段,每段对应一个段描述符,段描述符中包含了段的大小,位置,状态信息和控制信息,段描述符的内容由操作系统生成。 Pentium采用描述符表的优点:可大大扩展存储器空间 可实现虚拟存储 可实现多任务隔离 Pentium微处理器在保护模式下,段寄存器内存放的是段选择符。 Pentium微处理器在保护模式下,每个程序都拥有他自己的存储空间以及段描述符。 采用门描述符的作用:控制访问的目标代码的入口点。 Pentium微处理器工作在保护模式下,采取分段管理时,用来区分是系统描述符还是非系统描述符的字段是:程序段描述中的S字段。 Pentium微处理器工作在保护模式下时使用门描述控制访问目标代码的入口,门描述符:1.调用门描述符;2.任务门描述符;3.中断门描述符;4.陷阱门描述符。 描述符包含全局描述符和局部描述符。
一个完整的指令周期应包括:取指周期、执行周期、间址周期和中断周期。
指令周期是指:取出并执行一条指令的时间。从取指令,分析指令,执行完所需的全部时间
当存储器或外设速度比CPU的读写周期慢时,决定是否需要插入TW,8086CPU会在T3状态的前沿采样READY信号。 当8086CPU采样到READY=0时,CPU将插入等待周期。 当外设速度与CPU不匹配时,8086CPU需要在T4状态前插入Tw状态。
一个基本的总线周期由4个时钟周期T组成,在T1状态,CPU往总线AD15-AD0上发出的信号是地址信号。
CPU对存储器或I/O端口完成一次读/写操作所需的时间称为:一个存储周期。
单总线结构:计算机的CPU,内存和I/O都挂接在一根总线上。
总线性能指标:总线宽度,总线带宽,总线控制方式。 总线带宽是指单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位MB/s表示
.PCI(Peripheral Component Interconnect 外设部件互连标准)总线:32位,支持即插即用功能 地址线与数据线是复用的 是一种独立于处理器的总线标准,可以支持多种处理器 能提供地址和数据的奇偶校验功能。
总线驱动的目的是使总线提供更大的电流
流水线: 衡量流水线性能的主要指标有:吞吐率,加速比,效率。 指令流水线中的加速比:采用流水线后的工作速度与等效的顺序串行方式的工作速度之比。 流水线吞吐率是指:单位时间内流水线上完成的指令或者输出结果的数量 流水线最大吞吐率是指:流水线达到稳定状态后可以获得的吞吐率。
在指令流水线中,如果采用二次重叠控制方式,所需执行的时间,n个指令,t为取指或译指或执行,T为完成总时间:T=3*t+(n-1)*t。一次重叠:2n+1,二次重叠:2+n
影响流水线性能的主要因素:资源相关,控制相关,数据相关。即必须做到充分流水不发生断流。
为了减少转移指令对流水线的影响,可以采用的方法是:1.采用延迟转移技术;2.预取转移成功或不成功两个控制流方向上的目标指令;3.加快和提前形成条形码;4.提高预测转移方向的猜准率。
流水线吞吐率是指:单位时间内流水线上完成的指令或者输出结果的数量 流水线最大吞吐率是指:流水线达到稳定状态后可以获得的吞吐率。
计算机系统中的总线按层次可以分为:板级总线,系统总线,片内总线。
中断分为中断和异常。中断:时钟中断,输入/输出中断(可屏蔽的中断),控制台中断,硬件故障中断(不可屏蔽的中断); 异常:用户程序执行了特权指令。典型的异常包括:程序性中断(算术溢出,被零除,虚拟存储中却页等),访管指令异常。 中断是指由CPU以为的事件引起的中断,如I/O中断,时钟中断,控制台中断。 异常是指来自CPU的内部事件或程序执行中的事件引起的过程,如算术溢出。 可编程中断控制器8259A: 可管理8级中断向量,在级联情况下最多可以管理64级中断向量 4个初始化命令字:ICW1,ICW2,ICW3,ICW4。 ICW1(用于控制是单连还是级连,触发方式):
ICW2(确定中断类型码,后3位由中断源序号000—111表示IR0-IR7,前几位是CPU初始化时候发来,共同构成中断类型码): ICW3(仅在级联时使用,确定主片上的哪根信号线接有从片): ICW4(确定全嵌套模式,缓冲模式和是否为自动EIO) 完全嵌套模式:IR0-IR7优先权一次降低,允许高级的进行嵌套。 特殊嵌套模式:仅在级联情况下,发生的嵌套规则。
3个操作命令字:OCW1,OCW2,OCW3
芯片8259A,寄存器IMR(中断屏蔽寄存器)的作用:设置中断请求的屏蔽位。
可以设置的方式:脉冲边沿触发方式,全嵌套方式,自动中断结束方式,特殊屏蔽方式,特殊嵌套模式。(软件中断方式不可以) 芯片8259A在初始化只进行了ICW1,ICW2的设置,则该8259A工作在:单片8259A,没有级联;中断请求优先级固定按IR0-IR7排列;非缓冲方式;一般中断结束方式。
寻址方式:直接寻址,间接寻址
在汇编程序中,伪指令的作用是:指示编程程序如何进行编译
- MOV 赋值
- XOR 按位逻辑异或
- ADD 相加,
- SUB 相减
- INC指令:自加1
- LOOP指令:根据CX内容决定是否做循环,如果CX为0,循环停止。CX先减一,再判断!
- TEST指令:相当于AND指令,但是不把AND后的结果放入目的操作数,只是改变ZF位,表示AND后是否为0
- DUP伪指令用法: DB 20 DUP(XX),复制()内的XX,20次!
IO操作:OUT [地址],AL。 AL->A IN AL,[地址],读入,8086中地址为DX。
判断两个数是否相等可以使用指令:CMP比较,SUB相减,XOR异或。
- XCHG指令:1.源,目的操作数的寻址方式不允许时立即寻址方式;2.两个寻址方式中,必须有一个是寄存器寻址;3.所有的段寄存器以及IP寄存器不允许使用本条指令与其他寄存器互换数据;4.此指令不影响标志位。
注意:PUSH AX 。AX中的操作数不是放在代码段的!!!
串行芯片8251: 工作模式(工作方式控制)字: 状态字:
RS232串口标准采用负逻辑电平
并行芯片8255:
8255的A,B控制字: C口复位控制字 C端口也能进行数据传送工作。只有工作方式0. C端口可以辅助控制A,B端口进行数据传送工作
方式0:基本的输入/输出方式(没有握手)
A,B,C(2个四位)都可以提供简单的输入和输出操作,对每个端口不需要固定的答应式联络信号。输出的数据可以被锁存,输入的数据不能锁存。一般用于无条件传送场合,不需要应答式信号,外设总是处于准备好的状态。A,B端口做为数据口使用。C端口分为2部分,四位规定输出,用来输出一些控制信息,另四位规定输入,用来读入外设的状态。
方式1:选通输入/输出方式(握手)
1,普通选通输入方式: PC3-PC5分配给A端口,PC0-PC2分配给B端口,C端口剩下PC7,PC6可以作为简单的输入/输出线使用。控制字D3位为“1”时,PC7,PC6作输入;控制字D3为“0”时,PC7,PC6作输出。(STB非:A:PC4,B:PC2;IBF:A:PC5,B:PC1;INTR:A:PC3,B:PC0;INTE:A:PC4置1,B:PC2置1) 2,选通输出方式: PC3,PC6,PC7分配给A端口;PC2,PC1,PC0分配给B端口,剩下的2位PC4,PC5可以作为简单的输入/输出线使用。(OBF非:A:PC7,B:PC1;ACK非:A:PC6,B:PC2;INTR:A:PC3,B:PC0;INTE:A:PC6置1,B:PC2置1)
方式2:双向选通传输方式(握手)(适用于查询,中断方式)
一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。A端口的输出输入都可以被锁存。5位的控制端口用于传送8位双向端口的控制和状态信息。PC7-PC3作为控制信号和状态信息使用,PC2-PC0作输入输出。
- STB非:选通信号PC4;IBF:输入缓存器满信号PC5;OBF非:输出缓冲器满信号PC7;INTR:中断请求信号PC3;ACK非:数据接收应答信号PC6
- INTE1:输出中断允许信号。当该信号为“1”时,允许8255向CPU发出由A端口输出数据的中断请求信号。INTE2:输入中断允许信号,当该信号为“1”时,允许8255A中的A端口的输入处于中断状态。
可编程定时计数器8253:
控制模式字: 通道0指计数器0,类推 一共3个计数器,定时/计数器的计数范围是:1-65536(2^16)16位
定时/计数器8253可输出方波的工作模式是:模式3(方式3)
计数模式有6种: 方式0-计数结束后输出由低变高。 1,写入控制字后,OUT输出端变为低电平。当写入计数初值后,计数器开始减1计数。在计数过程中OUT一直保持为低电平,直到计数为0时,OUT输出变为高电平。此信号可以用于向CPU发出中断请求。 2,计数器只计数一遍。当计数道0时,不恢复计数初值,不重新开始计数,且输出一直保持为高电平。只有在写入新的计数值时,OUT才变低电平,并开始新的计数。 3,GATE是门控信号,GATE=1时允许计数,GATE=0时禁止计数。在计数过程中,如果GATE=0则计数暂停,当GATE=1后接着计数。 4,在计数过程中可以改变计数值。若是8位计数,在写入新的计数值后,计数器将按新的计数值重新开始计数。如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数值开始计数。
方式1-可编程序的单脉冲发生器 1,写入控制字后,输出OUT将保持为高电平,计数由GATE启动。GATE启动之后,OUT变为低电平,当计数到0时,OUT输出高电平,从而在OUT端输出一个负脉冲。 2,当计数到0后,不用送计数值,可再次由GATE脉冲启动,输出同样宽度的单拍脉冲。 3,在计数过程中,可以改变计数初值,此时计数过程不受影响。如果再次触发启动,则计数器将按新输入的计数值计数。 4,在计数末到0时,如果GATE再次启动,则计数初值重新装入计数器,并重新开始计数。
方式2-频率发生器(分频器) 1,写入控制字后,输出将变为高电平。写入计数值后,计数立即开始。在计数过程中输出始终为高电平,直到计数器减到1时,输出将变为低电平。经过一个CLK周期,输出恢复为高电平且计数器开始重新计数。因此,他能够连续工作,输出固定频率的脉冲。 2,如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。因此,相当于对输入脉冲的N分频。通过对N赋不同的初值,即可在输出端得到所需的频率,起到频率发生器的作用。 3,计数过程可由门控脉冲控制。当GATE=0时,暂停计数;当GATE=1,自动恢复计数初值,重新开始计数。 4,在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。但在计数到1时输出变低,经过一个CLK周期后输出又变高,计数器将按新的计数值计数。
方式3-方波发生器 1,输出为周期性的方波。若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。 2,写入控制字后,输出将变为高电平,当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值的一半时,输出变为低电平,直到计数到0,输出又变为高电平,重新开始计数。 3,若计数值为偶数,则输出对称方波,如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N-1)/2个CLK脉冲期间输出为低电平。 4,GATE信号能使计数过程重新开始,GATE=1时,允许计数,GATE=0禁止计数。停止后OUT将立即变为高电平,当GATE再次变高以后,计数器将自动装入计数初值,重新开始计数。
方式4-软件触发选通 1,写入控制字后,输出为高电平。写入计数值后立即开始计数,当计数到0后,输出一个时钟周期的负脉冲,计数器停止计数。只有在输入新的计数值后,才能开始新的计数。 2,当GATE=1时,允许计数,而GATE=0时,禁止计数,GATE信号不影响输出。 3,在计数过程中,如果改变计数值,则按新计数值重新开始计数。如果计数值是16位,则在设置第一字节时停止计数,在设置第二字节后,按新计数值开始计数。
方式5-硬件触发选通 1,写入控制字后,输出为高电平。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动,当计数到0时,输出一个CLK周期的负脉冲,并停止计数。当门控脉冲再次触发时才能再计数。 2,在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0,才输出负脉冲。 3,如果在计数过程中改变计数值,只要没有门控信号的触发,不影响计数过程。当有新的门控脉冲的触发时,不管是否计数到0,都按新的计数值计数。
. A/D转换器需要转换启动信号。D/A转换器不需要转换启动信号。A/D转换比D/A快。 AD A/D转换器:转换时间与转换信号的频率无关;8位的比16位的转换精度低;8位的不比16位的转换时间快。
DA D/A转换器的常用参数:绝对精度,分辨率,线性度。 关于D/A转换器分辨率:分辨率可以用数字量的位数表示,分辨率越低线性度越好,输入数字量的位数越多分辨率越高。
光磁记录型可擦写光盘利用激光在磁性薄膜上产生热磁效应来记录信息的
磁盘读写是以块为单位地,通常磁盘的I/O控制主要采用DMA方式。 硬件磁盘存储器的主要性能指标有:存储密度,存储容量,转速,平均存取时间,数据传输率。
以数据块为单位组织和处理信息的设备被称为块设备。如磁盘,磁带。 字符设备:键盘,终端,打印机。
按键电路去除抖动可用的方式有:软件延迟(利用软件延时20ms),硬件处理(利用R-S触发器)
USB通用总线属于:串行总线,外部总线。(特点:可热插拔做到即插即用。) . USB:USB属于外部总线;USB的每个接口都可以输出5V电压;USB可以在系统层次上分为USB主机,USB器件和USB连接;USB的数据传送采用NRZI编码方式。
喷墨打印机和针式打印机相比,优点:打印精度高,噪音小。 打印机:色带用在针式打印机;哂鼓用在激光打印机。定影棍用在碳粉打印机上
在矩阵式键盘结构中,识别按键位置的方法有:1.逐行扫描法,2.行反转法.
为匹配不同速度的外设,采用了缓冲技术:单缓冲区,双缓冲区,缓冲池,(高速缓存不是缓冲,介于中央处理器和主存储器之间的高速小容量存储器,它和主存储器一起构成一级存储器,高速缓冲器和主存储器之间的信息调度和传送是由硬件自动进行的。)
IEEE 1284标准是计算机和打印机之间实现“双向串行通信的标准" 可以作打印机接口:RS-232 Centronics接口 USB接口
. 存储器带宽:单位时间里存储器所存取的信息量,也称存储器在单位时间内读出/写入的位数或字节数。 存储器的带宽决定了以后存储器为中心的机器获得信息的速度,为了提高存储器带宽:1.缩短存取周期;2,增加存储字长,使每个存取周期可读/写更多的二进制位数;3.增加存储体。 存储器与CPU之间的连接时,应该考虑:合理分配内存地址空间,存储芯片片选线的连接,CPU内部总线的宽度。
SRAM:SRAM是一种随机存储器,是一种易失性存储器,断点则丢失存储信息,SRAM速度快,通常用来制作高速缓存,SRAM芯片与CPU连接时要注意时序匹配 DRAM芯片通常采用电容保存信息。刷新方式:集中式刷新,分布式刷新,异步刷新。 .内存要求容量较大,通常选用DRAM(动态)芯片。 SRAM(静态)芯片用作高速缓冲。
.按照信息交换方式,一个系统中可以设置三种类型的通道:选择通道,字节多路通道,数组多路通道。没有顺序通道哦。
采样频率和被采样信号之间的关系:采样频率应大于信号中最高频率的2倍。