操作系统复习资料(考研+期末)

系列文章目录

操作系统(参考江苏大学考研)


文章目录

  • 系列文章目录
  • 前言
  • 一、操作系统概述
    • 1.操作系统的定义:
    • 2.操作系统的特征:
    • 2.操作系统的五大功能:
    • 3.操作系统的形成与发展:
    • 4.操作系统的运行环境:
  • 二、进程和线程
    • 1.进程
    • 2.线程
    • 3.管程
  • 三、互斥与同步
    • 1.进程管理的背景
    • 2.进程互斥
    • 3.进程同步
    • 4.进程通信
    • 5.死锁
  • 四、处理器调度
    • 1.处理器调度层次
    • 2.调度算法
  • 五、存储器管理
    • 1.存储器的三级与任务
    • 2.存储分配的三种形式
    • 3.覆盖与交换
    • 4、存储管理
    • 5.页式存储管理
    • 6.段式存储管理
    • 7.段页式存储管理
  • 6.文件管理
    • 1.文件的存取方法
    • 2、文件的逻辑结构
    • 3、文件共享
    • 4.文件的存储空间管理
    • 5.文件分配方法
  • 七、I/O管理
    • 1.I/O控制方式
    • 2.I/O缓冲
    • 3.SPOOLing技术
    • 4.磁盘调度


前言

帮助对操作系统进行系统的学习

提示:以下是本篇文章正文内容,下面案例可供参考

一、操作系统概述

1.操作系统的定义:

定义:操作系统是控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。

简捷定义:操作系统是控制和管理整个计算机系统的硬件与软件资源的系统软件。

2.操作系统的特征:

1、并发:
       并发是指两个或多个事件在同一时间间隔内发生。
       并行是指两个或多个事件在同一时刻发生。
       在多道程序环境下,并发性是指宏观上在一段时间内多道程序同时运行。
       在单处理器系统中,每一时刻仅能执行一道程序,微观上这些程序是在交替执行的。
2、共享:
       共享是指系统中的资源可供主存中多个并发执行的进程共同使用。
       共享方式:
               1、互斥共享方式:规定在一段时间内只允许一个进程访问资源。
               2、同时访问方式:允许在一段时间内由多个进程“同时”访问。
       并发和共享是操作系统的两个最基本的特征,它们是互为存在条件。
3、虚拟:
       虚拟是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
4、异步:
       进程的执行并不是“一气呵成”,而是以“走走停停”的方式运行。
       进程的异步是操作系统的一个重要特征。     

2.操作系统的五大功能:

1、处理机管理:完成处理器资源的分配调度等功能。
            主要功能:1、进程控制 2、进程同步 3、进程通信 4、死锁处理 5、处理机调度
2、存储管理:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发执行
            主要功能:1、存储分配与回收 2、地址映射 3、存储保护 4、内存扩展
3、设备管理:方便设备使用、提高CPU与I/O设备利用率
            主要功能:1、缓冲管理 2、设备分配与回收 3、设备操作与处理
4、文件管理:解决软件资源的存储、共享、保密和保护
            主要功能:1、文件存储空间管理 2、文件目录管理 3、文件的读写管理
                     4、文件的存取控制
5、作业管理(大中型操作系统提供,微机和单用户不提供):
            主要功能:1、作业控制语言 2、作业调度   

3.操作系统的形成与发展:

1、手工操作阶段(此阶段无操作系统):
          缺点:1、用户独占全机 2、CPU等待用户
2、批处理阶段(操作系统开始出现):
   1、单道批处理系统:
          特征:1、自动性 2、顺序性 3、单道性
   2、多道批处理系统:
          特征:1、多道 2、宏观上并行 3、微观上串行
          优点:资源利用率高,系统吞吐量大
          缺点;1、用户响应的时间较长 2、不提供人机交互能力
3、分时操作系统:
         特征:1、同时性 2、交互性 3、独立性 4、及时性
4、实时操作系统:
         特征:1、及时性 2、可靠性
5、网络操作系统
6、分布式操作系统
7、嵌入式操作系统
          

4.操作系统的运行环境:

根据CPU的状态划分为用户态(目态)和核心态(又称管态、内核态)
中断(外中断):是指来自CPU执行指令以外的时间的发生
如:时钟中断
异常(内中断):源自CPU执行指令内部的事件
如:程序的非法操作码、地址越界、算术溢出、虚存系统的缺页
————————————————————————————-

二、进程和线程

1.进程

程序:是指指令的有序集合
进程:具有独立功能的程序关于某个数据集合的一次运行活动
进程的组成:程序段+数据段+PCB
进程的特征:1、动态性 2、并发性 3、独立性 4、异步性 5、结构性

