进程管理及并发控制和同步.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. 内存管理内存管理是操作系统的重要功能之一,它负责分配和回收计算机的内存资源。
操作系统通过内存管理功能,将物理内存划分为多个逻辑内存块,为每个进程分配所需的内存空间,以及进行内存的释放和回收。
•内存分配:操作系统根据进程的需求,动态分配内存空间。
常见的内存分配方式包括连续分配、分页和分段等。
•内存回收:当进程终止或释放内存时,操作系统负责回收已分配的内存空间,并将其释放给其他进程使用。
•虚拟内存:为了解决物理内存不足的问题,操作系统还提供了虚拟内存机制。
它将部分磁盘空间作为虚拟内存,并根据进程的需要将部分数据加载到内存中,以提高内存利用率。
4. 文件系统管理文件系统管理是操作系统的重要功能之一,它提供了对计算机存储设备(如硬盘、SSD等)上数据的组织和管理。
文件系统管理功能包括文件访问、文件分配、文件保护等。
•文件访问:操作系统提供了对文件的读取、写入、修改和删除等基本操作。
实验三 进程管理-进程的控制实验

(1)首先查找调用进程是否有子进程,若无,则返回出错码;(2)若找到一处于“僵死状态”的子进程,则将子进程的执行时间加到父进程的执行时间上,并释放子进程的进程表项;(3)若未找到处于“僵死状态”的子进程,则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒。
4、exit()终止进程的执行。
系统调用格式:void exit(status)int status;其中,status 是返回给父进程的一个整数,以备查考。
为了及时回收进程所占用的资源并减少父进程的干预,LINUX/LINUX 利用exit( )来实现进程的自我终止,通常父进程在创建子进程时,应在进程的末尾安排一条exit( ),使子进程自我终止。
exit(0)表示进程正常终止,exit(1)表示进程运行有错,异常终止。
如果调用进程在执行exit( )时,其父进程正在等待它的终止,则父进程可立即得到其返回的整数。
核心须为exit( )完成以下操作:(1)关闭软中断(2)回收资源(3)写记帐信息(4)置进程为“僵死状态”参考程序#include<stdio.h>#include<unistd.h>main( ){in t pid;pid=fork( ); /*创建子进程*/switch(pid){case -1:printf("fork fail!\n");exit(1);case 0: /*创建失败*//*子进程*/execl("/bin/ls","ls","1","color",NULL); printf("exec fail!\n");exit(1);default:wait(NULL);/*父进程*/ /*同步*/printf("ls completed !\n");exit(0);}}运行结果执行命令ls -l -color ,(按倒序)列出当前目录下所有文件和子目录;ls completed!分析原因程序在调用fork( )建立一个子进程后,马上调用wait( ),使父进程在子进程结束之前,一直处于睡眠状态。
进程和处理机管理

3.2.1 进程的状态 进程是动态的,它存在着生命周期。它有诞生(创建)和灭亡(撤消)过程,在它的生命周期中又反映出它的执行-暂停-再执行的活动规律,进程最主要的特征是具有状态。进程在其活动期间具有两种状态:自由状态和等待状态。任一进程在任一时刻有且只有这两种状态之一。自由状态又可分为:运行状态和就绪状态。
1.优点是: (1)资源分配严格,子进程可以分配到父进程所拥有的资源,用完后立即归还,一个进程家族所占有的全部资源应该在其祖先所拥有的资源范围内。 (2)进程的控制灵活,当一个进程被分配完成某一任务时,它能够创建若干进程去分别完成各子功能。 (3)进程层次清晰,关系明确。所以,树型结构的系统获得了广泛应用。
1. 进程家族
进程的家族结构有两种:一种是非结构系统;另一种是树型结构系统。在非结构系统中管理程序直接对全部进程实施管理,它可以实施创建进程和撤消进程等操作。各进程之间的关系也是“平等”的,如图3-9(a)所示。在树型结构的进程家族中,一个父进程可以创建一个子进程而形成一个进程家族。图3-9(b)给出了树型结构的进程家族的示意图。
3.2.1 进程的状态
阻塞状态(Block) 正在执行中的进程,由于发生了某一事件而使之暂时无法执行下去(如,等待I/O操作完成,或由于同步、互斥而等待)而处于暂停状态,即该进程的运行受到了阻塞(即等待状态或睡眠状态)。
进程的三种不同状态
3.2.2 进程的状态演变
进程的状态不是一成不变的,它是随着自身的推进和外界条件的变化而变化的。下图为简单的进程状态演变图及演变事由。
应该说明的是: (1)在进程的生命周期中,处于执行状态的进程因为某一事件(如I/O请求等事件)出现而变成阻塞状态,当该事件消除后,被阻塞的进程并不恢复到执行状态,而转变为就绪状态等待再一次重新被进程调度程序调度。这是因为当该进程被阻塞时,为了使处理机不空闲,进程调度程序立即将处理机分配给另一个处于就绪状态的进程。 (2)当进程从运行状态变为就绪或阻塞状态时,必须保留它的运行的现场信息,以便将来恢复运行。 (3)处于同一状态的进程可以构成队列,系统中可以有一个运行队列、但是在只有一个处理机的情况下,任一时刻处于运行状态的进程只能有一个。系统中可以有一个或多个就绪队列和若干个等待队列,由于同一个原因而等待的进程应该属于同一个等待队列,相应每个队列设有指针,指向相应队列的首部。
进程的控制方法

