操作系统(超级详细)

1 选择

1.1 单道批处理系统和多道批处理系统

  • 单道
    主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
    主要缺点:资源利用率依然很低。
  • 多道
    主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。
    主要缺点:用户响应时间长,没有人机交互功能,无法调试程序/无法在程序运行过程中输入一些参数)

1.2 实时系统

实时操作系统:计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

1.3 并发与共享之间的关系

  • 并发性指计算机系统中同时存在着多个运行着的程序。
  • 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
  • 并发,共享互为条件

1.4 虚拟处理器技术

虚拟处理器技术:中的时分复用技术。微观上处理机在各个微小的时间段内交替着为各个进程服务

1.5 存储器管理功能

  • 内存分配
    (1) 为每道程序分配内存空间,使它们“各得其所”。
    (2) 提高存储器的利用率,尽量减少不可用的内存空间(碎片)。
    (3) 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

  • 内存保护

  • 地址映射

  • 内存扩充

1.6 进程的基本状态及转换

如果系统有n个进程,则就绪队列中进程的个数最多有(n-1)个;阻塞队列中进程的个数最多有(n)个。

系统中有n个进程,其中至少有一个进程正在执行(处理器至少有一个),因此就绪队列中进程个数最多有n-1个。就绪状态不能为n,否则以为会有处理器为空,就绪队列全满的情况,实际调度无此状态。

阻塞队列有n-1个进程这种情况是可能发生的,但不是最多的情况。可能不少读者会忽视死锁的情况,死锁就是n个进程都被阻塞了,所以最多可以有n个进程在阻塞队列。

1.7临界资源(Critical Resouce)

一次只能被一个进程所使用,许多硬件资源如打印机、 磁带机等,都属于临界资源,诸进程间应采取互斥方式,实现对这种资源的共享。

1.8 先来先服务

在这里插入图片描述

1.9 短作业优先

在这里插入图片描述

1.10 高响应比优先调度算法(HRRN)

高响应比优先调度算法则是既考虑了作业等待的时间,又考虑了作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机的调度能力。

1.11 如何解决优先级倒置

高优先级任务A不能执行的原因是C霸占了资源,而C如果不能获得CPU,不释放资源,那A也只好一直等在那,所以解决优先级反转的原则肯定就是让C尽快执行,尽早把资源释放了。基于这个原则产生了两个方法:

  • 优先级继承
    当发现高优先级的任务因为低优先级任务占用资源而阻塞时,就将低优先级任务的优先级提升到等待它所占有的资源的最高优先级任务的优先级。
  • 优先级天花板
    优先级天花板是指将申请某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级任务的优先级.(这个优先级称为该资源的优先级天花板)

两者的区别
优先级继承:只有一个任务访问资源时一切照旧,没有区别,只有当高优先级任务因为资源被低优先级占有而被阻塞时,才会提高占有资源任务的优先级;而优先级天花板,不论是否发生阻塞,都提升,即谁先拿到资源,就将这个任务提升到该资源的天花板优先级。

1.12 程序的装入

绝对装入方式:只适用于单道程序环境

可重定位装入方式 :在一个作业装入内存时,必须分配其要求的全部内存空间间,如果没有足够的内存,就不能装入该作业。作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间。

动态运行时装入方式:允许程序在内存中发生移动

1.12 产生死锁的必要条件

  • 互斥条件。
    只有对必须互斥使用的资源的争抢才会导致死锁(如哲学家的筷子、打印机设备)。
  • 请求和保持条件。
    进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己已有的资源保持不放。
  • 不可抢占条件。
    进程所获得的资源在未使用完之前,不能由其他进程强行抢占,只能主动释放。
  • 循环等待条件。
    存在一种进程资源的循环等待链,链中的 每一个进程已获得的资源同时被下一个进程所请求。(不是必要条件)

1.13 处理死锁的方法

目前处理死锁的方法可归结为四种:

  • 预防死锁。破坏死锁产生的四个必要条件中的一个或几个。
  • 避免死锁。用某种方法防止系统进入不安全状态,从而避免死锁(银行家算法)
  • 检测死锁。事先无任何预防措施,允许死锁的发生,不过操作系统会负责检测出死锁的发生,然后采取某种措施解除死锁。
  • 解除死锁。死锁已经发生,然后采取某种措施解除死锁。常见做法就是撤销一些进程,释放资源
