软件设计师 操作系统基本原理

本文介绍了操作系统的基本原理,重点讲述了进程管理,包括进程的状态转换、同步与互斥、PV操作以及死锁问题的避免。阐述了银行家算法在防止死锁中的应用,并提及设备管理中的SPOOLING技术提高打印机利用率。最后提到了微内核操作系统的优势。

操作系统概述

  • 管理系统的硬件、软件、数据资源
  • 控制程序运行
  • 人机之间的接口
  • 应用软件与硬件之间的接口

操作系统具备的管理职能

  • 进程管理
  • 存储管理
  • 文件管理
  • 作业管理
  • 设备管理

进程管理-进程的状态

进程状态是指的在操作系统当中对进程进行管理的时候,为进程指定了几种状态,以便于为进程分配相应的资源,以便于管理。

  • 最初的时候 我们把进程分成了运行态、等待态、就绪态
    • 运行态
      • 指进程所需要的所有资源都已经配足了,并且给它了CPU资源
    • 就绪状态
      • 指其他的所有资源已经配置了 但是只差CPU资源
    • 等待状态
      • 除了没有CPU资源,还缺其他资源 比如等待用户的指令

转换关系

在运行态时,需要等待某个时间的发生 缺少某种资源 进入到等待状态 如果资源可以调配了 等待事情发生时 等待状态会变迁到就绪状态 然后等待排队 等待CPU分配资源 如果在时间片内没有完成任务 会返回到就绪态 再等待时间片 再进行继续执行

进程管理-进程的同步与互斥

  • 同步与互斥是进行PV操作的一些分析的前提
    • 互斥是指同一时刻只允许某一个进程去使用资源 同一个资源不能服务于多个进程
    • 同步是就是在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通信息称为同步。

进程管理 - PV操作

  • 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带盘等
  • 临界区:每个进程中访问临界资源的那段代码成为临界区
  • 信号量:是一种特殊的变量

进程管理 - 死锁问题

进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事件,则进程就死锁了。如果一个或多个进程产生死锁,就会造成系统死锁。

例:系统有4个进程:A,B,C,D,这4个进程都需要4个系统资源,如果系统至少有多少个资源,则不可能发生死锁

  • 如果我们执行完一个进程需要四个资源 可是我们没法保证资源正确顺序分配 最少需要多少系统资源可以用一个进程执行完的系统资源数量-1再乘以进程数量 再+1 当我们所有的进程都分配了三个资源 我们加上的那个系统资源无论分配到哪个进程都会执行 从而不会发生死锁问题

(4-1)*4+1=13
最少需要十三个系统资源

如何预防死锁

死锁有四大条件分别是

  • 互斥
  • 保持和等待
  • 不剥夺
  • 环路等待
  • 同理,只要任意破坏产生死锁的四个条件中的其中一个就可以了:
  1. 破坏互斥条件

该条件没有办法破坏,因为用锁的意义本来就是想让他们互斥的(临界资源需要互斥访问);

  1. 破坏请求与保持条件

一次性申请所有的资源;

  1. 破坏不剥夺条件

占用部分资源的线程进一步申请其他资源时,如果申请不到,可以主动释放它占有的资源;

  1. 破坏循环等待条件

靠按序申请资源来预防。按某一顺序申请资源,释放资源则反序释放。

死锁的避免

分别有两种解决方法,一种是有序资源分配,一种是银行家算法,有序资源分配就是按顺序分配,利用率比较低 我们主要学习银行家算法

银行家算法

银行家算法的思想是银行放贷的思路来做分配,通俗点在银行家面前 资源就相当于钱,放贷就相当于贷分配资源,同时要考虑能不能把资源收回来,如果评估收不回来就不会分配

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
  • 进程可以分期请求资源,单请求的总数不能超过最大需求量
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,单总能使进程在有限的时间里得到资源

#文件管理 - 空闲存储空间的管理

所谓空闲存储空间的管理就是指的在磁盘上面 会有大量的空间 , 我们需要把这些空闲的空间管理起来,以便有某个文件要申请相应的存储时,能够有依据的分配给它相应的空间
有几种不同的管理方法 包括

  • 空闲区表法

  • 我们可以用一个表来记录哪些地方是空闲的

  • 空闲链表法

  • 把空闲区都链起来 链成一条链表 需要空间分配时 从链表里分配出来就可以了

  • 位示图法

    我们会画一个位示图 1表达的区域是已经被占用,0表达的是空闲的 我们把整个存储空间分成很多个物理块,就能表达出哪些物理块是占用的,哪些是空闲的
    在这里插入图片描述

  • 成组链接法

  • 分组也分链

设备管理 - 虚设备与SPOOLING技术

在这里插入图片描述

大家共用一台打印机 用打印机时同一时刻只能用于同一用户,所用不能共用打印机资源 ,打印机的利用率不是很高,但是有一种情况就是你要打印时别人也在打印,等了十分钟发现还有别人在打印。

  • 由此提出SPOOLING技术

当四个人同时打印时,会先把输入的进程打印的内容放到输入缓冲区里,然后放到输入井,不会提示打印机被占用,等前面的打印任务完成,会等前面的进程执行完依次执行。SPOOLING技术就是开辟了缓冲区,把要用的进程先放到缓冲区里,这样就不会和其他用户有冲突

微内核操作系统

就是把内核做的更小的操作系统,好处体现在可靠性,稳定性,安全性上,操作系统作为核心的系统软件,如果说操作系统出现了问题,就会影响到整个系统的运行,如果说我们把操作系统的内核做的小一些,就会降低出错的概率,最核心的东西放在内核里,只有这一步出现了故障才会出现很大的故障,内核外的程序出现了故障,只需要重启内核外的进程就可以,不会影响整个系统。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值