系统架构设计师学习笔记 第二章

第二章 操作系统

掌握操作系统原理的关键在于深入理解“一个观点,两条线索”。一个观点是以资源管理的观点来定义操作系统;两条线索是指操作系统如何管理计算系各类资源和控制程序的执行。

2.1 操作系统的类型与结构

操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统。从资源管理的角度看:操作系统主要是对处理器、存储器、文件、设备和作业进行管理。

2.1.1 操作系统的定义

OS是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理的组织计算机工作流程和有效的利用资源,再计算机和用户之间起到接口的作用。

2.1.2 操作系统分类

按照功能划分,可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微内核操作系统等。

2.2 操作系统基本原理

主要功能是进行处理机与进程管理、存储管理、设备管理、文件管理和作业管理的工作。

2.2.1 进程管理

进程是处理机管理中最基本、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态的看待操作系统,则以进程作为独立运行的基本单位,以进程作为分配资源的基本单位。处理机管理也称进程管理。

1. 进程的概念

顺序程序是指程序中若干操作必须按照某种先后次序来执行,并且每次操作前和操作后的数据、状态之间都有一定的关系。在多道程序系统中,程序的运行环境发生了很大的变化,主要体现在:

  1. 资源共享。为提高资源的利用率,计算机系统中的资源由多道程序共同使用。
  2. 程序的并发执行或并行执行。逻辑上讲允许多道不同用户的程序并行运行;允许一个用户程序内部完成不同操作的程序段之间并行运行;允许操作系统内部不同的程序之间并行运行。物理上讲:内存储器中保存多个程序,I/O设备被多个程序交替的共享使用;在多处理机系统的情形下,表现为多个程序在各自的处理机上运行,执行时间是重叠的。单处理机系统时,程序的执行表现为多道程序交替的在处理机上相互空插运行。

实际上,在多道程序系统中,程序的并发执行和资源共享之间时相辅相成的。以方便,只有允许程序并行执行,才可能存在资源共享的问题;另一方面,只有有效的实现资源共享,才可能使得程序并行执行。

并发操作实际上是这样的:大多数程序段只要求操作在时间上是有序的,也就是有些操作必须在其他操作之前,这是有序的,但其中有些操作却可以同时进行。

2. 进程的状态转换

进程至少具有以下三种状态:

  1. 就绪状态。当进程已分配了除CPU意外的所有必要的资源后,只要能再获得处理机,便能立即执行,这是的进程状态为就绪状态。在一个系统中,可以有多个进程同时处于就绪状态,通常把它们排成一个队列,称为就绪队列。
  2. 执行状态。指进程已获得处理机,其程序正在执行。在单处理机系统中,只能有一个进程处于执行状态。
  3. 阻塞状态。指进程因发生某事件(如请求I/O、申请缓冲空间等)而暂停执行时的状态,即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,也称“等待”状态,或“睡眠”状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。

进程状态的变化情况如下:

  1. 运行态$\to$等待态:一个进程运行中启动了外围设备,它就变成等待外围设备传输信息的状态;进程在运行中申请资源得不到满足时;进程在运行中出现了故障时
  2. 等待态$\to$就绪态:外围设备工作结束后等待外围设备传输信息的进程结束等待;等待的资源得到满足时;故障排队后让等待干预的进程结束等待。任何一个结束等待的进程必须先变成就绪状态,待分配到处理器后才能运行。
  3. 运行态$\to$就绪态:进程用完了一个使用处理器的时间后强迫该进程暂时让出处理器,当有更优先权的进程要运行时也迫使正在运行的进程让出处理器。由于自身或外界原因成为等待状态的进程让出处理器时,它的状态就变成就绪状态。
  4. 就绪态$\to$运行态:等待分配处理器的进程,系统按一种选定的策略从处于就绪状态的进程中选择一个进程,让它占用处理器,哪个被选中的进程就变成了运行态。

3. 关于挂起状态

引入刮起状态的原因有:

  1. 对换的需要。为了缓和内存紧张的情况,而将内存中处于阻塞状态的进程换至外存上,使进程又处于一种有别于阻塞状态的新状态。因为即使该进程所期待的事情发生,该进程仍不具备执行条件而不能进入就绪队列,成这种状态为挂起状态。
  2. 终端用户的请求。当终端用户在自己的程序运行期间,发现有可以问题时,往往希望使自己的进程暂停下来。也就是说,使正在执行的进程暂停执行,若是就绪进程,则不接受调度以便研究其执行情况或对程序进行修改。把这种静止状态也称为挂起状态。
  3. 父进程请求。父进程常希望挂起自己的子进程,以便考察和修改子进程,或者协调各子进程之间的活动。
  4. 负荷调节的需要。当实时系统中的工作负荷较重,有可能影响到实时任务的控制时,可由系统吧一些不重要的进程挂起,以保证系统正常运行。
  5. 操作系统的需要。操作系统希望挂起某些进程,以便检查运行中资源的使用情况及进行记账。

