您的位置:首页 > 其它

操作系统学习笔记

2018-02-28 14:34 260 查看

http://c.biancheng.net/cpp/html/2639.html

1

操作系统概述

1.1 操作系统的基本概念

操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合

1.2 操作系统的特征

并发(Concurrence)

并发是指两个或多个事件在同一时间间隔内发生。

注意同一时间间隔(并发)和同一时刻(并行)的区别。在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每一时刻,单处理机环境下实际仅能有一道程序执行,

共享(Sharing)

资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可分为以下两种资源共享方式:

1) 互斥共享方式

系统中的某些资源,如打印机

2) 同时访问方式

允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即 “分时共享”。

3) 虛拟(Virtual)

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。拟处理器、虚拟内存和虚拟外部设备等。

利用多道程序设计技术,把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。

操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器(注:学到后续内容再慢慢领悟)。

4) 异步(Asynchronism)

在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

1.3 操作系统的目标和功能

操作系统作为计算机系统资源的管理者

1) 处理机管理

在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位

2) 存储器管理

存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,主要包括内存分配、地址映射、内存保护与共享和内存扩充等功能。

3) 文件管理

计算机中的信息都是以文件的形式存在的,文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。

4) 设备管理

主要包括缓冲管理、设备分配、设备处理和虛拟设备等功能。

操作系统作为用户与计算机硬件系统之间的接口

一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统服务。

1) 命令接口

可以将命令接口分为联机命令接口和脱机命令接口。联机命令接口又称交互式命令接口,用户通过控制台或终端输入操作命令,向系统提出各种服务要求.

用户每输入完一条命令,控制权就转入操作系统的命令解释程序,之后,控制权又转回到控制台或终端,此时用户又可以输入下一条命令。

脱机命令接口又称批处理命令接口,即适用于批处理系统

2) 程序接口

程序接口由一组系统调用命会(简称系统调用,也称广义指令)组成。

1.4 操作系统的发展与分类

手工操作阶段(此阶段无操作系统)

批处理阶段(操作系统开始出现)

1) 单道批处理系统

系统对作业的处理是成批进行的,但内存中始终保持一道作业。问题:高速的CPU便处于等待低速的I/O完成状态

2) 多道批处理系统

即同时把多个程序放入内存,并允许它们交替在CPU中运行

多道批处理是实现作业自动控制而无需人工干预的系统,而分时系统是实现人机交互的系统

分时操作系统

在操作系统中釆用分时技术就形成了分时系统。所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。

实时操作系统

为了能在某个时间限制内完成某些紧急任务而不需时间片排队,诞生了实时操作系统。

网络操作系统和分布式计算机系统

网络操作系统把计算机网络中的各台计算机有机地结合起来,

个人计算机操作系统

常见的有Windows、Linux和Macintosh等,

1.5 操作系统的运行机制

计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。

内核是计算机上配置的底层软件,包括;

1) 时钟管理

2) 2) 中断机制

3) 原语

4) 系统控制的数据结构及处理

1.6 中断和异常的概念

中断用来在核心态和用户态之间切换

中断(Interruption),也称外中断,指来自CPU执行指令以外的事件的发生

异常(Exception),也称内中断、例外或陷入(Trap),指源自CPU执行指令内部的事件,如程序的非法操作码

1.7 系统调用

系统调用就是用户在程序中调用操作系统所提供的一些子功能

1.8 操作系统的体系结构

操作系统在核心态应该提供什么服务、怎样提供服务?有关这个问题的回答形成了两种主要的体系结构:大内核和微内核。

微内核结构有效地分离了内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证了操作系统的可靠性。

1.9 本章疑难点

并行性与并发性的区别和联系

并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生。并发性是指两个或多个事件在同一时间间隔内发生。

特权指令与非特权指令

所谓特权指令是指有特殊权限的指令,由于这类指令的权限最大,如果使用不当,将导致整个系统崩溃。比如:清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等

访管指令与访管中断

访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。

2进程和线程管理

2.1 进程的概念和特征

进程(Process)的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。

进程控制块(Process Control Block, PCB)。系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段、相关数据段和PCB三部分构成了进程映像(进程实体)。

注意:PCB是进程存在的唯一标志!

进程的特征:

