学操作系统感想

 

期末课程论文

课程名称:计算机操作系统

    目:浅谈学习操作系统的心得体会

    级:电商091

    号:200936627120

    名:江玉辉

指导老师:肖秀春老师

完成日期:20##-12-15

    绩:

一、学期心得总结

眨眼弹指瞬间,一个学期的计算机操作系统课即将结束了,心中真是有种余兴未尽,眷恋不舍的感觉。回想本学期刚接触操作系统这门不太陌生的课程时,强烈的兴趣就这样莫名其妙地产生,我深深被操作系统这个名词吸引了。后来想到,我是学电子商务的,顾名思义,电子技术和贸易商务肯定是必不可少的。此外,计算机技术作为信息技术的主导技术,了解计算机并学好相关计算机技术更是每个专业必不可少的课程。或许是专业需要原因,又或者是源于本身兴趣原因,从此我就在老师的指导下,如饥似渴地在操作系统知识海洋中遨游。我知道,每一门学问的知识都是无限的,都是学不完的,所以我一直对自己说,要实事求是、脚踏实地去吸收知识,包括老师课堂上讲的、实验课收获的和课外自己了解到的。肖秀春老师结合自身体会的悉心授课、上实验课不厌其烦的认真指导,使我深深体会到操作系统学有多么的错综复杂,又多么的有趣实用。老师授课时固然认真生动,认真生动之余却不显丝毫拘束,给我们同学一种和蔼可亲、平易近人的温馨感觉。所以,像我一样喜欢这门课程的同学大有人在。每一节课我都提前到达,生怕错过老师的生动阐述的知识点。我们时而托腮思考,时而禁不住老师幽默的演讲风格而哄堂大笑。下面请允许我就本学期学习操作系统课进行一次浅谈心得体会,分享我的所感所悟,所学所获!

二、浅谈对操作系统这门课程的认识

关于操作系统的定义是众说纷纭的,而我从懵懂到认识,我得出自己的一个定义,所谓的操作系统,是统一管理计算机软、硬件资源,合理组织计算机的工作流程,协调系统部件之间,系统与用户之间、用户与用户之间的关系。

经集录课本知识,我发现操作系统有如下几点功能:(1)管理计算机系统的硬件、软件、数据等各种资源,尽可能减少人工分配资源的工作以及人对机器的干预,发挥计算机的自动工作效率。(2)协调还要各种资源使用过程中的关系,使得计算机的各种资源使用调度合理,高速设备与低速设备运行相互配。(3)为用户提供使用计算机系统的环境,方便使用计算机系统的各部件或功能。操作系统通过自己的程序,将计算机系统的各种资源所提供的功能抽象,形成与之等价的操作系统的功能,并形象地表现出来,提供给用户方便地使用计算机。此外,据课本第一章的介绍,我得出操作系统的发展有如下四个发展阶段:1.手工操作阶段2.批处理阶段3.多道程序系统阶段4.现代操作系统阶段

三、印象深刻的《处理机调度与死锁》

操作系统教科书共分10章,内容丰富广泛,知识无可限量。老师给我们讲了很多知识点,也安排我们做过很多实验,其中,《处理机调度与死锁》这个章节无论是理论课还是实验课,都让我收获了宝贵的知识,留下了深刻的印象。下面请允许我就课本3章《处理机调度与死锁》进行深谈学习心收获体会。

全章共分为:3.1 处理机调度的层次         3.2调度队列模型和调度准则

3.3调度算法                 3.4实时调度

3.5产生死锁的原因和必要条件 3.6预防死锁的方法

            3.7死锁的检测与解除

产生死锁原因:1.竞争资源 2.进程间推进顺序非法

银行家算法是一种最有代表性的避免死锁的算法。

Request是进程i的请求向量。Request[j]=k表示进程i请求分配j类资源k个。当进程i发出资源请求后,系统按下述步骤进行检查:

1.  如果Request ≤Need[i],则转向步骤2;否则,认为出错,因为它所请求的资源数已超过它当前的最大需求量。

2.  如果Request ≤Available,则转向步骤3;否则,表示系统中尚无足够的资源满足进程i的申请,进程i必须等待。

3.  系统试探性地把资源分配给进程i,并修改下面数据结构中的数值:

Available = Available - Request

Allocation[i]= Allocation[i]+ Request

Need[i]= Need[i]- Request

4.  系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。如果安全才正式将资源分配给进程i,以完成本次分配;否则,将试探分配作废,恢复原来的资源分配状态,让进程i等待。

     举例:假定系统中有三个进程P1、 P2和P3,共有12台打印机。进程P1总共要求10台打印机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得5台、2台和2台打印机,尚有3台空闲未分配,如下表所示:  

这种情况会产生不安全序列,并导致死锁。

安全性算法

1.  设置两个向量。

Work:它表示系统可提供给进程继续运行的各类资源数目,它包含m个元素,开始执行安全性算法时,Work = Available。

Finish:它表示系统是否有足够的资源分配给进程,使之运行完成,开始Finish[i]=false;当有足够资源分配给进程i时,令Finish[i]=true;

2.  从进程集合中找到一个能满足下述条件的进程。

Finish[i]= = false;

Need[i]≤work;

如找到则执行步骤3;否则,执行步骤4;

3.  当进程i获得资源后,可顺利执行直到完成,并释放出分配给它的资源,故应执行

Work = work + Allocation[i]

Finish[i]=true;转向步骤2;

4.  若所有进程的Finish[i]都为true,则表示系统处于安全状态;否则,系统处于不安全状态。

课程总结:通过老师讲解、上网观看视频教程和搜索资料,我逐渐掌握了死锁产生的原因、银行家算法(Need[i][j]=Max[i][j]-Allocation[i][j]),也能勉勉强强能使用高级语言模拟实现银行家算法。操作系统是一门较为抽象、较难理解接受的课程项目,要想深入悟懂并掌握其精髓,必须要不懂就问,花更多时间在其中。我会尽最大努力去学好它!多谢老师您一路以来的教导,老师您辛苦了!

 

第二篇:操作系统学习要点

操作系统学习要点

【操作系统】第一章 引论

操作系统(operating system , OS)是计算机系统中必不可少的系统软件。它是计算机系统中各种资源的管理者和各种活动的组织者、指挥者。它使整个计算机系统协调一致且有效地工作。通过本课程的学习,我们将知道操作系统要做什么、怎么做和为什么要这样做。

学习操作系统,首先我们应该知道操作系统的概念。本章主要讲述了以下几个问题。

? 一、什么是操作系统

? 二、操作系统的形成

? 三、操作系统的类型

? 四、操作系统的功能

一、什么是操作系统

在回答这个问题之前,我们先来了解一下什么是计算机系统。计算机系统是按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。

计算机系统由硬件系统和软件系统组成。软硬件系统的组成部分就是计算机系统的资源,当不同的用户使用计算机时都要占用系统资源并且有不同的控制需求。

操作系统就是计算机系统的一种系统软件,由它统一管理计算机系统的资源和控制程序的执行。 操作系统的设计目标一是使计算机系统使用方便。二是使得计算机系统能高效地工作。

二、操作系统的形成

早期没有操作系统→原始汇编系统→管理程序→操作系统 可以看到,操作系统是随着计算机硬件的发展和应用需求的推动而形成的。

三、操作系统的类型

按照操作系统提供的服务,大致可以把操作系统分为以下几类:

批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统、分时操作系统、实时操作系统是基本的操作系统(加亮)

1、批处理操作系统按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率。

2、分时操作系统,这种系统中,一个计算机系统与许多终端设备连接,分时系统支持多个终端用户,同时以交互方式使用计算机系统,为用户在测试、修改和控制程序执行方面提供了灵活性。分时系统的主要特点是同时性、独立性、及时性和交互性。

3、实时操作系统能使计算机系统接收到外部信号后及时进行处理,并在严格的规定时间内完成处理,且给出反馈信号。它是较少有人为干预的监督和控制系统。实时系统对可靠性和安全性要求极高,不强求系统资源的利用率。

4、网络操作系统可以把若干计算机联合起来,实现各台计算机之间的通信及网络中各种资源的共享,像我们现在使用的Windows ,UNIX和Linux等操作系统都是网络操作系统。

5、分布式操作系统的网络中各台计算机没有主次之分,在任意两台计算机间的可进行信息交换和资源共享。这一点上分布式操作系统和网络操作系统差别不大,他们的本质区别在于:分布式操作系统能使系统中若干计算机相互协作完成一个共同的任务。这使得各台计算机组成一个完整的,功能强大的计算机系统。

四、操作系统的功能

从资源管理的观点出发,操作系统功能可分为五大部分:处理器管理、存储管理、文件管理、设备管理和作业管理。

【操作系统】第二章 计算机系统结构

计算机系统是由硬件系统和软件系统两部分组成,操作系统是软件系统的一个组成部分,它是直接在硬件系统的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结构有一个基本的了解,本章就是讲述计算机系统结构的基本知识。

________________________________________

本章的考核知识点是: 1.计算机系统的层次结构 2.硬件环境 3.操作系统结构

学习本章要求:了解计算机系统的结构,有关硬件的I/O中断和存储结构,硬件的保护措施;有关操作系统的结构,操作系统提供的使用接口。

重点是:硬件环境和操作系统的结构

________________________________________

一、计算机系统的层次结构(识记)

现代的通用计算机系统是由硬件和软件组成的一种层次式结构,最内层是硬件系统,最外层是使用计算机系统的人,人与硬件系统之间是软件系统

操作系统的运行方式

中断机制

中央处理器CPU在任何时刻只能被一个程序占用,在它执行程序的时候,如果有另外的事件发生,比如用户又打开了一个程序,那么这时候怎么办呢? 这就需要由计算机系统的中断机制来处理了。中断机制包括硬件的中断装置和操作系统的中断处理服务程序。当出现新的事件时,中断装置就判别到有新事件发生,于是送出一个中断信号,告诉操作系统,操作系统根据这个中断的优先级来确定先执行新事件还是继续执行原来的任务。

中断现场的保护和恢复

________________________________________

二、 硬件环境(识记)

(1)CPU和外设的并行工作

在一台通用的计算机系统中,通过输入输出控制系统完成外围设备与主存储器之间的信息传送。各种外设连接在相应的设备控制器上,通过通道把设备控制器连接到公共的系统总线上。这种结构允许CPU和各种外围设备同时并行工作。

(2) I/O中断的作用

当中央处理器执行到一条“启动外设”指令时,便把设备的控制权交给输入输出控制系统,然后,中央处理器和外围设备便可以并行工作,直到外设工作完成。之后,会形成一个“I/O中断”事件(输入输出结束),通知操作系统的服务处理程序完成后继工作。

利用硬件的中央处理器与外围设备的并行工作能力,以及各外围设备之间的并行工作能力,操作系统能让多个程序同时执行。

(3)存储结构

主存储器是CPU能直接访问的惟一的存储空间,任何程序和数据都必须被装入主存储器之后,CPU才能对它进行操作。主存储器以“字节(BYTE)”为单位进行编址,若干字节组成一个“字(WORD)”。中央处理器可以按地址读出主存储器中的一个字节或一个字的内容。

