用软件实现局域网中的内存共享

用软件实现局域网中的内存共享

陈丹丹[1]2002年在《用软件实现局域网中的内存共享》文中提出在局域网软件实现内存共享是近年来研究的一个热门课题,实现的系统具有良好的可扩展性和简单的用户编程接口,并能实现在PC机组成的局域网小模拟高性能计算机运行并行科学计算程序。 实现这样的系统关键涉及到叁个方面的问题:内存的组织、数据的同步和节点间通信。内存的组织主要分成共享页面是有宿主节点还是没有宿主节点两种;数据的同步关键是要保证数据的正确性、完整性和访存的先后顺序,为此提出的多种存储器一致性模型和高速缓存一致性协议保证了系统中的各节点按照一定的方式和顺序访问分散在不同机器上的数据;节点间通信是影响系统性能的一个非常关键的因素,如果通信的性能不好会导致系统的设计目标不能实现,所以要设计能高效运行的共享内存系统就要设计高效的通信模块。 在本文所阐述的系统中,主要采用了基于主节点的内存管理方式,也就是所有的共享页面都有一个固定的主节点,当页面被修改过后就要把修改的值传回主节点中,并保证其它机器读取的数据总是最新的;数据同步方面系统采用了域一致性模型、多写协议,和基于锁的同步方式;在通信方面,本文提出了一种新的通信模块框架,采用用户级通信的概念,在操作系统和应用程序之间插桩一个守护进程模块,这个模块专门给应用程序提供通信服务,从最底层的协议栈中直接为应用程序收发数据,从而大大减少了原来由网络系统软件传递数据带来的通信开销。 本文先讨论了用软件实现局域网中的共享内存系统要涉及到的相关理论问题,然后提出了一个具体的实现方案,最后描述了这个系统的实际运行结果和得出的结论。

邓垚彪[2]2012年在《一种透明访问远程内存系统的设计和实现》文中提出随着计算机技术的不断发展,CPU和系统主存的性能得到了极大的提高,但依然不能满足应用程序日益增长的内存需求,特别是I/O设备的发展相对滞后,磁盘性能成为影响计算机整体性能的重要瓶颈。为了提高局域网中内存利用率和系统I/O性能,利用高速局域网中高带宽、低延迟的传输特点,在现有研究基础上,本文通过扩充系统交换区容量,提高交换区换页速度,设计和实现了I/O密集型应用和内存密集型应用透明访问远程内存系统(NS-DSM)。该系统实现了在局域网范围内对远程内存的透明共享。本文主要工作有以下几点:首先,为了能够访问其他节点的空闲内存,本文在客户端节点创建网络块设备来接收响应访问远程内存的操作,然后通过基数树结构查找、插入、删除操作把系统内存页映射到远程内存,从而实现对远程内存的访问。其次,NS-DSM系统通过创建和激活交换空间的方法把网络块设备挂载到客户端节点,从而使应用程序能够透明的访问远程内存。为了使内存页能够在最大传输单元为1500KB的以太网中分片、重组后快速传输,系统通过实现轻量级的传输协议——访问网络内存协议(ANMP)来对需要传送的页面进行分片、重组以及数据包传输。最后,本文设计和实现了客户端-服务端服务加载和转换策略。该策略根据系统内存使用情况的不同而加载不同的状态,并在系统运行时定期检测结点的空闲内存并做相应的服务转换。该策略使得系统中各结点尽可能的负载均衡,从而使整个系统处于一个资源利用的“平衡”状态。NS-DSM系统实现了局域网内内存的透明共享,并且不用对系统内核作任何修改,也不需要任何特殊的API或者函数库。它对应用程序完全透明,同时不用进行繁杂的数据一致性检验和完整性检验。实验表明,对于大量磁盘访问和内存密集型的应用,该系统能有效地提高系统整体性能和大型应用程序的执行速度。