动态性,并发性,独立性,异步性,结构性。

2.2 进程的状态与转换

进程有以下五种状态,前三种是进程的基本状态。

1 运行状态

2 就绪状态

3 阻塞状态

4 创建状态

5 结束状态

2.3 进程控制

一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,它是一个不可分割的基本单位。

进程的创建

允许一个进程创建另一个进程。此时创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。此外,在撤销父进程时,也必须同时撤销其所有的子进程。

进程的终止

引起进程终止的事件主要有:正常结束,异常结束,外界干预。

进程的阻塞和唤醒

正在执行的进程,由于期待的某些事件未发生,则由系统自动执行阻塞原语(Block),使自己由运行状态变为阻塞状态。Block原语和Wakeup原语是一对作用刚好相反的原语,必须成对使用。

进程切换

进程切换是指处理机从一个进程的运行转到另一个进程上运行。

2.4 进程的组织 :控制块、程序段和数据段

进程控制块

进程创建时,操作系统就新建一个PCB结构,它之后就常驻内存,任一时刻可以存取, 在进程结束时删除。PCB是进程实体的一部分,是进程存在的唯一标志。

表2-1 PCB通常包含的内容

程序段

程序段就是能被进程调度程序调度到CPU执行的程序代码段。注意,程序可以被多个进程共享,就是说多个进程可以运行同一个程序。

数据段

一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果。

2.5 进程的通信:共享存储、消息传递和管道通信

进程通信是指进程之间的信息交换。

高级通信方法主要有以下三个类。

共享存储

消息传递

在消息传递系统中,进程间的数据交换是以格式化的消息(Message)为单位的。

管道通信

管道通信是消息传递的一种特殊方式。

2.6 线程的概念和多线程模型

引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量;而引入线程,则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

线程的属性

线程的实现方式

线程的实现可以分为两类:用户级线程(User-LevelThread, ULT)和内核级线程(Kemel-LevelThread,  KLT)。

多线程模型

1) 多对一模型

2) 2) 一对一模型

3) 3) 多对多模型

2.7 处理机调度:调度的概念、时机、切换、过程以及调度方式和基本准则

调度的概念

1. 调度的基本概念

在多道程序系统中,进程的数量往往多于处理机的个数。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

2. 调度的层次

作业调度,中级调度。又称内存调度。进程调度。又称为低级调度。

3. 三级调度的联系

1) 作业调度为进程活动做准备,进程调度使进程正常活动起来,中级调度将暂时不能运行的进程挂起,中级调度处于作业调度和进程调度之间。

2) 作业调度次数少,中级调度次数略多,进程调度频率最高。

3) 进程调度是最基本的,不可或缺。

进程调度方式

1) 非剥夺调度方式,又称非抢占方式。也就是让手头进程执行完才执行优先进程。

2) 2) 剥夺调度方式,又称抢占方式。

调度的基本准则

1) CPU利用率

2) 系统吞吐量

3) 周转时间。

4) 等待时间。

5) 响应时间

2.8 操作系统典型调度算法

先来先服务(FCFS)调度算法

短作业优先(SJF)调度算法

优先级调度算法

高响应比优先调度算法

时间片轮转调度算法,主要适用于分时系统

多级反馈队列调度算法(集合了前几种算法的优点)

2.9 进程同步的基本概念:临界资源、同步和互斥

临界资源:一次只能让一个进程使用的资源。

同步亦称直接制约关系

互斥亦称间接制约关系

2.10 实现临界区互斥的基本方法

软件实现方法

1) 算法一:单标志法。

2) 算法二:双标志法先检查。

3) 算法三:双标志法后检查。

4) 算法四:Peterson’s Algorithm。

硬件实现方法

1) 中断屏蔽方法

2) 硬件指令方法

2.11 信号量:整型、记录型信号量以及利用信号量实现进程互斥和前驱关系

信号量机构是一种功能较强的机制,可用来解决互斥与同步的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。

整型信号量

记录型信号量

利用信号量实现同步

利用信号量实现进程互斥

利用信号量实现前驱关系

分析进程同步和互斥问题的方法步骤:

2.12 管程:管程的定义、组成及基本特性

管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。

管程的组成

1) 局部于管程的共享结构数据说明。

