操作系统知识点总结

Posted 阿呆狐狸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统知识点总结相关的知识,希望对你有一定的参考价值。

第二章:进程管理

1、什么是进程:

  1. 进程的基本概念
  2. 进程的结构和特征
  3. 进程与线程

2、进程是怎样运行的:

  • 进程控制
  • 即os对进程实现有效的管理,包括创建、撤销、挂起、阻塞、唤醒、进程切换,os通过原语操作实现进程控制
  • 原语:
  • 原语由若干条指令组成,完成特定的功能,是一种原子操作
  • 原语的特点:
  • 原子操作,要么全做,要么全不做,操作过程不会被中断
  • 在管态/内核态/系统态下执行,常驻内存
  • 是内核三大支撑功能之一(中断处理、时钟处理、原语操作)
  • 整个操作系统所有的操作都是基于中断的
  • 每一个原语都是一小段程序
  • 专门用于控制进程的四种原语(原语有很多种,但是控制进程的有四种)
  • 创建原语 create
  • 阻塞原语 block
  • 唤醒原语 wakeup
  • 撤销原语 destroy
  • 挂起原语 suspend
  • 激活原语 active
  • 阻塞:当前进程调用阻塞原语(注意:阻塞是一种主动行为)
  • 阻塞状态没有人去唤醒就是死锁
  • 阻塞和唤醒是成对出现的,有阻塞就有唤醒,不然就成了死锁
  • 处理机调度:
  • 根据一定的算法和原则,将处理机资源进行重新分配的过程
  • 前提:进程数或者作业数远远大于处理机数
  • 目的:提高资源利用率,减少处理机空余时间
  • 调度程序:一方面要满足系统用户需求(快速响应),另一方面要考虑系统整体效果(系统平均周转时间)和调度算法本身的开销
  • 处理机调度的层次:
  • 高级调度/作业调度
  • 把后备作业调进内存(在内存中运行的是进程,没有运行的叫做作业)
  • 调入一次、调出一次
  • 调度频率最低
  • 中级调度/内存调度:
  • 将进程调致外存(挂起操作),条件合适在调回内存(激活操作)
  • 在内外存对换区进行内存对换(对换区是指在外存划出一片空间供内存使用,也叫做虚拟内存)
  • 低级调度/进程调度
  • 从就绪队列选取进程分配给处理机
  • 最基本的调度,频率非常高(相当于一个cpu时间片)
  • 处理机调度方式:
  • 抢占式(剥夺式)调度:
  • 立即暂停当前进程
  • 将CPU分配给另外一个进程
  • 原则:优先权/短进程优先/时间片原则
  • 非抢占式(非剥夺式)调度:
  • 若有进程请求执行
  • 等待当前进程完成或者阻塞
  • 适用于批处理,不适用于分时、实时系统。
  • 处理机调度时机:
  • 进程运行完毕
  • CPU时间片用完
  • 执行io操作
  • 执行某种原语操作
  • 高优先级进程申请运行(剥夺式调度)
  • 处理机调度过程:
  • 保存镜像:记录进程现场信息
  • 调度算法:确认处理机分配原则
  • 进程切换:分配处理机给其他进程
  • 处理机回收:从进程回收处理机
  • 进程调度:
  • 调度算法指标:
  • cpu利用率 = cpu使用时间/系统总时间
  • 系统吞吐量 = CPU完成作业数/总时间(单位时间内完成作业的数量),如果长作业执行得多短作业执行得少,吞吐量就不高;如果长作业执行得少,短作业执行得多,则吞吐量高
  • 周转时间 = 作业完成时间 - 作业提交时间
  • 带权周转时间 = 周转时间/实际运行时间
  • 等待时间:作业等待处理机调度的时间
  • 响应时间:首次提交请求到响应的时间间隔
  • 调度算法:
  • 作业调度:
  • 先来先服务:(FCFS)
  • 短作业优先 :(SJF)
  • 高响应比优先调度(HRRN)
  • 优先级调度:(PSA)
  • 时间片轮转调度:(RR)
  • 多级反馈调度:(MFQ)
  • 进程是怎样运行的
  • 进程调度:(先来先服务)
  • 算法内容:调度作业/就绪队列中最先入队者,等待操作完成或者阻塞
  • 算法原则:按照作业或者进程到达顺序服务(执行)
  • 调度方式:非抢占式调度
  • 适用场景:作业/进程调度
  • 优缺点:
  • 有利于cpu繁忙型作业。充分利用cpu资源
  • 不利于i/o繁忙型作业,使它饥饿
  • 进程调度(短作业优先)
  • 算法内容:所需要服务时间最短的作业或者进程优先服务(调度之前先估算不同的作业运行的时间)
  • 算法原则:追求最少的平均带权周转时间(带权周转时间 = 周转时间/实际运行时间)
  • 调度方式:非抢占式
  • 特例:最短剩余时间优先:(SRTN抢占式):有的时候很短进程都完成了一半多,看看谁的剩余时间最少谁就优先执行
  • 适用场景:作业/进程调度
  • 优缺点:
  • 平均等待/周转时间最少
  • 长作业周转时间会增加或者饥饿
  • 估算时间不准确,不能保证紧迫任务及时执行
  • 进程调度:(高相应比优先调度 HRRN)
  • 算法内容:结合FCFS和 SJF ,综合考虑等待时间和服务时间计算相应比,高的优先服务
  • 算法原则:综合考虑作业/进程的等待时间和服务时间
  • 调度方式:非抢占式
  • 适用场景:作业/进程
  • 相应比计算:
  • 相应比 = (等待时间+服务时间)/服务时间 >1
  • 只有当前进程放弃执行权(完成/阻塞)时,重新计算相应比(计算相应比也是需要时间成本的)
  • 长作业等待越久,相应比越高,越容易获得执行权
  • 但是不能解决紧迫任务的情况
  • 进程调度:优先级调度
  • 算法内容:又叫优先权调度,按照作业/进程的优先级调度(紧迫程度)
  • 算法原则:优先级越高的作业/进程先调度
  • 调度原则:抢占/非抢占式(并不能获得及时执行)
  • 适用场景:作业/进程调度
  • 优先级设置原则:
  • 静态/动态优先级(静态优先级是在程序员编写程序时给的优先级,进程创建时给的优先级,动态优先级是进程运行过程中动态的调整优先级)
  • 系统进程优先级>用户进程优先级
  • 交互型优先级>非交互型优先级 (交互型操作用户在等待结果,所以优先级要高 )
  • I/O型优先级>计算型优先级
  • 低优先级进程可能产生饥饿
  • 进程调度:时间片轮流调度
  • 算法内容:按照进程到达就绪序列的顺序,轮流分配时间片去执行,时间用完则剥夺cpu执行权,如果时间片执行完程序还没执行完,则将程序放到就绪队列队尾继续排队等待执行,又时钟中断信号提醒cpu时间到了
  • 算法原则:公平、轮流为每个进程服务,进程在一定时间都会得到响应
  • 调度方式:抢占式:由时钟中断确定时间到达
  • 使用场景:进程
  • 优缺点:
  • 公平、响应快、适用于分时系统
  • 时间片决定因素:系统响应时间、就绪队列进程数量、系统处理能力(可能会考到)
  • 时间片太大:相当于FCFS(先来先服务),太小,处理机切换频繁,系统开销大
  • 注意:不同的进程得到的时间片不一样
  • ​进程调度:多级反馈调度算法(MFQ)
  • 算法内容:
  • 设置多个按照优先级排序的就绪队列
  • 优先级从高到低,时间片从小到大
  • 新进程采用队列降级法
  • 进入第一级队列,按照FCFS分时间片
  • 没有执行完,移到下一级等待执行
  • 前面队列不为空,则不执行后续队列进程
  • 算法原则:集前几种算法优点,相当于 PSA+RR(优先级算法+时间片调度算法)
  • 调度方法:抢占式
  • 适用场景:进程调度
  • 优缺点:
  • 对各种类型相对公平;快速响应
  • 终端型作业用户,短作业优先
  • 批处理作业用户:周转时间短
  • 长批处理作业用户:在前几个队列部分执行,不会产生长期饥饿的情况,有可能导致一定程度的饥饿,但是不会一直饥饿