房骥[3]2013年在《基于多核CPU的软件无线电平台研发及应用技术研究》文中研究表明随着移动通信的飞速发展,传统基于专用硬件实现的通信设备由于功能单一且固定,造成各通信标准和系统之间不能互相兼容,而且升级困难。而软件无线电技术可以很好地解决这些问题,它可以将不同无线电系统整合在同一通用硬件平台上,利用软件实现无线通信协议,充分发挥软件的灵活性。目前,很多软件无线电平台都是基于可编程硬件实现,如现场可编程门阵列或嵌入式数字信号处理器。这样的硬件平台虽然能满足现代高速无线通信协议对数字信号处理能力及时间的要求,但是编程相对困难。相比之下,基于通用处理器架构(如:普通PC)的软件无线电平台在性能与开发难易度方面提供了新的权衡,程序员在一个熟悉的架构与开发环境中,使用相对便宜的射频板卡就可以实现新的无线通信协议。但是,由于PC的硬件和软件并不是专为无线信号处理而设计,现有基通用处理器的软件无线电平台只能实现有限的性能。针对基于通用处理器的软件无线电平台所带来的挑战与机遇,本文以交叉学科思想,结合计算机与通信学科,介绍了基于多核CPU的软件无线电平台-SORA;针对无线通信中信号处理的特点设计并实现了一个高效、模块化的软件编程模型-CORA;基于SORA软件软件无线电平台及CORA编程模型实现了IEEE802.11n2x2MIMO系统;利用软件无线电天然跨层特性,对目前无线局域网中MAC协议效率低下的问题进行分析,并提出跨层解决方案-FICA。论文的主要工作和创新点可以归纳为以下几个方面:1.基于多核CPU实现了软件无线电平台-SORA。通过分析无线通信协议中物理层与MAC层的特性,提出基于通用处理器的软件无线电平台所需具备的条件,并基于多核CPU实现了软件无线电平台-SORA,并通过实验验证了系统的高性能性。SORA利用现代处理器中多核心及高容量、低延迟缓存结构,通过查找表、SIMD并行指令、多核流水线处理及独占CPU核心等技术,加速无线信号处理的速度,满足了系统对无线通信协议中延迟及定时的需求。同时,基于SORA平台,实现了一个实时802.11a/b/g无线通信系统,该系统可以实时处理物理层编/译码以及MAC层协议,可以与商业802.11设备无缝地相互通信,在各调制速率下,达到与商业802.11设备相似的性能。2.设计并实现了一个灵活、模块化的信号处理编程模型-CORA。SORA展示了当代通用处理器的计算能力可以满足高速无线通信协议中数字信号处理的需求,但是在实际中使用软件实现高速信号处理仍然是一项具有挑战性的任务。程序员需要具备大量的优化经验,甚至使用底层汇编指令,通过这样的方式实现的程序往往结构凌乱,难以实现代码复用,程序难以并行化,因此需要建立一个高效、模块化的数字信号编程模型。本文在SORA软件架构的基础上,针对无线通信中数字信号处理的特点,利用现代处理器结构中多核心并行处理的特点,结合现代编译器的优化能力,提出了一个灵活、模块化的编程模型-CORA,具有灵活、高效、低延时、高代码复用性等特点,可以极大地提高编程效率。利用CORA编程模型及辅助开发库,程序员可快速、灵活地实现不同通信协议物理层,并具有高效的执行效率。3.基于SORA实现了802.11n2×2MIMO系统。以802.11n2×2MIMO为例,介绍了物理层编/译码过程及算法,对系统实现所面临的实际问题做了介绍并给出了解决方法。基于CORA编程模型实现了物理层编/译码过程,对各部分算法针对多核CPU结构做了特定的优化,提高算法运行速度。基于SORA软件无线电平台中实现了原型通信系统,通过实验验证了物理层编/译码吞吐率可以满足实时计算的要求,并在实际物理信道中评估了物理层译码性能。该系统的开发和实验进一步展示了SORA软件无线电平台的高性能及灵活性,又进一步验证了CORA模型的易用性和有效性。4.细粒度信道接入媒体访问控制技术-FICA。SORA软件无线电平台的灵活性促使了无线新系统的研究。本文针对目前无线局域网中随着物理层数据速率提高而MAC层效率低下的问题,提出基于OFDM的细粒度信道随机接入方案-FICA,将整个宽带信道分为宽度相等的子信道,多个终端可以根据各自需求同时使用子信道,从而提高总体效率。在SORA软件无线电平台中实现了FICA的物理层,在实际信道中验证了物理层设计的合理性与可行性。基于NS-3的仿真进一步验证了在大规模网络中,FICA的网络效率比802.11有了极大地提高(10%-600%)。

