操作系统1

本文详细阐述了操作系统的核心功能,包括进程管理、文件管理、存储管理和设备管理,介绍了各类操作系统如批处理、分时、实时和网络等的区别。此外,讨论了进程同步与互斥机制,以及信号量、调度算法和死锁的解决策略,包括银行家算法。
摘要由CSDN通过智能技术生成

概念
操作系统
组织和管理计算机系统中的软件和硬件,组织计算机系统工作流程、控制程序执行,提供给用户工作环境和友好的接口。

3个作用:

  • 管理计算机中运行的程序和分配各种软硬件资源
  • 为用户提供友善的人机洁界面
  • 为应用程序的开发和运行提供一个高效的平台

4个特征:

  • 并发行、共享性、虚拟性、不确定性

操作系统功能:

  • 进程管理: 对CPU执行时间进行管理 ,包括进程控制、进程同步、进程通讯、进程调度。
  • 文件管理:对硬盘上的存储空间管理,目录管理,文件的读写和存取控制。
  • 存储管理:对主存内存进行管理,包括存储分配和回收、存储保护、存储映射、存储扩充
  • 设备管理:对硬件设备的管理,包括对输入输出的分配、启动、完成、回收。
  • 作业管理:包括任务、界面管理、人机交互、图形界面、语音控制、虚拟现实等。

操作系统的分类:

  • 批处理操作系统:单道批处理和多道批处理,单个任务执行发展到同时多个任务执行。
  • 分时操作系统:将CPU的工作时间进行切分,轮流为各个终端用户服务,要求交互高。
  • 实时操作系统:要求较快的进行处理相应,并在被控对象允许的时间内快速反应,要求可靠性,交互不高。
  • 网络操作系统:使计算机联网共享资源,有集中模式、客户端/服务器模式(CS)、对等模式(P2P)。
  • 分布式操作系统:多个分散的计算机连接而成的计算机系统,无主次之分,都能互现通讯交换信息。
  • 微型计算机操作系统:windows、linux、mac

嵌入式操作系统:(物联网设备,智能家居)

  • 微型化:性能和成本考虑,占用资源和系统代码量少

  • 可定制:成本和研发考虑,兼容不同的处理器,对硬件变化进行结构与功能上的配置,满足不同的需求。

  • 实时性:实时响应高,过程控制、数据采集、传输通讯、媒体信息。 可靠性:提供容错和防故障措施。

  • 易移植性:采用硬件抽象层和板级支撑包的底层设计技术。

    嵌入式系统初始化过程按照自底向上,片级初始化(芯片)-板级初始化(外设)-系统初始化(bios引导)

进程组成和状态

进程的组成:进程控制块PCB、程序、数据
进程的状态:

  • 运行态:CPU正在执行进程
  • 就绪态:等待被调度分配CPU
  • 阻塞态:磁盘读写数据、打印机等,CPU不会等着浪费资源,阻塞态事件结束必须进入就绪态
    在这里插入图片描述

前趋图:

用来表示那些任务可以并行执行,哪些之间有顺序关系

在这里插入图片描述
进程资源图:

进程和资源之间的分配和请求关系,下图箭头向下为分配,向上为请求
资源分配和请求都满足后执行结束,资源会回收,释放资源

在这里插入图片描述
进程的同步和互斥

  • 临界资源:各进程互斥的方式访问资源,同一时间只能有一个进程使用资源
  • 临界区:本质是一段代码,进程对临界资源实施操作那段代码
  • 互斥:临界资源需要加锁,使用完后解锁给其他进程使用
  • 同步:多个任务可以并发执行,速度上有差异
  • 互斥信号量:临界资源使用互斥,初始值为1
  • 同步信号量:对共享资源访问控制(数量上限),初始值一般为共享资源的数量

信号量操作:

  • P(S):申请资源,资源减一,S>=0才能继续执行,S<0表示没有资源,进入阻塞状态
  • V(S):释放资源,资源加一,S>0才能继续执行,S<=0表示从阻塞态唤醒一个进程

在这里插入图片描述
进程调度

当有优先级高的进程来时如何分配CPU

  • 可剥夺:有高优先级,强制将运行的CPU分配给到高优先级进程
  • 不可剥夺:必须等到当前进程自动释放再分配给高优先级进程

