操作系统第二章进程与线程

🥪🥪🥪各位好,我是小饼干🍪,一个编程界的小学生,每天都希望学习一点点编程相关。最近在学操作系统,整理了一些笔记,如果有不足,非常感谢指正,欢迎跟我一起学习呀,感谢各位的驻足,笔芯♥。

目录

1.前趋图和程序执行

1.1前趋图

1.2程序顺序执行

1.2.2特征

1.3程序并发执行

1.3.1程序的并发执行

1.3.2特征

2.进程

2.1进程的定义

2.2进程的特征

3.进程的基本状态以及转换

3.1基本状态

3.2转换

3.3创建状态和终止状态

3.4挂起操作和进程状态的转换

3.5进程管理中的数据结构

3.5.1操作系统中用于管理控制的数据结构

3.5.2PCB的作用

3.5.3PCB中的信息

4.进程控制

4.1概念

4.1创建进程(用Creat原语)

4.2进程的终止

4.3进程的阻塞(block原语)与唤醒(wakeup原语)

4.3.1引起阻塞和唤醒的事件

4.4进程的挂起(suspend)与激活(active)

5.进程同步

5.1进程同步的基本概念

5.1.1两种形式的制约关系

5.1.2临界资源

5.1.3临界区

5.1.4同步机制应遵循地规则

5.2硬件同步机制

5.3信号量机制

5.3.1整型信号量

5.3.2记录型信号量

5.3.3AND型信号量

5.3.4信号量集

6.经典进程同步的问题

6.1生产者-消费者问题

6.2哲学家进餐问题

6.2.1解决方案


 

1.前趋图和程序执行

1.1前趋图

是一个有向无循环图,图中的每个结点可用来表示一个进程或者程序段,乃至一个语句,结点间的有向边则表示两个结点之间存在偏序或前驱关系。

1.2程序顺序执行

1.2.2特征

①顺序性

②可再现性

1.3程序并发执行

只有不存在前趋关系的程序之间才有可能并发执行,否则无法并发执行。

1.3.1程序的并发执行

1.3.2特征

①间断性

②失去封闭性

2.进程

2.1进程的定义

🍇进程:由程序段,相关的数据段和PCB三部分构成进程实体。(一般情况下我们把进程实体称为进程)

🍈所谓创建进程就是创建进程实体中的PCB,撤销进程就是撤销进程的PCB(PCB是进程存在的唯一标准)

🍉进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

PCB介绍

🌽PCB记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息

🌶OS是根据PCB来对并发执行的进程进行控制和管理的。

🫑PCB记录操作系统所需数据,而程序段和数据段记录程序本身运行所需数据

2.2进程的特征

🥑动态性:进程是程序的一次执行过程,是动态地产生,变化和消亡、

🍆并发性:内存中有多个进程实体,各进程可并发执行

🥔独立性:进程是能独立运行,独立获得资源,独立接受调度的基本单位

🥕异步性:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题

3.进程的基本状态以及转换

3.1基本状态

①就绪:进程已分配到除了CPU以外的所有必要资源后,只需要再获得CPU,便可立即执行。

②运行:指进程已获得CPU,程序正在执行的状态

③阻塞:正在执行的进程由于发生某件事暂时无法继续执行的状态,(等待操作系统分配打印机,等待读磁盘操作的结果,CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要首先将其他进程需要的资源分配到位,才能得到CPU的服务)

3.2转换

f7316a9c3c834c7eb778e4a4eb4b71ab.png

 

3.3创建状态和终止状态

创建状态:进程正在被创建,操作系统为进程初始化PCB,分配资源。创建状态结束后,该进程转入就绪状态。

终止状态:进程正在从系统中撤销,操作系统会回收进程拥有的资源,撤销PCB

0e1753996486412e896e95672ae8fac8.png

 

3.4挂起操作和进程状态的转换

挂起

激活

3.5进程管理中的数据结构

3.5.1操作系统中用于管理控制的数据结构

