进程管理及并发控制和同步.doc
进程管理

{
Flag[i]=FALSE;
}
process i;/*i-0 or i=1*/
……………..
Enter-crtsec(i);/*进入临界区*/
IN CRTICAL SECTION
Leave-crtsec(i);/*离开临界区*/
……………
【解答】
一次仅允许一个进程使用的资源称为临界资源,在进程中对于临界资源访问的程序段称为临界区。从概念上讲,系统中各进程在逻辑上是独立的,他们可以按各自独问题的共行进程,它们之间必须互相排斥,以保证不会同时进入临界区。这种算法是不安全的。因为,在进入临界区的操作Enter-crtsec( )不是一个原子操作,如果两个进程同时执行完其循环(此前两个flag均为FALSE),则这两个进程可以同时进入临界区。
分析:本题的第一部分是检查考生对基本概念的记忆与理解,在本题的分数中占的比较小,是解答本题的基础。题目的第二部分时一个典型的生产者—消费者问题,其中的难点在于PB既是生产者优势消费者,处理不好可能造成同步错误或死锁。
【解答】
P、V操作可用下面的伪码进行描述:
PROCEDUREP(S)
BEGIN
Lock out interrupts;
(3)一个进程可以执行一个或几个程序;反之,同一个程序可能由几个进程同时执行。
(4)进程具有并发性,它能真实地描述并发执行的活动,而程序不具备这种特征。
(5)进程具有创建其它进程的功能,程序不具备这种功能。
(6)进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位
3操作系统中为什么引入进程?
4.唤醒原语(active primitive)
当阻塞队列中的进程等待的事件发生时,都必须调用唤醒原语,以便把等待进程从阻塞中解脱出来获得重新参加调度的资格。
OS基本内容总结

OS基本内容总结.doc操作系统(OS)基本内容总结引言操作系统(Operating System,简称OS)是计算机系统中最基本的系统软件,它管理计算机硬件资源并为用户和其他软件提供时间和空间上的服务。
本文档将对操作系统的基本内容进行总结,包括操作系统的定义、功能、类型以及主要的操作系统概念。
操作系统的定义操作系统是计算机系统中的一个系统软件,它负责管理计算机硬件资源,提供用户界面,控制程序执行,并为计算机程序提供支持。
操作系统的功能1. 进程管理进程控制:创建、撤销进程,实现进程状态的转换。
进程同步:协调进程间的合作。
进程通信:进程间信息传递。
死锁处理:避免和解决进程间的死锁问题。
2. 内存管理内存分配:为程序分配内存空间。
内存保护:确保进程间的内存互不干扰。
地址转换:实现逻辑地址到物理地址的转换。
3. 文件系统管理文件存储空间的分配和管理。
目录结构的组织和管理。
文件的读写管理和存取控制。
4. 设备管理管理各种硬件设备,如打印机、磁盘等。
实现设备分配、设备处理和设备通信。
5. 用户接口提供用户与操作系统交互的界面,如命令行界面(CLI)和图形用户界面(GUI)。
操作系统的类型1. 批处理系统早期的操作系统类型,主要用于批处理作业。
2. 分时系统允许多个用户同时使用计算机资源,实现资源共享。
3. 实时系统能够及时响应外部事件,并在严格的时间限制内完成任务。
4. 网络操作系统支持网络环境下的资源共享和通信。
5. 分布式操作系统由多个物理或逻辑上分离的计算机组成,协同工作。
6. 微内核操作系统核心功能最小化,其他功能通过模块化的方式实现。
主要的操作系统概念1. 进程与线程进程:程序的执行实例,是资源分配的基本单位。
线程:进程中的一个实体,是程序执行的基本单位。
2. 并发与并行并发:多个进程在宏观上同时运行。
并行:多个进程在多台处理器上同时运行。
3. 死锁多个进程在运行过程中因争夺资源而造成的一种僵局。
操作系统进程管理OS211

