现代操作系统之多处理机系统(下)

虚拟化

虚拟化技术唯一一个运行在内核态上的软件上管理程序,它的代码比一个完整的操作系统代码量少两个数量级,也就意味着软件的漏洞数少两个数量级,

虚拟机的另一个好粗好在于检查点和虚拟机的前一(例如多服务器间迁移以达到负载平衡)比在一个普通的操作系统中国年进行进程迁移更加容易。

虚拟机的另一个用途是运行那些不再被支持或不能在当前硬件上的工作的操作系统中遗留的应用程序。


虚拟化的条件

有两种虚拟化的方法:
  1. 管理程序,又称为I型管理程序(或者虚拟机监控器)。它是唯一运行在内核态的程序,其工作是支持真是硬件的多个副本(虚拟机),与普通操作系统锁支持的进程类似
  2. II型管理程序,s运行在windows或Linux平台上能够解释机器指令集的用户程序。
运行在管理程序上的系统称为客户操作系统,在II型上称为宿主操作系统

简单的说,每个有内核态和用户态的处理器都有一组只能在内核态执行的指令集合(敏感指令)。还有一些指令如果在用户态执行会引起陷入(特权指令)
当且仅当敏感指令是特权指令的自己时,机器彩色可虚拟化的

I型管理程序

虚拟机在用户态以用户进程的身份运行,因此,它不允许执行敏感指令。虚拟机内运行这一个客户端操作系统,该操作系统认为自己是运行在内核态的,但实际上它是运行在用户态但。我们将这种状态称为虚拟内核态。

当操作系统(认为自己运行在内核态)执行一条敏感指令(只能在内核态执行),在不支持VT技术的处理器傻姑娘,指令失效并且操作系统通常会崩溃。
在支持VT技术的处理器傻姑娘,当客户操作系统运行一条敏感指令时,发生到内核的陷入。管理程序分析指令,查看它是来自虚拟机中的系统操作还是虚拟机中的用户程序。前者管理程序调度将要执行指令,后者会进行仿真用户态的敏感指令陷入真实硬件的行为。

II型管理程序

在VMWare中,不含任何敏感指令基本块的运行与它在裸机上的运行完全相同——因为就是运行在逻辑。通过将敏感指令翻译称VMWARE的过程调用,这种技术称为二进制翻译。

在现代硬件上,陷入的代价是非常昂贵的。

准虚拟化

运行I型和II型管理程序之上的都是没有修改过的客户操作系统,但这两类管理程序都很难或恶合理的性能。另一个逐渐开始流行的方法是更改客户操作系统的云代码,从而掠过敏感指令的执行,转而调用管理程序调用。事实上,对客户操作系统来说就像是用户程序调用操作系统(管理程序)系统调用一样。当采用这种方法时,管理程序必须定义由过程调用集合组成的接口以供客户操作系统使用。这个过程调用集合实际上形成了API,尽管这个接口是供客户操作系统使用,而不是应用程序。

通过这种方式我们就已经把管理程序变成了一个微内核,一些或全部敏感指令有意移除的客户操作系统称为准虚拟化的。

而在现实中,只有一个程序在硬件傻姑娘运行。它的一部分用来解释陷入的敏感指令。

I型管理程序和微内核之间的界限越来越模糊,当管理程序获得越来越多的功能和例程时,这个界限变得月假不清晰。

当内核需要执行一些敏感操作换转而调用特殊的例程。这些图书的例程被称作VMI(虚拟机接口),形成的低层与硬件或管理程序进行交互。这些历程被设计的通用化。

内存的虚拟化

几乎全部的现代操作系统都支持虚拟内存,级从虚拟地址空间到物理地址空间的页面映射。虚拟化技术使得内存管理更加复杂。

一种解决方法是管理程序必须为每一台虚拟机创建影子页表,用以实现该虚拟机使用的虚拟页面到管理程序分配给它的物理页面之间的映射。更糟糕的是,每次可数操作系统改变它的页表,管理程序必须相应得改变其影子页表。


VT技术,硬件首先把虚拟页面映射成客户操作系统锁认为的物理页面,然后再把它(硬件仍然认为它是虚拟页面)映射到物理地址空间,这样做不会引起陷入。

在准虚拟化的擦奥做系统中,情况是不同的。这时,准虚拟化的客户操作系统直到当它结束的时候需要更改进程页表,此时它需要通知管理程序。所以,它首先彻底改变页表,然后调用管理程序例程来通知管理程序使用新的页表


IO设备的虚拟化

常用的解决方法是管理程序在物理磁盘上为每一个虚拟机创建一个文件或区域作为它的物理磁盘。由于客户操作系统试图控制真正的物理磁盘,他会把需要访问的磁盘块数转换成相对于文件或区域的偏移量,从而完成IO操作。

一种处理IO的方法是让其中一个虚拟机运行标准的操作系统,并把其他虚拟机的IO都反射给它运行。

在IO设备虚拟化方面,II型管理程序相对于I型的优势在于:宿主操作系统包含了所有连接到计算机上的多有怪异的IO设备的驱动程序。


虚拟工具

