RC 4000 Multiprogramming System:一个你没听说过但是却非常重要的操作系统(下)

黄志恒
中国科学技术大学软件学院
原创内容转载请注明出处

之前写了关于RC 4000系统的上篇,现在来写写剩下的东西。(上篇的链接http://blog.csdn.net/shazhoulada1/article/details/44681503

我从一下10个方面来写RC 40000这个操作系统,
1、System Object
2、Elementary multiprogramming problem
3、Basic monitor concept
4、Process communication
5、External process
6、Internal process
7、Resource control
8、Monitor feature
9、System implementation
10、System possibilities
现在还有7~10没有写。言归正传,下面开始:

7、Resource control
资源管理从来都是每个操作系统中最为重要的部分之一,在RC 4000 Multiprogramming System中也是如此。RC 4000中的资源分为以下几个部分:Time Slice(时间片),Storage(存储),Message Buffers(消息缓存),Peripheral Devices(外设),Privileged Functions(特权函数)。

Time Slice的管理主要是时间片的调度管理。在RC 4000中所有进程只有只有分得时间片之后才能运行。RC 4000的一个时间片从1.6毫秒到1638.4毫秒不等。一个平均的时间片时间 是25.6毫秒。monitor会记录每一个进程的开始时间start time和运行时间run time。monitor负责调度时间片队列中的进程。当一个进程的时间片用完后会被放回时间片队列中。monitor使用了优化过的round_robin调度算法http://baike.haosou.com/doc/3541360-3724722.html。就是当一个进程再次被分配时间片的时候,monitor会去检查它所需的运行时间,如果运行时间在一个时间片之内,那么就会把时间片分配给它。如果运行时间超过了一个时间片的时长。那么这个进程会被放置在时间片队列队尾,并把它的time quantum置为0。下一次再给它分配时间片的时候就可以成功分配了。

Storage Allocation and Protection。在RC 4000操作系统中,内部进程只能用自己的内存来分配给自己的子进程。monitor是不检查子进程的内存是否发生重叠的。当一个父进程创建一个子进程的时候,父进程要给子进程一个protection register和protection key。protection register的不同位定义了操作存储空间的不同权限。protection key是父进程给子进程操作权限。通过这两个key,进程可以获得操作存储空间的相关权限。

Message Buffers。在RC 4000操作系统中,monitor只有有限个消息缓存。当进程向另一个进程传递消息的时候会选择一个消息缓存来发送数据。当发送进程接收到返回的消息时,会释放这个消息缓存。同样的,子进程的消息缓存是由父进程来分配的。

Peripheral Devices。在RC 4000操作系统中,外设和外部进程有明确的区别。只有当一个外部进程和一个外设绑定时,这个外部进程才算是真正被创建。每个外设都有一个名字来标示。内部进程会保存这个名字来指定与哪一个外设来做I/O。当一个内部进程想与外设做I/O时,必须满足一下要求:
1)外设必须和一个外部进程绑定
2)内部进程必须是这个外设的一个用户(就是内部进程拥有这个外设的名字)
3)内部进程在做I/O时必须拥有这个外部进程。

Privileged Functions。在RC 4000操作系统中,父进程要给子进程一个标记码。这个标记码可以判断子进程是否可以运行monitor function。这个monitor function就是特权方法。特权方法有以下特权:
1)改变后台存储的类别
2)创建或者删除外设
3)改变实时时钟。

8、Monitor Features
monitor是整个RC 4000 Multiprogramming System的核心。我从如下几个方面来介绍这个monitor的一些特性:

Internal Interruption。monitor用来处理中断。当中断发生的时候,monitor会保存现场。并在中断结束后恢复中断。RC 4000在如下情况下会发生中断:
1)访问受保护的地方
2)整数溢出
3)浮点数向上/下溢出
4)monitor调用时参数出错
5)父进程设置的强制断点使子进程中发生中断。
产生中断但没有中断处理程序的进程会被移出时间片队列,并且不再让它执行。但是它的父进程不会受到影响,依然可以执行。

