分时操作系统

可以被多个用户同时使用的操作系统

分时操作系统

分时操作系统(Time Sharing Operating System),[0]是指一台计算机主机连接着多个终端机,可以被多个用户同时使用的操作系统,其具有多路性、独立性、及时性和交互性等特点。[0]每个用户通过自己使用的终端采用人机对话的方式控制自己的程序运行,而系统则将CPU分成时间片为每个终端用户服务。[4]分时操作系统的概念最早由IBM的约翰·巴克斯(John Backus)在1955年麻省理工学院的夏季会议上提出。[1]20世纪60年代初期,麻省理工学院在经过修改的IBM 709上启动了实验性分时系统,设计出第一个分时操作系统,即CP-67/CMS。[5][6]1970年,中国第一台具有多道程序分时操作系统和标准汇编语言的计算机——441B-Ⅲ型全晶体管计算机研制成功。[7]微型计算机的兴起促进了针对小型平台的分时系统的开发,20世90年代客户端-服务器架构的发展和互联网的兴起推动了分时技术的发展。2000年代云提供商提供的共享资源和高效的分时机制成为现代计算机的基本机制。[1]

分时操作系统(Time Sharing Operating System),[1]是指一台计算机主机连接着多个终端机,可以被多个用户同时使用的操作系统,其具有多路性、独立性、及时性和交互性等特点。[1]每个用户通过自己使用的终端采用人机对话的方式控制自己的程序运行,而系统则将CPU分成时间片为每个终端用户服务。[5]

分时操作系统的概念最早由IBM的约翰·巴克斯(John Backus)在1955年麻省理工学院的夏季会议上提出。[2]20世纪60年代初期,麻省理工学院在经过修改的IBM 709上启动了实验性分时系统,设计出第一个分时操作系统,即CP-67/CMS。[6][7]1970年,中国第一台具有多道程序分时操作系统和标准汇编语言的计算机——441B-Ⅲ型全晶体管计算机研制成功。[8]微型计算机的兴起促进了针对小型平台的分时系统的开发,20世90年代客户端-服务器架构的发展和互联网的兴起推动了分时技术的发展。2000年代云提供商提供的共享资源和高效的分时机制成为现代计算机的基本机制。[2]

分时操作系统主要分为简单分时操作系统、基于多道程序设计的分时操作系统、具有前台和后台的分时操作系统[3][4],其调度算法包括基于时间片的轮转调度算法、多级反馈队列调度算法等。[9]分时操作系统具有资源高效利用、资源公平分配、多任务处理等优点,但同时也存在着响应时间不一致、管理复杂和安全问题等局限性。[10]分时操作系统具有广泛的应用空间,在金融、交通管制、科学和工程等领域具有重要应用。[2]

概念的形成

分时概念出现于20世纪50年代末和1960年代初,最初源于提高早期计算机效率的需要。1955年,Fortran之父[11]约翰·巴克斯(John Backus)在麻省理工学院的夏季会议上首次提出分时计算机的概念。[6][2]

约翰·巴克斯(John Backus)
约翰·巴克斯(John Backus)

早期实现

20世纪60年代初期,麻省理工学院在经过修改的IBM 709上启动了实验性分时系统。麻省理工学院添加了打字机输入,以便操作员可以在分时的基础上,从计算机上获得其他程序的输出。该系统被称为兼容分时系统(CTSS),是最早广泛使用的分时操作系统之一。[6][7]

1962年夏天,BBN(Bolt Baranek and Newman,一家专攻声学工程的咨询公司)成功研发了首台PDP-1计算机,基于此机器,他们进一步开发实施了分时系统演示并将其投入使用。[12]

从1964年起,拉里·罗伯茨(Larry Roberts)领导团队利用PDP-1计算机,并借助少量图形功能控制台,成功在林肯实验室的TX-2计算机上开发了名为APEX的分时系统。[12]

1964年国际商用机器公司(International Business Machines Corporation,IBM)推出了大型机产品System/360,IBM公司宣称该产品可以针对不同的指令集架构[注1]和应用程序实现向上和向下兼容,[注2][注3]这被认为是第一款拥有虚拟化概念的计算机。随着计算机性能的不断提升,只为一个用户提供服务无法充分发挥计算机的性能。为了提高利用率,使更多的用户同时使用计算机,IBM剑桥科学中心的研究人员提出了虚拟机的概念,并在前期研究的基础上设计了第一个分时操作系统CP-67/CMS。从这时起,虚拟机和虚拟化的概念就一直存在于大型机领域,并产生了许多经典的虚拟机系统,如VM/370、z/VM等。[6][15]

1966年,加利福尼亚大学圣巴巴拉分校的一间配备IBM System/360桌面显示控制台的教室
1966年,加利福尼亚大学圣巴巴拉分校的一间配备IBM System/360桌面显示控制台的教室

