计算机基础课--操作系统学习笔记(2)

这篇的内容是进程管理。

一、进程与线程

1.进程的概念与特征

1)概念

进程是资源分配的基本单位,线程是处理机调度与分配的基本单位。

对进程线程的理解还可参考:在引入线程的操作系统中,资源分配和调度的基本单位是什么?进程还是线程?为什么?_百度知道

 2)特征

动态性、并发性、独立性、异步性、结构性

2.进程的状态和转换机制

1)进程的状态

系统资源可以大致分为处理机资源和其他资源。就绪态与阻塞态经常考。

 2)进程的转换

扫描二维码关注公众号,回复: 13559083 查看本文章

 3.进程的控制过程

1)进程创建

了解子线程、父线程,以及进程创建的过程。

 2)进程的终止

即哪些情况进程终止,进程终止会造成什么变化。

 3)进程阻塞与唤醒

 4)进程切换

4. 进程的三块组成

可以打开自己电脑的任务管理器,结合任务管理器进行理解。

1)进程控制块PCB

2)程序段

举个例子:你可以用一个电脑登陆多个QQ账号,每个QQ账号的运行都是不同的进程。

3)数据段

 补充:

 5.进程的通信

三种。共享存储、消息传递、管道通信。其中管道通信只能支持半双工,也是共享存储的优化与发展。

更具体参考:进程间通讯的7种方式_zhaohong_bo的专栏-CSDN博客_进程间通信

 6.线程与多线程

1)线程的基本概念

这段话都是精髓。 

2)线程与进程的比较

3) 线程的属性

 一些经常重复出现的话一般就是很重要的点,只要把经常出现的话弄清楚了,就会感觉没那么抽象了。

4)多线程模型

参考:多线程模型:一对一模型、多对一模型和多对多模型

二、处理机调度

1.三级调度

1)调度的层次

从作业调度到进程调度,越来越抽象并接近用户层,离底层硬件越来越远。结合进程的几个状态进行理解,这里面的几个注意点是:资源、内存、处理机。

2)三级调度的关系

 所以进程调度是在调度处理机的使用权。

2.进程调度的方式 

 3.进程调度的准则

调度算法应当尽可能去满足以上几个性能指标。

4.几种典型的调度算法

 1)先来先服务算法(FCFS)

FCFS是不可剥夺算法,算法简单但效率低。关于CPU繁忙型与IO繁忙型课参考:如何理解操作系统先来先服务算法对CPU繁忙型进程有利,对io繁忙型进程不利? - 知乎

 2)短作业优先算法(ShortJobFirst SJF)

饥饿是因为调度策略不周造成的,而饥饿是因为等待临界资源循环等待造成。课参考:死锁和饥饿的主要区别 - huyoo - 博客园

 3)优先级调度算法

4)高响应比优先调度算法

5)时间片轮转调度算法

6) 多级反馈队列调度算法 

 三、进程同步

解决临界资源问题。

个人理解:系统资源包含处理机资源跟其他资源,而临界资源属于其他资源的一种,临界资源是其他资源中最需要引起关注的一个。

1.进程同步的基本概念

进程同步是为了协调进程间因临界资源问题带来的制约关系。

1)同步机制的准则

这四个原则蛮重要的,在制定进程同步算法时需要考虑到的。空闲让进、忙则等待、让权等待、有限等待。

2)临界资源

 3)同步

4)互斥 

 同步和互斥是两种进程制约关系。此同步跟进程同步有点不大一样。

接下来三个是进程同步常见的三种方法,但是没讲事件,但是可参考:进程同步的四种方法_zxx901221的专栏-CSDN博客_进程同步的方式

2.实现临界区互斥的基本方法

1)软件实现方法

思路:应该是既要满足俩个进程同时请求临界资源时不会有问题,也要满足只有一个进程重复请求临界资源时不会有问题。下面只有算法4同时符合这两个要求。

算法一:单标志法

turn为0,P0进程才能运行;turn为1,P1进程才能运行。因为必须交替执行,不能一个重复执行,违反空闲让进。

 算法2:双标志法先检查

 flag[i]为false,说明进程i没有使用临界资源; flag[j]为false,说明进程j没有使用临界资源。当双方都想要临界资源的时候,会因为会出现同时进入临界区的情况,违反忙则等待。

算法3:双标志法后检查

  flag[i]为false,说明进程i没有使用临界资源; flag[j]为false,说明进程j没有使用临界资源。当双方都想要临界资源的时候,会因为会出现同时进入不了临界区而一直等待的情况,造成饥饿现象而一直无限等下去,违反有限等待。

算法四:皮特森算法

将算法1与算法3结合,同时解决了交替执行和重复执行所遇到的问题,是一个完整符合要求的算法了。这个算法使用了三个标志,用两个标志应该是没办法解决问题。但是该方法无法实现让权等待。

2)硬件实现方法

略。硬件方法相对软件方法简单粗暴了许多,不用考虑同时请求的时候会出问题。

3.信号量

1)整型信号量

2)记录型信号量

记录型信号量引入了阻塞,可实现让权等待。临界区互斥软硬件方法均无法实现让权等待。

 3)信号量实现同步

 两个进程一个P,一个V

4)信号量实现互斥

 在一个进程里先P后V。

4.管程

1)定义

像是引入了一个进程控制类。

 2)条件变量

 用条件变量设置阻塞条件。

 5.常见进程同步问题

进程同步问题感觉挺难的,只能背套路,可参考:信号量同步互斥问题_十分残念的博客-CSDN博客_同步信号量

操作系统学习笔记:进程同步与通信_坤舆湖畔的万某某的博客-CSDN博客

四、死锁

1.死锁的概念

1)死锁定义

2)死锁产生原因

 2.死锁的处理策略

 3.死锁预防

 4.死锁检测与接触

 5.死锁避免

 1)系统安全状态

这告诉我们什么样的资源分配申请序列是安全的。

2)银行家算法

就是告诉我们要怎样怎样得到安全序列。

可参考:一句话+一张图说清楚——银行家算法_土豆洋芋山药蛋的博客-CSDN博客_银行家算法

猜你喜欢

转载自blog.csdn.net/qq_42987967/article/details/120995030
今日推荐