首页 > 其他 > 详细

操作系统的发展(The Evolution of Operating Systems)

时间:2021-03-27 18:39:26      阅读:23      评论:0      收藏:0      [点我收藏+]

串行处理(Serial Processing)

此阶段还没有操作系统(1940s后期 - 1950s中期)

名称由来:用户必须顺序访问计算机。(access in series)

特点:程序员是通过直接与计算机硬件打交道的方式来操作计算机。

操作方式:由于没有操作系统,机器是在一个控制台上运行的,控制台包括:显示灯、触发器(拨动开关)、输入设备、打印机。用机器代码编写的程序通过输入设备(如卡片阅读机)载入计算机。如果错误导致程序终止运行,显示灯会给出指示。如果程序正常完成,运行结果会出现在打印机中。

两个主要问题:

  • 调度问题(Scheduling):大多数装置都使用一个硬拷贝(hardcopy)的登记表预定机器时间。
    如果一个用户在预定时间之内没有完成程序的运行,那么将会强制终止;如果在程序运行完成之后还有大量的时间,则会造成CPU资源的浪费。(“存在人机矛盾”)
  • 准备时间(Setup time):一个程序在当时称为作业(job)。它可能包括往内存中加载编译器和高级语言程序(源程序),保存编译后的程序(目标程序),然后加载目标程序和公用函数,并链接在一起。(这里每一步都有可能安装或拆卸磁带,或者准备卡片组,在此期间一旦发生错误,只能重新开始。)
    而且在此期间用户独占计算机系统资源,资源并没有得到有效利用。

在某些操作系统中,作业(job)是计算机操作者(或是一个叫做作业调度器的程序)交给操作系统的执行单位。
作业 = 程序 + 相应的数据 + 作业说明书

简单批处理系统(Simple Batch Systems)

中心思想:使用一个称为监控程序(monitor)的软件
     计算机操作员把用户的作业组织成批(batch)

工作方式:用户不再直接访问机器,而是把卡片或磁带中的作业交给计算机操作员,由操作员把这些作业按顺序组织成一批,放在输入设备上,交给监控程序使用。要执行作业时,监控程序会将CPU控制权移交给作业,每个作业执行完毕又都会将CPU的控制权返回给监控程序。接着监控程序继续加载下一个作业。

下面分别从监控程序(Monitor)和处理器(CPU)这两个角度分析工作原理:

  • 监控程序角度:
    监控程序控制事件的顺序。因此需要大部分监控程序必须总是处于内存中并且可以执行,这部分称作常驻监控程序(resident monitor)。监控程序每次从输入设备(通常是卡片阅读机或磁带驱动器)中读取一个作业,并将其置于内存中的用户程序区域,并把控制权交给该作业。当作业完成后,控制权返回给监控程序,监控程序继续读取下一个作业。每个作业的结果被发送到输出设备(如打印机),交付给用户。

  • 处理器角度:
      从某个角度看,处理器执行内存中存储的监控程序中的指令;这些指令读入下一个作业并将其存储到内存中的另一个部分。一旦已经读入一个作业,处理器将会遇到监控程序中的分支指令,分支指令指导处理器在用户程序的开始处继续执行。处理器继而执行用户程序中的指令,直到遇到一个结束指令或错误条件。不论哪种情况都将导致处理器从监控程序中取下一条指令。
      因此,“控制权交给作业”仅仅意味着处理器当前取和执行的都是用户程序中的指令,而“控制权返回给监控程序”的意思是处理器当前从监控程序中取指令并执行指令。

监控程序完成调度功能:一批作业排队等候,处理器竟可能迅速地执行作业,没有空闲时间。
监控程序改善了作业的准备时间:每个作业中的指令均以一种作业控制语言(Job Control Language,JCL)的基本形式给出,这是一种特殊类型的程序设计语言,用于为监控程序提供指令。(向monitor描述操作)

