操作系统的概述
操作系统的定义:能够有效地组织和管理系统中的软硬件资源,合理的组织计算机系统工作流程,控制程序执行,并且向用户提供一个良好的接口。
操作系统的三个作用
- 管理计算机中运行的程序和分配的各种软硬件资源
- 交互界面
- 提供高效率平台
- 四个特征
- 并发性
- 共享性
- 虚拟性
- 不确定性(异步性)
操作系统的功能
- 进程管理
- 文件管理
- 存储管理
- 设备管理
- 作业管理
操作系统的分类
- 批处理操作系统: 单道批处理和多道批处理
- 分时操作系统:一个计算机系统与多个终端设备连接,将cpu的工作时间划分为多个短的时间片,轮流为终端用户服务
- 实时操作系统:指的是计算机对于外来信息能够以足够块的速度进行处理,并且在被控对象允许的范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性保障
- 网络操作系统: 联网的计算机能够方便且有效的共享网络资源。三种: 集中模式(中心化),c/s p2p
- 分布式: 多个计算机组成的系统,没有主次
- 微型计算机操作系统: win linux 都属于这一种。
嵌入式操作系统
- 微型化
- 可定制
- 实时性
- 可靠性
- 易于移植
嵌入式系统初始化过程按照自底向上,从硬件到软件的次序依次为:片级初始化-> 板级初始化->系统初始化
进程管理
进程的组成: 进程控制块pcb(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需的数据)
进程的状态 主要考三态图
- 运行态:正在运行
- 阻塞态:缺少运行其他必要数据
- 就绪态:缺少计算资源(cpu)
前驱图
用来表示哪些任务可以并行执行,那些任务之间由顺序关系,确定了任务间的并行关系,任务间的先后顺序。
进程资源图
用来表示进程和资源之间的分配和请求关系
- p代表进程, R代表资源
- 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续
- 非阻塞节点: 某进程锁清秋的资源还有剩余
- 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
进程的同步和互斥
- 临界资源: 各进程间需要以互斥方式对其进行访问的资源
- 临界区: 进程中对临界资源实施操作的程序
- 互斥: 某资源在同一时间只能由一个任务单独使用,使用时需要加锁
- 同步:多个任务可以并发执行,
- 互斥信号量: 对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初始值为1
- 同步信号量:对共享资源访问控制,初值一般时共享资源的数量。
进程同步与互斥
- p操作: 申请资源 s = s-1 (p(s)) 若s>= 0 则执行p操作的进程继续执行; 若s<0 , 则置该进程为阻塞状态,并将其插入阻塞队列
- v操作: 释放资源, s= s+1 若s>0 则执行v操作的进程继续执行; 若s<= 0 则从阻塞状态唤醒一个进程,并将其插入就绪队列, 然后v操作可以继续执行。
经典问题: 生产者和消费者问题
进程调度
- 先来先服务
- 时间片轮转
- 优先级调度
- 多级反馈调度
死锁
当一个进程在等待永远不可能发生的时间时, 就会产生死锁。
必要条件:
- 资源互斥
- 每个进程占有资源并等待其他资源
- 系统不能剥夺进程资源
- 进程资源图是一个环路
死锁产生后,解决措施时打破四大条件
- 死锁预防:
- 死锁避免:一般采用银行家算法来避免,银行家算法就是计算出一条不会死锁的资源分配方法,才分配资源,否则不分配。
- 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到发生死锁,则解除
- 死锁解除:强制剥夺资源或者撤销进程等
- 死锁资源计算:
需要了解一下银行家算法
银行家算法的考法,1. 计算剩余资源, 2.判断进程执行序列。
线程
传统的进程有两个属性: 可拥有资源的独立单位; 可独立调度和分配的基本单位。
- 原因: 进程开销大,线程开销小
线程时进程中的一个实体, 是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源,它可以同属于一个进程的其他线程共享进程所拥有的全部资源。
(tcb:线程控制块)
分区存储管理
所谓分区存储就是整村,将某进程运行所需要的内存整体一起分配给他
- 固定分区: 静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去。
- 可变分区: 动态分区
- 可重定位分区
应该可以简单抽象为静态变量,malloc realloc
分区算法:
- 首次适应:每次都从头找
- 最佳适应:内存块从大到小排序,找到合适的,分割一块
- 最差适应
- 循环首次适配
分页存储管理
逻辑页分为页号和页内地址,页内地址就是物理的偏移地址,而页号与物理块号并非按照顺序对应,需要查询页表,才能得知页号对应的物理快好,再利用物理块号加上便宜地址才能得出真正运行时的物理地址
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销,可能产生抖动现象。
页面置换算法
- 最优算法:理论算法,选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的
- 先进先出:会产生抖动现象
- 最近最少使用: 不会产生抖动现象
- 淘汰原则:优先淘汰最近未访问的
块表
- 一块最小容量的相连的存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号
- 块表存在cache中
分段存储管理
- 将进程空间分为一个个段,每段有段号和段内地址,与分页式存储不同的是,每段物理带下不同,分段是根据逻辑整体分段的,因此段表与页表的内容不同,页表中直接是逻辑页号对应物理块号,段表有段长和基址两个属性,才能去欸的那个一个逻辑段在物理段中的位置。
段页存储
对进程空间先分段在分页,
优点:空间浪费小,存储共享容易,存储保护容易,能动态链接
缺点:复杂,性能低。
设备管理
设备是计算机系统与外界交互的工具,具体负责计算机与外部的输出输出工作
分类
- 按数据组织分类:块设备,字符设备
- 功能: 输入 输出 存储 网络 供电
- 资源分配角度: 独占 共享 虚拟
- 数据传输速率: 低速设备 中速 高速
设备管理的任务: 保证多到程序环境下,多个进程使用时,分配管理设备
IO
层次 | 功能 |
---|---|
用户进程 | 进行IO调用、格式化io、spooling |
设备无关软件 | 命名、保护、阻塞、缓冲、分配 |
设备驱动 | 设置设备寄存器;检查状态 |
中断处理程序 | 当IO结束时唤醒驱动程序 |
硬件 | 执行IO操作 |
一般的硬件与系统处理的交互逻辑 硬件-> 中断-> 驱动-> 缓存-> 用户
设备管理技术
spooling技术(外围设备联机操作技术) 就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样无论多少进程都可以用这一台打印机都可以使用
说白了就是建立任务队列
文件管理
文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合
信息项: 构成文件内容的基本单位,可以是一个字符,也可以是一个记录
文件管理系统: 操作系统中实现统一管理的一组软件和相关数据的集合,专本负责管理和存取文件信息的软件机构
文件的结构
逻辑结构
- 有结构的记录式文件
- 无结构的流式文件
物理结构
- 连续结构:连续存储
- 链接结构:不是软连接之类的,是链表的形式存储
- 索引结构:将多级上的连续文件信息
- 多个物理块的索引表: 由文件创建时由系统创建
索引文件结构
索引中有直接索引 直接指向物理盘块
间接地址索引: 多级, 一级间接地址索引可以指向1024个直接索引
二级间接地址索引可以指向一级间接地址索引
文件目录
文件控制块中包含三六信息:
- 基本信息类、存取控制信息类、存取控制信息、使用信息类
- 文件控制块的有序结合称为文件目录
- 相对路径
- 绝对路径
- 全文件名 = 绝对路径+文件名
文件存储空间管理
文件存储方法指的是 读写文件存储器上的一个物理块的方法,有顺序 随机存储
管理方法
- 空闲区表
- 位示图, 外存上建立一张位示图,记录文件存储器的使用情况,每一位对应文件存储器上的一个物理块,取0/1 标识空闲/占用
- 空闲块链
- 成组链接法
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。