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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ai大模型应用开发

随着人工智能技术的飞速发展&#xff0c;AI大模型应用开发已成为一个日益重要的领域。本文将从专业角度深入探讨AI大模型的应用开发&#xff0c;并思考其未来的深度影响和逻辑性。 编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; ​【一、AI大模型的定义与特点…

Practice Exam: Oracle Cloud Infrastructure Generative AI Professional

Practice Exam: Oracle Cloud Infrastructure Generative AI Professional 1. In the simplified workflow for managing and querying vector data, what is the role of indexing?2. In which scenario is soft prompting appropriate compared to other training styles?3…

ASP.NET Core 3 高级编程(第8版) 学习笔记 03

本篇介绍原书的第 18 章&#xff0c;为 19 章 Restful Service 编写基础代码。本章实现了如下内容&#xff1a; 1&#xff09;使用 Entity Framework Core 操作 Sql Server 数据库 2&#xff09;Entity Framework Core 数据库迁移和使用种子数据的方法 3&#xff09;使用中间件…

Babylon.js 读取GLB模型元数据

如果你熟悉将 3D 资源导出到游戏引擎的过程&#xff0c;那么无疑也会熟悉 3D 资源的 PBR 和 GLB 导出过程。 这是我们之前概述的内容&#xff0c;也是我们交互式工作的所有资产准备的基石。 然而&#xff0c;从传统的管道意义上来说&#xff0c;能够用元数据标记网格有很多逻辑…

通配符HTTPS安全证书

众多类型的SSL证书&#xff0c;要说适用或者说省钱肯定是通配符了&#xff0c;因为谁都想一本SSL证书包括了整条域名&#xff0c;而且也不用一条一条单独管理。 通配符HTTPS安全证书&#xff0c;其实就是通配符SSL证书&#xff0c;SSL证书主流CA的参数都一样&#xff0c;通配符…

【MHA】MySQL高可用MHA介绍8-常见错误以及解决

目录 MHA Node 未安装在 MySQL 服务器上 找不到主服务器的二进制日志 没有对二进制/中继日志授予读权限 使用多主复制&#xff08;不受支持&#xff09; 这些日志是 MHA Manager 在执行故障检测和故障切换过程中遇到的一些问题的记录。让我为您解释一下每个错误消息的含义&…

武汉星起航:亚马逊助力中国卖家扬帆出海,迎来跨境电商新机遇

2015年&#xff0c;亚马逊全球开店业务正式踏入中国这片充满活力和潜力的市场&#xff0c;此举不仅为中国卖家提供了前所未有的跨境电商新机遇&#xff0c;更为其发展出口业务、拓展全球市场、打造国际品牌铺设了一条坚实的道路。亚马逊作为国际版的电商购物平台&#xff0c;其…

Hadoop-Hive-Spark-离线环境搭建

一、版本描述 apache-hive-2.3.9-bin.tar.gz hadoop-2.7.0.tar.gz spark-2.4.0-bin-hadoop2.7.tgz 下载链接&#xff1a; https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz https://archive.apache.org/dist/hadoop/common/hadoop-2.7.…

js中onchange的使用场景及如何使用

使用场景&#xff1a; onchange 事件常用于表单元素&#xff08;如 input、select、textarea 等&#xff09;的值发生改变时触发相应的操作。可以用于实时监测用户输入的内容&#xff0c;进行验证或实时更新相关内容。 示例代码&#xff1a; <!DOCTYPE html> <html…

vscode 创建代码模版

在vscode中快捷创建代码模版 1.在VSCode中&#xff0c;按下Ctrl Shift P&#xff08;Windows/Linux&#xff09;或Cmd Shift P&#xff08;Mac&#xff09;打开命令面板。 2.然后输入"Preferences: Configure User Snippets"并选择该选项。打开一个json文件用户…

vue3 update:modelValue 用法

在Vue 3中&#xff0c;update:modelValue是v-model指令的默认事件&#xff0c;用于在组件内部通知父组件更新绑定的值。这种命名约定是固定的&#xff0c;当你在组件上使用v-model而没有指定参数时。然而&#xff0c;Vue 3也提供了灵活性&#xff0c;允许开发者自定义绑定的属性…

IDEA中配置使用maven和配置maven的中央仓库

1 以汉化后的IDEA为例配置maven 打开idea选择文件 选择 设置 点击>构建.执行.部署 点击>构建工具 点击>Maven 其中Maven主路径 就是我们maven下载解压后的路径 可以通过边上的三个点选择你解压后的绝对路径&#xff0c;也可以直接把解压后的绝对路劲复制过来 以下…

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测 目录 回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-ESN基于麻雀搜索算法…

物联网:从电信物联开发平台AIoT获取物联设备上报数据示例

设备接入到电信AIoT物联平台后&#xff0c;可以在平台上查询到设备上报的数据。 下面就以接入的NBIOT物联远传水表为例。 在产品中选择指定设备&#xff0c;在数据查看中可以看到此设备上报的数据。 示例中这组数据是base64位加密的&#xff0c;获取后还需要转换解密。 而我…

实现异步的8种方式

一、前言 在编程中&#xff0c;有时候我们需要处理一些费时的操作&#xff0c;比如网络请求、文件读写、数据库操作等等&#xff0c;这些操作会阻塞线程&#xff0c;等待结果返回。为了避免阻塞线程、提高程序的并发处理能力&#xff0c;我们常常采用异步编程。 异步编程是一种…

2024 IDM最新破解版及软件介绍

*IDM&#xff1a;信息时代的高效管理工具** 在快节奏的现代社会中&#xff0c;随着信息的爆炸式增长&#xff0c;如何高效、有序地管理信息成为每个人都需要面对的挑战。IDM&#xff0c;作为一种信息管理工具&#xff0c;正在逐渐受到人们的青睐。 IDM&#xff0c;全称Inform…

Linux--进程控制(1)

文章衔接&#xff1a; Linux--环境变量-CSDN博客 Linux--地址空间-CSDN博客 目录 1.进程创建 2.进程的终止 2.1想明白&#xff1a;终止是在做什么&#xff1f; 2.2进程终止的三种情况 2.3 进程如何终止 3.进程等待 &#xff08;wait/waitpid&#xff09; 1.进程创建 在li…

C++内存分布 new和delete介绍

目录 C/C内存分布 栈区 堆区 静态区 常量区 C new和delete 分配空间形式对比 new delete与malloc free的区别 可不可以串着使用new和free呢 C/C内存分布 C的内存分布&#xff0c;大体上分为栈区 堆区 静态区 常量区 栈区 栈区是用于存储函数调用时的局部变量 函…

MySQL——运维

日志 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时&#xff0c;建议首先查看此日志。 查看日志位置&#xff1a; sho…

Eigen::svd和 np.linalg.svd的不同之处

目录 pythonc结论参考 SVD奇异值分解与PCA主成分分析 SVD动画图解–Wiki Eigen Svd 和 np.linalg.svd都可以用于SVD计算&#xff0c;但两者却存在细微的差别。 python import numpy as np datanp.array([[0.99337785, 0.08483806, 0.07747866, -92.91055059],[-0.07889607,…