Real-Time Clock。RC 4000操作系统中有硬件来维护实时时钟。RC 4000操作系统的时钟是从1967年12月31号12点算起的。维护实时时钟是用来使内部进程与外部进程做同步。

Console Communication。用户在使用控制台时,RC 4000采用中断来让用户与计算机通信。发生中断后,monitor会给一个小的缓存。这个缓存记录用户输入的指令。然后monitor把这个缓存当做载体来做通信。每个用户都不会知道自己和其他用户用的是一个控制台。内部进程是通过给控制台发送消息来做通信的。

Files on Backing Store。文件的管理也是由monitor来做。RC 4000操作系统中有数据区这个概念。这个数据区就是逻辑的后台存储空间。内部程序把这个数据区当做一个外部进程看待。内部进程做文件I/O时就是和这个数据区在做交互。
RC 4000操作系统维护一个目录,每个文件在都属于一个目录。RC 4000通过位图表来加快搜索目录。
RC 4000操作系统的每个进程都有一个目录码,通过识别目录码使得操作系统判断是否允许进程对文件做相关操作。子进程的目录码是父进程分配的。monitor有最大的权限。
RC 4000操作系统有temporary entry这个概念。这是为了保护目录码和后台存储不被错误数据占满。当一个进程是temporary entry的方式访问后台存储的时候,当这个进程退出后它产生的问价可以被删除。monitor只是提供了必要的删除temporary entry的机制,具体实际的删除由具体的进程来完成。与temporary entry相伴的事permanante entry,当进程已这种方式进行文件操作时可以保证自己的文件不是临时的,不会被轻易删除掉。

Area Processes。数据区的/O操作要用目录码保护起来,来保证I/O操作的正确执行。当数据区在建立完成之后,就有一个内部进程是它的使用者了。这样可以使得其他进程存储数据后,可以很快的输入或者输出。

9、System Implementation
这一节补充一些系统在实现时要注意的其他事项:
高速外设在启动之后,只有所有的操作结束之后才会被停止。RC 4000操作系统通过延长停止值得增长来保证高速外设被停止的优先级降低。
低速外设会去检查sender的状态来判断自己是不是被停止了。低速外设不会停止高速外设。
在RC 4000系统中,编辑器,汇编器和编译器会占用不少空间。16K的存储空间只能同时运行2个标准程序。如果程序用汇编语言编写的话可以放更多的程序。RC 4000操作系统执行一条指令大约用时4微妙。
在RC 4000通过增加指令已经不能提高指令的执行速度了。只有加快硬件的处理速度,才能提高指令执行速度。
RC 4000操作系统使用纸袋输入的……

10、System Possibilities
这一节在论文中是作者给未来操作系统设计者提的一些想法。其中作者最主要的一条想法是:“操作系统的极限是设计者的想象能力”。
看了看,当时作者提出来的具体问题大多数是受制于当时的硬件不足。在硬件快速发展之后,他提出的问题被很好的解决。还有一些问题操作系统的使用方式的问题,比如批处理和多用户使用系统。这在操作系统的发展中渐渐被淘汰,到现在已经不再使用了。

总结:
通过阅读这个45页的论文,可以发现在1969年,操作系统的一些核概念就已经出现。比如内核和进程。后代的操作系统在设计上借鉴了很多先代的成果。现在的操作系统之所以先进,首先是硬件的迅猛发展。之后是对之前操作系统遗留下来的问题的优化和扩展。比如说先代的linux内核比RC 4000的monitor更加健壮高效,进程间通讯更快捷,提出线程概念后使得程序更轻量,现在的操作系统比RC 4000有更多的出错处理程序。而且先代的操作系统比RC 4000有更好的移植性。但是牛顿说过“我之所以看得远,是因为我站在巨人的肩膀上”。感谢前辈们的贡献,让我们现代人有这么好用的操作系统。通过阅读这篇论文,也让我对操作系统的原理有了更加清晰的认识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值