进程和程序的区别:
    1、进程是动态的,是一段程序的一次运行活动;程序是静态的,是一组指令的集合。
    2、一个进程至少对应一个或多个程序;一个程序至少对应一个或多个进程。
    3、进程具有并行性,是资源分配的基本单位。
    4、程序是可以永久保存的,进程具有从创建到消亡的生命周期。

PCB的组织方式:
1、线性方式:所有PCB组成一个数组
2、链接方式:运行队列、就绪队列、阻塞队列
3、索引方式:建立N张索引表

进程的状态与转换:
三种基本状态:
1、就绪态:进程获得其他全部资源,但不能占用处理机
2、执行态:已获得必要的资源并占有处理机
3、阻塞态:金进程因等待某一事件而暂不能执行的状态(是等待除CPU外的资源或事件)

就绪->执行:资源满足且获得CPU
执行->就绪:时间片用完
执行->阻塞:等待事件发生
阻塞->就绪:等待事件已发生

进程控制中所需要原语:1、创建原语 2、撤销原语3、阻塞原语4、唤醒原语

原语:是由若干条机器指令组成,用于完成特定功能的一段程序
特性:不可分割性
P操作:将信号量s的整型值减去1,若结果小于0,则将调用P(s)的进程置成等待信号量s的状态
V操作:将信号量s的整型值加上1,若结果不大于0,则释放一个等待信号量s的进程
创建进程:
1、申请空白PCB和分配唯一的数字标识符PID2
2、为新进程分配资源
3、初始化PCB中的数据项
4、将新进程调入到就绪队列中

2.线程

线程:线程是进程中的一个实体,比进程更小的独立运行的基本单位(不独立拥有资源)

引入线程的理由:
             1、原并发机制是建立在进程的基础上,当有并发进程抢占CPU时需进行进程上下文的切换,代价高
             2、改善后并发机制是建立在线程基础上的,线程调度时不发生进程上下文切换,可省去CPU的时间
             3、引入线程后原有进程的两个特征分别处理------操作系统的调度分配单位用线程描述;资源的分配
             单位仍用进程

线程的四部分组成(了解即可):1、唯一的标识符2、状态寄存器3、两个栈4、私用存储器

引入线程的重要性:
                1、在已有进程中创建或终止一个线程远比控制进程来的快
                2、撤销线程更快
                3、进程间的切换更容易更快捷
                4、线程间的通信无需内核干涉可直接进行
                
线程与进程比较:
              1、地址空间:线程是进程内的一个执行单元;进程至少有一个线程,他们共享进程的地址空间;
                 进程有自己的独立的地址空间
              2、资源拥有:进程是资源分配和拥有的单位;同一个进程内的线程共享进程的资源
              3、调度单位:进程不是处理器调度的基本单位;线程成为处理器调度的基本单位
              4、执行方式:进程之间与线程之间都是并发执行
              注:进程与线程同样有三态转换、创建和终止。
线程的实现方式:
              1、用户级线程的实现
              2、内核支持线程的实现

3.管程

定义:代表共享资源的数据结构以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序

管程的4部分组成:
    1、管程的名称
    2、局部于管程内部的共享数据结构说明
    3、对该数据结构进行操作的一组过程(或函数)
    4、对局部于管程内部的共享数据设置初始值的语句

管程对共享资源的访问限制(管程把对共享资源的操作封装起来):
1、管程内的共享数据结构只能被管程内的过程所访问。一个进程只有通过调用管程内的过程才能进入管程访问共享资源。
2、每次仅允许一个进程进入管程,从而实现进程互斥。(各个进程只能串行执行管程内的过程)

三、互斥与同步

1.进程管理的背景

并发进程执行可能是无关的,也可能是交往的,因而产生了与时间有关的错误
1、结果不唯一
2、永远等待

2.进程互斥

临界资源:一次仅允许一个进程使用的资源
临界区:并发进程中与共享变量有关的程序段
互斥:不允许两个以上共享共有资源或变量的进程同时进入临界区执行的性质
临界区管理的三个原则:
1、互斥性:如果一个进程在它临界区中执行,其他任何进程均不能进入相关的临界区执行
2、进展性:如果一个进程不在它临界区中执行,不应阻止其他任何进程进入相关的临界区执行
3、有限等待性:某个进程从申请进入临界区开始,应在有限的时间内得以进入临界区执行