进程的控制方法进程是计算机中最基本的资源单位,它是程序在执行过程中分配和管理资源的基本单位。
为了合理有效地控制进程,提高计算机系统的性能和可靠性,我们常常需要采取一些控制方法。
本文将介绍几种常见的进程控制方法。
一、进程的创建和终止控制1. 进程的创建进程的创建是指在系统中生成一个新的进程。
常见的进程创建方法有:(1)父进程创建子进程:父进程通过调用系统调用(如fork())创建一个新的子进程,子进程会继承父进程的资源和状态,然后可以执行不同的程序段。
(2)系统初始化创建进程:系统启动时,会自动创建一些特殊的进程,如init进程(在Linux系统中)。
2. 进程的终止进程的终止是指进程执行完毕或被强制终止。
常见的进程终止方法有:(1)正常终止:进程执行完毕后,会自动终止,并释放占用的资源。
(2)异常终止:进程在执行过程中遇到错误或异常情况,导致无法继续执行,会被强制终止。
二、进程的切换控制进程的切换是指在多道程序环境下,由于资源有限,系统需要在多个进程之间进行切换,以实现并发执行。
常见的进程切换方法有:1. 抢占式调度抢占式调度是指操作系统通过时钟中断等方式,强制挂起正在执行的进程,并将CPU分配给其他可执行的进程。
这种调度方式可以实现公平性和高效性,但需要考虑进程切换的开销。
2. 非抢占式调度非抢占式调度是指进程只有在主动放弃CPU时,才会被操作系统挂起。
这种调度方式可以减少进程切换的开销,但可能导致某些进程长时间占用CPU,影响其他进程的执行。
三、进程的同步和通信控制进程的同步和通信是指多个进程之间通过共享资源或消息传递等方式进行合作和协调。
常见的进程同步和通信方法有:1. 互斥锁互斥锁是一种用于实现进程互斥访问共享资源的机制。
当一个进程需要访问共享资源时,它必须先获得互斥锁,其他进程则需要等待锁的释放。
2. 信号量信号量是一种用于实现进程同步和互斥的机制。
通过对信号量的P 操作和V操作,进程可以实现对临界资源的互斥访问和同步执行。
os操作系统