辅助存储器解决了主存储器容量不足,以及主存储器无法保存信息的问题。辅助存储器的优点是容量大且

能永久保存信息,缺点是无法被中央处理器直接访问,必须通过主存储器才能访问。

中央处理器存储信息的速度依次为:存取寄存器中的信息速度最快;通过系统总线存取主存储器的速度居中;使用辅助存储器的信息速度最慢。

寄存器用来存放临时的工作信息和系统必须的控制信息。

主存储器中存放操作系统的核心部分,以及当前需执行的程序和数据。

辅助存储器是存放操作下的非核心部分和其他程序和数据。

磁盘的信息可随机存取,磁带上的信息只能顺序存取。

(4)硬件保护

在资源共享的计算机系统中,只有有了必要的保护措施,才能使个别的错误不致影响其他程序。 I/O保护

?特权指令

为保护输入输出的完整性,把“启动I/O”等的一类可能影响系统安全的指令定义为特权指令。 特权指令只允许操作系统使用,用户程序不能使用特权指令。

用户程序若要启动I/O,必须请求操作系统代为启动,这种方式不但可以保证安全地使用外围设备,正确地传送信息,而且可减少用户为启动设备而必须了解外围设备特性以及启动等工作,大大方便了用户。 管态和目态

中央处理器有两种工作方式:管态和目态。

在管态下,中央处理器可执行包含特权指令在内的一切指令;在目态下,中央处理器不准执行特权指令。 操作系统在管态下工作,用户程序在目态下工作。

存储保护

硬件中设置了两个寄存器来限定用户程序执行时可以访问的空间范围。这两个寄存器是基址寄存器和限长寄存器。

中央处理器在目态下执行程序时,只有在判定访问地址符合以下关系式时候才允许访问:

基址寄存器值≤访问地址≤基址寄存器值+限长寄存器值

中央处理器在管态下执行程序时候,对访问主存的地址不进行核对。

________________________________________

三、操作系统结构(识记)

(1)操作系统的层次结构

层次结构的最大特点是把整体问题局部化。把一个大型复杂的操作系统分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。

采用层次结构,能使结构清晰,便于调试,有利于功能的增、删和修改,正确性容易得到保证,也提高了系统的可维护性和可移植性。

操作系统的一种层次结构如下图所示:

作业管理

文件管理

设备管理

存储管理

处理器管理

硬件

这种结构具有单向依赖关系,即外层依赖内层的关系。

层次结构的主要优点是有利于系统设计和调试;主要困难在于层次的划分和安排。

作业控制语言和控制命令

操作系统提供给用户表示作业执行步骤的手段有两种:作业控制语言和操作控制命令。

用户用作业控制语言编写“作业控制说明书”,从而形成批处理作业。用户使用键盘输入操作控制命令或者

选择菜单命令,进行交互处理。

系统调用

操作系统编制了许多不同功能的子程序,供用户程序在执行中调用,这些子程序称为“系统功能调用”程序或“系统调用”。

?系统调用过程

系统调用往往在管态下执行。用户程序在调用系统调用时,编译系统会生成一条“访管指令”。程序执行时,CPU取到访管指令就产生中断事件,操作系统即调用相应的系统调用子程序为其服务,并在管态下工作,处理完后,返回目态及用户程序。

?系统调用分类

操作系统提供的系统调用主要有:文件操作类,如打开文件,读、写文件等;资源申请类,如请求主存分配和归还,外设的分配和归还等;控制类,如程序正常结束,异常结束和返回断点等;信息维护类,如日期时间的设置和查询,文件属性的设置和查询

【操作系统】第三章 处理器管理

本章考核知识点:1.多道程序设计 2.进程 3.进程状态 4.进程控制块 5.进程队列 6.可再入程序 7.中断及中断响应 8.中断优先级 9.进程调度

自学要求:通过本章学习应该掌握多道程序设计是如何提高计算机系统效率的;进程与程序有什么区别;进程的基本状态以及状态变化;进程队列及进程调度策略;中断的作用。

重点是:多道程序设计;进程的定义和属性;进程调度策略。

________________________________________

一、 多道程序设计(领会)

1、什么是多道程序设计。

让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“多道程序设计”,这种计算机系统称“多道程序设计系统” 或简称“多道系统”。

存储保护:在多道程序设计的系统中,主存储器中同时存放了多个作业的程序。为避免相互干扰,必须提供必要的手段使得在主存储器中的各道程序只能访问自己的区域。这样,每道程序执行时,都不会破坏其他各道的程序和数据。特别是当某道程序发生错误的时,也不至于影响其它的程序。

程序浮动:在多道程序设计系统中,对程序有一些特殊要求,也就是说,程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行,这种技术称为"程序浮动"。

在多道程序设计的系统中,有三点基本要求:

? 用"存储保护"的方法保证各道程序互不侵犯;

? 用"程序浮动"技术让程序能灵活地改变存放区域且能正确执行;

? 必须对资源按一定的策略分配和调度。

2、多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率。具体表现为:

? 提高了处理器的利用率;

? 充分利用外围设备资源:计算机系统配置多种外围设备,采用多道程序设计并行工作时,可以将使用不同设备的程序搭配在一起同时装入主存储器,使得系统中各外围设备经常处于忙碌状态,系统资源被充分利用;

? 发挥了处理器与外围设备以及外围设备之间的并行工作能力;

从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。

3、多道程序设计对算题量和算题时间的影响。 采用多道程序设计能改变系统资源的使用情况,提高系统效率。但是应注意以下两个问题:

? 可能延长程序的执行时间;

? 并行工作道数与系统效率不成正比。从表面上看,增加并行工作道数就可提高系统效率,但实际上

并行工作道数与系统效率是不成正比,因为并行的道数要根据系统配置的资源和用户对资源的要求而定:

(1)主存储器的大小限制了可同时装入的程序数量;

(2)外围设备的数量也是一个制约条件;

(3)多个程序同时要求使用同一资源的情况也会经常发生。

总之,多道程序设计能提高系统资源的使用效率,增加单位时间的算题量;但是对每个计算问题来说,从算题开始到全部完成所需要的时间可能延长,另外在确定并行工作道数时应综合系统的资源配置和用户对资源的要求。

________________________________________

二、 进程(领会)

1、 进程的定义:把一个程序在一个数据集上的一次执行称为一个"进程"。

2、 进程是由程序、数据集和进程控制块三部分组成。

我们举一个例子,比如在有一个用户程序notepad.exe(记事本),当它存放在磁盘上时,就是一个程序,在windows操作系统下运行它时,就会在内存中建立一个记事本程序的进程,而我们在记事本中编辑的当前文字就是这个进程的数据集,操作系统会为当前的进程设置一个进程控制块。如果我们再打开一个记事本程序的窗口,就会建立另一个进程,此时运行的是同一个程序,但存在两个进程,第二个窗口中的编辑内容就是第二个进程的数据集。

3、 进程与程序的区别及关系。程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。通常把进程分为“系统进程”和“用户进程”两大类,把完成操作系统功能的进程称为系统进程,而完成用户功能的进程则称为用户进程。

________________________________________

三、 进程状态(领会)

1、 进程的三种基本状态。通常,根据进程执行过程中不同时刻的状态,可归纳为三种基本状态: ?等待态:等待某个事件的完成;

?就绪态:等待系统分配处理器以便运行;

?运行态:占有处理器正在运行。

2、进程的状态变化

进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态,进程状态之间转换关系如下图所示:

运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。

等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。

运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。

就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。 进程有四个基本属性:

?多态性 从诞生、运行,直至消灭。

?多个不同的进程可以包括相同的程序

?三种基本状态 它们之间可进行转换

?并发性 并发执行的进程轮流占用处理器

________________________________________

四、进程控制块(领会)

1、进程控制块的基本内容。 通常进程控制块包含四类信息:

?标志信息 含唯一的进程名

?说明信息 有进程状态、等待原因、进程程序存放位置和进程数据存放位置

?现场信息 包括通用、控制和程序状态字寄存器的内容

?管理信息 存放程序优先数和队列指针

2、进程控制块的作用

进程控制块(Process Control Block,简称PCB),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。操作系统利用进程控制块对进程进行控制和管理。

进程控制块的作用有:

? (1)记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。这些信息包括标志信息、说明信息、现场信息和管理信息等;

? (2)标志进程的存在,进程控制块是进程存在的唯一标志

________________________________________

五、进程队列(领会)

1、进程队列的链接。

在多道程序设计的系统中往往会同时创建多个进程。在单处理器的情况下,每次只能让一个进程运行,其他的进程处于就绪状态或等待状态。为了便于管理,经常把处于相同状态的进程链接在一起,称"进程队列",由于进程控制块能标志进程的存在和动态刻画进程的特性,因此,进程队列可以用进程控制块的连接来形成。链接的方式有两种:单向链接和双向链接。

2、进程基本队列

就绪队列:由若干就绪进程按一定次序链接起来的队列。

等待队列:把等待资源或等待某些事件的进程排列的队列

3、进程的入队和出队。

出队和入队:当发生的某个事件使一个进程的状态发生变化时,这个进程就要退出所在的某个队列而排入到另一个队列中去。

出队:一个进程从所在的队列退出的操作称为出队

入队:一个进程排入到一个指定的队列的操作称为入队。

系统中负责进程入队和出队的工作称为队列管理。

无论单向链接还是双向链接,解决入,出队问题,都是首先找到该队列的队首指针,沿链找出要入队的进程以及它要插入的位置,或找出要出队的进程,然后修改本进程指针(入队情况)和相邻进程的有关指针值即可。

________________________________________

六、可再入程序(识记)

(1) 什么是可再入程序。 一个能被多个用户同时调用的程序称做"可再入"的程序。

(2) 可再入程序的性质。

? 可再入程序必须是纯代码,在执行时自身不改变;

? 一个可再入程序要求调用者提供工作区,以保证程序以同样方式为各用户服务。

编译程序和操作系统程序通常都是"可再入"程序,能同时被不同用户调用而构成不同的进程。

________________________________________

七、中断及中断响应(领会)

1、中断的定义。

一个进程占有处理器运行时,由于自身或者外界的原因(出现了事件)使运行被打断,让操作系统处理所出现的事件,到适当的时候再让被打断的进程继续运行,这个过程称为"中断"。

2、中断的类型。

从中断事件的性质出发,中断可以分为两大类:

?强迫性中断事件 包括硬件故障中断,程序性中断,外部中断和输入输出中断等

?自愿性中断事件 是由正在运行的进程执行一条访管指令用以请求系统调用而引起的中断,这种中断也称为"访管中断"。

自愿中断的断点是确定的,而强迫性中断的断点可能发生在任何位置。

3、中断的响应和处理。

中断响应 (硬件即中断装置操作)

处理器每执行一条指令后,硬件的中断位置立即检查有无中断事件发生,若有中断事件发生,则暂停现行进程的执行,而让操作系统的中断处理程序占用处理器,这一过程称为"中断响应"。

中断响应过程中,中断装置要做以下三项工作:

? 是否有中断事件发生