赵丽[4]2008年在《基于网络的GMDSS系统设计与实现》文中提出随着船舶自动化水平的提高,计算机网络技术在船舶自动化中的广泛应用,船舶训练仿真系统也日益完善。基于网络的培训仿真软件可以检测在局域网内部其他任意的机器,并对其进行信息的反馈与控制。通过此类系统,使专业人员能够在同一条件下监管更多的计算机设备,从而节约人力资源,降低成本及消耗。同时,在仿真和监控系统中,存在着海量数据需要处理,以满足仿真与监控的真实性需要。把服务器发出的数据、指令等发送给与其连接的局域网或广域网的客户端,客户端接收到服务器传来的数据后做出相应的反映,并且将远程客户端上的数据,如操作日志,报警等返回服务器入库并对报警信息做出相应处理,以达到对远程客户端的智能化监控。本文研究开发了基于网络的GMDSS仿真软件,该仿真软件模拟了GMDSS系统中的14种设备以及电子海图,并且设置了教练员端(岸站)和学员端(船站),在局域网内可以实现船与岸以及船与船之间的日常通信和遇险发送。此外,教练员端软件具有制定练习、监督学员的通讯、接收所有的通讯记录及对学员的操作进行评估等功能。本文就基于网络的GMDSS仿真软件的开发过程,主要从以下几个方面进行了详细的阐述:首先,介绍GMDSS功能及系统组成。然后按照软件工程的思想对GMDSS软件作了详细的需求分析、设计和编码。接下来详细介绍了程序编写过程中涉及到的关键技术——网络通信技术、多线程技术、语音通讯、网络并发控制等。最后是软件实现,对仿真软件功能、操作给出了详细描述。

陈彬[5]2010年在《分布环境下虚拟机按需部署关键技术研究》文中认为系统虚拟机技术是一种重要的虚拟化技术,具有跨平台、强隔离性、支持遗留应用、可移动等特点,正越来越多地被应用在网格计算、云计算、集群计算、移动计算等分布式计算领域以解决传统方法难以解决的一些问题,如系统迁移、安全隔离、系统管理等。将虚拟机成功应用于分布计算环境的前提和基础是能够将虚拟机快速部署到各个节点上,并使得虚拟机在各个节点上能够高效运行。虚拟机部署是将包含虚拟机状态的虚拟机映像分发到目标节点上并启动或恢复虚拟机运行的过程。由于虚拟机映像通常尺寸较大,传统的虚拟机技术和虚拟机部署机制会导致分布环境下较高的部署开销,难以实现快速部署和保证虚拟机在用户端的高效运行,特别是对于大规模计算环境或低带宽、高延迟的网络环境。本文针对分布环境下的虚拟机部署,提出了一种基于虚拟机映像细粒度分割的虚拟机按需部署机制,通过按需分发部分虚拟机映像而不是整个虚拟机映像的方法来实现虚拟机在分布环境下快速高效的部署。本文主要从虚拟机管理器VMM对虚拟机按需部署的支持、基于虚拟机映像的软件管理机制、虚拟机映像的按需分发机制以及用户端虚拟机的高效运行机制四个方面展开研究。本文的主要创新工作包括:1.针对虚拟机管理器VMM中传统的COW虚拟块设备在COW磁盘层次深度和磁盘访问性能之间的矛盾以及对分布环境下虚拟机按需部署支持的不足,为VMM的块设备虚拟层设计了一种新的COW虚拟块设备。新的COW虚拟块设备对传统COW虚拟块设备的块定位方式和块存储粒度进行了优化,支持针对单个大尺寸虚拟机映像的细粒度分割,能够在不降低虚拟机磁盘访问性能的前提下将传统的单个大尺寸虚拟机映像分割成多个小尺寸的COW磁盘映像;并针对分布环境下虚拟机按需部署的需求,扩展了按需取块和共享内存区管理功能。理论分析和实验表明,新的COW虚拟块设备比传统的COW虚拟块设备具有更好的性能,特别是在COW磁盘层次较深的情况下,性能的优势更加明显。2.针对虚拟机环境下长期或频繁的软件管理导致生成大量COW磁盘映像进而导致磁盘空间浪费以及难于管理的问题,基于COW虚拟块设备的一般模型,提出了两种COW磁盘映像回收机制来回收老版本COW磁盘中的可回收空间,并将COW磁盘数目控制在一定范围内。实验表明,COW磁盘回收机制能够有效回收老版本COW磁盘和控制COW磁盘数目,从而能够大幅减少服务器端磁盘空间的浪费且方便了虚拟机映像的管理,支持虚拟机环境下基于COW虚拟块设备的持久的软件管理。3.针对传统的虚拟机部署机制会导致分布环境下较高部署开销的问题,提出了一种基于虚拟机映像细粒度分割的虚拟机按需部署机制,以实现虚拟机在分布环境下快速高效的部署。虚拟机按需部署机制利用新的COW虚拟块设备,在单个软件的基本粒度上将传统的单个大尺寸虚拟机映像分割成多个小尺寸的COW磁盘映像,然后按需地分发到用户端,以实现虚拟机映像的快速分发;通过COW磁盘本地访问为主和按需取块为辅的方式实现虚拟机在用户端的高效运行;并设计了基于COW磁盘有效工作集的优化部署方法来降低大型软件的部署开销。实验表明,本文提出的虚拟机按需部署机制能够大幅降低分布环境下虚拟机部署的开销,较好地满足虚拟机快速分发、高效运行的部署要求,支持分布环境下按需的、快速的虚拟机部署。4.针对虚拟机按需部署中用户端等待时间和虚拟机运行性能之间的矛盾,提出了一种需求驱动的虚拟机映像预取机制,对虚拟机按需部署中用户端虚拟机的性能进行优化。预取机制通过按需取块方法直接启动和运行虚拟机以减少用户端的等待时间,通过在用户端虚拟机运行过程中对用户所使用软件对应的COW磁盘进行预取来提高虚拟机中的软件运行性能。提出了一种基于访问频率和动态优先级的预取目标识别算法来提高预取过程中预取目标识别的准确性,以及一种预取量动态调节机制对预取量进行动态自适应地调节以降低网络条件等变化因素对预取的影响。针对现有部署模式在分发效率、可用性等方面的不足,提出了一种基于扩展BitTorrent协议的P2P预取模式以加速预取过程。实验表明,预取机制,特别是基于P2P模式的预取机制,能够大幅减少用户端的等待时间,显着提高虚拟机中软件任务的本地命中率进而为用户提供较好的虚拟机运行性能。