互斥的软硬件实现方法
一、互斥的软件实现方法
1、单标志法:该算法设置一个公用整形变量turn,用于指示被允许进入临界区的进程编号,即若turn=0,则允许
P0进程进入临界区。(违背了“空闲让进”)
2、双标志先检查法:在每个进程访问临界区资源之前,先查看临界资源是否正被访问,若正被访问,该进程需
等待;否则,进程才进入自己的临界区(违背“忙则等待”)
3、双标志后检查法:先检测对方的进程状态标志,在设置自己的标志,由于在检测和放置中可插入另一个进程
到达时的检测操作,会造成两个进程在分别检测后同时进入临界区(导致“饥饿”现象) 
       饥饿:是指双方互相谦让,结果谁也进入不了临界区
4、Peterson算法:为了防止两个进程为进入临界区而无限期等待,又设置了变量turn,每个进程在先设置自己
标志后在设置turn标志,这时,再同时检测另一个进程状态标志和允许标志。
   好处:能正确解决互斥问题(利用turn解决“饥饿”现象)
   缺点:进程会出现“忙则等待”

二、互斥的硬件实现方法
1、中断屏蔽方法:使进程进入临界区执行,不响应中断,不切换进程。
   好处:简单
   缺点:系统代价较高,无法在多处理器系统使用
2、硬件指令方法:1、测试并设置指令TS 2、用Swap指令来管理临界区
   缺点:同样存在“忙等待”

3.进程同步

进程间的同步:异步环境下的一组并发进程,因直接制约互相发送消息而进行互相协作、互相等待,使得各进程按一定的速度执行的过程

4.进程通信

进程通信:一个进程将一批信息发送给另一个进程的过程。即进程间用信件来交换信息
进程通信分类:1、共享存储器系统2、消息传递3、管道通信
消息传递的两种方式:
1、直接通信;是指发送进程把信件直接发送给接收进程(用到send原语和receive原语)
2、间接通信:发送信件进程把信件发送到一个共享的数据结构——信箱,接受进程也到信箱中去取信件
信箱:存放多封信件的存储区域。(信箱特征+信箱体)

直接通信与间接通信的区别:
   1、进程间的密切关系不同:直接通信常用于进程间关系比较密切的情形,而间接通信则用于联系不十紧密的
      进程之间。
   2、间接通信具有较大的灵活性:发送进程和接受进程之间的关系可以有一对一、一对多、多对一和多对多的
      多种关系;进程与信箱之间的关系可以是静态的,也可以是动态的。
      (提供connect原语、disconnect原语)

5.死锁

概念:一组并发进程彼此相互等待对方所占有的资源,而且这些进程在得到对方资源之前不会释放自己所占有的资源,从而造成这组进程都不能继续向前推进的状况。

死锁的必要条件:
1、互斥条件:一个资源一次只能由一个进程使用,如果有其他进程申请使用该资源,申请进程必须等待直到所申
	请资源被释放。
2、部分分配条件:一个进程已占有一定资源后,执行期间又再申请其他资源
3、不可抢占条件:一个资源仅由一个占有它的进程来释放,不能被其他进程抢占使用。
4、循环等待条件:在系统中存在一个由若干进程申请使用资源而形成的循环等待链,其中每个进程占有若干资源,
同时又在等待下一个进程所占有的资源。

解决死锁的办法:
(1)死锁的防止,消除可能产生死锁的原因
     1、资源静态分配法:破坏部分分配条件。一个进程必须在执行前就申请它所需的全部资源,并且直到它所需
        的资源得到满足后才能开始执行。
        这种策略实现简单,但资源利用率低。
     2、资源的层次分配法:(1)把资源分成多个层次 
                        (2)一个进程得到某一层的一个资源后,它只能再申请较高一层的资源
                        (3)当一个进程要释放某一层的一个资源时,必须先释放所占有的较高层的资源
                        (4)当一个进程获得了某一层的一个资源后,它想再申请该层的另一个资源,则
                        必须先释放该层中的已占有的资源
                        优点:资源的利用率有较大的提高
                        缺点:特别小心地安排资源所处的层次
(2)死锁的避免
         思想:在为申请者分配资源前先测试系统的资源状况,若把资源分配给申请者会产生死锁的话,则拒
               分配,否则接受申请并为它分配资源。
               著名的避免死锁的方法:**银行家算法**
         银行家算法的思想:检查申请者对各类资源的最大需求量,如果系统现存的各类资源可以满足它的最
         大需求量时,就满足当前的申请。换句话说,仅仅在申请者获得资源最终运行完毕,无条件地归还它
         所申请的全部资源时,才分配资源给它。

         系统的安全状态:是指系统能按某种进程顺序,来为每个进程Pi分配其所需资源,直至满足每个进程
         对资源的最大需求,使每个进程都可以顺利地完成。如果系统中无法找到这样一个安全序列,则称系
         统处于不安全状态。