2) 对该数据结构进行操作的一组过程。

3) 对局部于管程的共享数据设置初始值的语句。

管程的基本特性

1) 局部于管程的数据只能被局部于管程内的过程所访问。

2) 一个进程只有通过调用管程内的过程才能进入管程访问共享数据。

3) 每次仅允许一个进程在管程内执行某个内部过程。

2.13 经典进程同步问题1:生产者-消费者问题

生产者赚到钱才能给消费者花

2.14 经典进程同步问题2:读者-写者问题

多个读者可以访问文件,写作操作不能和任何操作并存。

2.15 经典进程同步问题3哲学家进餐问题

饭桌上的五个哲学家共用5个筷子,只有2个筷子才能吃饭,

2.16 经典进程同步问题4:吸烟者问题

2.17 死锁的概念以及产生死锁的原因

死锁是指多个进 程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

死锁产生的原因

1) 系统资源的竞争

2) 进程推进顺序非法

3) 死锁产生的必要条件

互斥条件:一个资源只能被一个进程占用

不剥夺条件:用完才能被其他进程用

请求和保持条件:吃着碗里瞧着锅里

循环等待条件:

2.18 死锁的处理策略

预防死锁

设置某些限制条件,破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。

避免死锁

在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁。

死锁的检测及解除

无需釆取任何限制性措施,允许进程在运行过程中发生死锁。通过系统的检测机构及时 地检测出死锁的发生,然后釆取某种措施解除死锁。

2.19 死锁预防和死锁避免

1) 破坏互斥条件,打印机属于互斥设备,所以这种方法不好。

2) 破坏不剥夺条件,想要锅里的,先要放弃碗里的。

3) 破坏请求和保持条件:

4) 破坏循环等待条件

死锁避免

1. 系统安全状态

2.20 死锁的检测和解除

资源分配图

死锁定理

死锁的解除

1) 资源剥夺法

2) 撤销进程法

2.21 关于进程和线程的知识点汇总

进程与程序的区别与联系

1) 进程是程序及其数据在计算机上的一次运行活动,是一个动态的概念。

2) 进程是程序的一次执行过程,它是动态地创建和消亡的,具有一定的生命周期,是暂时存在的;

3) 一个进程可以执行一个或几个程序,一个程序也可以构成多个进程。

4) 进程与程序的组成不同。进程的组成包括程序、数据和PCB。

死锁与饥饿

银行家算法的工作原理

银行家算法的主要思想是避免系统进入不安全状态。

进程同步、互斥的区别和联系

并发进程的执行会产生相互制约的关系:一种是进程之间竞争使用临界资源,另一种是进程之间协同完成任务。

作业和进程的关系

用户要求计算机完成的这一串任务称为作业。

1) 批处理系统中作业与进程的关系(进程组织)

2) 分时系统中作业与进程的关系

3) 交互地提交批作业

3内存管理

3.1 内存管理的概念

操作系统对内存的划分和动态分配,就是内存管理的概念

内存管理的功能有:

• 内存空间的分配与回收

地址转换:逻辑地址和物理地址

内存空间的扩充:虚拟存储技术或者自动覆盖技术

存储保护

程序装入和链接

创建进程首先要将程序和数据装入内存。将用户源程序变为可在内存中执行的程序,通常需要以下几个步骤:

编译:由编译程序将用户源代码编译成若干个目标模块。

链接:由链接程序将编译后形成的一组目标模块,以及所需库函数链接在一起,形成一个完整的装入模块。

装入:由装入程序将装入模块装入内存运行。

程序的链接有以下三种方式:

静态链接,装入时候动态链接,运行时候动态链接。

内存的装入模块在装入内存时候的三种方式:

绝对装入,可以静态重定位装入,动态重定位装入

逻辑地址空间与物理地址空间

编译后,每个目标模块都是从0号单元开始编址,称为该目标模块的相对地址(或逻辑地址)。

物理地址空间是指内存中物理单元的集合,它是地址转换的最终地址,进程在运行时执行指令和访问数据最后都要通过物理地址从主存中存取。

内存保护

内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。通过釆用重定位寄存器和界地址寄存器来实现这种保护。

3.2 内存覆盖与内存交换