os操作系统操作系统(Operating System,简称OS)是计算机系统中的软件部分,它是计算机硬件与应用软件之间的桥梁和管理者,负责管理和控制计算机的硬件资源,为应用软件提供一个良好的运行环境。
操作系统的主要功能包括进程管理、内存管理、文件管理、设备管理和用户接口等。
一、进程管理操作系统通过进程管理来控制和分配计算机的处理器时间。
它负责创建、调度和终止进程,并提供进程间通信和同步的机制。
进程管理的目标是实现多道程序并发执行,提高系统的效率和资源利用率。
操作系统通过合理地分配处理器时间,使得多个程序可以同时运行,提高了系统的吞吐量和响应速度。
二、内存管理内存管理是操作系统的另一个重要功能。
操作系统通过内存管理来管理计算机的内存资源,包括内存的分配、释放、调度和保护等。
内存管理的主要目标是提高内存的利用率和系统的稳定性。
操作系统通过虚拟内存技术,将物理内存扩展为逻辑内存,为每个进程提供独立的地址空间,使得进程可以共享内存,提高了系统的并发性和资源利用率。
三、文件管理文件管理是操作系统用来管理和组织计算机存储设备中的文件的一种方式。
操作系统通过文件管理来创建、打开、读取、写入、修改和删除文件,以及为文件提供保护和恢复机制。
文件管理的主要目标是提供一个统一的接口,使得用户和应用程序可以方便地访问和操作文件。
操作系统通过文件系统来组织和管理文件,提高了数据的可靠性和访问效率。
四、设备管理设备管理是操作系统用来管理和控制计算机硬件设备的一种方式。
操作系统通过设备管理来控制和分配计算机的输入输出设备,包括磁盘、打印机、显示器、键盘等。
操作系统负责管理设备的分配、调度和控制,提供与设备的交互和通信的机制。
设备管理的主要目标是提高设备的利用率和系统的效率,减少设备的冲突和竞争。
五、用户接口用户接口是用户和操作系统之间进行交互的一种方式。
操作系统通过用户接口来提供用户友好的操作界面,使得用户可以直观地操作和控制计算机系统。
操作系统的五大功能为

操作系统的五大功能操作系统是计算机系统中至关重要的组成部分,它承担着许多关键的任务和功能。
下面我们将介绍操作系统的五大功能。
一、进程管理进程管理是操作系统最基本的功能之一。
进程是指计算机中运行的程序的实例,它代表着计算机系统中正在运行的任务。
操作系统负责创建、调度和终止进程,以及处理进程之间的通信和同步。
通过进程管理,操作系统能够合理地利用计算机系统的资源,确保多个进程能够有效地共享这些资源。
进程管理还包括处理进程间的并发和互斥问题。
并发是指多个进程同时执行的情况,互斥是指多个进程访问共享资源时的争用问题。
操作系统通过使用各种调度算法和同步机制来解决这些问题,确保进程能够按照既定的优先级顺序执行,并避免资源竞争导致的错误。
二、存储管理存储管理是操作系统的另一个重要功能。
计算机系统中的存储器是用来保存程序和数据的地方,操作系统负责管理这些存储器的分配和回收。
存储管理主要包括内存分配、地址映射和存储器保护等任务。
在多道程序环境下,多个进程需要共享有限的内存资源。
操作系统需要把内存划分为若干块,分配给不同的进程使用。
它还需要跟踪每个块的使用情况,以便在进程不再需要时及时回收。
此外,操作系统还需要将逻辑地址转换为物理地址,并保证每个进程只能访问自己被分配的内存空间,以确保系统的安全性和稳定性。
三、设备管理设备管理是操作系统与计算机硬件之间的接口。
计算机系统中的各种设备,如磁盘、打印机和网络接口卡等,都需要通过操作系统来进行管理和控制。
操作系统负责设备的分配、调度和错误处理,以便合理地利用各种设备资源。
设备管理涉及到中断处理、设备分配和设备驱动程序等问题。
当进程需要使用某个设备时,它会向操作系统发出请求。
操作系统会根据设备的可用性和优先级进行调度,将设备分配给请求的进程,并确保进程能够正确地使用设备。
当设备发生错误或者请求的数据准备好时,操作系统会通知相应的进程进行处理。
四、文件管理文件管理是操作系统的一项核心功能。
进程同步基本概念和原则

