软件设计师学习笔记(四)操作系统知识(一)

本文详细介绍了操作系统的核心概念,包括其作用、功能和类型。重点讨论了进程管理,如进程的概念、状态、调度,以及进程同步与互斥的PV操作。此外,还深入探讨了死锁问题,包括死锁的定义、必要条件、资源数计算和处理策略。内容涵盖了操作系统设计的关键知识点。
摘要由CSDN通过智能技术生成

一、操作系统相关概念

1、操作系统的作用

在这里插入图片描述

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

2、操作系统的功能

  1. 处理机管理
    处理机管理实际上是指对处理机执行“时间”的管理,采用多道程序等技术将CPU真正合理地分配给每个任务。常用的资源管理单位有进程和线程。
  2. 存储管理
    存储管理主要是对主存空间进行管理。
  3. 文件管理
    文件管理(信息管理)包括文件存储空间管理、目录管理、文件的读写管理和存取控制、软件管理等。
  4. 作业管理
    作业管理包括任务管理、界面管理、人机交互等。
  5. 设备管理
    设备管理的目标是方便设备使用,提高CPU与I/O设备的利用率。作业管理。作业管理包括任务管理、界面管理、人机交互等。

3、操作系统的类型

分类特点
批处理操作系统单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成
多道批:一次多个作业入内存,特点:多道、宏观上并行微观上串行
分时操作系统采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统
特点:多路性、独立性、交互性和及时性
实时操作系统实时控制系统和实时信息系统
交互能力要求不高,可靠性要求高(规定时间内响应并处理)
网络操作系统方便有效共享网络资源,提供服务软件和有关协议的集合
主要的网络操作系统有:Unix、Linux和Windows server系统
分布式操作系统任意两台计算机可以通过通信交换信息
是网络操作系统的更高级形式,具有透明性、可靠性和高性能等特性
微机操作系统Windows:Microsoft开发的图形用户界面、多任务、多线程操作系统
Linux:免费使用和自由传播的类Unix操作系统,多用户、多任务、多线程和多CPU的操作系统
嵌入式操作系统运行在智能芯片环境中
特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL和BSP支持)

二、进程管理

1、 概念

1、进程的概念

  1. 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块进程控制块(PCB)数据块三部分组成。
  2. PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。

2、进程与程序的区别

  1. 进程是程序的一次执行过程,没有程序就没有进程。
  2. 程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。

3、进程与线程的区别

进程的2个基本属性可拥有资源的独立单位可独立调度和分配资源的基本单位
在这里插入图片描述

2、进程的状态

1、三态模型

在这里插入图片描述

  • 执行状态:进程已获CPU,正在执行。单处理机系统中,处于执行状态的进程只一个;多处理机系统中,有多个处于执行状态的进程
  • 就绪状态:进程已获得除CPU外的一切所需资源,只等待CPU即可执行
  • 阻塞状态:阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O等待I/O完成等)而暂时停止运行,此时即使把CPU分配给进程也无法运行,故称进程处于阻塞状态

2、五态模型

在这里插入图片描述
挂起原因

  1. 进程过多,主存资源不足,此时必须将某些进程挂起,放到磁盘对换区,暂时不参与调度,以平衡系统负载
  2. 系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题

3、进程调度

1、进程的同步与互斥

  1. 互斥:在同一时刻只允许某一进程使用资源,如千军万马过独木桥,这些互斥的进程之间是间接制约关系
    在这里插入图片描述

  2. 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机,磁带机等

  3. 临界区:进程中访问临界资源的那段代码称为临界区

  4. 同步:运行速度有差异的两个进程同时开始运行,在一定情况下,速度较快的进程会停下来等待速度较慢的进程,这些同步的进程之间是直接制约关系
    在这里插入图片描述

2、PV操作

  1. 信号量:是一种特殊的变量,符号为S,是一种全局变量
  2. 信号量可以表示资源数量
  3. 信号量为负数时还可以表示排队进程数
  4. P是荷兰语的Passeren,V是荷兰语的Verhoog
    在这里插入图片描述

P操作:S代表信号量,S=S-1 表示申请 / 锁定资源,然后通过判断S是否小于0检查资源是否足够,S小于0则代表资源不足,该进程进入阻塞队列,S不小于0则继续往下执行

V操作:S=S+1 表示释放 / 解锁资源,之后通过判断S是否小于等于0检查是否有进程排队,S小于等于0代表有,则通知并唤醒阻塞进程,若无则继续往下执行

3、信号量与PV操作

  1. PV操作与互斥模型
    多个进程共享一台打印机问题(互斥模型):
    在这里插入图片描述
    互斥信号量S的初值为1(即打印机的数量)

  2. PV操作与同步模型
    单缓冲区生产者、消费者问题(同步模型):
    在这里插入图片描述
    在这里插入图片描述
    S1初值为1,S2初值为0

  3. 互斥与同步模型结合
    单缓冲区生产者、消费者问题(同步模型):
    在这里插入图片描述
    在这里插入图片描述
    同步信号量:S1初值为1(若缓冲区空间为m,则S1=m),S2初值为0
    互斥信号量:S初值为1(代表对临界资源(即缓冲区)的访问权限)

4、前趋图与PV操作

  1. 前趋图是将一个完整的进程所需的工序按照是否具有先后关系将进程进行再次区分的图象
  2. PV操作应用
    在这里插入图片描述
    箭线末端执行V操作,箭头端执行P操作

进程的执行过程
在这里插入图片描述

进程A、B、C执行之前是没有前趋的,执行之后有一个后继,用一个V操作来通知后继;D执行前有三个前趋,三个P操作检查三个前趋是否完成,执行之后有一个后继,用一个V操作来通知后继(有几个后继就有几个V操作);E执行之前有一个前趋,用一个P操作检查前趋是否完成,无后继。

4、死锁问题

1、概念

  1. 所谓死锁,是指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象
  2. 发生死锁的四大必要条件:
    1. 进程互斥
    2. 持和等待:在资源总量并未满足完成进程所需资源的总量前提下,每个进程都保持自身占用的资源不变并且一直等待其他进程完成以获取其释放的系统资源
    3. 不剥夺:系统不会把已分配给一个进程的资源剥夺掉分配给其他进程
    4. 环路等待:如总共有三个进程,A等待B,B等待C,C等待A;诸如此类的,等待的进程形成了一个闭合环状
  3. 死锁处理
    1. 死锁的预防(打破上述四大必要条件 )
      1. 有序资源分配法
      2. 静态资源分配法
    2. 死锁的避免
      银行家算法
    3. 死锁的检测与解除
      利用一些软件方式检测,人为的解除死锁
    4. 鸵鸟策略(不予理睬)

2、死锁资源数计算

  1. 进程管理是操作系统的核心,但如果设计不当,就会出现死锁问题,如果一个进程在等待一件不可能发生的事,则进程就死锁了,此时该进程将一直占用部分系统资源,而如果多个进程产生死锁,就会造成系统资源被占用完毕,进而造成系统死锁

  2. 系统不可能发生死锁的最小资源数
    (w-1)*m+1<=n
    w:每个进程所需要的资源数
    m:系统所拥有的进程数
    n:系统拥有的可用资源数

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

    答:资源数n=(4-1)*3+1=10

5、进程资源图

在这里插入图片描述

例:
在这里插入图片描述

P2是阻塞节点,P1、P3是非阻塞节点,该图可以化简,所以是非死锁的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ؓ初尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值