20世纪60年代末,麻省理工学院、贝尔实验室和通用电气合作创建Multics项目[注4],虽然最终该项目未达到预期效果,但它为分时技术的未来进步奠定了基础,同时也带动了国际上研究分时技术的浪潮。[2][8]

1970年,中国第一台具有多道程序分时操作系统和标准汇编语言的计算机——441B-Ⅲ型全晶体管计算机研制成功。[8]

441B-Ⅲ型全晶体管计算机
441B-Ⅲ型全晶体管计算机

UNIX的诞生与普及

20世纪70年代是分时系统在研究和商业领域的激增的时代,在此期间研究人员开发了各种操作系统,例如肯尼斯·汤普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发出了UNIX系统,该系统在分时系统的发展中发挥了关键作用,它引入了一种更简单、更有效的分时方法,并成为后续开发的基础。[2][7]

UNIX系统
UNIX系统

20世纪80年代微型计算机的出现促使对较小平台的分时系统进行开发,TOPS-10和TOPS-20等操作系统为数字设备公司(DEC)的小型计算机提供了分时功能。[2]

1983年,理查德·斯托曼(Richard Stallman)发起GNU项目,旨在创建一套完全自由的操作系统。在该项目的背景下,林纳斯·托瓦兹(Linus Torvalds)从1991年开始创建了一个名为Linux的类Unix操作系统,该系统被广泛使用,并且至今仍在不断发展。[12]

网络与分布式计算

20世纪90年代客户端-服务器架构的发展和互联网的兴起影响了分时技术的发展。对服务器的远程访问变得司空见惯,Windows NT和Novell NetWare等操作系统在实现多用户环境方面发挥了至关重要的作用。[2]

2000年代标志着向云计算的重大转变。随着Amazon Web Services(AWS)、Google Cloud和Microsoft Azure等云平台的出现,时间共享达到了新的高度,云提供商提供的共享资源和高效的分时机制成为现代计算机的基本机制。[2]

2000年,BSD吸收并改进了chroot技术,发布了FreeBSD Jails[注5]。FreeBSD Jails为文件系统、用户、网络等隔离增加了进程沙盒功能[注6],从而实现了客户进程之间的隔离和管理。[19][15]

2008年,第一个比较完善的LXCLinux container)容器技术出现,基于已经加入内核的Cgroups和Linux Namespace功能实现。不需要打补丁,LXC就能运行在任意Linux系统上。[15]

2013年,随着Docker[注7]的出现,容器开始迅速普及。与其他容器技术不同的是,Docker围绕容器构建了一套完整的生态,包括容器镜像标准等。[19][15]

从早期的实验性尝试到现代的云计算与容器技术,分时系统不仅极大地提高了计算资源的利用率,还持续推动着技术的边界。这些发展不仅证明了分时技术的持久影响力,也预示着未来可能的技术进步和应用领域的拓展。[19][15]

Google Cloud
Google Cloud

工作原理

分时系统模型为一台高性能的主机(快速CPU与大容量的RAM)连接多个带有显示器和键盘的终端,每个终端有一个用户在使用,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向多个用户显示结果,共享主机中的资源。系统设置一个运行时间片,轮流让每个用户程序运行一个时间片,当时间片用完立即切换到下一个程序。如果在不长的时间(如3s)内,能使所有的用户程序都执行一次(一个时间片的时间),便可使每个用户都能及时与自己的作业交互,从而可使用户的请求得到及时响应。[3][21]

分时系统的示意图
分时系统的示意图

分时技术

所谓分时技术,就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一个作业使用,等待下一轮时再继续运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是好像他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,完成作业的运行。[22]

基本结构

对于分时系统的基本结构,按照系统的规模、利用方式等并考虑可靠性、经济性,一般可分为单机结构、双工结构和多处理机结构。[23]

单机结构

在单机结构中,处理子系统(中央处理机、存储器、通道控制器)通常只有一组,而输入输出子系统可根据需要设置备份。这种结构虽然不常用于分时系统,但因其经济性,通常被用于培训和调试程序系统。[23]

为了提高单机结构的可靠性,也有在处理子系统中使中央处理机、存储器等各自设置备用件的结构方式。由于这一结构既重视了经济性,又考虑了可靠性,所以在分时系统中得到了应用。[23]

单机结构
单机结构

双工结构

双工结构具有完全相同的两个处理子系统。一个处理子系统进行联机处理;另一个处理子系统通常并行进行脱机处理,但有时也用于远程成批处理。[23]

当用于联机处理的处理子系统发生故障时,用于脱机处理的处理子系统便中断其处理,切换成联机处理方式。双工结构是分时系统最常用的结构形式。[23]

双工结构
双工结构

多处理机结构

多处理机结构是在处理子系统中具有多台中央处理机,各中央处理机分担联机处理负荷的方式。存储器和输入输出子系统可从各自的中央处理机存取信息,中央处理机之间的信息交换是通过内存或外存进行的。[23]