一个作业从提交到完成需要经历高、中、低三级调度:

  • 高级调度:作业调度,决定哪个后备作业可以调入主系统做好运行准备。
  • 中级调度:对换调度,它决定处于交换区中的哪个进程可以调入内存,以便直接参与CPU竞争。
  • 低级调度:进程调度,处于内存中哪个就绪进程可以占用CPU,最活跃重要的进程调度。

调度算法:(低级调度)

  • 先来先服务FCFS:先到达的进程分配CPU 时间片轮转:分配每一个进程CPU时间片,轮流使用CPU
  • 优先级调度:每一个进程都有优先级,优先级高的先分配CPU,区分是否可以剥夺。
  • 多级反馈调度:时间片轮转+优先级调度结合而成,设置多个就绪队列,每个队列不同的优先级,分配不同时间片长度,新进程先进入1队列末尾,执行时间片,未执行完就进入队列2的末尾,如此重复。
    在这里插入图片描述
    死锁:

当一个进程在等待永远不可能发生的事件,系统中多个进程死锁,会造成系统死锁。

死锁的四个必要条件:

  • 资源互斥
  • 占有资源,并等待其他资源
  • 系统不能剥夺进程资源
  • 进程资源图是一个环路

打破死锁:

  • 死锁预防:采用策略限制并发进程对资源的请求,破坏死锁产生的四个条件之一
  • 死锁避免:银行家算法,提前计算出不会死锁的分配方法才分配资源,否则不分配
  • 死锁检测:允许死锁产生,定期运行程序检测死锁的程序,使用死锁解除。 死锁解除:强制剥夺资源,撤销进程等。

死锁资源的计算:系统内有N个进程,每个进程都需要R个资源

  • 发生死锁的最大资源:N*(R-1)
  • 发生死锁的最小资源:N*(R-1)+1

线程:

传统进程的2个属性:可独立的调度和分配资源的单位。
线程就是继承进程的可独立的调度,各自管理,改善进程一系列问题,进程切换的资源消耗、程序可并发执行。

线程基本不拥有资源,只有必不可少的资源(程序计数器、一组寄存器和栈),进程里所有线程资源共享,但不能共享独有资源。

计算
前趋图计算:

先P申请资源,执行后V释放资源,S为信号量,一条箭头就代表一个信号量

题目一:
在这里插入图片描述

  1. 题目有5个信号量,计算假设一般编号从上到下,从左到右,后续根据条件进行验证

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

  1. P1执行后释放2个信号量,假设上面是s1,下面是s2,P2执行条件是P(s1)就验证了上方为s1
  2. P2执行需要P(s1),执行后释放1个信号量,假设为s3,P4执行条件是P(s3)就验证了为s3
  3. P3执行需要P(s2),执行后释放1个信号量,上方已经验证,这边为s4 5、P4执行需要P(s3),执行后释放1个信号量,为s5

题目二:
在这里插入图片描述
1、先假设8个S信号量序号
在这里插入图片描述

2、P1执行后,释放2个信号量,V(s1)V(s2),P3执行需要P(s2),验证下方为s2,上方为s1。
3、P2执行后,需要p(s1),释放2个信号量,V(s3)V(s4),P3执行需要s2,s3,s3为P操作,选择题都为P(s3)。
4、P3执行后,释放2个信号量,V(s5)V(s6),P4执行需要2个P,上面是为s4固定,下方就是s5了,另一个就s6
5、P4执行后,释放1个信号量,V(s7)
6、P5执行,想要p(s6),执行后释放V(s8),验证上方为7

题目三:死锁计算
在这里插入图片描述

求死锁最小资源,3*(5-1)+1=13

题目四:信号量计算
在这里插入图片描述

互斥信号量:信号量=资源总数=3。
S 为 -3,S 为负值说明有线程在等待资源;S 的绝对值即是等待资源的线程数。

题目五:银行家算法
在这里插入图片描述

  1. 求剩余资源数量R1=2 R2=0 R3=1

在这里插入图片描述

  1. 安全执行就是不要发生死锁,求出P1-5需要资源

在这里插入图片描述

  1. 第一个P5,然后P5执行完后回收资源,剩余资源就是P5分配资源+剩余资源=3 1 1,再一次进行计算匹配,可以满足P2和P3
  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值