3.2 内容精要

3.2.1 多道程序设计技术

1.程序和“可再入”程序

程序是具有特定功能的一组指令或语句的集合,体现了某种算法,给出了处理机的执行步骤。

“可再入”程序也称为“可重入”程序,是指能够被多个程序同时调用的程序。“可再入”程序是纯代码,在执行过程中不被修改。编译程序常常是“可再入”程序。

2.多道程序设计

单道程序设计有一个严重的缺点:资源利用率极低。为了有效提高系统资源的利用率,引入了多道程序设计。多道程序设计就是允许多个程序同时进入内存并运行的程序设计技术,其特点是:多道、宏观上并行、微观上串行。

实现多道程序设计,需要重点解决以下问题:

(1)内存管理

硬件必须要提供设施,使内存中的多道程序只能访问自己的区域,避免相互干扰,即存储保护;同时,当需要程序从一个内存区域移动到另一个区域时,不影响程序的正确执行,即程序浮动;此外,多道程序同时驻留内存,会引起内存空间不足,因而内存扩充也是需要解决的问题。

(2)处理器管理与调度

保证主存中的各道并发程序相对公平地获得处理器。

(3)高效的通信机制

保证在各道并发程序之间能够正确地传递消息。

(4)资源管理与分配

按照一定的策略分配资源,解决多道程序共享软硬件资源时的竞争与协作、共享与安全问题,提高资源的利用率。

在多道程序环境下,处理器在各道并发程序之间切换,程序可能是“停停走走”而不是连续地被执行。此外,程序的并发执行会引发资源的竞争与共享问题,造成并发运行的程序之间存在制约关系。使用“程序”这个静态概念很难准确描述程序动态执行的状态和过程,因此,引入了“进程”这个概念。