9、输入输出-中断-总线-可靠性
1、输入输出技术、中断
1、内存与接口地址的编址方法(了解概念即可)
计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:(了解概念即可)
1)内存与接口地址独立编址方法
内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的。因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。
2)内存与接口地址统一编址方法
内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作工呢个,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。
2、计算机和外设间的数据交互方式(重点、考点)
计算机和外设间的数据交互方式:
-
程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低。(CPU查询外设,一直等待外设完成传输,而外设的传输效率是极低的,这种查询方式是串行的)
-
程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高。(是并行方式,外设和CPU并行处理、传输)
中断响应时间是指从发出中断请求到开始进入中断处理程序;中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
-
DMA方式(直接主存存取):CPU**只需完成必要的初始化等操作,数据传输的整个过程不都由DMA控制器来完成,在主存和外设之间建立直接的数据通路,**效率更高。(也是并行,CPU不用参与传输数据)
在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU 响应程序中断方式请求是在一条指令执行结束时。(考点,要记)
中断就是打断,打断现在正在做的事情。
关中断主要是为了保存断点和保护现场。记录当前走到哪里了,以便回来后继续执行。
2、总线结构
-
总线(Bus),是指计算机设备和设备之间的传输信息的公共数据通道。(接到电脑主板上的线基本就是总线),总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。
-
从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:
**内部总线:**内部芯片级别的总线,芯片与处理器之间通信的总线。(肉眼看不到,在芯片内部等)
系统总线:是板级总线,用于计算机内各部分之间的连接(比如硬盘和主板等),具体分为**数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传输控制命令)。(考点:总线的分类考试时只需要回答:数据总线、地址总线、控制总线即可)**代表的有 ISA 总线、EISA总线、PCI总线。
**外部总线:**设备一级的总线(计算机和外部之间的),微机和外部设备的总线。代表的又RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。
并行总线适合近距离的数据传输(成本高),速度高;
串行总线适合远距离传输(成本低),速度低;
单总线结构在一个总线上适应不同种类的设备,可以同时接收数据,但同时只能有一个设备发送数据,设计复杂导致性能降低。
3、可靠性
可靠性指标:(公式考的比较少,了解)
平均无故障时间:MTTF = 1/失效率
平均故障修复时间:MTTR = 1/修复率
平均故障间隔时间:MTBF = MTTF +MTTR
系统可用= MTTF / (MTTF +MTTR) * 100%
串并联系统可靠性(考试重点):
无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式,可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为R1,R2…Rn,则不同系统的可靠性公式如下:
串联系统,一个设备不可靠,整个系统奔溃,整个系统可靠性:R = R1 * R2 * … * Rn.
*并联系统,所有设备都不可靠,整个系统才崩溃,整个系统可靠性R=1-(1-R1) * (1-R2) … * (1-Rn).
N模冗余系统(了解即可): N 模冗余系统由 **N个(N = 2n + 1)相同的子系统和一个表决器组成,**表决器把N个子系统中占多数相同结果的输出作为输出系统的输出,如图所示。在N个子系统中,只要有n+1或n+1个以上子系统能正常工作,系统就能正常工作,输出正确的结果。
10、操作系统-进程管理-同步互斥
1、操作系统概述
操作系统由两个重要的作用:(了解即可,不考)
第一,通过资源管理提高计算机系统的效率;
第二,改善人机界面,向用户提高友好的工作环境。
操作系统的4个特征是:并发性、共享性、虚拟性和不确定性。
并发:是宏观上的,比如用户开了两个程序,看上去两个程序是并发的,实际CPU上两个是交替进行的;
并行:并行是同一时刻两个同时运行,真正意义上的同时进行。
1、操作系统的功能(了解即可)
(1)进程管理。实质上对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,朱啊哟包括进程控制、进程同步、进程通信和进程调度。
(2)文件管理。主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。
(3)存储管理。存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。
(4)设备管理。实质是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和回收。
(5)作业管理。包括任务、界面管理、人机交互、图形界面、语音控制盒虚拟现实等。
2、操作系统的分类(了解基本分类即可)
(1)批处理操作系统:单道批处理和多道批处理(主机与外设可并行)
(2)分时操作系统:一个计算机系统与多个终端设备连接。将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
(3)实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控制对象允许的时间范围内作出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。
(4)**网络操作系统:**是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。三种模式:集中模式、客户端/服务器模式、对等模式。
(5)**分布式操作系统:**分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。
(6)**微型计算机操作系统:**简称微机操作系统,常用的有Windows、Mac OS、Linux。
嵌入式操作系统(比如智能空调、智能电饭煲等)主要特点:
微型化、可定制、实时性、可靠性、易移植性。
嵌入式操作系统初始化过程按照自底向上、从硬件到软件的次序依次为:片级初始化-》板级初始化-》系统初始化。
2、进程
**进程的组成:**进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。
进程基础的状态是下左图终端中的三态图。需要熟练掌握左下图中的进程三态之间的转换。
运行态:表示当前进程正在运行,正在运行的进程需要CPU
就绪态:就是除了CPU之外,什么都有了,就等待被CPU调度、执行了。
阻塞态:没有CPU,也没有其他条件、数据(比如一般为没有外设,缺少外设会阻塞,等待外设传输数据)
运行过程中,此时需要读取外设(比如硬盘中的)的数据,则CPU不会等待,CPU会抛弃进程,进程自己去读取数据,此时进程没了CPU,也在等待读取数据,所以就变为了阻塞状态。而外设的数据的进程完成之后,数据有了,还缺少CPU,就变为了就绪状态。就绪状态有了 CPU,就又变为了运行状态,运行状态的时间片到了之后,CPU会执行其他进程,当前进程没了CPU但还没执行完(数据还在)则又会转为就绪状态。
1、前驱图
用来表示哪些任务可以并行执行,哪些任务之间有顺序关系,具体如下图:可知,A B C 可以并行执行,但是必须 A B C 都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序。
2、进程资源图
用来表示进程和资源之间的分配和请求关系,如下图所示:
**P代表进程,R代表资源,**R方框中有几个圆球就表示了有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。
阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中的P2。
非阻塞节点:某进程**所请求的资源还有剩余,**可以分配给该进程继续运行。
当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
R1 、R2 资源分配完毕了,但凡请求 R1、R2资源的进程都会阻塞;
R3资源只分配了1个,还剩1个,因此但凡请求 R3 资源的进程都不会阻塞了;
R2 分配完了之后,P1还需要请求1个R2的资源,所以P1事阻塞的;P2 同理。
所以 P1、P2是阻塞节点、P3是非阻塞节点
P1、P2是阻塞的所以没法执行,如果要优化,应该 P3先执行,执行完了,即可以释放出资源了,释放出的资源,可以满足 P1、P2的执行。
所以是可以化简的,简化顺序为P3-》P1-》P2,同理P3-》P2-》P1也可以。
3、进程同步与互斥(考点、重点)
临界资源:各进程间需要以互斥方式对其进行访问的资源。
临界区:指进程中**对临界资源实施操作的那段程序。**本质是一段程序代码。
互斥:某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。
同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车,都是从A到B地,汽车较快到达,但要等自行车到了,大家才能在B地一起开饭、玩耍。
互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。
同步信号量:对共享资源的访问控制,初值一般是共享资源的数量。
**P操作:申请资源,S=S-1,**若S>=0,则执行P操作的进程继续执行;若S<0,则该进程为阻塞状态(因为无资源可用),并将其插入阻塞队列。
P(S) = S - 1,原本3个资源,申请1,即P(S)还剩2个资源可申请;
S <= 0,说明没有资源可以申请了且当前还有多少个进程在等待资源。
**V操作:释放资源,S=S+1,**若S>0,则执行V操作的进程继续执行;若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。
P(V) = S + 1,释放资源,说明可申请的资源又多了。
S<=0表示进程队列中有几个进程在等待资源,执行了 V 操作之后,说明释放了一个资源,在等待的几个进程中 有一个就可以获取到资源 进行执行了。因此 V 操作之后 S 还 <= 0,就去进程队列中唤醒一个进程,去拿取刚释放的资源去执行;如果 V操作之后,S > 0,说明没有进程在等待资源,就可以继续下一步了。
经典问题:生产者和消费者的问题
三个信号量:互斥信号量S0(仓库独立使用权),同步信号量S1(仓库空闲个数)、同步信号量S2(仓库商品个数)
生产者流程 | 消费者流程 |
---|---|
生产一个商品S | P(S0) |
P(S0) | P(S2) |
P(S1) | 取出一个商品 |
将商品放入仓库中 | V(S1) |
V(S2) | V(S0) |
V(S0) |
生产者流程:
1、生产一个商品 S
2、S 不能直接放入仓库,因为如果当前仓库独立使用权(仓库的使用是互斥的:即要么放入,要么取出,不能同时放入或取出)被消费者使用,则生产者没有权限放入仓库,所以需要执行 P(S0)
3、拿到仓库独立使用权之后,还要判断仓库空闲个数(即仓库是否已经满了,还能继续放置多少个商品),所以需要执行 P(S1)
4、当有仓库独立使用权之后且仓库可以继续放入商品(空闲满足放入的生产的商品个数)时,则执行 【把商品放入仓库中】
5、商品放入之后,则同步更新当前仓库商品的个数,即 V(S2)
6、更新个数之后,即可以释放独立使用权了,即 V(S0),即表明商品已经被生产者放入,且生产者已经不需要继续使用仓库了(因为已经将生产的商品放入了)
消费者流程:
1、同理,消费者在从仓库中拿取一个商品时,同样需要判断是否有权利使用仓库,所以需要执行 P(S0)
2、拿到仓库使用权之后,还要判断当前仓库的商品个数,即是否有商品可以供消费者拿取,所以执行P(S2)
3、当有权利使用仓库且仓库商品个数满足消费者需求时,则消费者执行【取出一个商品】
4、取出之后,则同步当前仓库的空闲个数(即还能放入多少商品),所以是 V(S1),因为拿出了1个商品,所一当前仓库的空闲个数一定是加1的,所以要更新空闲个数
5、更新之后,即可释放仓库的使用权了,即V(S0)
前驱图中的每一个箭头都是一个信号量。
P1执行完了之后,P2、P3才能执行,所以P1执行完了之后,一定释放了 P2、P3相关的信号量。即 V(S1)、V(S2),而 P2 执行的正是 P(S1),所以 P1 -> P2 的箭头的信号量就是 S1,则 P1-> P3 的箭头的信号量就是 S2.
所以此时 26 的填空即选 C。所以 b 就是 V(S3)。
所以 P2->P4的箭头的信号量就是 S3。P2执行完就需要释放一个信号量,就是 V(S3).
P3执行需要请求资源,由上箭头可知,是 P(S2),所以c是P(S2).
P3执行完成后,需要释放一个信号量,假设是 S4,则 P4->P5的箭头就是 S5 信号量。
如果 P3->P5就是S4,P4->P5就是S5,那么 P3执行完了之后就会释放S4,即d为 V(S4),P4执行完了就是释放S5,即e为V(S5),所以P5执行就要请求S4、S5,所以f为P(S4)P(S5)。
经验证,答案正确。
所以:
26答案为 C
27答案为 B
28答案为 B
根据上题中的 Process P2、Process P3、Process P4、Process P5 中的 P、V 操作,可以将前驱图的箭头代表的信号量推知如下:
所以 P1 执行完,就是 V(S1)V(S2),即①为 V(S1)V(S2)
P2执行就需要 P(S1),即②为P(S1)
所以①和②答案为 C
P3 的执行就需要 P(S2)P(S3),即③为P(S3)
P3执行完后就需要释放,所以是 V(S5)V(S6),即④为V(S5)V(S6)
所以③和④答案为 B
P4执行完后就需要释放,所以是V(S7),所以⑤为V(S7)
P6 执行就需要请求 S7、S8,所以⑥为P(S7)P(S8)
所以⑤和⑥的答案为 D