目录
前言
操作系统引论
操作系统的目标
操作系统的基本特征
操作系统的主要功能
系统调用的基本概念
进程的描述与控制
进程和程序的区别
程序为什么不能并发执行(引入进程的原因)
进程的基本状态与转换
进程通信的类型
线程的概念以及与进程的区别及引入线程的原因
处理及调度与死锁
处理机调度的层次
死锁的定义、必要条件与处理方法
进程同步
存储器管理
高速缓存和磁盘缓存
程序的接入与链接
程序的链接
连续分配存储管理方式
分页与分段的区别
虚拟存储器
虚拟存储实现原理
多道程序与”抖动“
”抖动“的预防方法
输入/输出系统
中断的简介
与设备无关软件的基本概念
缓冲引入的原因
文件管理
文件操作
文件目录
文件共享
磁盘存储器管理
外存的组织方式及其他点
提高磁盘I/O速度的途径有哪些、特点
前言
该篇文章是操作系统课程总复习的结构,希望能够为进行期末复习或者对操作系统感兴趣的同学或专业人员提供一定的帮助。
-  操作系统引论-  操作系统的目标-  方便性:提供各种命令操纵计算机,极大地方便了用户 
-  有效性:提高OS的资源利用率,提高系统的吞吐量 
-  可扩充性:操作系统必须具有很好的可扩充性,方便添加新的功能和模块 
-  开放性:遵循国际标注而开发的硬件和软件能够彼此兼容,方便实现互联 
 
-  
-  操作系统的基本特征-  并发 
-  共享 
-  虚拟 
-  异步 
 
-  
-  操作系统的主要功能-  处理机管理功能 
-  存储器管理功能 
-  设备管理功能 
-  文件管理功能 
-  接口管理功能 
-  现代操作系统的新功能 -  保障系统安全 
-  支持用户通过联网获取服务 
-  可处理多媒体信息 
 
-  
 
-  
-  系统调用的基本概念-  系统调用是操作系统给程序员的唯一接口。程序员利用系统调用,在源程序动态请求和释放资源,并调用系统中已有的系统功能来完成那些与硬件相关的工作以及控制程序的执行速度等。因此,系统调用像是一个“黑箱子”,对用户屏蔽了操作系统的具体操作而只提供有关的功能 
 
-  
 
-  
-  进程的描述与控制-  进程和程序的区别-  状态:程序是静态的,只有在执行时才会变为动态的进程;而进程是动态的,表示程序的执行过程 
-  存储位置: 程序通常存储在非易失性的存储介质;而进程则存储在易失性的存储介质中 
-  独立性:进程具有独立性,即每个进程有独立的地址空间,有自己的资源;而程序则没有这种独立性 
-  并发性: 程序无法并发执行,只能顺序执行;而进程可以并发执行 
-  生命周期:程序的生命周期是永久的,除非它被明确删除;而进程的生命周期是临时的,只是程序运行时存在 
-  系统资源:进程是操作系统分配资源的基本单位,包括CPU时间、内存空间等;程序则不需要这些资源 
 
-  
-  程序为什么不能并发执行(引入进程的原因)-  程序本身只是一组静态的指令集合,只能被顺序执行。每个程序的指令都是固定的,顺序不能改变,因此它们不能并发执行。而且,程序没有自己的状态和上下文信息,无法记住上次执行到哪个指令,无法在中断后恢复执行。 而进程则是为了实现对多个程序的并发执行,实现多任务并发执行,提高系统的效率和响应性。 
 
-  
-  进程的基本状态与转换-  就绪状态:指进程已经处于准备好执行的状态,即进程已经分配到除CPU以外的所有必要资源后,只要再获得CPU,即可立即执行 
-  执行状态:指进程获得CPU后其程序”正在执行“这一状态 
-  阻塞状态:正在执行的进程由于发生某时间而导致无法继续执行,即进程的执行收到了阻塞 
 
-  
-  进程通信的类型-  共享存储器系统 
-  管道通信系统 
-  消息传递系统 
-  客户机-服务器系统 
 
-  
-  线程的概念以及与进程的区别及引入线程的原因-  资源开销 
-  内存空间 
-  通信 
-  影响范围 
-  引入线程的原因是为了降低上下文切换的开销,提高多处理器系统的并发性能,并简化多任务之间的数据共享和通信 
 