1.14动态分区分配用什么数据结构记录内存使用情况

在这里插入图片描述

  • 空闲分区表记录空闲分区的情况。每个空闲分区占一个表目,表目中包括分区号、分区大小和分区始址等数据项
  • 空闲分区链:每个分区的起始部分和末尾部分分别设置前向指针和后向指针。起始部分处还可记录分区大小等信息

基于顺序搜索的动态分区分配算法

在这里插入图片描述
在这里插入图片描述

1.15虚拟存储器的特征

在这里插入图片描述
虚拟存储器的实现,都毫无例外地建立在离散分布存储管理方式的基础上。

1.16缺页中断

缺页中断是因为当前执行的指令想要访问的目标页面未调入内存而产生的,因此属于内中断

2 名词解释

2.1操作系统

是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。其主要作用是管理好这些设备,提高他们的利用率和系统的吞吐量,并为用户和应用程序提供一个简单的接口,便于用户使用。

2.2 操作系统的基本特性

  • 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
  • 并行:指两个或多个事件在同一时刻同时发生。
  • 进程:指系统中独立运行并作为资源分配的基本单位,它是由一组机器指令,数据,堆栈等组成的,是一个能独立运行的活动实体
  • 共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
  • 虚拟:指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上 对应物(后者)是用户感受到的。
  • 异步:指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的, 而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征

2.3 临界区(critical section)

人们把在每个进程中访问临界资源的那段代码称为临界区(critical section)。

2.4 线程

线程(英语:thread):是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

2.5 死锁

各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。

2.6 中断与陷入

  • 中断:中断是指cpu对I/O设备发来的中断信号的一种响应
  • 陷入:cpu内部时间所引起的中断。又称内中断。例如程序在运算中发生了上溢或者下溢,非法指令,地址越界,以及电源故障等等错误。

3 简答题

3.1处理机管理功能

主要目标:创建和撤销进程,对进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。

任务:

  1. 进程控制:主要功能室为作业创建进程,撤销进程,以及进程之间的状态转换
  2. 进程同步:为多个进程(含线程)的运行进行协调
  3. 进程通信:当一组相互协作的进程共同完成一项任务时,他们之间需要进行交换信息
  4. . 调度
    (1) 作业调度:从后备队列中按照一定算法选择若干个作业,为其分配运行所需资源
    (2) 进程调度:从就绪队列中按照一定算法选择一个进程,将处理机分配给它并设置运行现场。

3.2 进程的基本状态及转换

  • 就绪(Ready)状态:进程已分配到除CPU以外所有必要资源,只要获得CPU即可执行。
  • 执行(Running)状态:指进程已经获得CPU资源,正在执行的状态。
  • 阻塞(Block)状态:正在执行的进程由于发生某个事件(如I/O请求,申请缓冲区失败等)暂时无法继续执行时的状态

在这里插入图片描述

3.3 同步机制应遵循的规则

为实现进程互斥地进入自己的临界区,可用软件方法,更多的是在系统中设置专门的同步机构来协调各进程间的运行。

  • 空闲让进。当临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入自己的临界区,以有效的利用临界资源。
  • 忙则等待。临界资源正在被访问,其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
  • 有限等待。保证在有限时间内能进入自己的临界区,避免陷入死等状态
  • 让权等待。当进程不能进入到自己的临界区时,应该释放处理机,以免陷入忙等状态

3.4 线程与进程的比较

  1. 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;

  2. 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

  3. 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信

号等),某进程内的线程在其他进程不可见;

  1. 调度和切换:线程上下文切换比进程上下文切换要快得多

3.5处理机调度的层次

在这里插入图片描述

3.6调度方式

  • 非抢占方式(Nonpreemptive Mode)
    在采用这种调度方式时,一旦把处理机分配给某进程后,就一直让它运行下去,决不会因为时钟中断或任何其它原因去抢占当前正在运行进程的处理机,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其它进程。
  • 抢占方式(Preemptive Mode)
    这种调度方式允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。在现代OS中广泛采用抢占方式,这是因为:对于批处理机系统,可以防止一个长进程长时间地占用处理机,以确保处理机能为所有进程提供更为公平的服务。在分时系统中,只有采用抢占方式才有可能实现人—机交互。在实时系统中,抢占方式能满足实时任务的需求。但抢占方式比较复杂,所需付出的系统开销也较大。

