操作系统的基本特性——并发、共享、虚拟、异步
前言:操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。主要作用是管理好这些设备,提高它们的利用率和吞吐量,并为用户和应用程序提供一个简单的接口,便于用户使用。OS是现代计算机系统中最基本和最重要的系统软件,而其它的如编程程序,数据库管理系统等系统软件,以及大量的应用软件,都直接依赖于操作系统的支持,取得它所提供的服务。
软件的分类:
操作系统在计算机系统的层次结构:
一、并发
① 并发性与并行性的区别:
并发性是指两个或多个事件在同一时间间隔内发生;并行性是指两个或多个事件在同一时刻发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序同时运行,但在单处理机系统中,每一时刻只能由一道程序执行,所以微观上程序是分时地交替执行的。
例如,在一秒钟内,0-15ms程序A运行; 15-30ms程序B运行;30-45ms程序C执行;45-60ms程序D运行。因此可以说,在一秒钟的时间间隔内,宏观上有四到程序在同时运行,但是在微观上,程序A、B、C、D是分时地交替执行的。
②引入进程实现并发
进程:是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈组成的,是一个能独立运行的活动实体。在一个未引入进程的系统中,属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行,并且当其中一个程序执行时,另一个程序不能执行。如果为两个进程分别建立一个进程(Process),这两个进程便可以并发执行了。实行这种方式,极大的提高了系统资源的利用率,增加了系统的吞吐量。多个进程之间可以并发执行和交换信息。
二、共享
OS环境下的共享,即资源共享或资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。系统必须对资源进行妥善的管理,如果管理不当,就有可能造成资源竞争,进程陷入无限等待的局面。由于资源的属性不同,进程对资源的复用方式也不同,目前主要实现资源共享的方式有两种:
①互斥共享方式
系统中的某些资源,虽然能够提供给多个进程使用,但是规定在一段时间内,只允许一个进程访问该资源。为此,在系统中建立了一种机制,来确保多个进程访问该类资源时实现互斥访问。
当进程A要访问某类资源时,必须先提出请求。如果此时该资源空闲,系统就可以将该资源分配给进程A。如果之后又有进程请求访问该资源,就必须等待,直到进程A使用完该资源。这种资源共享方式称为互斥式共享,把这种在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。系统中的大多数物理设备,如栈、变量、表格都属于临界资源,都只能互斥的共享。在之后的信号量机制中就实现的该种方式,用于保证所有进程互斥的使用临界资源。
②同时访问方式
系统中还有一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里的“同时”在微观意义上是指进程对该资源的访问是交替进行的。
三、虚拟
在操作系统中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”。实现“虚拟”的两种常见技术是时分复用和空分复用。
①时分复用技术
在计算机领域,广泛使用时分复用技术来实现虚拟处理机、虚拟设备等。时分复用技术提高资源利用率的原因在于利用处理机的空闲时间运行其他程序,从而提高了计算机的资源利用率。
②空分复用技术
空分复用技术则是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。单纯的空分复用存储器只能提高内存的利用率,如果要实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术。虚拟存储技术的本质上是实现内存的分时复用,使程序在远小于它的内存空间中运行。例如,一个300MB的程序在30MB的内存空间中运行,实质上是每次只把用户程序上的一部分调入内存运行,运行完成后将该部分换出,将另一部分程序换入到内存,通过这样的置换功能,便实现了用户程序的各个部分分时的进入内存运行。
四、异步
对于临界资源的互斥访问可见,由于资源等因素的限制,使进程的执行通常都不能“一气呵成”,而是“走走停停”,即进程是以人们不可预知的速度向前推进,每道程序总共需要多少时间才能完成,这也是进程的异步性。只要在操作系统中配置完善的进程同步机制,且运行环境相同,则作业即便经过多次运行,也会获得完全相同的结果。因此异步运行方式是允许的,并且是操作系统的一个重要特征。