综上所述,挂起状态具有以下三个属性:

  1. 被挂起的进程,原来可能处于就绪状态,此时进程(被挂起)的状态称为挂起就绪;若被挂起的进程原来处于阻塞状态,此时的状态称为挂起阻塞。不论那种状态,该进程都是不可能被调度而执行的。
  2. 处于挂起阻塞状态的进程,其阻塞条件与挂起状态无关;当进程所期待的事件出现后,进程虽不再被阻塞,但仍不能运行,这时,应将该进程从静止阻塞状态转换为挂起就绪状态。
  3. 进程可以由其自身挂起,也可由用户或操作系统等将之挂起。其目的都在于组织进程继续进行,被挂起的进程只能用显示方式来激活,以便从挂起状态中解脱出来。

4. 进程互斥与同步

进程互斥定义为:一组并发进程中一个或多个程序段,因为共享某一共有资源而导致必须以一个不允许交叉执行的单位执行。也就是说互斥是保证临界资源在某一时刻只被一个进程访问。

进程同步定义为:把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步。也就是说进程之间时异步执行的,同步即是使各进程按一定的制约顺序和速度执行。

互斥时资源的竞争关系,同步是进程间的协作关系。

一次仅允许一个进程使用的资源称为临界资源。一个进程访问临界资源的那段程序代码称为临界区。由此互斥可以描述为:禁止两个或两个以上的进程同时进入访问同一临界资源的临界区。协调准则如下:

  1. 空闲让进。无进程处于临界区时,若有进程要求进入临界区则立即允许其进入;
  2. 忙则等待。当已有进程进入临界区时,其他试图进入各自临界区的进程必须等待,以保证各进程互斥的进入临界区;
  3. 有限等待。有若干进程要求进入临界区时,应在有限时间内使一进程进入临界区,即它们不应相互等待而谁也不进入临界区;
  4. 让权等待。对于等待进入临界区的进程必须释放其占有的CPU。

信号量可以有效的实现进程的同步和互斥。在操作系统中,信号量是一个证书。当信号量大于等于0时,代表可供并发进程使用的资源实体数,当信号量小于0时则表示正在使用临界区的近成熟。建立一个信号量必须说明所建信号量代表的意义和设置初值,以及建立相应的数据结构,以便指向那些等待使用该临界区的进程。

对信号量只能施加特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子操作,称为原语。因此,P操作和V操作执行期间不允许中断发生。

P(sem)操作的过程是将信号量sem值减1,若sem的值成负数,则调用P操作的进程暂停执行,直到另一个进程对同一信号量作V操作。V(sem)操作的过程是将信号量sem的值加1,若sem的值小于等于0,从相应队列(与sem有关的队列)中选择一个进程,唤醒它。操作的定义如下:

P操作

P(sem) {
    sem = sem - 1;
    if (sem < 0) 进程进入等待状态;
    else 继续执行;
}

V操作

V(sem) {
    sem = sem + 1;
    if (sem <= 0) 唤醒队列中的一个等待进程;
    else 继续执行;
}

设信号量mutex是用于互斥的信号量,初值为1,表示没有并发进程使用该临界区。于是各并发进程的临界区可以改写成下列形式的代码段:

P(mutex);
临界区
V(mutex);

要用P,V操作实现进程同步,需要引进私用信号量。私用信号量只与制约进程和被制约进程有关,而不是与整组并发进程有关。与此相对,进程互斥使用的信号量为公用信号量。首先为各并发进程设置私用信号量,然后为私用信号量赋初值,最后利用P、V原语和私用信号量规定各进程的执行顺序。

5. 前趋图

前趋图是一个由结点和有向边构成的有向无循环图。该图通常用于表现事务之间先后顺序的制约关系。图中的每一个节点可以表示一个语句、一个程序段或是一个进程,节点间的有向边表示两个节点之间存在的前趋关系。

没有前趋节点的称为开始节点,没有后继节点的,称为终止节点。

在前趋图中,执行先后顺序的制约关系可分为两种:直接制约和间接制约。