存储空间放不下用户进程的现象也经常发生,这一矛盾可以用覆盖技术来解决。

覆盖的基本思想是:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可以把用户空间分成一个固定区和若干个覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。

内存交换

交换(对换)的基本思想是,把处于等待状态(或在CPU调度原则下被剥夺运行权利) 的程序从内存移到辅存,把内存空间腾出来,这一过程又叫换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称为换入。

交换技术主要是在不同进程(或作业)之间进行,而覆盖则用于同一个程序或进程中。

3.3 内存连续分配管理方式

连续分配方式,是指为一个用户程序分配一个连续的内存空间。它主要包括单一连续分配、固定分区分配和动态分区分配。

单一连续分配

内存在此方式下分为系统区和用户区,系统区仅提供给操作系统使用,通常在低地址部分;用户区是为用户提供的、除系统区之外的内存空间。这种方式无需进行内存保护。

固定分区分配

固定分区分配是最简单的一种多道程序存储管理方式,它将用户内存空间划分为若干个固定大小的区域,每个分区只装入一道作业。

固定分区是可用于多道程序设计最简单的存储分配,无外部碎片,但不能实现多进程共享一个主存区,所以存储空间利用率低。固定分区分配很少用于现在通用的操作系统中,但在某些用于控制多个相同对象的控制系统中仍发挥着一定的作用。

动态分区分配

动态分区分配又称为可变分区分配,是一种动态划分内存的分区方法。这种分区方法不预先将内存划分,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要

动态分区在开始分配时是很好的,但是之后会导致内存中出现许多小的内存块。

3.4 内存非连续分配管理方式

非连续分配允许一个程序分散地装入到不相邻的内存分区中,根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式。

分页存储管理方式包括:基本分页存储管理和请求分页存储管理。

固定分区会产生内部碎片,动态分区会产生外部碎片分页的思想:把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位进行划分,进程在执行时,以块为单位逐个申请主存中的块空间。

基本分页存储管理方式

1) 分页存储的几个基本概念

①页面和页面大小。进程中的块称为页(Page),内存中的块称为页框(Page Frame,或页帧)。外存也以同样的单位进行划分,直接称为块(Block)。进程在执行时需要申请主存空间,就是要为每个页面分配主存中的可用页框,这就产生了页和页框的一一对应。

②地址结构。地址结构包含两部分:前一部分为页号P,后一部分为页内偏移量W

③页表。为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页表,记录页面在内存中对应的物理块号,页表一般存放在内存中。

2) 基本地址变换机构

3) 具有快表的地址变换机构

4) 两级页表

基本分段存储管理方式

1) 分段。

2) 段表

3) 地址变换机构。

4) 段的共享与保护。

段页式管理方式

页式存储管理能有效地提高内存利用率,而分段存储管理能反映程序的逻辑结构并有利于段的共享。如果将这两种存储管理方法结合起来,就形成了段页式存储管理方式。

3.5 虚拟内存的概念、特征及其实现

传统存储管理方式的特征:一次性,驻留性。

局部性原理

局部性原理表现在以下两个方面:

• 时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因,是由于在程序中存在着大量的循环操作。

• 空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。

虚拟内存技术实际上就是建立了 “内存一外存”的两级存储器的结构,利用局部性原理实现髙速缓存。  

其实就是把常用的东西放在手边。

虚拟存储器的定义和特征

基于局部性原理,在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。

虚拟存储器有以下三个主要特征:

• 多次性,是指无需在作业运行时一次性地全部装入内存,而是允许被分成多次调入内存运行。

• 对换性,是指无需在作业运行时一直常驻内存,而是允许在作业的运行过程中,进行换进和换出。

• 虚拟性,是指从逻辑上扩充内存的容量,使用户所看到的内存容量,远大于实际的内存容量。

虚拟内存的实现有以下三种方式:

• 请求分页存储管理。

• 请求分段存储管理。

• 请求段页式存储管理。

3.6 请求分页管理方式实现虚拟内存

请求分页是目前最常用的一种实现虚拟存储器的方法。

为了实现请求分页,系统必须提供一定的硬件支持。除了需要一定容量的内存及外存的计算机系统,还需要有页表机制、缺页中断机构和地址变换机构。

