@chendushuai
2018-08-20T00:32:14.000000Z
字数 10746
阅读 721
软考 高级职称 系统架构师 学习笔记
掌握操作系统原理的关键在于深入理解“一个观点,两条线索”。一个观点是以资源管理的观点来定义操作系统;两条线索是指操作系统如何管理计算系各类资源和控制程序的执行。
操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统。从资源管理的角度看:操作系统主要是对处理器、存储器、文件、设备和作业进行管理。
OS是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理的组织计算机工作流程和有效的利用资源,再计算机和用户之间起到接口的作用。
按照功能划分,可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微内核操作系统等。
主要功能是进行处理机与进程管理、存储管理、设备管理、文件管理和作业管理的工作。
进程是处理机管理中最基本、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态的看待操作系统,则以进程作为独立运行的基本单位,以进程作为分配资源的基本单位。处理机管理也称进程管理。
顺序程序是指程序中若干操作必须按照某种先后次序来执行,并且每次操作前和操作后的数据、状态之间都有一定的关系。在多道程序系统中,程序的运行环境发生了很大的变化,主要体现在:
实际上,在多道程序系统中,程序的并发执行和资源共享之间时相辅相成的。以方便,只有允许程序并行执行,才可能存在资源共享的问题;另一方面,只有有效的实现资源共享,才可能使得程序并行执行。
并发操作实际上是这样的:大多数程序段只要求操作在时间上是有序的,也就是有些操作必须在其他操作之前,这是有序的,但其中有些操作却可以同时进行。
进程至少具有以下三种状态:
进程状态的变化情况如下:
引入刮起状态的原因有:
综上所述,挂起状态具有以下三个属性:
进程互斥定义为:一组并发进程中一个或多个程序段,因为共享某一共有资源而导致必须以一个不允许交叉执行的单位执行。也就是说互斥是保证临界资源在某一时刻只被一个进程访问。
进程同步定义为:把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步。也就是说进程之间时异步执行的,同步即是使各进程按一定的制约顺序和速度执行。
互斥时资源的竞争关系,同步是进程间的协作关系。
一次仅允许一个进程使用的资源称为临界资源。一个进程访问临界资源的那段程序代码称为临界区。由此互斥可以描述为:禁止两个或两个以上的进程同时进入访问同一临界资源的临界区。协调准则如下:
信号量可以有效的实现进程的同步和互斥。在操作系统中,信号量是一个证书。当信号量大于等于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原语和私用信号量规定各进程的执行顺序。
前趋图是一个由结点和有向边构成的有向无循环图。该图通常用于表现事务之间先后顺序的制约关系。图中的每一个节点可以表示一个语句、一个程序段或是一个进程,节点间的有向边表示两个节点之间存在的前趋关系。
没有前趋节点的称为开始节点,没有后继节点的,称为终止节点。
在前趋图中,执行先后顺序的制约关系可分为两种:直接制约和间接制约。
直接制约通常是指一个操作中,多个步骤之间的制约关系,也可以说是“同步的进程之间的制约关系”。
间接制约通常是指多个操作之间相同步骤的制约关系,也可以说是“互斥的进程之间的制约关系”。
进程调度即处理器调度,又称上下文转换,主要功能是确定在什么时候分配处理器,并确定分配给哪一个进程,即让正在执行的进程改变状态并转入就绪队列的队尾,再由调度原语将就绪队列的队首进程取出,投入执行。
引起进程调度的原因有以下几类:
进程调度的方式有两类:剥夺方式和非剥夺方式。非剥夺方式是指:一旦某个作业或进程占用了处理器,别的进程就不能把处理器从这个进程手中夺走,直到该进程自己因调用原语操作而进入阻塞状态,或时间片用完而让出处理机;剥夺方式是指:当就绪队列中有进程的优先级高于当前执行进程的优先级时,便立即发生进程调度,转让处理机。
进程调度算法如下:
当若干个进程互相竞争对方已占有的资源,无限期的等待,不能向前推进时会造成“死锁”。
系统中内存的使用一般分为两部分,一部分为系统空间,存放操作系统本身及相关的系统程序;另一部分为用户空间,存放用户的程序和数据。
存储管理主要是针对内存储器的管理,负责对内存的分配和回收、内存的保护和内存的扩充。目的是尽量提高内存的使用效率。
分页的基本思想是把程序的逻辑空间和内存的物理空间按照同样的大小划分成若干页面,并以页面为单位进行分配。在页式存储管理中系统中虚地址是一个有序对(页号,位移)。系统为每一个进程建立一个页表,其内容包含进程的逻辑页号于物理页号的对应关系、状态等。
页式系统的动态地址转换方式如下:当进程运行时,其页表的首地址已在系统的动态地址转换机构中的基本地址寄存器中。执行的指令访问虚存地址时,首先根据页号查询页表,若已调入内存,则得到该页的内存位置,然后,同页内位移值组合,得到物理地址。如果该页尚未调入内存,则产生缺页中断,以装入所需的页。
页式虚拟存储管理是在页式存储管理的基础上实现虚拟存储器的。
当装入一个当前需要的页面时,如果内存储器中无空闲块,则可选择一个已在内存储器中的页面,把它暂时调出内存。若在执行中该页被修改过,则把该页信息重新协会到磁盘上,否则不必重新写回磁盘。当一页被暂时调出内存后,让出的内存空间用来存放当前需要使用的页面。页面被调出或装入之后都要对页表中的相应表目作修改。这称之为页面调度。如果页面调度不合理,导致同一内容反复调出调入,称为“抖动”。
常见的页面调度算法有:
与页式存储管理相似。分段的基本思想是把用户作业按逻辑意义上有完整意义的段来划分,并以段为单位作为内外存交换的空间尺度。
分段系统中,允许程序(作业)占据内存中许多分离的分区。没个分区存储一个程序分段。分段系统中虚地址是一个有序对(段号,位移)。地址转换方式同页内存储管理方式相似。
是段式和页式两种管理方法的结合。根据程序模块分段,段内再分页,内存被划分成定长的页。虚地址形式为(段号、页号、页内位移)。
段页式虚拟存储管理结合了段式和页式的优点,但增加了设置表格(段表、页表)和查表等开销,段页式虚拟存储器一般只在大型计算机系统中使用。
主要任务之一是控制设备和内存或CPU之间的数据传送。选择和衡量控制方式的原则如下:
常用的数据传送方式主要有如下几种:
采用假脱机技术,可以将低速的独占设备改造成一种可独占的设备,而且一台物理设备可以对应若干台虚拟的同类设备。假脱机(SPOOLING)的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,采用一组程序或进程模拟一台输入/输出设备。
SPOOLING技术必须有高速、大容量并且可随机存取的外存(如磁盘或磁鼓)支持。例如现在电脑中的多窗口技术。
操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU的管理、存储器的管理、设备管理等。主要解决硬件资源的有效和合理利用问题。
软件资源包括各种系统程序、各种应用程序、各种用户程序,也包括大量的文档材料、库函数等。每一种软件资源本身都是具有一定逻辑意义的相关信息的集合,在操作系统中它们以文件形式存储。
文件系统是操作系统中组织、存取和保护数据的一个重要部分。
文件管理的功能包括:建立、修改、删除文件;按文件名访问文件;决定文件信息存放的位置、存放形式及存放权限;管理文件件的联系及提供对文档的共享、保护、保密等。允许多个用户协同工作又不引起混乱。文件的共享是指一个文件可以让多个用户共同使用,他可以减少用户的重复性劳动,节省文件的存储空间,减少输入/输出文件的次数等。文件的保护主要是为防止由于错误操作而对文件造成的破坏。文件的保密是为了防止未经授权的用户对文件进行访问。
文档的保护、保密实际上是用户对文件的存取权限控制问题。一般为文件的存取设置两级控制:第1级是访问者的识别,即规定哪些人可以访问;第2级是存取权限的识别,即有权参与访问者可对文件执行何种操作。
指文件的组织形式。一般可分文两种:无结构的字符流文件和有结构的记录文件。记录文件由记录组成,即文件内的信息划分成多个记录,以记录为单位组织和使用信息。
记录文件有顺序文件、索引顺序文件、索引文件和直接文件。
指的是文件在存储设备上的存储方法。文件的存储设备通常划分为大小相同的物理块,物理块是分配和传输信息的基本单位。文件的物理结构涉及文件存储设备的组块策略和文件分配策略,决定文件信息在存储设备上的存储位置。常用的文件分配策略有:
文件存储设备的管理实质上是对空闲块的组织和管理问题。它包括空闲块的组织,空闲块的分配与空闲块的回收等问题,空闲块管理方法如下:
在树形目录结构中,树的根节点为根目录,数据文件作为树叶,其他所有目录均作为树的结点。
根目录隐含在磁盘的一个分区中,根目录在最顶层,它包含的子目录是一级子目录,每一个一级子目录又可以包含二级子目录等,这样的目录结构称为目录树。
当前盘和当前目录是系统默认的操作对象。如果用户没有指明操作对象,那么系统就将用户命令指向当前盘和当前目录。
路径是指从根目录或者当前目录开始到访问对象(目录或文件),在目录树中路径的所有目录的序列。在树形目录结构中,从根目录到任何数据文件之间,只有一条唯一的通路,从树根开始,把全部目录文件名与数据文件名,依次用“/”(UNIX/Linux系统)或“\”(Windows系统)连接起来,构成该数据文件的路径名,且每个数据文件的路径名是唯一的。
从树根开始的路径为绝对路径。从当前目录开始,在逐级通过中间的目录文件,最后到达所要访问的数据文件。
绝对路径给出文件或目录位置的完全描述,通常由层级结构的顶端开始(根目录),通常第一个字符是“/”(UNIX/Linux系统)或盘符(Windows系统)。相对路径通常是由目录结构中的当前位置开始,一般都比绝对路径要短。
父目录是指当前路径的上一层目录。每个目录都有代表当前目录的“.”文件和代表当前目录父目录的“..”文件,相对路径名一般就是从“..”开始的。
从用户的角度看,作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。过程中的每一个步骤,成为作业步,作业步的顺序执行即完成了一个作业。
从系统的角度看,作业则是一个比程序更广的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是占据内存的基本单位。
用户的作业可以通过直接的方式,由用户自己按照作业步骤顺序操作;也可以通过间接的方式,由用户率先编写的作业步依次执行的说明,一次交给操作系统,由系统按照说明依次处理。前者称为联机方式,后者称为脱机方式。
一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后后备、执行和完成四个状态。
也称用户界面,其含义有两种,一种是指用户与操作系统交互的途径和通道,即操作系统的接口;另一种是指这种交互环境的控制方式,即操作环境。