采用这种结构形式时,即便一台中央处理机发生了故障,多数场合下处理子系统的功能也不会停止,仍继续进行处理。虽然这时处理能力低了些,但能使处理避免发生紧急中断。对于大规模系统,多处理机结构不论在可靠性方面还是在经济性方面都较为有利。[23]

多处理机结构
多处理机结构

内核

内核是操作系统最基本的部分,它是为众多应用程序提供对计算机硬件安全访问的一部分软件,同时负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。操作系统的内核通常运行进程,并提供进程间的通信。[24]

调度程序

在分时操作系统中,通常仅设置了进程调度,用户键入的命令和数据都直接送入内存。其中,命令是由操作系统建立一个进程。系统可以把处于就绪态的进程组织成栈、树或一个无序链表,至于采用哪种形式则与操作系统类型和所采用的调度算法有关。例如,在分时操作系统中,常把就绪态进程组织成队列形式。每当操作系统创建一个新进程时,便将它挂在就绪队列的末尾,然后按时间片轮转方式运行。[9]

仅具有进程调度的调度队列模型
仅具有进程调度的调度队列模型

线程管理模块

在分时操作系统中,一个线程被称为一个任务,一个应用程序就称为一个进程。有些进程只有一个主线程,例如图(a)所示的情况。有些进程不仅有一个主线程,还包括一些子线程,例如图(b)所示的应用程序,它不仅有一个主线程(其对应的任务占用T21),还包括一个子线程(其对应的任务占用T22)。[25]

分时操作系统中计算机CPU时间片的分配
分时操作系统中计算机CPU时间片的分配

内存管理模块

在分时系统中,终端用户能够使他的作业随时进入系统的作业队列。为此系统配备了一系列命令,以供终端用户建立一个作业,并将作业程序和数据经过编辑以文件形式存放在外存储器上。[26]

正在运行的作业置于内存,其他作业则置于外存储器。当运行的作业用完了它的时间片(或因要进行输入输出而停止运行)后,系统就把这个作业送到外存储器,并把作业队列中的下一个作业装入内存,也运行一个时间片,如此重复下去。如果时间片和系统所能容纳终端的总数都选择得适当,可以达到人的平均反映速率[26]

文件系统

文件系统是操作系统中负责存取和管理信息的模块,它用统一的方式实现用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便、有效的文件使用和操作方法。开发文件系统基于两个原因:①用户直接操作和管理辅助存储器上的信息,烦琐复杂易出错、可靠性差;②多道程序、分时系统的出现,要求以方便、可靠的方式共享大容量辅助存储器。[27]

类型

分时操作系统作为一个多用户交互式操作系统,主要分为3类:简单分时操作系统、基于多道程序设计的分时操作系统、具有前台和后台的分时操作系统。[3][4]

简单分时操作系统

在简单分时操作系统中,内存中只有一道程序作为现行作业,其他作业仍在外存上。为使系统能及时响应用户请求,规定每个作业在运行一个时间片的时间后便暂停运行,由系统将它调至外存(调出),再从外存上选一个作业装入内存(调进),作为下一个时间片的现行作业投入运行。若在不太长的时间内能使所有的作业都运行一个时间片,即在指定时间内每个用户作业都一定能运行,从而使终端用户与自己的作业交互作用,保证每个用户请求都能获得及时响应。[4]

基于多道程序设计的分时操作系统

为进一步改善系统性能,在分时操作系统中引入多道程序设计技术。在内存中可同时装入多道程序,每道程序无固定位置,对小作业可多装入几道程序,对一些较大作业则少装入几道程序。系统把所有具备运行条件的作业排成一个队列,使它们依次地获得一个时间片来运行。当系统中除了有终端型用户作业外,还有批处理作业时,应赋予终端型作业较高的优先权,并将它们排成一个高优先权队列,而将批处理作业另外排成一个队列。平时轮转运行高优先权队列的作业,以保证终端用户的请求能获得及时响应,仅当该队列为空时,才运行批处理队列中的作业。[4]

具有前台和后台的分时操作系统

为了改善系统性能,在分时操作系统引入了“前台”和“后台”的概念,将内存划分为“前台”和“后台”两部分。“前台”存放按时间片调出/调进的作业流,其工作方式同前;“后台”部分存放批处理作业。仅当“前台”正在调进/调出或无调进/调出作业流时,才运行“后台”的批处理作业,并给它分配更长的时间片。[4]

特征

分时系统也是支持多道程序同时执行的系统,但它不同于批处理多道系统。批处理多道系统是实现自动控制无须人为干预的系统,而分时系统是实现人机交互的系统。分时系统有以下主要特点:[1]

多路性:允许在1台主机上同时连接多台终端。宏观上,多个用户同时工作,共享系统资源;微观上,每个用户程序轮流运行1个时间片[28]