判别自愿性中断,只要检查操作码是否为访管指令。

判别强迫性中断,则要检查中断寄存器内容。若为0,则无中断;若非0,则表示有中断事件发生。 ? 若有中断发生,保护断点信息

每个程序都有一个程序状态字(PSW)来反映本状态的执行状态,如基本状态、中断码和中断屏蔽位等内容。处理器设有一个"程序状态字寄存器"用来存放当前运行程序的PSW。程序状态字可分为当前PSW、旧PSW和新PSW。

当出现中断事件后,把被中断进程的PSW保存为旧PSW,即完成断点信息保护。

? 启动操作系统的中断处理程序工作

中断装置通过"交换PSW"过程完成此项任务,即把出现的中断事件存放到当前PSW中断码位置,然后把该当前PSW保存为旧PSW,再把操作系统中断处理程序的新PSW送到程序状态字寄存器中,成为当前的PSW。

中断处理 (软件即操作系统操作)

操作系统的中断处理程序对中断事件进行处理时,大致要做三方面的工作:

? 保护被中断进程的现场信息

把中断时的通用寄存器,控制寄存器内容及旧PSW保存到被中断进程的进程控制块中。 ? 分析中断原因

根据旧PSW的中断码可知发生该中断的具体原因。

? 处理发生的中断事件

一般只做一些简单处理,在多数情况下把具体的处理交给其他程序模块去做。

________________________________________

八、 中断优先级和中断屏蔽(识记)

1、中断优先级是硬件设计时确定的。中断装置按预定的顺序来响应同时出现的中断事件,这个预定的顺序称为"中断优先级"。中断优先级是按中断事件的重要性和紧迫程度来确定的 ,是由硬件设计时固定下来的。一般情况下,优先级的高低顺序依次为:硬件故障中断、自愿中断、程序性中断,外部中断和输入输出中断。

2、中断的嵌套处理

3、中断屏蔽的作用。中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。

中断屏蔽技术就是为了解决上述问题而提出的在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,

如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应。自愿中断是不能屏蔽的。

________________________________________

九、 进程调度(领会)

1、进程调度的职责。按选定的进程调度算法从就绪队列中选择一个进程,让它占用处理器。

2、选择进程调度算法的几个准则:

?提高处理器利用率

?增大吞吐量

?减少等待时间

?缩短响应时间

3、进程调度的常用算法:先来先服务、优先数法、轮转法、分级调度。

? 先来先服务调度算法 该算法按进程进入就绪队列的先后次序选择可以占用处理器的进程。

? 优先数调度算法 对每个进程确定一个优先数,该算法总是让优先数最高的进程先使用处理器。对具有相同优先数的进程,再采用先来先服务的次序分配处理器。系统常以任务的紧迫性和系统效率等因素确定进程的优先数。进程的优先数可以固定的,也可随进程执行过程动态变化。 一个高优先数的进程占用处理器后,系统处理该进程时有两种方法,一是"非抢占式",另一种是"可抢占式"。前者是此进程占用处理器后一直运行到结束,除非本身主动让出处理器,后者则是严格保证任何时刻总是让优先数最高的进程在处理器上运行。

? 时间片轮转调度法 把规定进程一次使用处理器的最长时间称为"时间片"。时间片轮转调度算法让就绪进程按就绪的先后次序排成队列,每次总选择该队列中第一个进程占用处理器,但规定只能使用一个时间片,如该进程尚未完成,则排入队尾,等待下一个供它使用的时间片。各个进程就这样轮转运行。时间片轮转算法经常用于分时操作系统中。

? 分级调度算法 由系统设置多个就绪队列,每个就绪队列中的进程按时间片轮转法占用处理器,这就是分级调度算法。

4、进程的切换 进程调度将从就绪队列中另选一个进程占用处理器,使一个进程让出处理器,由另一个进程占用处理器的过程称"进程切换"。

若有一个进程从运行态变成等待态,或完成工作后就撤消,则必定会发生进程切换。若一个进程从运行态或等待态变成就绪态,则不一定发生进程切换。

【操作系统】第四章 存储管理

本章考核知识点:1、重定位 2、固定分区存储管理 3、可变分区存储管理 4、页式存储管理 5、段式存储管理 6、虚拟存储器

自学要求:明确存储管理的职能是对主存储器中的用户区域进行管理;理解在不同的管理方式下如何实现存储保护、地址转换、以及主存空间的分配和回收;比较各种管理方式的特点;掌握虚拟存储器的实现原理和方法。

重点是:各种管理方式的特点;可变分区方式的主存分配算法以及移动技术;分页式虚拟存储管理的实现以及页面调度算法;分段式虚拟存储管理的实现。