页表机制

请求分页系统的页表机制不同于基本分页系统,请求分页系统在一个作业运行之前不要求全部一次性调入内存

增加的四个字段说明如下:

• 状态位P:用于指示该页是否已调入内存,供程序访问时参考。

• 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近己有多长时间未被访问,供置换算法换出页面时参考。

• 修改位M:标识该页在调入内存后是否被修改过。

• 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

缺页中断机构

在请求分页系统中,每当所要访问的页面不在内存时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。

地址变换机构

请求分页系统中的地址变换机构,是在分页系统地址变换机构的基础上,为实现虚拟内存,又增加了某些功能而形成的。

3.7 页面置换算法

好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出。

常见的置换算法:

1. 最佳置换算法(OPT)

最佳(Optimal, OPT)置换算法所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。

2. 先进先出(FIFO)页面置换算法

优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。

3. 最近最久未使用(LRU)置换算法

选择最近最长时间未访问过的页面予以淘汰,它认为过去一段时间内未访问过的页面,在最近的将来可能也不会被访问。

4. 时钟(CLOCK)置换算法

3.8 页面分配策略:驻留集大小、调入页面的时机以及从何处调入页面

现代操作系统通常釆用三种策略:

1. 固定分配局部置换。它为每个进程分配一定数目的物理块,在整个运行期间都不改变。若进程在运行中发生缺页,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面。实现这种策略难以确定为每个进程应分配的物理块数目:太少会频繁出现缺页中断,太多又会使CPU和其他资源利用率下降。

2. 可变分配全局置换。这是最易于实现的物理块分配和置换策略,为系统中的每个进程分配一定数目的物理块,操作系统自身也保持一个空闲物理块队列。当某进程发生缺页时,系统从空闲物理块队列中取出一个物理块分配给该进程,并将欲调入的页装入其中。

3. 可变分配局部置换。它为每个进程分配一定数目的物理块,当某进程发生缺页时,只允许从该进程在内存的页面中选出一页换出,这样就不会影响其他进程的运行。如果进程在运行中频繁地缺页,系统再为该进程分配若干物理块,直至该进程缺页率趋于适当程度; 反之,若进程在运行中缺页率特别低,则可适当减少分配给该进程的物理块。

调入页面的时机

为确定系统将进程运行时所缺的页面调入内存的时机,可釆取以下两种调页策略:

1. 预调页策略

2   请求调页策略

从何处调入页面

请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的对换区

1. 系统拥有足够的对换区空间:可以全部从对换区调入所需页面,以提髙调页速度。为此,在进程运行前,需将与该进程有关的文件从文件区复制到对换区。

2. 系统缺少足够的对换区空间:凡不会被修改的文件都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出。但对于那些可能被修改的部分,在将它们换出时须调到对换区,以后需要时再从对换区调入。

3. UNIX方式:与进程有关的文件都放在文件区,故未运行过的页面,都应从文件区调入。曾经运行过但又被换出的页面,由于是被放在对换区,因此下次调入时应从对换区调入。进程请求的共享页面若被其他进程调入内存,则无需再从对换区调入。

3.9 页面抖动和工作集

页面抖动(颠簸)

在页面置换过程中的一种最糟糕的情形是,刚刚换出的页面马上又要换入主存,刚刚换入的页面马上就要换出主存,这种频繁的页面调度行为称为抖动,或颠簸。如果一个进程在换页上用的时间多于执行时间,那么这个进程就在颠簸。

工作集(驻留集)

工作集(或驻留集)是指在某段时间间隔内,进程要访问的页面集合。经常被使用的页面需要在工作集中,而长期不被使用的页面要从工作集中被丢弃。为了防止系统出现抖动现象,需要选择合适的工作集大小。

分页管理方式和分段管理方式在各个方面的对比。

文件管理

4.1 文件的概念

在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。

1) 数据项

2)记录

3)文件

4.2 文件的属性和基本操作

文件的属性

文件有一定的属性,这根据系统的不同而有所不同,但是通常都包括如下属性:

①名称:②标识符:③类型:④位置:⑤大小:⑥保护:⑦时间、日期和用户标识

文件的基本橾作

文件的打开与关闭