曹玥[6]2005年在《链路层加密网卡预研与软硬件平台设计》文中进行了进一步梳理随着互联网技术的发展,计算机网络丰富的信息资源给人们带来了越来越快捷和方便的服务,但同时由于其开放性和超越组织与国界等特点,也带来了突出的网络信息安全问题,如目前大多数网络设备在数据链路层都是明文传输,特别是IP地址、端口、应用协议等信息都暴露在外,给攻击者和入侵者以可乘之机。因此针对计算机网络本身可能存在的安全问题,实施网络安全保护方案以确保计算机网络自身的安全性是非常必要的。 本文应用数据加密技术提出了一种数据链路层上的安全解决方案,即用链路层加密网卡对局域网内部的所有链路层数据提供加密和认证服务,保护IP地址等信息不泄漏。文中介绍了数据链路层加密网卡的原理,给出了链路层数据加密的密钥管理方案和实现步骤,详细叙述了网卡软硬件平台的建立过程。具体来说,本文所做的主要工作如下: 1.分析了当前以太网卡应用的广泛性和其中存在的安全问题,详细介绍了以太网卡的工作机制和加密网卡实现的理论依据: 2.对实现加密网卡系统的主要技术进行了归纳,特别介绍了嵌入式设计过程和IEEE802.10协议; 3.设计了一套较完整的数据加解密控制系统,并完成了设计方案的软硬件平台以及调试环境的搭建; 4.介绍了系统方案中的各个功能模块,分析了该系统中ARM和uCLinux这一体系结构的应用,并在此基础上讨论了方案中密钥管理功能的软件实现,给出了编写密钥管理应用程序的流程。 用C、汇编语言实现部分软件编程,用protel实现原理图、PCB设计。