操作系统的存储管理如同一个大地主,管着一个大庄园,当有农户需要租用田地时,地主就给分配一块地让他种(用户区分配)。等到地里长出了果实(结果出来后,地主还得来收回这块地(去配)。

为了管好这片田地,地主还要管好庄园的门,凡是要进去种地的,都得由地主根据他的需要让他到位置确定实际的田地上去干活。(把逻辑地址转换成物理地址)

庄园里还有一些大家共同可以使用的地方,比如地主的花园,工具房等,大家可以进去,也可以使用,但是不许改变任何现有的东东,还有,每个农户只能在自己的地里刨食吃,如果有人胆敢到别人地里或地主的花园里摘花偷食,可要当心他们养的狼狗跳出来哦。(共享和保护)

当然,再大的地也是不够多的,地主为了多赚些钱,当所有的地都租出去的时候,他想办法把有些种田人暂时不种的那块地里的东东连地皮一起挖出来放到仓库里先堆着。把地腾出来租给别人种(这一招可够绝的,不过地主说啦,这就是“虚拟存储”。)

你说这个地主是好是坏??

________________________________________

概述:本章讨论的是主存储器空间的管理。主存储空间分成系统区和用户区两部分。存储管理的功能包括:主存空间的分配和去配、实现地址转换、主存空间的区享和保护和主存空间扩充。

一、重定位(领会)

1、区分逻辑地址与绝对地址。

绝对地址:主存储器以字节为编址单位,容量为n的主存储器中,每个单元有唯一的编号,从0到n-1,这个唯一的编号就是主存储器的物理地址。

比如我们现在用的128MB内存条中就有128×1024×1024=134217728 字节,所以它的内存绝对地址就是从0到134217727。

注意啦,庄园的大地主就是这么给自己的地做上标记的。

逻辑地址:在多道程序设计的系统中,操作系统为了方便用户,就允许每个用户都认为自己的作业的程序和数据存放在地址是0开始的连续空间中。这样用户程序中使用的地址就是逻辑地址。

种田人不管地主庄园有多少块地,标了什么号,只要记住自己需要多少地,给自己种的地打上标记就是了。地主想,只要你们能干活,不需要知道了我的底细了吧(家财不可外扬哦)。

2、重定位(地址转换的方式)

为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放进行重定位,这种把逻辑地址转换成绝对地址的工作称为“重定位”或“地址转换”。重定位的方式有“静态重定位”和“动态重定位”两种。

庄园主道:静态重定位比较简单,想当初张三来这儿,说要租一百块地,青菜种在第1块地,萝卜种2块地里,土豆得重在第3块地里...然后得在第28块地里养鸭,完了要把28块地里的鸭粪拉到第49块地的鱼塘里喂鱼....我就说,行啦行啦,你进去,庄园的左边101到200号那100块地就分给你吧,以后你要找哪块地养鸭养鱼的,就得按我给你编的号来找。每个地址都已经加上100了,不会找错吧。别说我没讲清楚哦。

至于动态重定位,庄主笑道:这个我也能做到,这么实现的:李四来租地时,我也不问他,直接把他带到空闲的一片地方。派人记着这那片地的第一个地址。比如说是100号吧。李四这个笨小子干着干着会叫起来说:“老板,现在我要到32号地里抓鱼!”旁边人一听,马上告诉他“哎呀,你现在已经分了地啦,起始地块是100号,那你就得到132号地去才对!”就这样,李四每一次要找地方时,都叫别人给他重新算一下。这样他才不会找错位置。这样也有一个好处,就是如果有人出价更好,我可以让他搬到别处去干活,反正都是叫别人给他重新算位置,所以他就不用记住搬地方后的物理地址啦。

(1)静态重定位

在装入一个作业时,把作业中的指令地址和数据地址全部转换成绝对地址。这种转换工作是在作业开始前集中完成的,在作业执行过程中无需再进行地址转换。所以称为“静态重定位”。

(2)动态重定位

在装入一个作业时,不进行地址转换,而是直接把作业装到分配的主区域中。在作业执行过程中,每当执

行一条指令时都由硬件的地址转换机构转换成绝对地址。这种方式的地址转换是在作业执行时动态完成的,所以称为动态重定位。

动态重定位由软件(操作系统)和硬件(地址转换机构)相互配合来实现。动态重定位的系统支持“程序浮动”,而静态重定位则不能。

________________________________________

二、固定分区存储管理(领会)

分区存储管理是把存储器中的用户区作为一个连续区或分成若干连续区进行管理。早先使用一个分区的存储管理,后发展成多分区的存储管理。多个分区的管理可采用固定分区方式和可变分区方式。

1、固定分区存储管理的原理

固定分区的意思就是指主存空间划分成若干连续区后,这些分区的大小和个数就固定不变。

固定分区管理利用一张“主存分配表”说明各分区的情况。装入和结束作业均通过这个分区表来记录分区使用的变化情况。

2、如何实现存储保护

固定分区管理可采用静态重定位的方式装入作业。装入程序把作业中的逻辑地址转换为绝对地址。并检查绝对地址是否在指定(装入)的分区内,如果是,就装入这个作业。否则就不能装入。如果装入主存分区的作业占用处理器时(注意,是运行时),进程调度程序(不是装入程序了)必须把作业所在分区的上下限地址存入“下限寄存器”和“上限寄存器”中,这样可以在指令执行中判断其所用到的绝对地址是否越界,达到存储保护的目的。

3、怎样提高主存空间的利用率 这里有几种办法:

? (1)分区按大小顺序排列,这样可以使作业总是先使用满足要求的最小分区。

? (2)根据经常出现的作业大小和频率划分分区。

? (3)按作业的对主存空间的需求量排成多个队列,规定队列与分区的对应关系。也就是说多大的作业只能放在多大的分区里,就算有更大的分区空着,也不许他进入。

________________________________________

三、可变分区的管理(领会)

可变就是指分区的大小和位置不是固定的,而是根据作业要求的主存量来分配分区的大小。

1、主存的分配和去配(回收)

在系统初始化时,主存除了操作系统所占部分外,整个用户区是一个大的空闲区,可以按作业需要的空间大小顺序分配空闲区直到不够时为止。

当作业结束时,它的占用分区被收回。这个空闲区又可以根据新作业的大小重新用于分配,所以主存中的已占分区和空闲区的数目和大小都是在变化的。可以用两张表“已分配区表”和“空闲区表”来记录和管理。

2、常用的分配算法

最先适应分配算法:简单地说,就是在分区表中顺序查找,找到够大的空闲区就分配。但是这样的分配算法可能形成许多不连续的空闲区,造成许多“碎片”,使主存空间利用率降低。

最优适应分配算法:这种算法总是挑选一个能满足作业要求的最小空闲区。但是这种算法可能形成一些极小的空闲区,以致无法使用,这也会影响主存利用率。

最坏适应分配算法:这种算法和上面的正好相反,它总是挑一个最大的空闲区分给作业使用,使剩下的空间不至于太小。

3、地址转换与存储保护

采用可变分区方式管理时,一般均采用动态重定位方式装入作业。也就是每读一条指令,都要变换一次地址。变换要靠硬件支持,主要是两个寄存器:基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小。

转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。达到存储保护的目的。

对于共享程序,则硬件提供两组限长寄存器和基址寄存器。访问时对访问区享区和作业区的地址分别进行转换。

4、移动技术的应用

移动技术要“移动”的东东就是主存空间中的作业。把某个作业移到另一处主存空间去(在磁盘整理中我们应用的也是类似的移动技术),这样的最大好处就是可以合并一些空闲区。

但是移动技术的应用也要注意以下问题。

? 移动会增加系统开销。所以要尽量减少移动。

? 移动是有条件的,如果作业在执行过程中正等待与外围设备传输信息,就不能移动。因此在移动时首先要判定该作业是否与外设交换信息。

________________________________________

四、页式存储管理(领会)

1、如何分页和分块

页式存储管理中有两个名词:“页”和“块”,其中的“块”是针对硬件来说的,就是把存储器分成若干相等大小的区,每个区就称为一个块。对应的,在程序中,逻辑地址进行“分页”,其大小和每个块相一致。 事实上,页面的大小是由块的大小自然决定的。对于程序来说,其逻辑地址还是和原来一样采用连续的地址。只是按照块的位数取其前面数位做为页号。

分配空间时,根据作业长度可以确定它的页面数,根据这个页面数在主存中分配相应的块数,只要是空闲块就可以放入,即使不是相邻的。并把分配情况记在“页表”中,根据页表可以找到相对应的页号与块号,就得出绝对地址了。

2、采用页式管理,使主存空间充分利用,页不必为了得到连续空间而进行移动。可以提高系统效率。

3、页表的构造与作用

每个被装入主存的作业都有一张页表,指出该作业逻辑地址中的页号与所占用的主存块号之间的对应关系。页表的长度由作页拥有的页面数决定,行号对应为页号,行中记录的是主存中的块号。

页表是硬件进行地址转换的依据,每执行一条指令时按逻辑地址中的页号查找页表并转换成绝对地址。 在多道程序设计系统中,进入主存的每个作业都有一张页表,由一个硬件“页表控制寄存器”来记录每个作业的页表所在位置和长度以便作业转换时同时转换页表。

4、快表的构造与作用

快表就是页表的一部分克隆,每行中有页号及其对应的块号,整个快表存放在一个小容量的高速缓存中,访问时快表和内存同时进行查找,因为快表速度很快,而常用的页都登记在快表中,因此可以大大加快执行速度。

5、采用页式管理的地址转换过程

(为什么不直接用块分配表来记录而要用位示图呢,因为主存块很多,这样可以节省空间,提高效率。位示图就是用一个位(0或1)来表示一个块的使用状态,一个字32位,可以表示32块。按顺序排列,只需一小段内存就可以记录主存中大量的块状态)

6、利用位示图实现页式存储空间的分配和回收

页式存储管理把主存空间分成大小固定的许多块,在装业作业时,如何知道主存中哪些块已使用,哪些还未用,可以用位示图来表示。

块号=字号×字长+位号

字号=[i/字长](即块号i除以字长取整)

位号=i mod 字长(即块号i除以字长取余)。

________________________________________

五、段式存储管理(领会)

1、段式存储中段的划分

段式管理是根据人们对程序中需要分段编制的要求出发而提供的。它提供给用户编程时使用的逻辑地址由“段号”和“段内地址”两部分组成,其形式和页式管理相同。但是实际上是不同的:

页式存储管理提供连续逻辑地址由系统自动分页,段式存储管理中的作业分段是由用户决定的,每段独立编程,因此段间的逻辑地址是不连续的。

2、段式存储空间的分配

这种分配方法和可变分区管理方式的分配方法相同,所不同的是:

可变分区管理方式中是为每个作业分一个区,而段式管理是为一个作业中的每个段分一个连续的空间。(段式管理更细)。

3、段表的构造与作用

段表由段号、本段限长和起始地址三部分组成,由于每一行记录的行号可以对应程序的段号,因此段号实际上被省略,不占存储空间。

与其他管理方式一样,段表记录的信息用于地址转换和存储保护。段表的表目起到了基址/限长寄存器的作用。

4、段式存储管理的地址转换

这个转换过程如同可变分区方式的地址转换,但是由段表的表目替代了基址/限长寄存器。

绝对地址=根据段号找到段表中的起始地址+段内地址 (如果段内地址超过限长则产生“地址越界”程序性中断事件达到存储保护)

多道程序设计系统中,每个进入主存的作业都建立了段表,因此还有一个硬件“段表控制寄存器”来记录每个作业的段表在主存中的位置和长度。

________________________________________

六、虚拟存储器(领会)

1、什么是虚拟存储器

虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。

虚拟存储器的容量由计算机的地址结构(总线位数)决定。

2、虚拟存储器的实现原理

它的工作原理如下:首先把作业信息保留在磁盘上,当作业请求装入时,只将其中一部分先装入主存,作业执行中若要访问的信息不在主存中,则再设法将这些信息装入主存。

3、分页式虚拟存储器的实现

页式虚拟存储管理是在页式存储管理的基础上实现的。首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存储器,作业执行时若所访问的页面已经在主存中,则进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。

4、常用的页面调度算法:FIFO、LRU、LFU

当主页中无空闲块时,为了装入一个页面,就必须按某种算法将主存中某个页调出,调入所需装入的页面。这就是页面调度。常用的算法有:先进先出调度算法(FIFO)、最近最少使用调度算法(LRU)和最近最不常用调度算法(LFU)。

特别要注意掌握的就是LRU的算法,如何进行调度。

5、缺页中断率

如果作页执行中访问页面的总次数为A,其中有F次访问的页面尚未装入主存,则有F次缺页中断,f=F/A,这里的f就称为缺页中断率。影响缺页中断的因素有:

? 分配给作业的主存块数----块数n↑ f↓

? 页面的大小----页面大小↑ f↓

? 程序编制方法----局部化程度↑ f↓

? 页面调度算法

6、段式虚拟存储器的实现

段式虚拟存储管理以段式存储管理为基础,在磁盘上保留作业的各个分段信息,作业执行时把需要执行的一段或几段装入主存。在实际使用中,也要进行查表和地址转换以及“缺段中断” 和调度(包括调出、装入、移动等)工作。

【操作系统】第五章 文件管理

本章的考核知识点:1、文件和文件名;2、文件的存储介质;3、文件的存取方法;4、文件目录;5、文件的逻辑结构;6、文件的物理结构;7、记录的组成与分解;8、存储空间的分配与回收;9、文件操作;10、文件的保护与保密。

本章自学要求:文件管理必须对用户按名存取功能,要求考生理解为实现按名存取文件管理应该做哪些工作;文件管理怎样管理用户信息的存储和检索、怎样实现文件的保护和保密;文件操作的作用以及用户如何使用文件操作。

重点是:逻辑文件与物理文件间的转换;文件目录操作的作用及使用。

________________________________________

一、文件和文件名(识记)

文件和文件名:在计算机系统中,把逻辑上具有完整意义的信息集合称为“文件”,每个文件都要用一个名字作标识,称为“文件名”。

文件可以按各种方法进行分类:

按用途 系统文件、库文件、用户文件

按保护级别 可执行文件、只读文件、读写文件

按信息流向 输入文件、输出文件、输入输出文件

按存放时限 临时文件、永久文件、档案文件

按设备类型 磁盘文件、磁带文件、卡片文件、打印文件

按文件组织结构 逻辑文件、物理文件(顺序文件、链接文件、索引文件)

二、文件存储介质(领会)

1、存储介质不等于存储设备,它是指用来记录信息的磁带、硬磁盘组、软磁盘片、卡片等。使用它们要通过相应的存储设备。

2、存储介质的物理单位定义为“卷”。文件与卷的关系(存在卷中)可以是一对一也可以是一对多或多对一。

3、存储介质上连续信息所组成的一个区域称为“块”(物理记录)块是存储设备与主存之间进行信息交换的物理单位。

4、磁盘的结构:磁盘格式化时盘面存储空间划分扇区,每个扇区中各磁道都有相同长度的连续信息区,每个区就是磁盘上的块。

________________________________________

三、文件的存取方式(领会)

文件的存取方式有顺序存取和随机存取两种。磁带上的文件只能顺序存取,磁盘上的文件既可采用顺序方式也可用随机方式存取。

________________________________________

四、文件目录(简单应用)

1、文件目录的主要内容和作用:文件目录由若干目录项组成,每个目录项记录一个文件的有关信息。包括: ? 有关文件存取控制信息。例如用户名、文件名、文件类型、文件属性(可读写、只读、只执行等) ? 有关文件结构的信息。例如文件的逻辑结构、物理结构、记录个数和在存储介质上的位置等。 ? 有关文件管理的信息。例如文件建立的日期、修改日期、保留期限等。

文件目录的作用是用于检索文件。

2、目录结构:包括一级目录结构、二级目录结构和树形(多级)目录结构。

一级目录结构要求所有的文件名均不相同,一般只适用于微机的单用户系统。

二级目录结构则增加一级主文件目录,此目录是为用户建立的独立文件目录,用户访问文件时先要找到用户自己的目录再查找该目录下的指定文件。实际上,二级目录结构中,文件系统把用户名和文件名合起来作为文件标识。

树形目录允许用户在自己的文件中再建立子目录。从根目录到文件之间所有各级子目录名和该文件名的顺序组合称为文件的“路径名”

绝对路径:是从根目录到指定文件的路径。如MS-DOS下从C盘到某一文件的路径:C:/first/ / /file.exp 相对路径:是从当前目录到指定文件的路径。如上例,当前目录为22时,访问file.exp的相对路径是:33/file.exp,访问根目录下的文件路径是:../../command.com

树形目录的优点:

? 1)解决了重名问题。

? 2)有利于文件分类

? 3)提高检索文件的速度

? 4)能进行存取权限的控制。

关于本节的内容可以在MS-DOS或UNIX操作系统中进行练习,以理解目录结构。可用的命令有:dir、tree、md、cd、rd、del等.

________________________________________

五、文件的逻辑结构(领会)

前面讲的是目录,现在讲的是文件。文件的结构是指文件的构造方式。

什么是文件的逻辑结构:由用户构造的文件称为文件的逻辑结构。如一篇文档、一个数据库记录文件等,在用户看来是一些文字和数字或多媒体信息的有机组合。

逻辑文件有两种形式:流式文件和记录式文件。

流式文件是指用户对文件内信息不再划分的可独立的单位,如我们的word文件,图片文件等。整个文件是以顺序的一串信息组成。

