The Structure of the "THE"-Multiprogramming System阅读感悟


在这篇文章中描述了一种多道程序设计系统,在该系统中,所有的活动被分成若干个连续的进程。一系列连续的进程被放在不同的层次结构中,每个层次结构中都实现了一个或多个独立的抽象,更高的层次是建立在较低层次所提供的抽象之上的。这个系统是一种层次结构,共有五层。

1. 系统目标

(1)减少短期项目的周转时间
(2)经济地使用外围设备
(3)支持存储器的自动控制与CPU的合理使用相结合
(4)在多个应用程序之间共享计算机

2. 系统结构

2.1 存储分配

将实际存储单元(即页, “pages”,并有“核心页面”和“鼓页面”)与相应的信息单元 (即段) 的严格区分,得到更加灵活的结构。一段刚好适合一个页面,每个段分配一个完全独立的标识机制,其中段标识符的数量远远大于核心页的数量+鼓页。段标识符可以访问在核心中的段变量——段变量提供可以找到该段的页码。当核心页信息被转储到磁鼓时,不需要将该段信息返回到它原来所在的磁鼓页,选择延迟时间最少的空闲磁鼓页。

2.2 处理器分配

在单个连续过程中,程序的正确性取决于事件执行的顺序,执行速度不影响正确性,整个系统被设计成一个“协同有序的过程以不确定的速度前进”的和谐社会。
该系统有以下部分组成:用户程序、每个输入外设、每个输出外设、段控制器和消息解释器
进程通过相互同步相互协作——信号量
协作进程的数量与系统中实际物理处理器的数量无关

2.3 系统的层次结构

(1)level 0

在level 0中,处理器对动态进程中的进程进行应答。本层为之后的层提供了进程这个抽象,实时时钟的中断被处理并引入,是为了确保没有进程能够独占资源确保每个进程都能被运行。 优先级规则的使用,是为了实现系统在需要时的快速响应。

(2)level 1
在第1级主要是段控制器,主要实现了从物理内存到虚拟内存的转化。每次读入一个段再写回时,它并不需要被放回原始的页中,可任选存储的位置;只需记住段变量中的新地址,即段标识。在第1级以上,每个进程都有自己的处理器,信息使用段标识。虚拟内存和实际存储分开,让我们管理起来更方便。

(3)level 2
level 2的消息解释器负责控制台的分配。通过采用传递信息的方式实现不同进程之间的通信。在信息的开头都要有对话的进程信息,如当一个进程打开了一个对话,它必须在对话的开始句标识自己;如果是操作员打开一个对话,他也必须在开始句中识别正在处理的进程,知道对话是正对的那个进程。

在level 2之上,每个进程都拥有一个自己的会话控制台。实际上所有的进程共享一个物理控制台,通过同步机制系统确保在一个时刻只有一个对话在进行,不同对话之间互补干涉。消息的词汇表存储在段中,因此,消息解释器比段控制器高一级,即本层在level 1之上一层。

(4)level 3
level 3的作用将缓冲 I / O流转换为进程。程序与外围设备所属进程的通讯也采用信息的方式,所以需要level 2的abstraction,因此本层在level 2之上。

(5) level 4
level 3是用户程序,每一个都对应一个连续的进程。

3. 信号量

这里介绍下系统所需的同步机制——信号量,它在并行进程开始前被初始化为 0或1,通过P操作和V操作对信号量进行操作。

通俗来说就是信号量会有一个初始值S(S≥0),这时有进程申请资源,就会执行减1(p操作);当S==0时,再来申请资源的进程就会阻塞;已申请到资源的进程执行完毕后,会释放资源,S会加1(v操作);此时S>0,阻塞的进程就会获取到资源,获取到资源的同时,S会进行减1操作。也就是说,最多只能有S个进程同时占用资源。

4. 总结

在实现下一层之前,都可以单独验证每一层的正确性,通过构建这种层级结构,证明得到的整个系统的正确性。

发布了14 篇原创文章 · 获赞 9 · 访问量 1016

猜你喜欢

转载自blog.csdn.net/weixin_42305378/article/details/104930176
今日推荐