3、进程之间是怎样协作的:

  • 进程协作的方式:
  • 进程通信
  • 进程同步
  • 进程通信:
  • 进程通信的概念:进程之间的信息交换
  • 进程是资源分配的独立单位,各进程内存空间彼此独立
  • 一个进程不能随意访问其他进程的地址空间
  • 进程通信的特点:
  • 共享存储
  • 消息传递
  • 管道通信
  • 共享存储:有一个存储空间是多个进程可以同时访问的:(注意:这里的存储空间并不属于哪个进程,而是属于操作系统,如果进程与进程之间想要通信,就向操作系统申请一块内存空间,这个空间多个进程都可以操作它)
  • 基于共享数据结构的通信方式:
  • 多个进程共用某个数据结构(os提供并控制)
  • 由用户(程序员负责同步处理)
  • 低级通信:可以传递少量数据,效率低
  • 基于共享存储区的通信方式:
  • 多个进程共用内存中的存储区域(这里的内存由操作系统提供的、固定大小的区域)
  • 由进程控制数据的形式和操作方式
  • 实际操作过程中进程会将那块共享的内存空间并到自己的进程内部,别的进程也会将那块空间看做自己的地址空间,最终。如果所有的进程都完成后,会将那块内存空间释放掉,还给操作系统
  • 数据收发双方不可见,存在安全隐患
  • 高级通信,可以传递大量数据,效率高
  • 注意:无论是哪种通信方式都是由操作系统去分配和管理的
  • 消息传递:
  • 直接通信:点到点发送
  • 发送和接收时指明双方进程ID
  • 每个进程指明一个消息缓冲队列
  • 真正操作收发消息动作的是操作系统,用发送和接收的两个原语
  • 间接通信:广播信箱
  • 以信箱位媒介,作为中间实体
  • 发进程将消息发送到邮箱,收进程从邮箱读取
  • 可以广播,容易建立双向通信链









以上是关于操作系统知识点总结的主要内容,如果未能解决你的问题,请参考以下文章

Linux平台下RMAN异机恢复总结

课程总结

任务表(知识总结)

最后三次题目总结

二次剩余(懒人模板总结)

二次剩余(懒人模板总结)