第1部分操作系统概论名词解释脱机输入/输出具体的输入/输出不需要在主计算机上进行的方式也称“脱机输入/输出”批处理作业是由操作系统成批地进行处理,操作系统能自动地从输入池读入下一个作业,并予以运行和输出,如此直到整批作业全部处理完毕。SPOOLING由操作系统将磁盘模拟为输入/输出设备的处理方式称为SPOOLING(SimultaneousPeripheralOperatingOnLine),即“并行的外部设备操作联机”,也称“假脱机”。SPOOLING系统是以磁盘为几乎无限巨大的缓冲区来解决低速的I/O设备与高速的CPU之间的速度匹配问题。分时系统为了降低交互式系统的等待时间和运行时间的比率,系统通过多台终端同时向很多用户提供运行环境,这种分时系统就能以合理的成本向用户提供交互式使用计算机的方便。多路性一台主机可连接多台终端,多个终端用户可以同时使用计算机,共享系统的硬软件资源。交互性用户能与系统进行对话。在一个多步骤作业的运行过程中,用户能通过键盘等设备输入数据或命令,系统获得用户的输入后做出响应,显示执行的状况或结果。实时操作系统是一种能在限定的时间内对输入进行快速处理并做出响应的计算机处理系统多处理机系统一个计算机系统中可具有多个CPU或处理机。一般用微处理器构成阵列系统,其运算速度可以达到上万亿次,作业请求计算机完成的一个完整的处理任务称为作业,它可以包括几个程序的相继执行。一个复杂的作业可由多个作业步组成,如编译、运行、打印一个程序的全部工作是一个作业,其中相对独立的每一部分称为作业步。进程(不支持线程的进程)程序在一个数据集合上的运行活动,它是系统进行资源分配和调度的一个可并发执行的独立单位。并发并发是指在某一时间间隔内计算机系统内存在着多个程序活动。并发是从宏观上(这种“宏观”也许不到一秒的时间)看多个程序的运行活动,这些程序在串行地、交错地运行,由操作系统负责这些程序之间的运行切换,人们从外部宏观上观察,有多个程序都在系统中运行。虚拟例如操作系统将一台互斥共享设备虚拟成同时共享设备。共享共享是指多个用户或程序共享系统的软、硬件资源。不确定性不确定性指的是使用同样一个数据集的同一个程序在同样的计算机环境下运行,每次执行的顺序和所需的时间都不相同。操作系统的不确定性不是指程序执行结果的不确定第2部分存储管理名词解释符号名地址由定义在源程序变量标识符号决定的数据存放地址。虚拟地址(相对地址、程序地址、逻辑地址)源程序经汇编或编译后得到的是目标代码程序,由于编译程序无法确定目标代码在执行时所驻留的实际内存地址,故一般总是从零号单元开始为其编址,并顺序分配所有的符号名所对应的地址单元。由于目标代码中所有的地址值都相对于以“0”为起始的地址,而不是真实的内存地址,故称这类地址为相对地址、程序地址、逻辑地址或虚拟地址。物理地址指令中指定的直接内存地址地址重定位当装入程序将可执行代码装入内存时,程序的逻辑地址与程序在内存的物理地址一般是不相同的,必须通过地址转换将逻辑地址转换成内存地址,这个过程称为地址重定位。静态重定位源程序经编译和连接后生成目标代码中的地址是以0为起始地址的相对地址。当需要执行时,由装入程序运行重定位程序模块,根据作业在本次分配到的内存起始地址,将可执行目标代码装到指定内存地址中,并修改所有有关地址部分的值。修改的方式是对每一个逻辑地址的值加上内存区首地址(或称基地址)值。动态重定位将程序在装入内存时,不必修改程序的逻辑地址值,程序执行期间在访问内存之前,再实时地将逻辑地址变换成物理地址。动态重定位要靠硬件地址变换机构实现。单一连续区存储管理操作系统管理一块单一的用户内存区,一个作业在运行要独占整个用户区。固定分区管理在系统初始化时就把存储空间划分成若干个分区(这些分区的大小可以不同),以支持不同的作业对内存大小需求的不同。可变分区存储管理可变分区存储管理法是等到作业运行需要内存时向系统申请时,从若干空闲的内存分区区按要求选择并中“挖”一块出来,其大小等于作业所需内存大小,首次适应法采用首次适应法为作业分配大小为size的内存空间时,总是从表的起始端的低地址部分开始查找,当第一次找到大于或等于申请大小的空闲区时,就按所需大小分配给作业。如果分配后原空闲区还有剩余空间,就修改原存储区表项。循环首次适应法循环首次适应法分配时总是从起始查找指针所指的表项开始查找,第一次找到满足要求的空闲区时,就分配所需大小的空闲区,修改表项,并调整起始查找指针,使其指向队列中被分配的后面的那块空闲区。下次分配时就从新指向的那块空闲区开始查找。最佳适应算法在所有大于或等于要求分配长度的空闲分区中挑选一个最小的分区,即该分区对所要求分配的大小来说,是最适合的。最差适应算法最差适应法所分割的空闲存储区是所有空闲分区中的最大的一块。覆盖将一个大程序按程序的逻辑结构划分成若干个程序(或数据)段,并将不会同时执行,从而就不必同时装入内存的程序段分在一组内,该组称为覆盖段。这个覆盖段可分配到同一个称为覆盖区的存储区域。交换任一时刻主存中只保留一个完整的用户作业。当该作业的时间片用完或因等待某一事件而不能继续运行时,系统就挑选下一个作业进入主存运行。为了减少在主存和辅存间传输的数据量,可以只将原作业的一部分保存到辅存中去,只要释放的主存空间刚好够装入下一个运行作业就行。在以后的适当时间,作业移出的部分可装入到原来的存储区中继续运行下去。这种技术称之为交换技术,也叫“滚进滚出”。虚拟存储器在主存中可只装入最近经常要访问的某些区域的指令和数据,剩余部分就暂时不必装入,等到以后要访问到它们时再调入内存。如果主存较紧张,必要时可将已不大访问的信息调出内存,再执行调入操作。由于作业的指令和数据可以存放在外存中,用户的程序就不受实际内存大小的限制,好像计算机系统向用户系统提供了容量极大的“主存”,而这个大容量的“主存”是靠存储管理的软件和硬件通过大容量的辅存作为后援存储器扩充而获得的,是程序设计员感觉到的,而实际上并不存在的存储器,故称虚拟存储器。页式存储管理页式存储管理的基本思想是把作业的虚拟地址空间划分成若干长度相等的页(page),也称虚页,每一个作业的虚页都从0开始编号。主存也划分成若干与虚页长度相等的页架(frame),也称页框或实页,主存的页架也从0开始编号。程序装入时,每一个虚页装到主存中的一个页架中,这些页架可以是不连续的。页表每一个作业的虚页号到内存的页架号之间的映射关系的表。联想寄存器是一种按内容进行并行查找的一组快速寄存器。当用作为页面快表时,在其输入端有一个输入值页号p时,在联想寄存器中存放页号为p的那一项就立即选中,并输出其变换值页架号b。由于访问联想寄存器比访问主存快得多,故极大地提高了地址变换速度。快表很多页式系统都配有一组快速寄存器,用来存放当前运行作业的页表表项,以加速地址变换过程,这种页表称之为快表。快表由CPU中的高速cache或联想寄存器构成。请求分页其基本思想是对于每一个运行作业,只装入当前运行需要的一部分页面集合。当作业运行时需要访问其他不在主存中的虚页时,硬件产生“缺页中断”,如主存资源紧张,可在原先装入主存的页面中选择一个或多个页,将其换出到辅存中,再把所需的页调入主存。请求式分页系统将主存和辅存这两级存储器融合成逻辑上统一的整体,故在这种系统中能运行比可用主存更大的作业或在相同容量的主存中并发运行更多的作业。工作集当前运行需要的一部分页面的集合。页面淘汰请求分页系统中的程序在运行时,当发现某页的内容未被调入主存,就要通过缺页中断处理程序调入该页。如这时主存中还有空闲的页架,那么只需要分配给调入页即可;但如果此时主存中所有页架都已分配出去,就只能从已占用的页架中挑选出一个页面,释放其所占的内存空间,即将其“淘汰”,以腾出空页架以装入新页。最优淘汰算法就是淘汰那些从当前时刻起在页面流中不再出现的页,如没有这类页,则淘汰一个在页面流中最晚出现的页。先进先出淘汰算法总是淘汰最早调入主存的页面。最近最少使用淘汰算法(LRU,LeastRecentlyUsed)比较最近一段时间里对各个页面的访问频率,淘汰访问频率最低的页面。实际上,很多系统都将该算法实现为淘汰“最近一段时间内最久没有访问”最近未使用淘汰算法(NUR,NotUsedRecently)淘汰最近一段时间内未曾访问过的某一页面。该算法的一个实施不仅能考虑最近未曾访问过的页,还能优先挑选页面数据未曾修改过的页,这样可减少将淘汰页写回辅存的开销。段式存储管理用户可以根据逻辑结构将程序分成若干段,每一段的虚拟地址空间各自都从0开始编址,因此整个作业的虚拟地址空间是二维的。类似于页式管理,段式管理要通过一个段表来进行地址变换。段页式存储管理段页式存储管理的基本思想是将面向用户的程序地址空间分为段,系统为每一段分配和管理实存时再分页,这样可以保持分段管理系统的便于模块化设计、允许分段动态扩展、动态链接、分段的共享和段地址的保护等诸优点,也便于保持页式存储管理系统提供的大容量的虚拟存储器、没有页外碎片存在、无需紧凑内存、从而更有效地利用主存、且对用户透明的优点。第3部分进程管理名词解释进程进程(不支持线程的进程)是程序处于一个执行环境中在一个数据集上的运行过程,它是系统进行资源分配和调度的一个可并发执行的独立单位。进程控制块PCB(ProcessControlBlock)系统用于查询和控制进程运行的档案,它描述进程的特征,记载进程的历史,决定进程的命运。执行(Running)状态进程占用了CPU,正在执行指令的状态。就绪(Ready)状态进程拥有除了CPU之外的任何其他的资源和运行条件,只是由于还没有给它分配CPU而处于下一个执行阶段的起跑线上,它已“万事俱备,只欠东风”,因此就绪状态进程在逻辑上是可执行的。在一个系统中可以有多个进程处于就绪状态,通常将它们排在一个(或多个)就绪队列中。阻塞(Blocked)状态阻塞状态也称睡眠状态、封锁状态或挂起状态等。某些系统中这些状态有微小的差别。一个进程因某个原因(或事件)暂时无法继续运行下去,因此放弃了CPU,等待影响它运行的因素消除。引起进程阻塞的原因很多,如进程在等待用户输入数据,或等待I/O设备空闲,或等待其他进程发一个同步信号等。一个进程进入了阻塞状态后,系统根据不同的原因将它们排入某一个阻塞队列中。高级调度又称长程调度、作业调度或接纳调度等,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。系统中高级调度的执行频度较低,一个作业只需经过一次高级调度。中级调度又称中程调度,它决定处于交换区中的就绪进程中哪一个可以调入内存,以便直接参与对CPU的竞争。在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞状态的进程调至交换区,以便为调入进程腾出空间。这相当于使处于内存中的进程和处于盘交换区中的进程交换了位置,故中级调度又称为“对换调度”。中级调度是为了缓解内存资源的紧张状态,在多道程序范畴内实现进程动态覆盖和进程级的虚拟存储器技术。一个进程在其运行期间可能需要经过多次中级调度。低级调度又称短程调度或进程调度。它决定驻在内存中的哪一个就绪进程可以占用CPU,使其获得实实在在的执行权力,故低级调度又可称处理机调度或分派调度。低级调度执行频度很高。先来先服务(FIFO)调度算法先来先服务算法是按照进程到达就绪队列的时间次序分配处理机,这是一种不可抢占式的简单算法。时间片轮转法进程按到达的时间排在一个先进先出就绪队列中,调度程序每次选择队首的就绪进程,使其占用处理机,并运行一段称为“时间片”的固定时间间隔。在这个时间片内,如运行任务完成或因I/O等原因进入了阻塞状态,该进程就提前退出执行队列,调度程序就使就绪队列中的下一个进程占用处理机,使用一个时间片。当一个进程耗费完了一个时间片而尚未执行完毕,调度程序就强迫它放弃处理机,使其重新排到就绪队列末尾,再等待一个轮转周期。优先级调度算法为了能反映出各种进程的重要和紧迫程度,系统赋予每一个进程一个优先数,用优先数表示该进程的优