可见,监控程序(或者说批处理操作系统),是一个简单的计算机程序。它依赖于处理器可以从内存的不同部分取指令的能力,得以交替地获取或释放控制权。
此外还考虑到了其他硬件功能:

  • 内存保护(Memory protection):当用户程序正在运行时,不能改变包含监控程序的内存区域。如果试图这样做,处理器硬件将发现错误,并将控制转移给监控程序,监控程序取消这个作业,输出错误信息,并载入下一个作业。
  • 定时器(Timer):防止一个作业长期独占系统。在每个作业开始时,设置定时器。如果定时器时间到,用户程序被停止,控制权返回给监控程序。
  • 特权指令(Privileged instructions):某些机器级指令只能由监控程序执行。如果处理器在运行一个用户程序时遇到这类指令,则会发生错误,并将控制权转移给监控程序。(I/O指令属于特权指令,因此监控程序可以控制所有的I/O设备)
  • 中断(Interrupts):早期的计算机模型并没有中断能力。这个特征使得操作系统在让用户程序放弃控制权从用户程序获得控制权时更加灵活。

内存保护特权指令引入了操作模式的概念。

  • 用户模式(user mode)
    • 有些内存区域是无法被访问的
    • 某些指令是不会被执行的(如特权指令)
  • 系统模式(system mode) AKA 内核模式(kernel mode)
    • 特权指令可以被执行
    • 受保护的内存区域也可以被访问(可以访问所有内存区域)

多道批处理系统(Multiprogrammed Batch Systems)

简单批处理系统提高了CPU资源的利用率,但是由于I/O设备相对于处理器的速度太慢(一个用户程序要使用I/O设备,CPU必须等待),处理器经常是空闲的。

下图显示了只有一个单独程序的情况,被称为单道程序设计(Uniprogramming)
技术分享图片

这种低效率是可以避免的。内存空间可以保存操作系统(常驻监控程序)和一个用户程序。假设内存空间容得下操作系统和两个用户程序,那么当一个作业需要等待I/O时,处理器可以切换到另一个可能并不在等待I/O的作业,进一步还可以扩展存储器以保存三个、四个或更多的程序,并且在它们之间进行切换。这种处理称做多道程序设计(Multiprogramming)多任务处理(Multitasking),它是现代操作系统的主要方案。
技术分享图片

CPU利用率的算法:
利用率 = (不同阶段的使用时长×对应的使用率)/ 总时长

同简单的批处理系统一样,多道批处理系统必须依赖某些计算机硬件功能,如支持I/O中断直接存储器访问(DMA)的硬件。

多道批处理系统也存在一些新的问题:

  • 内存管理(Memory Management):对准备运行的多个作业,它们必须都保留在内存中,这时候就要合理的安排内存空间的使用。
  • 调度问题(Scheduling):如果准备运行多个作业,处理器必须决定运行哪一个,这需要某种调度算法。
  • 状态的保存/恢复(save and restore):一个作业未处理完要去执行其他作业的时候需要保存到中断时的状态,以及在处理完其他作业之后回头再继续执行被中断作业的恢复问题。
  • 资源竞争问题(Contention for resources):每一个作业的运行都要利用资源,这时应该合理考虑资源的分配。

分时系统(Time-Sharing Systems)

多道批处理系统已经极大地提高了计算机系统的效率,但是对于用户交互性的实现并不好。所以出现了分时技术(Time-Sharing),多个用户可以同时分享处理器时间,以达到减少用户响应时间的目的。

在分时系统中,多个用户可以通过多个终端同时访问系统,由操作系统控制每个用户程序以很短的时间为单位交替执行。(分时复用,操作系统以时间片为单位,轮流为每个终端用户服务)

批处理和分时都使用了多道程序设计(multiprograming),其主要差别如下表:

批处理多道程序设计和分时的比较
批处理多道程序设计 分时
主要目标 充分使用处理器 减小响应时间
操作系统指令源 作业提供的作业控制语言命令 从终端键入的命令

同样的,分时处理系统也需要很多计算机硬件支持(如中断机制等)

像多道批处理系统,分时系统同样也存在以下问题:

  • 内存管理(Memory Management)
  • 调度问题(Scheduling)
  • 状态的保存/恢复(save and restore)
  • 资源竞争问题(Contention for resources)

操作系统的发展(The Evolution of Operating Systems)

原文:https://www.cnblogs.com/skyey7/p/14585992.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!