编辑:
2013-03-24
6.辅助存储器管理
操作系统的主要目的是执行程序。这些程序在运行时(以及它们要访问的数据)都必须在主存储器中。因为主存储器的容量太小不能存储所有的程序和数据,而且掉电后会丢失所有的存储信息,所以计算机系统必须要提供辅助存储器作为主存储器的后备。大多数现代计算机系统使用磁盘作为存储程序和数据的主要联机存储体。大多数程序(包括编译程序、汇编程序、排列程序、编辑程序和格式化程序)在载入内存之前存储在磁盘上,并且在运行时利用磁盘存储它们所处理的源文件和目标文件。因此,合理的磁盘管理对一个计算机系统来说是至关重要的。
操作系统要负责下列与辅助存储器管理相关的工作:
— 空闲空间管理;
— 空间分配;
— 磁盘调度。
因为频繁地使用辅助存储器,所以必须要能够高效运行。而且计算机的整体运行速度取决于磁盘子系统的速度和该子系统实现算法的效率。
7.网络管理
分布式系统是一个处理机的集合,这些处理机既不共享内存和外围设备,也不共享时钟。而是每个处理机拥有自己的本地内存和时钟,并且这些处理机可以通过各种通信线路(如高速总线或网络)进行通信。一个分布式系统中的处理机在规模和功能上有所不同,其中可能包括小型微处理器、工作站、小型机和大型通用计算机。
在(分布式)系统中,处理机通过通信网络相连接,有多种不同的方法可以配置该网络。这种网络可以完全或部分地连接。通信网络的设计必须要考虑报文路由选择和连接策略,以及争用和安全的问题。
分布式系统将物理上相互独立的可能不同种类的系统集合成为一个独立相连的系统,它具有向用户提供访问由系统维护的各种资源的能力。对共享资源的访问加快了计算速度、增强了系统功能、提高了数据的可用性并加强了可靠性。操作系统把网络细节包含在了网络接口设备驱动程序中,于是将网络访问泛化为一种文件访问的形式。因此,分布式系统所使用的协议在很大程度上影响到系统的效率和普及。
8.系统保护
如果一个计算机系统有多个用户并允许并行执行多个进程,那么必须要保护各个进程免受其他进程的侵扰。为此,需要提供一种机制来保证只有那些从操作系统获取了合适权限的进程能够操作文件、存储段、CPU和其他资源。
例如,内存寻址硬件确保了一个进程只能在自己的地址空间内执行,计时器确保进程最终能够放弃对CPU的控制,用户不能够访问设备控制寄存器;这样,就保护了各种外围设备的完整性。
保护是操作系统定义的控制程序,是进程或用户访问的机制。这个机制必须要提供一种方法来描述要施加的控制,以及强制执行的方法。
通过检测子系统接口中潜伏的错误,保护能够增强系统的可靠性。对接口错误的早期检测常常能够阻止一个子系统故障波及到其他正常的子系统。一个未受保护的资源难以防止未授权或不适当的用户的使用(或误用)。一个面向保护的系统提供了一种区分授权的和未授权的使用方法。
9.操作系统服务
操作系统提供了程序运行的环境。它为程序和程序用户提供了特定的服务。当然,不同的操作系统提供的具体服务不同,但是我们能够找出其共同部分。提供的这些操作系统服务是为了便于程序员设计程序。具体如下。
— 程序执行:系统必须能够将程序载入内存并运行它。程序必须能够正常地或异常地(指示错误)结束运行。
— I/O 操作:一个正在运行的程序可能要请求I/O 操作。这可能会涉及文件或I/O 设备。针对具体的设备,需要特定的功能(如倒卷一个磁带驱动器或清空一个CRT屏幕显示)。出于系统效率和保护的原因,用户通常不能够直接控制I/O 设备。因此,操作系统必须要提供一种I/O 运行机制。
— 文件系统处理:文件系统相当有意思。显然,程序需要能够读写文件,也要能够创建和删除文件。
— 通信:在很多情况下,一个进程需要与另外一个进程交换信息。通信有两种主要的方式。第一种方式是在运行在同一台计算机上的进程间通信;另外一种方式是运行在由一个计算机网络连接的不同的计算机系统上的进程间通信。可以通过共享存储器或报文传送(这种方式中,操作系统在进程之间将信息打包移动)的方式实现进程间的通信。
— 错误检测:操作系统需要经常注意可能发生的错误。错误可能发生在CPU、内存(如存储错误或电源故障)、I/O 设备(如磁带奇偶检验错误、连结网络失败或打印机缺纸)及用户程序(如运算溢出、试图访问非法存储器地址或过多占用CPU 时间)中。对于每种类型的错误,操作系统应该能够采取针对性措施以确保计算的正确性和相容性。
另外,操作系统还存在另外一些功能,它们不是为了帮助用户工作,而是为了确保系统本身的高效运行。如:
— 资源分配:当多个用户登录到系统中或同时有多个作业运行时,必须要在它们之间分配资源。操作系统管理许多不同类型的资源。有些资源(如CPU 周期、主存储器和外存储器)可能有专用的分配代码,而其他的(如I/O 设备)可能有更通用的请求和释放代码。例如,在决定如何最好地使用CPU 的问题上,操作系统的CPU 调度程序要考虑CPU 速度、必须要执行的作业、有效的寄存器数量和其他的一些因素;
— 账户管理:我们希望跟踪记录每个用户使用哪些类型的计算机资源和用了多少。这个记录保持可能用于记账(以便用户付账)或简单地用于累加使用率统计。对于研究者来说,使用率统计可能是个有效的工具。利用使用率统计,研究者可以重新配制系统以改善计算服务;
— 保护:存储在多用户计算机系统上的信息的所有者希望能够控制对该信息的使用。当多个不相关的进程并发执行时,一个进程不应该能够干扰其他进程或操作系统本身。保护包括了监控所有对系统资源的访问。对来自外界的系统安全检测(security)也是非常重要的。这种保护往往通过密码的方式,用户向系统验证口令才能访问资源。它也包括了保护外部I/O 设备(包括调制解调器和网络适配器)免于非法的访问企图和记录所有这样的非法闯入。如果一个系统受到保护并且是安全的,那么就必须要建立预防措施。一般,系统的安全强度与其最薄弱的一个环节密切相关。
1.4.2 操作系统功能的实现模型
操作系统本身是一组程序,像其他程序一样也在处理器上执行,那么,操作系统程序是否组织成进程?它是如何控制和怎样执行的呢?下面来讨论这个问题。从操作系统的执行方式来看,可以把它分成:非进程内核模型、OS功能(函数)在用户进程内执行的模型和OS功能(函数)作为独立进程执行的模型3种。
1.非进程内核模型
许多老式操作系统的实现采用非进程内核模型,即操作系统的功能都不组织成进程来实现,如 图1-2所示,该模型包括一个较大的操作系统内核程序,进程的执行在内核之外。当中断发生时,当前运行进程的上下文现场信息将被保存,并把控制权传递给操作系统内核。操作系统具有自己的内存区和系统堆栈区,用于控制过程调用和返回。它将在核心态执行相应的操作,并根据中断的类型和具体的情况,或者是恢复被中断进程的现场并让它继续执行,或是转向进程调度指派另一个就绪进程运行。
图1-2 非内核进程模型
2.OS功能在用户进程内执行的模型
小型机和工作站操作系统(如UNIX等)往往采用OS的所有功能在用户进程内执行的模型,如图1-3所示,在这种实现模型中,大部分操作系统功能组织成一组例行程序供用户程序调用,认为操作系统例程与用户进程是上下文相关的,操作系统的地址空间被包含在用户进程的地址空间中;因而,操作系统例行程序也在用户进程的上下文环境中执行。图1-4给出了OS的所有功能在用户进程内执行的模型中的进程映像,它既包含进程控制块、用户堆栈、容纳用户程序和数据的地址空间等,还包括操作系统内核的程序、数据和系统堆栈区。
当发生一次中断或系统调用后,处理器状态将被置成内核模式,控制从用户进程手中被剥夺并传递给操作系统例行程序。此时,发生了模式切换,模式上下文(现场)信息被保存,但是进程上下文切换并没有发生,操作系统仍在该用户进程中执行,提供单独的内核堆栈用于管理进程在核心态下执行时的调用和返回,操作系统例行程序和数据放在共享地址空间,且被所有用户进程共享。
图1-3 OS 的功能在用户进程内执行的模型
图1-4 OS 的所有功能在用户进程内执行模型的进程映像
当操作系统例程完成了工作之后,如果让当前进程继续运行的话,就可以做一次模式切换来恢复执行原先被中断的用户进程。这种技术提供了不必要通过进程上下文切换就可以中断用户进程来调用操作系统例行程序的手段。如果发生进程切换,控制就被传递给操作系统的进程切换例行程序,由它来实现进程切换操作,把当前进程的状态置为非运行状态,而指派另一个就绪进程来占有处理器运行。需要指出的是,一些系统中进程切换例行程序是在当前进程中执行的,而另一些系统则不是。
3.OS功能作为独立进程执行的模型
OS 功能作为独立进程执行的模型把操作系统组织成一组系统进程、即操作系统功能是这些系统进程集合运行的结果,这些系统进程也称为服务器或服务器进程,于是与用户进程或其他服务器进程之间构成了Client/Server 关系,Windows 2000/XP采用了这种结构。如图1-5所示,除了极少部分功能在内核模式下运行,大部分操作系统功能被组织在一组分离的独立进程内实现,这组进程在用户模式下运行,而进程切换例行程序的执行仍然在进程之外。
图1-5 OS 功能作为独立进程执行的模型
这一实现模型有很多优点。首先,它采用了模块化的操作系统实现方法,模块之间具有最少和简洁的接口。其次,大多数操作系统功能被组织成独立的进程,有利于操作系统的实现、配置和扩充,如性能监控程序用来记录各种资源的利用率和系统中用户进程的执行速度,由于这些程序并不提供给进程特别的服务,仅仅被操作系统调用,把它设计成一个服务器进程,便可赋予一定的优先级,夹在其他进程中运行。最后,这一结构在多处理器和多计算机的环境下非常有效,一些操作系统服务可指派到专门处理器上执行,有利于系统性能的改进。
标签:综合辅导
精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。