操作系统结构(二)

来源:互联网 发布:农村淘宝生产投入制度 编辑:程序博客网 时间:2024/06/05 21:52

本节主要介绍操作系统结构和虚拟机。


操作系统结构

A、简单结构

两个样例:

(1)、MS-DOS

利用最小的空间提供更多的功能,没有仔细划分模块,没有很好地区分接口和功能层次。

 

(2)、UNIX

UNIX系统由内核和系统程序两个独立部分组成。内核进一步分为一系列接口和驱动程序。物理硬件之上和系统调用接口之下的所有部分作为内核,内核通过系统调用以提供文件系统、CPU调用、内存管理和其他操作系统功能。

 

B、分层方法

系统模块化可采用分层法,即操作系统分成若干层(级)。最底层(层0)为硬件,最高层(层N)为用户接口。

 

分层法的主要优点在于构造和调试的简单化。每层只能利用较低层的功能和服务。这种方法简化了调试和系统验证。每层都是利用较低层提供的功能来实现的。该层不必知道如何实现这些功能,它只需要知道这些操作能做什么。因此,每层为较高层隐藏了一定的数据结构、操作和硬件的存在。

分层法的主要困难涉及对层的详细定义以及效率问题。

C、微内核

微内核的概念是由Richard Rashid在卡内基梅隆(Carnegie-Mellon)大学开发Mach操作系统时提出的,目标是建立一个基于消息传送(message passing)机制的最小内核,以便在此基础上建造对其它操作系统的模拟层来模拟其它操作系统的特性。以Mach微内核为例,该微内核提供了进程管理、线程管理、内存管理、通信和I/O服务的功能。在Mach微内核基础上,建立了一些运行在用户态进程中的操作系统模拟程序,用来模拟4.3 BSDSystem VHP/UXMS-DOS等操作系统的特性。这些模拟程序使得Mach操作系统能够支持许多运行于其它操作系统上的应用程序,如图1所示。所以微内核设计带来的一个重要优点是大大提高了操作系统的兼容性(compatibility)——使得基于微内核的操作系统能够模拟其它操作系统的特性,从而支持许多运行于其它操作系统上的运用程序。

微内核将所有非基本部分从内核中移走,并将它们实现为系统程序或用户程序。微内核通常包括最小的进程和内存管理以及通信功能。微内核的主要功能是使客户程序和运行在用户空间的各种服务进行通信。通信以消息传递形式提供。对于消息传递模型,通信进程通过彼此之间交换消息来交换信息。直接或间接地通过一个共同的邮箱,消息可以在进程之间得到交换。在通信前,必须先打开连接。必须知道另一个通信实体的名称,它可能是同一CPU的另一个进程,也可能是通过与网络相连的另一计算机上的进程。每个进程也有进程名,它通常转换成标识符以便操作系统引用。进程建立通信后,通过read messagewrite message系统调用来交换消息。Close connection调用将终止通信。在消息传递交换模型中,如果客户程序访问一个文件,那么它必须与文件服务器进行交互。客户程序和服务器绝不会直接交互,而是通过内核的消息传递来通信。

微内核的好处之一在于便于扩充操作系统。同时,微内核也能提供更好的安全性和可靠性。如果一个服务器出错,那么操作系统的其他部分不会受影响。但是,微内核必须忍受由于系统功能总开销的增加而导致系统性能的下降。

D、模块(宏内核)

面向对象编程技术生成模块化内核。这里,内核有一组核心部件,以及在启动或运行时对附加服务的动态链接。这种方法使用动态加载模块,并在现代的UNIX,如SolarisLinuxMax OSX中很常见。

例如,Solaris操作系统结构被组织为7个可加载的内核模块围绕一个核心内核构成:

 

*调度类;

*文件系统;

*可加载的系统调用;

*可执行格式;

*Streams模块;

*杂项模块;

*设备和总线驱动。

模块化的设计允许内核提供核心服务,也能动态地实现特定的功能。例如,特定的硬件的设备和总线驱动程序可以加载给内核,而对各种文件系统的支持也可作为可加载的模块加入其中。所得到的结果就好像是一个分层系统,它的每个内核部分都有被定义和保护的接口。但它比分层系统更为灵活,它的任一模块都能调用任何其他模块。进一步讲,这种方法类似于微内核方法,核心模块只有核心功能以及其他模块加载和通信的相关信息,但这种方法更为高效,因为模块不需要调用消息传递来通信。

苹果的Mac OS X操作系统采用一种混合结构。Mac OS X采用分层技术构建操作系统,其中一层包括Mach微内核。Max OS X结构如图。 

 

上层包括应用环境和一组向应用提供的图形接口的服务。下层是内核环境,主要包括Mach微内核和BSD内核。Mach提供内存管理,支持远端程序调用(Remote Program Call, RPC)和进程间通信(Inter-Process Communication, IPC)工具,包括消息传递和线程调度。而BSD提供了BSD命令行接口,支持网络和文件系统,以及POSIX API的实现,包括PThread。除了MachBSD外,内核环境为设备驱动的开发和动态加载模块提供一个I/O工具,应用和工具可直接使用MachBSD方法。

