The Structure of the "THE"-Multiprogramming System阅读感悟
文章目录
-
-
- 1. 系统目标
- 2. 系统结构
-
- 2.1 存储分配
-
2.2 处理器分配
-
2.3 系统的层次结构
- 3. 信号量
- 4. 总结
-
本文介绍了一种多层次程序设计系统,在该系统中所有活动都被划分为一系列连续的进程。将一系列连续的进程分配到不同的层次结构之中每个层次结构实现了至少一个独立的概念模型较高的层级依赖于较低层级所定义的概念基础整个系统采用了五层架构设计
1. 系统目标
(1)缩短项目周期的时间
(2)合理配置外部设备资源
(3)实现存储器自动控制与CPU高效利用的协同工作
(4)实现多任务间的计算机资源共享
2. 系统结构
2.1 存储分配
在实际存储系统中(包括'pages'以及'core pages'和'disk pages'),与其对应的存储内容(即'segments')之间必须建立严格的区分关系;从而实现更为灵活的数据组织结构。每个segment正好对应一个page,并且每个segment都分配了一个独立且互不干扰的身份标识系统;其中identity identifiers的数量明显超过core pages加上disk pages的数量。这些identity identifiers能够访问核心中的segment variables——这些variables能够定位该segment的具体位置. 当core page information被移动至磁盘时,请注意无需将该segment的信息返回至其原始所在的空闲disk page上. 选择具有最短延迟时间的那个空闲disk page.
2.2 处理器分配
在一个连续的过程中,在线程层次上实现互斥锁需要满足互斥原则以及先进先到原则的基础上,在时间粒度上实现细化以提高效率
2.3 系统的层次结构
(1)level 0
处于level 0时, 处理器为动态进程中运行的进程做出响应. 此层次通过提供'进程'这一抽象概念, 实时时钟中断被处理后引入, 以确保所有进程中都能顺利运行. 实时时钟中断被处理后引入, 是为了保证每个进程中都能及时响应资源分配需求.
(2)level 1
主要负责第1级的段控制器工作。其核心功能是实现物理内存向虚拟内存的转换过程。每当读取一段代码时,并不需要将其返回到对应的物理页。相反地,在完成转换操作后,则可以选择存储于任意位置,并只需记住新的段地址即可完成操作。在更高层级以上(即第2级及以上),每个进程独立拥有处理机构,并且所有的信息都会使用特定的地址编码方案进行管理。值得注意的是,在更高层次以上时,默认会将虚拟内存与物理存储空间区分开来,并通过这种分离使得系统运行更加高效便利。
(3)level 2
位于level 2上方,在每一个层次上都有独立的会话界面。实际操作中所有进程共用同一个物理界面,并通过同步机制确保在一个时间段内仅有一个对话运行。不同对话之间相互干扰。消息的词汇表存放在段中,则使得消息解释器位于段控制器之上的一层。
(4)level 3
level 3的作用将缓冲的I/O流转化为进程。程序与外围设备所属进程之间的通讯采用了信息的方式,并因此必须建立基于level 2的抽象层。因此本层在 level 2之上。
(5) level 4
level 3是用户程序,每一个都对应一个连续的进程。
3. 信号量
请详细阐述系统中所需的同步机制——信号量。该机制在并行进程启动之前被初始化为 0或1的状态,并通过P操作和V操作对信号量进行执行。
简单来说是说信号量初始设置为一个非负数S(其中S≥0)。当某个进程试图获取该 resource 时,则需要执行p操作(即减少信号量计数)。如果当前 signal count 等于零,则后续试图获取该 resource 的任何新进程中都会被阻塞。一旦某个进程中完成对其所使用的 resource 的处理后(例如完成了一个 task 或者完成了对 file 的读取),系统将自动释放该 resource,并执行v operation(即增加 signal count)。此时 signal count 大于零时(即 S>0),所有被阻塞的状态下的进程中都可以依次获得该 resource 并在获得该 resource 后立即执行p operation以减少计数。总结以上规则可知,在任何时刻最多只能有 S 个进程中同时处于使用状态而不会出现 race condition 或死锁现象。
4. 总结
在实现下一层之前都可以分别验证每一层的正确性;通过设计这样的层次结构能够从而证明整个系统的正确性。
