1.3 操作系统的基本特征
1.3.1 并发(Concurrence)
并行与并发:
并行性——两个或多个事件在同一时刻发生
并发性——两个或多个事件在同一时间间隔内发生
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却只能有一道程序执行,故微观上这些程序只能是分时地交替执行。若计算机系统中有多个处理机,则这些可以并发执行的程序可被分配到多个处理机上,实现并行执行。
与并发紧密相连的概念——进程
通常的程序是静态实体,它是不能并发执行的。为了使程序能并发执行,系统必须分别为每个程序建立进程(Process)。
进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个活动实体。
多个进程之间可以并发执行和交换信息
关于进程、线程的初步概念
- 在OS中引入进程的目的,是使多个程序能并发执行。
- 进程和并发是现代OS中最重要的基本概念,也是OS运行的基础。
- 直到80年代中期,人们才提出了比进程更小的单位 ——线程(Threads)。
- 一个进程通常包含若干线程。
近年来推出的OS 都引入了线程
1.3.2 共享(sharing)
共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用
目前主要有以下两种资源共享方式
并发和共享是操作系统的两个最基本的特征,它们是互为存在条件的
- 资源的共享是以进程的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;
- 若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。
- 1.3.3. 虚拟(Virtual)
虚拟——是指通过某种技术把一个物理实体变为若干个逻辑上的对应物
OS中利用了两种方式实现虚拟技术,即时分复用技术和空分复用技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等
1. 时分复用技术
时分复用技术最早用于电信行业,它将一条物理信道虚拟为多条逻辑信道,将每条逻辑信道供一对用户通话。操作系统中利用时分复用技术来实现虚拟处理机、虚拟设备等,以提高资源利用率。
1) 虚拟处理机技术
利用多道程序设计技术,为每道程序建立一个进程,让多道程序并发地执行,以此来分时使用一台处理机。此时,虽然系统中只有一台处理机,但它能同时为多个用户服务,使每个终端用户都认为有一台处理机在专门为他服务,亦即把一台物理上的CPU虚拟为多台逻辑上的CPU,也称为虚拟处理机。
2) 虚拟设备技术
通过虚拟设备技术,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,允许每个用户占用一台逻辑上的I/O设备,这样便可使原来在一段时间仅允许一个用户访问的设备(即临界资源),变为在一段时间内允许多个用户同时访问的共享设备。例如,虚拟打印机。
2. 空分复用技术
上世纪初,电信业中就利用频分复用技术来提高信道的利用率。计算机中使用空分复用技术来提高存储空间的利用率
1) 虚拟磁盘技术
通过虚拟磁盘技术,将一台硬盘虚拟成多台虚拟磁盘,这样使用起来方便、安全。虚拟磁盘技术采用了空分复用技术,它将硬盘划分成几个卷,再通过安装程序将它们分别安装在C、D、E ...逻辑驱动器上。——磁盘分区
2) 虚拟存储器技术
在单道程序环境下,内存会有很多空闲空间,空分复用则是利用存储器的空闲空间来存放其它程序,以提高内存利用率。
单纯的空分复用存储器只能提高内存的利用率,不能实现在逻辑上扩大存储器容量的功能,必须引入虚拟存储技术才能达到此目的。虚拟存储器技术在本质上就是使内存时分复用和空分复用。该技术将一道程序划分成若干部分,物理内存也划分成多个部分,通过“请求调入功能”和“置换功能”,每次只把用户程序的一部分调入内存运行,这样便实现了用户程序各个部分分时进入内存运行的功能,从而在逻辑上扩充存储器的容量。
4 异步性(Asynchronism)
- 由于资源等因素的限制,使进程的执行通常不是“一气呵成”,而是以“停停等等”的方式运行。
- 内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等,都是不可预知的。很可能是先进入内存的作业后完成,而后进入内存的作业先完成,或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性。