E、虚拟机

维基百科上对虚拟机的定义是:A virtual machine (VM) is a software-based emulation of a computer. Virtual machines operate based on the computer architecture and functions of a real or hypothetical computer. 即虚拟机基于软件的计算机模拟,它运行在计算机硬件上,具有真实计算机的功能。亦虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 

虚拟机的基本思想是单个计算机(CPU、内存、磁盘、网卡)的硬件抽象为几个不同的执行部件,从而造成一种“幻觉”,仿佛每个独立的执行环境都在自己的计算机上运行一样。

 

(A)、实现:

虚拟机方法的主要困难与磁盘系统有关,当物理机器不能为每个虚拟机分配一个磁盘驱动器时,虚拟机软件提供虚拟磁盘机制,虚拟磁盘除了大小之外,在其他方面都相同。系统通过在物理磁盘上为虚拟磁盘分配所需要的磁道数来实现小型磁盘。

另外,对于虚拟机,虚拟机软件由于本身运行在用户模式,故提供了虚拟用户模式和虚拟内核模式。这两种模式都运行在物理用户模式。在真正机器上引起从用户模式到内核模式转换的动作,也必须在虚拟机上引起从虚拟用户模式到虚拟内核模式的转换。

(B)、优点:

*每个虚拟机完全独立于其他虚拟机,没有安全问题,但同时也没有直接资源共享。提供共享的实现方法,一是通过共享小型磁盘来共享文件,而是通过定义虚拟机网络,虚拟机间通过虚拟通信网络来传递消息,该虚拟通信网络按照物理通信网络来模拟,但是通过软件实现。

*虚拟机是用于研究和开发操作系统的好工具。

(C)、实例:

*VMWare

 

*Java虚拟机

 

 JVM为Java程序抽象了底层系统,提供平台无关接口。

 F、服务器-客户端模式

客户端/服务器模型是所有网络应用的基础。客户端/服务器分别指参与一次通信的两个应用实体,客户端方主动地发起通信请求,服务器方被动地等待通信的建立。

优点:

1、简化了执行体。可以在用户态服务器中构造各种各样的API,而不会有任何冲突或重复;可以很容易地加入新的API。
2、提高了可靠性。每个新的服务运行在内核之外,有自己的存储空间,这样可以免受其他服务的干扰,单个客户的失败不会使操作系统的其余部分崩溃。
3、为应用程序与服务间通过RPC调用进行通信提供了一致的方法,且没有限制其灵活性。函数桩(function stub)把消息传递进程对客户应用程序隐藏起来,函数桩是为了包装RPC调用的一小段代码。当通过一个API访问一个环境子系统或服务时,位于客户端应用程序中的函数桩把调用参数包作为一个消息发送给一个服务器子系统执行。
4、为分布式计算提供了适当的基础。典型地,分布式计算使用客户/服务器模块,通过分布的客户和服务器模块以及客户与服务器间的消息交换实现远程过程调用。对于Windows,本地服务器可以代表本地客户应用程序给远程服务器传递一条消息,客户不需要知道请求是在本地还是在远程得到服务的。实际上,一条请求是在本地还是远程得到服务,可以基于当前负载条件和动态配置的变化而动态变化。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 车票买成学生票怎么办 联程车票晚点怎么办 联程火车票晚点怎么办 虎皮剑兰发很多怎么办 一直换号码骚扰怎么办 冰箱不停的运作怎么办 被虚拟电话骚扰怎么办 一直有电话骚扰怎么办 老打电话骚扰我怎么办 总有电话骚扰怎么办 狗一直抽搐不停怎么办 右眼皮一直抽搐怎么办 打包机不停的倒带不切带怎么办 频繁被电话骚扰怎么办 一直被骚扰电话怎么办 有电话短信骚扰怎么办 收到大量验证码怎么办? 每天有陌生电话怎么办 电话不停被骚扰怎么办 水龙头的乱溅怎么办 水龙头坏了喷水怎么办 水龙头水流很散怎么办 自来水往外喷水怎么办 手机有骚扰电话怎么办 半夜到南宁机场怎么办 得了水痘坐火车怎么办 香港账户被限制怎么办 司法拍卖车扣分怎么办 速递易已超期怎么办 e栈快递换微信怎么办 e栈快递柜打不开怎么办 小孩耳朵塞东西怎么办 把隐形眼镜吃了怎么办 街道分车位不公平怎么办 服务区修车被宰怎么办 2018高速逃费怎么办 高速不停车卡怎么办 独立显卡显存不够怎么办 rx470d买不到了怎么办? 南方避险基金到期怎么办 高铁票认证失败怎么办