第一章1、操作系统的地位紧贴系统硬件之上,所有其他软件之下,是其他软件的共同环境。2、操作系统的作用在整个计算机系统中,操作系统充当“总管家”和“服务生”的角色,即操作系统是管理硬件资源协调后台工作的“总管家”,同时又是提供用户与计算机交互接口的“服务生”。3、什么是操作系统管理所有的设备以及提供给用户具有简易硬件接口的程序。4、作为扩展机器的操作系统的功能提供给用户的一个扩展的机器或者虚拟的机器等价物,这样就比基本的硬件要易于编程。5、作为资源管理器的操作系统的功能记录下谁在使用哪个资源、批准资源请求、统计使用情况以及协调来自不同程序和用户的请求冲突。6、操作系统历史第一代真空管和插接板第二代晶体管和批处理系统第三代IC和多道程序第四代个人计算机7、为何引入多道程序为了让系统资源的到比较充分的利用。8、多道程序的特点多道;宏观上并行;微观上并行。第二章1、进程模型(了解一下,可能考选择或判断,不用背出来)在该模型中,计算机中所有可运行软件,有时也包括操作系统,被组织成若干顺序进程(sequentialprocess),简称为进程(process)。进程就是一个正在执行的程序,包括程序计数器、寄存器和变量的当前值。从概念上说,每个进程都有其自己的虚拟CPU。其关键思想是:进程是某种类型的活动。它有程序、输入、输出和状态。而多道程序(multiprogramming)就是在几个进程之间快速的来回切换。由于CPU在进程间来回切换,进程执行其计算的速率并不一致,甚至同一个进程再次运行时其速率也会不同。因此,进程的编写不能包含固定记时的假设。当进程有此类严格的实时需求时,也就是特定事件必须在指定的毫秒内发生,那么必须采用特殊的措施来确保其发生。不过,通常大部分进程并不受基本的CPU多道程序或者不同进程的相对速度的影响。单处理器可以被几个进程所共享,使用某些调度算法来确定什么时候停止一个进程的工作,并且给另一个进程服务。2、进程状态——反映进程执行过程的变化(重点内容)三种状态:执行状、就绪状、阻塞态。3、进程控制块(了解一下包含哪些块,不用背)为了实现进程模型,操作系统保存着一张进程表(processtable),每个进程有一项(通常称作进程控制块ProcessControlBlock,PCB)。包含了进程的状态、其程序计数器、堆栈指针、内存分配、打开文件的状态、账目和调度信息以及所有其他与进程有关的、必须保存的东西。这样,当进程从当进程从运行态切换到就绪态或者阻塞态之后,稍后可以重启,就像从来没有停止过一样。4、线程的基本模型(p46-p47看一下)进程的另一个概念就是执行的线程,一般简称为线程(thread)。线程有程序计数器记录接下来执行哪一条指令;也有寄存器用于保存当前工作变量;还有包含执行的历史记录的堆栈,其中一帧用于每个还没有返回的进程调用。尽管线程必须在某些进程中执行,但是线程和它的进程是不同的概念,可以分别对待。进程习惯于将资源组合到一起,而线程是在CPU上调度执行的实体。进程中不同的线程并没有像不同的进程那么独立。所有的线程严格地使用同一地址空间,也就是说它们共享相同的全局变量。由于每个线程都可以访问进程地址空间中的所有内存地址,因此,一个线程可以读、写甚或清除掉另一个线程的堆栈。线程间是没有保护的。与传统进程类似,线程也有下列几种状态:运行、阻塞、就绪或者终止。运行的线程占有CPU,并且是活动的。阻塞的线程等待某个时间来解锁。一个线程可以阻塞等待外部事件的发生,也可以有某些其他的线程来解锁它。就绪的线程是被安排运行的线程,而且一旦轮到它即可马上运行。每个进程的内容:地址空间、全局变量、打开的文件、子进程、挂起的警告信号、信号和信号处理程序、账户信息。5、为什么会有进程(p46-p47看一下)6、线程与进程的关系进程就是执行的线程。7、进程间通信的三个问题(不用背,要知道什么意思,哪三个问题)p57(1)某个进程如何可以传递信息给另一个。(2)必须确保两个或多个进程在进行关键活动(假设两个进程都试图抢夺最后1MB内存)时不至于彼此陷住。(3)第三个问题与固有的顺序有关:如果进程A产生数据,而进程B打印这些数据,在B开始打印之前,B必须等待A产生某些数据。8、什么是临界区p58对共享资源进行访问的程序段。9、什么是互斥不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥。10、实现互斥的方法p59(不用背程序,要知道方法)(1)禁止变量(2)锁变量:是错误的方法(3)严格轮换法:是有问题的方法,临界区外进程是阻塞的(4)Peterson解法:是正确的(5)TSL指令:是正确的可以解决互斥,且这些方法使用的是忙等待的方法;而信号量是阻塞等待的方法。10、信号量p63(1)一开始赋初值,初始化(只可能是0或1,不可能是负数)(2)不能直接读取他的数值,只能有down和up两个原子操作,可以解决同步问题和避免竞争条件(例子:生产者-消费者,程序不好,但要看一下它是如何解决的,downup是如何操作的)。11、调度算法的目标p78要选择怎样的算法,要考虑的问题不同;不同的系统考虑的问题不一样,如:批处理系统考虑吞吐量,交互式系统考虑响应时间等。12、具体的调度算法(结合习题,具体讲过,具体看批处理和交互式系统的调度,了解一下就可)先来先服务,最短作业优先,时间片轮转等(知道原理,才能知道怎么做)第三章1、为什么产生死锁p93和资源争取相关,和资源特点有关,和进程的行为有关,和系统的行为有关2、产生死锁的四个必要条件p93(1)互斥条件(2)占有和等待条件(3)非剥夺条件(4)循环等待条件3、掌握死锁避免的方法——银行家算法(单、多都要看,结合作业)p100安全状态:用银行家算法来算。不安全状态4、掌握死锁预防的方法p103(1)破坏互斥条件(2)破坏占有和等待条件(3)破坏不可抢占条件(4)破坏循环等待条件第四章(重点掌握分页)1、存贮管理的方法(4种)分区(连续分配);分页(离散分配);分段(离散分配);分段与分页相结合(段页式)。2、固定分区(知道思想,不用背)实现多道程序的最简单方法是直接把内存划分成n个(可能是不均等的)分区。例如,可以在系统启动时手动划分。当一个作业到达时,可以放到能容纳它的最小分区的输入队列中。在该方案里,分区大小是固定的,没有被作业使用的分区空间就不得不浪费掉了。3、CPU利用率公式p111(作业做过)4、多道程序设计带来的两个必须解决的重要问题重定向:多道程序系统中,内存通常由多个进程共享;进程经常在内存和磁盘间调入、调出——因此,无法确定程序将会载入到内存的什么地方;保护:多道程序系统中,每个进程要被保护以免受到其他进程的干扰,未经许可,一个进程不能访问其他进程的内存空间。变量、程序代码的地址并不是绝对的必须保持一个程序在其他进程的分区之外4、交换,即可变分区(知道思想)p113有两种通用方法可用于存储器管理,(部分)取决于可用的硬件。最简单的策略称为交换(swapping),它将每个进程全部载入,运行一段时间,然后放回磁盘上。另一个策略称为虚拟内存(virtualmemory),它可以使程序即使只有部分位于内存中时也可以运行。可变分区的数量、位置、大小随着进程的出入是动态变化的。由于可变分区不再受到固定数目分区可能太大或太小的约束,提高了内存的利用率,但它也使得内存的分配和释放更加复杂,同时还要记录各个内存块的使用情况。5、链表(可变分区中的方法)中采用的算法(结合作业)p115首先适配法、下次适配法、最佳适配法、最差适配法6、分页(知道思想)进程和内存都按页来划分,在采用虚拟存储器的基础上,一些页面不占内存,这样的话,再访问这些页时,它不在内存中,就产生了缺页,缺页时再把页面调入到内存中。注:涉及到地址变换(要掌握该过程,结合作业,虚拟地址变换成物理地址)p117,查找页表的过程要会(先划分为页号页表,再查)7、页表(各个大致思想了解一下)传统页表:最简单的设计是使用由一组快速硬件寄存器组成的单一页表,每个虚页一项,按虚页号索引。在一个进程启动时,操作系统将进程的页表装入寄存器,在进程运行期间不必因为页表而访问内存。该方法的优点是直观并且在映射时不需要访问内存,其缺点是非常昂贵。而且,每次内容切换时都要载入整个页表而损害性能。另一种极端是把页表全部放在内存中。此时,需要的全部硬件只是一个指向页表起始地址的寄存器。该设计使得在上下文切换时,只需重新载入该寄存器就可以改变内存映射。当然,它的缺点是执行每条指令时都需要一次或多次访问内存以读取页表项。因此,该方法很少以最单纯的方式使用,下面我们将研究一些比它的性能要好得多的变种多级页表:为了避免始终在内存中保存庞大的页表,许多计算机中采用了多级页表。多级页表的的秘诀就是避免把全部页表一直保存在内存中。特别是那些不需要的页表不应该保留。倒置页表:在该设计中,实际内存中的每个页帧对应一项,而不是每个虚拟地址空间的页对应一项。例如,64位虚拟地址,4-KB的页,以及256MBRAM,则虚页有264/212=252个、页帧有228/212=65536个。反向页表以页帧号作索引,只需65536项。每项记录哪些(进程、虚页)位于页帧中。在虚拟地址空间比物理空间大很多的时候,反向页表节省了大量空间,但是它们有一个致命弱点:虚拟到物理的转换非常困难。解决方法就是使用TLB改进:使用散列索引技术。虚页号根据一个哈希函数生成散列值,此值作为页表的索引,相同散列值的虚页链接在一起。8、页面置换算法(结合作业和例题,要掌握)9、分段的基本思想p142分段是按逻辑单位来分的,分页是按物理单位来分的。程序划分为若干个段,每个段定义了一组逻辑信息,可以是一张表,一个堆栈等。每个段从0编址,段长度不等整个程序的地址空间由多个段组成,是二维的。即逻辑地址由段号和段内地址组成。10、分段的优点p143(1)能简化伸缩的数据结构。(2)允许程序修改并独立重新编译,不需整个程序集重新链接,链接例程的操作就可以大大地简化。(3)有助于在几个进程之间共享例程和数据。(4)不同的段可以有不同种类的保护。第五章1、硬件设备的基本原理、设备控制器是怎么回事情p153硬件设备的基本原理:按设备使用可共享性,分为(1)独占设备。任一指定的时刻只能让一个进程使用的设备。如打印机、磁带驱动器等(2)共享设备。能够同时让许多程序使用的设备。如磁盘。(3)虚拟设备。设备本身是独占设备,而经过某种技术处理,可以把它改造成共享设备,同时分配给多个进程。按设备的信息组织方式,可分为两类:(1)块设备:把信息存储在固定长度的块中,每块都有其自己的地址。一般块的大小在512至32768字节之间。块设备的基本特征是每个块都能独立地读写。磁盘是最典型的块设备。(2)字符设备:字符设备发送或接收一个字符流,不考虑任何块结构。因此不编址,没有任何寻址操作。打印机、网络接口等是字符设备。通常输入输出类设备都是字符设备,而存储类设备都是块设备。但有些设备不能按此分类,如时钟。设备控制器:I/O单元一般由两部分组成:(1)机械部分;(2)电子部分。电子部分称作设备控制器或适配器——很多控制器可以连接多个相同的设备。控制器的任务,以磁盘为例,从磁盘驱动器出来的是比特流,控制器要负责:(1)把串行位流转换为字节块;(2)进行必要的校验工作。在对块验证检查和并证明无误后,再将它复制到主存中。2、软件的目标p160设备独立性:指以相同的方法访问文件和设备,而与其物理特性无关。如果系统采用一组调用写文件,而使用另一组调用写控制台(终端),那么就不具有设备无关性。3、三种输入输出的方式p161程序控制I/O;中断驱动I/O;使用DMA的I/O。4、软件层次的判断(结合作业)用户级I/O软件;与设备无关的操作系统软件;设备驱动程序;中断处理程序;硬件。5、磁盘(结合作业)p179磁盘格式化(看柱面斜进和交错编辑),磁盘臂调度算法(看三个算法的运算)第六章1、为什么会有文件系统的出现p217从逻辑和物理两方面看文件由操作系