直接制约通常是指一个操作中,多个步骤之间的制约关系,也可以说是“同步的进程之间的制约关系”。

间接制约通常是指多个操作之间相同步骤的制约关系,也可以说是“互斥的进程之间的制约关系”。

6. 进程调度与死锁

进程调度即处理器调度,又称上下文转换,主要功能是确定在什么时候分配处理器,并确定分配给哪一个进程,即让正在执行的进程改变状态并转入就绪队列的队尾,再由调度原语将就绪队列的队首进程取出,投入执行。

引起进程调度的原因有以下几类:

  1. 正在执行的进程执行完毕
  2. 执行中的进程自己调用阻塞原语将自己阻塞起来进入睡眠状态。
  3. 执行中的进程调用了P原语操作,从而因资源不足而阻塞;或调用V原语操作激活了等待资源的进程队列。
  4. 在分时系统中,当一个进程用完了一个时间片。
  5. 就绪队列中某进程的优先级变得高于当前执行进程的优先级,也将引起进程调度。

进程调度的方式有两类:剥夺方式和非剥夺方式。非剥夺方式是指:一旦某个作业或进程占用了处理器,别的进程就不能把处理器从这个进程手中夺走,直到该进程自己因调用原语操作而进入阻塞状态,或时间片用完而让出处理机;剥夺方式是指:当就绪队列中有进程的优先级高于当前执行进程的优先级时,便立即发生进程调度,转让处理机。

进程调度算法如下:

  1. 先来先服务FCFS调度算法,又称先进先出。就绪队列按先来后到原则排队。
  2. 优先数调度。优先数反映进程优先级,就绪队列按优先数排列。有两种确定优先级的方法,即静态优先级和动态优先级。静态优先级是指进程的优先级在进程开始执行前确定,执行过程中不变,而动态优先级则可以在进程执行过程中改变。
  3. 轮转法。就绪队列按FCFS方式排队。每个进程执行一次占有处理器时间都不超过规定的时间单位(时间片)若超过,则自动释放自己所占有的CPU而排到就绪队列的队尾,等待下一次调度。同时,进程调度程序又去调度当前就绪队列中的第一个进程。

当若干个进程互相竞争对方已占有的资源,无限期的等待,不能向前推进时会造成“死锁”。

  1. 死锁条件。产生死锁的主要原因是供共享的系统资源不足,资源分配策略和进程的推进顺序不当。系统资源既可能时可重复使用的永久性资源,也可能时消耗性的临时资源。产生死锁的必要条件是:互斥条件、保持和等待条件、不剥夺条件和环路等待条件。
  2. 解决死锁的策略。处于死锁状态的进程不能继续执行但又占用了系统资源,从而阻碍其他作业的执行。
    解决死锁有两种策略:一种是在死锁发生前采用的预防和避免策略;另一种是在死锁发生后采用的检测和恢复策略。
    死锁的预防主要是通过打破死锁产生的4个必要条件之一来保证不会产生死锁。采用的死锁预防策略通常有资源的静态分配法或有序分配法,他们分别打破了资源动态分配条件和循环等待条件,因此不会发生死锁,但是会大大降低系统资源的利用率和进程之间的并行程度。
    死锁避免策略,则是在系统进行资源分配时,先执行一个死锁避免算法,以保证本次分配不会导致死锁发生。由于资源分配很频繁,所以死锁避免策略要耗费大量的CPU和时间。

2.2.2 存储管理

系统中内存的使用一般分为两部分,一部分为系统空间,存放操作系统本身及相关的系统程序;另一部分为用户空间,存放用户的程序和数据。

存储管理主要是针对内存储器的管理,负责对内存的分配和回收、内存的保护和内存的扩充。目的是尽量提高内存的使用效率。

1. 页式存储管理

分页的基本思想是把程序的逻辑空间和内存的物理空间按照同样的大小划分成若干页面,并以页面为单位进行分配。在页式存储管理中系统中虚地址是一个有序对(页号,位移)。系统为每一个进程建立一个页表,其内容包含进程的逻辑页号于物理页号的对应关系、状态等。

页式系统的动态地址转换方式如下:当进程运行时,其页表的首地址已在系统的动态地址转换机构中的基本地址寄存器中。执行的指令访问虚存地址时,首先根据页号查询页表,若已调入内存,则得到该页的内存位置,然后,同页内位移值组合,得到物理地址。如果该页尚未调入内存,则产生缺页中断,以装入所需的页。

