2.引入进程
在一个未引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行,即只有在计算程序执行告一段落后,才允许I/O程序执行;反之,在程序执行I/O操作时,计算程序也不能执行。
但在为计算程序和I/O程序分别建立一个进程后,这两个程序便可并发执行。若对内存中的多个程序都分别建立一个进程,它们就可以并发执行,能极大地提高系统资源的利用率,增加系统的吞吐量。
进程: 是指在系统中能独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成,是一个能独立运行的活动单位。
多个进程之间可以并发执行和交换信息。
1.3.2 共享
OS环境下的资源共享或成为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。对于这种资源共享方式,其管理复杂得多,因为系统中的资源远少于多道程序需求的总和,会形成它们对共享资源的争夺。
由于资源属性的不同,进程对资源复用的方式也不同,目前主要实现资源共享的方式有如下两种。
1. 互斥共享方式
系统的某些资源,如打印机、磁带机等,虽然可以提供给多个进程使用,但应规定在一定时间内,只允许一个进程访问该资源。需保证多个进程对这类资源的互斥访问。
互斥式共享: A需要访问某类资源,提出请求 ---- 资源空闲,分配给A ----
其他进程也需要访问该资源,等待至A使用完成 ---- 等到A使用完成并释放系统资源后,才允许另一个进程对该资源对其访问
把这种在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。
系统中的大多数物理设备,以及栈、变量、表格,都属于临界资源,只能被互斥地共享。
2. 同时访问方式
系统中还有另一类资源,允许在一段时间内由多个进程“同时”(宏观意义上,微观上交替进行)对它们进行访问。
磁盘设备、一些用重入码编写的文件
1.3.3 虚拟
在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为 ---- 虚拟 ---- 使用时分复用和空分复用
1. 时分复用技术
1)虚拟处理机技术 一台处理机,通过时分复用的方法,能实现同时(宏观上)为多个用户服务,亦即,利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机 ---- 虚拟处理机。
2)虚拟设备技术 通过时分复用的方法,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。
这样可使原来仅允许在一段时间内由一个用户访问的设备(即临界资源),变为允许多个用户“同时”访问的共享设备。
2. 空分复用技术
空分复用技术是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。
单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术。
虚拟存储技术在本质上是实现内存的分时复用,即它可以通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。
实质上就是每次只把用户程序的一部分调入内存运行,运行完成后将该部分换出,再换入另一部分到内存中执行,通过这样的置换功能,实现了用户程序的各个部分分时地进入内存运行。
采用分时复用技术,每台虚拟设备的平均速度必然等于或低于物理设备速度的1/N,同理,采用空分复用技术,一台虚拟设备平均占用的空间必然等于或低于物理设备所拥有空间的1/N
1.3.4 异步
由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以“走走停停”的方式运行。
对于内存中的每个进程,在何时能获得处理机执行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等,都是不可预知的。
进程是以人们不可预知的速度向前推进的,此即进程的异步性。————————————————
1.4 操作系统的主要功能
引入OS的主要目的是:
为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行
能最大程度地提高系统中各种资源的利用率
方便用户使用
基本功能:
处理机管理
存储器管理
设备管理
文件管理
为了方便用户使用OS,还需向用户提供方便的用户接口。
1.4.1 处理机管理功能
主要功能:
创建和撤销进程
对进程进行协调
实现进程之间的信息交换
按照一定算法把处理机分配给进程
1.进程控制
多道程序环境下,作业并发执行 ----- 必须为每道作业创建一个或多个进程,并为之分配资源
当进程运行结束时 ---- 立即撤销该进程 ---- 以便及时回收该进程所占用的各类资源,供其它
进程使用进程控制的主要功能: 为作业创建进程、撤销已结束的进程, 以及控制进程在运行过程中的状态转换
2.进程同步
进程同步的主要任务是对多个进程(含线程)的运行进行协调 ----- 使多个进程能有条不絮地运行
常用的协调方式有两种:
进程互斥方式 ---- 对临界资源访问时,应采用互斥方式 ----- 每一个临界资源配置一把锁W
进程同步方式 ---- 在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调 ---- 信号量机制
3.进程通信
当有一组相互合作的进程去完成一个共同任务时,在它们之间往往需要交换信息。
进程通信的任务是实现相互合作的进程之间的信息交换。
当相互合作的进程处于同一计算机系统时,通常在它们之间采用直接通信方式,即由源进程利用发送命令直接将信息挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出信息。
4.调度
调度包括作业调度和进程调度两步。
作业调度: 后备队列 ----- 一定算法 ----- 选择若干个作业 ----- 分配运行所需资源 ----- 调入内存 ---- 建立进程 ---- 使成为就绪进程并插入就绪队列
进程调度: 进程就绪队列 ---- 一定算法 ---- 选一个进程 ----- 分配处理机 ---- 设置运行现场,投入执行
1.4.2 存储器管理功能
主要任务:
为多道程序的运行提供良好环境
提高存储器利用率
方便用户使用
逻辑上扩充内存
主要功能:
内存分配与回收
内存保护
地址映射
内存扩充
1.内存分配
主要任务:
1) 为每道程序分配内存空间,使其各得其所
2) 提高存储器利用率,尽量减少不可用的内存空间(碎片)
3) 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
实现内存分配时,有两种方式:
1) 静态分配方式。 每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。
2) 动态分配方式。 每个作业要求的基本内存空间虽然也是在装入时确定,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
2.内存保护
主要任务:
1) 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰
2) 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行
为确保每道程序都只在自己的内存区中运行 ---- 设置内存保护机制
一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。
在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止程序的执行。
3.地址映射
在多道程序环境下,每道程序经编译和链接后所形成的可装入程序其地址都是从开始的(逻辑地址),各程序的地址空间的逻辑地址与其在内存空间中的物理地址并不相一致。
地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址(在硬件的支持下完成)
4.内存扩充
借助虚拟存储技术,从逻辑上扩充内存容量。
为实现扩充,系统必须设置内存扩充机制(包含少量硬件),实现下述功能:
1) 请求调入功能,系统允许在仅装入部分用户程序和数据的情况下,便能启动该程序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向OS发出请求,由OS从磁盘中将所需部分调入内存。
2)置换功能,若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存的一部分暂时不用的程序和数据调至硬盘上,以腾出内存空间,然后将所需部分装入内存。
1.4.3 设备管理功能
主要任务:
1)完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作
2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
为实现上述任务,设备管理应具有缓冲管理、设备分配、设备处理、虚拟设备等功能。
1.缓冲管理
在I/O设备和CPU之间引入缓冲,则可效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU利用率,进而提高系统吞吐量。因此在现代OS中,无一例外地在内存中设置了缓冲区,而且还可通过增加缓冲区容量的方法来改善系统的性能。
不同的系统可采用不同的缓冲区机制。常见的缓冲区机制有:单缓冲机制、能实现双向同时传送数据的双缓冲机制、能供多个设备同时使用的公用缓冲池机制。
上述这些缓冲区都由OS缓冲管理机制将它们管理起来。
2.设备分配
基本任务: 根据用户进程的I/O请求、系统现有资源情况、按照某种设备分配策略,为之分配其所需的设备。如果在I/O设备和CPU之间还存在着设备控制器和I/O通道,则还需为分配的设备分配相应的控制器和通道。
为实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器等的标识符和状态。
这些表格 ----- 了解 ----- 设备当前是否可用、是否忙碌
在进行设备分配时,应针对不用的设备类型而采用不同的设备分配方式。
对于独占设备的分配还应考虑到该设备被分配出去后系统是否安全,设备使用完成后,应立即由系统回收。
3.设备处理
设备处理程序又称为设备驱动程序。
基本任务:
用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
处理过程:
首先检验I/O请求的和合法性,了解设备状态是否是空闲的,读取有关的传递参数及设置设备的工作方式 ------> 然后向设备控制器发送I/O命令,要求它完成指定的I/O操作
此外设备驱动程序还应能及时响应由控制器发来的中断请求,并根据该中断请求的类型,调用相应的中断处理程序进行处理。
1.4.4 文件管理功能
主要任务:
1)对用户文件和系统文件进行管理以方便用户使用
2)保证文件的安全性
为此文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理、文件的共享和保护等功能。
1.文件存储空间的管理
主要任务:
为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的读、取速度。为此,系统中应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考。还应具有对存储空间进行分配和回收功能。
2.目录管理
主要任务:
1)为每一个文件建立一个目录项。目录项包括文件名、文件属性、文件在磁盘上的物理位置等
2)对众多的目录项加以有效的组织,以实现方便的按名存取。
3)实现文件共享,这样就只需在外存上保留一份该共享文件的副本
4)提供快速的目录查询手段,以提高对文件检索的速度
3.文件的读/写管理和保护
1)文件的读/写管理
该功能是根据用户的需求,从外村中读取数据,或将数据写入外存。
在进行读写时
先根据用户给出的文件名去检索文件目录,从中获得文件在外存的位置 --------- 利用文件读/写指针,对文件进行读/写 ----- 一旦读写完成,便修改读/写指针,为下一次读/写做好准备
由于读写操作不会同时进行,故可合用一个读/写指针。
2)文件保护
为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现以下目标:
防止未经核准的用户存取文件
防止冒名顶替存取文件
防止以不正确的方式使用文件
1.4.5 操作系统和用户之间的接口
操作系统和用户之间的接口
两大类:
1.用户接口
为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口。用户可通过该接口向作业发出命令以控制作业的运行。
分为三种:
1)联机用户接口
联机用户 ---- 由一组键盘操作命令、命令解释程序组成
用户在终端或控制台键入一条命令 ----> 系统转入命令解释程序,对命令加以解释执行
2)脱机用户接口
批处理作业的用户
用户用作业控制语言JCL把需要对作业进行的控制和干预的命令事先写在作业说明书上,然后将它与作业一起提供给系统。
3)图形用户接口
采用了图形化的操作界面 ---- 图标、菜单
不需要像联机用户接口那样要熟记所有命令及其格式和参数
2.程序接口
程序接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。
由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。
每当应用程序要求OS提供某种服务时,便调用具有相应功能的系统调用。
1.4.6 现代操作系统的新功能
现代操作系统的新功能
增加了面向安全、面向网络、面向多媒体等功能。
1.系统安全
1)认证技术。 确认被认证对象是否名副其实
2)密码技术。 存储和传输的数据进行加密
3)访问控制技术。 1.用户存取权限的设置 2.文件属性的设置
4)反病毒技术。
2.网络的功能和服务
1)网络通信。 源主机和目标主机之间实现无差错的数据传输
2)资源管理。 对网络上的共享资源有效管理,协调用户使用,保证数据一致和安全
3)应用互操作
3.支持多媒体
1)接纳控制功能
2)实时调度
3)多媒体文件的存储
————————————————