-  
 
-  
-  处理及调度与死锁-  处理机调度的层次-  高级调度(长程调度、作业调度) -  对象:作业 功能:根据某种算法,决定将外存上处于后背队列中的几个作业调入内存,为他们创建进程、分配必要的资源,并将它们放入就绪队列 
 
-  
-  低级调度(短程调度、进程调度) -  对象:进程 功能:根据某种算法,决定就绪队列中的哪个进程获得处理机,并由分配程序将处理机分配给被选中的进程 
 
-  
-  中级调度(内存调度) -  主要目的是提高内存利用率环和系统吞吐量 
 
-  
 
-  
-  死锁的定义、必要条件与处理方法-  定义 -  如果一组进程中的每个进程都在等待仅由该组进程中的其他进程才能引发的事件发生,那么该组进程是死锁的 
 
-  
-  必要条件 -  互斥条件 -  进程对分配到的资源进程排他性使用,即在一段时间内,某资源仅能被一个进程占用 
 
-  
-  请求和保持条件 -  进程已经占有了至少一个资源,但又提出了新的资源请求,而被该请求的资源已经被其他进程占有,此时请求进程被阻塞,同时对自己占有的资源保持不放 
 
-  
-  不可抢占条件 -  进程已获得的资源在未使用完之间不能被抢占,只能在进程使用完成时释放 
 
-  
-  循环等待条件 -  指在死锁发生时,必然存在一个”进程-资源“循环链 
 
-  
 
-  
-  处理方法 -  预防 -  采用某种协议来预防或避免死锁,确保系统永远不会进入死锁状态 
 
-  
-  检测 -  允许系统进入死锁状态,但是会检测它,然后恢复 
 
-  
-  忽略 -  完全忽略这个问题,并假设系统永远不会发生死锁 
 
-  
 
-  
 
-  
 
-  
-  进程同步
- 该部分主要包括PV操作等编程内容,限于本篇格式不会上传代码,请自行查阅。
-  存储器管理-  高速缓存和磁盘缓存-  高速缓存:是现代计算机结构中的一个重要部件,它是介于寄存器和内存之间的存储器,主要用于备份内存中较常用的数据,以减少处理机堆内存的访问次数,可大幅提高程序执行速度 
-  磁盘缓存:由于目前磁盘的I/O速度远低于对内存的访问速度,为了缓和两者在速度上的不匹配,特设置了磁盘缓存,主要用于暂时存放频繁使用的一部分磁盘数据,以减少访问磁盘的次数 
 
-  
-  程序的接入与链接-  程序的装入 -  绝对装入方式:当计算机系统很小,仅能运行单道程序时,完全有可能知道程序将驻留在内存的什么位置,此时采用绝对装入方式 
-  可重定位装入方式:只能将目标模块装入内存中事先指定的位置,这只适用于单道程序环境 
-  动态运行转入方式:把装入模块装入内存后,并不会立即把模块中的相对地址变换为绝对地址,而是会把这种地址推迟到真正要执行时才进行 
 
-  
-  程序的链接-  静态链接 -  在程序运行之前,先将各目标模块及他们所需的库函数链接成一个完整的装配模块,以后不再拆开 
 
-  
-  装入时动态链接 -  将用户源程序编译后所得的一组目标模块,在装入内存时,采用这种方式 
 
-  
-  运行时动态链接 -  在执行过程中,当发现一个”被调用模块“尚未被装入内存时,立即由OS去找到该模块,将其装入内存,并链接到装入模块上 
 
-  
 
-  
 
-  
-  连续分配存储管理方式-  单一连读分配 
-  固定分区分配 
-  动态分区分配 
-  动态重定位分区分配 
 
-  
-  分页与分段的区别-  页是信息的物理单位 
-  页的大小固定且由系统决定 
-  分页的用户程序地址空间是一维的 
 
-  
 
-  
-  虚拟存储器-  虚拟存储实现原理-  分页 -  分页是将物理内存划分为固定大小的页,同样的,虚拟内存也被划分为固定大小的页,每个页对应一个内存地址 
 
-  
-  换页 -  当一个程序需要访问的页面不在物理内存中时,就会发生所谓的页面错误。此时,操作系统会选择一个物理内存中的页面,将其内容写回到磁盘,然后从磁盘读取需要的页面到物理内存,最后更新页表以反应新的虚拟页到物理页的映射 
 