页式虚拟存储管理是在页式存储管理的基础上实现虚拟存储器的。

当装入一个当前需要的页面时,如果内存储器中无空闲块,则可选择一个已在内存储器中的页面,把它暂时调出内存。若在执行中该页被修改过,则把该页信息重新协会到磁盘上,否则不必重新写回磁盘。当一页被暂时调出内存后,让出的内存空间用来存放当前需要使用的页面。页面被调出或装入之后都要对页表中的相应表目作修改。这称之为页面调度。如果页面调度不合理,导致同一内容反复调出调入,称为“抖动”。

常见的页面调度算法有:

  1. 最优算法OPT:选择不再使用或者最远的将来才被使用的页,这时理想的算法,但是难以实现,常用于淘汰算法的比较。
  2. 随机算法RAND:随机选择被淘汰的页,开销小,但是可能酸中立即就要访问的页。
  3. 先进先出算法FIFO
  4. 最近最少使用算法LRU

2. 段式存储管理

与页式存储管理相似。分段的基本思想是把用户作业按逻辑意义上有完整意义的段来划分,并以段为单位作为内外存交换的空间尺度。

分段系统中,允许程序(作业)占据内存中许多分离的分区。没个分区存储一个程序分段。分段系统中虚地址是一个有序对(段号,位移)。地址转换方式同页内存储管理方式相似。

3. 段页式存储管理

是段式和页式两种管理方法的结合。根据程序模块分段,段内再分页,内存被划分成定长的页。虚地址形式为(段号、页号、页内位移)。

段页式虚拟存储管理结合了段式和页式的优点,但增加了设置表格(段表、页表)和查表等开销,段页式虚拟存储器一般只在大型计算机系统中使用。

2.2.3 设备管理

1. 数据传输控制方式

主要任务之一是控制设备和内存或CPU之间的数据传送。选择和衡量控制方式的原则如下:

  1. 数据传送速度足够高,能满足用户的需要但又不丢失数据。
  2. 系统开销小,所需的处理控制程序少。
  3. 能充分发挥硬件资源的能力,使得I/O设备尽量处于使用状态中,而CPU等待时间少。

常用的数据传送方式主要有如下几种:

  1. 程序控制方式。处理器启动数据传输,然后等设备完成。
  2. 中断方式。程序控制方式不能实现并发。中断方式的数据传输过程为,进程启动数据传输(如读)后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请求,中断处理程序对数据传输工作处理之后,让相应进程成为就绪状态。以后,该进程得到所需要的数据。
  3. 直接存储访问方式DMA。指外部设备和内存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器外,DMA控制器中还包括传输字节计数器、内存地址计数器等。
  4. 通道方式。又称为输入/输出处理器IOP,可以独立完成系统交付的输入/输出任务,通过执行自身的输入/输出专用程序(称通道程序)进行内存和外设之间的数据传输,主要有3种通道:字节多路通道、选择通道和成组多路通道。

2. 虚设备与SPOOLING技术

采用假脱机技术,可以将低速的独占设备改造成一种可独占的设备,而且一台物理设备可以对应若干台虚拟的同类设备。假脱机(SPOOLING)的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,采用一组程序或进程模拟一台输入/输出设备。

SPOOLING技术必须有高速、大容量并且可随机存取的外存(如磁盘或磁鼓)支持。例如现在电脑中的多窗口技术。

2.2.4 文件管理

操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU的管理、存储器的管理、设备管理等。主要解决硬件资源的有效和合理利用问题。

软件资源包括各种系统程序、各种应用程序、各种用户程序,也包括大量的文档材料、库函数等。每一种软件资源本身都是具有一定逻辑意义的相关信息的集合,在操作系统中它们以文件形式存储。

文件系统是操作系统中组织、存取和保护数据的一个重要部分。

文件管理的功能包括:建立、修改、删除文件;按文件名访问文件;决定文件信息存放的位置、存放形式及存放权限;管理文件件的联系及提供对文档的共享、保护、保密等。允许多个用户协同工作又不引起混乱。文件的共享是指一个文件可以让多个用户共同使用,他可以减少用户的重复性劳动,节省文件的存储空间,减少输入/输出文件的次数等。文件的保护主要是为防止由于错误操作而对文件造成的破坏。文件的保密是为了防止未经授权的用户对文件进行访问。

文档的保护、保密实际上是用户对文件的存取权限控制问题。一般为文件的存取设置两级控制:第1级是访问者的识别,即规定哪些人可以访问;第2级是存取权限的识别,即有权参与访问者可对文件执行何种操作。