独立性:每个用户通过自己的终端取得系统服务,彼此之间是独立的,互不干扰的。由于计算机的处理速度非常快,因此这些用户在共享同一台主机时,感觉不到是在和别人一起分享,和自己独占一台主机基本没有区别。[1]

及时性:用户的请求能在很短的时间内获得响应。此时间间隔是以人们所能接受的等待时间来确定的,通常仅为1~3秒钟。[1]

交互性:用户可通过终端与系统进行广泛的人机对话。其广泛性表现在用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。[1]

会话处理功能

分时系统是可在任何时刻自由地呼叫系统中心,从终端指示并执行全部处理的系统。为了使用户要求的处理能够立即执行,分时系统提供相关命令的指示语言,以保证对用户输入命令的即时响应,还准备了系统信息(System nessage),使用户能以会话的方式改正命令中的错误或在处理过程中进行各种选择。[23]

程序的编制与执行

分时系统允许用户直接从终端使用FORTRANCOBOL、BASIC等高级语言汇编语言进行程序编写和执行。系统提供编译诊断和文件编辑功能,帮助用户修改和优化代码。此外,系统支持动态连接,可在执行过程中加载所需模块,增强程序的灵活性和功能性。[23]

为确保程序逻辑正确,系统还具备动态故障排除功能,能在程序执行中断时追踪处理流程和变量值,并进行必要的调整和数据转储。[23]

文件管理

在分时系统中,允许用户事先把它们储存在系统中心的文件装置里,在需要时能够随意地利用有关的文件,可通过文件装置的种类和存储位置使用文件。此外关于存取方式的选择,可按照用户的使用方式决定顺序存取、直接存取还是按索引顺序存取。[23]

为了保持用户之间处理的独立性与保守机密,文件是以终端或各个用户为单位进行管理的。分时系统支持用户相互之间共用文件而能共享用户间的程序和数据,因此分时系统也具备识别用户,许可特定用户相互共用文件的功能。[23]

程序库的利用

如果把用户经常使用的程序作为程序库提供给系统,用户就无需逐个研制程序,从而能够更加有效地利用程序。一般而言,分时系统备有管理科学计算、建筑计算、土木计算、电路分析、模拟等方面的程序库。[23]

系统资源管理

为了使很多用户在任何时刻都能随意地使用系统资源,分时系统中准备了能充分应付负载变动的系统资源。同时,为了能够将系统资源最有效地平均分配给各个终端,分时系统将中央处理机的工作时间划分成若干段,以防一个终端长时间地占用中央处理机。[23]

另外,为了使用户能够有效地共用存储器,用户可将其程序转到辅助存储器。分时系统的特点是,用户要经常反复地登记与清除文件扩充文件区等,所使用的文件量和文件存放位置是经常变动的。因此为了使文件区保持较高的使用效率,用户可针对文件区进行管理。[23]

计算机间通信

随着计算机利用方式的高度发展,同一企业在各地的办事处之间,或各企业相互之间,在信息处理上能够被有机地结合起来,从而把程序和数据汇集起来,使得共同利用的范围进一步扩大。随着用户数量的增加以及利用方式的多样化,已能够根据处理目的使一部分处理在特殊的中心进行,以求得处理最优化。[23]

调度算法

在分时操作系统中,为保证能及时响应用户的请求,须采用基于时间片的轮转调度算法。早期的分时操作系统中采用的是简单的时间片轮转(RR)法;20世纪90年代后,广泛采用多级反馈队列调度算法。[9]

基于时间片的轮转调度算法

基于时间片的轮转调度算法的基本思想是将CPU的处理时间分割成许多某一大小的时间片,每个进程一旦占有处理机仅能使用一个时间片。时间片耗尽,无论程序是否运行完毕该进程都必须释放出处理机给下一个就绪进程,并等待下一轮调度;同时,进程调度又去选择就绪队列中的另一个进程,分配给它一个时间片,以投入运行。如此轮流调度,使得就绪队列中的所有进程在一个有限的时间内都可以依次轮流获得一个CPU时间片,从而满足了操作系统对用户分时的相应要求。在基于时间片的轮转调度算法中,进程按FCFS[注8]原则排成一个队列,每次调度都将处理机分派给队首进程,时间片耗尽的进程返回就绪队列末尾,排队等待下一次调度的到来,并通过上下文切换调用下一个进程。[9]

根据时间片的设置方式,基于时间片的轮转调度算法可分为固定时间片循环轮转调度算法和可变时间片轮转调度算法。[9]