(3)死锁的检测和修复
         思想:对资源地分配不加限制,但系统必须定时或不定时地运行一个“死锁检测”程序,判断系统内是
              否出现死锁,若检测到死锁则采用相应地办法解除死锁,并以尽可能小地代价回复相应的进程
              运行。
          解除死锁的办法:
             1、撤销进程法(两种形式)
                 (1)撤销所有卷入死锁的进程
                 (2)一次撤销一个进程直到死锁消失
             2、剥夺资源法
                   思想:是从一个或多个卷入死锁的进程中抢占资源,再把这些资源分配给卷入死锁的其他
                         进程,以解除 死锁。

四、处理器调度

处理器调度的目的:为了满足系统的运行目标,把进程或线程按照一定的策略分派到一个或者多个处理器上运行。

1.处理器调度层次

调度层次:长程、中程、短程
1、长程调度(高级调度或作业调度):根据作业控制块中的信息,按照某中原则从外存上的后备队列中选取一个或
几个作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程插入就绪队列。
2、中程调度(中级调度):中程调度负责内外存之间的进程对换,以解决内存紧张的问题,即它将内存中处于等待
状态的某些进程调到外存对换区,以腾出内存空间,再将外存对换区中已具备运行条件的进程重新调入内存准备运行。
3、短程调度(低级调度或进程调度);决定就绪队列中哪个进程或线程将获得处理器,并将处理器分配给该进程或
线程。


调度的方式:1、剥夺式 2、非剥夺式
剥夺式(抢占式):当一个进程正在执行时,系统可以基于某种原则强行将CPU的控制权从当前进程转给其他进程。
剥夺原则:(1)优先级原则 (2)短进程原则 (3)时间片原则
 
非剥夺式(非抢占式):进程对处理器的控制权具有独占性,除非该进程主动让出CPU控制权
优点:简单,系统开销小
缺点:可能导致系统性能的恶化

2.调度算法

1、先来先服务调度(FCFS) (非抢占策略)
     思想: 先请求处理器的进程先分配处理器,直到该进程运行结束或发生等待。
     实现:采用就绪队列进出操作实现
     优点:易实现
     缺点:未考虑调度准则
2、时间片轮转法(剥夺式)
     思想:把CPU按时间篇依顺序轮流赋予就绪队列中的每一个进程。
     关键:在于选择合理的时间片
3、短作业优先(SJF,会出现“饥饿”)
     思想:选择所需处理时间最短的进程占有CPU运行。
     优点:克服了FCFS偏爱长进程的缺点,易于实现
     缺点:需要预先知道进程所需的CPU;忽视进程的等待时间,使进入系统时间早但计算时间长的进程等待时间长。
4、优先级调度(常用于批处理系统和实时系统)
    思想:把处理器分配给就绪队列中具有最高优先级的进程,当具有最高优先级的进程有两个或者两个以上时,采用
    先来先服务调度策略进行调度。
    关键:在于如何确定进程的优先级
    优先级确定方法:
        (1)静态优先级:再进程创建时即被确定的,在以后整个执行期间不在改变。
        (2)动态优先级:在进程执行期间,按某种原则不断修改进程的优先级,优先级可随进程的等待时间,占用CPU的时间
                        的变化而变化。
5、多级反馈队列轮换法(会导致饥饿)
       思想;把时间片轮转法中的单就绪队列改为双就绪队列或多就绪队列,并赋给每个队列不同的优先权。
6、高相应比优先调度算法(主要用于作业调度)
        思想:是对FCFS调度算法和SJF调度算法的一种综合平衡,同时考虑了每个作业的等待时间和估计的运行时间。

五、存储器管理

1.存储器的三级与任务

存储器三级:外部存储器、主存储器和高数缓冲存储器

1、外部存储器(外存或辅存):用来存放不立即使用的程序和数据,当用户的程序运行需要它们时,再从外存把它们读入到主存储器。
2、主存储器(主存或内存):程序的运行总是存放在主存中,以便处理器的访问。
3、高速缓冲存储器:处理及指令和存取数据就在高速缓冲存储器中进行。

存储管理的主要任务:
(1)为多道程序的并发执行塔公良好的环境
(2)提高存储器利用率,尽量减少空闲及不可利用的主存储器区域
(3)逻辑上扩充空间,使大程序、多个程序能在小主存中运行
(4)方便用户使用存储器,用户无需考虑存储器的分配、回收和保护等工作,这些工作完全由操作系统进行管理

2.存储分配的三种形式

1、直接存储分配方式:程序远在编写程序或编译程序对源程序编译时采用内存物理地址
2、静态存储分配方式:在将作业装入内存时才确定它们在内存中的位置。运行中固定不变。
3、动态存储分配方式:不是一次性将程序全部装入主存,而是根据执行需要动态装入与回收,也可动态申请存储空间。