进程同步基本概念和原则1.引言1.1 概述进程同步是计算机科学领域中一个重要的概念。
在多任务操作系统中,多个进程并发执行,它们共享系统资源,如内存、文件等。
为了保证系统的正确性和可靠性,需要对进程的执行进行协调和管理。
进程同步的概念就是指在多个进程之间进行协作,使它们按照一定的顺序执行,以避免出现竞争状态和数据不一致的问题。
在并发执行的场景中,由于进程的执行速度和执行顺序是不可预测的,因此可能会引发一些问题,如死锁、饥饿等。
进程同步的目的是为了确保进程按照一定的次序执行,并且能够相互合作完成任务。
通过合理的同步机制,可以避免竞争条件,保证数据的一致性,提高系统的效率和稳定性。
为了实现进程同步,可以使用一些基本的同步机制,如互斥量、信号量、条件变量等。
这些机制通过提供临界区、等待和唤醒等操作,实现了进程之间的协调和合作。
在本文中,我们将介绍进程同步的基本概念和原则。
首先,我们将对进程同步的概念进行详细阐述,介绍其在多任务操作系统中的作用和意义。
然后,我们将介绍一些常用的进程同步原则,包括互斥、同步、顺序等。
通过深入理解这些基本概念和原则,可以帮助读者更好地理解进程同步的内在机制和实现方式。
本文旨在提供关于进程同步的基本知识和理论,并为读者进一步研究和应用进程同步提供参考。
最后,我们将对本文的内容进行总结,并展望进程同步在未来的发展方向。
希望本文能够对读者加深对进程同步的理解,并在实际应用中发挥积极的作用。
1.2文章结构文章结构部分的内容可以按照以下方式编写:"1.2 文章结构本文分为三个主要部分,包括引言、正文和结论。
引言部分主要对进程同步的主题进行概述,简要介绍进程同步的基本概念和相关原则。
同时,引言部分还介绍了本文的结构,并说明了文章的目的。
正文部分分为2个小节,分别是进程同步基本概念和进程同步原则。
在进程同步基本概念部分,我们将详细介绍什么是进程同步,为什么需要进行进程同步以及进程同步的基本概念和相关术语。
对进程的管理和控制使用

之前已经介绍了操作系统的各个模块,现在来具体深入学习操作系统中的进程管理。
二、进程的基本概念在未配置OS的系统中,程序的执行方式是顺序执行,即必须在一个程序执行完成后,才允许另外一个程序执行;在多道程序环境下,则允许多个程序并发执行。
也正是程序的并发执行,才导致引入进程。
2.1 程序的顺序执行通常可以把一个应用程序分成若干个程序段,在各程序段之间,必须按照某种先后次序顺序执行,仅当前一操作(程序段)执行完后,才能执行后继操作。
如典型的输入->计算->打印任务就是顺序执行。
程序顺序执行时的特征如下① 顺序性,处理机的操作严格按照程序锁规定的顺序执行,即每一操作必须在上一个操作结束之后开始。
② 封闭性,程序是在封闭的环境下执行的,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响。
③ 可再现性,只要程序执行时的环境和初始条件相同,当程序重复执行时,无论它是从头到尾不停顿地执行,还是走走停停地执行,都将获得相同的结果。
在程序顺序执行时的特征,为程序员检测和校正程序的错误带来了很大的方便。
2.2 程序的并发执行多个程序可以并发执行,并发执行可以提高CPU的效率和系统吞吐率。
其特征如下① 间断性,程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。
如计算操作必须在输入操作之后。
② 失去封闭性,程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,只是程序的运行失去了封闭性,这样,某程序在运行时,必然会收到其他程序的影响。
如当某个程序占用了处理机资源后,另外一个程序必须等待。
③ 不可再现性,程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。
可能由于不同的操作顺序产生不同的结果。
2.3 进程的特征由于程序并发执行时,它们失去了封闭性,间断性和不可再现性,这决定了一般的程序是不能参与并发执行的,因为程序执行的结果是不可再现的。
操作系统概念整理