固定时间片循环轮转调度算法:就绪队列中的进程在轮转过程中使用固定的时间片。如果就绪队列中有个进程,用户所能接受的响应时间为,时间片可以由计算得到,通常为几十毫秒到几百毫秒。[9]可变时间片轮转调度算法:当一轮循环开始时,系统根据就绪队列中已有的进程数目计算一次值,然后进行轮转。在此期间,新到达的进程暂不进入就绪队列,要等到该次轮转完毕后再一并进入。之后,系统根据就绪队列中的进程数目重新计算值,开始下一轮循环。[9]

基于时间片的轮转调度算法的性能依赖于时间片的大小。时间片大小将直接影响系统开销和响应时间;时间片太大,会使其他就绪状态的进程等待时间太长,占用CPU的进程可能在一个时间片内就运行完毕,该算法将退化为FCFS算法;时间片太小,处理机在进程之间的上下文切换过于频繁,导致系统开销增加,降低CPU的实际使用效率。具体的时间片值由各个系统根据需求自行设定,且随系统的负荷不同而变化。[9]

多级反馈队列调度算法

不同的调度算法各有所长,为了达到最好的调度效果,操作系统往往把几种调度算法综合起来应用。多级反馈队列调度算法综合了先来先服务算法(FCFS)、短作业优先调度算法(SJF)[注9]和最高响应比优先法(HRN)[注10]这3种算法。[9]

多级反馈队列调度算法模型
多级反馈队列调度算法模型

多级反馈队列调度算法的实施过程如下:[9]

(1)组织多个就绪队列,并为各个队列赋予不同的优先级,第一个队列的优先级最高,其余各队列的优先级逐个降低;各队列的时间片长度也不同,优先级越高的队列,时间片就越小[9]

(2)一个新进程进入内存后,放入第一个队列的末尾,按FCFS原则排队等待调度。[9]

(3)如果进程在分配的时间片内完成全部工作,则撤离操作系统;如果在时间片没有用完时提出输入/输出请求,或要等待某事件发生,则进入相应的阻塞队列等待;在等待的事件出现时,再回到原队列末尾,参与下一轮调度。[9]

(4)本轮时间片耗尽进程尚未完成任务时,调度程序将该进程转入下一个队列的末尾,参与那个队列的调度;当进程依次降到最后一个队列时,在最后一个队列中采取RR算法轮转运行,直到进程结束。[9]

(5)仅当上一个队列空闲时,调度程序才调度下一个队列中的进程运行。[9]

多级反馈队列调度算法的优点:调度算法灵活,能较好地照顾到各种类型用户作业的需要。无论是交互式作业还是批量型作业,无论是以I/O操作为主的作业还是以CPU计算为主的作业,都能得到大体上均衡的对待。[9]

优点

共享系统资源:多个用户和流程可以共享系统资源,如CPU时间、内存和I/O设备,这可以提高资源利用率,减少浪费。[10]

提高工作效率:多个用户可以在同一系统上与分时操作系统同时工作,这可以提高团队合作和提高用户的生产率[10]

增强交互体验:分时系统优先考虑用户请求,公平分配CPU时间,可以加快系统响应时间,给用户更多的互动体验。[10]

降低硬件成本:共享资源的操作系统可以消除对多个物理系统的需求,从而降低硬件成本,腾出数据中心的空间。[10]

促进多任务处理:分时系统通过允许用户在分配的时间段中运行多个程序来促进多任务处理。用户可以有效地在不同任务之间转换,促进灵活和富有成效的工作环境。[10]

有效管理CPU密集型任务和I/O密集型任务:分时系统有效地管理CPU密集型任务和I/O密集型任务,确保系统对这两种类型的操作都能保持响应。[2]

缺点

资源争夺:在一个分时操作系统中,多个进程正在争夺系统资源,这可能导致资源争夺。[10]

系统结构复杂:与单一用户系统相比,分时操作系统更为复杂,它们必须控制多个并发用户和流程。[10]

可扩展性问题:随着用户数量的增加,扩大系统规模以应对日益增长的资源需求变得具有挑战性。[2]

安全风险:共享时间操作系统可能会受到恶意软件攻击、未经授权的访问和数据破坏等安全风险的影响。[2]

隐私与安全

大多数人在工作台上都有台分时系统终端,如果不设置任何保护措施,在多个用户之间共享一个系统则会引起安全问题,例如一些人会读取别人的电子函件或其他文件,未经授权访问他人的数据和可能的滥用。[2][32]

数据安全方面,数据是共享交换的核心资源。政务大数据环境下的数据交换作为一种新应用场景,具有非涉密数据大量汇聚后可能涉密、多主体参与、数据持续流动等业务特点,由此引发了很多新的安全保密风险。数据全生命周期各个环节都面临着安全风险。数据全生命周期包括数据采集、传输、存储、处理、交换和销毁等多个环节,各个环节都面临着安全保密风险。[33]