记录式文件:是指用户对文件内信息按逻辑上独立的含义再划分信息单位,每个单位为一个逻辑记录。每个记录可以独立存取。这个在数据库中我们学得比较多,容易理解。

________________________________________

六、文件的物理结构(领会)

1、什么是文件的物理结构:由文件系统在存储介质上的文件构造方式称为文件的物理结构。不论用户看来是什么文件,在存储介质上存储时,按何种构造方式记录呢,因为介质上的存储单位是物理块,那么这些物理快是顺序存放,还是链式结构,或者索引结构,都要由文件系统结构来实现。

2、逻辑文件在磁盘上的组织方式:

1)顺序结构:顾名思义,顺序结构就是指,把逻辑文件的记录(内容)按其本身的顺序(逻辑记录的顺序)在磁盘上也按序存放在连续的块中。读取时也从第一个记录开始按顺序进行。在文件目录中指出文件名,存放的起始块号和占用块数。

顺序文件的最大优点是存取速度快(可以连续访问)。而问题主要是存储空间利用率不高、输出文件时难以估计需要多少磁盘块、影响文件扩展。

2)链接结构:如果逻辑文件中的各个逻辑记录任意存放到一些磁盘块中,再用指针把各个块按逻辑记录的顺序链接起来,在文件目录中只记录第一块的地址和最后一块的地址,那么这种文件组织方式就是链接结构。

链接结构解决了顺序结构中的所有问题,所有空闲块都可以被利用,在顺序读取时效率较高但需要随机存取时效率低下(因为要从第一个记录开始读取查找)。此外,对于链接结构,也有一些问题要注意:由于块中要存放指针信息,因此一部分空间被占用;读出信息时要把指针信息分离出来;还要防止指针丢失或破坏造成的混乱,所以又要增加一些管理的信息。总之链式结构会使用于存放文件信息的空间减少。

3)索引结构:索引结构是实现非连续存储的另一种方法,索引结构为每个文件建立一张“索引表”,把指示每个逻辑记录存放位置的指针集中在索引表中。(最直观的索引结构就比如我们的网站,首页就相当于一个索引表,每个链接记录了一个文件的位置,当我们点击时,就可以找到那个文件)

文件目录中指出文件名的索引表位置,而索引表中每个项指出一个逻辑记录的存放位置。存取文件时根据索引表中的登记项来查找磁盘上的逻辑记录。

索引结构既适合顺序存取记录,也可以方便地随机存取记录,并且容易实现记录的增删和插入,所以索引结构被广泛应用。但是索引结构增加了索引表,要占用部分空间并增加读写索引表的时间。当索引项很多时,还要考虑采用多级索引结构。

________________________________________

七、记录的成组与分解(简单应用)

1、什么是记录的成组与分解:由于磁盘块的大小是预先划分好的,大小固定,而逻辑记录的大小是用户文件性质决定的,不一定和块大小一致,如果逻辑记录比物理块小得多时,可以把多个逻辑记录存放在一个块中,这就是记录的成组,用户使用时再把读取的一块信息中分离出所需的记录,这就是记录的分解。

2、记录的成组:把若干个逻辑记录合成一组存入一块的工作称为“记录的成组”,每块中逻辑记录的个数称“块因子”

利用主存缓冲区可以把多个逻辑记录一次性保存到磁盘块上。也就是当记录要求存盘时,先存入主存缓冲区,缓冲区的大小等于最大逻辑长度乘以成组的块因子,就是块的大小。

在缓冲区未存满时,不启动磁盘写,这样就提高了存储空间的利用率,减少启动外设的次数,提高了系统的工作效率。

3、记录的分解:这是记录成组的一个逆过程,先从磁盘中找到记录所在的块,并将本块读入主存缓冲区,再从缓冲区取出所需要的记录送到用户工作区。如果用户所需的记录已经在缓冲区中,则不需要启动外设读块信息,这也可以提高系统工作效率。

________________________________________

八、存储空间的分配与回收(简单应用)

1、用位示图进行磁盘存储空间的分配与回收:和主存页式管理的存储空间分配回收方法类似,位示图用一个位的信息(0/1)来表示磁盘上一个块空间是否空闲,所不同的是,主存空间直接以块号表示,而磁盘块位置则由柱面号、磁头号和扇区号三段组成。

2、用空闲块表进行磁盘存储空间的分配与回收:如同主存管理中的空闲区表,表每一行记录一组连续空闲块的首块号和空闲块数,空闲块数为“0”的登记项为“空”登记项。

________________________________________

九、文件操作(领会)

1、文件操作主要有以下六种

建立文件:建立文件操作的主要工作是检查文件目录,确认无重名时寻找空登记项进行登录;寻找空闲存储块以备存储文件信息或存放索引表。

打开文件:打开文件操作的主要工作是找目录、检索文件名,核对存取方式;读索引表;登记已打开文件的有关信息。

读文件:查看是否已经打开,是否打开者请求读文件。得到存放地址后读出文件。

写文件:主要工作是查文件目录核对文件是否已建立,已建立则可写入。

关闭文件:核实只有文件的建立者或者打开者才有权关闭文件;检查读入主存的文件目录或索引表,如修改过则要写回存储介质上;在已打开文件表中清除该文件。

删除文件:在用户指定的文件从目录中除去并收加文件所占用的存储空间。

这些操作均由文件系统提供相关的功能模块。每个一操作调用模块时均要提供用户名、文件名等参数。

2、用户请求使用文件的操作步骤

1)读文件:打开文件→读文件→关闭文件

2)写文件:建立文件→写文件→关闭文件

3)删除文件:关闭文件→删除文件

________________________________________

十、文件的保护与保密(领会)

1、区分文件的保护与保密:文件的保护是防止文件被破坏。文件 的保密是防止不经文件拥有者授权而窃取文件。

2、文件的共享:文件共享是指一个文件可以让指定的某些用户共同使用。包括不允许同时使用的共享文件和允许同时使用的共享文件。一般不允许同时读和写或同时写文件。

3、文件的保护措施:

为了防止系统故障造成文件被坏,可以采用建立复本和定时转储的办法;为了防止用户共享文件可能造成的文件破坏,可以采用树形目录结构、存取控制表和规定文件使用权限的方法。

4、文件的保密措施:常用的措施有:隐藏文件目录、设置口令和使用密码(加密)等。

【操作系统】第六章 设备管理

本章考核知识点:1、输入输出操作;2、独占设备与共享设备;3、独占设备的设备;4、磁盘的驱动程序;

5、外围设备的启动;6、虚拟设备(SPOOL系统)

自学要求:要求了解设备管理与文件管理的合作,文件管理实现文件存取的准备工作,而文件的物理存取由设备管理实现。理解怎样实现独占设备的分配和磁盘的驱动调度;怎样实现虚拟设备。

________________________________________

一、输入输出操作(要求达到“识记”层次)

1、什么是输入输出操作:主存储器与外围设备之间的信息传送操作称为输入输出操作。

2、对于存储型设备,输入输出操作的信息传输单位为“块”。对输入输出型设备,输入输出操作的信息传输单位为“字符”。

________________________________________

二、独占设备和共享设备(识记)

独占设备好比是你家的抽水马桶,当你坐上去的时候,大家就是想用也得等你完事了站起来才可以用上。

共享设备呢,就像是我家的水龙头,我在洗手的时候,可以把手移开让我妈来打盆水。然后我又继续洗手。

1、独占设备是指每次只能供一个作业执行期间单独使用的设备。如输入机、磁带机、打印机等。

2、共享设备是指允许几个作业执行期间可同时使用的设备。

3、共享设备的“同时使用”的含义是指多个作业可以交替启动共享设备,当一个用业正在使用设备时其他作业暂不能使用,即每一时刻仍只有一个作业占用,但当一个作业正在使用设备时其他作业就可使用。 ________________________________________

三、独占设备的分配(领会)

1、独占设备的绝对号与相对号

这和绝对地址/相对地址的概念类似。绝对号就是将每一台设备确定一个编号(相当于一个绝对地址)。相对号就是为了用户程序的方便而设的,在用户请求使用时,采用“设备类-相对号”来提出使用设备要求。由系统建立绝对号与“设备类-相对号”之间的关系,就能正确启用设备了。

2、设备的指定方式

绝对号就好象给每个人取一个不同的名字。上司的工作计划中有一条:十点钟叫张三去买菜。如果张三有空,就得张三去买。

设备类-相对号呢,就好比是一个部门,部门中有一些工作人员,上司的工作计划就只写成:十点叫买菜部找个人去买罗卜。这时就由“系统”来看看买菜部是否有人空闲,只要本部有人闲着能干活的,不管张三李四都可以去干。

这样,对于上司来说,不用去记谁谁的名字,只要指定某部门,要多少人就是了,他的用人策略和具体的哪个人无关。这就是“设备独立性”

1)指定绝对号:这种方式由作业直接指定绝对号对应的设备。系统只能把这个设备分配给他,如果该设备正由其他作业使用则申请不能得到满足。

2)指定设备类、相对号:这种方式在申请设备时不指定具体哪台设备,只说明要某类设备多少台,这样可以由系统灵活分配。

3)设备独立性:采用“设备类、相对号”方式使用设备时,用户编程就不必指定特定设备,在程序中由“设备类、相对号”定义逻辑设备。程序执行时由系统根据用户指定的逻辑设备转换成与其对应的具体物理设备。所以,用户编程时使用的设备与实际使用哪台设备无关,这就是“设备独立性”

4)如何实现独占性设备分配:对于独占性设备,系统采用“静态分配”的策略,就是当一个作业所需使用的独占设备能得到满足时,该作业才能被装入主存储器执行。

在操作系统中,设置“设备分配表”来记录计算机系统所配置的独占设备类型、台数和分配情况等。设备分配表由“设备类表”和“设备表”两部分组成。通过查表和修改表的操作完成设备分配工作。

________________________________________

四、磁盘的驱动调度(领会)

1、磁盘的结构(动画)

2、访问磁盘的操作时间(动画)

3、磁盘的驱动调度:在多道程序设计系统中,同时有多个访问者请求磁盘操作,此时系统采用一定的调度策略来决定各等待访问者的执行次序,所以系统决定等待磁盘访问者的执行次序的工作就是磁盘的“驱动调度”

4、对磁盘进行驱动调度的目的:尽可能的降低多个访问者执行输入输出操作的总时间,增加单位时间内的输入输出操作次数,有利于系统效率的提高。

5、磁盘调度分为移臂调度和旋转调度。根据访问者指定的柱面位置来决定执行次序的调度称“移臂调度”;当移动臂定位后,如有多个访问者等待访问该柱面时,根据延迟时间来决定执行次序的调度称为“旋转调度”。

6、移臂调度算法包括以下四种:

? 1)先来先服务算法;

? 2)最短寻找时间优先调度算法;

? 3)电梯调度算法;

? 4)单向扫描调度算法。

以上几种算法要能够区分,如给你一个访问序列和访问条件,应能根据各种算法做出调度后的访问序列。

7、信息的优化分布:知道信息在磁盘上排列不一定是按顺序最优,对于一些能预知处理要求的信息采用优化分页可以缩短输入输出操作时间,提高系统效率。