重定位:相对地址转化为存储空间中绝对地址的变换过程
重定位方式:(1)静态地址重定位:装配程序一次性完成 
           (2)动态地址重定位:执行中,硬件地址转换机构完成

3.覆盖与交换

覆盖与交换是从逻辑上扩充主存的两种办法,解决在较小主存空间中如何执行大、多程序的问题

覆盖:把程序划分为若干个功能相互独立的程序段,让那些不会同时被CPU执行的程序段共享同一个主存区。
交换:将系统中暂时不用的程序或数据部分或全部从主存中调出,以腾出更大的存储空间,同时将系统要求使用的程序
      和数据调入主存中,并将控制权转交给它,让其在系统上运行。
 

交换与覆盖的区别:
               (1)对象的区别:交换不要求出覆盖结构,主要是在进程或作业之间进行,而覆盖则主要是在同一个
                    进程或作业之间运行。
               (2)作用的区别:交换可以在较小的存储空间中运行较多的作业或进程,覆盖可以在较小的存储空间
                    中运行比其容量大的作业或进程
                    

4、存储管理

单一连续存储管理(静态存储分配方式):
        优点:管理简单,只需很少的软硬件支持
        缺点:(1)系统的存储空间浪费较大
             (2)当正在执行的程序因出现等待,处理器就处于空闲状态
             (3)主存中的册灰姑娘徐和数据不能被共享
             (4)系统的外围设备也只有一个程序使用,因此外部设备利用率低
固定分区:
    思想:系统在初始化时,将主存空间划分为若干个固定大小的区域。用户程序在执行过程中,不允许改变划分区域
          的大小,只能够根据各自的要求,由系统分配一个存储区域。
    优点:简单
    缺点:虽然可以使多个作业在同一时刻共享存储区,单它不能充分利用存储器资源

    “碎片”或“内零头”:在已分配的分区中,通常都有一部分未被进程占用而浪费的主存空间
动态分区:
    思想:在系统初启时,除了操作系统常驻内存部分以外,只存在一个空闲分区。随后,分配程序将该区依次划分给调度
          程序选中的进程,并且分配的大小可随用户进程对主存的要求而改变(不会产生碎片,提高了主存利用率)
动态分区的分配方式:
          (1)最先适应法:将作业分配到主存第一个足够装入它的可用空闲区
                      缺点:可能将大的空闲区分割成一个小区,不利于大作业的装入与运行
          (2)最佳适应法:将作业分配主存中与它所需大小最接近的一个可用空闲区
                      优点:可保证不会区分割一个更大的空闲区,便于今后大作业的装入运行。
                      缺点:由于空闲区通常不可能正好和作业所要求的大小相等,往往分割后剩下的空闲区非常小,
                            以至几乎无法使用,造成了主存空间的浪费。
          (3)最坏适应法:把一个作业分配到主存中最大的空闲区中。
                    优点:在大空闲区中装入作业后,剩下的空闲区常常也很大,于是也能满足以后较大的作业的要求。
                          该算法对中、小作业的运行是很有利的。
动态分区的回收:
         (1)释放区与上下两个空闲区相邻
         (2)释放区与上空闲区相邻
         (3)释放区与下空闲区相邻
         (4)释放区与上下两个空闲区都不相邻


地址转换与存储保护
      基址寄存器:存放分配给作业使用的分区的最小绝对地址值
      限长寄存器:存放作业占用的连续存储空间的长度
      基址寄存器与限长寄存器内容都属于保护的现场

分区的共享:
      (1)系统提供多对基址/限长寄存器
      (2)规定某些对基址/限长寄存器指定的区为共享区
      (3)规定对共享区的信息只执行或读,不能写

移动技术:
   思想:当存储分配程序找不到一个足够大的空闲区来装入作业时,可以采用移动技术改变主存中的作业存放区域,同时修改它们的
       基址/限长值,从而使分散的小空闲区汇集成一个大的空闲区,有利于作业的装入。
   优点:
        1、可使分散的“碎片”或小空闲区汇集成大的空闲区
        2、为作业执行过程中扩充主存提供了方便
   
   缺点:
        1、增加了系统开销
        2、不是随时可移动
        3、作业动态申请主存会出现“死锁”。   

分区存储管理的优缺点:
       优点:
           (1)实现了多道程序设计,从而提高了系统资源的利用率
           (2)系统要求的硬件支持少,管理简单
       缺点:
            (1)作业在装入时的连续性使主存的利用率不高
            (2)主存的扩充只能采用覆盖与交换技术,无法真正实现虚拟存储

5.页式存储管理