共享交换使得大量数据汇聚,有可能导致失泄密。数据持续流动导致责任划分不清、权限难以控制、问题难以追责等。数据整合共享过程中、有多个主体在参与——数据提供方、数据共享交换服务方和数据使用方,而数据又在不同主体之间流动,这就导致主体的保密责任不清晰,数据失泄密难以追查。数据流动过程中容易失控。数据流动过程中,多个数据使用方权限控制的安全性不足,导致非授权用户的越权访问。[33]

典型代表

系统概述
CTSS在CTSS系统中,任何时刻内存里只装入了一道用户作业,当内存中的用户作业运行一段时间后,就会因为分配给它的时间片用完或需要其他资源而暂停运行,此时系统就将它交换到外存上,并将另一个作业调入内存运行,如此重复[34]
MULTICSMULTICS(MULTiplexed Information and Computing Service,多路信息和计算系统)是麻省理工学院、贝尔实验室和通用电气公司三家联合开发的分时系统。在该系统的管理中使用分页和分段的技术以及很多其他方面独特新颖的概念和思想,为现代操作系统的设计定了基础[1]
UNIXUNIX是一个多任务多用户的分时操作系统,一般用于大型机、小型机等较大规模的计算机中。UNIX提供有可编程的命令语言,具有输入/输出缓冲技术,还提供了许多程序包。UNIX系统中有一系列通信工具和协议,因此网络通信功能强、可移植性强。因特网的TCP/IP协议就是在UNIX下开发的[35]
Windows ServerWindows Server系统的核心是Microsoft Windows Server System(WSS),相对于其他服务器系统而言,该系统极其易用,极大降低了使用者的学习成本,适用于中、低档服务器中;但是该系统对服务器硬件要求较高,稳定性不是很好[36]
VAX/VMSVAX/VMS为每个用户提供一个虚空间,其存贮管理采用常驻区的交换入/出和收复技术,进程管理采用进程优先级和事件优先级相结合的方法,利用公共事件标志信箱进行通信[37]
SolarisSolaris系统是由SUN公司所发展的Unix操作环境,包含SUNOS操作系统与图形使用者界面,支持对称多重处理器。Solaris的对称多处理(SMP)内核可以使得Solaris能够在具有多个CPU的计算机上运行[38][39]
HP-UXHP-UX提供了一个仅供超级用户使用的加密口令数据库、系统生成的口令、用户生成的口令显示等,而且能实现口令的限期更新。在HP-UX系统中,一旦系统出现问题,HP-UX的日志文件系统通过一个快速恢复进程可保证文件系统的完整性[40]

应用领域

应用方面概述
交互计算在交互式计算机环境中,多用户需要同时访问系统,例如在办公室、学术机构和研究设施中,都广泛使用分时系统
服务器系统时间共享对服务器系统至关重要,允许多个客户机同时连接和访问服务器资源。它对网络服务器、电子邮件服务器和文件服务器具有重要作用
云计算云服务提供商利用分时系统动态地向多个云客户分配计算资源,有效地利用基础基础设施,并支持成本效益高、可扩展的云服务
联机事务处理系统在联机事务处理系统中,分时系统被用来处理来自访问数据库和同时处理事务的多个用户的并发事务
学术机构在计算机实验室和教育机构中,学生和教师需要同时获得计算机资源以完成作业、编程和研究
多媒体应用在多媒体应用中使用分时技术,用户需要实时处理和同时访问音频、视频和图形等多媒体资源
科学和工程应用在科学研究和工程等领域,分时系统用于进行模拟、数据分析和其他计算任务,在这些任务中,多个用户需要同时访问该系统
交通管制系统交通控制系统中广泛使用分时技术,在这些系统中,多个用户需要同时访问,以处理和分析交通数据,从而实现有效的交通管理
远程数据中心数据中心经常使用分时系统来有效地管理远程分配给多个客户机的计算机资源,优化资源利用并提高性能
财务应用在金融部门,分时系统被用于股票交易平台和其他金融应用程序,其中多个用户需要同时进行交易并接收实时更新
紧急应用程序需要即时反应的应用程序,如应急系统或实时监测,可以利用技术支助组织确保及时处理和应对事件
分布式系统在分布式系统中,分时系统被用来协调和管理跨多个机器和节点的任务,为分布式处理提供一个连贯的环境
参考文献[2]

工业洗衣机模糊控制系统

工业洗衣机模糊控制系统是一个多任务的实时控制系统,由于采用了主从式的系统结构,可以定时器的定时周期(10ms)作为系统的最小时钟基准。考虑到既使程序设计简单方便又不影响系统的实时性,该系统中时间片取100ms,用定时器0作系统时钟,定时中断服务程序只进行100ms,以及秒、分、时的定时及执行故障监测,并产生定时消息或故障消息。此外,在该系统中,主从通讯始终在周期性地进行,主机与变频器的通讯则是不定期地进行,用定时器1作为串行通讯的波特率发生器。该系统将上述的任务模块分别放在10个时间片内,这样在1s内将实现系统的多任务,达到模糊控制系统的功能要求。[41]