操作系统概念整理操作系统(Operating System)是计算机系统中的基础软件,它负责管理计算机硬件资源,为应用程序提供运行环境,并通过用户接口使用户能够与计算机进行交互。
操作系统的功能包括进程管理、内存管理、文件系统管理、设备管理和用户界面等。
1.进程管理:操作系统通过进程管理来控制计算机系统中的各个进程。
进程是指正在运行的程序的实例,操作系统负责分配处理器时间片、管理进程的状态转换、调度进程执行顺序等。
通过进程管理,操作系统能够保证在多任务环境下各个进程能够公平分享处理器资源,提高计算机系统的运行效率。
2.内存管理:操作系统通过内存管理来管理计算机系统的主存储器。
内存管理的主要任务包括内存分配和回收、地址映射、内存保护和虚拟内存管理等。
通过内存管理,操作系统能够最大限度地利用计算机系统的主存储器,为应用程序提供合适的内存空间,提高系统的运行效率。
3.文件系统管理:操作系统通过文件系统管理来管理计算机系统中的文件和目录。
文件系统管理的主要任务包括文件的创建、读取、写入、删除和共享等。
通过文件系统管理,操作系统能够为用户提供方便的文件访问接口,确保文件的安全性和完整性。
4.设备管理:操作系统通过设备管理来管理计算机系统中的各种设备,包括输入设备、输出设备和存储设备等。
设备管理的主要任务包括设备的初始化、分配和释放等。
通过设备管理,操作系统能够为应用程序提供统一的设备访问接口,降低应用程序对设备的直接管理难度。
5.用户界面:操作系统通过用户界面使用户能够与计算机系统交互。
用户界面可以分为命令行界面(CLI)和图形用户界面(GUI)两种形式。
通过用户界面,操作系统向用户提供了方便、友好的操作环境,使用户能够方便地使用计算机系统的各种功能。
除了以上功能,操作系统还具有中断处理、并发控制、资源管理、安全性和可靠性等方面的功能。
1.中断处理:操作系统能够对中断信号进行响应和处理。
中断是指在计算机系统运行过程中发生的一些特殊事件,如硬件故障、外部信息传入等。
操作系统的多任务处理与并发控制

操作系统的多任务处理与并发控制操作系统是计算机系统中最基础、最核心的软件之一。
它承担着管理和控制计算机硬件资源的重要任务,其中包括多任务处理和并发控制。
本文将探讨操作系统在实现多任务处理和并发控制方面的原理与方法。
一、多任务处理多任务处理是指操作系统能够同时处理多个任务,使得用户可以同时运行多个应用程序,并在它们之间切换而不会出现冲突或中断。
实现多任务处理的核心概念是进程和线程。
1. 进程进程是操作系统中的基本执行单位,每个进程都有自己的地址空间、数据和代码。
操作系统通过进程调度算法来决定执行哪个进程以及如何切换进程。
进程之间的切换由操作系统负责,这种切换称为上下文切换。
操作系统通过保存和恢复进程的上下文信息来实现上下文切换,包括进程的寄存器、程序计数器和栈指针等。
2. 线程线程是进程中的一个执行流程,一个进程可以包含多个线程,这些线程共享进程的资源。
与进程不同,线程的调度和切换更加高效,开销更小。
在单核处理器上,线程的并发执行是通过操作系统的时间片轮转来实现的,而在多核处理器上,每个线程可以被分配到不同的核上并行执行。
二、并发控制并发控制是指操作系统处理多个用户或进程对共享资源的访问问题。
在多任务处理的环境下,多个进程或线程可能同时访问共享资源,若不加以控制,就会出现数据竞争、死锁等问题。
因此,操作系统需要提供并发控制机制来保证共享资源的正确访问。
1. 临界区临界区是指一段代码,在某一时刻只能有一个进程或线程访问。
为了保证共享资源的一致性,操作系统要求进程在进入临界区之前先获取互斥锁,进入后执行临界区代码,然后释放互斥锁让其他进程进入。
互斥锁是一种同步机制,用于协调对共享资源的访问。
2. 信号量信号量是一种用于进程间通信和同步的机制。
操作系统通过信号量来控制对共享资源的访问。
信号量有两种类型:二进制信号量和计数信号量。
二进制信号量只能取两个值(0或1),用于互斥访问共享资源。
计数信号量可以取多个值,用于控制同一时刻可访问某一共享资源的进程或线程数量。
计算机操作系统知识点汇总