1. 文件的逻辑结构

指文件的组织形式。一般可分文两种:无结构的字符流文件和有结构的记录文件。记录文件由记录组成,即文件内的信息划分成多个记录,以记录为单位组织和使用信息。

记录文件有顺序文件、索引顺序文件、索引文件和直接文件。

  1. 顺序文件。大多数文件是顺序文件。顺序文件的记录定长,记录中的数据项和类型长度与次序固定,一般还有一个可以唯一标识记录的数据项,称为键(Key),记录是按键值的约定次序组织的。常用于批处理应用,用于查询或更新某个记录的处理性能不太好。
  2. 索引顺序文件。是基于键的约定次序组织的,而且维护键的索引和溢出区域。键的索引也可以是多级索引。索引顺序文件既适用于交互方式应用,也适用于批处理方式应用。
  3. 索引文件。是基于记录的一个键数据项组织的。许多应用需按照别的数据项访问文件,为此,常采用索引文件方法,即对主文件中的记录按需要的数据项(一个或几个)建索引,索引文件本身是顺序文件组织。
  4. 直接文件。又称哈希(Hash)文件。记录以他们在直接访问存储设备上的物理地址直接(随机的)访问。常用于需要高速访问文件而且每次仅访问一条记录的应用中。

2. 文件的物理结构

指的是文件在存储设备上的存储方法。文件的存储设备通常划分为大小相同的物理块,物理块是分配和传输信息的基本单位。文件的物理结构涉及文件存储设备的组块策略和文件分配策略,决定文件信息在存储设备上的存储位置。常用的文件分配策略有:

  1. 顺序分配(连续分配)。最简单的分配方法。在文件建立时预先分配一组连续的物理块,然后,按照逻辑文件中的信息(或记录)顺序,依次把信息(或记录)按顺序存储到物理块中。这样,只需知道文件在文件存储设备上的起始位置和文件长度,就能进行存取。这种分配方式适合于顺序存取,在连续存取相邻信息时,存取速度快。其缺点是在文件建立时必须指定文件的信息长度,以后不能动态增长,一般不宜用于需要经常修改的文件。
  2. 链接分配(串联分配)。这是按单个物理块逐个进行的。每个物理块中(一般是最后一个单元)设有一个指针,指向其后续链接的下一个物理块的地址,这样,所有的物理块都被链接起来,形成一个链接队列。在建立链接文件时,不需要指定文件的长度,在文件的说明信息中,只需支出该文件的第一个物理块块号,而且链接文件的文件长度可以动态的增长。只需调整物理块间的指针就可以插入或删除一个信息块。
    链接分配的优点是可以解决存储器的碎片问题,提高存储空间利用率。由于链接文件只能按照队列中的链接指针顺序查找,因此搜索效率低,一般只适用于顺序访问,不适用于随机存储。
  3. 索引分配。是另外一种对文件存储不连续分配的方法。采用索引分配方法的系统,为每一个文件建立一张索引表,索引中的每一项指出文件信息所在的逻辑块号和与之对应的物理块号。
    索引分配既能满足文件动态增长的要求,又可以方便而迅速的实现随机存取。对一些大的文件,当索引表的大小超过一个物理块时,会发生索引表的分配问题。一般采用多级(间接索引)技术,这时在由索引表指出的物理块中存放的不是文件存放处,而是文件存放信息的物理块地址。这样,如果一个物理块能存放$n$个地址,则一级间接索引将使可寻址的文件长度变成$n^2$块,对于更大的文件可以采用二级甚至三级是间接索引(UNIX系统使用三级索引结构)。
    索引文件的优点是既适用于顺序存储,又适用于随机存储,缺点是索引表增加了存储空间的开销。另外,在存取文件时需要访问两次磁盘,一次是访问索引表,一次是根据索引表提供的物理块号访问文件信息。为了提高效率,一种改进的方法是,在对某个文件进行操作之前,预先把索引表调入内存。这样文件的存取就能直接从内存的索引表中确定相应的物理块号,从而只需要访问一次磁盘。

3. 文件存储设备管理