第2章 进程管理
2.1 进程的基本概念
2.1.1 程序的顺序执行及其特征 2.1.2 前趋图 2.1.3 程序的并发执行及其特征 2.1.4 进程的特征与状态 2.1.5 进程控制块
返回本章首页
第2章 进程管理
2.1.1 程序的顺序执行及其特性
由于各类软件的出现及日益复杂化,使得程序设 计的概念和方法有了很大的发展,在单道程序工 作环境中,我们把一个“程序”理解为“一个在 时间上按严格次序前后相继的操作序列”。
C2
P2
图2-1 (a)
第2章 进程管理
程序顺序执行的图示
对于程序段中的多条语句来说,也有一个执行顺序问题, 如对于包含下述三条语句的程序段:
S1: a=x+y; S2: b=a-5; S3: c=b+1;
可表示为:
S1
S2
S3
图2-1 (b)
第2章 进程管理
一切顺序执行的程序都具有下列特性: (1)顺序性。即每一操作都必须在上一个 操作结束之后开始。 (2)封闭性。程序运行时独占全机资源; 资源的状态(除初始状态外)只有本程序才 能改变它。程序一旦开始运行,其执行结果 不受外界因素影响。 (3)可再现性。只要执行时的环境和初始 条件相同,程序不论是连续执行还是“走走 停停”地执行,都将获得相同的结果。
P1→P2, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P6→P8, P7→P9, P8→P9 或表示为: P={P1,P2,P3,P4,P5,P6,P7,P8,P9} →={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8), (P6,P8),(P7,P9),(P8,P9)}
操作系统-进程管理

02
最短作业优先(SJF):优先调度预计运行时 间最短的进程。
03
最短剩余时间优先(SRTF):优先调度剩余 时间最短的进程。
04
优先级调度:根据进程的优先级进行调度。
死锁的产生与预防
死锁的产生
死锁是指两个或多个进程在无限期地等待对方释放资源的现象。产生死锁的原因包括资源分配不当、 请求和保持、环路等待等。
操作系统-进程管理
• 进程管理概述 • 进程的同步与通信 • 进程调度与死锁 • 进程的并发控制 • 进程管理的发ห้องสมุดไป่ตู้趋势与挑战
01
进程管理概述
进程的定义与特点
01
进程是程序的一次执行,具有动态性、并发性、独立性和制 约性。
02
进程拥有独立的内存空间,执行过程中不受其他进程干扰。
03
进程是系统资源分配和调度的基本单位,能够充分利用系统 资源进行高效计算。
进程同步的机制
进程同步的机制主要包括信号量机制、消息传递机制和共享内存机制等。这些 机制通过不同的方式协调进程的执行顺序,以实现进程间的有效协作。
信号量机制
信号量的概念
信号量是一个整数值,用于表示系统资源或临界资源的数量 。信号量可以用来控制对共享资源的访问,以避免多个进程 同时访问导致的数据不一致问题。
消息传递的机制
消息传递的机制包括发送和接收操作。发送操作将消息发送给目标进程,接收操 作从消息队列中获取消息并进行处理。通过这种方式,多个进程可以通过发送和 接收消息来协调执行顺序和交换数据。
共享内存机制
共享内存的概念
共享内存是一种实现进程间通信的有效方式,通过共享一段内存空间来实现不同进程之间的数据交换和共享。
预防死锁的方法
操作系统的基本功能

操作系统的基本功能操作系统是计算机系统中一种非常重要的软件,它负责管理和控制计算机的各种资源,使得计算机能够高效地运行。
操作系统的基本功能主要包括进程管理、内存管理、文件系统管理和设备管理。
一、进程管理进程是指正在运行的程序的实例。
操作系统通过进程管理来控制并发执行的程序,确保它们可以有序地共享计算机的资源。
进程管理的功能包括进程创建、终止、调度、同步和通信。
1. 进程创建操作系统负责创建新的进程。
当用户启动一个应用程序时,操作系统通过分配内存和其他资源,为该程序创建一个进程,并为其分配唯一的标识符。
2. 进程终止当一个进程执行完毕或者发生错误时,操作系统会终止该进程,并释放其占用的资源。
进程终止还可以由用户主动发起,例如通过关闭应用程序窗口来结束进程。
3. 进程调度操作系统通过进程调度算法来决定进程的执行顺序。
进程调度需要考虑各个进程的优先级、等待时间、执行时间等因素,以实现公平和高效的资源分配。
4. 进程同步和通信多个进程可能需要共享资源或者相互合作完成任务。
操作系统通过进程同步机制,如信号量和互斥锁,来保证进程之间的顺序执行或互斥访问。
同时,操作系统还提供进程间通信的机制,如管道和消息队列,使得进程可以相互传递数据和消息。
二、内存管理内存管理是操作系统的另一个重要功能,它负责管理计算机的内存资源,为进程提供必要的内存空间,并保证不同进程之间的内存互不干扰。
1. 内存分配操作系统负责将计算机的内存空间划分为多个分区,并按需为进程分配适当大小的内存。
常见的内存分配算法包括首次适应算法、最佳适应算法和最坏适应算法。
2. 内存回收当进程终止或者不再使用某一块内存时,操作系统需要将其回收,以便分配给其他进程使用。
内存回收可以通过垃圾回收算法或者手动释放内存来实现。
3. 内存保护为了保证进程之间的互不干扰,操作系统需要实现内存保护机制。
操作系统通过权限设置和地址隔离,确保每个进程只能访问自己被分配的内存空间,从而提高系统的安全性和稳定性。
操作系统中的并发控制

