WINS用来登记NetBIOS计算机名,并在需要时将它解析成为IP地址。WINS数据库是动态更新的。
(1) WINS的基本要求:
对于WINS服务器:
1 必须是一台NT server计算机
2 使用TCP/IP协议,并且具有一个静态的IP地址。
对于WINS客户:
1要求是运行以下 *** 作系统的计算机:
Windows NT Server 35或更高
Windows NT Workstation 35或更高
Windows 95
运行Microsoft TCP/IP-32的Windows for Workgroups 311
带有实模式TCP/IP驱动的Microsoft Network Client 30 for MS-DOS
LAN Manager 22c for MS-DOS。不支持LAN Manager 22c for OS/2
2需要WINS server的IP地址
(2)WINS过程
(a)在一个WINS的环境中,每次WINS客户开启计算机并初始化TCP/IP后,它都会将它的NetBIOS名和IP地址的对应关系映射到WINS服务器的数据库中。
(b)当一个WINS客户想和另外一台主机通讯时,它会直接和WINS server联系,查询计算机名和IP地址的关系。
(c)如果WINS服务器在自己的数据库中查到了被查计算机名和IP地址的映射关系,它就将目的计算机的IP 地址返回要求查询的WINS客户。
另一个WINS:
Windows Internet Name Service (WINS)
WINS提供一个分布式数据库,它的作用是在路由网络的环境中对IP地址和NetBIOS名的映射进行注册与查询。 这可能是解决NetBIOS名与IP地址之间转换的比较合适的一种方法,对于比较复杂的网络如互联网更是如此。
LMHOSTS文件在广播式系统中有一点缺点,它是基于广播的,所以对网络的通信量是一个沉重的负担,这个问题并未得到解决。有人设计了通过路由协议进行单播式的动作对NetBIOS名字进行注册和解析。如果采用这个协议,那就可以解决了广播的问题,也就没有必要使用LMHOSTS文件了,使动态配置的灵活性与方便性得到重新体现,使得这个系统可以和DHCP协议无缝连接。我们可以想象,当DHCP给一台计算机分配了一个地址后,这个更新可以直接在WINS数据库中体现。用户和管理员都不需要进行任何额外的工作,十分方便。WINS协议可以和NBNS一起工作,但是因为WINS数据库备份的问题没有解决,因为它不能和别的NetBIOS名字服务器一起工作,数据不能在WINS服务器和非WINS服务器间进行复制。
WINS是基于客户服务器模型的,它有两个重要的部分,WINS服务器和WINS客户。我们首先看一下服务器,它主要负责处理由客户发来名字和IP地址的注册和解除注册信息。如果WINS客户进行查询时,服务器会返回当前查询名下的IP地址。服务器还负责对数据库进行备份。而客户主要在加入或离开网络时向WIN服务器注册自己的名字或解除注册。当然了,在进行通信的时候它也向服务器进行查询,以确定远程计算机的地址。
我们使用WINS的好处在什么地方呢?WINS就是以集中的方式进行IP地址和计算机名称的映射,这种方式可以简化网络的管理,减少网络内的通信量,但是这种集中式的管理方式可以和星型结构相比,我们有理由怀疑它可以会成为网络的瓶颈。在本地的域控制器不在路由器管理网段的另一段时,客户仍然可以游览远程域,在集中处理的时候,数据都会集中于这个服务器中,一定要注意不要让这个节点失败。
WINS的另外一个重要特点是可以和DNS进行集成。这使得非WINS客户通过DNS服务器解析获得NetBIOS名。这对于网络管理提供了方便,也为异种网的连接提供了另一种手段。我们可以看到,使用集中管理可以使管理工作大大简化,但是却使网络拓朴结构出现了中心结点,这是一个隐性的瓶颈,而如果采用分布式的管理方式,却有个一致性的问题,也就是如果一个服务器知道了这个改变,而另一个不知道,那数据就不一致了,这时候要有一些复杂的算法来解决这一问题,两台服务器要想知道对方的情况,不可能不进行通信,也就无形中加重了网络负担。网络就是这样,集中起来就加大了单机的处理压力,而分布了就增加了网络传输量,天下没有十全十美的事情。
WINS(Windows Internet Name Service)服务器主要用于NetBIOS名字服务,它处理的是NetBIOS计算机名(Computer Name),所以也被称为NetBIOS名字服务器(NBNS,NetBIOS Name Server)。
WINS服务器可以登记WINS-enabled工作站的计算机名、IP地址、DNS域名等数据,当工作站查询名字时,它又可以将这些数据提供给工作站。
在各种名字解析方式之中,WINS名字服务具有一些优点。首先,WINS名字服务是以点对点的方式直接进行通信的,并可以跨越路由器访问其他子网中的计算机,这便克服了广播查询无法跨越路由器和加重网络负担的不足;其次,与静态处理域主机名(Host Name)的DNS服务器不同,WINS名字服务还是一种很少人工干预的动态名字服务;第三,WINS名字服务不仅能够用于NetBIOS名字查询,而且还可以辅助域主机名(Host Name)的查询,可以结合DNS和WINS服务器的好处进行Internet域名查询,因此WINS又被称为Windows 网际名称服务(Windows Internet Name Service)。
WINS服务器在TCP/IP网络(包括Internet)的名字解析中得到了广泛的应用。通过访问服务器来获取不同的服务的过程称为客户端/服务器模型。在客户端/服务器模型中,服务器提供特定的服务,客户端通过访问服务器来获取这些服务。客户端和服务器之间通过网络连接进行通信,客户端向服务器发送请求,服务器对请求进行处理并向客户端返回相应的数据或服务。
客户端/服务器模型是一种常见的分布式计算架构,可以让不同的计算机、设备或应用程序之间协同工作,共同完成特定的任务或提供服务。这种模型通常具有高度的可扩展性、灵活性和可靠性,被广泛应用于各种 Internet 应用中,例如 Web 服务器、电子邮件服务器、数据库服务器等。目前网络应用系统采用的主要模型是客户/服务器计算模型。客户/服务器模型是所有网络应用的基础。客户/服务器分别指参与一次通信的两个应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。服务器配备大容量存储器并安装数据库系统,用于数据的存放和数据检索。客户端安装专用的软件,负责数据的输入、运算和输出。客户机和服务器都是独立的计算机。当一台连入网络的计算机向其他计算机提供各种网络服务(如数据、文件的共享等)时,它就被叫做服务器。而那些用于访问服务器资料的计算机则被叫做客户机。相比,微内核调度系统中最突出的特征是增加了处理机和处理机集及线程的管理,并且向用户提供了灵活的手段来控翩自己的程序在处理机上的运行.这{羊,微内核系统就能很好地支持多处理机体系结构.同时,线程为用户提供了细粒度的并行处理机制,使得同一个用户任务中的不同线程可以同时在多个处理机上运行.
与进程相比,线程中所带的资源很少,因此,创建线程和撤消线程的开销就比进程小.线程也称为“轻进程.在系统调度中,线程的切换开销也比进程步,但是不同任务中的线程切换会引起任务的切换,在这种情况下,线程和进程的调度开销就变成一样了.为了优化系统效率,减步由于线程切换而弓I起的任务切换,在调度算法中加入了以下代码:
IF (所选中的线程和当前运行的城程属于同一十任务)
THEN 不做任务切换}
ELSE进行任务切换 *** 作}
显然,这种方法在某种情况下会对系统性能有所帮助,但是这种方法在很大程度上属于一种“被动的,或者说是一种“碰运气”的方法.另外,单纯以线程为主的调度算法对用户任务有失公平性,以线程为主的调度算法是完全参照传统 *** 作系统中的调度算法设计而成的.当线程投入运行时,系统为它分配周定大小的时间片,系统中线程按时间片轮转.这样,就产生了公平性问题:如果一个任务中有两个线程,那么,从理论上讲,它将比只用一个线程实现的任务多获得近1倍的处理机时间.在传统的进程调度系统中,一个用户可以通过创建多个进程来获得更多的处理机调度机会,但是,它是建立在增加了创建进程和进程间通讯的系统开销代价的基础上的相比之下,创建线程的开销非常小,同一任务间的线程之闭通讯开销也很小为了解决上述问题,我们提出并实现了一种将传统的任务和新的线程调度机翩相结合的方法:以任务为单位分配时间片(这样可以保证调度的公平性),在线程调度时,当一个线程不是由于任务时间片用完的原因而放弃处理机时,只要系统中没有高优先级线程,就从本任务中选取线程,从而使得由线程切换而引起的任务切换 *** 作开销达到最小.
从目前的发展来看,用户任务的并行粒度越来越小,即用户任务中的线程越来越多,而每个线程所执行的 *** 作会越来越步.因此,使用线程+任务的方法可以有效地减少单纯的以线程为主的系统调度所引起的系统开销.
2 微内核虚拟存储管理技术
微内核虚拟存储管理系统弓『入了存储对象(Memory Object)的概念,将物理内存看成外部存储对象的(如磁盘)高速缓存(Cache),实现了虚拟存储器写时拷贝(Copy onWrite)技术,引入了lazy evaluation技术.定义了虚拟存储器和硬件存储管理机制的接口(Pmap),实现了与机器无关的虚拟存储系统.
虚拟存储器写时拷贝算法是微内核虚拟存储管理系统的核心算法.它的弓f入使得虚拟存储器管理的效率大大提高了一步.但是,它的实现依赖于硬件存储管理机制的页面保护机制,对于一个具有写时拷贝共享属性的存储区,其页面保护被设置成写保护.多个用户可以共享的方式对它进行读 *** 作,但是,当用户试图对这块区域进行写 *** 作时,将产生写保护故障,页面故障管理程序将为用户进程复制物理页面.从而达到写时拷贝的目的.
在I386体系结构下,只有用户态页面允许写保护,在其他机器状态下,硬件存取机制将绕过页面保护机翩,直接对页面进行写 *** 作.在这种状态下,写时拷贝算法将失效.而在微内核体系结构中,可能有各种状态下的服务器,如在内核态下运行的服务器.为了解决这个问题。我们引入了写时拷贝和访问时拷贝(Copy oil Reference)相结合的算法.
即在用户态上使用写时拷贝算法,在其他状态下使用访问时拷贝算法来替换写时拷贝算法,以解决写时拷周算法失效的问题.访问时拷贝算法的实现依赖于页面保护机制的映页机制.这样,在其他状态下,在设置页面保护时将写保护改成映页即可.新的方法在效率上比写时拷贝算法低,但是比完全拷贝的方法高出许多,特别是与lazy evaluation技术相配合时
效率会更高.由于微内核提供的写时拷贝算法是对用户透明的,即对于用户编写的任何状态下的服务器都将使用写时拷贝算法.因此,在I386体系结构下,在非用户态上运行的用户服务器有可能出错,新的算法解决了这个问题.
3 微内核计时模型
在传统 *** 作系统中,为统计出每个进程的处理机时间使用量的单元.系统计时一般是放在处理机时钟中断服务程序中.系统
IF (当前盎程处于用户态)
增加当前进程的用户奋处理机时间使用量
在每个进程结构中都没有统计进程使用处理机时间
般采用如下代码段来进行用户进程的时间统计.
ELSE
增加当前进程的系统态处理机时闻使用量
由于在传统的 *** 作系统中, *** 作系统提供的服务完全由 *** 作系统内核来完成。用户通过系统调用进入内核来取得服务.因此,采用上述方法能比较准确地统计出用户所用的处理机时间.但是,这种计时方法是一种比较粗糙的计时方法.每次时钟中断时,它就将一个固定的时间片(时钟中断周期)加入披中断的进程中,而不管该进程是否完全使用了这些处理机对向.由于这种方法实现起来非常简单,系统开销很小,几乎所有的 *** 作系绕都采用了这种方法.在新的 *** 作系统中引入了细粒度的并行执行部件—— 线程。对于线程的计时也采用了和进程相同的方法.为了取得精确的处理机时同统计精度.一些新型 *** 作系统弓『入了新的计时机制.如MACH 3.0中引^了基于时间戳的精确计时机制.在微内核体系结构下.传统的 *** 作系统功能是通过服务器的方式来实现的.服务器和用户任务一样,也作为一个进程运行.当用户进程调用 *** 作系统服务时,微内核通过消息将系统服务的参数传递给 *** 作系统服务器,由 *** 作系统服务器来完成用户请求,并将结果通过消息传递给用户进程.这样,如果采用传统的方法来进行进程的处理机时问统十。就会将 *** 作系统为用户提供服务所用的处理机时间记入服务器中.而不是用户进程中.
为了解决这个问题,我们引^了委托线程的概念,建立了新的用户进程计时模型.在客户/服务器模型中,用户通过消息请求服务器的服务,服务器接收用户的消息完成用户的请求,再通过消息将结果传给用户.在这种体系结构下,可看成用户将自己的一部分工作委托给服务器完成,服务器是在为委托线程服务.当用户线程向服务器发出请求时,将用户线程标识传递给服务器,当服务器中的某个线程处理这个请求时,将用户线程标识记^服务器线程结构中的委托线程域中.在系统时钟中断服务程序中增加为委托线程计时的代码。就可将 *** 作系统服务器为用户进程限务的时同计算到用户进程中.
IF(当前线程结构中有委托线程)
IF(当前线程赴于用户态)
增加委托线程的用户态赴理机时间使用量
ELSE
增加委托线程的系统态处理机时间使用量
在多服务器体系结构下,一个用户请求往往需要多个服务器的协同服务,如一个文件读 *** 作,需要文件服务器的服务,如果文件服务器发现数据存放在磁盘中,它就需要请求设备服务器的眼务,设备服务器实际上是在为用户线程服务.因此,在多服务器情况下,当一个服务器向另一个服务器发出请求时,必须将自己的委托线程标识号传递给目标服务器.这样, *** 作系统为一个线程提供所有服务所使用的处理机时间都将计算到用户线程中击.为了完成以上功能,必须对微内核的消息传递机制进行扩充,使用户在请求服务时能将线程的标识传递给服务器,服务器在接收消息时能接收到委托线程标识.所有这些 *** 作必须对用户透明.微内核的消息传递机制由消息发送和消息接收两部分组成.通过在这两个原语中加入以下逻辑来实现委托线程标识的发送和接收.
SEND :
IF(当前线程结构中有委托线程标识)
将委托线程标识传递出去
ELSE
将当前线程的标识传递出击
RECEIVE:
IF(当前线程是服务器)
将委托线程号放凡服务器线程结构
在发送原语中,可将委托线程标识从一个服务器传递到另一个服务器.在接收逻辑中,通过增加服务器标识的判断可以避免非服务器线程之间的偶发通讯而导致的用户线程的计时错误.
4 结论
微内核技术是当今 *** 作系统发展的最新成果.在体系结构方面,它采用了面向对象技术来描述 *** 作系统内核对象,提出并实现了基于客户服务器体系结构的 *** 作系统.在算法方面,提出了许多高教新颖的算法,如线程及处理机调度算法、写时拷贝算法、与硬件无关的存储管理算法以及精确计时算法等等.在国产微内核 *** 作系统COSIX2.0的研制过程中,通过对国外微内核技术的消化和研究,提出并实现了一些新的算法和模型,改进了系统的性能,提高了系统的可靠性,做到了有所继承,有所刨新目前,我们正在进行基于微内核的JAVA虚拟机,支持服务质量(Quality of Services)的调度系统微内核热重启(Hot Restart)技术的研究.以上内容是我们一部分研究工作的总结.
另外,站长团上有产品团购,便宜有保证1超文本传输协议>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)