计算机系列之输入输出、中断、总线、可靠性、操作系统、进程管理、同步互斥

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(仓库商品个数)

生产者流程消费者流程
生产一个商品SP(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

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碳学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值