DFS是做什么用的

DFS是做什么用的,第1张

在大多数环境中,共享资源驻留在多台服务器上的各个共享文件夹中。要访问资源,用户或程序必须将驱动器映射到共享资源的服务器,或指定共享资源的通用命名约定 (UNC) 路径。例如:

\\服务器名\共享名

\\服务器名\共享名\路径\文件名

通过 DFS(分布式文件系统),一台服务器上的某个共享点能够作为驻留在其他服务器上的共享资源的宿主。DFS 以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际上数据却分布在不同的位置。用户不必再转至网络上的多个位置以查找所需的信息,而只需连接到:\\DfsServer\Dfsroot

用户在访问此共享中的文件夹时将被重定向到包含共享资源的网络位置。这样,用户只需知道 DFS 根目录共享即可访问整个企业的共享资源。

DFS 拓扑从 DFS 树的根目录开始。位于逻辑层次结构顶部的 DFS 根目录映射到一个物理共享。DFS 链接将域名系统 (DNS) 名称映射到目标共享文件夹或目标 DFS 根目录的 UNC 名称。当 DFS 客户端访问 DFS 共享文件夹时,DFS 服务器将 DNS 名称映射到 UNC 名称并将引用返回给该客户端,以使它能够找到共享文件夹。将 DNS 名称映射到 UNC 名称使数据的物理位置对用户是透明的,这样用户便无须记住存储文件夹的服务器。当 DFS 客户端请求 DFS 共享的引用时,DFS 服务器将使用分区情况表 (PKT) 将 DFS 客户端定向到物理共享。对于基于域的 DFS,PKT 存储在 Active Directory 中;对于独立的 DFS,PKT 存储在注册表中。在网络环境中,PKT 维护有关 DFS 拓扑的所有信息,包括其到基础物理共享的映射。DFS 服务器将 DFS 客户端定向到与请求的 DFS 链接相对应的副本共享列表后,DFS 客户端使用 Active Directory 站点拓扑连接到同一站点中的一个副本,如果该站点中没有提供副本,则连接到该站点以外的一个副本。

层数越多的时候,DFS的效率可能越快:

假设在array[4][4]={{3,4,1,6},{9,4,3,1},{2,3,6,9},{1,7,10,8}}中,你被要求求出所有长度为4,其和小于5的序列。

DFS会在第一个搜索3->9->2->1  时,在"9"的时候就会判断为假,停止搜索;(你可以把DFS理解为程序"走一步看(check)一步")

而如果是穷举法,它会在程序每次搜索到最后一层才去判断这个结果是不是为真(就比如在上面这个例子:程序3->9->2->1到最后一个结点"1"的时候程序才会说:"oh这个结果不行,要丢掉。"其实在9的时候就可以停止及时止损的。),这样当层数很多时候,程序很有可能要做很多"无用功"。

(自己可能理解也有不少不到位的地方,欢迎指正,共同进步)

-------

更:DFS、BFS等都是广义上的穷举法(如:DFS可以看成经过优化、有一定策略、但基本思想为穷举的穷举法),上面说的不同更多的是狭义穷举(真的把所有的状态空间都尝试一遍)与DFS在效率方面上的不同。

个人看法,欢迎指正~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7708982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存