操作系统概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.操作系统概述
1.1操作系统概念
操作系统为应用程序提供与硬件交互的接口,为运行中的程序动态地分配可共享的系统资源,与之相关的研究主要涉及内存、进程及外设的管理和调度。相邻层次间的接口不断改变:一方面,原来由操作系统负责的部分功能被迁移到硬件中;另一方面,一些与应用程序解决的问题无关的程序化函数也被加入操作系统中。
1.2相关观点
1.2.1资源管理者
最经典的观点认为操作系统是资源管理者( resource manager)。从这个观点来看,操作系统负责系统的硬件。在这个角色中,操作系统接收来自应用程序对资源访问的请求,其可以授权访问或拒绝访问。当授予分配请求时,它必须谨慎地分配资源,使程序间不能相互干扰。
1.2.2服务提供者
我们可以想象,资源管理者的观点代表了系统拥有者需要确保资源能得到有效的使用。另一方面,我们可以应用程序或应用程序的程序员的观点来分析操作系统。从这个角来看,需要操作系统提供丰富的服务,使应用程序的工作变得更加轻松。并且应用程序特别希望,访问I/设备、分配内存等许多细节都由操作系统完成。当我们从服务提供者的角度来考虑操作系统时,经常说程序运行在操作系统之上(on)。
1.2.3虚拟机
最后一个观点是我们将操作系统作为虚拟机(virtual machine)进行分析。之所以从这个角度分析操作系统,是因为我们将操作系统作为应用程序和硬件之间的接口。通过想象应用程序在操作系统和硬件之上,我们可以获得这样的基本思想。在硬件简单而特性很少的计算机与硬件复杂而又特性很多的计算机之间,如果对这两种类型的计算机操作系统提供相同的特征,那么应用程序无法对两者进行区分。换言之,对应用程序而言,其就是运行在硬件和操作系统结合的“计算机”之上,我们称之为虚拟机操作系统( virtual machine operating system)
2.操作系统的功能2.1进程与线程
进程:在进程模型中,计算机上所有可运行的软件,通常也包括操作系统,被组织成若干
顺序进程(sequential process),简称进程(process)。一个进程就是一个正在执行程序的实例,包括程序计数器、寄存器和变量的当前值。从概念上说,每个进程拥有它自己的虚拟CPU。当然,实际上真正的CPU在各进程之间来回切换。但为了理解这种系统,考虑在(伪)并行情况下运行的进程集,要比我们试图跟踪CPU如何在程序间来回切换简单得多,这种快速的切换称作多道程序设计。
线程:在传统操作系统中,每个进程有一个地址空间和一个控制线程。事实上,这几乎就是进程的定义。不过,经常存在在同一个地址空间中淮并行运行多个控制线程的情形,这些线程就像(差不多)分离的进程(共享地址空间除外)。
2.2内存管理
通过支持模块化程序设计的计算环境和数据的灵活使用,可以很好地满足用户的要求:系统管理员需要有效且有条理地控制存储器分配。操作系统为满足这些要求,担负着5个基本的存锗器管理责任:
●进程隔离:操作系统必须保护独立的进程,防止互相干涉各自的存储空间,包括数据和指令。
●自动分配和管理:程序应该根据需要在存储层次间动态地分配,分配对程序员是透明的。因此,程序员无须关心与存储限制有关的问题,操作系统有效地实现分配问题,可以仅在需要时才给作业分配存储空间。
●支持模块化程序设计:程序员应该能够定义程序模块,并且动态地创建、销毁模块,动态地改变模块大小。
●保护和访问控制:不论在存储层次中的哪一级,存储器的共享都会产生—个程序访问另—个程序存储空间的潜在可能性。当一个特定的应用程序需要共享时,这是可取的。但在别的时候,它可能会威胁到程序的完整性,甚至威胁到操作系统自身。操作系统必须允许一部分☆存可以由各种用户以各种方式进行访问。
●长期存储:许多应用程序需要在计算机关机后长时间保存信息。
2.3信息安全与保护
操作系统几乎所有的功能区都有自身的安全要素。操作系统绝对不允许任何进程终止另一个进程。正如前面已经提到的,我们必须谨慎,以确保进程无法乱写入其他进程的内存空间。同样,访问I/O设备和文件的请求必须通过所有权和权限的筛
选测试。根据强制的安全策略来实现这些措施,这些策略对应用程序而言是透明的。程序向操作系统提出请求,操作系统将确定是否允许。在网络安全领域有一些非常有趣的新发展。随着全球因特网的迅速激增,对网络请求采取强认证的需求越来越重要。最后,各种各样的管理级应用程序也都有各自额外的安全功能。常见的任务有:扫描系统的己知弱点、测试系统的未授权访问、验证第三方软件的安全性等。除了后台的强制运行机制之外,应用程序能请求的服务如下:
●设置安全性策略。
●查询安全性策略。
●验证自身的远程系统。
●侦听远程系统来验证自身。
●加密/解密消息,特别是经由网络的消息。
从应用程序的角度来看,操作系统充当的是看门的角色。当进程请求任何子系统的服务时,操作系统检查它是否有使用服务的权限。如果它有使用服务的权限,那么批准请求,但如果没有使用服务的权限,则拒绝请求。
2.4调度与资源管理
操作系统的一个关键任务是管理各种可用资源(内存空间、I/O设备、处理器),并调度各种活动进程使用这些资源。任何资源分配和调度策略都必须考虑三个因素:
●公平性:通常希望给竞争使用某一特定资源的所有进程提供几乎相等和公平的访问机会。对同一类作业,也就是说有类似请求的作业,更是需要如此。
●有差别的响应性:另一方面,操作系统可能需要区分有不同服务要求的不同作业类。操作系统将试图给出满足所有要求的分配和调度决策,并且动态地进行决策。例如,如果—个进程正在等待使用一个I/O设备,操作系统会尽可能迅速地调度这个进程,从而释放这个设备以方便其他进程使用。
●有效性:操作系统希望获得最大的吞吐量和最小的响应时间,并且在分时的情况下,能够容纳尽可能多的用户。这些标准互相矛盾,在给定状态下寻找适当的平衡是操作系统中—个正在进行研究的问题。
调度和资源管理任务是—个基本的操作系统研究问题,并且可以应用数学研究成果。此外,系统活动的度量对监视性能并进行调节是非常重要的。