zoukankan      html  css  js  c++  java
  • 《计算机操作系统》考前复习总结

    操作系统引论

    • 操作系统的主要目标:方便,有效,开放,可扩充。
    • 最重要的两个目标是:方便与有效,有效性能提高资源的利用率和系统的吞吐量。
    • 操作系统(OS)是铺设在计算机硬件上的多层软件的集合
    • 操作系统发展的主要动力:①不断提高计算机资源的利用率 ②方便用户 ③硬件的更新迭代 ④计算机体系结构的不断发展 ⑤不断提出新的需求
    • 操作系统的发展过程
    • 操作系统四大基本特征:并发,共享,虚拟,异步
    • 并发是宏观上同时发生,微观上交替运行。并行是宏观上同时发生,微观上同时运行。
    • 共享分为互斥共享,同时共享。并发与共享是操作系统(OS)最基本的两个特征,二者相互存在,因为有了并发,所以产生了共享问题。
    • 虚拟分为时分复用(虚拟处理机,虚拟设备)和空分复用(虚拟存储)。
    • 异步:进程是以人们不可预知的速度往前推进的,此称为进程的异步性。
    • 操作系统的主要功能:处理机管理(进程管理),存储器管理,设备管理,文件管理,操作系统与用户之间的接口。
    • 用户接口:联机用户接口(cmd),联机用户接口(批处理文件bat),图形用户接口(图形用户界面)。程序接口:系统调用(API)。
    • OS系统结构:传统操作系统结构,微内核OS(用到C/S模式)。
    • 操作系统中的C/S结构是指将一些操作系统需要处理的功能以服务端(程序)的方式完成,用户自己的程序相当于客户端,操作系统的服务通过服务端然后将讯息通过操作系统内核传递到客户端(我们自己的程序)从而完成进程管理等一些操作系统应该完成的功能。对于Windows系统而言服务一般运行在系统用户的会话0上,而用户自己的程序运行在其他用户的其他会话上。

    进程

    • 单道批处理程序,程序顺序执行的特征:顺序性,封闭性(独占资源),可再现性。
    • 多道批处理程序,程序并发执行的特征:间断性,失去封闭性,不可再现性
    • 进程控制块(PCB):在Windows系统中就是进程内核对象(KPROCESS),KPROCESS是进程对象(EPROCESS)的第一个字段而且都位于内核空间中。进程环境块(PEB)位于用户空间中。
    • 进程是系统进行资源分配的最小独立单位,线程是进行调度的最小独立单位。
    • 进程的各个状态的转换,其中在进程创建时如果系统的性能和内存的容量均允许的情况下进程创建进入活动就绪,如果性能和容量不允许则进入静止就绪。
    • 进程控制块(PCB)的作用:①作为独立运行基本单位的标志 ②能实现间断性运行方式 ③提供进程管理所需信息 ④提供进程调度所需的信息 ⑤实现与其他进程的同步与通信
    • PCB的组织方式:线性方式,链式方式(多个状态队列),索引方式(各个状态索引表)。
    • OS内核三种最基本的支持功能:中断处理,时钟管理,原语操作。
    • OS内核的资源管理功能:进程管理,存储器管理,设备管理
    • 进程的创建过程:①创建一个空的PCB,申请获得一个唯一进程标识符 ②申请获得其他资源 ③填充PCB ④将进程加入就绪序列。
    • 引起进程阻塞的原因:①请求某种资源失败 ②等待某种操作完成 ③新数据尚未到达 ④等待新任务到达
    • 进程同步:①硬件同步机制 ②信号量同步机制 ③管程机制
    • 硬件同步机制:①关中断 ②利用Test-and-Set(TS)指令 ③利用Swap指令(为每一个临界资源设置一个全局变量)。
    • 信号量机制:①互斥型信号量,一类资源数目为一(wait,Signal简单的P,V操作) ②记录型信号量,一类资源数目多个(支持让权等待) ③And型信号量,多类资源数目为一个(Swait(资源1,资源2,...,资源n)) ④信号量集,多类资源数目为多个(Swait(s1,t1,d1, ... , sn,tn,dn))。
    • 管程机制:所有的进程在访问临界资源时,都只能通过管程进行间接访问,而管程只允许一个进程进入管程,执行管程内的过程,从而实现进程互斥。
    • 进程同步实例:生产者-消费者问题(利用记录,And信号量,管程),哲学家进餐问题(利用记录,And信号量),读者写者问题。
    • 进程间通讯(IPC):①共享存储器系统(共享内存,内存映射文件等) ②管道通信系统(命名/匿名管道,实际也是基于内存映射文件) ③消息传递系统(直接方式,直接将消息插入目标进程消息队列WM_COPYDATA消息。间接方式:通过邮件槽) ④客户机-服务器系统(C/S结构,套接字和远程过程调用RPC)。
    • 邮件槽是消息传递系统中的间接消息传递,通过以随机存储器(RAM)上的公共缓冲区为中间体(这个中间体一般称为邮箱或信箱),通信进程双方通过此数据结构(信箱)进行存取消息。
    • 引入进程的目的:使程序能够并发执行,以提高资源的利用率和系统的吞吐量
    • 引入线程的目的:减少并发程序在时空上的开销,提高程序的并发执行性能
    • 线程控制块(TCB):在Windows中TCB就是线程内核对象KTHREAD,KTHREAD是线程对象ETHREAD的第一个字段都位于内核空间中。线程环境快(TEB)位于用户空间中。
    • 线程的实现方式:内核支持线程(KST),用户级线程(ULT)。有些OS将KST与ULT结合实现线程(一对一,多对一,多对多),Windows NT采用的就是一对一的方式。

    处理机调度与死锁

    • 处理机调度层次:高级调度(长程调度或作业调度),低级调度(短程调度或进程调度),中级调度(内存调度)。
    • 作业:程序 + 数据 + 作业说明书
    • 作业控制块TCB为了管理和控制作业
    • 作业三种状态:后备状态,运行状态,完成状态。三种阶段:收容阶段,运行阶段,完成阶段。
    • 作业调度主要任务:①接纳多少个作业 ②接纳哪些作业
    • 作业调度算法:FCFS先来先服务算法(只考虑等待时间),短作业调度算法(只考虑运行时间),优先级调度算法(基于紧迫程度),高响应比优先调度算法(既考虑等待时间又考虑运行时间)。
    • 作业响应时间 = 作业等待时间 + 作业运行时间
    • 作业响应比(作业带权周转时间) = 作业响应时间 / 作业运行时间
    • 作业平均周转时间 = 各个作业的响应时间之和 / 作业个数
    • 进程调度:非抢占式(处理机分配给某个进程后就让他一直运行下去不被打断),抢占式(防止一个进程长时间占用处理机)
    • 抢占式原则:优先权原则(基于进程的紧迫程度),短进程原则,时间片原则(当进程的一个时间片完后把处理及分配给其他进程)
    • 进程调度算法:轮转调度算法,优先级调度算法,多队列调度算法,多级反馈调度算法,基于公平原则的调度算法
    • 资源的分类:可重用资源(资源数目固定),可消耗资源(可由进程创建和消耗)。可抢占性资源(例如CPU和主存,不会引发死锁),不可抢占性资源(打印机和磁带,会引发死锁)
    • 产生死锁的必要条件:①互斥条件 ②请求和保持条件(自己拥有一个资源,又去请求一个新的资源) ③不可抢占条件(已拥有资源不能被抢占) ④循环等待条件
    • 预防死锁:①破坏请求和保持条件(第一种协议,一次性把所有需要的资源申请到。第二种协议,申请的资源使用后就应尽快释放) ②破坏不可抢占条件(当自己已经保持一个不可抢占资源的进程又去申请新的资源得不到满足时,应该把自己已经申请的资源都释放掉,待虽后使用时在重新申请) ③破坏循环等待条件
    • 避免死锁:尽量让进程处于安全状态
    • 死锁的检测与解除。死锁状态的充分必要条件:当且仅当S状态的资源分配图是不可简化的(死锁原理)。死锁解除的方法:①抢占资源(从一个或多个进程中抢占资源分配给多个死锁进程) ②终止或撤销进程(终止或一个或撤销一个或多个死锁进程,打破循环)

    存储器管理

    • 存储器具有多层结构
    • 高速缓存:为了缓解CPU运行速度过快与主存储器访问速度过慢导致的速度不匹配的问题引入了高速缓存,先将
      主存储器中的部分数据放入高速缓存中(有可能是两级或多级缓存)
    • 磁盘缓存:为了缓解辅存的I/O访问速度过慢与主存储器访问速度过快导致的速度不匹配的问题(磁盘缓存实际是占用了主存储器的空间,而高速缓存是独立存在的空间)
    • 程序的装载方式:①绝对装入 ②可重定位装入 ③动态运行时装入
    • 动态运行时装入:因为装入内存的程序经常会被与页交换文件换入换出,而其物理位置在交换前后可能会发生变化,又因为程序中有一些绝对地址(全局变量...),位置改变则其地址也改变,所以一般运行时装入程序在把模块装入内存后并不直接把模块中的逻辑地址变为物理地址,而是在程序运行时才进行这种变换(借助于重定位寄存器)
    • 程序链接方式: ①静态链接(静态文件) ②动态链接(导入库文件和动态库文件) ③运行时链接(运行时LoadLibrary()加载dll)
    • 连续分配存储管理方式:单一连续分配,固定分区分配,动态分区分配,动态可重定位分区分配。
    • 单一连续分配:在单道批处理程序中存储器被分为用户区和系统区两部分。
    • 固定分区分配:多道程序在内存中,把内存分成固定大小的区块供程序使用。
    • 动态分区分配:根据进程需要动态分配存储空间。
    • 紧凑/拼接:为了减少内存地址碎片化,会把一些程序进行拼接从而腾出更大的连续内存空间供其他程序使用。
    • 动态重定位:因为运行时装入程序的逻辑地址并不会立即变为物理地址,当程序被拼接移动时会让重定位寄存器保存新的起始地址,而绝对地址的值 = 重定位寄存器的值 + 相对地址的值。
    • 对换:是指把内存中暂时不能运行的进程的程序和数据换出到外存上,以便腾出空间在把已经具备运行条件的进程或数据换入内存(对Windows而言这个外存就是页交换文件)
    • 对换类型:整体对换,页面对换(windows就是页面对换)
    • 磁盘空间文件区:磁盘大部分空间都是文件区,管理此空间的主要目标是提供文件存储空间的利用率
    • 磁盘空间对换区:管理此空间的主要目标是提高进程换入换出的速度(访问速度)
    • 连续分配内存会形成很多“碎片”,为了解决这一问题有三种方式管理内存:①分段存储管理方式 ②分页存储管理方式 ③段页式存储管理方式(Windows采用的就是这种)
    • 分页存储管理方式:其将逻辑地址空间(虚拟地址空间)分成各个页面,通过页面映像表映射到对应的物理内存上
    • 段页式存储管理方式,windows系统中的CS,SS等段寄存器被称为段选择器,通过局部描述符表(LDT)和全局描述符表(GDT)中索引出段起始地址,然后与逻辑地址相加形成32位线性地址,然后线性地址通过分页机制映射到物理地址对应的内存上。
    • IDT是中断描述符表,缺页中断是内中断不可屏蔽。

    虚拟存储器

    • 局部性原理:时间局部性(一条指令在执行不久后有可能会被在此执行),空间局部性(某个存储单元被访问后,有可能其周围的内存会紧接着被访问)
    • 虚拟存储(虚拟内存)技术基于局部性原理,将程序的一部分调入内存先执行,如果运行时发现指令不在内存中则发生缺页中断,中断处理程序将从外存(页交换文件)中把页面调入内存。
    • 虚拟存储器的特征:多次性(不必一次性将作业载入内存中),对换性(将程序的各个部分换入换出),虚拟性(逻辑上扩充了内存)
    • 虚拟存储器允许将作业分多次调入内存,因此其是建立在离散分配存储器管理的方式,不能连续分配了!
    • 缺页率 = 访问不存在的页面数 / (访问正确的页面数 + 访问不存在的页面数)

    输入输出系统

    • I/O系统基本功能:隐藏物理设备细节,与设备的无关性,提高处理机和I/O设备的利用率,对I/O设备进行控制,确保对设备的正确共享,错误处理。
    • I/O系统的层次结构
    • I/O系统的接口:块设备接口(磁盘,光盘),流设备接口(键盘,鼠标),网络通信接口。
    • 中断:外中断(外部设备引起的,可屏蔽),内中断(又称异常,程序本身内部引起的,不可屏蔽)
    • 缓冲区:引入缓冲区的原因有 ①缓和CPU与I/O设备间速度不匹配的矛盾 ②减少对CPU的中断频率 ③解决数据粒度不匹配的问题 ④提高CPU和I/O设备之间的并行性
    • 缓冲区的分类:单缓冲区,双缓冲区,多缓冲区,缓冲池用于管理多个缓冲区。
    • 缓冲池的三个队列:空白缓冲队列,输入队列,输出队列。
    • 缓冲区的四种工作方式:收容输入,提取输入,收容输出,提取输出。
    • 对I/O设备的控制方式:程序直接控制方式,中断驱动方式,DMA方式,通道控制方式。

    文件管理

    • 文件的建立时间:指的是文件的最后一次修改的时间。
    • 文件的逻辑结构:无结构文件(普通的文本文件等),有结构文件(数据库表文件等)。
    • 文件的操作:创建删除,读写,打开关闭。
    • 一个文件对应一个文件控制块(FCB)。
    • 目录结构:一级(不允许文件的重命名),两级(不能对文件进行分类),多级树形(不方便文件共享),无
      环图目录结构。
    • 绝对路径:从根目录出发的文件名,相对路径:从当前目录出发的文件名。
    • 索引结点:除文件名之外的所有信息都放到索引结点中,每一个文件对应一个索引点

    磁盘管理

    • 磁盘容量大存取速度快是实现虚拟存储器和存放文件最理想的位置。
    • 文件组织方式:连续组织方式(为文件分配连续的存储空间),链接组织方式(以链表方式分配不连续的空间),索引组织方式。
    • 连续组织方式优点:顺序访问容易,顺序访问速度快。
    • 连续组织方式缺点:要求为一个文件分配的存储空间。必须事先知道文件的大小,不能灵活的删除和插入记录,文件动态增长难。
    • 链接组织方式:隐式链接(指文件目录的每一个目录项都包含头指针和尾指针),显式链接(有一张链接表,存放各个头指针)
    • FAT技术:微软利用文件分配表FAT来记录每个文件中所有盘块的链接,FAT能把一个物理磁盘分为四个逻辑磁盘(每个逻辑磁盘也称为卷)。现代操作系统中一个物理磁盘可以分为多个逻辑磁盘,一个逻辑磁盘也可以由多个物理磁盘组成。
    • NTFS技术:专门为Windows NT开发的文件系统,NTFS以簇作为磁盘空间分配和回收的基本单位,一个文件占用多个簇,一个只属于一个文件。NTFS将卷上蔟的大小称为“卷因子”,其大小是物理磁盘扇区的整数倍。
    • 文件存储空间的管理:①空闲表法(将所有的空闲块记录在一个表中) ②空闲链表法(空闲块组成一个链表) ③位示图法(用一串二进制反映磁盘空间中分配使用情况) ④成组链接法(多个空闲链)
  • 相关阅读:
    CodeForces Gym 100500A A. Poetry Challenge DFS
    CDOJ 486 Good Morning 傻逼题
    CDOJ 483 Data Structure Problem DFS
    CDOJ 482 Charitable Exchange bfs
    CDOJ 481 Apparent Magnitude 水题
    Codeforces Gym 100637G G. #TheDress 暴力
    Gym 100637F F. The Pool for Lucky Ones 暴力
    Codeforces Gym 100637B B. Lunch 找规律
    Codeforces Gym 100637A A. Nano alarm-clocks 前缀和
    TC SRM 663 div2 B AABB 逆推
  • 原文地址:https://www.cnblogs.com/revercc/p/14256899.html
Copyright © 2011-2022 走看看