#计算机四级嵌入式工程师考试试题和理解总结记录
##结合了社区几位大神笔记的,整理了一些计算机四级嵌入式工程师备考试题等。写了下面的理解和必备。如果有不对和疏漏的地方请指正
计算机操作系统
一.绪论:
计算机由运算器,控制器,存储器,输入设备,输出设备。5部分组成
不是操作系统的名称: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指令是寄存器和存储内容交互换的指令,可以用于信号量操作,实现系统任务之间的同步或互斥。
信号量机制是实现进程互斥的重要方法。
分派器是分派器实时系统调度策略之一,并非进程互斥方法。
对信号量有4种操作: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线程包,yield线程主动释放CPU来运行其他线程,join等待其他“线程”的结束
pthread_create函数的作用:创建线程。有四个参数:第一个参数为指向线程标识符的指针;第二个参数用来设置线程属性;第三个参数是线程入口函数的起始地址;第四个参数是入口函数的参数。一般以线程运行函数名来命名线程名,但线程标识信息放在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文件系统:链接结构
FAT文件系统是指文件分配表(file allocation table),FAT16是指系统中用16位表示簇号,FAT文件系统是windows支持的文件系统,FAT文件系统中文件的物理结构是链接结构。(FAT16不支持长文件名,文件名不可达到255个字符。)
文件储存空间管理:
空闲空间的分配和回收:
空闲区表
空闲块链
位示图,位示图的原理和使用
*Unix中空闲区管理:成组链接法
目录管理:树形,1.层次清楚2.解决了文件重名问题3,搜索速度快
文件读写管理和保护:存取控制矩阵,基于目录的存取权限,基于文件的存取权限
文件按照文件的组织形式划分:普通文件,目录文件,特殊文件。
文件按照文件的性质和用途划分:系统文件,程序库文件,用户文件。
文件按照文件保护方式划分:执行文件,只读文件,读写文件,不保护文件。
文件按照文件的存放时限划分:临时文件,永久文件,档案文件。
文件按照文件的物理结构划分:顺序文件,链接文件,索引文件。
保证操作系统中文件的安全:定期转储备份文件,设置文件访问控制列表,(采用RIAD阵列不是)
UNIX系统文件权限。 XYZ;X:文件所有者;Y:所在同组用户;Z:其他用户;
rwx:可读可写可执行。
r:100;w:010;x:001。
如【123】,则1为001,2为010,3为011,文件所有者可以执行不可读写
使用文件系统时,通常要显式地进行open()操作,这样做的目的是将文件控制块(FCB)读入内存。
使用文件系统时,通常要显示地进行close()操作,这样目的是:将文件控制块写入磁盘或缓存。
文件系统的一个特点是“按名存取”,即用户只要给出文件的符号名就能方便地存取在存空间地该文件信息而不必了解和处理文件地具体物理地址。
从用户角度看,建立文件系统的主要目标是:实现文件的按名存取。
树型多级目录优点:1.可以很好反映现实世界复杂层次结构地数据集合;2.加快了目录地检索速度;3.可以重名,只要这些文件不在同一个子目录中;4.易于实现子树中文件保护,保密和共享。
五.设备管理:
计算机操作系统中,设备管理的主要任务之一是通过协调技术避免设备冲突。
设备的分类:按速度分类:高速设备,低速设备
按传输的形式分类:流设备,块设备
按共享和独享方式分类:独享设备(独占设备),共享设备
设备分配:(针对独立设备的操作)
设备分配步骤:先查找系统设备表(SDT),发现空闲设备,银行家算法通过后,在查找设备控制表(DCT),再找控制器控制表(CCT),进程控制块映射,逻辑设备映射表(LDT)计入PCB。
设备与CPU之间数据传送和控制方式有:程序直接控制方式,中断控制方式,DMA方式,通道控制方式。不包含设备控制方式。
程序直接控制方式:利用输入/输出指令或询问指令测试一台设备的忙/闲位,根据设备当前的忙或闲的状态,决定是继续询问设备状态还是由主存储器和外围设备交换一个字符或一个字。(用户进程在等待鼠标点击输入时,不断检测对应接口寄存器的完成位是否为1)
中断控制方式:CPU与外设在大部分时间内并行工作,当CPU启动外设后,不需要去查询其工作状态,可继续执行主程序,该I/O设备控制方式称为:中断控制方式。中断机构引入后,外围设备有了反映其状态的能力,仅当操作正常或异常结束时才中断*处理器。实现了主机和外围设备一定程度的并行操作,这叫中断方式。
系统引入一个不同于CPU的特殊功能处理单元,他有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送,该I/O设备控制方式:通道控制方式。
通道是指:一个独立于CPU的专门I/O控制的处理机,控制设备与内存直接进行交换。在操作结束时向CPU发出中断信号。
通道和DMA区别
1、通道一般用在大型计算机系统中(不是大型机)。
2、通道实质是一台能够执行有限的输入输出指令,并能被多台外设共享的小型DMA专用处理机。
3、通道的作用–解决了两个问题。
a.由cpu承担输入输出的工作。
虽然dma无需cpu进行外设与内存的数据交换工作,但是这只是减少了cpu的负担。因而dma中,输入输出的初始化仍然要由cpu来完成。
b.大型计算机系统中高速设备共享dma接口的问题。大型计算机系统的外设太多以至于不得不共享有限的dma接口(小型计算机系统比如pc机中每个高速设备分配一个dma接口)。
DMA方式,是CPU通过向DMA控制器设定若干参数,然后DMA打开了一条内存到设备的通道,这样,设备(内存)中的数据可以不通过CPUl来进行数据交互。缺点是,DMA是多少设备就需要多少DMA,而且,DMA方式下,CPU的访问设备是以数据块为周期的。
.当用户使用外部设备时,其控制设备的命令传递途径以此:用户应用层→设备独立层→设备驱动层→设备硬件
.计算机I/O系统的软件包括:中断处理程序,设备驱动程序,与设备无关的操作系统软件,用户级软件。
硬件描述层软件 属于硬件范围。
缓冲区的作用:匹配低速设备和高速运行的内存等,能并发执行一些数据处理
磁盘结构:盘面、磁道,扇区
磁盘调度算法:
先来先服务 | 最短寻道时间优先 | 扫描算法(电梯算法) | 循环扫描法 |
---|---|---|---|
寻道时间大 | 存在饥饿现象 | 仍然存在少量饥饿现象 | 减少饥饿现象,但是增加寻道时间 |
影响磁盘性能:寻道时间,旋转时间,传输时间。(调度时间不影响)访问磁盘时间:寻道时间Ts,旋转时间Tr,传输时间Tt。其中数据传输时间最短。
设备的通道控制:
I/O设备管理中,i/o软件的层次结构有(用户应用层,设备独立层,设备驱动层,中断处理层)(设备执行层不属于)
虚拟设备:作用:将低速设备虚拟成高速设备,将独享设备虚拟成共享设备
Spooling技术,以磁盘作为虚拟设备
SPOOLing系统的主要组成部分是 1.输入井和输出井 2.输入缓冲区和输出缓冲区 3.输入进程和输出进程
计算机接口及组成原理
一.芯片结构
8086CPU
8086CPU结构
分为两部分,以是指令执行部件(EU)和总线接口部件(BIU),如图:
其中执行部件包括:
执行部件 总线接口部件
标志寄存器(FR) 20位地址加法器
算术逻辑单元ALU 6字节指令队列缓冲器
四个通用寄存器 4个16位段地址寄存器CS,DS,SS,ES
堆栈指针寄存器SP 16位指令指针寄存器IP(用户不能直接使用)
基数指针寄存器BP
源变址寄存器SI
目的变址寄存器DI
其中标志标志寄存器如图所示:
一共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端口空间,故为216=64K),中断向量可储存256个中断向量,存储器寻址1MB=220,采用储存器分段后,每段可为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,[地址],读入
判断两个数是否相等可以使用指令:CMP比较,SUB相减,XOR异或。
XCHG 指令:1.源,目的操作数的寻址方式不允许时立即寻址方式;2.两个寻址方式中,必须有一个是寄存器寻址;3.所有的段寄存器以及IP寄存器不允许使用本条指令与其他寄存器互换数据;4.此指令不影响标志位。
注意:PUSH AX 。AX中的操作数不是放在代码段的!!!
五,并行,串行和计数器
串行芯片8251:
工作模式(工作方式控制)字:
状态字:
RS232串口标准采用负逻辑电平
并行芯片8255:
8255的A,B控制字:
C口复位控制字
C端口也能进行数据传送工作。
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,都按新的计数值计数。
六,AD和DA
. 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倍。