操作系统课堂笔记(4)进程管理之进程同步与互斥

简介: 4.3进程同步与互斥 4.3.1进程间的相互作用 1、分类: 1)相关进程和无关进程(即在逻辑上是否相关) 2)与时间有关的错误 2、进程的同步 进程同步是指进程间一种直接的协同工作关系,是一些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。 3、进程的互斥 (1)进程互斥 某些资源一次只能为一个进程服务,因此各进程间互斥使用这些资源,进程间的这种关系

4.3进程同步与互斥

4.3.1进程间的相互作用

1、分类:

1)相关进程和无关进程(即在逻辑上是否相关)

2)与时间有关的错误

2、进程的同步

进程同步是指进程间一种直接的协同工作关系,是一些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。

3、进程的互斥

(1)进程互斥

某些资源一次只能为一个进程服务,因此各进程间互斥使用这些资源,进程间的这种关系是进程的互斥。进程间的间接相互作用构成进程互斥。

(2)临界区

系统中一些资源一次只允许一个进程使用。这类资源称为临界区资源或共享变量。而进程中访问临界资源的那一段程序称为临界区。

临界区使用规则:有空让进、无空等待、多中选一、有限等待、让权等待。

进程互斥的实质是同步,可看作是一种特殊的进程同步。

4、同步机制

进程同步机制应满足的基本要求:1)描述能力足够强 ,即解决各种进程间同步互斥问题  2)容易实现且效率高  3)使用方便

已有的同步机制:硬件同步机制;信号量及P、V操作;管程;条件临界域;路径表达式(用于集中式系统中);远程过程调用(适用于分布式系统中)等。

4.3.3进程同步机制-----信号量和P、V操作

P、V分别是荷兰文“等待”和“发信号”的首字母,P操作和V操作都是同步原语。

每执行一次P操作,意味着分配一个资源,每执行一次V操作意味着释放一个资源。

1)、信号量

信号量是个被保护的量,只有P、V操作和信号量初始化操作才能访问和改变它的值。

2)、P、V操作

定义如下:

P(s):

(1)S := S - 1;

(2)若S<0,该进程的状态设置为等待状态,然后将该进程的PCB插入相应的S信号量等待队列末尾直到有其他进程在S上执行V操作为止。

V(s):

(1) S := S + 1;

(2) 若S<=0,释放S信号量队列中等待的一个进程,改变其状态为就绪态,并将其插入就绪队列;然后使本操作的进程继续执行。

 通常信号量的取值可以解释为:S值的大小表示某类资源的数量。当S>0时,表示还有资源可以分配;当S<0时,其绝对值表示S信号量等待队列中进程的数目。

3)、用P、V操作实现进程间的互斥

令S初值为1,进程A、B竞争进入临界区的程序可写成:

进程A                          进程B

P(s);                    P(s);

临界区操作;              临界区操作;

V(s);                    V(s);

4)、信号量及P、V操作小结

P、V操作的弱点:由于P或V操作每次只做加1或减1运算,即每执行一个一次P操作只能请求分配一个单位的资源每执行一次V操作只释放一个单位的资源,因此如果一个进程需要一次使用多个资源,就需要连续执行多次P操作,释放这些资源时也需要多次执行V操作。这不仅增加了程序复杂性也降低了通信效率,致使进程之间需要等待的时间很长,甚至有可能导致死锁的发生。

P、V操作在使用时必须成对出现,有一个P操作就一定有一个V操作。当为互斥操作时,它们同处于同一进程;当为同步操作时,则不在同一进程出现。

5)、死锁

(1)死锁的概念

死锁是两个或两个以上的进程中的每一个都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。

产生死锁的原因是共享资源有限,多个进程对共享资源的竞争,而且操作不当。

(2)产生死锁的四个必要条件是资源互斥使用、保持和等待、非剥夺性、循环等待。

(3)解决死锁的方法

一般有死锁的预防,即破坏产生死锁的四个必要条件中的一个或多个,使系统绝不会进入死锁状态;

死锁的避免,即在资源动态分配的过程中使用某种办法防止系统进人死锁状态;和允许系统产生死锁,然后使用检测算法及时地发现并解除它。

安全状态、安全系列、银行家算法等



