一、概述
-
计算机系统组成:硬件+操作系统
-
操作系统定义:操作系统是控制和管理计算机硬件和软件资源,合理组织计算机工作流程以及方便用户的程序集合
- 资源分配器、控制程序、内核程序
- 充当用户和硬件之间的媒介,向上(用户)提供服务,向下(硬件)提供管理
-
操作系统的功能:处理器管理、存储器管理、设备管理、文件管理、作业管理
-
操作系统的目标:方便性(对用户)、有效性(对底层)
操作系统的发展阶段
- 手工发展阶段
- 批处理阶段:解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾。分为单道批处理系统和多道批处理系统
- 分时操作系统:多用户通过终端同时共享一台主机,重点是交互
- 实时操作系统:在某个时间限制内完成某些紧急任务而不需要时间片排队
- 响应时间:从终端用户发出一条命令开始,到系统处理完这条命令并做出回答为止所需的最大时间间隔
操作系统的特性
- 并发性:多个事件在同一时间间隔内发生
并发:同一时间间隔进行
并行:同一时刻进行
- 共享性:系统中的硬件和软件资源可以为多个用户同时使用
- 异步性:内存中多个进程均按各自独立的、不可预知的速度向前推进
- 虚拟性:把物理上的一个实体变为逻辑上的多个对应物
两种服务方式:
- 系统调用:系统调用本身是一个由若干条指令构成的过程
- 系统程序:现代计算机系统往往都有一个系统程序包,它包含了系统提供的大量程序,用于解决带有共性的问题,并为程序的开发和执行提供了一个方便的环境
体系结构
-
作业:计算机系统按指定的步骤,为用户一次上机解题所完成工作的总和。由源程序、数据、作业处理的说明组成
-
设备控制器通过中断通知CPU其操作完成情况
-
中断机制:使I/O操作和指令执行并行起来
-
I/O方式包括同步方式和异步方式
-
系统组成:进程管理、主存管理、辅存管理、I/O管理、文件管理、(保护系统、联网、命令解释系统)
-
进程:进程是程序的执行,是运行着的程序
-
系统调用:提供了进程与操作系统间的接口
-
操作系统的软件体系结构发展:单一结构→核心层次结构→微内核结构
-
微内核结构:不是完整的操作系统,只为构建通用操作系统提供基础。以微内核为OS核心,以客户/服务器为基础,采用面向对象程序设计特征
二、进程管理
1.进程
- 引入目的:更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性(最基本的两个特性)
- 定义:程序机器数据在计算机上的一次运行活动,是动态的
- 进程的构成:PCB、程序段、数据段
- PCB:
- 程序段:程序可被多个进程共享,即多个进程可运行同一个程序
- 数据段:可以使进程对应的程序加工处理的原始数据,也可以是程序执行时产生的数据
- PCB是进程存在的唯一标识
-
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
-
进程的特征:动态性、并发性、独立性、异步性、结构性
-
进程的基本状态:运行态、就绪态、阻塞态、创建态、结束态
- 进程的通信:共享存储、消息传递、管道通信
2.线程
- 引入线程的目的:减小程序在并发执行时的时空开销
- 是一个基本的CPU执行单元,也是程序执行流的最小单元
- 线程的属性
3.处理机调度
- 作业调度(高级调度):内存与外存之间的调度
- 内存调度(中级调度):挂起态和就绪态间的相互转换
- 进程调度(低级调度):就绪态转到运行态
- 两种调度方式:非剥夺调度方式、剥夺调度方式
调度准则
- CPU利用率
- 吞吐量:单位时间内CPU完成的作业数量
- 周转时间:从作业提交到作业完成所经历的时间
- 等待时间:进程处于等处理机状态的时间之和
- 响应时间:从用户提交请求到系统首次产生相应所用的时间
- 调度算法:先来先服务(FCFS)、短作业优先(SJF)、优先级调度、时间片轮转调度、多级反馈队列调度算法
4.进程同步与互斥
- 临界资源:一次只允许一个进程使用的资源
- 临界区:访问临界资源的代码段
实现同步
实现互斥
- 软件实现法
-
单标志法
-
双标志先检查法
-
双标志后检查法
-
Peterson算法
- 硬件实现方法
-
中断屏蔽法
-
TestAndSet指令
-
Swap指令
信号量
- wait(S):P操作,占用资源
- signal(S):V操作,释放资源
生产者消费者问题
5.死锁
- 死锁:多个进程因竞争资源而造成的一种相互等待的局面,若无外力作用,进程将无法向前推进
- 死锁产生的原因:系统资源的竞争
- 死锁产生的必要条件:互斥条件、不剥夺条件、请求并保持条件、循环等待条件
死锁预防:破坏其四个必要条件之一
三、内存管理
1.概念
- 内存管理的功能:内存空间的分配与回收、地址转换、内存空间的扩充、存储保护
程序的连接方式
- 静态链接:在程序运行之前,先讲各目标模块及它们所需要的库函数链接成一个完整的可执行程序,以后再不拆开
- 装入时动态连接:装入内存时边装入边链接
- 运行时动态连接:需要该模块时才链接
内存装入方式
- 绝对装入:
- 可重定位装入(静态重定位)
- 动态运行时装入(动态重定位)
连续分配管理方式
- 单一连续分配
- 固定分区分配
- 动态分区分配
动态分区分配算法
- 首次适应算法:空闲分区按地址递增的次序链接
- 最佳适应算法:空闲分区按容量递增的方式形成分区链
- 最坏适应算法:空闲分区按容量递减的方式形成分区链
- 临近适应算法(循环首次适应算法):与首次适应算法不同的是,分配内存时从上次查找结束的位置开始继续查找
内存扩充技术
- 覆盖
- 交换
非连续分配管理方式
页式存储管理
- 思想:将主存空间划分为大小相等且固定的块,作为主存的基本单位,每个进程也以块为单位划分,进程在执行时,以块为单位逐个申请主存中的块空间
-
页表寄存器(PTR):存放页表在内存中的起始地址F和页表长度M。进程未执行时,页表的起始地址和页表长度放在PCB中,当进程被调度时,操作系统内核将他们放到PTR中
-
快表——联想寄存器(TLB):存储当前访问的若干表项
- 多级页表
段式存储管理
- 分段管理的提出考虑了用户和程序员,以满足方便编程、信息保护和共享、动态增长等多方面的需求
段页式存储管理
2.虚拟内存管理
请求分页管理方式
页面置换算法
- 最佳置换算法(OPT)
- 是一种理想算法
- 先进先出置换算法(FIFO)
- 有抖动现象:分配的物理块数增大而页故障数不减反增
- 最近最久未使用置换算法(LRU)
- 性能最接近最佳置换算法
- 时钟置换算法(CLOCK)
页面分配策略、抖动、工作集
置换策略
调入策略
页面调入来源
抖动现象
工作集
四、文件管理
1.磁盘
2.磁盘调度
- 目的:减少寻道时间、调度公平性、调度高效性
调度方法
- 先来先服务
- 最短寻到时间优先(SSTF):优先选择距离当前磁头最近的访问请求进行服务
- 扫描算法(SCAN)
3.磁盘管理
- 包括格式化、引导区、坏区
格式化
- 在逻辑盘上注入文件系统
4.可靠性
- SFT-I:双份目录和双份文件分配表
- SFT-II:磁盘镜像、磁盘双工
- SFT-III
廉价磁盘冗余阵列RAID
特点:并行较差存取
优点:可靠性高、磁盘I/O速度高、性能/价格比高
5.文件系统的基本概念
- 存储信息和检索信息
- 文件:信息以文件的形式存储在磁盘或其他外部介质上
- 文件是一组带标识的、在逻辑上有完整意义的信息项的序列
文件的分类
- 按信息保存期限分类:临时文件、永久文件、档案文件
- 按文件保护方式分类:只读文件、读写文件、可执行文件
- 按文件的性质和用途分类:系统文件、用户文件、库文件
- 按文件的逻辑结构分类:流式文件(字节流)、记录式文件
- 按文件的物理结构分类:顺序文件、链接文件、索引文件
6.文件结构
- 逻辑结构(从用户角度)
- 无结构文件:流式文件
- 有结构的文件:记录文件
- 物理结构(从系统角度)
-
顺序结构(连续)
-
链接结构
-
索引结构
7.目录结构
- FCB:文件控制块
磁盘上唯一的全局数据结构
- 文件目录:FCB的有序集合
- 目录文件:将文件目录以文件的形式保存在外存
- 目录结构的目的:高效性、重命名、逻辑组
8.空闲空间管理
管理方法
- 位示图
只适合小空间的管理- 成组链接法
9.文件系统实现
数据结构
文件执行
- 文件操作
- 文件执行
- 文件共享:一个文件被多个用户或程序使用。
能节省时间和存储空间,减少用户工作量;进程间通过文件交换信息
10.可恢复性问题
-
一致性检查
-
安全性写
-
可恢复文件系统
刷题
- 操作系统是一种系统软件
- 现代操作系统中最基本的两个特征是并发和共享
- 用户可以通过设备管理方式和系统调用来使用计算机
- 多道程序设计中,失去了顺序性和封闭性
- 操作系统最终被加载到RAM
- 分时系统中,时间片一定时,用户越多,相应时间越长
- 中断处理是操作系统必须提供的功能
- 进程调度不需要硬件的支持
- 用户态到核心态的转换是由硬件中断机制完成的
- 访管指令将用户态变为核心态,近在用户态下使用
- 线程是处理机调度的基本单位,可以独立执行程序
- 进程是拥有资源的基本单位,线程是处理机调度和分派的单位
- 线程没有独立的地址空间,而是共享所属进程的空间
- 进程的最大数目受内存大小限制
- 进程自身决定从运行态到阻塞态
- 当进程处于临界区时,只要不破坏临界资源的使用规则,就可以进行处理机调度
- 在操作系统中,P/V操作是一种低级进程通信原语
- 进程中的共享程序段可能同时被多个进程使用,所以必须可重入编码
- 信号量机制实现了让权等待
- 引入多道程序技术的前提条件之一是系统具有中断功能
- 物理地址 = 页面大小*块号+偏移量
- 页表的初始地址放在寄存器中
- 分段是在用户编程时决定的
- 分段存储管理更有利于程序的动态连接
- 将作业的逻辑地址变为物理地址的过程叫地址重定位
- 段页式存储管理中,用分段的方法管理用户地址空间,用分页的方法管理物理存储空间
- 虚拟存储器的最大容量由计算机的地址结构决定