________________________________________

五、外围设备的启动(识记)

要想提高效率就要大胆放权,让下属对事负责而不是对人负责。

CPU是很忙的,如果所有的事情都自己做,做得再好也不一定好,如果有人能帮他处理一些事情,他就可以腾出时间来做更多的事。通道就是中层干部,发挥他们的作用就能提高效率。

1、通道(channel):计算机系统中能够独立完成输入输出操作的硬件装置,也称为“输入输出处理机”。 CPU并不直接操作外围设备,他连接通道(I/O处理机),通道连接设备控制器,设备控制器连接设备。CPU只需把“I/O"设备启动,并给出相关的操作要求。然后就由通道来处理输入输出事宜,做完后报告CPU。

2、通道命令和通道程序:

通道命令(CCW)规定设备的一种操作,通常由命令码、数据主存地址、传送字节个数及标志码等部分组成。

操作系统用一组通道命令来执行一次输入输出应做的工作,这一组通道命令就组成了一个“通道程序”。 ? 命令码分成三类:数据传输类、通道命令转移类和设备控制类。

? 数据主存地址对于不同的命令有不同的作用,比如命令码为写的操作,主存地址指定的区域存放输出到外围设备的信息。

? 标志码:为非0时表示通道程序未结束。为0时表示通道程序结束。

? 传送字节个数,表示本命令应传输的字节个数。

3、通道地址字(CAW)和通道状态字(CSW)

用来存放通道程序首地址的主存固定单元称为“通道地址字”。

通道状态字:用于记录通道和设备执行情况的主存单元。通常包括通道命令地址、设备状态、通道状态和剩余字节个数等几个字段。

4、I/O中断:是指中央处理器和通道协调工作的一种手段。通道借助I/O中断请求CPU进行干预,CPU根据产生的I/O中断事件了解输入输出操作的执行情况,I/O中断事件是由于通道程序的执行或其他外界原因引起的,对通道操作而言,当操作正常结束或异常结束(如设备故障、设备特殊情况引起异常结束)形成I/O中断,由CPU根据相应情况分别处理。

________________________________________

六、虚拟设备SPOOL系统(领会)

1、实现虚拟设备的目的:用一种物理设备模拟另一类物理设备,使各作业在执行期间只使用虚拟的设备而不直接使用物理的独占设备。这种技术可使独占的设备变成可共享的设备,使得设备的利用率和系统效率都能得到提高。

2、实现虚拟设备的硬件条件:大容量磁盘;中断装置和通道;中央处理器与通道并行工作的能力。(另外,实现虚拟设备的软件条件是要求操作系统采用多道程序设计技术。)

3、虚拟设备的实现原理:对于多道程序,输入时将一批作业的信息通过输入设备预先传送到磁盘上。输出时将作业产生的结果也全部暂时存在磁盘上而不直接输出,直到一个作业得到全部结果而执行结束时再行输出。(就是用磁盘来模拟输入机和打印机的工作,把它们的工作内容先保存起来,然后一并执行)

4、SPOOL系统的组成和实现:

井:为实现虚拟设备在磁盘上划出的专用存储空间,用于存放作业的初始信息和执行结果。

SPOOL系统由三部分程序组成:

? 预输入程序。通过该程序把作业流中每个作业的初始信息传送到“输入井”保存起来以以备作业执行时使用。

? 井管理程序:通过该程序来保证作业正确及时地从“井”中读取或写入信息。它使得每个用户感觉到自己都在使用独立的输入输出设备。

? 缓输出程序。它负责查看“输出井”中是否有待输出的结果信息,若有则启动打印机把作业结果输出。 为什么可以提高效率?简单地说就是这么几件事:并行工作、代替操作、同时进行。

一个技术创新可以提高多少效率啊。

5、实现虚拟设备为什么可以提高系统效率:

SPOOL系统借助硬件的中断装置和通道技术使得中央处理器与各种外围设备以及各外围设备之间均可并行工作。操作系统采用多道程序设计技术,合理分配处理器,实现联机的外围设备同时操作。

作业执行时从磁盘上读写信息来代替从输入机和打印机的读写操作,不仅使多个作业可以同时执行,而且加快了作业的执行速度,提高了单位时间内处理作业的能力。在作业执行的同时还可利用输入机继续预输入作业信息和利用打印机输出结果,于是,整个系统可以是第一批作业的执行结果在打印输出,第二批作业正在处理,第三批作业信息正在预输入到磁盘的“输入井”中。

这种联机同时操作极大地提高了独占设备的利用率,也使计算机系统的各种资源被充分利用。

【操作系统】第七章 作业管理

本章考核知识点:1.作业和作业步 2.作业控制方式 3.批处理作业的调度及调度算法 4.批处理作业的控制 5.

交互式作业的管理

本章自学要求:理解计算机系统中把用户要求处理的一项工作称为一个作业,作业可分为批处理作业和交互式作业两大类;掌握操作系统是如何实现作业调度和控制作业执行的;理解作业高度与进程调度之间的关系以及各自的职责。

本章重点是:两种控制方式;批处理作业的调度算法。

________________________________________

一、作业和作业步(识记)

1、作业:我们把用户要求计算机系统处理的一个问题称为一个“作业”

2、作业步:任何一个作业都要经过若干加工步骤才能得到结果,我们把作业的每一个加工步聚称为一个“作业步”。

________________________________________

二、作业控制方式(领会)

1、作业控制方式:把用户根据操作系统提供的手段来说明加工步聚的方式称为“作业控制方式”。 包括批处理方式和交互方式。

批处理方式 老板指着伙计说:你先去买一批货回来,然后把会议室打扫干净,接着去托儿所把我儿子接回家,不许偷懒。回头我再检查你的工作。

交互处理方式 教官对着学员命令道:立正!学员马上就得立正。教官又命令:卧倒!学员不能不照办,如果做得不好,教官很可能让他重做。

2、批处理控制方式:也称脱机控制方式或自动控制方式。用户使用操作系统提供的“作业控制语言”对作业执行的控制意图写好一份“作业控制说明书”,连同该作业的源程序和初始数据一同提交给系统,操作系统按照用户说明的控制意图来自动控制作业的执行。这种控制方式称为“批处理方式”,把采用批处理控制方式的作业称“批处理作业” 。

3、交互控制方式:也称联机控制方式。用户使用操作系统提供的“操作控制命令”来表达对作业执行的控制意图。用户通过逐条输入命令,操作系统把命令执行情况通知用户并让用户再输入下一条命令,以控制作业执行直到结束 。这种方式也适合于终端用户使用。采用交互控制方式的作业称为“交互式作业”。对于来自终端的作业也称为“终端作业"

________________________________________

三、批处理作业的调度及调度算法(综合应用)

1、批处理作业:采用批处理控制方式的作业称为“批处理作业”

2、批处理作业进入系统时必须提交:源程序、运行时的数据、用作业控制语言书写的作业控制说明书。

3、批处理作业的输入:操作员只要用“预输入命令”启动SPOOL系统中的“预输入程序”工作就可把作业流中的作业信息存放到“输入井”中。等待系统的调度。

4、批处理作业调度:操作系统根据允许并行工作的道数和一定算法从“输入井”选取可以装入主存储器的作业。 这项工作就是“作业调度”。实现这项工作的程序就是“作业调度程序”。

5、作业调度程序从“输入井”选取作业的必要条件: 即系统现有的尚未分配的资源可以满足被选作业的资源要求。 当现有资源可以满足“输入井”中多个作业需求时,选取哪个作业取决于调度算法。

6、常用的作业调度算法(能够用这几种算法解应用题:结合作业调度的必要条件,运用各种作业调度算法,确定作业被选取的次序以及计算作业的实际完成时间和周转时间等。)

先来先服务算法:最简单的算法,它按照作业进入“输入井”的先后次序来挑选作业,先进入的作业优先被挑选。这里要注意的是,被选中的作业首先要满足资源需求的必要条件。

计算时间短的作业优先算法:要求用户对自己的作业需要计算的时间预先作出一个估计,在作业控制说明书中加以说明。作业调度时依据在输入井中的作业提出的计算时间为标准,优先选择计算时间短且资源能得到满足的作业。

响应比最高者优先算法:响应比=等待时间/计算时间 计算时间短的作业容易得到较高的响应比。等时间长的也会得到较高响应比,这样可以解决计算时间长的作业总是被后推的问题。

优先数调度算法:为每个作业确定一个优先数,资源能满足且优先数高的作业优先被选取,当几个作业有相同优称数时,对这些具有相同优先数的作业再按照先来先服务算法进行调度。

均衡调度算法:根据作业对资源的要求进行分类,作业调度从各类作业中去挑选,尽可能地使得使用不同资源的作业同时进行执行。

7、作业调度与进程调度各自的职责和相互间的关系。

作业调度的职责是把输入井中的作业装入主存,此时系统为该作业创建一个进程,若有多个作业被装入主存储器,则同时存在多个进程。它们处于就绪状态(万事具备,只欠处理器)。

进程调度的职责就是选择当前可占用处理器的进程,进程运行中由于某种原因状态发生变化,当它让出处理器时,进程调度就再选另一个作业的进程去运行。

二者相互配合才能实现多道作业的并行执行。

________________________________________

四、批处理作业的控制(领会)

1、按用户提交的作业控制说明书控制作业的执行。

2、一个作业步的工作往往由多个进程的合作来完成。

3、一个作业步的工作完成后,继续下一个作业步的作业,直至作业执行结束。

________________________________________

五、交互式作业的管理 (领会)

1、交互式作业的特点: 交互式作业的特点主要表现在交互性上,它采用人机对话的方式工作。

2、交互式作业的控制:一种是操作使用接口,另一种是命令解释执行。

操作使用接口包括

? 操作控制命令

? 菜单技术

? 窗口技术

命令的解释执行

? 一类是操作系统中的相应处理模块直接解释执行;

? 另一类必须创建用户进程去解释执行。

3、终端作业的注册和注销。

终端用户控制终端作业的执行大致有四个阶段:终端的连接、用户注册、控制作业执行和用户退出。

【操作系统】第八章 进程同步与通信

本章考核知识点:1、进程的顺序性与并发性 2、与时间有关的错误 3、相关临界区 4、进程的互斥 5、进程的同步 6、进程通信 7、线程的概念

本章自学要求:理解“进程”是操作系统中的基本执行单位,在多道程序设计的系统中往往同时有许多进程存在,它们要轮流占用处理器。这些交叉执行的并发进程相互之间可能是无关,也可能是相关的。当并发进程竞争共享资源时会出现与时间有关的错误,因此,应采用进程同步与互斥手段使其合理使用共享资源,以保证系统安全。当进程间必须通过信息交换进行协作时,可用进程通信的方式达到目的。

重点是:分析与时间有关的错误;用PV操作实现进程的同步与互斥;用信箱实现进程通信。

一、进程的顺序性与并发性(领会)