4.3 文件的逻辑结构:无结构文件(流式文件)和有结构文件(记录式文件)

按逻辑结构,文件有无结构文件和有结构文件两种类型

无结构文件(流式文件)

无结构文件将数据按顺序组织成记录并积累保存,它是有序相关信息项的集合,以字节(Byte)为单位。

有结构文件(记录式文件)

有结构文件按记录的组织形式可以分为:

1) 顺序文件。

。顺序文件有以下两种结构:

第一种是串结构,第二种是顺序结构,

2) 索引文件。

3) 索引顺序文件。

4) 直接文件或散列文件(Hash File)

4.4 文件目录结构:单级、两级、多级(树形)和无环图目录结构

1) 文件控制块。

文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。

目录结构

1) 单级目录结构。

2) 两级目录结构。

单级目录很容易造成文件名称的混淆,可以考虑釆用两级方案,将文件目录分成主文件目录(Master File Directory, MFD)和用户文件目录(User File Directory, UFD)两级,

3) 多级目录结构(树形目录结构)。

4.5 共享文件

现代常用的两种文件共享方法有:

基于索引结点的共享方式(硬链接)

利用符号链实现文件共享(软链接)

4.6 文件保护:文件访问类型和访问控制

文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。

访问类型

对文件的保护可以从限制对文件的访问类型中出发。可加以控制的访问类型主要有以下几种:

• 读:从文件中读。

• 写:向文件中写。

• 执行:将文件装入内存并执行。

• 添加:将新信息添加到文件结尾部分。

• 删除:删除文件,释放空间。

• 列表清单:列出文件名和文件属性。

访问控制

解决访问控制最常用的方法是根据用户身份进行控制。而实现基于身份访问的最为普通的方法是为每个文件和目录增加一个访问控制列表(Access-Control List, ACL),以规定每个用户名及其所允许的访问类型。

4.7 文件系统层次结构

1) 用户调用接口

2) 文件目录系统

3) 存取控制验证

4) 逻辑文件系统与文件信息缓冲区

5) 物理文件系统

6) 分配模块

7) 设备管理程序模块

4.8 文件系统的实现:目录实现和文件实现

目录实现的基本方法有线性列表和哈希表两种。

1) 线性列表

最简单的目录实现方法是使用存储文件名和数据块指针的线性表。

2) 哈希表

哈希表根据文件名得到一个值,并返回一个指向线性列表中元素的指针。

文件实现

1. 文件分配方式

文件分配对应于文件的物理结构,是指如何为文件分配磁盘块。

2) 链接分配。

链接分配是釆取离散分配的方式,消除了外部碎片,故而显著地提高了 磁盘空间的利用率;

3) 索引分配。

链接分配解决了连续分配的外部碎片和文件大小管理的问题。但是,链 接分配不能有效支持直接访问(FAT除外)。索引分配解决了这个问题,

2. 文件存储空间管理

1) 文件存储器空间的划分与初始化。

2) 文件存储器空间管理。

文件存储设备分成许多大小相同的物理块,并以块为单位交 换信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理,它包括空闲块的组织、 分配与回收等问题。

4.9 磁盘的结构

4.10 磁盘调度算法

一次磁盘读写操作的时间由寻找(寻道)时间、延迟时间和传输时间决定:

这个平均时间没啥意义,因为在实际的磁盘I/O操作中,存取时间与磁盘调度算法密切相关。

1) 先来先服务(First Come First Served, FCFS)算法

2) 最短寻找时间优先(Shortest  Seek  Time  First, SSTF)算法

SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。

3) 扫描(SCAN)算法(又称电梯算法)

SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象

4) 循环扫描(Circulair SCAN, C-SCAN)算法

在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求

4.11 磁盘的管理:磁盘初始化、引导块、坏块

磁盘初始化

在磁盘能存储数据之前,它必须分成扇区以便磁盘控制器能进行读和写操作,这个过程称为低级格式化(物理分区)。为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上

引导块

计算机启动时需要运行一个初始化程序(自举程序),它初始化CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,该自举程序应找到磁盘上的操作系统内核,装入内存,并转到起始地址,从而开始操作系统的运行。

4.12 文件系统知识点总结

磁盘结构,

内存结构

文件系统实现概述