文件存储设备的管理实质上是对空闲块的组织和管理问题。它包括空闲块的组织,空闲块的分配与空闲块的回收等问题,空闲块管理方法如下:

  1. 索引法。把空闲块作为文件并采用索引技术。为了有效,索引对应一个或由几个空闲块组成的空闲区。这样,磁盘上的每一个空闲块区都对应索引表中的一个条目,这个方法能有效的支持每一种文件分配方法。
  2. 链接法。使用链表把空闲块组织在一起,当申请者需要空闲块时,分配程序从链首开始摘取所需的空闲块。反之,管理程序把回收的空闲块逐个挂入队尾,这个方法适用于每一种文件分配方法。空闲块的链接方法可以按释放的先后顺序链接,也可以按空闲块区的大小顺序链接。后者有利于获得连续的空闲块的请求,但在分配请求和回收空闲块时系统开销多一点。
  3. 位示图法。该方法是在外存上建立一个位示图,记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。
    位图是利用二进制的一位来表示磁盘中的一个盘块的使用情况。当其值为0时,表示对应的盘块空闲;当为1时,表示已分配。

4. 树形目录结构

在树形目录结构中,树的根节点为根目录,数据文件作为树叶,其他所有目录均作为树的结点。

根目录隐含在磁盘的一个分区中,根目录在最顶层,它包含的子目录是一级子目录,每一个一级子目录又可以包含二级子目录等,这样的目录结构称为目录树。

当前盘和当前目录是系统默认的操作对象。如果用户没有指明操作对象,那么系统就将用户命令指向当前盘和当前目录。

路径是指从根目录或者当前目录开始到访问对象(目录或文件),在目录树中路径的所有目录的序列。在树形目录结构中,从根目录到任何数据文件之间,只有一条唯一的通路,从树根开始,把全部目录文件名与数据文件名,依次用“/”(UNIX/Linux系统)或“\”(Windows系统)连接起来,构成该数据文件的路径名,且每个数据文件的路径名是唯一的。

从树根开始的路径为绝对路径。从当前目录开始,在逐级通过中间的目录文件,最后到达所要访问的数据文件。

绝对路径给出文件或目录位置的完全描述,通常由层级结构的顶端开始(根目录),通常第一个字符是“/”(UNIX/Linux系统)或盘符(Windows系统)。相对路径通常是由目录结构中的当前位置开始,一般都比绝对路径要短。

父目录是指当前路径的上一层目录。每个目录都有代表当前目录的“.”文件和代表当前目录父目录的“..”文件,相对路径名一般就是从“..”开始的。

2.2.5 作业管理

从用户的角度看,作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。过程中的每一个步骤,成为作业步,作业步的顺序执行即完成了一个作业。

从系统的角度看,作业则是一个比程序更广的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是占据内存的基本单位。

用户的作业可以通过直接的方式,由用户自己按照作业步骤顺序操作;也可以通过间接的方式,由用户率先编写的作业步依次执行的说明,一次交给操作系统,由系统按照说明依次处理。前者称为联机方式,后者称为脱机方式。

1. 作业状态及其转换

一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后后备、执行和完成四个状态。

  1. 提交状态。作业由输入设备进入外存储器(也称输入井)的过程称为提交状态。处于提交状态的作业,其信息正在进入系统。
  2. 后备状态。当作业的全部信息进入外存后,系统就为该作业建立一个作业控制块JCB。系统通过JCB感知作业的存在。JCB主要内容包括作业名、作业状态、资源要求、作业控制方式、作业类型及作业优先权等。
  3. 执行状态。一个后备状态被作业调度程序选中二分配了必要的资源并进入了内存。作业调度程序同时为其建造了相应的进程后,该作业就由后备状态变成了执行状态。
  4. 完成状态。当作业正常运行结束,它所占用的资源尚未完全被系统回收时的状态为完成状态。

2. 用户接口

也称用户界面,其含义有两种,一种是指用户与操作系统交互的途径和通道,即操作系统的接口;另一种是指这种交互环境的控制方式,即操作环境。

  1. 操作系统的接口。操作系统的接口又可分成命令接口和程序接口。命令接口包含键盘命令和作业控制命令;程序接口又称编程接口或系统调用,程序经编程接口请求系统服务,即通过系统调用程序与操作系统通信,系统调用是操作系统提供给编程人员的唯一接口。系统调用对用户屏蔽了操作系统的具体动作而只提供有关功能。系统调用大致分为设备管理、文件管理、进程控制、进程通信和存储管理等。
  2. 操作环境。操作环境支持命令接口和程序接口,提供友好的、易用的操作平台。操作系统的交互界面已经从操起的命令驱动方式,发展到菜单驱动方式、图形驱动方式和视窗操作环境。

你可能感兴趣的:(系统架构设计师学习笔记 第二章)