①在计算机系统中,对于每个资源和每个进程都设置了一个数据结构,用于表征其实体,我们称之为资源信息表或进程信息报表。

②OS管理的这些数据结构一般分为以下四类:内存表、设备表、文件表PCB。

3.5.2PCB的作用

① 作为独立运行基本单位标志

②能实现间断性运行方式

③提供进程管理所需要的信息

④实现与其他进程的同步与通信

3.5.3PCB中的信息

①进程标识符:外部标识符和内部标识符

②处理机状态

③进程调度信息:进程调度状态和进程优先级

④进程控制信息

 

4.进程控制

4.1概念

进程控制:是对系统中所有的进程实施有效的管理,它具有创建新进程,撤销已有进程,实现进程状态转换等功能

原子操作:一个操作中的所有动作,要么全做,要么全不做,换言之,它是一个不可分割的基本单位。

4.1创建进程(用Creat原语)

①申请空白PCB

②为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备被和CPU时间

③初始化进程控制块:初始化标识信息,初始化处理机状态信息,初始化处理机控制信息

④如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

4.2进程的终止

①正常结束

②异常结束

③外界干预

4.3进程的阻塞(block原语)与唤醒(wakeup原语)

4.3.1引起阻塞和唤醒的事件

①向系统请求共分享资源失败,进程会转为阻塞状态。在其他进程释放资源时,请求进程才被唤醒。

②等待某种操作的完成。操作完成后由中断处理程序将该进程唤醒。

③新数据尚未到达。数据到达后便可唤醒。

④等待新任务到达。

4.4进程的挂起(suspend)与激活(active)

5.进程同步

5.1进程同步的基本概念

如果不能采取有效的措施,对多个进程的运行进行妥善的管理,必然会因为这些进程对系统资源的无序争夺给系统造成混乱,致使每次处理结果存在着不确定性,即显现出其不可再现性。所以进入了进程同步机制。

5.1.1两种形式的制约关系

①直接相互制约关系

②间接相互制约关系

5.1.2临界资源

在生产者与消费者问题中,解决问题的关键是把变量counter作为临界资源处理,亦即,令生产者和消费者进程互斥地访问变量counter

5.1.3临界区

5.1.4同步机制应遵循地规则

①空闲让等

②忙则等待

③有限等待

④让权等待

5.2硬件同步机制

5.3信号量机制

为了解决进程同步和进程互斥问题

5.3.1整型信号量

🍞用一个整数型变量作为信号量,数值表示某种资源

🥐对信号量只能进行初始化、P、V三种操作(wait(S)、signal(S))

🥖不遵循让权等待

5ba2d83191a744a29dae737b44aa1304.png

 

5.3.2记录型信号量

🥩S.value表示某种资源数,S.L指向等待该资源的队列

🍱P操作中,一定是S.value--,之后可能执行block原语

🍘V操作中,一定是S.value++,之后可能执行wakeup原语

🍠注意:需要自己推断什么条件下执行block或者wakeup

0be87803e6a34d70bc69e71f668cc455.png

 

 

5.3.3AND型信号量

5.3.4信号量集

6.经典进程同步的问题

6.1生产者-消费者问题

🏟实现互斥的wait(mutex)和signal(mutex)必须成对出现

🏛对资源信号量empty和full的wait和signal操作,同样需要成对地出现

6.2哲学家进餐问题

6.2.1解决方案

 ⛲最多只允许有四位哲学家同时去拿他左边地筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时释放出他用过地两个筷子,从而使更多地哲学家能够进餐。

⛺仅当哲学家的左、右两只筷子均可使用时,才允许他拿起筷子进餐。

🌁规定奇数号哲学家先拿起他左边的筷子,然后再去拿右边的筷子,而偶数号哲学家则相反,按此规定,将是1、2号哲学家竞争1号筷子,3、4号哲学家竞争3号筷子,即五位哲学家都先竞争奇数号筷子,获得后,再去争夺偶数号筷子,最后总会有一位哲学家能获得两只筷子而进餐

 

 

 

 

 

 

 

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值