【操作系统】1、操作系统概述、进程管理



操作系统

1、操作系统的作用

通过资源管理提高计算机系统的效率,改善人机界面向用户提供良好的工作环境

2、操作系统的分类

批处理操作系统
分时操作系统(轮流使用CPU工作片)
实时操作系统(快速响应)
网络操作系统
分布式操作系统(物理分散的计算机互联系统)
微机操作系统(Windows)
嵌入式操作系统

3、操作系统的功能

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

4、操作系统的特征

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

5、计算机的启动流程

BIOS->主引导记录->操作系统

进程管理

进程
进程是程序的一次执行过程,是系统中的一个独立的运行单位。


进程是动态的,多个进程可以并发执行
线程
线程是进程的一个执行单元,是进程中的一个轻量级的单位。


线程是进程内的独立执行序列,多个线程共同存在于同一个进程中
程序是静态的,执行之后就会产生多个进程,每个进程中又会产生多个线程。

进程的组成

进程控制块PCB(唯一标识)
程序(讲述要做啥)
数据(存放进程执行时候所需要的数据)

进程的状态

进程基础的状态是下左图中的三态图,这是系统自动控制时只有三种状态而下右图中的五态,是多了两种状态: 静止就绪和静止阻塞,需要人为的操作才会进入对应状态,活跃就绪即就绪,活跃阻塞即等待。
(处于等待状态下的进程不可能直接进入运行状态,哪怕此时设备拥有足够的资源也要先进入就绪状态)
e48fe80c74423d8af74f59b6a91c92f.png
(当人为干预后进程将被挂起进入静止状态,此时需要人为激活才能恢到活跃状态,之后的本质还是三态图。五态图下半部分就是三态图)

前趋图

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

ABC可以并行执行,但是必须ABC都执行完后才能执行D,这就确定了两点: 任务间的并行 、任务间的先后顺序

进程资源图

作用:用来表示进程和资源之间的分配和请求关系

P代表进程,R代表资源, P伸出来指向R的箭头表示请求,R伸出来指向P的箭头表示分配,R方框中有几个圆球就表示有几个这种资源,在图中,R1指向P1,表示R1有一个资源已经分配给了P1, P1指向R2,表示P1还需要P1请求一个R2资源才能执行。

阻塞节点

某进程所请求的资源已经全部分配完毕,无法获取所需资源,:该进程被阻塞了无法继续。如上图中P2

非阻塞节点:

某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态

同步与互斥

互斥

某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁互斥: 使用完后解锁才能被其他任务使用:如打印机

同步

多个任务可以并发执行只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题: 如自行车和汽车。

临界资源

各进程间需要以互斥方式对其进行访问的资源

临界区

指进程中对临界资源实施操作的那段程序。本质是一段程序代码。

互斥信号量

对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。

同步信号量

对共享资源的访问控制,初值一般是共享资源的数量。

信号量

P操作

申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则申请资源,置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列

V操作

释放资源,S=S+1,若S>0,代表此时资源有空余,没有阻塞的进程,则该进程继续执行: 若S<=0,代表此时线程在被阻塞,所以需要从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续护行),然后执行V操作的进程继续

生产者和消费者

经典问题: 生产者和消费者的问题三个信号量:互斥信号量S0(仓库独立使用权),同步信号量S1 (仓库空闲位置), 同步信号量S2(仓库商品个数)

生产者消费者
P(S0)P(S0)
P(S1)P(S2)
V(S2)V(S1)
V(S0)V(S0)

生产者:

  • P(S0): 生产者首先需要获取互斥信号量S0,即仓库的独立使用权。这是为了确保一次只有一个生产者能够修改仓库
  • P(S1): 生产者接着获取同步信号量S1,即仓库的空闲位置。这是为了确保仓库有足够的空间来放置新生产的商品
  • 在获取到S1后,生产者执行生产操作,将商品放入仓库
  • V(S2): 生产者生产完成后,释放同步信号量S2,表示仓库中商品的个数增加了
  • V(S0): 最后,生产者释放互斥信号量S0,表示生产者不再使用仓库

消费者:

  • P(S0): 消费者同样需要获取互斥信号量S0,确保一次只有一个消费者能够修改仓库
  • P(S2): 消费者接着获取同步信号量S2,即仓库中商品的个数。这是为了确保仓库中有商品可供消费
  • 在获取到S2后,消费者执行消费操作,取出商品
  • V(S1): 消费者消费完成后,释放同步信号量S1,表示仓库中空闲位置增加了
  • V(S0): 最后,消费者释放互斥信号量S0,表示消费者不再使用仓库

死锁

当一个进程在等待永远不可能发生的事件时,就会产生死锁, 若系统中有 多个进程处于死锁状态,就会造成系统死锁。

产生死锁的四个条件

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

解决措施

  • 死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
  • 死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方 还得起才借钱,提前考虑好以后,就可以避免死锁。
  • 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统 中发生死锁,则设法加以解除。
  • 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等

死锁相关计算问题

系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1) 。其不发生死锁的最小资源数为n*(R-1) +1。(抽屉原理)

线程

线程是独立调度的最小单位,线程可以共享进程的公共数据 、全局变量 、代码 、文件等资源,但不能共 享线程独有的资源,如线程的栈指针等标识数据。

线程的两个属性

  • 可拥有资源的独立单位
  • 可独立调度和分配的基本单位
  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想要AC的dly

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

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

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

打赏作者

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

抵扣说明:

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

余额充值