有人说,在程序中不是有跳转语句和重复语句,怎么就是顺序执行?注意,这里是指进程在处理器中的执行,因为处理器每次只能执行一个操作,因此每条指令必须按顺序进入CPU执行,假使有一条指令是跳转的,那么执行本指令后,会取出跳转目的地址的指令进入CPU运行,这个顺序是程序规定的。所以对CPU而言,进程总是按顺序执行。

进程是一个程序在一个数据集合上的一次执行,同一个程序和同一个数据集的运行结果必然是相

同的。这就是可再现性。

________________________________________

同时执行并不是真的同时,因为任一时刻CPU中只能有一个进程运行。

1、进程的顺序性:任何进程在顺序的处理器上的执行是严格按照顺序进行的,这就是进程的顺序性。当一个进程独占处理器顺序执行时,具有两个特性:一、封闭性 二、可再现性。

2、进程的同时执行:在多道程序设计系统中,一个进程的工作没有全部完成之前,另一个进程就可以开始工作,它们的执行在时间上重迭的,我们把它们称为是“可同时执行的”。

3、进程的并发性:若系统中存在一组可同时执行的进程,则说该组进程具有并发性,并把可同时执行的进程称为“并发进程” 。

4、并发进程间的关系:并发进程相互之间可能是无关的,也可能是交往的。如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,即它们是各自独立的,则这些并发进程相互之间是无关的。如果一个进程的执行依赖其他进程的执行,则这些并发进程之间是有交往的。

________________________________________

二、与时间有关的错误(简单应用)

1、并发进程的执行速度取决于自身和进程调度策略。一个进程运行时会被中断,且断点是不固定的,一个进程被中断后,哪个进程可以运行,被中断的进程什么时候占用处理器,是与进程调度策略有关的。因此进程的执行速度不能由自己决定。

2、并发进程交替使用共享资源时会出现与时间有关的错误。 由于共享资源的原因,加上进程并发执行的随机性,一个进程对另一个进程的影响是不可预测的。造成不正确的因素与进程占用处理器的时间、执行的速度以及外界的影响有关。因此被称为与时间有关的错误。

3、分析并发进程中与时间有关的错误,请理解教材上的例子。

________________________________________

三.相关临界区(领会)

1、临界区的定义:并发进程中与共享变量有关的程序段称为“临界区”

2、什么是相关临界区: 相关临界区是指并发进程中涉及到相同变量的那些程序段。

3、对相关临界区的管理要求。

? 1)一次最多让一个进程在临界区执行,当有进程在临界区时其他想进入临界区执行的进程必须等待。

? 2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限地逗留在自己的临界区。

? 3)不能强迫一个进程无限地等待进入它的临界区,即有进程退出时应让一个等待进入临界区的进程进入它的临界区。

________________________________________

四、进程的互斥(综合应用)

1、进程互斥的含义:进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。

PV操作是两个过程,由他们两个来控制一个信号S,假设S是红灯的个数。

每个进程进入临界区前都要先执行P操作。退出临界区时执行V操作。用下面的比喻很容易理解:

临界区门前有棵树(S)

用来挂红灯

进程想进CPU的门

先得上树取盏灯(调用一次P操作)

取下一个去敲门(S=S-1)

如果树上没灯取(S≤0)

树说欠你一盏灯(S为负时)

没辙只好外边排队等(Wait(S))

得灯进程续运行

运行完了要出门(调用一次V操作)

马上还回一盏灯(S=S+1)

若有进程在催债(S≤0)

放个进去事完成(Release(S))

2、实现进程互斥的工具--PV操作。

PV操作是由两个操作,即P操作和V操作组成。P操作和V操作是两个在信号量上进行操作的过程。假定用S表示信号量则把这两个过程记作P(S)和V(S),它们的定义如下:

Procedue P(Var S: Semaphore);

begin S:=S-1;

if S<=0 then R(S)

end; {V}

为了确保PV操作自身的正确执行,因此P(S)和V(S)操作中不可中断,这种不可被中断的过程称为“原语”。

3、用PV操作管理相关临界区的一般形式

? 一个信号量与一组涉及共享变量的相关临界区联系起来,信号量的初值定为“1”

? 任何一个进程要进入临界区前先调用P操作,执行临界区的操作后,退出临界区时调用V操作。

? 由于信号量的初值为“1”,P操作起到了限制一次只有一个进程进入临界区的作用,其余进程欲进入临界区必须符合对临界区管理的第一个要求,即一次最多让一个进程在临界区执行。进程退出后执行V操作,若有进程在等待则释放一个进程,这样就达到了对临界区管理的第二个和第三个要求(即不能无限逗留也不能无限等待)。

4、分析进程互斥问题并用PV操作实现进程互斥。

仔细领会教材中的例子,关于PV操作,在考试中出现的可能性极大,但是难度基本不超过教材上例题. 进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。

在写程序时要注意以下几点:

? PV操作中间只执行相关临界区内容,不能把临界区外的程序段放到PV操作中间,否则会降低系统并发执行能力或引起系统瘫痪。

? 另外当有条件语句时要注意在临界区内每个条件分支出口均要调用V操作,否则会违反对临界区管理的第二、三两个要求。

________________________________________

五、进程的同步(综合应用)

1、进程同步的含义:进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。

“生产者”与“消费者”是同步问题的典型例子。

这里有两个消息量:一是“缓冲器里有物品”,二是“可把物品存入缓冲器”,这两个消息量对应需要两个信号量SPut和SGet。SP的初始值为1,如果初始时可用的缓冲器为n个,则SP=n;SG的初始值为0。 生产者进程调用P(SP)和V(SG),

消费者进程调用P(SG)和V(SP),根据SG和SP的值来决定是否可以存或取物。

2、正确使用PV操作实现进程同步。

? (1)用一个信号量与一个消息联系起来,当信号量的值为0时表示期望的消息尚未产生,当信号量值为非0时表示期望的消息已经存在。

? (2)在用PV操作实现同步时,一个信号量与一个消息量联系在一起,当有多个消息时必须定义多个信号量;测试不同的消息是否到达或发送不同消息时,应对不同的信号调用P操作或V操作。

3、使用PV操作实现进程同步与互斥的混合问题。

进程的同步与进程的互斥都涉及到并发进程访问共享资源的问题。可以看到进程的互斥实际上是进程同步的一种特殊情况。若干进程互斥使用资源时,一个等待使用资源的的进程在得到占用资源的进程发出“归还资源”的消息(调用了V操作)后,它就可去使用资源。因此,互斥使用资源的进程之间实际上也存在一个进程依赖另一个进程发出信息的制约关系。所以,也把进程的互斥与进程的同步称为进程的同步。

4、PV操作实现进程同步与互斥时怎样定义信号量,信号量的物理含义及其作用

利用PV操作实现进程互斥时,用一个信号量与一组相关临界区对应,这些进程在同一个信号量上调用P操作和V操作来实现互斥。

利用PV操作实现进程同步时,每一个消息与一个信号量对应,进程在不同信号量上调用P操作以测试自己需要的消息是否到达,在不同信号量上调用V操作把不同的消息发送出去。

信号量的物理含义:

? S>0时表示可使用的资源数或表示可使用资源的进程数。

? S=0时表示无资源可供使用或不允许进程进入临界区。

? S<0时表示等待使用资源的进程个数或表示等待进入临界区的进程个数。

根据PV操作的性质,任何进程在使用共享资源前应调用P操作。当有可以使用的资源或允许使用资源时(S>0),调用P(S)后不会成为等待,进程可以使用资源。当无资源可使用或不允许使用资源时(S≤0)调用P(S)后必然等待。任何进程可调用V操作来归还共享资源的使用权,当S>0时调用V(S)后使可用资源数加1或使可用资源的进程数加1(也就是树上多挂上一个红灯笼)。当S≤0时调用V(S)后将释放一个等待使用资源或者释放一个等待进入临界区者。

________________________________________

六、进程通信(领会)

1、进程通信的含义:通过专门的通信机制实现进程间交换大量信息的通信方式称为“进程通信”

2、实现进程通信的基本原语:有两条:“send(发送)”和“receive(接收)”原语。

3、利用信箱通信时“发送”和“接收”原语的功能。

? send(N,M) 功能:把信件M送到指定的信箱N中。

? receive(N,X) 功能:从指定信箱N中取出一封信,存放到指定的地址X中。

4、信箱的基本结构:一个信箱由“信箱说明”和“信箱体”两部分组成。

________________________________________

七、线程的概念(识记)

线程是进程中可独立执行的子任务,一个进程中可以有一个或多个线程,每个线程都有一个唯一的标识符。 支持线程管理的操作系统有Mach,OS/2,WindowsNT,UNIX等。

【操作系统】第九章 死锁

本章考核知识点:1、死锁的产生 2、死锁的防止 3、死锁的避免4、死锁的检测

本章自学要求:理解“死锁”影响系统的可靠性。死锁的产生与进程对资源的需求、进程的执行速度、资源的分配策略有关。系统应采用一定的策略实现资源分配以保证系统的安全。

本章重点是:死锁的防止和避免。

________________________________________

一、死锁的产生(领会)

话说狼GG和狼MM面对面走上一根独木桥。

狼GG说:呵呵,小MM,我已经占领了这座桥的一半,你不如退出去让我先过去吧。 狼MM说,哼哼,老兄,我也占了这座桥的一半,你咋不让给我?

狼GG和狼MM互不相让,都在等对方先让步。结果两个都过不了河。等着猎人来处理后事了。

1、什么叫死锁: 若系统中存在一组进程(两个或多个进程),它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,则说系统出现了“死锁”。或说这组进程处于“死锁”状态。

2、引起死锁的因素:死锁的出现除了与资源的分配策略有关外,也与并发进程的执行速度有关,即操作系统对资源管理不得当或没有顾及进程并发执行时可能出现的情况,则就可能形成死锁。

________________________________________

二、死锁的防止(简单应用)

我们把桥的一半看作一个资源的话,那么,当狼MM占用了其中一个资源后,狼GG就只好等待了。 狼GG狼MM各自占有了一段资源又在等另外的资源,又不肯放弃自己占有的资源。 他们又不能把对方踢下河去,把另一段资源抢过来自己用。

只好互相等待了。

这4个条件是必要条件而不是充分条件,意思是,只要发生死锁,那么这四个条件必然都成立。反之则不然,有时候即使四个条件都满足,那也不一定发生死锁。(从资源分配图中可以分析得到,即使形成循环等待资源,也不一定形成死锁。)

1、系统出现死锁必然同时保持的四个必要条件:

? 1)互斥使用资源

? 2)占有并等待资源

? 3)不可抢夺资源

? 4)循环等待资源

2、死锁的防止策略:要防止死锁形成,只要采用的资源分配策略能使上述4个条件中有一个条件不成立就可以了。

1)破坏互斥使用资源的条件经常是行不通的。因为资源本身特性就是互斥使用的。

2)要破坏“占有并等待条件”则可以采取两种办法:静态分配和释放已占资源。

静态分配也称为预分配资源,要求每一个进程在开始执行前就申请它所需要的全部资源,仅当系统能满足进程的资源申请要求且把资源分配给进程后,该进程才能开始执行。

释放已占资源就是指进程申请资源时必须没有占用资源,如果已经占用了资源就要先归还所占的资源再申请。