思想:将作业分配在不连续的大小相同存储区域中(见缝插针分配),同时又要保证作业的连续执行。每个区称为
一块(页框),与此对应,编制程序的逻辑地址也分为页(页面),页的大小与块的大小相等,通常页的大小总
是2的整数次幂
逻辑地址:页号+页内偏移
物理地址:页框号+页内偏移

优越性:
      (1)实现了连续存储到非连续存储的飞跃,为实现虚拟存储打下了基础
      (2)解决了主存中的“碎片”问题

分类:静态页式存储管理与虚拟页式存储管理

静态页式存储管理:用户作业在开始执行以前,将该作业的程序和数据全部装入到主存中,然后,操作系统通过页表和硬件地址变换机构实现
                逻辑地址到物理地址的转换,从而执行用户程序的。
           快表:存放在高速缓冲存储器中的页表
           相联存储器:高速缓冲存储器
虚拟存储器基本思想:系统把当前要用的程序和数据装入主存中启动程序运行,暂时不用的程序和数据驻留在外存中。在执行中需要用到不在
                 主存中的信息时,可将暂时不用的程序和数据调出主存,以腾出主存空间让系统调入要用的程序与数据。从用户角度看,
                 系统具备了比实际主存容量大得多的存储器
虚拟存储器的特征;1、多次性 2、对换性

缺页中断与一般中断的区别:
          (1)在指令执行期间产生和处理中断信号。通常CPU都是子啊一条指令执行完后检查是否有中断请求到达,若有,便去相应,否则
               继续执行下一条指令。然而缺页中断指令执行期间发现索要访问的指令或数据不在主存时产生和处理。
               
          (2)一条指令在执行期间,可能产生多次缺页中断。

页面置换算法
概念:主存已满,又需装入新页时,将主存中的某些页调出去。页面调度实质上是决定淘汰哪一页。
缺页中断率:f=F/(S+F)

页面调度算法:
1、优化算法:
          理论化的算法,其所选择的被淘汰的页将是用不使用的页,或者是在最长时间内不在访问的页。
2、先进先出算法:
          该算法总是淘汰最先进入主存的页面,认为最先调入的页最近不被访问可能性最大。
3、最近最少用算法:
          该算法要求淘汰的页面是在最近一段时间里较久未被访问的那一页。根据是程序执行时所具有的局部性。
          (采用堆栈的方法确定淘汰最近最少使用到的页面,发生缺页中断时总是淘汰栈底所指示的页)
4、最近未用置换算法:
          该算法要求页表中有一个访问位和一个修改位。当某页被访问时,访问位被自动置1,若执行的指令是写
          指令,则修改位也被置1.系统周期性地将所有访问位置0.在选择一页淘汰时,总是选择其访问为0且修改
          位也为0的页。若无修改为0的页,就选访问位为0且页号最小的页淘汰。
5、最少使用置换算法:
          要求为每一页表项配置一个一定位数的计数器作为访问字段,开始时所有的计数器均为0.一旦某页被访问
          时,其页表项中的计数器值加1.系统每过一段时间T就将所有的页表项计数器清0.在需要选择一页置换时,
          便比较各计数器的值,总是选择其计数值最小的页面淘汰。
6、第二次机会算法:
         淘汰不但“老”而最近“没用"的页面
7、时钟算法:
         环形链表实现的第二次机会算法(环形链表头尾相邻,因此只需要移动一个指针)
8、基于Clock的NRU算法
          1、从指针位置开始扫描链表,扫描过程中不改变R位。淘汰遇到的第一个R=0&M=0的页面。
          2、若第1步失败,则再次扫描,淘汰遇到的第一个R=0&M=1的页面。每个页面检查过后将R设为03、若第2步失败,重复12(如果需要)。


分页存储管理的优缺点: 
        优点:
             1、解决主存的零头问题,能有效地利用主存。
             2、方便多道程序设计,并为程序运行地道数增加了。
             3、可提供大容量地虚拟存储器,作业的地址空间不再受实际主存大小的限制。
             4、更加方便了用户,特别是大作业的用户。当某作业地址空间超过主存空间时,用户也无需考虑覆盖
                结构。
        缺点:
             1、要有相应的硬件支持,若需要动态地址变换机构、缺页中断处理机构等。
             2、必须提供相应的数据结构来管理存储器,它们不仅占用了部分主存空间,同时还要花费CPU时间。
             3、在分页系统中页内的零头问题仍然存在。
             4、在请求分页管理中,需要进行缺页中断处理,还有可能出现抖动现象,增加了系统开销,降低系
                 统效率。
             
       
         

6.段式存储管理