操作系统中的并发控制随着计算机技术的不断发展,操作系统已成为现代计算机系统中不可或缺的核心组成部分。
在多用户、多任务的环境下,操作系统需要管理和控制资源的分配和调度,以确保系统的高效运行和资源的合理利用。
而其中一个重要的方面就是并发控制。
一、什么是并发控制在操作系统中,所谓并发指的是两个或多个事件在同一时间间隔内同时发生的情况。
而并发控制则是指对多个并发执行的进程或线程进行协调和管理,以避免出现潜在的问题,如资源竞争、死锁等。
二、并发控制的目标并发控制的目标是确保多个进程或线程在并发执行过程中能够正确地共享和访问资源,并且不会发生竞争条件和冲突。
主要包括以下几个方面:1. 互斥访问:确保同一时间内只有一个进程或线程能够访问共享资源,避免数据的不一致性和错误的结果。
2. 死锁避免:通过合理的资源分配和进程调度,防止进程陷入循环等待的状态,造成系统无法正常进行的情况。
3. 同步执行:确保多个进程或线程按照特定的顺序进行执行,避免因执行顺序不确定而导致的问题。
三、并发控制的方法为了实现并发控制,操作系统采用了多种方法和机制,下面介绍其中常见的几种方法。
1. 互斥锁:互斥锁是一种最常见的并发控制机制,通过给共享资源加锁,并在访问资源前先判断锁的状态,以实现临界区的互斥访问。
2. 信号量:信号量是一种用于进程间同步和互斥的机制,通过对共享资源进行计数和操作,实现资源的互斥访问和进程的同步执行。
3. 读写锁:读写锁是一种特殊的互斥锁,允许多个线程同时对共享资源进行读操作,但在有写操作时需要互斥访问。
4. 事件:事件是一种用于线程同步的机制,通过线程之间的信号通知来实现特定操作的协调和同步。
5. 临界区:临界区是一段代码,在多个进程或线程中同时访问时需要进行互斥控制的区域,通过临界区的互斥访问实现并发控制。
四、并发控制的应用并发控制在操作系统中的应用广泛,影响着系统的性能和用户体验。
以下是几个常见的应用场景:1. 数据库管理系统:数据库管理系统需要确保多个用户能够同时对数据库进行读写操作,但又不会导致数据的冲突和不一致。
计算机操作系统的主要功能

计算机操作系统的主要功能计算机操作系统是一种管理和控制计算机硬件与软件资源的系统软件,它在计算机领域扮演着至关重要的角色。
操作系统主要负责协调和管理计算机的各种资源,为用户和应用程序提供良好的使用环境。
本文将介绍计算机操作系统的主要功能。
1. 进程管理进程是指计算机中正在运行的程序,进程管理是操作系统的核心功能之一。
操作系统负责管理和控制进程的创建、调度、同步和终止。
它通过分配CPU时间片给各个进程,实现多任务并发执行,提高了计算机的利用率和响应速度。
操作系统还负责进程间的通信和同步,确保进程之间能够正确地共享数据和资源。
它提供了各种进程间通信的机制,如共享内存、管道、消息队列等,使得不同进程可以安全地交换信息。
2. 内存管理内存管理是操作系统的另一个重要功能。
计算机内存是用来存储程序执行时所需要的指令和数据的地方。
操作系统负责管理内存的分配和回收,为不同的程序提供适当的内存空间。
操作系统通过虚拟内存技术,将物理内存抽象成逻辑地址空间,使得每个程序都有自己独立的地址空间。
它通过页表和地址转换机制,将程序的逻辑地址映射到物理地址,实现了内存的隔离和保护。
此外,操作系统还负责处理内存的页面置换和页面回写,以及内存的分段和分页机制。
它通过这些手段,实现了对内存资源的高效利用和统一管理。
3. 文件系统文件系统是操作系统的重要组成部分,它负责管理计算机上的文件和目录。
文件系统提供了一种逻辑结构,使得用户可以方便地组织和访问文件。
操作系统通过文件系统,为用户提供了对文件的创建、读写、删除和重命名等操作。
它还负责文件的存储管理,将文件存储在磁盘中,并给予文件不同的权限和保护机制。
文件系统还具备文件的共享和访问控制功能,支持多用户对文件进行并发访问。
它通过文件的索引和目录结构,实现对文件的快速定位和检索。
4. 设备管理设备管理是操作系统的另一个重要功能,它负责管理计算机上的外部设备,如硬盘、键盘、鼠标、打印机等。
2-进程管理