3.7什么是快表?它在地址转换中起什么作用

  • 快表:是一个高速、具有并行查询能力的联想存储器,用于存放正运行的进程的当前页号和块号,或者段号和段起始地址。
  • 作用:
  1. 加入快表后,在地址转换时,首先在快表中查找,若找到就直接进行地址转换;未找到,则在主存页表继续查找,并把查到的页号和块号放入联想存储器中。
  2. 快表的命中率很高,有效地提高了地址转换的速度。

3.7 优先级调度算法的优先级类型

  • 静态优先级
    静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变。优先级是利用某一范围内的一个整数来表示的,例如0~255中的某一整数,又把该整数称为优先数。
    确定进程优先级大小的依据有如下三个:

    1. 进程类型:通常,系统进程(如接收进程、对换进程、磁盘i/o进程)的优先权高于一般用户进程的优先权
    2. 进程对资源的需求:如进程的估计执行时间及内存需要量的多少,对这些要求少的进程应赋予较高的优先权
    3. 用户要求:这是用户进程的紧迫程度及用户所付费用的多少来确定优先权的
  • 动态优先级
    动态优先级是指在创建进程之初,先赋予其一个优先级,然后其值随进程的推进或等待时间的增加而改变,以便获得更好的调度性能。

3.8 死锁的原因

  1. 竞争不可抢占性资源引起死锁
    通常系统中所拥有的不可抢占性资源其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。
  2. 竞争可消耗资源引起死锁
    现在进一步介绍竞争可消耗资源所引起的死锁。图示出了在三个进程之间,在利用消息通信机制进行通信时所形成的死锁情况。
  3. 进程推进顺序不当引起死锁
    除了系统中多个进程对资源的竞争会引发死锁外,进程在运行过程中,对资源进行申请和释放的顺序是否合法,也是在系统中是否会产生死锁的一个重要因素。

3.8 局部性原理

在这里插入图片描述
在这里插入图片描述

3.9 抖动

  • 发生“抖动”的根本原因是:
    同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。这会使得在系统中排队等待页面调进/调出的进程数目增加。显然,对磁盘的有效访问时间也随之急剧增加,造成每个进程的大部分时间都用于页面的换进/换出,而几乎不能再去做任何有效的工作,从而导致发生处理机的利用率急剧下降并趋于0的情况。

  • “抖动”的预防方法

    1. 采取局部置换策略
    2. 把工作集算法融入到处理机调度中
    3. 利用“L=S”准则调节缺页率
    4. 选择暂停的进程

3.9 缓冲引入的作用

  1. 缓和CPU与I/O设备间速度不匹配的矛盾
  2. 减少对CPU的中断频率,放宽对CPU中断响应时间限制。
  3. 解决数据力度不匹配问题
  4. 提高CPU和I/O设备之间的并行性

4 计算题

4.1处理机调度算法的目标

CPU利用率 = 忙碌的时间/总时间

  • Eg:某计算机只支持单道程序,某个作业刚开始需要在CPU上运行5秒,再用打印机打印输出5秒,之后再执行5秒,才能结束。在此过程中,CPU利用率、打印机利用率分别是多少?
    CPU利用率 =5+5/5+5+5 = 66.66%
    打印机利用率 =5/5+5+5= 33.33%

系统吞吐量=总共完成了多少道作业 /总共花了多少时间

  • Eg:某计算机系统处理完10道作业,共花费100秒,则系统吞吐量为?
    系统吞吐量=10/100 = 0.1 道/秒

平均周转时间=各作业周转时间之和/作业数

作业周转时间= 作业完成时间 - 作业提交时间
在这里插入图片描述在这里插入图片描述

例题:
周转时间计算例题

在这里插入图片描述
在这里插入图片描述

4.2 最低松弛度优先LLF(Least Laxity First)算法

详细解析链接

4.3 分页存储管理方式的地址结构计算

在这里插入图片描述

4.4 页面置换算法

超级详细解说加例题

4.5 磁盘置换算法

超级详细解说加例题

4.6 银行家算法

银行家算法是最具代表性的避免死锁的方法。
银行家算法解析

在这里插入图片描述

勉励
加油ヾ(◍°∇°◍)ノ゙

如果觉得我的文章对你有所帮助与启发,点赞给我个鼓励吧(づ ̄3 ̄)づ╭❤
关注我和我一起共勉加油吧!
如果文章有错误,还望不吝指教!

  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值