11.5 媒体服务器的特征和接纳控制
11.5 媒体服务器的特征和接纳控制
随着数字化媒体内容的日益增长,媒体服务器在提供高效、可靠的多媒体数据存储和传输方面发挥着重要作用。媒体服务器的设计和实现面临着独特的挑战,这些挑战主要源于多媒体数据的特性,如大数据量、高数据传输率和对实时性的严格要求。本节将探讨媒体服务器的几个关键特征及其对接纳控制机制的影响。
11.5.1 媒体服务器的特征
1. 多媒体文件的多种媒体性
数字电影或任何多媒体内容通常包含多种媒体类型,如视频、音频(可能有多种语言)、以及不同国家文字的字幕。这些不同类型的媒体数据流在播放时必须保持同步,以提供连贯的观看体验。媒体服务器必须具备同步这些多种媒体数据流的能力,以防止播放过程中的任何不同步现象。
2. 拉型和推型文件服务器
拉型服务器:传统文件服务器采用的模式,用户需要不断发出请求以“拉”取数据。这种模式对于多媒体文件而言可能导致实时性要求难以满足,因为它要求用户以精确的时间间隔发出读取命令,同时要求服务器能及时提供数据。推型服务器:为了解决拉型模式的问题,多媒体(视频)服务器采用了类似录像机的工作方式,即在接收到开始命令后,服务器会定时“推”送数据到客户端。这种方式更适合于处理多媒体数据,因为它能更好地保证数据的连续性和实时性。
3. 多媒体文件的存储空间分配方式
与传统文件系统采用的基于盘块的离散分配方式不同,多媒体文件系统主要采用连续分配方式来存储文件。这是因为多媒体应用需要提供恒定速率的数据流,并能及时检索数据。虽然这种方式可能导致更多的内部和外部磁盘碎片,但它能够以牺牲空间为代价换取时间,从而满足多媒体数据传输的实时性要求。
4. 人机交互性
媒体服务器应支持强大的人机交互功能,允许用户根据个人喜好选择、播放和控制媒体内容。这包括语言选择、字幕切换、暂停/播放、快进/快退等操作。相较于传统电视传输,实现这种交互性的媒体服务器在技术上更为复杂,主要体现在需要为每个用户独立维护一个或多个信道,并能同时支持多用户对多种节目的个性化观看和控制。
接纳控制
媒体服务器的设计必须考虑到如何有效管理和调度资源,以支持上述特征所述的高级功能。接纳控制是媒体服务器用来保证系统资源不会被过度请求的机制,它基于系统的当前负载和可用资源,决定是否接受新的用户请求。这一机制对于保持系统性能和确保所有用户获得满意的服务质量(QoS)至关重要。
在实际应用中,媒体服务器的接纳控制策略需要综合考虑多种因素,如服务器的处理能力、存储空间的分配策略、网络带宽的限制,以及用户的交互需求等,以实现对多媒体数据高效、稳定的管理和传输。
11.5.2 存储器管理中的接纳控制
为了确保软实时(SRT)任务的实时性,存储器管理系统必须能够及时提供数据。这一能力的关键在于确保SRT任务运行所需的数据始终驻留在物理内存中,从而避免因数据不在内存而导致的缺页中断。为此,引入了存储器页面锁定功能,以及存储器代理和控制器的概念,旨在优化存储器的管理和分配,保障任务的实时性。
1. 存储器页面锁定功能
存储器页面锁定是一种避免SRT任务在运行时发生缺页中断的有效方法。通过将任务运行所需的代码和数据锁定在物理内存中,可以确保任务的截止时间得到保障。然而,鉴于物理内存的容量有限且十分宝贵,必须谨慎地管理锁定内存的使用。大多数操作系统规定,只有一部分内存空间(通常是60%~70%)可以分配给SRT任务,以减少对系统综合性能的影响。
2. 存储器代理
存储器代理的引入旨在为每个SRT任务预留必要的存储空间。这一机制类似于处理器资源的预留,通过锁定一定量的内存空间,分为接纳存储空间(已分配给接纳的SRT任务)和可利用存储空间(可供新预留请求使用)两部分。在分配全局预留存储空间时,必须确保为内核和交互式进程保留足够空间,避免这些进程因内存不足而频繁发生页面交换。SRT任务在请求加入系统时,必须向存储器代理申明其所需的内存量。如果请求的存储空间小于或等于可用存储空间,存储器代理则接纳该请求并为之预留存储空间;否则,请求将被拒绝。每个被接纳的SRT任务都会获得一个预留标识符ID,以便存储器控制器的管理和验证。
3. 存储器控制器
存储器控制器负责管理和锁定为SRT任务预留的内存页面,确保CPU能够及时访问到数据。当SRT任务执行时,它会将其预留ID传递给存储器控制器,后者通过预留表验证ID的合法性。验证通过后,控制器为SRT任务分配并锁定相应的存储器,并建立起存储段与任务地址空间之间的映射关系。SRT任务执行完成后,需要向存储器管理程序发出释放请求,包含存储器的钥匙,以便释放所占用的锁定存储空间,并将其返回给存储器代理,以便再次利用。
通过这样的存储器管理和接纳控制策略,可以有效保障SRT任务的实时性,同时合理利用有限的物理内存资源,保持系统的高性能运行。这种方法在多媒体服务器、实时计算系统等场合尤为重要,其中对数据访问的实时性有严格要求。
11.5.3 媒体服务器的接纳控制
媒体服务器的接纳控制是确保服务质量(QoS)的关键机制,特别是在面对多用户请求多媒体数据流时。由于每个数据流都有其定时要求,接纳控制功能的作用是根据特定的算法决定是否接受某个用户对特定数据流的请求,从而保证所有服务请求的实时性。
媒体服务器的服务质量
媒体服务器需提供不同级别的服务质量以满足不同用户需求,通常分为以下三种类型:
确定型保证:提供最高级别的服务质量,确保所有SRT任务的截止时间得到完全保障。实现此类保证需要在接纳控制算法中考虑到系统运行中所有与实时性相关部分的最坏情况,如最长的磁盘寻道时间和旋转延迟时间等。 统计型保证:以较高概率保证SRT任务的截止时间,假定系统运行在一般情况下而非最坏情况,提供的是一种概率上的服务质量保证。 尽力而为型保证:不为SRT任务提供截止时间保障,仅在处理所有确定型和统计型服务后,如果仍有剩余资源,则调度此类任务运行。
接纳控制
接纳控制的条件因服务质量保证的不同而异。基本上,接纳控制需要考虑以下两方面的计算:
服务时间计算:首先计算播放每一帧所需的服务时间,然后计算每个周期内播放一帧时所需的总服务时间。这包括了每个客户端请求的数字电影的帧数据块数Ki,从而处理机需处理K1, K2, ..., Kj, ..., Kn序列中的数据块。 传送速率计算:计算媒体服务器传送每一帧数据所需的时间,以及每个周期内所需的总时间。如果每个周期播放一帧所需的总服务时间大于媒体服务器在相应周期内传送相关数据所需的总时间,则所有任务的实时性得以保证;反之,则不能。
对于确定型和统计型的服务质量保证,计算方法相同,但所使用的参数不同。确定型保证使用的是最坏情况下的参数(例如,最长的磁盘寻道时间),而统计型保证则使用统计参数。
通过这样的接纳控制机制,媒体服务器能够在资源有限的情况下,有效地管理并满足多用户的多媒体数据流请求,同时保证各种服务质量要求得到满足。这对于维持高客户满意度和优化服务器性能至关重要。