模糊控制全自动洗衣机
模糊控制全自动洗衣机

宾馆视频点播系统

在视频点播系统VOD(Video On Demand)中,从各个机定盒送出的上行信号用DTMF码通过电话线传输到机房的主控制柜中的上行信号采集卡中。在检测到振铃信号后(即为振铃检测脚变低并保持8m以上),继电器吸合,同时马上给机定盒回一接通信号——#键(保持400ms),然后等待机定盒发送点播信息;点播顺序号、点播的节目号,共4位DTMF码;若1s内无DTMF码收到(收到表示为解码芯片的DV脚变高)表示操作有误,继电器断开,状态位复原,作业指针回0,收齐4位DTMF码后将其整理并带上该路的标志,转化成3字节送到串行发送缓冲区,在定时器中断服务程序中发送。等待视频服务器回送应答信息,根据应答信息不同向机定盒回送不同的信息;若超时无应答也向机定盒回送一码(发码时间都为100ms)。最后,继电器断开,状态标志复原,缓冲区清0,作业指针也回到0,一个过程完成。[42]

系统硬件框图
系统硬件框图

发展趋势

边缘计算的集成:分时操作系统将越来越多地与边缘计算相结合,从而能够有效地共享资源和在网络边缘进行处理。这对于需要低延迟和实时处理的应用程序至关重要。[2]

加强安全保护措施:未来的分时操作系统将侧重于加强安全功能,包括先进的加密、多因素认证和入侵检测系统,以保护用户数据和确保安全的计算环境。[2]

人工智能整合:将人工智能集成到分时操作系统中,可以实现智能资源分配、基于工作量分析的动态时间切片、预测调度、优化系统性能和资源利用。[2]

节能时间共享:分时操作系统将逐步纳入节能调度算法,从而减少设备、数据中心和其他计算机环境中的能耗,从而促进更可持续的计算生态系统。[2]

用于认证的块链集成:整合用于用户身份验证和访问控制的块链技术,将提高分时操作系统内部用户互动的安全性和透明度,提供一种分散的、防篡改的认证机制。[2]

分散时间共享:未来的分时操作系统可以探索分散的架构,利用块链或类似的技术来创建分散的时间共享网络,促进更多分布式的资源分配,并减少对集中式服务器的依赖。[2]

自适应时间切片算法:分时操作系统将采用自适应时间切片算法,根据工作量变化动态调整时间片长度,确保在不同用户需求下的最佳资源分配和响应性。[2]

量子计算考虑:随着量子计算的出现,分时操作系统将不断发展,以适应量子处理的需求,潜在的融合混合系统,优化经典和量子处理的具体任务。[2]

增强用户体验:未来的分时操作系统将侧重于提供无缝和个性化的用户体验,考虑到用户行为、偏好和历史使用模式,从而对时间切片和资源分配进行相应调整。[2]

随着分时操作系统的继续发展,这些趋势将着重于提高资源效率、安全性和用户体验,同时跟上新兴技术和现代计算机不断变化的需求。[2]

与实时操作系统

实时操作系统(Real-Time Operating System,RTOS)是指具有实时性能的操作系统。[43]分时操作系统与实时操作系统的不同主要体现在独立性、效应时间、交互性、可靠性和主动权方面。[9]

类别实时操作系统分时操作系统独立性实时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰在实时控制系统中,对信息的采集和对对象的控制也都彼此互不干扰响应时间实时操作系统可能会是毫秒或微秒级分时操作系统的响应时间通常为秒级交互性实时操作系统是较少有人为干预的监督和控制系统,仅当计算机系统识别到了违反系统规定的限制或本身发生故障时,才需要人为干预分时操作系统可以有频繁的交互,以方便用户使用可靠性操作系统发生错误时,导致的后果会相当严重,可靠性高可靠性较实时操作系统低主动权实时操作系统控制的主动权在用户,用户规定计算机什么时间要干什么,计算机必须及时作出响应分时操作系统控制的主动权在计算机,计算机按一定时间间隔,以固定时间片或不固定时间片去轮流完成用户提交的多个任务参考文献[9]

与多道批处理操作系统

多道批处理系统(multiprogrammed batch processing system)[28]是多道程序系统与批处理系统的结合,[44]允许多个程序同时进入内存并运行,即同时把多个程序放入内存,并允许它们交替在CPU中运行它们共享系统中的各种硬、软件资源。[45]分时操作系统与多道批处理操作系统的不同主要体现在目标、作业性质和系统资源方面。[46]

类别多道批处理操作系统分时操作系统目标提高机器效率对用户请求快速响应作业性质适用于要求在较长时间才能完成的大型作业适用于要求在几分钟内能从终端上获得结果的短小作业系统资源对于充分使用系统资源而言,多道批处理操作系统是较好的,因为它可以同时接收经过合理安排的各种不同负载的作业对于要求执行相同功能的作业而言,分时系统是较好的,因为在不同的终端上同时使用同一个功能的例行子程序将减少系统调用它的开销参考文献[46]