叶飞[7]2006年在《基于VI的高性能存储网络系统的设计及实现》文中指出为了满足地理信息系统等应用系统对高带宽、低延迟的廉价海量存储网络系统的巨大需求,基于VIA(Virtual Interface Architecture)通信协议和以太网技术的VISA(Virtual Interface Storage Architecture)应运而生。VISA系统是一个融合了内核级VIA通信协议和存储区域网技术的高性能存储网络系统,由存储结点、元数据服务器及客户结点叁部分组成,实现了块级存储虚拟化、存储资源的分配与映射策略和数据的动态分布与布局。VIA协议作为一种广泛应用于集群计算环境下的轻量级通信协议,已经在实践中证明了比传统TCP/IP协议更优的通信性能。在开源的M-VIA代码的基础上,将用户级VIA协议改进为内核级VIA协议,使其更适合于存储网络系统。采用Syskonnect公司的SK9821网卡,在linux平台下实现了支持VIA协议的网卡驱动程序,使VIA协议能够运行在千兆以太网传输介质上。经过在该平台上测试内核级VIA协议及TCP/IP协议,已经证明了内核级VIA协议在性能上的优势。VISA系统的存储结点采用模块化的设计方法,通过建立缓存、采用数据聚合、多线程并行操作等技术来提高性能,并且配合得非常合理,对存储结点性能提升很大。VISA系统的元数据管理子系统实现了物理设备和逻辑设备的块地址空间之间的映射,支持动态地址映射、动态块重分配和热块冗余技术,从而有效地改善了VISA存储网络系统的数据布局,提高了存储管理的灵活性。VISA存储网络系统的性能优势已在与iSCSI的测试对比中得到证明。

刘昆[8]2005年在《基于RTLinux/Linux的工业以太网实时性研究》文中提出目前,国内外学术组织和自动化厂商纷纷开始了工业以太网的研究,并提出了基于Ethernet+TCP/IP的工业以太网标准,而这些标准并没有针对数据链路层提供完美的实时性解决方案,因此对其进行实时性能研究是十分必要的。基于锁相环原理与PID,并结合传输延迟的准确计算给出了一种精确、简单的分布式时钟同步算法。为了验证同步算法,构造了基于RTLinux的共享式以太网实验平台,设计实现了节点的实时网络通信子系统。实验表明,该同步算法在消除时钟漂移影响的同时获得了更高的同步精度和动态性能。时钟同步算法作为网络通信子系统的一个模块实现,为同步算法和分布式实时系统的研究奠定了基础。在详细描述交换式工业以太网的消息模型和系统模型的基础上,以Linux操作系统、PC机和多端口网卡ZX346Q设计并实现了仿真工业以太网交换机及相应的实验平台。仿真交换机提供了良好的编程实现接口,可以对调度算法的性能进行有效的验证和评价。在仿真交换机内部基于Linux流量控制机制实现了一种可区分实时数据和非实时数据的双通道工业以太网交换机模型。以MR-WRR队列规程为例,给出了具有一定通用性和可扩展性的队列规程的基本框架及相应的Linux内核编程方法。最后在所设计的交换式以太网实验平台上测试了仿真交换机交换引擎的相关性能,验证了双通道交换模型的有效性。

乐一帆[9]2008年在《基于进程迁移的语言虚拟机研究》文中研究说明随着计算机硬件性能的日益增强和万维网的迅速发展,计算能力的迁移将会发挥更加重要的作用并最终被广泛采用。利用虚拟技术进行进程迁移一直是计算能力迁移的研究热点,但是,这些技术往往存在以下不足:依赖于特定的操作系统;需要修改内核;迁移的粒度太大。而语言虚拟机可以在编译时期将进程的物理状态转化为逻辑状态,便于控制进程迁移的粒度并实现跨平台迁移,因此,研究基于进程迁移的语言虚拟机具有重要意义。基于进程迁移的语言虚拟机LAOVM实现了应用程序在不同平台上的透明移植性。LAOVM的主要功能模块包括前端汇编器,后端执行器和进程迁移机制。LAOVM通过自定义的虚拟指令集,一方面可以尽量贴近不同体系机构的指令集,提供映射到本地代码的基础;另一方面为前端支持不同程序语言提供了中间表达形式。LAOVM的前端汇编器将虚拟指令汇编成可执行目标代码,进程的物理状态转化为独立于操作系统的逻辑状态,便于实现进程迁移的平台无关性。LAOVM的后端执行器模拟系统调用,为目标代码提供执行环境,通过跟踪调试监控和分析目标代码的执行状况。由于LAOVM中迁移进程的粒度比系统级的迁移粒度小,其进程迁移机制采用stop-and-copy策略,在生成进程检查点之后,可以保存程序执行状态或者迁移到其他主机上,然后在本地或者其他主机上恢复程序执行状态。总之,LAOVM的目标是通过前端编译支持、后端虚拟机支持以及进程迁移策略,实现跨平台的、支持不同程序语言的细粒度进程迁移。基于Windows操作系统和Visual Studio平台,采用C、C++语言实现了LAOVM。系统测试和结果分析表明:LAOVM实现了预定功能;在局域网内进行进程迁移时,即使在内存映像达到百兆的情况下,宕机时间保持在0.5秒左右,对于时间不敏感的程序可以忽略;系统吞吐率只与网络环境有关,而不会随着内存映像的增大而变化。

