"本文主要介绍了管程的语法结构以及进程管理的相关概念,包括并发与并行的定义、进程的基本状态、处理机分配、进程控制块和作业的关系等。"
管程是并发编程中的一种同步机制,它提供了一种管理共享资源的结构化方法。在管程的语法描述中,`type monitor_name = MONITOR;`定义了一个名为`monitor_name`的管程类型。接下来的`<共享变量说明>`部分,用于声明管程内部的共享变量,这些变量只能在管程内部访问和修改,以确保数据的一致性和安全性。
`define <(能被其他模块引用的)过程名列表>`这部分定义了管程内可以被外部调用的过程,这些过程可以操作管程内的共享变量。`use <(要调用的本模块外定义的)过程名列表>`则指定了管程需要使用的一些外部过程,这些过程可能在其他模块中定义。
`procedure <过程名>(<形式参数表>);begin...end;`定义了一个具体的过程,其包含实现特定功能的代码,过程名后面跟着形式参数表,表示传递给过程的参数。`begin...end;`之间是过程的具体实现,这部分代码可以访问和修改管程内的共享变量,并且在执行过程中会自动进行同步,防止数据竞争。
进程是操作系统中执行的程序实例,具有独立的内存空间和执行上下文。在进程管理中,进程的基本状态包括运行态、就绪态和阻塞态。运行态的进程正在CPU上执行,就绪态的进程等待获取CPU,而阻塞态的进程则因等待某个事件(如I/O操作完成)而暂停执行。进程控制块(PCB)是操作系统用来存储进程状态、资源分配等信息的数据结构。
处理机分配是操作系统的重要任务,通过时间片轮转法,使得多个进程可以在单个处理机上并发执行。作业是用户提交给系统的任务集合,包括作业步、程序和数据。作业控制块(JCB)保存了作业的相关信息,用于作业调度和管理。
进程调度根据系统服务目标选择优先级最高的进程运行,优先级的计算可能基于多种因素,如进程的等待时间、类型等。在多任务环境中,操作系统通过进程同步和进程通信机制来协调并发执行的进程,防止数据不一致性,如使用管程、信号量等机制。
并发与并行的概念是计算机系统中并行处理的基础。并发是指在一段时间内看起来同时执行多个任务,而并行则是在多个处理器或核心上真正同时执行。并发系统是由至少两个并发执行的活动组成的,它可以实现更高效地利用系统资源。例如,编辑文档、QQ聊天、网上浏览和听音乐等活动在单处理机上的并发执行,就是通过快速切换进程来实现的,给人以同时进行的错觉。