目录
相关文章
|
1月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
82 0
|
27天前
|
资源调度 监控 算法
深入理解操作系统:进程管理与调度策略
本文旨在探讨操作系统中进程管理的核心概念及其实现机制,特别是进程调度策略对系统性能的影响。通过分析不同类型操作系统的进程调度算法,我们能够了解这些策略如何平衡响应时间、吞吐量和公平性等关键指标。文章首先介绍进程的基本概念和状态转换,随后深入讨论各种调度策略,如先来先服务(FCFS)、短作业优先(SJF)、轮转(RR)以及多级反馈队列(MLQ)。最后,文章将评估现代操作系统在面对多核处理器和虚拟化技术时,进程调度策略的创新趋势。
|
1天前
|
算法 Linux 调度
深入理解操作系统中的进程调度策略
【4月更文挑战第25天】 在多任务操作系统中,进程调度策略是核心组件之一,它负责决定哪个可运行的进程将获得CPU时间。本文将探讨不同的进程调度算法,包括它们的原理、优缺点以及适用场景。我们将重点分析先到先服务(FCFS)、短作业优先(SJF)、轮转调度(RR)和多级反馈队列(MLFQ)等经典算法,并讨论现代操作系统如Linux和Windows中的实际调度策略。文章的目的是为读者提供对操作系统进程调度机制深度了解,并展示其在系统性能和用户体验中的关键作用。
|
1天前
|
负载均衡 算法 调度
深入理解操作系统中的进程调度策略
【4月更文挑战第25天】 在现代操作系统的核心功能中,进程调度策略扮演着至关重要的角色。本文将详细解析进程调度的基本概念、调度算法的种类及其背后的原理,并探讨它们对系统性能的影响。通过比较不同的调度策略,我们可以更深入地理解操作系统如何管理资源,确保多任务环境下的效率和公平性。
|
18天前
|
算法 Linux 调度
深入理解操作系统的进程调度策略
【4月更文挑战第8天】本文深入剖析了操作系统中的关键组成部分——进程调度策略。首先,我们定义了进程调度并解释了其在资源分配和系统性能中的作用。接着,探讨了几种经典的调度算法,包括先来先服务(FCFS)、短作业优先(SJF)以及多级反馈队列(MLQ)。通过比较这些算法的优缺点,本文揭示了它们在现实世界操作系统中的应用与局限性。最后,文章指出了未来进程调度策略可能的发展方向,特别是针对多核处理器和云计算环境的适应性。
|
19天前
|
算法 调度 UED
深入理解操作系统中的进程调度策略
【4月更文挑战第7天】 在多任务操作系统中,进程调度策略是决定系统性能和响应速度的关键因素之一。本文将探讨现代操作系统中常用的进程调度算法,包括先来先服务、短作业优先、轮转调度以及多级反馈队列等。通过比较各自的优势与局限性,我们旨在为读者提供一个全面的视角,以理解如何根据不同场景选择合适的调度策略,从而优化系统资源分配和提升用户体验。
|
28天前
|
算法 Unix Linux
深入理解操作系统:进程管理与调度策略
在现代操作系统的核心功能中,进程管理及其调度机制是维护系统稳定与高效运行的基石。本文将深入探讨操作系统中的进程概念、进程状态、以及进程调度策略。我们将从理论和实践两个维度出发,解析不同操作系统如何通过进程管理来优化资源分配,提升系统响应速度,并保证多任务环境下的公平性与效率。特别地,文章还将讨论实时系统中的调度策略,以及它们对于确保关键任务按时完成的重要性。
14 1
|
1月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【2月更文挑战第31天】 在计算机科学领域,操作系统是至关重要的组成部分,它负责管理和控制硬件资源,同时为应用程序提供服务。本文将深入探讨操作系统的核心功能之一——进程管理,以及其中的关键概念:进程调度策略。我们将剖析进程的概念、生命周期和调度算法,并讨论它们如何影响系统性能和用户体验。通过比较不同的调度策略,本文旨在提供对操作系统设计决策背后权衡的深刻理解。
|
1月前
|
算法 调度 开发者
深入理解操作系统的进程调度策略
【2月更文挑战第30天】 在现代操作系统中,进程调度策略是其核心组成部分之一,关系到系统资源的合理分配和任务执行的高效性。本文将详细分析几种常见的进程调度算法,包括先来先服务(FCFS)、短作业优先(SJF)、轮转调度(RR)和多级反馈队列(MLFQ),并探讨它们在不同场景下的适用性和优缺点。通过对比分析,旨在帮助读者深入理解进程调度机制,以及在实际系统设计时如何根据需求选择合适的调度策略。
|
1月前
|
算法 大数据 Linux
深入理解操作系统之进程管理的艺术
【2月更文挑战第30天】 在现代计算机系统中,操作系统扮演着指挥官的角色,而进程管理则是其核心职能之一。本文旨在探讨操作系统中进程管理的关键技术和原理,以及它们如何影响系统性能和用户体验。文章将详细解析进程的概念、生命周期、调度算法及进程间的通信机制,并讨论当前操作系统如Linux和Windows在进程管理方面的创新策略。通过深入分析,本文揭示了高效进程管理对于提升操作系统响应速度和资源利用率的重要性。