CH2 进程管理CPU即处理机的一种,为方便见,以后我们不再区分。
进程是处理机内运行的一个实体,处理机管理核心是调哪个进程到处理机内运行,所以OS把处理机管理纳入进程管理范畴。
在OS 中, 进程管理与存储器管理是最重要的两部分, 也是最接近内核的两层. 在现代OS中, 进程是作为资源分配和独立运行的基本单位. 我们合并第二、三两章,主要内容有:§1 中断#1 中断概念#2 中断功能#3 中断处理§2 多道程序设计§3 进程引入#1 程序的顺序执行及其特征#2 程序的并行执行及其特征#3 进程定义及其特征#4 进程三态及其演变(就绪/执行/阻塞)#5 进程描述(PCB)及其组织(队列/索引)§4 进程控制#1 内核与原语#2 创建与撤消(Create/Destroy)#3 ★挂起与激活(Suspend/Active)#4 阻塞与唤醒(Blocked/Wakeup)§5 进程调度#1 概念(级别, 方式, 术语)#2 调度算法(FIFO/最短时间/最高优先级/轮转/多级反馈)#3 引起调度的原因和实现§6 进程同步#1 概念#2 信号量机制(概念/实现)#3 信号量应用(互斥/同步)#4 经典进程同步问题----例子#5 ★信号量集和管程§7 进程通信#1 类型(内存共享/消息机制/文件共享)#2 直接通信方式(一般模型/应答式/链路)#3 ★直接通信应用(消息缓冲)§8 死锁#1 原因及必要条件#2 预防#3 避免(教材称为预防不恰当)#4 检测#5 解除与书不同处: 处理机调度纳入进程调度;CH7的§1并发进程纳入进程引入一节;进程控制单独列一节§1 中断一、中断概念1、中断:CPU对系统中发生的异步事件的响应处理。
2、中断引入的目的是提高CPU的利用率和系统实时性能。
3、中断是多道程序设计实现的基点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程管理及并发控制和同步在本章中,我们研究实现进程管理及并发控制和同步。
第1节进程的定义和特征§1. 进程的定义进程(process)或任务(task)这一术语是在六十年代初期,首先在麻省理工学院(MIT)的MULTICS系统和IBM公司的CTSS/360系统中引入的,其后有许多人对进程下过各式各样的定义,下面列举几种比较能反映进程实质的定义:⑴进程是程序的一次执行,亦即进程是在指定的内存区域中的一组指令序列的执行过程。
⑵进程(或任务)是可以和别的计算并发(concurrent)执行的计算。
⑶进程可以定义为一个数据结构和能在其上进行操作的一个程序。
⑷进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
⑸进程(process)是一个具有独立功能的程序关于相关的数据集在处理机上的执行过程。
⑹§2. 进程的特征进程具有顺序性、动态性、并发性、独立性和异步性等特征,进程的最基本的特征是并发性。
一个进程的顺序性是指每个进程在顺序处理机上的执行是严格按次序进行的,即只有当其中的一个操作结束后,才能开始其后续操作。
进程的动态性是指它是程序的一次执行过程,表现为它是由“创建(create)”而产生,由调度程序“调度”而运行,因“等待事件”而阻塞,最后,由“撤消(destroy)”而消亡。
可见,进程是有一定生命期的,是动态地产生,运行和消亡的。
进程的并发性是指多个进程可以同时在一个系统中并发地执行。
进程的独立性是指它可以作为系统进行资源分配和调度的独立单位。
进程的异步性是指系统中的活动的进程总是按照各自独立的、不可预测的速度运行。
§3. 进程的结构为了描述进程的运动变化过程并使之能独立地运行,应该为每个进程配置一个进程控制块(process control block 简记为PCB)。
这样,从结构上看,每个进程都是由一个程序段和相应的数据段以及一个进程控制块三部分所组成。
在UNIX系统中,把这三部分统称为进程映像(image)。
而将进程定义为“进程映像的执行”。
第2节进程的状态和进程控制块§1. 进程的状态前面已经介绍过,进程有着“运行-暂停-运行-撤消”的活动规律,它并非一直处于运行状态。
事实上,在运动中的进程至少具有三个基本状态:⑴就绪状态(Ready):一旦进程分配到除处理机(CPU)以外运行所需的必要资源,就处于准备运行的状态,但是由于进程数多于处理机数,使得未分配到处理机的进程处于等待处理机的状态,一旦进程分配到处理机它就立即变成运行状态,并且立即运行。
⑵运行状态(Running):进程已经分配到包括处理机(CPU)在内运行所需的一切必要资源,并且正在处于运行的状态,即进程正在运行。
⑶阻塞状态(Blocked):正在运行中的进程,由于某一事件(例如等待输入/输出操作的完成)而使之暂时无法运行而处于暂停的状态,或者说进程的执行受到了阻塞,所以称这种暂停状态为阻塞状态。
有时又称为等待状态。
进程并非固定地处于某个状态,它将随着自身的执行和外界环境的变化而发生变化。
图2-1表示了三个基本状态之间的演变及其典型的演变原因。
实际的操作系统常常把上述的三个基本状态进一步细化。
例如,图2-2显示了典型的UNIX操作系统进程状态之间的演变及其演变原因。
图2-1 基本进程状态演变图图 2-2 UNIX进程状态演变图§2. 进程控制块为了描述进程的运动变化过程并使之能独立地运行,采用了为每个进程配置一个进程控制块(Process Control Block 简记为PCB),或称进程描述符(Process Descriptor)。
操作系统根据进程控制块对该进程进行控制和管理。
当系统创建一个进程时,同时为它设置一个进程控制块。
当进程完成时,系统收回它的进程控制块,进程也随之消亡。
为了充分描述进程,使之便于操作系统进行控制和管理。
进程控制块通常包含下列信息:⑴进程标识符(Identification):进程标识符是以字母或数字形式表示的进程名称。
每个进程只能有且仅有唯一的进程标识符,不同的进程不可以用相同的名称。
在创建一个进程时,系统必须给出该进程的进程标识符,并填入进程控制块中。
在有些系统中,为了方便起见,每个进程具有两个标识符,一个是在创建进程时,系统所提供的内部名称,一个是由创建者给予的外部名称。
⑵进程的当前状态(Status):说明进程目前处于何种状态,作为进程调度时分配处理机的主要依据,只有当进程处于活动就绪状态,并且具有最高优先数时才可以分配到处理机。
当进程处于阻塞状态时,要在进程控制块中说明阻塞原因。
⑶处理机状态保护区:当进程由于某个事件从运行状态变为阻塞状态时,处理机现场信息被保存在进程控制块内部一个区域中,以便在进程重新获得处理机时,该进程能够恢复处理机现场继续执行。
通常被保护的信息有各种寄存器、指令计数器和处理机状态字等。
⑷进程的起始地址:进程将要从此地址开始执行。
在页面管理中应给出页表指针值等。
⑸资源清单:进程所需的资源。
⑹进程优先数:记录该进程的优先数。
⑺队列指针(pointer)或链接字(link):它用于将处于同一状态的进程链接成一个队列。
存放本队列下一个进程的进程控制块首址。
⑻进程族的联系:它说明该进程与其进程家族的关系。
⑼计账信息:它被系统用于对该进程日常的计账管理。
第3节进程控制进程控制的职责是对系统中全部进程实施有效的管理。
这意味着应该具有创建新进程,阻塞进程,激活进程和撤消已经结束的进程等能力。
为了对于进程进行控制,操作系统内必须设置一个机构,它具有上述进程控制及进程通讯和资源管理等功能。
这样的机构称为操作系统的内核(Kernel)。
内核是通过各种原语操作来实现各种进程控制和管理功能的。
所谓原语(Primitive)是机器指令的延伸,它由若干条指令组成,用以完成特定功能的一段程序。
为了保证原语操作的正确性,原语在执行期间是原子的,亦即原语在执行期间是不可分割的。
在许多机器的实现中,规定在执行原语操作时要屏蔽中断,以保证其不可分割性。
用于进程控制的原语通常有下列几种:⑴创建原语(Create Primitive)⑵悬挂原语(Suspend Primitive)⑶激活原语(Activate Primitive)⑷阻塞原语(Block Primitive)⑸唤醒原语(Wakeup Primitive)⑹撤消原语(Destroy Primitive)现代操作系统大多采用基于进程的设计方法进行设计。
进程是操作系统的主要结构单位。
一个操作系统就是由若干进程的协同地,并发地执行而组成。
例如,一个简单的批处理操作系统可以看成由三个协同工作的reader进程、executer进程和printer进程组成。
其中,reader进程从输入设备读取数据,并且把它们存入输入缓冲区。
executer进程从输入缓冲区中读取数据,执行规定的操作,并且把执行结果存入输出缓冲区。
printer进程从输出缓冲区读取信息,并且把它们在打印机上输出。
并发进程可以通过两种方式执行:一是允许进程共享一个或多个处理机,另一种方式是允许每个进程在其所在的处理机上运行。
前一种途径涉及到多道程序设计技术,它是由操作系统的内核支持的,操作系统的内核在(一个或多个)处理机上多路传输那些进程。
后一种涉及多处理机技术(如果这些处理机共享一个公共存储器),或涉及到分布处理技术(如果这些处理机由一个通信网络互连)。
当然也存在一些混合方式,例如,分布式系统中的各计算机往往用多道程序设计方式来执行任务。
第4节进程的同步与互斥虽然进程具有异步特性,但这并不是说系统中的各个进程是彼此独立的,由于种种原因,它们之间常常相互作用,并存在某种彼此依赖或互相制约的关系,这些关系按其性质可分为同步(synchronization)和互斥(mutual exclusion)关系。
系统中往往存在一些伙伴进程,即为完成同一任务而彼此合作的一组进程。
伙伴进程在执行过程中常常需要互通信息或相互等待。
以便协同完成同一任务。
具体地说,一进程运行到某点时,要求另一伙伴进程为它提供信息,在未得到这一信息时,该进程等待,直至收到这一信息后,才能继续执行。
它们彼此都清楚对方的存在及作用,而且每一进程还可能直接依赖于本组进程中其它成员所产生(或所提供)的数据。
这是进程间的一种直接交互关系,表现了进程间协同工作的特性,因此称为进程间的同步关系。
例如,在前述的简单批处理操作系统中,三个进程必须相互配合、协同工作,即executer进程必须等待reader进程发来“输入缓冲区中已有数据”的信息后才能开始工作;同理,reader进程则必须等待executer进程发来“输入缓冲区中有空闲空间”的信息后,才能接着读入一个(批)数据并存入输入缓冲区中。
一般说来,并发进程可以共享系统中的各种资源,但系统中的有些资源具有一次仅允许一个进程所使用的属性。
我们称这类资源为临界资源(critical resources)。
若一进程在使用临界资源时,则其它欲占用者必须等待,仅当使用者释放后,等待的进程才可使用它。
这就导致了若干进程因竞争临界资源而不得互斥地执行的情况。
进程间的这种现象就称为进程的互斥。
例如,假设系统只配有一台行打机,现有两个进程同时申请使用它。
显然,只有当一个进程在使用完行打机后才允许另一进程使用它,不然,两个进程的打印信息将夹杂不清。
在操作系统中把访问临界资源的那段程序称为临界段(critical section)。
为了使临界资源互斥地使用,就要使临界段互斥地执行,即涉及到同一临界资源的临界段在时间上应互相排斥。
因此,临界段问题实质上是一个互斥问题。
操作系统中互斥问题很多,例如,两个进程竞争同一物理资源,两个进程访问一个共享的缓冲区等等。
§1. 并发进程控制对进程之间共享资源的控制必须满足下列要求:安全性(safety)在任意一个给定时刻只允许至多一个进程使用一个共享资源,不允许两个及两个以上进程同时使用同样的共享资源。
否则,进程对共享资源操作的结果往往是破坏性的。
活动性(liveness)活动性表现为两个方面,一方面任意一个进程在使用共享资源时,必须在有限时间内释放,不能无限期地占用而导致其它进程永远无法使用;另一方面当某个进程欲使用共享资源时,则应在有限时间内达到目的,而不应该互相阻止导致彼此永远都不能使用。
公正性(fairness)对进程使用共享资源的次序不作不公正的规定。
当某个进程欲使用共享资源时,只要其它进程不在使用该共享资源,就应该允许该进程使用。
并且任意一个要求使用共享资源的进程不能无限期地等待,总应该在某个公正的时间界限内获得该资源。
由上可知,并发进程在进入临界段时必须互斥地进行,即必须确保每次至多只有一个进程进入临界段,为此,应遵循下面的原则:⑴当有多个进程都希望进入它们的临界段时,它们不应相互封锁,而应在有限时间内让其中之一进入临界段。