3)实现可抢夺式分配:如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足(已被其它进程占用)必须等待时,系统可以抢夺该进程已占有的资源。

4)实现按序分配:把系统中所有资源排一个顺序,对每一个资源给一个确定的编号,规定任何一个进程申请两个以上的资源时,总是先申请编号小的资源,再申请编号大的资源。

________________________________________

三、死锁的避免(简单应用)

死锁的避免不同于死锁的防止,死锁的防止是采用某种分配策略后,系统就不会产生死锁,这好比是你打过了某种预防针,再也不会得那种病。而死锁的避免是没有打预防针,但是通过其他办法,避免得病。因此有“安全状态”的说法,对应的,当然也有不安全状态。就像人都有得病的可能,不必任何病都打预防针。只要注意防病,仍然可以安全健康的生活。

1、安全状态:如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于“安全状态”。

2、区分死锁的避免与死锁的防止:当采用了防止死锁的资源分配策略后,系统中就不会形成死锁。但是可以防止死锁的资源分配策略中,有的只适用于对某些资源的分配,有的会影响资源的使用效率。这时可用使用死锁的避免。

死锁的避免是解决死锁的另一种方法,它不同于死锁的防止。在系统中不采用防止死锁的资源分配策略,而是估计到可能有死锁发生时避免死锁的发生。

3、银行算法是怎样避免死锁的:

银行家算法是这样的:

1)当一个用户对资金的最大的需求量不超过银行家现有的资金时就可以接纳该用户。

2)用户可以分期贷款,但贷款的总数不能超过最大需求量。

3)当银行家现有的资金不能满足用户的尚需贷款时,对用户的贷款可推迟支付,但总能使用户在有限的时间里得到贷款。

4)当用户得到所需的全部资金后,一定能在有限的时间里归还所有资金。

我们把操作系统看作是银行家,操作系统管理的资源相当于是银行家管理的资金,则银行家算法就是:

1)当一个进程首次申请资源时,测试该进程对资源的最大的需求量,如果不超过系统现存资源时就可以按他的当前申请量为其分配资源。 否则推迟分配。

2)进程执行中继续申请资源时,测试该进程占用资源和本次申请资源总数有没有超过最大需求量。超过就不分配,没超过则再测试现存资源是否满足进程还需要的最大资源量,满足则按当前申请量分配,否则也推迟分配。

总之,银行家算法要保证分配资源时系统现存资源一定能满足至少一个进程所需的全部资源。这样就可以保证所有进程都能在有限时间内得到需要的全部资源。这就是安全状态。

(银行家算法在操作系统的实践考试中可能会用到)

________________________________________

四、死锁的检测(领会)

死锁的检测

就是既不打预防针,也不去避免得病,而是经常去体检,如果发现有病了就治疗。这是一种事后解决的办法,也算是解决死锁问题的一条途径。但这毕竟要付出较大代价.

1、什么是死锁的检测:对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者。这样可能会出现死锁,系统定时运行一个“死锁检测程序”,如果检测到死锁发生,则必须先解除死锁再继续工作。

2、怎样实现死锁的检测:1、每个资源当用中只有一个资源2、资源类中含有若干个资源。

3、死锁的解除:一般采用两种方式来解除死锁,一种是终止一个或几个进程的执行以破坏循环等待;另一种是从涉及死锁的进程中抢夺资源。

检测死锁和解除死锁都要付出很大代价。所以用死锁检测的方法解决死锁问题只适用于不经常发生死锁的系统中。

【操作系统】第十章 UNIX系统

本章考核知识点:1.UNIX系统结构 2.UNIX系统的进程 3.UNIX系统的存储管理 4.UNIX系统的文件系统

5.UNIX系统的I/O系统

自学要求:在学习操作系统基本工作原理的基础上,了解一个具体操作系统UNIX的实现方法。

本章不是重点章,学习时注意结合前面章节的内容来领会。

________________________________________

一、UNIX系统结构(领会)

1、UNIX的层次结构。

UNIX可以分为内核层和外壳层两部分。

内核层是UNIX操作系统的核心,它实现存储管理、文件管理、设备管理、进程管理等功能并为外壳层提供系统调用。

外壳层为用户提供各种操作命令(UNIX把它们称为shell命令)和程序设计环境。外壳层由shell解释程序、支持程序设计的各种语言(如C、PASCAL和BASIC等)、编译程序和解释程序、实用程序和系统库等组成。

2、UNIX系统的主要特点。

? 短小精悍

? 简洁有效

? 易移植

? 可扩充

? 开放性

3、UNIX的程序员接口和用户接口。

UNIX的程序员接口就是其内核提供的系统调用,它是内核为外壳用户程序提供的服务界面,也就是操作系统支持用户程序正常工作的接口。

系统调用是用户程序请求操作系统为其服务的唯一形式,UNIX规定用户程序用“trap”指令请求服务。 UNIX的中粗略地分为三类:文件操作类、进程控制类和信号与时间类。

shell命令是终端用户与UNIX的接口。因为用户不能直接使用系统调用,而只能使用外壳层的用户程序。一个在终端上登录成功的用户可以用UNIX提供的shell命令来得到用户程序。

________________________________________

二、UNIX系统的进程(领会)

1、进程的组成:在UNIX系统中进程由三部分组成:进程控制块、正文段和数据段。

2、进程的状态及状态转换:UNIX进程在执行过程中由于各种原因使其状态 不断发生变化,且当内存空间不够时可把一些进程换出到磁盘上,需要时又可把它换进内存。进程的状态有运行状态、就绪状态、睡眠状态、创建状态、僵死状态。

3、Shell进程:UNIX系统初始起动时为每个用户创建一个shell进程,每个shell进程等待用户输入命令。当shell进程接收了用户命令后再创建子进程去解释执行命令,子进程在执行过程中可以按需要再创建子进程。形成一棵进程树。

4)进程的创建: 一个进程总是使用系统调用fork来创建新进程,形成父子关系。父进程与子进程可以并发执行,子进程可以共享父进程的正文段和已打开的文件。

5、进程调度算法及其实现:在内存就绪的进程中,当处理器空闲时可以竞争处理器,UNIX系统对进程的调度采用动态优先数调度算法,优先数大的进程其优先权低,进程调度总是让优先数小(优先权高)的进程先占用处理器。

6、利用管道设施pipe实现进程间的通信:UNIX的管道机制pipe是连接在进程间的共享文件,称为pipe文件。通过管道机制对进程读写pipe文件进行操作,使得一个进程可以把信息写入pipe文件,别的进程可以从pipe文件中读取信息,实现进程间的通信。

________________________________________

三、UNIX系统的存储管理(领会)

1、对换(Swapping)技术:这就是前面我们所学的虚拟存储器在UNIX中的应用。磁盘上设置开辟一个足够大的区域,为对换区。当内存中的进程要扩大内存空间,而当前的内存空间又不能满足时,则可把内存

中的某些进程暂换出到对换区中,在适当的时候又可以把它们换进内存。因而,对换区可作为内存的逻辑扩充,用对换技术解决进程之间的内存竞争。 UNIX对内存空间和对换区空间的管理都采用最先适应分配算法。

2、虚拟页式存储管理技术。 UNIX把进程的地址空间划分成三个功能区段:系统区段、进程控制区段、进程程序区段。系统区段占用系统空间,系统空间中的程序和数据常驻内存。其余两个区段占用进程空间,是进程中非常驻内存部分。 通过页表和硬件的地址转换机构完成虚拟地址和物理地址之间的转换。 ________________________________________

四、UNIX系统的文件系统(领会)

1、UNIX系统中的逻辑文件采用流式文件组织

在UNIX系统中,文件的逻辑结构是由一串顺序的字符组成的流式文件,即用户文件是不划分记录的。文件的物理结构是采用索引结构方式,即把文件按一定的长度分块后存放到磁盘上。UNIX的文件系统分成基本文件和可装卸的子文件系统两部分。

2、UNIX的树形目录结构: UNIX采用树形目录,因而从用户角度来看,UNIX文件系统是一个倒树形的层次结构。UNIX把普通文件、目录文件保存在磁盘上,一个具体的文件可以用路径名确定。磁盘被分成块(扇区),每块为512个字节或1K字节。。

3、UNIX系统中的物理文件采用索引结构组织。 UNIX中的文件在磁盘上是按索引结构组织的,每个文件都有一张索引表记录文件占用的磁盘空间块号。

4、UNIX的索引节点。UNIX中每个文件有一个唯一的索引节点,索引节点静态地存放在磁盘上,故称为磁盘索引节点。当建立一个新文件时就要为该文件分配一个索引节点号和存放索引节点的盘空间。

活动索引节点是为了加快文件访问速度而在内存中对磁盘索引节点进行复制而成。若要对文件进行各种操作,则必须把相应的磁盘索引节点复制到活动索引表中,这样才能根据文件的控制和管理信息实现相应的操作。在活动索引表中的节点被称为活动索引节点。

5、UNIX系统中基本文件操作:通过系统调用实现,文件操作类的系统调用主要有creat(建立)、open(打开)、read(读)、write(写)、close(关闭)、link(链接)、unlink(删除)等。

6、文件存储空间--磁盘空间的管理(参阅第五章): UNIX中的每一个文件系统(基本文件系统或子文件系统)的磁盘空间可分成几个部分: 一、引导块 二、超级块 三、索引节点区 四、文件存储区。 UNIX中可分配的磁盘空间有两类:一类是索引节点区,另一类是存放文件的存储区UNIX对这两类存储空间采用不同的管理方法。

________________________________________

五、UNIX系统的I/O系统(领会)

1、块设备和字符设备

块设备以块为单位每次与内存交换一组信息。字符设备以字节为单位与内存交换信息。块设备是用来存储信息的设备,进程可以从块设备上读取所需的信息,也可以把信息保存到块设备上。字符设备是计算机用来接收外部信息或把处理好的信息传向外部的设备。 块设备包括硬盘、软盘、磁带等,字符设备包括终端、打印机等。

2、设备文件: UNIX系统把设备也当作文件来对待,每个设备都有一个文件名,并对它像文件那样进行操作。

3、缓冲技术:这个技术就是前面我们学过的虚拟设备(SPOOL技术)在UNIX中的实际应用UNIX采用缓冲技术实现设备的读写操作。对写操作,驱动程序分配一个“缓冲区”,先从用户空间把信息拷贝到缓冲区,再从缓冲区输出到设备;对读操作,先从设备接收信息到缓冲区,再将信息拷贝到指定的用户空间。这样做的目的是为了减少启动设备的次数,提高整个系统的吞吐率。

4、块设备的管理: 块设备来与文件系统之间有一个接口实现对缓冲区的管理,通过启动驱动程序完成相应的打开、关闭、读和写等操作。

5、字符设备的管理: 字符设备管理为各种字符设备设置了一些反映它们各自工作特性的数据结构:开关

表、设备表和I/O队列等。字符设备工作速度低,一次输入输出要求传送的字节数少而且不固定。所以不适宜采用块设备管理中的缓冲技术,而是采用缓冲区容量较小的、易管理的字符缓冲技术。

相关推荐