操作系统(一)——操作系统引论

操作系统的基本特征

并发性(concurrent)

并行性指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔发生。
并行需要硬件支持,如多流水线或者多处理器。
操作系统通过引入进程和线程,使得程序能够并发运行。
1) 进程
进程是指在系统中能独立运行并作为资源分配的基本单位。多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如CPU、存储空间及I/O 设备等。
2) 线程
通常在一个进程中可以包含若干个线程。在引入线程的OS中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。

共享性(Sharing)

在操作系统环境下,共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。相应地,把这种资源共同使用称为资源共享,或称为资源复用。目前主要实现资源共享的方式有两种:
1) 互斥共享
仅当A 进程访问完并释放该资源后,才允许另一进程对该资源进行访问。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源,需要用同步机制来实现对临界资源的访问。如打印机、磁带机。
2) 同时访问
允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。

虚拟技术(virtual)

操作系统中的虚拟,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。在操作系统中利用了两种访问实现虚拟技术,即时分复用技术和空分复用技术。
1)时分复用技术
时分复用即分时使用方式。网络中将一条物理信道虚拟为多条逻辑信道,每条信道为一对用户通话。在计算机领域中,广泛利用该技术来实现虚拟处理机、虚拟设备等,以提高资源的利用率。

  • 虚拟处理机技术:利用多道程序设计技术,为每道程序建立一个进程,让多道程序并发地执行,以此来分时使用一台处理机。
  • 虚拟设备技术:将一台物理I/O 设备虚拟为多台逻辑上的I/O 设备,并允许每个用户占用一台逻辑上的I/O 设备。

2) 空分复用技术

  • 虚拟磁盘技术:将硬盘划分为若干个卷,例如1、2、3、4 四个卷,再通过安装程序将它们分别安装在C、D、E、F 四个逻辑驱动器上,这样,机器上便有了四个虚拟磁盘。
  • 虚拟存储技术:空分复用是利用存储器的空闲空间来存放其它的程序,以提高内存的利用率。单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,必须引入虚拟存储技术才能达到此目地。而虚拟存储技术在本质上就是使内存分时复用。
    注意,若对某一物理设备进行时分复用,设N 是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或低于物理设备速度的1/N。类似地,如果是利用空分复用方法来实现虚拟,此时一台虚拟设备平均占用的空间必然也等于或低于物理设备所拥有空间的1/N。

异步性(asynchronism)

异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。这是由于进程并发执行,若系统中只有一台处理机,则每次只允许一个进程进行,其它进程只能等待。
但只要运行环境相同,并配备完善的同步机制,也能保证程序运行的结果相同。

操作系统的基本功能

处理机管理

处理机管理的主要功能是创建和撤消进程(线程),对进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。
1)进程控制:主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。在现代OS中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。
2)进程同步:进程是以异步方式运行的,为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:(1)进程互斥方式:进程(线程)在对临界资源进行访问时,应采用互斥方式。(2)进程同步方式:在相互合作去完成共同任务的进程(线程)间,由同步机构对它们的执行次序加以协调。实现进程同步最常用的机制是信号量机制。
3) 进程通信:进程通信的任务就是用来实现在相互合作的进程之间的信息交换。
4)进程调度:进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。
5)死锁处理等。

存储器管理

1) 内存分配:为每道程序分配内存空间。允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
2) 内存保护:确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。越界检查都由硬件来实现。
3) 地址映射:由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致。为使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
4) 内存扩充:存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序并发运行。

设备管理

管理计算机系统中所有的外围设备。
1) 缓冲管理:在I/O 设备和CPU之间引入缓冲,则可有效地缓和CPU与I/O 设备速度不匹配的矛盾,完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率。单缓冲、双缓冲、公共缓冲。
2) 设备分配:根据用户进程的I/O 请求、系统的现有资源情况以及按照某种设备的分配策略,为之分配其所需的设备。设备控制表、控制器控制表。
3) 设备处理:设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信。

文件管理

一般把程序和数据以文件的形式存储在磁盘和磁带上。文件管理是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
1) 文件存储空间的管理:为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度。是采用离散分配方式,以减少外存零头,并以盘块为基本分配单位。盘块的大小通常为1~8 KB。
2) 目录管理:由系统为每个文件建立一个目录项。目录项包括文件名、文件属性、文件在磁盘上的物理位置等。由若干个目录项又可构成一个目录文件。
3) 文件读写管理和保护等。