黄良良[10]2010年在《基于VMX虚拟机的安全通信机制研究》文中研究说明随着硬件技术的进步,虚拟化技术在部件、系统及应用级取得了全面发展。2005年后,Intel和AMD公司分别发布了各自的硬件虚拟化技术方案,在提高了虚拟机环境下CPU和Memory性能的同时,将虚拟化扩散到各种私有操作系统中,更加速了虚拟化技术的发展。虚拟化技术在高速发展中给人们带来便利的同时也存在一些自身的安全问题。目前的Xen虚拟机中已经初步实现了一些安全机制,包括Xen访问控制模块ACM和虚拟化可信平台模块vTPM。但这并不能解决所有的虚拟化安全问题,还有些问题包括虚拟机域间网络通信、内存共享和事件通道都没有很好的安全机制进行控制。本文分析了VMX虚拟机技术的相关原理,重点分析了VMX虚拟机通信相关的技术。并在此基础上提出了VMX虚拟机安全通信框架,重点研究并实现了VMX虚拟机安全通信机制,提高了VMX虚拟机虚拟域间通信的安全性。本文的主要工作和创新点如下:首先,分析了虚拟化相关技术和网络安全机制。包括:Intel VT-x技术、Xend守护进程、事件通道、内存管理和虚拟网卡等。其次,提出了VMX虚拟机安全通信框架。本文提出的安全通信框架将VMX虚拟机的客户虚拟域分为内部网虚拟域和隔离区虚拟域两种,并在这些虚拟域通信的关键路径上设置身份认证和安全检查模块进行控制。最后,研究并实现了VMX虚拟机安全通信机制。该安全通信机制主要有虚拟化安全服务器、身份认证模块和安全检查模块叁个主要的功能模块。其中虚拟化安全服务器负责虚拟域管理、安全策略管理和安全判定等实现安全控制的核心功能,是安全通信系统的核心模块;身份认证模块负责在进行通信前双方虚拟域身份的认定,身份认证是实现安全通信的基础;安全检查模块在VMX虚拟机通信的关键路径上插入了一系列安全钩子函数进行检查,从而实现对系统虚拟域通信的安全控制。

参考文献:

[1]. 用软件实现局域网中的内存共享[D]. 陈丹丹. 南京航空航天大学. 2002

[2]. 一种透明访问远程内存系统的设计和实现[D]. 邓垚彪. 湖南大学. 2012

[3]. 基于多核CPU的软件无线电平台研发及应用技术研究[D]. 房骥. 北京交通大学. 2013

[4]. 基于网络的GMDSS系统设计与实现[D]. 赵丽. 武汉理工大学. 2008

[5]. 分布环境下虚拟机按需部署关键技术研究[D]. 陈彬. 国防科学技术大学. 2010

[6]. 链路层加密网卡预研与软硬件平台设计[D]. 曹玥. 西安电子科技大学. 2005

[7]. 基于VI的高性能存储网络系统的设计及实现[D]. 叶飞. 华中科技大学. 2006

[8]. 基于RTLinux/Linux的工业以太网实时性研究[D]. 刘昆. 天津大学. 2005

[9]. 基于进程迁移的语言虚拟机研究[D]. 乐一帆. 华中科技大学. 2008

[10]. 基于VMX虚拟机的安全通信机制研究[D]. 黄良良. 解放军信息工程大学. 2010

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

用软件实现局域网中的内存共享
下载Doc文档

猜你喜欢