本章考核知识点:1.多道程序设计 2.进程 3.进程状态 4.进程控制块 5.进程队列 6.可再入程序 7.中断及中断响应 8.中断优先级 9.进程调度
自学要求:通过本章学习应该掌握多道程序设计是如何提高计算机系统效率的;进程与程序有什么区别;进程的基本状态以及状态变化;进程队列及进程调度策略;中断的作用。
重点是:多道程序设计;进程的定义和属性;进程调度策略。
一、 多道程序设计( 领会 )
1、什么是多道程序设计。
让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“ 多道程序设计 ”,这种计算机系统称“多道程序设计系统” 或简称“多道系统”。
存储保护 :在多道程序设计的系统中,主存储器中同时存放了多个作业的程序。为避免相互干扰,必须提供必要的手段使得在主存储器中的各道程序只能访问自己的区域。这样,每道程序执行时,都不会破坏其他各道的程序和数据。特别是当某道程序发生错误的时,也不至于影响其它的程序。
程序浮动 :在多道程序设计系统中,对程序有一些特殊要求,也就是说,程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行,这种技术称为“程序浮动”。
在多道程序设计的系统中,有三点基本要求:
用“存储保护”的方法保证各道程序互不侵犯;
用“程序浮动”技术让程序能灵活地改变存放区域且能正确执行;
必须对资源按一定的策略分配和调度。
2、 多道程序设计 利用了系统与外围设备的并行工作能力,从而提高工作效率。具体表现为:
提高了处理器的利用率;
充分利用外围设备资源:计算机系统配置多种外围设备,采用多道程序设计并行工作时,可以将使用不同设备的程序搭配在一起同时装入主存储器,使得系统中各外围设备经常处于忙碌状态,系统资源被充分利用;
发挥了处理器与外围设备以及外围设备之间的并行工作能力;
从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。
3、 多道程序设计 对算题量和算题时间的影响。 采用多道程序设计能改变系统资源的使用情况,提高系统效率。但是应注意以下两个问题:
可能延长程序的执行时间;
并行工作道数与系统效率不成正比。从表面上看,增加并行工作道数就可提高系统效率,但实际上并行工作道数与系统效率是不成正比,因为并行的道数要根据系统配置的资源和用户对资源的要求而定:
(1)主存储器的大小限制了可同时装入的程序数量;
(2)外围设备的数量也是一个制约条件;
(3)多个程序同时要求使用同一资源的情况也会经常发生。
总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量;但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能延长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。
二、 进程( 领会 )
1、 进程 的定义:把一个程序在一个数据集上的一次执行称为一个“进程”。
2、 进程是由 程序 、 数据集 和 进程控制块 三部分组成。
我们举一个例子,比如在有一个用户程序notepad.exe(记事本),当它存放在磁盘上时,就是一个程序,在windows操作系统下运行它时,就会在内存中建立一个记事本程序的进程,而我们在记事本中编辑的当前文字就是这个进程的数据集,操作系统会为当前的进程设置一个进程控制块。如果我们再打开一个记事本程序的窗口,就会建立另一个进程,此时运行的是同一个程序,但存在两个进程,第二个窗口中的编辑内容就是第二个进程的数据集。
3、 进程 与 程序 的区别及关系。程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。通常把进程分为“系统进程”和“用户进程”两大类,把完成操作系统功能的进程称为系统进程,而完成用户功能的进程则称为用户进程。
三、 进程状态( 领会 )
1、 进程的 三种基本状态 .通常,根据进程执行过程中不同时刻的状态,可归纳为三种基本状态:
等待态 :等待某个事件的完成;
就绪态 :等待系统分配处理器以便运行;
运行态 :占有处理器正在运行。
2、进程的状态变化
进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态,进程状态之间转换关系如下图所示:
运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。
运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。
进程有四个基本属性:
多态性 从诞生、运行,直至消灭。