计算机操作系统知识点汇总计算机操作系统是一种管理计算机硬件和软件资源的系统软件,它充当用户和计算机硬件之间的接口。
操作系统扮演着协调和管理计算机系统各个组件的重要角色。
在这篇文章中,我们将对计算机操作系统的一些重要知识点进行汇总和介绍。
1. 操作系统的定义和功能操作系统是计算机系统中最核心的软件,它负责管理计算机所有的硬件和软件资源,并提供用户和计算机硬件之间的接口。
操作系统的主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口等。
2. 进程管理进程是计算机中正在运行的程序的实例。
操作系统通过进程管理来协调并发执行的多个进程,包括进程的创建、调度、切换和终止等。
进程管理的目标是实现进程的公平调度、保证资源的合理利用和提高系统的效率。
3. 内存管理内存管理负责分配和回收计算机系统的内存资源,并管理进程在内存中的运行情况。
主要包括内存的分区与保护、地址映射、页面置换和内存扩充等。
内存管理的目标是实现内存的高效利用和保护,确保系统的稳定性和性能。
4. 文件系统管理文件系统管理是操作系统对文件和目录的管理和组织方式。
文件系统提供了对文件的创建、读取、写入和删除等操作,并负责文件的存储和保护。
文件系统管理的目标是提供高效的文件操作接口,保护文件的安全性和完整性。
5. 设备管理设备管理是操作系统对计算机硬件设备的管理和控制。
它负责分配和调度设备资源,提供设备驱动程序和接口,实现用户程序与设备之间的通信和数据传输。
设备管理的目标是提供高效可靠的设备服务,提高系统的可用性和性能。
6. 用户接口用户接口是用户与操作系统之间进行交互的一种方式。
操作系统提供了命令行界面(CLI)和图形用户界面(GUI)两种常见的用户接口形式。
用户接口的设计要求简洁明了、易于操作和友好,以提高用户的使用体验。
7. 多任务和并发控制多任务是指计算机系统能同时运行多个任务(进程)。
操作系统通过进程调度和资源管理来实现多任务的并发执行。
操作系统的并发控制

操作系统的并发控制操作系统是计算机系统中管理和控制计算机硬件与软件资源的核心程序。
在多任务操作系统中,多个进程同时运行,需要操作系统提供并发控制机制来确保进程间的正常协调和资源的合理分配。
本文将介绍操作系统的并发控制的概念、分类以及常见的并发控制机制。
一、概述并发是指多个进程同时执行的状态,是多任务操作系统中的基本特性。
并发控制是指对并发操作进行管理和协调的一种机制,目的是保证资源的正确使用和进程的正常运行。
二、分类根据并发控制机制的不同,可以将并发控制分为两大类,即互斥操作和同步操作。
1. 互斥操作互斥操作是指对能被多个进程访问的共享资源进行互斥访问,以防止并发操作导致数据不一致或冲突。
常见的互斥操作机制有互斥锁、信号量和读写锁等。
- 互斥锁:通过设置一个标志位来控制共享资源的访问,一次只允许一个进程对资源进行操作,其他进程需要等待当前进程释放锁才能继续执行。
- 信号量:通过一个计数器来控制对共享资源的访问,根据计数器的值来判断资源是否可用,通过对计数器的增减来实现进程间的同步和互斥。
- 读写锁:在读操作和写操作之间进行协调,允许多个进程同时进行读操作,但是只允许一个进程进行写操作。
2. 同步操作同步操作是指对进程的执行进行协调与同步,保证进程按照一定的顺序执行。
常见的同步操作机制有信号量、条件变量和屏障等。
- 条件变量:用于在进程间传递信息和进行同步操作,进程可以等待某个特定条件满足后再继续执行。
- 屏障:用于同步多个并发进程的执行,在所有进程到达屏障之前进行等待,待所有进程都到达后才能一起继续执行。
三、实现方式实现并发控制可以采用硬件支持和软件支持的方式。
1. 硬件支持硬件支持是指通过硬件设备来实现并发控制。
常见的硬件支持有自旋锁和多处理器系统。
- 自旋锁:使用忙等待的方式,即进程一直占用处理器不进行调度,直到获取到锁才能继续执行。
适用于锁竞争较小的情况。
- 多处理器系统:在多处理器系统中,每个处理器都可以独立执行不同的任务,从而提高系统的并发性能。
- 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)对进程使用共享资源的次序不作不公正的规定。
当某个进程欲使用共享资源时,只要其它进程不在使用该共享资源,就应该允许该进程使用。
并且任意一个要求使用共享资源的进程不能无限期地等待,总应该在某个公正的时间界限内获得该资源。
由上可知,并发进程在进入临界段时必须互斥地进行,即必须确保每次至多只有一个进程进入临界段,为此,应遵循下面的原则:⑴当有多个进程都希望进入它们的临界段时,它们不应相互封锁,而应在有限时间内让其中之一进入临界段。