思想:把程序按逻辑含义或过程(函数)关系分成段,每段有段名。每段逻辑地址均是以0 开始进行
顺序编址。用户作业或进程的地址空间就形成了一个二维线性地址空间。以段为单位分配主存。执行
时通过地址转换机构把段式逻辑地址转换程主存物理地址。
逻辑地址格式:段号+段内地址

分段与分页的比较:
         分段是信息的逻辑单位,是用户可见的,短的大小是用户程序决定。而分页是信息的物理单位,分页对用户
         来说是不可见的,页的大小是事先固定的。


段式虚拟存储管理:
     思想:把作业的所有分段的副本都存放在外存上,当作业被调度投入运行时,首先把当前需要用的一段或几段装
           入主存,在执行过程中,访问到不在主存的段时,再通过缺段中断机构把它从外存上调入。


段式管理优缺点:
      优点:严格按程序的逻辑结构分配连续存储空间,方便程序和数据的共享与保护,同时也便于程序及数据段的
            扩充和动态链接。

      缺点:一个短的长度不能大于实际的主存容量,而且为了解决碎片问题,提高主存的利用率,必须采用移动技术,
           移动主存信息需要较大的系统开销。

7.段页式存储管理

思想:每个作业按逻辑分段,然后对每段又分成若干页。这样,每一段不必占用连续的主存空间,而是按页存放在不一定连续
的主存页框中,并且当主存页框不够时只将一段的部分页面放在主存,用到不在主存中的页面时再将之调入。

优点:具有短视和页式的全部优点
缺点:需要更多的硬件支持和中断处理,增加了系统的成本和复杂性。

6.文件管理

文件的定义:文件是一组逻辑上相互关联的信息的集合,是计算机系统中信息的组织结构。
文件类型:1、普通文件 2、目录文件3、设备文件

1.文件的存取方法

文件存取方法:研究访问存储空间上物理文件的方法。
1、顺序存取法:
             严格按照数据记录的排列顺序依次存取。
2、直接存取法:
             允许用户随意读写文件的任意一个记录
3、索引存取法:
             根据文件中各记录的索引进行存取的

2、文件的逻辑结构

文件的逻辑结构分类:1、流式文件(无结构的字符流构成)2、记录式文件(有结构的记录构成)

记录式文件的逻辑组织方式
1、堆文件:
        按照记录到达的时间顺序组织
2、顺序文件:
        把文件看作固定长度的集合
        优点:顺序存取速度快,适应于顺序存取和成批处理,多用于顺序设备(如:磁带)
        缺点:涉及到对单位或少数几个记录的查询或更新,顺序文件表现出来的性能较差
3、索引顺序文件
         在顺序文件的基础上,另外建立文件索引和溢出文件。这样做目的在于加快顺序文件的检索速度
4、索引文件
         记录大小不必相同,不必排序,存放在主文件中。索引文件的记录项通常较小,查找速度快,便于随机访问。
         索引文件与索引顺序文件的区别:对于同一主文件,处理主索引表外,还有辅助索引表,可以针对不用的关键子域相应建立
                                     多个索引。
5、直接文件(哈希文件)
         记录大小相同。由主文件和溢出文件组成。记录位置由哈希函数确定。检索时给出记录编号,通过哈希函数计算出该记录
         在文件中的相对位置。
         访问速度快,但不能随机访问。

3、文件共享

1、利用符号链接实现共享
     思想:文件拥有指向文件结点的指针,共享该文件的其他用户,只有该文件的路径名。
     优点:能够用于链接计算机网络上的任何地点中的文件
     缺点:访问共享文件时,可能需要多次放盘,时间开销较大,也要开销一定磁盘空间。
2、基于索引节点的共享方式
     思想:对咬共享的文件,引入一个索引节点,将文件中诸如文件的物理地址及其文件属性等信息,
           不放在文件目录表目中,而是放在索引节点中。在文件目录中只设置文件名及其指向相应
           索引节点的指针。
      优点:文件目录较小,查找速度快
      缺点:不能实现跨文件系统和跨设备的共享
3、利用好基本文件目录实现文件共享
     思想:利用把目录表目进行分解的办法来加快检索速度,同时也便于实施文件的共享
     目录分解:就是把一个目录表目分解为两部分:基本文件目录部分与符号文件目录部分


文件的一致性检查:1、块的一致性检查 2、文件的一致性检查

4.文件的存储空间管理

1、空闲表法
       系统为存储介质上的所有空闲区建立一张空闲表,每一个空闲区对应表中的一个表目。表目的 内容包括:
       空闲区第一个盘块号、该空闲区的盘块总数等信息。将所有空闲区按第一盘块号的大小排列。
   总结:适用于连续分配文件,管理方法简单,但当空闲区过多时,将大大影响使用效率。