-  
 
-  
-  多道程序与”抖动“-  多道程序与处理机的利用率 -  由于虚拟存储器系统能从逻辑上扩大内存,这时只需要装入一个进程的部分程序和数据,进程便可开始运行,希望在系统中能运行更多的进程,即增加多道程序度以提高处理机的利用率 
 
-  
-  产生抖动的原因 -  同时在系统中运行的程序太多,导致分配给每个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时会频繁地出现缺页,必须请求系统将所缺页调入内存 
 
-  
 
-  
-  ”抖动“的预防方法-  采取局部置换策略 
-  把工作集算法融入处理机调度中 
-  利用”L=S“准则调节缺页率 
-  选择暂停的进程 
 
-  
 
-  
-  输入/输出系统-  中断的简介-  中断是指CPU对I/O设备发来的中断信号的一种响应,CPU暂停正在执行的程序,保持CPU现场环境后,自动转去执行该I/O设备的中断处理程序。执行完后再回到断点,继续执行原来的程序。 
 
-  
-  与设备无关软件的基本概念-  通过物理设备名使用设备 
-  引入逻辑设备名 
-  实现从逻辑设备到物理设备名的转换 
 
-  
-  缓冲引入的原因-  缓冲CPU和I/O设备速度不匹配的矛盾 
-  减少CPU中断的频率,放宽对CPU中断相应时间的限制 
-  解决数据粒度不匹配的问题 
-  提高CPU和I/O设备之间的并行性 
 
-  
 
-  
-  文件管理-  文件操作-  打开:在用户和指定文件之间建立一个连接 
-  关闭:断开此连接 
 
-  
-  文件目录-  文件控制块和索引节点 
-  简单的文件目录 
-  树形目录 
-  无环图目录 
-  目录查询技术 
 
-  
-  文件共享-  利用有向无环图实现文件共享 
-  利用符号链接实现文件共享 
 
-  
 
-  
-  磁盘存储器管理-  外存的组织方式及其他点-  连续存储方式:顺序访问容易、顺序访问速度块 
-  链接组织方式:消除了外部碎片,提高了外存的利用率;非常容易插入、删除和修改记录;能适应文件的动态增长 
-  索引组织方式:支持直接访问;不会产生外部碎片 
 
-  
-  提高磁盘I/O速度的途径有哪些、特点-  途径 -  数据交付方式 -  数据交付 
-  指针交付 
 
-  
-  置换算法 
-  周期性地回写磁盘 
 
-  
-  特点 -  提高磁盘I/O速度的途径有以下几种,并且它们各自具有不同的特点: 1. 使用高性能磁盘驱动器:选择速度更快、响应时间更短的磁盘驱动器,比如固态硬盘(SSD),相比传统机械硬盘(HDD),SSD具有更快的读写速度和更低的访问延迟。 2. 实施磁盘级别的RAID:RAID(冗余磁盘阵列)是一种将多个磁盘驱动器组合在一起的技术,通过数据条带化、容错等技术,提高磁盘读写性能和数据冗余性。不同的RAID级别提供了不同的特点,如RAID 0提供了更高的性能,而RAID 1提供了更好的数据冗余。 3. 增加磁盘缓存:使用高性能磁盘缓存可以减少对物理磁盘的直接访问次数,从而提高磁盘I/O速度。常见的磁盘缓存技术包括硬件缓存(如磁盘阵列控制器中的缓存)和操作系统级别的缓存(如操作系统内核的文件系统缓存)。 4. 优化文件系统:选择合适的文件系统,并进行适当的优化配置,可以提高磁盘I/O性能。例如,在某些情况下,使用较小的簇大小可以提高小文件的读写性能,或者使用日志文件系统可以减少文件系统的写入延迟。 5. 分布式存储系统:通过在多个物理和逻辑节点之间分配和复制数据,分布式存储系统可以提供更高的磁盘I/O性能和容错性。这种系统可以通过并行处理和负载均衡来提高整体性能,并且可以通过添加更多节点来扩展存储容量和性能。 需要根据具体的应用场景和需求选择适合的方法,有时候可能需要结合多种优化措施来提高磁盘I/O性能。 
 
-  
 
-  
 
-