已经包装好的虚拟机通常叫做虚拟工具。

多核处理机上的虚拟机

虚拟机之间是可以共享内存的。所需要完成的工作就是将物理页面映射到多个虚拟机的地址空间当中。如果能够做到的话,一台计算机就成为了虚拟的多处理机。

授权问题


分布式系统

分布式系统与多计算机类似,每个节点都有自己的私有存储器,整个系统中都没有共享的物理存储器。但是,分布式系统与多计算机相比,耦合更加松散。

分布式系统中每个节点都是一台完整的计算机,带有全部的外部设备。

一个分布式系统的节点可以运行不同的操作系统,每个节点有自己的文件系统,并且处于不同的管理之下。

分布式系统中国年计算机松散耦合既是优点也是缺点。

分布式系统添加在其低层网络上的是一些通用范性,它们提供了一种统一的方法来观察整个系统,其思想是提供某些东西来统一整个系统。

分布式系统面对不同硬件和操作系统的统一途径是提供一个中间件,从而允许散步的机器上的进程用一致的方式互操作。

在某种意义上,中间件像是分布式系统的操作系统。


网络硬件

网络主要有两种——覆盖一栋建筑物的LAN(局域网)和更大范围的WAN(广域网)
LAN最重要的类型是以太网


以太网

以太网有其最大电缆长度限制,以及可连接的最多的计算机台数限制。要想超过其中一个限制,就要在一座大建筑物或校园中连接多个以太网,然后用一种成为桥接器的设备把这些意外网连接起来。

为了避免碰撞问题,现代以太网使用交换机。如果能人后较大的交换机成本,可以使每台机器都拥有自己的端口,从而消除所有的碰撞。作为一种妥协方案,每个端口上连接少量计算机还是可能的。


因特网

Internet包括了两类计算机,主机和路由器。主机有PC机,路由器是专用的交换计算机,它在许多进线中的一条线上接收进来的包,并在许多个出口线中的一条线傻姑娘按照其路径发送包。

当一个包到达某个路由器使,该路由器抽取目的地地址并在一个表格中国年进行查询,以找出用哪根出口线发送该包以及传送哪个路由器。路由表是高度动态的,并且随着路由器和链路的所怀,恢复以及通信条件的变坏在连续不断的更新。

网络服务和协议


网络服务

计算机网络为使用网络的主机和进程提供服务。面向连接的服务是对电话系统的一种模仿,而无连接服务则是对邮政系统的一种模仿。

每种服务可以用服务质量表征。有些服务就其从来不丢失数据而言是hike 考的,但是减缓传送速度。

可靠的,面向连接的服务有两种变种——消息序列和字节流

不可靠的(意味着没有确认)无连接服务,常常称作是数据报服务。

此外确认数据报服务提供给这些应用使用。


网络协议

用于特定计算机通信的这些规则的集合称为协议。

所有的现代网络都使用所谓的协议栈把不同的协议一层层叠加起来。每一层解决不同的问题。

大多数分布式系统都使用Internet 作为基础,因为这些系统使用的关键协议是IP和TCP协议

IP协议是数据报协议,发送者可以向网络上发出长达64kb的数据报并且网它们到达。

TCP使用IO来提供面向连接的数据流。为了使用TCP,进程需要首先与一个远程进程建立连接。被i 请求的进程需要铜鼓哦机器的IO地址和机器的端口号确定。而对进入的连接感兴趣的进程坚挺该端口。

DNS作为一个数据库把主机的ASCII名称名称映射为对应的IP地址


基于文档的中间件

P334


基于文件系统的中间件

分布式系统采用一个文件系统模型意味着只存在一个全局文件系统,全世界的用户都能够读写他们各自具有授权的文件。通过一个进程将数据写入文件而另一个进程把数据读出的办法可以实现通信

传输模式

分为上传下载和远程访问模式


目录层次

命名透明性

位置透明性——路径吗没有隐含文件所在位置的信息

如果在一个系统中文件一栋时文件的名称不会随之改变,则成为具有位置独立性。

文件共享的语义

正确实现共享文件的语义是一件麻烦的使其,并不存在一个优雅和有效的解决方案。


基于对象的中间件

对象是变量的集合,这些变量与一套成为方法的访问过程绑定在一起。进程不允许直接访问这些变量,相反,要求它们调用方法。


每个CORBA对象是由叫做IDL的语言中国年的接口定义锁定义的,说明该对象提供什么方法,以及每个方法期待使用什么类型的参数。

ORB的功能是将客户机和服务器代码中国年的所有低层次的分布和通信细节都隐藏起来。

对于CORBA而言,一个严重的问题是每个CORBA对象只存在一个服务器傻姑娘,这意味着那些在世界各地客户机上被大量使用的对象会有很差的性能。在实践中,CORBA只在小规模系统中才能有效工作。


基于协作的中间件

Linda

发布订阅系统


Jini

网格

所谓网格,是一个大的,地理上分散的,通常是由私有网络或因特网连接起来的亿购机器的集合,想用户提供一系列服务。所有的管理域都会运行中间件的一个公共的中间件层以便用户和程序可以通过方便一致的方式访问所有资源


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值