操作系统笔记——003 并行性:互斥与同步

一. 概论

1.多道程序设计

在单处理器上实现,多道程序并行运行,属于宏观的虚拟概念,即在任何给定时刻只有一道程序在CPU上运行。

多道程序设计技术带来了操作系统中的并行性和资源(硬资源和软资源)共享,从而提高了操作系统的性能和效率。但也带来了进程间的互斥、同步问题。

当前的操作系统都支持多道程序设计技术。

2. 多处理器系统

多处理器系统是指对运行在多个处理器上的多个进程和线程进行管理。

多采用 SMP 模式(对称型多处理器系统)。 如 Windows NT 工作站是双机 SMP 系统,Windows NT 的服务器是四机 SMP 多处理器系统。 所以它的多道程序并行技术, 既有宏观的虚拟概念上的大量的并行运行, 又有实际的、 物理上的可以有多个进程(如四个及四个以下) 在多个处理器(如四个处理器)上同时运行。

3. 分布式处理系统

指对执行在多个分布式计算机上的多个进程进行管理的系统。

它具有分散性和通信性的特点, 使分散在工作地域的各节点计算机并行工作, 共享系统中的各种资源(处理器、文件、 数据库、打印机等)。但实际上许多资源的使用性质决定了, 所谓共享往往是宏观上的, 实际使用时如 CPU,打印机等则要求排它性的轮流使用。

综上所述, 操作系统为了管理系统中众多进程的活动和进展, 就需要解决进程间互斥问题, 进程间同步问题和进程间通信问题, 并要有相应的机制来保证这些关系的正确完美的实现。

二、临界段&互斥&信号量

即临界区,具体可见第9章、第10章。

三、管程

具体介绍可见第10章,补充如下。

**目的:**把这些分散在各进程中的临界段集中起来加以管理

**实现:**为每个共享资源设立一个“ 秘书”来管理对它的访问。 一切来访者都要通过秘书, 而秘书每次仅允许一个来访者(进程)访问共享资
源。 这样既便于系统管理共享资源, 又能保证互斥访问和进程间同步。把“ 秘书”概念改名为管程(monitor ),并将它作为该语言中的一个数据结构类型来用以描述操作系统。在该语言中, 管程和进程都是操作系统的一个结构成分。管程是管理进程间同步的机制, 它保证进程互斥地访问共享变量, 并且提供了一个方便的阻塞和唤醒进程的机构。

**组成:**通常认为, 管程是由局部于管程的数据和一个或多个内部过程所组成的模块(或称程序包),它有以下基本特性:
(1 ) 局部于管程的数据只能被局部于管程内的过程所访问。
(2) 一个进程只有通过调用管程内的过程才能进入管程访问共享数据。
(3) 每次仅允许一个进程在管程内执行某个内部过程。 即进程互斥地通过调用内部过程以进入管程。 其他想进入管程的过程必须等待, 并阻塞在等待队列。

**实现:**由于管程是一个语言成分, 所以管程的互斥访问完全由编译程序在编译时自动添加上,无需程序员关心, 而且保证正确。

在这里插入图片描述

四、进程间通信

具体可见第六章。

猜你喜欢

转载自blog.csdn.net/MaoziYa/article/details/107095336
今日推荐