参考资料 46

  1. 参考 1
  2. Time Sharing Operating System (OS): Definition, Evolution and Applications — mytechplug
  3. 参考 3
  4. 参考 4
  5. 参考 5
  6. Time-sharing — IBM
  7. 参考 7
  8. 参考 8
  9. 参考 9
  10. What is Time-Sharing Operating System? — prepbytes
  11. John Backus — IBM
  12. Who invented Timesharing? — stanford
  13. 参考 13
  14. 参考 14
  15. 参考 15
  16. Multics — multicians
  17. Introduction and Overview of the Multics System — multicians
  18. 参考 18
  19. 参考 19
  20. 参考 20
  21. 参考 21
  22. 参考 22
  23. 参考 23
  24. 参考 24
  25. 参考 25
  26. 参考 26
  27. 参考 27
  28. 参考 28
  29. 参考 29
  30. 参考 30
  31. 参考 31
  32. 参考 32
  33. 政务大数据环境下数据共享安全保密问题研究 — 国家保密局
  34. 参考 34
  35. 参考 35
  36. 参考 36
  37. 参考 37
  38. 参考 38
  39. 参考 39
  40. 参考 40
  41. 参考 41
  42. 参考 42
  43. 参考 43
  44. 参考 44
  45. 参考 45
  46. 参考 46

注释

  1. 微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的操作码(opcode),以及由特定处理器执行的基本命令。
  2. 向下兼容(Downward Compatibility)又称向后兼容(Backward Compatibility)[13]作为计算机术语之一,是指较高级的计算机或软件平台能够运行较低级别的计算机或早期版本的软件所开发的程序。[14]
  3. 向上兼容(upward compatible)指的是在较低级别的环境中开发的程序能够在同一系列的较高级别的环境中运行。[14]
  4. multics(英文全称:MULTiplexed Information and Computing System)是一个全面的,通用编程系统,作为一个研究项目正在开发。最初的Multics系统基于对GE 645电脑,整体设计目标之一是要创建一个计算系统,它是能够满足几乎所有大的要求,这些系统必须连续运行,并且可靠,类似电话或电力系统每周7天,每天24小时工作,而且必须是能够满足广泛的服务需求。从多个人机交互用户缺席的顺序处理从系统的使用与专用系统本身的编程语言和子系统,和集中批量卡,磁带,打印机设施位于远程终端的工作,这样的信息处理和通信系统被认为是必不可少的,使用电脑在未来业务增长,在行业,在政府和科学实验室,以及刺激,否则将撤销申请。[16][17]
  5. 1991年,世界上第一个监控黑客行动的蜜罐程序是使用chroot来实现的,命令参数指定的根目录当时被作者戏称为“Chroot监狱”(Chroot Jail),而黑客突破chroot限制的方法被称为“越狱”(Jailbreak)。后来,FreeBSD4.0系统重新实现了chroot命令,用它作为系统中进程沙箱隔离的基础,并将其命名为FreeBSDJail。[18]
  6. 沙盒功能,也称为沙箱,是一种用于为软件提供一个受限制的运行环境的技术,以防止程序对系统造成破坏。在沙盒环境中运行的程序,即使含有恶意代码,其影响也会被限制在局部,不会影响整个系统。
  7. Docker最早是dotCloud(Docker公司的前身,是一家PaaS公司)内部的项目,与Warden类似,Docker最初也用了LXC,后来才自己写了Libcontainer替换了LXC。[20]
  8. 先来先服务算法( First-Come,First-Served,FCFS)是最简单的磁盘调度算法。该算法不考虑访问者要求访问的物理位置,而只是考虑访间者提出访问请求的先后次序。例如,如果现在读写磁头在46号柱面执行输入/输出操作,而等待访问者依次要访问的柱面次序为86,126,38,135,29,122,78,52。采用FCFS算法时,当46号柱面上的操作结束后,移动臂将按请求的先后次序,先移到86号柱面为请求访问者服务,然后再依次移到126,38,135,29,122,78,52号柱面。[29]
  9. 短作业优先调度算法(SJF)用于进程调度时称为短进程优先调度算法,该调度算法既可以用于作业调度也可以用于进程调度。
    在作业调度中,短作业优先调度算法每次从后备作业队列中选择估计运行时间最短的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。在进程调度中,短进程优先调度算法每次从就绪队列中选择估计运行时间最短的进程,将处理器分配给它,使之投入运行,该进程一直运行下去,直到完成或因某种原因而阻塞时才释放处理器。[30]
  10. 最高响应比优先法(HRN)是对 FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。[31]
广告位:底部(ad-bottom)—— 请到中台「公共区块」编辑此内容