操作系统的基本特性
并发(Concurrence)
并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时间间隔内发生
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
未引入进程的系统(顺序执行):IO程序—计算程序—IO程序
即在属于同一个应用程序的计算程序和IO程序之间只能一个一个程序顺序执行
如何解决?答:为计算程序和IO程序分别建立一个进程,他们就可以并发执行
归根到底最终目标:提高系统资源的利用率,增加系统的吞吐量
那么,讲了这么久,究竟进程是什么?
答:是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。
共享(Sharing)
操作系统下的资源共享(资源复用):系统中的资源可供内存中多个并发执行的进程共同使用。
也就是相当于在星巴克里边,我在用星巴克的wifi在编写这篇博客,同时,我旁边有一位美女在用星巴克的wifi和坐在她隔壁的美女闺蜜打王者荣耀。我们同时在用星巴克的wifi,但我们互不影响。
1. 互斥共享方式
系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源。为此,在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。
举个栗子,你去买电影票看上了一个座位,然后,另一个人也看上了这个位置,你们两人同时支付,显然只有一个人会拿到这个位置,不然的话到时候看电影两个人坐在一个位置上,是你坐他大腿呢还是他坐你大腿呢,哈哈。
当进程A要访问某资源的时候,必须先提出请求。如果此时那个资源是空闲的话,系统便将之分配给进程A使用。此后,如果有其他进程想访问该资源,只要进程A没有使用完,就一直等待。仅当A访问完并释放系统资源,才允许另一个进程对资源进行访问。把这种在一段时间内只允许一个进程访问的资源称为临界资源(或独占资源)。系统上大多数物理设备,以及栈、变量、表格,都属于临界资源,都只能被互斥地共享。
2.同时访问方式
系统中有一些资源,是可以“同时”被多个进程访问的,为什么“同时”要加双引号呢?因为这里所说的同时是相对于宏观角度来说的,而在围观上呢,这些进程对该资源的访问是交替进行的。典型的可供多个进程“同时”访问的资源是磁盘设备。一些用重入码编写的文件也可以被“同时”共享,即允许若干个用户同时访问该文件。
总结:并发和共享是用户(多任务)OS的两个最基本特征。他们又是互为存在的条件。也就是说,资源共享是以进程的并发执行为条件的,如果系统不存在并发执行的话,那么就不存在资源共享的问题了;如果系统不能对资源共享实施有效的管理,以协调好一堆进程对共享资源的访问,也必然会影响到那堆进程间并发执行的程度,严重的话可能无法并发执行。
虚拟(Virtual)
定义:把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能成为”虚拟”。
1. 时分复用
虚拟处理机技术。时分复用技术能提高资源利用率,是因为它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到充分的利用。
利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行。此时虽然系统中只有一台处理机,但通过分时复用的方法,宏观上能够实现为多个用户服务,使每个终端用户都认为是有一个处理机在专门为他服务。
虚拟设备技术
通过分时复用的方法,将一台IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备。
2. 空分复用
利用存储器的空闲空间区分域存放和运行其它的多道程序,以此来提高内存的利用率。
虚拟存储技术:实现在逻辑上扩大存储器容量。本质上是实现内存的分时复用即它可以通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。例如:一个100MB的应用程序之所以可以运行在30MB的内存空间中,实质上是每次只把用户程序的一部分调入内存中运行,运行完后将该部分患处,再换入另一部分到内存中运行,通过这样的置换功能,实现了用户的各个部分分时地进入内存。
异步
由于各用户程序性能的不同,比如,由的侧重于计算而较少需要IO;而由的程序计算少IO多,这样,很可能是先进入内存的作业后完成,而后进入内存的作业先完成。或者说,进程是以人们不可预知的速度向前推进的,此即进程的异步性。