所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
单道程序的运行过程:
在A程序计算时,I/O空闲, A程序I/O *** 作时,CPU空闲(B程序也是同样);必须A工作完成后,B才能进入内存中开始工作,两者是串行的,全部完成共需时间=T1+T2。
多道程序的运行过程:
将A、B两道程序同时存放在内存中,它们在系统的控制下,可相互穿插、交替地在CPU上运行:当A程序因请求I/O *** 作而放弃CPU时,B程序就可占用CPU运行,这样 CPU不再空闲,而正进行A I/O *** 作的I/O设备也不空闲,显然,CPU和I/O设备都处于“忙”状态,大大提高了资源的利用率,从而也提高了系统的效率,A、B全部完成所需时间<<T1+T2。
多道程序设计技术不仅使CPU得到充分利用,同时改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和系统吞吐量(单位时间内处理作业(程序)的个数),最终提高了整个系统的效率。
单处理机系统中多道程序运行时的特点:
(1)多道:计算机内存中同时存放几道相互独立的程序;
(2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;
(3)微观上串行:实际上,各道程序轮流地用CPU,并交替运行。
多道程序系统的出现,标志着 *** 作系统渐趋成熟的阶段,先后出现了作业调度管理、处理机管理、存储器管理、外部设备管理、文件系统管理等功能。 20世纪60年代中期,在前述的批处理系统中,引入多道程序设计技术后形成多道批处理系统(简称:批处理系统)。
它有两个特点:
(1)多道:系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。
(2)成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。
批处理系统的追求目标:提高系统资源利用率和系统吞吐量,以及作业流程的自动化。
批处理系统的一个重要缺点:不提供人机交互能力,给用户使用计算机带来不便。
虽然用户独占全机资源,并且直接控制程序的运行,可以随时了解程序运行情况。但这种工作方式因独占全机造成资源效率极低。
一种新的追求目标:既能保证计算机效率,又能方便用户使用计算机。 20世纪60年代中期,计算机技术和软件技术的发展使这种追求成为可能。
为了支持多任务处理, *** 作系统的处理器调度程序使用并发技术把CPU分配给各个任务,使多个任务宏观上可 以“同时”执行。
对于多道程序来说,最大的问题是程序之间不区分轻重缓急,对于交互式程序来说,对于 CPU 计算时间的需求并不多,但是对于响应速度却有比较高的要求。
而对于计算类程序来说则正好相反,对于响应速度要求低,但是需要长时间的 CPU 计算。想象一下我们同时在用浏览器上网和听音乐,我们希望浏览器能够快速响应,同时也希望音乐不停掉。这时候多道程序就没法达到我们的要求了。
于是人们改进了多道程序,使得每个程序运行一段时间之后,都主动让出 CPU 资源,这样每个程序在一段时间内都有机会运行一小段时间。这样像浏览器这样的交互式程序就能够快速地被处理,同时计算类程序也不会受到很大影响。
扩展资料:
CPU 资源十分昂贵,如果让 CPU 只能运行一个程序,那么当 CPU 空闲下来(例如等待 I/O 时),CPU 就空闲下来了。为了让 CPU 得到更好的利用,人们编写了一个监控程序,如果发现某个程序暂时无须使用 CPU 时,监控程序就把另外的正在等待 CPU 资源的程序启动起来,以充分利用 CPU 资源。
这个是多道程序设计的典型题啊,同学把分给我啊。
1 1)总共花多少时间:15(P1)+5(P2)+5(P3) +5(P1)+5(P3) +10(P2)+10(P3)=55(ms)
2)图我就不画了,你可以横坐标和时间,纵坐标为调动进程。在上面计算时,我已经把它们执行的时间顺序给出来了,相信你肯定可以画出。
2 单道的话,总时间为:P1+P2+P3=30+30+35=95(ms),可知节省40ms
采用多道程序设计能改变系统资源的使用情况,提高系统效率,但是应注意以下两个问题:
(1) 可能延长程序的执行时间;
(2) 并行工作道数与系统效率不成正比。从表面上看,增加并行工作道数就可提高系统效率,但实际上并行工作道数与系统效率是不成正比的,因为并行的道数要根据系统配置的资源和用户对资源的要求而定;主存储器的大小限制了可同时装入的程序数量;外围设备的数量也是一个制约条件;多个程序同时要求使用同一资源的情况也会经常发生。
总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量,但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能一长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。
在多道程序系统中,进程的数量往往多于处理机的个数,这样不可能同时并行地处理各个进程。处理机的调度就是 从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行 ,以实现进程的并发执行。
调度的方式: 高级调度、中级调度、低级调度。
由于内存空间有限,有时无法将用户提交的作业全部放入内存中,因此需要确定某种规则来决定作业调入内存的顺序。
高级调度(作业调度) :按照一定的原则从外存上处于后备队列的作业中挑选一个或多个作业,给他们分配内存等必要资源,并建立相应的进程( 建立PCB ),以使它(们) 获得竞争处理机的权利。
高级调度是外存与内存之间的调度。 每个作业只调入一次,调出一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要 *** 作系统来确定,但调出的时机必然是作业运行结束才调出。
在引入虚拟存储技术之后,可以将暂时不能运行的进程调至外存等待,等它重新具备了运行条件且内存又稍有空间时,再重新调入内存。
这样做是为了提高内存利用率和系统吞吐量。
暂时调到外存等待的进程状态为 挂起状态 ,但是进程的PCB不会一起调到外存,而是会 常驻内存 。PCB中会记录进程数据在外存中的存放位置,进程状态等信息, *** 作系统通过内存的PCB来保持对各个进程的监控、管理。被挂起的进程PCB会被放到挂起队列中。
中级调度(内存调度) ,就是按照某种规则,从挂起队列中选择合适的进程将其数据重新调回内存。
一个进程可能会被多次调出、调入内存。因此中级调度发生的频率比高级调度更高
低级调度(进程调度) :其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
进程调度是 *** 作系统中最基本的一种调度,在一般的 *** 作系统中都必须配置进程调度。
进程调度的频率很高,一般几十毫秒一次。这样才能保证多进程在宏观是同时进行的。
需要进行进程调度与切换的情况:
不能进行进程调度与切换的情况:
非剥夺调度方式,又称非抢占式。 即只允许进程主动放弃处理机,在运行过程中即使有更紧急的任务到达,当前进程依然会继续使用处理机,直到该进程终止或要求进入阻塞态。
实现简单,系统开销小但是无法及时处理紧急任务,适合早期批处理 *** 作系统。
剥夺调度方式,又称抢占式。 当一个进程正在处理机上执行时,如果有一个更重要更紧急进程要使用处理机,即立即暂停正在执行的进程,将处理机分配给更重要更紧急的那个进程。
可以优先处理更紧急的进程。也可以实现各进程按时间片轮流执行的功能(通过时钟中断)。适合分时 *** 作系统、实时 *** 作系统。
由此可见, 进程的切换是有代价的 ,因此如果进程切换调度过于频繁的话,必然会使整个系统的开销过大,效率降低。因为系统大部分时间都花在进程切换上,真正用于执行进程的时间少。
评价指标: CPU利用率、系统吞吐量、周转时间、等待时间、响应时间。
CPU利用率:指CPU忙碌的时间占总时间的比例。
CPU利用率 = 忙碌时间 / 总时间。
如某计算机只支持单道程序,某个作业刚开始需要在CPU上运行5s,再用打印机打印输出5s,之后再执行5s,在此过程中:
CPU利用率=(5 + 5) / 15 = 6667%
打印机利用率=5 / 15 = 3333%
系统吞吐量:单位时间内完成作业的数量。
系统吞吐量=总共完成了多少道作业/总共花了多少时间
周转时间:指从作业被提交给 *** 作系统开始,到作业完成为止的这段时间间隔。
包括四个部分:作业在外存设备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/O *** 作完成的时间。
作业周转时间= 作业完成时间 – 作业提交时间
平均周转时间 = 各作业周转时间之和 / 作业数
带权周转时间 = 作业周转时间 / 作业实际运行时间
平均带权周转时间 = 各作业带权周转时间之和 / 作业数
等待时间:指进程或作业处于等待处理机状态时间之和。
平均等待时间:各个进程/作业等待时间的平均值。
对进程来说,等待时间就是指进程建立后等待被服务的时间之和。
对于作业来说,不仅要考虑建立进程后等待的时间(进程建立时作业已经进入了内存),还要加上作业在外部存后备队列中等待的时间。
响应时间:指从用户提交请求到首次产生相应所用的时间。
本文完
如发现错误,请指正!!!
C表示CPU计算时间,I表示IO时间,0表示等待时间每个字母表示5ms
p1:CCCIIC
p2:000C0IIICC
p3:0000C0CCIICC
总时间:60ms
单道运行总时间95ms
多道程序并行是指 *** 作系统允许有两道以上用户应用程序在计算机系统中运行若为单CPU,系统让多个用户程序以某种方式轮流占有CPU运行;通过对多道程序的合理调度,系统让CPU和外部设备得到充分利用
以上就是关于 *** 作系统发展史的多道程序系统全部的内容,包括: *** 作系统发展史的多道程序系统、为了支持多任务处理, *** 作系统的处理器调度程序使用( )技术把CPU分配给各个任务,使、有三个进程p1 p2 p3其进入系统时间和服务时间如下图 按fcfs调度算法,他们的平等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)