-
计算机系统结构第三章(习题解答).pdf
2019-09-22 19:06:281.层次结构——计算机系统可以按语言的功能划分为多级层次结构,每一层以不同的语 言为特征。 计算机系统结构(第三版)张晨曦 课后答案 2.翻译——(基于层次结构)先把N+1级程序全部变换成N级程序之后,再去执行N... -
《计算机操作系统教程》习题详解(第二版)
2010-11-20 12:37:53在单处理机系统中,下述并行和并发现象哪些可能发生,哪些不会发生 ? (1) 进程与进程之间的并行; (2) 进程与进程之间的并发; (3) 处理机与设备之间的并行; (4) 处理机与通道之间的并行; (5) 通道与通道之间的并行; ... -
Apache 多任务并发处理
2012-03-10 19:51:36但是,因为不同的操作系统平台和计算机硬件的差别使得并发模型没有一个通用的规则,在很多平台上非常优秀的并发模型换到另一个平台上就变成性能很差;另外同一个系统平台但是执行的任务不同,同一个并发模型的并发...1. 基本简介
(1) 我们知道操作系统早就实现了并发机制,则充分利用操作系统的并发机制提高服务器的单机运行效率是服务器开发者不断追求的目标。但是,因为不同的操作系统平台和计算机硬件的差别使得并发模型没有一个通用的规则,在很多平台上非常优秀的并发模型换到另一个平台上就变成性能很差;另外同一个系统平台但是执行的任务不同,同一个并发模型的并发性能也有很大差异;所以并发的性能的影响因素包括:
- 操作系统平台
- 服务器跑的任务
(2) Apache 是用C语言开发的,所以入口是一个main主程序,主程序一旦调用MPM模型中的ap_mpm_run函数后,就进入了多进程并发处理状态,为了并发处理客户端的请求,Apache会产生多个进程,而每个进程又会产生多个线程.
Aapche提供了多个并发模型:
- prefork:一般用于Unix操作系统,基于进程的并发,以进程为一个处理client请求的基本单位;有多个子进程(但没有线程);一般Linux系统会默认次并发模型
- worker:新的MPM,同事使用了线程和进程,效率比单纯使用进程的Prefork MPM要高(既有进程、也有线程)
- WinNT :适用于windows系统平台,以线程作为处理client请求的基本单位
(3) MPM的主要任务
MPM的主要任务是创建进程或线程并对它们进行管理,包括在空闲的时候终止多余的进程或线程,以及在忙碌的时候启动更多的进程和线程;另外一个任务是在套接字上(socket)上监听客户端的请求,当请求到达时,MPM将把它派发给创建好的进程和线程,继而进入请求处理阶段(每一个进程或线程将自始至终只负责一个客户端的请求)
(4) MPM并发模型中用进程、线程作为处理请求的基本单位的优缺点:
- 进程的优点:进程之间是相互独立的,所以一个进程出现问题不影响其他的进程处理请求
- 进程的缺点:具有比较大的上下文切换(上下文切换次数多),会影响进程之间切换的时间
- 线程与进程相比就属于轻量级的,线程之间切换时间也比较少;更重要的优点是线程之间可以恭喜大部分上下文,方便彼此之间通信;
- 线程的缺点:不稳定,如果一个线程崩溃,则其余的线程也会随之崩溃
(5) MPM 数据结构
- 计分板(SoreBoard):
计分板类似于共享内存,主要用于父子进程之间的数据交换,任何一方可以将对方需要的信息写入计分板,同事任何一方都可以在计分板上获取自己需要的信息;
MPM一个重要的任务是在空闲时关闭多余的进程,在繁忙时开启更多的进程或线程;子进程和子线程把自己的状态记录到计分板上,父进程到计分板读取信息,然后通过终止管道对一部分子进程下达关闭命令。
2. 终止管道(Pipe of Death)
主进程通过终止管道向子进程、子线程下达命令,让他们关闭,也是单方向通信的;父进程把关闭命令写到终止管道的一端,子进程或子线程会时时监听终止管道,监听到父进程发送命令后会到终止管道的另一端读取命令,如果是终止命令,则子线程会自动关闭。
管道的特点:管道是用来不同进程之间进行通信的
- 管道是半双工通信,数据只能在一个方向上流动,在进行双向通信时需要建立两个管道,分别用于不同的方向
- 管道通常用于父子进程或兄弟进程等具有血缘关系的进程进程通信
- 管道本质:管道是一个文件,他/它并不属于某种特定文件系统,是自立门户,单独构成一个文件系统,并且只存在于内存中;当进程写入数据时,所有的数据都添加到管道缓冲区的末尾,而读取时是从缓冲区的头部读取,所有的数据只能读一次,一旦读取,数据会丢失。
(6) Apache 优雅启动
Apache允许在不完全终止Apache的情况下重启Apache,当Apache重启时,其主程序将退出,但它产生的子进程或线程仍继续运行,直到请求处理结束。
当Apache启动后会重新建立一个主程序,然后会创建一下子进程,它们之间是父子关系的;但Aapche关闭前的子进程与这个父进程没有血缘关系,所以在执行完client请求后会字段关闭。
-
操作系统中的几种I/O控制方式
2018-09-28 16:53:42I/O控制方式发展的目标是尽量减少主机对 I/O 控制的干预,把主机从繁杂的 I/O 控制事务中解脱出来,以便更多地进行数据处理,提高计算机效率和资源的利用率。它们之间的主要差别在于 CPU 与外围设备并行工作的方式和...目录
一、导读
为了有效地实现物理I/O操作,必须通过硬件和软件技术,对 CPU 和 I/O 设备的职能进行合理的分工,以调节系统性能和硬件成本之间的矛盾。
随着计算机技术的发展,I/O 控制方式也在不断发展。选择和衡量 I/O 控制方式有如下三条原则:
(1) 数据传送速度足够快,能满足用户的需求但又不丢失数据;
(2) 系统开销小,所需的处理控制程序少
(3) 能充分发挥硬件资源的能力,使 I/O 设备尽可能忙,而 CPU 等待时间尽可能少。
按照I/O控制器功能的强弱以及和 CPU 之间联系方式的不同,可以把 I/O 设备的控制方式和通道控制方式分为四类:直接程序控制方式、中断驱动控制方式、直接存储器访问(DMA)控制方式和通道控制方式。I/O控制方式发展的目标是尽量减少CPU对 I/O 控制的干预,把CPU从繁杂的 I/O 控制事务中解脱出来,以便更多地进行数据处理,提高计算机效率和资源的利用率。它们之间的主要差别在于 CPU 与外围设备并行工作的方式和程度不同。
二、I/O控制方式
1、直接程序控制方式
直接程序控制方式由用户进程直接控制主存或 CPU 和外围设备之间的信息传送。直接程序控制方式又称为询问方式,或忙/等待方式。通过 I/O 指令或询问指令测试 I/O 设备的忙/闲标志位,决定主存与外围设备之间是否交换一个字符或一个字。
直接程序控制方式流程图 流程图概述直接程序控制方式的工作流程如下:
① 当用户进程需要输入数据时,通过 CPU 向控制器发出一条 I/O 指令,启动设备输入数据,同时把状态寄存器中的忙/闲状态 busy 置为1
② 用户进程进入测试等待状态,在等待过程中,CPU 不断地用一条测试指令检查外围设备状态寄存器中的 busy 位,而外围设备只有在数据传入控制器的数据寄存器之后,才将该 busy 位置为0,。
③ 处理器将数据寄存器中的数据取出,送入主存指定单元,完成一个字符的I/O操作,接着进行下一个数据的 I/O 操作
直接程序控制方式虽然简单,不需要多少硬件的支持,但由于高速的 CPU 和低速的 I/O 设备之间的速度上不匹配,因此,CPU 与外围设备只能串行工作,使 CPU 的绝大部分时间都处于等待是否完成 I/O 操作的循环测试中,造成 CPU 的极大浪费,外围设备也不能得到合理的使用,整个系统的效率很低。因此,这种I/O控制方式只适合于 CPU 执行速度较慢,且外围设备较少的系统。
2、中断驱动控制方式
为了减少程序直接控制方式下 CPU 的等待时间以及提高系统的并行程度,系统引入了中断机制。中断机制引入后,外围设备仅当操作正常结束或异常结束时才向 CPU 发出中断请求。在 I/O 设备输入每个数据的过程中,由于无需 CPU 的干预,一定程度上实现了 CPU 与 I/O设备的并行工作。仅当输入或输出完一个数据时,才需 CPU 花费极短的时间做中断处理。
中断驱动方式流程图 存在的问题:由于I/O操作直接由 CPU 控制,每传送一个字符或一个字,都要发生一次中断,仍然占用了大量的 CPU 处理时间,因此可以通过为外围设备增加缓冲寄存器存放数据来减少中断次数。
上述两种方法的特点都是以 CPU 为中心,数据传送通过一段程序来实现,软件的传送手段限制了数据传送的速度。接下来介绍的这两种I/O 控制方式采用硬件的方法来显示 I/O 的控制
3.直接存储器访问控制方式
直接存储器访问控制方式又称 DMA(Direct Memory Access)方式。为了进一步减少 CPU 对 I/O 操作的干预,防止因并行操作设备过多使 CPU 来不及处理或因速度不匹配而造成的数据丢失现象,引入了 DMA 控制方式。在 DMA 控制器的控制下,采用窃取或挪用总线控制权,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必让 CPU 干预。
DMA方式的特点:
① 数据传送以数据块为基本单位
② 所传送的数据从设备直接送入主存,或者从主存直接输出到设备上
③ 仅在传送一个或多个数据块的开始和结束时才需 CPU 的干预,而整块数据的传送则是在控制器的控制下完成。
DMA方式和中断驱动控制方式相比,减少了 CPU 对 I/O 操作的干预,进一步提高了 CPU 与 I/O 设备的并行操作程度。
DMA方式的线路简单、价格低廉,适合高速设备与主存之间的成批数据传送,小型、微型机中的快速设备均采用这种方式,但其功能较差,不能满足复杂的 I/O 要求。
4、通道控制方式
通道,独立于 CPU 的专门负责输入输出控制的处理机,它控制设备与内存直接进行数据交换。有自己的通道指令,这些指令由 CPU 启动,并在操作结束时向 CPU 发出中断信号。
直接程序控制方式和中断程序控制方式适合于低速设备的数据传送,而 DMA 方式虽然适合于高速设备的数据传送,但一个 DMA 控制器只能控制少量的同类设备,这远远不能满足大型计算机系统的需要。通常,一个大型计算机需要连接大量的高速和低速设备,通道控制方式可以满足这个要求。(DMA和通道控制方式的主要区别——能否满足大型计算机系统的既能处理高速设备又能处理低速设备的需要)
通道控制方式,实现了CPU、通道和I/O设备三者的并行操作,从而更加有效地提高整个系统的资源利用率。例如,当 CPU 要完成一组相关的读(或写)操作时,只需要向 I/O 通道发出一条 I/O 指令,指出其所要执行的通道程序的首址和要访问的I/O设备,通道接收到该指令后,通过执行通道程序便可完成 CPU 指定的 I/O 任务。可见,通道只是在 I/O 操作的起始和结束时向 CPU 发出 I/O 中断申请,相对于之前的控制方式进一步减少了 CPU 的干预程度。
三、参考文献
《操作系统教程》机械工业出版社 谢旭升 朱明华 张练兴 李宏伟 编著
关于我
微信公众号:Guevara的笔记,技术菜鸟记录技术学习过程。
-
并发性与并行性的差别【转】
2012-11-25 14:44:22计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运行的)。...并行性包含同时性和并发性,前者是指两个或多个事件在同一时刻发生,后者是指两个或多个事件在同一时间段内发生。
计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运行的)。
所谓并行性(parallelism)是指在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。只要时间上互相重叠,就存在并行性。严格来讲,把两个或多个事件在同一时刻发生的并行性叫做同时性(simultaneity);而把两个或多个事件在同一时间间隔内发生的并行性叫做并发性(concurrency)。以n位并行加法为例,由于存在着进位信号的传播延迟时间,全部n位加法结果并不是在同一时刻获得的,因此并不存在同时性,而只存在并发性的关系。如果有m个存储器模块能同时进行读出信息,则属于同时性。
并行的事件或活动一定是并发的,反之并发的事件或者活动未必就是并行的。并行性事并发性的一个特例。
并发性描述的其实是两个事件在一个时间间隔内发生,但未必会同时进行,也有可能会在某一时间重叠区域中同时进行,这就要看这个时间间隔如何定义了。而并行性体现在同一时刻上不同的事件都正在进行着。比如,两个人,一部电话,时间8:00-8:10这个时间段内,两个人都想打电话体现了前面所说的并发性,但是只有一部电话,谁先来谁用,就不可能出现两个人同时打电话的情况。
所以,同一时间间隔内发生,但不同时进行的情况在内核中会出现很多,通常在资源有限的情况下会体现得更明显。
-
MPP技术(计算机)
2019-01-29 12:48:58由大量用用微处理器构成的多处理机系统,适合多指令流多数据流处理。 计算机体系结构中,MPP指大规模并行处理机。MPP在20世纪90年代盛行。 如今,世界上排名靠前的大型机,都是MPP。 MPP层(Media Process Platform...大规模并行处理计算机:Massive Parallel Processor。由大量用用微处理器构成的多处理机系统,适合多指令流多数据流处理。
计算机体系结构中,MPP指大规模并行处理机。MPP在20世纪90年代盛行。
如今,世界上排名靠前的大型机,都是MPP。
MPP层(Media Process Platform)
MPP层基于驱动层,屏蔽芯片和硬件平台的差别,提供面向媒体业务的基本功能。MPP的编程接口称为MPI(MPP Programe Interface)。
MPP(Massively Parallel Processing),意为大规模并行处理系统,这样的系统是由许多松耦合处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线、内存、硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。
-
计算机图形学的算法基础(原书第2版)--详细书签版
2012-10-17 03:40:53本书从图形学最基础的光栅扫描、区域填充、画直线和圆弧等算法讲起,详细介绍了线裁剪和面裁剪、凸区域裁剪和凹区域裁剪的异同,景物空间消隐算法和图像空间消隐算法的差别, 具体讲述了二叉空间剖分(BSP)、八叉... -
LINUX系统分析与高级编程技术
2010-09-17 22:56:094.6 系统和文件的备份 4.7 设置系统 4.7.1 设置系统名 4.7.2 使用维护磁盘 4.7.3 重新设置root帐号口令 4.7.4 设置登录信息 第二部分 Linux语言及管理编程 第二章 外壳编程 5.1 创建和运行外壳程序 5.1.1 创建... -
计算机网络知识点(网络层)
2019-06-27 21:51:57无连接:数据报服务 (计算机网络的端系统是智能的计算机,计算机有很强的差错处理能力,这点和传统的电话机有本质上的差别。) 因特网采用的设计思路——网络层向上提供简单灵活的、无连接的、尽最大努力交付的... -
LINUX系统分析与高级编程技术.rar
2009-05-20 18:26:304.6 系统和文件的备份 32 4.7 设置系统 33 4.7.1 设置系统名 33 4.7.2 使用维护磁盘 33 4.7.3 重新设置root 帐号口令 33 4.7.4 设置登录信息 33 第二篇 Linux高级语言及管理编程 第5章 外壳编程 35 5.1 创建和运行... -
UNIX高级编程 计算机科学丛书
2010-01-27 18:57:472.2和2.3节将对这些标准和版本之间的差别作更多说明。 在本书中,用4.3+BSD表示BSD NET2和4.4BSD之间的Unix系统。 在本书写作时,4.4BSD尚未发行,所以不能称一个系统为4.4BSD。尽管为此, 需要一个简单的名字以... -
什么是耦合?
2016-12-16 13:15:29处理机之间连接的紧密程度,可用处理机之间的距离及相互连接的信号线数目表示计算机网络与多机系统在耦合程度上有明显差别:多机系统是紧耦合系统,计算机网络属于松耦合系统。 软件设计中通常用耦合度和内聚度... -
中国应用软件企业岗位状况调查报告.doc
2020-12-27 15:15:41中国应用软件企业岗位状况调查报告 软件的分类 软件是计算机的灵魂,没有软件的计算机就如同没有磁带的录音机和没有录像带的录像机一样,与废铁没什么差别。使用不同的计算机软件,计算机可以完成许许多多不同的... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收... -
windowsnt 技术内幕
2014-04-09 20:47:17多域环境下的帐号转置 集中式管理的简介 配置单向和双向委托 理解委托域和受托域之间的差别 使用内建组管理委托 理解传递身份审核 跨越委托向用户授权访问资源 管理被破坏的委托关系理解委托的不可传递性问题 服务器... -
软件工程答案十分准的
2010-10-26 11:11:303.1.1 确定对系统的综合要求56 3.1.2 分析系统的数据要求57 3.1.3 导出系统的逻辑模型58 3.1.4 修正系统开发计划58 3.2 与用户沟通获取需求的方法58 3.2.1 访谈58 3.2.2 面向数据流自顶向下求精59 3.2.3 简易的应用... -
会计理论考试题
2012-03-07 21:04:40第一套 选择题 1.计算机感染病毒后会产生各种现象,以下不属于病毒现象的是__D__。 A、文件占用的空间变大 B、发生异常...15.计算机病毒主要破坏计算机系统的 ___C__ 。 A、显示器 B、软盘 C、软件资源 D、硬盘 16._... -
TCPIP协议详解卷2:实现
2015-07-26 16:56:44无论是编写网络应用的程序员,负责利用TCP/TP维护计算机系统和网络的系统管理员,还是任何有兴趣理解大块非凡代码的普通读者;本书都是一本优秀的教科书。 作者简介: W.Richard Stevens(1951-1999),国际知名的... -
Linux下配置Nginx反向代理
2018-03-14 08:13:01导读在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的... -
c语言编写单片机技巧
2009-04-19 12:15:17答:对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其... -
UNIX网络编程 第2卷 进程间通信
2013-12-30 13:22:02本书与第1版的差别 本卷是对“UNIX Network Programming”1990年版中第3章和第18章的完全重写和扩充。从词数上统计,整个材料扩充了5倍。下面是新版本中所做的主要修改: ·除了“System VIPC”的3种形式(消息... -
TCPIP详解--共三卷
2015-11-30 17:17:21第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播 132 12.4.1 多播... -
百为软路由
2012-11-09 11:34:58而在价格方面,软路由就是一台计算机的价格,而硬件路由的价格则根据性能的不同而有较大的差别。说实话,如果仅仅是实现NAT转换,那么计算机的效率要比硬件路由器要高。 结合多方面的考虑,购买者就必须充分了解自身... -
Ubuntu权威指南(2/2)
2010-12-05 09:01:535.13 比较文件之间的差别 123 5.13.1 使用diff命令比较两个 ??文件 123 5.13.2 使用diff3命令比较3个 ??文件 123 5.14 从系统中检索文件 124 5.14.1 简单检索 126 5.14.2 使用逻辑运算符 126 5.14.3 利用find命令... -
Ubuntu权威指南(1/2)
2010-12-05 08:57:035.13 比较文件之间的差别 123 5.13.1 使用diff命令比较两个 ??文件 123 5.13.2 使用diff3命令比较3个 ??文件 123 5.14 从系统中检索文件 124 5.14.1 简单检索 126 5.14.2 使用逻辑运算符 126 5.14.3 利用find命令... -
新版Android开发教程.rar
2010-12-14 15:49:11操作系统的选择 -------- 定制和长尾 � 重构 � MVC 和 Web APP 架构 Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌... -
java 面试题 总结
2009-09-16 08:45:34GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收... -
Android程序设计基础
2013-08-03 16:28:04附录介绍了Android与Java之间的差别以及参考书目。 本书由张波、高朝勤、杨越和徐红霞等翻译,在翻译过程中得到了人民邮电出版社图灵公司编辑的热心帮助,在此一并致谢。由于译者的知识水平有限,加之时间比较... -
院与院之间的差别?报学硕还是专硕?北邮学费、奖助学金如何?有没有夏令营?。。。(请查阅高频问题答疑) 分不清国家线、校线、院线、组线?不知道它们之间有什么区别和联系?各有什么作用?(请查阅1. 分数线简介...
-
MySql官方参考手册 5.1 中文版
2013-10-16 13:47:311.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...
-
模糊系统 智能算法 适用于数学建模培训和人工智能学习
-
supermarketManage-master.zip
-
阿里云研究中心-企业全面上云成功路径与实践.pdf
-
tangt-and-song-dynasties-SSM_StudentInfo-master.zip
-
2021年黑色产业链白皮书.pdf
-
.editorconfig
-
java面试题
-
织梦响应式家居建材家具类网站织梦模板下载(自适应手机端)
-
Docker从入门到精通
-
2021-03-01
-
bat_test.rar
-
tangt-and-song-dynasties-StudentInfo-master.zip
-
最短路问题 图与网络 适用于数学建模培训和人工智能学习
-
中国未来人口情景分析项目报告.pdf
-
Session基本原理(图)
-
Azkaban安装和部署
-
chrome调试如何禁用浏览器缓存
-
MySQL Router 实现高可用、负载均衡、读写分离
-
加法和乘法
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)