混合索引分配的实现

它们都把所有的地址项分成两类,即直接地址和间接地址。

5输入/输出(I/O)管理

5.1 I/O设备及其分类

计算机系统中的I/O设备按使用特性可分为以下类型:

1) 人机交互类外部设备

2) 存储设备

3) 网络通信设备

5.2 I/O设备控制方式

外围设备和内存之间的输入/输出控制方式有四种:

程序直接控制方式:计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。由于cpu(高速)和I/O(低速)设备只能串行工作,导致CPU的利用率相当低。

中断驱动方式

中断驱动方式的思想是,允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。

DMA方式

在中断驱动方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU。DMA方式的特点是:

基本单位是数据块。

所传送的数据,是从设备直接送入内存的,或者相反。

仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在 DMA控制器的控制下完成的。

因此只有在传送开始和结束时才需要CPU的参与。

通道控制方式

I/O通道是指专门负责输入/输出的处理机。I/O通道方式是DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。

5.3 I/O子系统的层次结构

整个I/O系统可以看成具有四个层次的系统结构:

1) 用户层I/O软件

2) 设备独立性软件

3) 设备驱动程序

4)中断处理程序

5.4 I/O子系统概述和I/O调度的概念

I/O子系统概述

由于I/O设备种类繁多,功能和传输速率差异巨大,需要多种方法来进行设备控制。

I/O核心子系统提供的服务主要有I/O调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理等。

I/O调度概念

I/O调度就是确定-个好的顺序来执行这些I/O请求。

高速缓存与缓冲区

1. 磁盘高速缓存(Disk Cache)

操作系统中使用磁盘高速缓存技术来提高磁盘的I/O速度,磁盘高速缓存在逻辑上属于磁盘,物理上则是驻留在内存中的盘块。

2. 缓冲区(Buffer)

在设备管理子系统中,引入缓冲区的目的主要有: • 缓和CPU与I/O设备间速度不匹配的矛盾。

• 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。

• 解决基本数据单元大小(即数据粒度)不匹配的问题。

• 提高CPU和I/O设备之间的并行性。

 其实现方法有: • 釆用硬件缓冲器,但由于成本太高,除一些关键部位外,一般不釆用硬件缓冲器

• 釆用缓冲区(位于内存区域)。

1) 单缓冲

在设备和处理机之间设置一个缓冲区。设备和处理机交换数据时,先把被交换数据写入缓冲区,然后需要数据的设备或处理机从缓冲区取走数据。

2) 双缓冲

双缓冲机制提高了处理机和输入设备的并行操作的程度。

3) 循环缓冲

包含多个大小相等的缓冲区,每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,多个缓冲区构成一个环形

4) 缓冲池

由多个系统公用的缓冲区组成,缓冲区按其使用状况可以形成三个队列:空缓冲队列、装满输入数据的缓冲队列(输入队列)和装满输出数据的缓沖队列(输出队列)。

3. 高速缓存与缓冲区的对比

高速缓存是可以保存数据拷贝的高速存储器,访问高速缓存比访问原始数据更高效速度更快

5.6 设备分配与回收

1. 设备分配概述

从设备的特性来看,釆用下述三种使用方式的设备分别称为独占设备、共享设备和虚拟设备(假脱机I/O技术)三类。

2. 设备分配的数据结构

设备分配依据的主要数据结构有设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)和系统设备表(SDT),

3. 设备分配的策略

1) 设备分配原则:设备分配应根据设备特性、用户要求和系统配置情况。分配的总原则既要充分发挥设备的使用效率,又要避免造成进程死锁,还要将用户程序和具体设备隔离开。

2) 设备分配方式:设备分配方式有静态分配和动态分配两种。

4. 设备分配的安全性

5. 逻辑设备名到物理设备名的映射

5.7 SPOOLing技术(假脱机技术)

该 技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。SPOOLing的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中釆 用的一项将独占设备改造成共享设备的技术。

SPOOLing系统组成:

输入井和输出井

输入缓冲区和输出缓冲区

输入进程和输出进程

SPOOLing系统的主要特点有:提高了 I/O的速度;将独占设备改造为共享设备;实现 了虚拟设备功能。

5.8 输入/输出(I/O)知识点汇总
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息