2、空闲链表法
   空闲盘块链:
         优点:分配与回收一个盘块的过程非常简单
         缺点:空闲盘块链可能很长,影响效率。
3、位示图法
      每一位表示一个盘块,取值01分别表示对应盘块空闲或者占用。
4、链接索引表法
      使用若干个空闲盘块作为索引表块,来指出存储空间中所有空闲盘块。

5.文件分配方法

1、连续分配
       在创建文件时,给文件分配一组连续的物理盘块,使用静态分配策略。所形成的物理文件为顺序文件。
        优点:
             1、比较简单,容易实现。
             2、顺序访问速度快,性能较好
        缺点:
            1、必须在文件创建时就知道文件的最大长度。
            2、造成磁盘碎片
2、链接分配
       为每个文件构成磁盘块的链接表,每个块的第一个字用于指向下一块的指针,块的其他部分存放数据,由此形成的物理文件称为
       链接文件。
        分配方式:
            1、隐式链接
            2、显示链接
         优点:没有磁盘碎片浪费存储空间
         缺点:随机存取缓慢;每个磁盘块不是2的幂,降低了系统的运行效率。
3、索引链接分配
       为了解决连续分配和链接分配的问题而产生的。
       索引链接分配时文件逻辑组织中索引组织的物理实现。

七、I/O管理

1.I/O控制方式

1、程序直接控制方式
       利用询问指令测试设备的忙/闲状态,从而决定下一步工作。
       缺点:
           1、CPU与外设只能串行工作
           2、CPU在一段时间内只能与一台外设交换数据信息
           3、无法发现和处理由于设备和其他硬件所产生的错误
2、中断控制方式
      缺点:
          1、中断次数过多
          2、中断次数的几句增加会造成CPU无法及时响应中断,出现数据丢失现象
3、DMA控制方式
      优点:传输速度块,COPU干预少
      缺点:
          1、硬件线路复杂
          2、DMA方式窃取了CPU的工作周期,CPU处理效率降低了
     DMA与中断的区别:
          1、中断次数不同
          2、控制方式不同
                中断控制方式的数据传送是在中断处理时由CPU完成的
                DMA方式是由DMA控制器完成的,不经过CPU      
4、通道控制方式
         通过有一系列通道指令,指令受CPU启动,操作结束向CPU发中断信号

2.I/O缓冲

缓冲引入原因:
1、环节CPU与I/O设备间速度不匹配的矛盾,提高CPU与I/O设备间的并行性
2、j减少对CPU的中断频率,放宽对中断响应时间的限制

缓冲的种类:1、单缓冲 2、双缓冲 3、循环缓冲 4、缓冲池

缓冲的实现方式:
      1、采用硬件缓冲器实现
           成本太高,一般情况下不采用
      2、缓冲区
            在内存中划出一块存储区,专门用来存放输入输出数据

3.SPOOLing技术

思想:独占设备的静态分配利用率低,使用动态分配又可能造成死锁,SPOOLing技术利用磁盘和程序模拟脱机工作模式
实现联机情况下的同时外围操作。

SPOOLing系统的特点:
1、提高了I/O速度
2、将独占设备改造为共享设备
3、实现了虚拟设备的功能

4.磁盘调度

1、先来先服务策略
       根据进程请求访问磁盘的先后顺序进行调度,而不管进程的优先级
       优点:公平,处理简单,每个进程的请求都会得到处理
       缺点:未对寻道进行优化,致使平均寻道时间可能较长
2、最短寻道时间优先策略
       以申请者要求磁头移动距离大小作为优先因素,磁道距离磁头当前位置愈近者优先
       优点:平均等待时间按得到改善,可以获得较好的寻道性能
       缺点:对用户进程请求的响应机会不是均等的,可能导致某些进程发生“饿死”现象
3、扫描策略
      不仅考虑申请者要求磁盘移动方向,又考虑要求磁盘移动距离,而且首先是方向一致,其次才是距离最短。
      优点:避免了饥饿现象
      缺点:优待了中间刺刀的请求,有“磁臂粘着”现象
4、循环扫描策略
      规定磁头单向移动。将各磁道视作一个环形缓冲区结构,最大磁道号和最小磁道号构成循环
      优点:等待时间较均衡
      缺点:有“磁臂粘着”现象
5、N-STEP-SCAN策略
      把磁盘请求队列分成长度为N的子队列;按FCFS策略依次处理这些子队列,而每处理一个队列,又是用SCAN策略;在处理某一个
      队列时,新请求必须添加到其他某个队列中。
      好处:可避免出现“磁臂粘着”现象
      

你可能感兴趣的:(windows)