第一篇:北邮下一代Internet技术与协议实验
实验一实验报告
实验名称 使用网络测试工具测试网络状态 实验目的
1、学习常用网络测试工具的基本功能和使用方法
2、总结并设计使用网络测试工具测试网络状态的方法 实验完成人 实验时间 实验环境 2015 年 1 月 2 日 windows7 系统和虚拟机的 windows XP 系统 实验步骤与结果分析
1、使用 ping 命令测试计算机之间的连通性
(1)ping 127.0.0.1 测试本机的 TCP/IP 协议安装是否正确(2)ping 10.8.10.68(本机 IP)测试网卡和网卡驱动是否连接网络(3)ping 10.8.10.1(网关 IP)测试与网关是否连通正常(4)使用 ping 命令确定北邮 www.xiexiebang.com(维基百科)最大往返延迟为 254ms Ping 德国的某个 IP:62.91.1.1 最大往返时间为 460ms Ping 奥地利某 IP:46.206.1.1 最大往返时间为 2221ms,并且出现了丢包现象(5)当某台计算机无法正常访问远程某网站时,如何使用 ping 命令测试和定位故障的 位置? 第一步,ping 127.0.0.1。该地址是本地循环地址,如果无法 ping 通,表明本地机器 TCP/IP 协议不能正常工作,此时应检查本地的操作系统安装设置。第二步,ping 本地 IP。能 ping 通表明网络适配器工作正常,如果不通查看网线是否 插好,如果还是不通,说明网络适配器出现故障,可尝试更换网卡或驱动程序。第三步,ping 一台同网段计算机的 IP。不通则说明网络线路出现故障,若网络中还 包含路由器,可以先 ping 路由器在本网段端口的 IP,不通则表明此段线路有问题,应 检查网内交换机或网线故障。第四步,ping 默认网关。如果不通,用网线将 PC 机直接连接至路由器,如果能 ping 通,则应检查路由器至交换机的网线故障,如果无法 ping 通,说明路由器出现故障 第五步,ping 一个远程域名。如果不通表明 DNS 服务器的 IP 地址配置不正确或者 DNS 服务器有故障,需要重新设置 DNS。
2、使用 trace route 命令测试计算机之间的路由器
(1)在本地计算机上运行 trace route 程序 在Windows系统中使用Tracert命令。Tracert通过发送小的数据包到目的设备直到其返 回,来测量其需要多长时间。一条路径上的每个设备Traceroute要测3次。输出结果中包 括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。(2)选择本地网络中的一台目标主机,运行traceroute命令
跟踪了本局域网中的一台主机,因为在本网内,不需要经过路由,所以测试了3次的 结果往返均小于1毫秒。同时输出了跟踪的目的主机的名称和IP。
跟踪了一个不在同一个局域网内的主机,通过30个跃点进行跟踪,但是只有到源主机网 关的路径测出了时间。可能目标主机的网络存在问题或者开了防火墙。的一台目标主机,运行traceroute命令
3)选择本市内其他高校(跟踪北京大学网站,通过30个跃点进行跟踪,但是大部分请求超时了,没有最终跟踪到 目的主机。(4)选择国内其他省的一台目标主机,运行traceroute命令 跟踪上海交通大学网站,最多通过30个跃点进行跟踪,在第23次时成功跟踪到了上海交 通大学首页的IP地址,因此跟踪完成并终止了。分析:Tracert 提取发 ICMP TTL 到期消息设备的 IP 地址并作域名解析。每次,Tracert 都打印出一系列数据,包括所经过的路由设备的域名及 IP 地址,三个包每次来回 所花时间。Tracert 有一个固定的时间等待响应(ICMP TTL 到期消息),一般是4s。如果 这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的 时间内发出 ICMP TTL 到期消息的响应。然后,Tracert 给 TTL 记数器加1,继续进行上 述过程。
(5)不同时间重复执行(2)-(4),观察并分析结果,得出的结论为: 在不同时间跟踪北京大学首页结果如下 在不同时间跟踪上海交通大学首页结果如下: 通过不同时间的跟踪对比可以看出不同时间,网络状况不同,路由器选择的路径有个别 不同,但绝大多数路径是相同的,差异比较大的是向同一目标发送数据包的往返时间。
3、使用IPconfig命令获取主机和网络信息
(1)弄清楚如何在本地计算机上运行Ipconfig程序 使用IPconfig命令为每个已经配置了的接口显示IP地址,子网掩码和缺省网关值。使用IPconfig/all命令为DNS和WINS服务器显示已配置且所要使用的附加信息,并 且显示内置于本地网卡中的MAC地址 使用IPconfig/release将所有接口的租用IP地址重新归还给DHCP服务器。使用IPconfig/renew命令可以与DHCP服务器取得联系并且租用一个IP地址(2)使用Ipconfig命令获取本机的IP地址和子网掩码以及默认网关信息(2)使用Ipconfig/all命令获取本机的MAC地址 本机无线网卡的MAC地址为:5C-AC-4C-53-92-EB 本机有线网卡的MAC地址为:F0-4D-A2-8F-D4-96(3)向DHCP服务器归还IP地址并重新申请分配一个新的IP地址,比较新分配的地址与 原地址并分析解释原因 向DHCP服务器归还了IP地址后IPv4地址信息以及连接特定的DNS后缀没有了。当重新向DHCP申请IP地址后,申请的地址与原来的IP地址相同 分析与思考
(1)使用网络测试工具能做些什么事情?
Ping 命令可以测试本机的 TCP/IP 协议的正确性,测试本地连接是否是连接上的,还可以测试网络是否通畅。如果网络不通或者无法访问某网站,可以使用 ping 命令测试 和定位故障位置。Traceroute 命令可以跟踪两台指定主机之间的路由器等信息,并且测试网络状况,获得比 ping 命令更加详细的信息,包括数据包所走的路径,节点 IP 以及往返时间。使用 IPconfig 命令可以获取主机 IPv6 地址,IPv4 地址,子网掩码,默认网关,物 理地址等详细信息。还可以向 DHCP 服务器归还或者申请 IP 地址。(2)上网搜索还有哪些网络测试工具?它们各有什么应用特点?
netstat 命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有 哪些网络连接正在运作。使用时如果不带参数,netstat 显示活动的 TCP 连接。命令的一般格式为:netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval] 命令中各选项的含义如下:-a 显示所有 socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息,格式“netstat-i”。-n 以网络 IP 地址代替名称,显示出网络连接情形。-r 显示核心路由表,格式同“route-e”。-t 显示 TCP 协议的连接情况-u 显示 UDP 协议的连接情况。-v 显示正在进行的工作。(3)ICMP协议是因特网与IP协议配合使用的,其具有灵活和强大的系统间 调整和差错报告功能,你能够参照 ping和 traceroute的设计思路也基于 ICMP 协议设计1-2个简单实用的网络测试命令吗?
可以设计一个类似于tracert的命令,但是不仅在ICMP有效期内返回目的主机或者网 关的IP信息,在访问超时后也能向源主机发送超时目标网关的IP信息,让源主机知道是 在哪一点跟踪失败了。(4)当某主机与网络的连接出现故障时,你会如何检测故障?请设计出使用 网络命令检测和获取网络状态和相关参数的方法并设计验证一下你的方法 的可行性。使用 ping 命令验证,首先 ping 127.0.0.1,然后 ping 本地 IP。不能 ping 通表明网 络适配器工作异常。第三步,ping 一台同网段计算机的 IP,不通则说明网络线路出现故 障。第四步,ping 默认网关,不通说明路由器出现故障。最后,ping 一个远程域名。如 果不通表明 DNS 服务器的 IP 地址配置不正确或者 DNS 服务器有故障,需要重新设置 DNS。
第二篇:北邮操作系统第二次实验[模版]
北京邮电大学操作系统实验实验报告
班号:2011211314姓名:oneseven学号:
实验日期: 2013.12.16 实验名称: 操作系统实验
一、实验目的
通过模拟实现内存分配的伙伴算法和请求页式存储管理的几种基本页面置换算法,了解存储技术的特点。掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。
二、实验内容
1.实现一个内存管理的伙伴算法,实现内存块申请时的分配和释放后的回收。
实验准备
用随机函数仿真进程进行内存申请,并且以较为随机的次序进行释放。对其碎片进行统计,当申请分配内存失败时区分实际空间不足和由于碎片而不能满足。
2.设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。
1)最佳置换算法(Optimal)
2)先进先出法(Fisrt In First Out)
3)最近最久未使用(Least Recently Used)4)最不经常使用法(Least Frequently Used)
其中,命中率=1-页面失效次数/页地址流长度。试对上述算法的性能加以较各:页面个数和命中率间的关系;同样情况下的命中率比较。
实验准备
本实验中主要的流程:首先用srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。
实验可先从一个具体的例子出发。
(1)通过随机数产生一个指令序列,共2048条指令。指令的地址按下述原则生成: A:50%的指令是顺序执行的
B:25%的指令是均匀分布在前地址部分 C:25%的指令是均匀分布在后地址部分 具体的实施方法是:
A:在[0,1023]的指令地址之间随机选取一起点m B:顺序执行一条指令,即执行地址为m+1的指令
C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’ D:顺序执行一条指令,其地址为m’+1 E:在后地址[m’+2,2047]中随机选取一条指令并执行 F:重复步骤A-E,直到2048次指令(2)将指令序列变换为页地址流 设:页面大小为4K;
用户内存容量4页到32页; 用户虚存容量为32K。
在用户虚存中,按每K存放64条指令排列虚存地址,即2048条指令在虚存中的存放方式为:
第 0 条-第 63 条指令为第0页(对应虚存地址为[0,63])第64条-第127条指令为第1页(对应虚存地址为[64,127])
………………………………
-1- 第1984条-第2047条指令为第31页(对应虚存地址为[1984,2047])按以上方式,用户指令可组成32页。
以此为基础,给出较为一般的情形:仿真内存容量和虚存容量参数变化时的情形。
3.实现内存的slab分配器:
其基本思想是:一次向内核获取整数页,slab根据数据结构的大小进行划分为一个个小的数据结构,当需要时直接从该链表上摘取一个返回应用程序,当应用程序释放时,而非真正释放,只需要该空间放回到链表中,当分散的一页多块又聚集一页时,又会拼成一页,同时判断slab空闲的页数,如果空闲页超过一定的页数,就会向系统释放一定的页数。一个slab分配器只能管理一个指定大小的数据结构分配。
三、项目要求及分析
3.1实现一个内存管理的伙伴算法,实现内存块申请时的分配和释放后的回收。假设系统的可利用内存空间容量为2m个字(地址从0到2m-1),则在开始运行时,整个内存区是一个大小为2m的空闲块,在运行了一段时间之后,被分隔成若干占用块和空闲块。为了在分配时查找方便起见,我们将所有大小相同的空闲块建于一张子表中。每个子表是一个双重链表,这样的链表可能有m+1个,将这m+1个表头指针用向量结构组织成一个表,这就是伙伴系统中的可利用空间表,如图所示:
分配算法:
当用户提出大小为n的内存请求时,首先在可利用表上寻找结点大小与n相匹配的子表,若此子表非空,则将子表中任意一个结点分配之即可;若此子表为空,则需从结点更大的非空子表中去查找,直至找到一个空闲块,则将其中一部分分配给用户,而将剩余部分插入相应的子表中。
若2k-1 < n ≤ 2k-1,又第k+1个子表不空,则只要删除此链表中第一个结点并分配给用户即可;若 2k-2 < n ≤ 2k-1-1,此时由于结点大小为2k-1 的子表为空,则需从结点大小为2k 的子表中取出一块,将其中一半分配给用户,剩余的一半作为一个新结点插入在结点大小为2k-1的子表中,若2k-i-1 < n ≤ 2k-i-1(i为小于是的整数),并且所有结点小于2k的子表均为空,则同样需从结点大小为2k的子表中取出一块,将其中2k-i的一小部分分配给用户,剩余部分分割成若干个结点分别插入在结点大小为2k-1、2k-
2、…、2k-i的子表中。回收算法:
在用户释放不再使用的占用块时,系统需将这新的空闲块插入到可利用空间表中去。这里,同样有一个地址相邻的空闲块归并成大块的问题。但是在伙伴系统中仅考虑互为“伙伴”的两个空闲块的归并。
何谓“伙伴”?如前所述,在分配时经常需要将一个大的空闲块分裂成两个大小相等的存
-2- 储区,这两个由同一大块分裂出来的小块就称之“互为伙伴”。例如:假设p为大小为pow(2,k)的空闲块的初始地址,且p MOD pow(2,k+1)=0,则初始地址为p和p+pow(2,k)的两个空闲块互为伙伴。在伙伴系统中回收空闲块时,只当其伙伴为空闲块时才归并成大块。也就是说,若有两个空闲块,即使大小相同且地址相邻,但不是由同一大块分裂出来的,也不归并在一起。
由此,在回收空闲块时,应首先判别其伙伴是否为空闲块,若否,则只要将释放的空闲块简单插入在相应子表中即可;若是,则需在相应子表中找到其伙伴并删除之,然后再判别合并后的空闲块的伙伴是否是空闲块。依此重复,直到归并所得空闲块的伙伴不是空闲块时,再插入到相应的子表中去。
3.2.设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。
页式虚拟存储器实现的一个难点是设计页面调度(置换)算法,即将新页面调入内存时,如果内存中所有的物理页都已经分配出去,就要按某种策略来废弃某个页面,将其所占据的物理页释放出来,供新页面使用。页面替换算法主要用于如下几个地方:
(1)虚拟存储器中,主存页面(或程序段)的替换。
(2)Cache中的块替换。
(3)虚拟存储器的快慢表中,快表的替换。
(4)虚拟存储器中,用户基地址寄存器的替换。
在虚拟存储器中常用的页面替换算法有如下几种:
(1)最优替换算法,即OPT算法(OPTimal replacement algorithm)。上面介绍的几种页面替换算法主要是以主存储器中页面调度情况的历史信息为依据的,它假设将来主存储器中的页面调度情况与过去一段时间内主存储器中的页面调度情况是相同的。显然,这种假设不总是正确的。最好的算法应该是选择将来最久不被访问的页面作为被替换的页面,这种替换算法的命中率一定是最高的,它就是最优替换算法。
要实现OPT算法,唯一的办法是让程序先执行一遍,记录下实际的页地址流情况。根据这个页地址流才能找出当前要被替换的页面。显然,这样做是不现实的。因此,OPT算法只是一种理想化的算法,然而,它也是一种很有用的算法。实际上,经常把这种算法用来作为评价其它页面替换算法好坏的标准。在其它条件相同的情况下,哪一种页面替换算法的命中率与OPT算法最接近,那么,它就是一种比较好的页面替换算法。(2)先进先出算法,即FIFO算法(First-In First-Out algorithm)。这种算法选择最先调入主存储器的页面作为被替换的页面。它的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,没有反映程序的局部性。因为最先调入主存的页面,很可能也是经常要使用的页面。
(3)最久没有使用算法,即LRU算法(Least Recently Used algorithm)。这种算法把近期最久没有被访问过的页面作为被替换的页面。它把LFU算法中要记录数量上的“多”与“少”简化成判断“有”与“无”,因此,实现起来比较容易。
(4)近期最少使用算法,即LFU算法(Least Frequently Used algorithm)。这种算法选择近期最少访问的页面作为被替换的页面。显然,这是一种非常合理的算法,因为到目前为止最少使用的页面,很可能也是将来最少访问的页面。该算法既充分利用了主存中页面调度情况的历史信息,又正确反映了程序的局部性。但是,这种算法实现起来非常困难,它要为每个页面设置一个很长的计数器,并且要选择一个固定的时钟为每个计数器定时计数。在选择被替换页面时,要从所有计数器中找出一个计数值最大的计数器。因此,通常采用如下一种相 -3- 对比较简单的方法。
3.3实现内存的slab分配器
slab描述符和空闲对象管理部分成为 slab的管理部分,也可以称为slab头
slab的头可以放在slab自身,也可以放在 slab 之外。如果slab头放在了slab 之外,那么用户申请obj时,需要首先访问 slab头,slab头提供未使用free obj的指针
然后再访问这个free obj的地址。完成这项工作需要访问2个页块。会带来效率上的损失。slab头始终位于slab 也存在问题,比如一个页面只有4K,objsize = 2K,那么slab 头在slab 上,就意味着,这个4K的页面只能够分配一个obj。造成了内存的浪费。
如果 页数太少,存放的 obj个数少,那么 增加管理开销,同时 内存使用率低,如果页数太多对伙伴内存系统不好,所以需要一定的策略妥协。
这个妥协过程是有calculate_slab_order 这个函数来实现的。从 0阶(即一页)到kmalloc的最高阶 KMALLOC_MAX_ORDER,挨个尝试,由cache_estimate这个函数计算 如果选用order 阶,那么能分配 多少个 obj(num),剩余空间是多少(remainder)。所谓剩余空间,就是除去slab头(如果有的话),除去 obj*num,剩下的边角料空间是多少。需要分成两种情况去计算,分成两种情况的原因,很快就能看到 A)slab头不在slab上,即 flag & CFLGS_OFF_SLAB == 1的时候 这种情况比较简单,由于管理数据完全不在slab 上,size_tslab_size = PAGE_SIZE < 换句话,slab头的大小取决于obj的个数,obj的个数取决于 slab头的大小,四、具体实现 4.1实现一个内存管理的伙伴算法,实现内存块申请时的分配和释放后的回收。 程序: #include #define MIN_MOMORY_SIZE 536870912 //随机产生的最小内存空间 #define WORKTIME 1500 //系统工作时间 #define MAX_REQ_SIZE 268435456 //申请空闲内存分配的最大容量:256M #define MIN_DUE 30 //使用内存块的最短时间 #define MAX_DUE 90 //使用内存块的最长时间 #define OCCUPY_INTERVAL 60 //每次分配的最大间隔 #define USED 1 //内存块被使用 #define UNUSED 0 //内存块未被使用 //内存块链表结点结构 typedefstructbuddy_node { int flag; //标记空间是否被使用 -4- int base; //本块儿内存的基地址 int occupy; //实际使用空间大小 int fragment; //碎片大小 intduetime; //使用时间 structbuddy_node *nextPtr; //指向下一个结点 } Buddy, *BuddyPtr; IndexTable table[INDEX_SIZE];//使用哈希表管理伙伴系统 int ready = 0; //需要分配内存的时刻 intavailSpace; //可分配空间大小 inttotalFragment = 0; //总碎片大小 //函数:添加结点(形参为内存块结点的信息) void insert_node(inti, intinbase, int f, intocc, int frag, int d){ BuddyPtrnewnodePtr = NULL, prePtr = NULL, curPtr = NULL; newnodePtr =(BuddyPtr)malloc(sizeof(Buddy));//分配结点 newnodePtr->base = inbase;newnodePtr->flag = f;newnodePtr->occupy = occ;newnodePtr->fragment = frag;newnodePtr->duetime = d;newnodePtr->nextPtr = NULL; if(table[i].headPtr == NULL) table[i].headPtr = newnodePtr; else { curPtr = table[i].headPtr;prePtr = NULL; //按地址顺序插入内存块 while(curPtr&&curPtr->base } if(prePtr == NULL){ //插在最前 newnodePtr->nextPtr = curPtr; table[i].headPtr = newnodePtr; } else if(curPtr == NULL){ //插在最后 prePtr->nextPtr = newnodePtr; } else { //插在中间 prePtr->nextPtr = newnodePtr;newnodePtr->nextPtr = curPtr; -5- } } } //函数:删除结点 intdelete_node(inti, BuddyPtrdelPtr){ BuddyPtrprePtr = NULL, curPtr = NULL;intbasehold = delPtr->base; curPtr = table[i].headPtr; while(curPtr!= delPtr){ //寻找要删除的结点的位置 prePtr = curPtr;curPtr = curPtr->nextPtr; } if(prePtr == NULL) //要删除的结点在最前 table[i].headPtr = curPtr->nextPtr; else //要删除的结点不在链表的最前 prePtr->nextPtr = curPtr->nextPtr; free(curPtr); //释放结点 return basehold; //返回删除的内存块结点的基地址 } //函数:伙伴系统的分配算法 void buddy_allocate(inttime_slice){ inti, j, size, due;int state = 0; //分配状态:0为未分配,1为已分配 intinbase, basehold;BuddyPtrcurPtr = NULL; if(ready == time_slice){ //到达分配内存的时刻 printf(“Time %d:”, time_slice); size = 1 + rand()% MAX_REQ_SIZE; //申请使用内存的大小 due = MIN_DUE + rand()%(MAX_DUEsize;curPtr->duetime = due + ready; //修改可系统分配空间和碎片大小 availSpace-= table[i].nodesize;totalFragment += curPtr->fragment; state = 1;//标记已分配 break; } //空闲块的大小刚大于申请大小的2倍 else { basehold = delete_node(i, curPtr);//删除较大的空闲块并保留其基地址 inbase = basehold + table[i].nodesize; j = i; //分割空闲块 do { j--;inbase-= table[j].nodesize; //设置要添加内存块结点的基地址 insert_node(j, inbase, UNUSED, 0, 0, 0);//添加较小的空闲块 printf(“A block cut takes placen”); } while(table[j].nodesize / size > 1); //分配 insert_node(j, basehold, USED, size, table[j].nodesizesize; state = 1;//标记已分配 } } //块被占用,查看下一结点 else curPtr = curPtr->nextPtr; } } } printf(“Allocated %d,Fragment %d,Due %dn”, size, totalFragment, ready+due); -7- } else if((availSpace< size)&&((availSpace + totalFragment)>= size))printf(“Allocation failed because of fragment!n”); else printf(“Allocation failed because of no enough unused space!n”); ready +=(1 + rand()% OCCUPY_INTERVAL);//下次需要分配内存的时刻 } } //函数:伙伴系统的回收算法 void buddy_retrieve(inttime_slice){ inti, basehold, dif;int f = 0;intModnext=0;BuddyPtrcurPtr = NULL, todelPtr = NULL; //依次查找,并回收需要回收的块 for(i = 0;i< INDEX_SIZE;i ++){ if(table[i].headPtr){ curPtr = table[i].headPtr; while(curPtr){ if((curPtr->flag == USED)&&(curPtr->duetime == time_slice)){//需要回收 //修改可系统分配空间和碎片大小 availSpace += table[i].nodesize;totalFragment-= curPtr->fragment; //回收为空闲块 curPtr->flag = UNUSED;curPtr->occupy = 0;curPtr->fragment = 0;curPtr->duetime = 0;printf(“Time %d:Retrieve %d,Fragment %dn”, time_slice, table[i].nodesize, totalFragment); } curPtr = curPtr->nextPtr; } } } //合并空闲块 for(i = 0;i< INDEX_SIZE;i ++){ if(table[i].headPtr){ -8- curPtr = table[i].headPtr; while(curPtr&&curPtr->nextPtr){ //将地址连续且都为空闲的块合并后加入下一级的链表中 if(curPtr->flag == UNUSED &&(curPtr->nextPtr)->flag == UNUSED){ dif =(curPtr->nextPtr)->base-curPtr->base; Modnext =((int)(curPtr->nextPtr->base))%(2*table[i].nodesize); if((dif == table[i].nodesize)&&(Modnext==0)){ //删除两个结点 todelPtr = curPtr;curPtr = curPtr->nextPtr;basehold = delete_node(i, todelPtr);todelPtr = curPtr;curPtr = curPtr->nextPtr;delete_node(i, todelPtr);insert_node(i+1, basehold, UNUSED, 0, 0, 0);//添加合并后的结点 printf(“Two blocks mergen”); } else curPtr = curPtr->nextPtr; } else curPtr = curPtr->nextPtr; } } } } //函数:伙伴系统的处理过程 void buddy_system(void){ inttime_slice = 0; //在每个时间片内使用分配算法和回收算法 for(;time_slice< WORKTIME;time_slice ++){ buddy_allocate(time_slice); //分配算法 buddy_retrieve(time_slice); //回收算法 } } int main(intargc, char *argv[]){ intmemory_size; -9- ini_index(); //初始化哈希索引表 srand(time(NULL)); //设置随机数种子 //随机产生需要管理的内存大小:512M ~ 1G memory_size = MIN_MOMORY_SIZE + rand()% MIN_MOMORY_SIZE;printf(“The size of memory is:%dn”, memory_size); int_system(memory_size); //初始化伙伴系统 buddy_system(); //伙伴系统的处理过程 printf(“Time %d:System execution stops and the spaces are all freed.n”, WORKTIME); free_system(); //释放所有结点 system(“pause”); return 0;} 4.2.设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。程序: #include //虚页长 #define clear_period 50 //清零周期 typedefstruct { intpn; //页号 intpfn; // 面号 int counter; // 一个周期内访问该页面的次数 int time; // time为访问时间 }pl_type;pl_typepl[total_vp];//页面结构数组 structpfc_struct{ //页面控制结构 intpn,pfn;structpfc_struct *next;};typedefstructpfc_structpfc_type; -10- pfc_typepfc[total_vp],*freepf_head,*busypf_head,*busypf_tail;intdiseffect,a[total_instruction];int page[total_instruction], offset[total_instruction];/* Name: void Lprintf(void) Achieve: 格式控制 */ void Lprintf(void){ inti,j;printf(“|”); for(i = 1;i<=6;i++) { for(j = 1;j<=9;j++)printf(“-”); if(i!=6)printf(“+”); } printf(“|n”); } /* Name: void initialize(inttotal_pf) Achieve:初始化相关数据结构 */ void initialize(inttotal_pf){ inti;diseffect=0; for(i=0;i { pl[i].pn=i;pl[i].pfn=INVALID; //置页面控制结构中的页号,页面为空 pl[i].counter=0;pl[i].time=-1;//页面控制结构中的访问次数为0,时间为-1 } for(i=1;i { pfc[i-1 ].next=&pfc[i];pfc[i-1].pfn=i-1;//建立pfc[i-1]和pfc[i]之间的连接 } pfc[total_pf-1].next=NUL;pfc[total_pf-1].pfn=total_pf-1; freepf_head=&pfc[0]; //页面队列的头指针为pfc[0] } /* -11- Name:void FIFO(inttotal_pf) Achieve:先进先出法(Fisrt In First Out)*/ void FIFO(inttotal_pf){ inti,j;pfc_type *p;//中间变量 initialize(total_pf);//初始化相关页面控制用数据结构 busypf_head=busypf_tail=NULL;//忙页面队列头,队列尾链接 for(i=0;i if(pl[page[i]].pfn==INVALID) //页面失效 { diseffect+=1;//失效次数 if(freepf_head==NULL)//无空闲页面 { p=busypf_head->next; pl[busypf_head->pn].pfn=INVALID; freepf_head=busypf_head;//释放忙页面队列的第一个页面 freepf_head->next=NULL;//表明还是缺页*/ busypf_head=p; } p=freepf_head->next; freepf_head->pn=page[i]; pl[page[i]].pfn=freepf_head->pfn; freepf_head->next=NULL;//使busy的尾为null if(busypf_tail==NULL) { busypf_tail=busypf_head=freepf_head; } else { busypf_tail->next=freepf_head; busypf_tail=freepf_head; } freepf_head=p; } } printf(“%6.3f”,1-(float)diseffect/320);} /* Name: void LRU(inttotal_pf) Achieve: 最近最久未使用(Least Recently Used)*/ -12- void LRU(inttotal_pf){ intmin,minj,i,j,present_time;//minj为最小值下标 initialize(total_pf);present_time=0;for(i=0;i if(pl[page[i]].pfn==INVALID)//页面失效 { diseffect++; if(freepf_head==NULL)//无空闲页面 { min=32767;//设置最大值 for(j=0;j { if(min>pl[j].time&&pl[j].pfn!=INVALID) { min=pl[j].time; minj=j; } } freepf_head=&pfc[pl[minj].pfn]; //空出一个单元 pl[minj].pfn=INVALID; pl[minj].time=0; freepf_head->next=NULL; } pl[page[i]].pfn=freepf_head->pfn;//有空闲页面,改为有效 pl[page[i]].time=present_time; freepf_head=freepf_head->next;//减少一个free 页面 } else { pl[page[i]].time=present_time;//命中则增加该单元的访问次数 present_time++; } } printf(“%6.3f”,1-(float)diseffect/320);} /* Name:void OPT(inttotal_pf) Achieve:最佳置换算法(Optimal)*/ void OPT(inttotal_pf){ -13- inti,j, max,maxpage,d,dist[total_vp];pfc_type *t;initialize(total_pf);for(i=0;i if(pl[page[i]].pfn==INVALID) /*页面失效*/ { diseffect++; if(freepf_head==NULL) /*无空闲页面*/ { for(j=0;j { if(pl[j].pfn!=INVALID) dist[j]=32767; else dist[j]=0; } for(j=0;j { if((pl[j].pfn!=INVALID)&&(dist[j]==32767)) { dist[j]=j; } } max=0; for(j=0;j if(max { max=dist[j]; maxpage=j; } freepf_head=&pfc[pl[maxpage].pfn]; freepf_head->next=NULL; pl[maxpage].pfn=INVALID; } pl[page[i]].pfn=freepf_head->pfn; freepf_head=freepf_head->next; } } printf(“%6.3f”,1-(float)diseffect/320);} /* Name: vodi LFU(inttotal_pf) Achieve:最不经常使用法(Least Frequently Used) -14- */ void LFU(inttotal_pf) { inti,j,min,minpage;pfc_type *t;initialize(total_pf);for(i=0;i if(pl[page[i]].pfn==INVALID)//页面失效 { diseffect++; if(freepf_head==NULL)//无空闲页面 { min=32767; //获取counter的使用用频率最小的内存 for(j=0;j { if(min>pl[j].counter&&pl[j].pfn!=INVALID) { min=pl[j].counter; minpage=j; } } freepf_head=&pfc[pl[minpage].pfn]; pl[minpage].pfn=INVALID; pl[minpage].counter=0; freepf_head->next=NULL; } pl[page[i]].pfn=freepf_head->pfn;//有空闲页面,改为有效 pl[page[i]].counter++; freepf_head=freepf_head->next;//减少一个free 页面 } else { pl[page[i]].counter; pl[page[i]].counter=pl[page[i]].counter+1; } } printf(“%6.3f”,1-(float)diseffect/320);} int main(int){ intS,i; -15- srand((int)getpid()); for(i=0;i { S=(int)rand()%320; a[i]=S; //任选一指令访问点 a[i+1]=a[i]+1;//顺序执行一条指令 a[i+2]=(int)rand()%a[i+1];//执行前地址指令m' a[i+3]=a[i+2]+1;//顺序执行一条指令 a[i+4]=(int)rand()%(319-a[i+2]-1)+a[i+2]+2;//执行后地址指令 } for(i=0;i { page[i]=a[i]/10; offset[i]=a[i]%10;} printf(“FrametOPTtFIFOtLRUtLFU n”);for(i=4;i<=32;i++)//用户内存工作区从4个页面到32个页面 { printf(“%dt”,i);OPT(i);printf(“t”); FIFO(i);printf(“t”); LRU(i); printf(“t”); LFU(i); printf(“n”);} system(“pause”);return 0;} 4.3 实现内存的slab分配器 程序: #include -17- } 五、调试运行结果 -18- 5.1 实现一个内存管理的伙伴算法 5.2设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。 -19- 5.3 实现内存的slab分配器 六、所遇问题及解决方法 1.在写第一个程序的时候,对树的合并在之前的学习中,有比较多的学习,数据结构中此程序有详细的介绍,因此在编写这个程序的时候,比较顺利的完成了要求。但要求中需要产生一些随机的数据,重新对随机仿真函数进行回顾,最后较为顺利的完成了程序。2.第二个程序,要求随机产生一些数据,对srand()和rand()函数定义和产生指令序列,在进一步的学习中,完成了这些函数,仿真内存容量和虚存容量参数变化时的情形,对此不太熟悉,四个算法对要求较高,在完成算法的学习后,完成了程序。 3.第三个程序因不太理解其要求,上网搜寻了一些代码,但对其最后的结果依然没有得出,为此询问了同学,但不知是否正确。 -20- 微波仿真实验报告 学 院:电子工程学院 班 级 学 号: 姓 名: 班内序号: 微波仿真课作业1 1.了解ADS Schematic的使用和设置 2.在Schematic里,分别仿真理想电容20pF和理想电感5nH,仿真频率为(1Hz-100GHz),观察仿真结果,并分析原因。20pF理想电容 仿真图 原因分析:史密斯原图下半部分是容性,随频率增加,电容由开路点变到短路点,通高频,阻低频。5nH理想电感 仿真图 原因分析:史密斯原图上半部分是感性,随频率增加,电容由短路点变到开路点,阻高频,通低频。 3. Linecalc的使用 a)计算中心频率1GHz时,FR4基片的50Ω微带线的宽度 宽度为:2.9112mm b)计算中心频率1GHz时,FR4基片的50Ω共面波导(CPW)的横截面尺寸(中心信号线宽度与接地板之间的距离) 横截面尺寸为:W=171.355mm,G=5mm,L=63.5mm 4.基于FR4基板,仿真一段特性阻抗为50Ω四分之一波长开路CPW线的性能参数,中心工作频率为1GHz。仿真频段(500MHz-3GHz),观察Smith圆图变化,分析原因。 仿真图 仿真图分析: 1、1GHz时,为四分之一波长,开路阻抗变换后变为短路,2GHz时为二分之一波长,所以仍为开路; 2、由于损耗,因此反射系数变小,所以等反射系数圆的半径也在变小。 5.基于FR4基板,仿真一段特性阻抗为50Ω四分之一波长短路CPW线的性能参数,中心工作频率为1GHz。仿真频段(500MHz-3GHz),观察Smith圆图变化,分别求出500MHz和2GHz的输入阻抗,分析变化原因。 仿真图 仿真图分析: 1、1GHz时,为四分之一波长,短路阻抗变换后变为开路,2GHz时为二分之一波长,所以仍为短路; 2、由于损耗,因此反射系数变小,所以等反射系数圆的半径也在变小。分别求出500MHz和2GHz的输入阻抗: 500MHz:Z0*(0.003+j0.001)2GHz:Z0*(0.012-j0.005) 6.分别用理想传输线和在FR4基片上的微带传输线,仿真一段特性阻抗为50Ω四分之一波长开路线的性能参数,工作频率为1GHz。仿真频段(500MHz-3GHz),观察Smith圆图变化,分别求出500MHz和2GHz的输入阻抗,分析变化原因。 仿真图 分别求出500MHz和2GHz的输入阻抗: 微带线 500MHz:Z0*(0.003-j0.992)2GHz:Z0*(32.830-j1.603)理想传输线 500MHz:Z0*(1.000E-10-j1.000)2GHz:Z0*(2.000E10-j2.000E5) 分析:因为相对于理想传输线,微带线有损耗产生误差,反射系数一直变小。 扩展仿真频率(500MHz-50GHz),分析曲线变化原因。 分析:对于理想传输线,反射系数不变,而对于微带线,由于存在损耗,反射系数会一直变小,因此其反射系数圆的半径在一直变小。 7.分别用理想传输线和在FR4基片上的微带传输线,仿真一段特性阻抗为50Ω四分之一波长短路线的性能参数,工作频率为1GHz。仿真频段(500MHz-3GHz),观察Smith圆图变化,分别求出500MHz和2GHz的输入阻抗,分析变化原因。 仿真图 分别求出500MHz和2GHz的输入阻抗: 微带线 500MHz:Z0*(0.009+j1.003)2GHz:Z0*(0.031+j0.002)理想传输线 500MHz:Z0*(5.551E-17+j1.000)2GHz:Z0*(8.284E-18-j1.000E-5) 分析:因为相对于理想传输线,微带线有损耗产生误差,反射系数一直变小。 扩展仿真频率(500MHz-50GHz),分析曲线变化原因。 分析:对于理想传输线,反射系数不变,而对于微带线,由于存在损耗,反射系数会一直变小,因此其反射系数圆的半径在一直变小。 8.分别用理想传输线和在FR4基片上的微带传输线,仿真一段特性阻抗为50Ω二分之一波长开路线的性能参数,工作频率为1GHz。仿真频段(500MHz-3GHz),观察Smith圆图变化,分别求出500MHz和2GHz的输入阻抗,分析变化原因。 仿真图 分别求出500MHz和2GHz的输入阻抗: 微带线 500MHz:Z0*(0.016+j0.006)2GHz:Z0*(16.430-j0.798)理想传输线 500MHz:Z0*(5.000E-11-j6.123E-17)2GHz:Z0*(2.000E10-j2.000E5) 分析:因为相对于理想传输线,微带线有损耗产生误差,反射系数一直变小。扩展仿真频率(500MHz-50GHz),分析曲线变化原因。 分析:对于理想传输线,反射系数不变,而对于微带线,由于存在损耗,反射系数会一直变小,因此其反射系数圆的半径在一直变小。 9.分别用理想传输线和在FR4基片上的微带传输线,仿真一段特性阻抗为50Ω二分之一波长短路线的性能参数,工作频率为1GHz。仿真频段(500MHz-3GHz),观察Smith圆图变化,分别求出500MHz和2GHz的输入阻抗,分析变化原因。 仿真图 分别求出500MHz和2GHz的输入阻抗: 微带线 500MHz:Z0*(55.044-j19.301)2GHz:Z0*(0.061+j0.004)理想传输线 500MHz:Z0*(-1.000+j1.633E16)2GHz:Z0*(8.284E-18-j1.000E-5) 分析:因为相对于理想传输线,微带线有损耗产生误差,反射系数一直变小。 扩展仿真频率(500MHz-50GHz),分析曲线变化原因。 分析:对于理想传输线,反射系数不变,而对于微带线,由于存在损耗,反射系数会一直变小,因此其反射系数圆的半径在一直变小。微波测量实验中测得的几个史密斯圆图 四分之一开路微带线 四分之一短路微带线 二分之一开路微带线 二分之一短路微带线 微波仿真课作业2 1. 用一段理想四分之一波长阻抗变换器匹配10欧姆到50欧姆,仿真S参数,给出-20dB带宽特性,工作频率为1GHz。计算得,22.36欧姆 仿真S参数 计算分析:由图计算-20dB带宽为 1071-929=142MHz;且如仿真图所示,在1GHz处回波损耗最低,实现阻抗匹配。2. 用一段FR4基片上四分之一波长阻抗变换器匹配10欧姆到50欧姆,仿真S参数,给出-20dB带宽特性,工作频率为1GHz,比较分析题1和题2的结果。 仿真S参数 由图计算-20dB带宽为1065-921=144MHz。 比较分析题1和题2的结果 分析,微带线与理想传输线之间有一定的误差: 1、如图所示可以看出微带线情况下,回波损耗最低点稍微偏离1GHz; 2、-20dB带宽为144MHz大于理想传输线时的142MHz; 3、1GHz阻抗匹配时,微带线时的回波损耗大于理想传输线。 3. 设计一个3节二项式匹配变换器,用于匹配10欧姆到50欧姆的传输线,中心频率是1GHz,该电路在FR4基片上用微带线实现,设计这个匹配变换器并计算 m0.1的带宽,给出回波损耗和插入损耗与频率的关系曲线,比较分析题2和题3的结果。 根据所学的理论知识,先依题意算出三节匹配微带线的阻抗值,然后通过LineCalc计算出相应微带线的长和宽,修改电路图中MLIN的相关参数。 Z1=40.89Ω W=4.198480mm L=40.404500mm Z2=22.36Ω W=9.620970mm L=38.833700mm Z3=12.23Ω W=19.83080mm L=37.648400mm 插入损耗 m0.1的带宽,即为-20dB带宽,由图计算得1325-680=645MHz; 比较分析题2和题3的结果,3节二项式匹配变换器匹配误差更大: 1、如图所示可以看出3节二项式匹配变换器匹配时回波损耗最低点明显偏离1GHz; 2、-20dB带宽为645MHz大于微带线情况; 3、但1GHz阻抗匹配时,3节二项式匹配变换器时的回波损耗小于微带线情况。 4. 题3中,若用3节切比雪夫匹配变换器实现,比较同样情况下的带宽,回波损耗和插入损耗与频率的关系曲线,比较分析题3和题4结果。 根据所学的知识可以计算出切比雪夫变换器匹配的三个微带线的阻抗,然后通过LineCalc计算出相应微带线的长和宽,修改电路图中MLIN的相关参数。Z1=35.94Ω W=4.948710mm L=40.0910mm Z2=22.11Ω W=9.6519mm L=38.8278mm Z3=13.55Ω W=17.57710mm L=37.8241mm 仿真图 插入损耗 m0.1的带宽,即为-20dB带宽,由图计算得1485-534=951MHz; 比较分析题3和题4的结果,即二项式匹配变换器与切比雪夫匹配变换器: 1、切比雪夫匹配变换器的带宽显著增加; 2、切比雪夫匹配变换器回波损耗具有等波纹特性; 3、两者的插入损耗差别不明显。 5. 对于一个负载阻抗ZL=60-j80欧姆,利用Smith Chart Utility功能,分别设计并联短路单枝节和并联开路单枝节匹配,并将Smith Chart Utility给出的匹配结果在Schematic中仿真,给出1-3GHz的回波损耗与频率的关系曲线,并给出m0.1的带宽。并联短路单枝节 计算并联短路单枝节-20dB带宽:1053-952=101MHz 并联开路单枝节 计算并联开路单枝节-20dB带宽:1023-975=48MHz 6. 并联双枝节匹配电路,并联双枝节为开路,枝节之间相距λ/8,中心工作频率为2GHz,利用理想传输线,给出1-3GHz的回波损耗与频率的关系曲线,并给出m0.1的带宽。并联双枝节, 枝节之间相距λ/8,中心工作频率为2GHz 仿真 如图在2GHz匹配 计算-20dB带宽:2012-1988=24MHz 北邮《多媒体技术与应用》 期末考试知识点复习 什么是多媒体技术?简述其主要特点。 多媒体技术就是计算机交互式综合处理多种媒体信息──文本、图形、图象和声音,使多种信息建立逻辑连接,集成为一个系统并具有交互性。特点: 1.集成性:媒体信息即声音、文字、图象、视频等的集成。显示或表现媒体设备的集成,即多媒体系统一般不仅包括了计算机本身而且还包括了象电视、音响、录相机、激光唱机等设备。 2.实时性:多媒体系统中声音及活动的视频图象,动画等媒体是强实时的。多媒体系统提供了对这些时基媒体实时处理的能力。 3.交互性:多媒体计算机与其它象电视机、激光唱机等家用声像电器有所差别的关键特征。普通家用声像电器无交互性,即用户只能被动收看,而不能介入到媒体的加工和处理之中。 多媒体技术发展经历了哪几个阶段?其研究意义如何? 三个阶段:启蒙发展阶段(80’),标准化阶段(90-),应用普及(2000-)研究意义:从人类历史发展的角度看,人人之间的交流手段是推动社会发展的一个重要因素。多媒体技术的引入提高了工作效率,多媒体技术不仅是时代的产物,也是人类历史发展的必然。从计算机发展的角度看,用户和计算机的交互技术一直是推动计算机技术发展的重要动因。多媒体技术将文字、声音、图形、图象集成为一体,获取、存储、加工、处理、传输一体化,使人机交互达到了最佳的效果。 多媒体技术的研究内容主要有哪些方面? 数据编码、压缩/解压算法与标准 多媒体数据存储技术 多媒体计算机系统硬件与软件平台 多媒体系统软件开发环境 多媒体数据库与基于内容的检索 超文本和Web技术 多媒体系统数据模型 多媒体通信与分布式多媒体系统 媒体分为哪几类?简述各类媒体与计算机系统的关系。 媒体是信息表示和传输的载体。CCITT对媒体分类:感觉媒体,表示媒体,表现媒体,存储媒体,传输媒体。 多媒体信息存在和表现的形式主要有哪些? 正文:包括文字和数据 向量图形:图元组成的图形 位图图象 数字化声音和高保真音响 数字化视频 光存储技术原理是什么?其产品化形式是什么? 技术原理:改变一个存储单元的性质,使其性质的变化反映出被存储的数据;识别这种性质的变化, 就可以读出存储数据 产品化形式是由光盘驱动器和光盘片组成的光盘驱动系统 光盘系统的技术指标主要有哪些?各自含义如何? 容量: 光盘盘片的容量 平均存取时间: 在光盘上找到需要读写信息的位置所需时间 数据传输率:1.从光盘驱动器送出的数据率,可以定义为单位时间内光盘的光道上传送的数据比特数, 这与光盘转速、存储密度有关。2.指控制器与主机间的传输率, 它与接口规范、控制器内的缓冲器大小有关 光盘按照读写方式可以分成哪几类? CD-ROM只读光盘 WORM一次写多次读光盘 Rewritable可重写光盘 简述CD-ROM和可擦写光盘的工作原理。 CD-ROM:只读光盘上的信息是沿着盘面螺旋形状的信息轨道以凹坑和凸区的形式记录的,它既可以记录模拟信息(如Laser Vision系统),也可以记录数字信号(如CD-DA)。 可擦写光盘:1.磁光式擦写原理:当前国际上较流行的是磁光式,该盘普遍采用玻璃盘基上再加四层膜结构组成,它是以稀土—过渡金属非晶体垂直磁化膜作为记录介质光学膜和保护膜的多层夹心结构。2.相变式擦写原理:利用记录介质的两个稳态之间的互逆相结构的变化来实现信息的记录和擦除。两种稳态是反射率高的晶态和反射率低的非晶态(玻璃态)。写过程是把记录介质的信息点从晶态转变为非晶态。擦过程是写过程的逆过程,即把激光束照射的信息点从非晶态恢复到晶态。 比较CD-ROM光盘Mode1格式与Mode2格式的异同,并指出它们分别存储哪些数据。 相同之处: 这两种方式的扇区首部都是12字节的同步码(SYNC), 其前后为“00H”而中间10个字节存放“FFH”数据,紧接着的4个字节为地址字段, 或称扇区头(HEADER),它采用分、秒、扇区号的制式确定地址标号, 地址字段中设置了MODE字节, 指明该扇区是哪种格式。不同之处: 用户数据量不同:Model1为2048个字节, Mode2为2336个字节。 存贮数据的类型不同:Mode1用于存放对错误极为敏感的数据, 如计算机程序等;而Mode2用于存放对错误不太敏感的数据, 如声音、图象、图形等。 Mode2的数据经过CIRC检验后的误码率为1/109, 对声音、图象类的数据可以不必做进一步校验;而要满足计算机数据误码率小于1/1012的要求, 则应对Mode1的数据作进一步校验。 多媒体功能卡的作用主要是什么?具有代表性的多媒体功能卡有哪些? 作用:通过这些功能卡将计算机与各种外部设备相连,构成一个制作和播出多媒体系统的工作环境 具有代表性的多媒体功能卡:声音卡、视频卡 多媒体计算机的视频处理芯片可分为哪几类? 可分为两类: 一是专用固定功能的芯片,这类芯片主要围绕数据压缩标准JPEG,MPEG等开发的; 二是可编程的多媒体处理器,如Intel 750系列,TI公司的TMS320系列高效可编程多媒体处理器以及Philips和Sony共同开发的CD-I等产品。 第一块集成JPEG算法的芯片是?CL550 简述几种常见触摸屏的工作原理。红外线触摸屏:在屏幕四边放置红外发射管和红外接收管,微处理器控制驱动电 路依次接通红外发射管并检查相应的红外接收管,形成横竖交叉的红外线整列。能被感知的触针可以是手指或其他任何不透明或者对光散射的透明物体。 请设计一种方法将电教教室中的投影幕布变成触摸屏,简述设计思路。图象采集,对幕布图像进行分析并匹配,在投影仪和幕布图形之间形成一种协议来接受图形中相应位置的操作。 多媒体计算机系统层次性结构如何划分? 从上到下:多媒体应用软件,多媒体开发与创作工具,多媒体系统软件,多媒体驱动程序接口,多媒体驱动程序,多媒体硬件。 简述CD-I系统的发展历程。 CD-I系统是家用交互式多媒体系统, 它是Philips公司和Sony公司于1986年4月联合推出的一种电视计算机或称Smart TV系统。该系统把各种多媒体信息存放在容量为650MB的只读光盘上,用户可通过CD-I系统读取光盘的内容来进行演播,光盘的数据使用CD-I格式存放。CD-I的正式商品于1991年面市, 用户可以交互式地把家用电视机和计算机相连, 通过鼠标器、操纵杆、遥控器等装置选择人们感兴趣的视听节目进行播放, 是一种较好多媒体系统产品。 DVI-I型系统与DVI-II型系统的核心部件分别是什么?其系统软件核心分别是什么? DVIⅠ的核心部件是视频象素处理器82750PA和视频显示处理器82750DA。系统软件:AVSS。 DVIⅡ将这两个芯片升级为82750PB和82750DB, 使运算速度提高了一倍。系统软件:AVK。 VCD与DVD播放系统分别基于哪种视频编码技术? VCD:MPEG-1编码技术 DVD:MPEG-2编码技术 多媒体开发和创作环境一般应具有哪些功能? 提供编程的环境 超文本、超媒体和多媒体数据管理的功能 支持多媒体数据的输入输出 应用连接功能 数据和动画制作功能 友好的用户界面 多媒体创作工具主要有哪几类?分别简述每类的特点与代表性工具。 1、以卡或页为基础的创作工具 大多数以卡或页为基础的创作工具提供一种可以将对象连接于卡或页的环境。一页或一张卡便是数据结构中的一个节点,它类似于书的一页或数据袋里一张卡片。这种页或卡片上的数据比书上的一页或数据袋里一张卡片的数据更多样化。在卡或页上的图符很容易理解和使用。代表工具:ToolBook 2、以图符为基础,基于事件的创作工具 基于图符的创作工具提供可视化的程序设计环境。设计之初须先用其他软件来制作各种元素;然后在此系统中建立一个流程图,在流程图当中可以包括起始事件、分支、处理及结束等各种图符;设计者可依流程图将适当的对象从所谓的图符库按下拉至工作区内。这些图符可以包括菜单条的选项、图形、图象、声音及运算等;这个流程图也是事先安排的次序, 同时也表示整个节目的逻辑蓝图;代表工具:Authorware。 3、以时间为基础的创作工具 常见的一种多媒体编辑系统,常用于制作电影与卡通片的节目。大多是以时间轴来决定事件的顺序与对象显示上演的时段。这种时间关系可以许多频道形式出现,以便安排多种对象同时呈现。这类系统中都会有一个控制播出的控制面板,它很象录音机、录放像机的控制板, 含有倒带、倒退、停止、演出及快进等按钮。 代表工具:Action! 4、以传统程序语言为基础的创作工具 精通编程的程序员对于多媒体编辑创作系统的限制及依赖工具箱产生对象的方式较不容易接受。因此,一方面保留传统语言的特性,另一方面改进其程序设计环境成为可视化的操作系统。这样程序员既可以用传统的语言来编写程序又可方便地使用媒体开发工具箱,使这些工具箱内的编码可以直接被采用成为重用的编码。 代表工具:Visual BASIC、Visual C++ 5、其它专用的创作工具 Windows采用哪两种不同的媒体控制接口(MCI)?简述它们的不同之处。一是使用命令消息接口函数,直接控制MCI设备;二是使用命令字符串接口函数,基于文本接口或命令脚本来控制MCI设备。不同之处在于它们基本命令结构及其发送消息到设备的原理不同。命令消息接口使用消息控制MCI设备;命令字符串接口使用文本命令控制MCI设备。 什么是DirectShow? 为在Windows平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用提供了完整的解决方案。保证大量多媒体数据处理的高效性,音视频同步,简单方法处理复杂媒体源问题:文件、网络、广播电视等,处理多种媒体格式的问题,支持不可预知的硬件。 数字化表示多媒体信息相交于模拟方式表示优势主要哪些?挑战主要是什么? 不会出现易出故障、常产生噪音和信号丢失、且拷贝过程中噪音和误差逐步积累的缺点。适合数字计算机加工处理。挑战:巨大的数据量。 简述采样定理。 仅当采样频率≥2倍的原始信号频率时,才能保证采样后信号可被保真地恢复为原始信号 人听觉与说话的频率范围分别是什么? 听觉:20Hz到20KHz。说话:20Hz到4KHz。 设量化精度为8b, 依据采样定理,未经压缩的情况下人讲1分钟话的数据量为多少?请写出计算过程。 依据采样定理, 设数字化精度为8b, 则1秒钟信号量为64Kbits=8KB,人讲1分钟话的数据量为480KB 多媒体数据中主要存在着哪些数据冗余?空间冗余与时间冗余分别指的是什么? 空间冗余、时间冗余、信息熵冗余、结构冗余、知识冗余、视觉冗余、其它冗余。 空间冗余:这是静态图像中存在的最主要的一种数据冗余。在同一幅图像中,规则物体和规则背景的表面物理特性具有相关性。即对同一景物表面上采样点的颜色之间存在着空间连贯性。 时间冗余:序列图像(电视图像、动画)和语音数据中所经常包含的冗余,一组连续的画面之间往往存在着时间和空间的相关性。 请比较常用的几种彩色空间。RGB彩色空间: R,G,B分别代表红(red)、绿(green)、蓝(blue)三色。这是彩色最基本的表示模型 通过对R、G、B三个颜色通道的变化以及它们相互之间的叠加可得到各式各样的颜色 HSI彩色空间 : 这种模型中, 用H(Hue,色调)、S(Saturation,饱和度)、I(Intensity,光强度)3个分量来表示一种颜色, 这种表示更适合人的视觉特性。YUV彩色空间 : Y为亮度信号,U、V是色差信号(B-Y,R-Y)。PAL制式彩色空间即为YUV。优点是亮度和色差信号分离,容易使彩色电视系统与黑白电视信号兼容 YIQ彩色空间 : 广播电视系统另一种常用的亮度与色差分离的模型,NTSC制式彩色空间即为YIQ。Y是亮度, I和Q共同描述图象的色调和饱和度。 设某种颜色的RGB取值为(108, 93, 86),RGB到YUV的变换矩阵为 , 求该种颜色在YUV空间下的取值。 根据解码后数据与原始数据是否完全一致,数据压缩方法划分为哪两类?每类分别给出两个典型例子。 可逆编码(无失真编码): 解码图象与原始图象严格相同,压缩大约在2:1到5:1之间。如Huffman编码、算术编码、行程长度编码等。不可逆编码(有失真编码):还原图象与原始图象存在一定的误差,但视觉效果一般可以接受,压缩比可以从几倍到上百倍来调节。常用的有变换编码和预测编码。 在预测编码中,编码和传输的是什么?误差来源主要是什么? 编码和传输的是这个采样值的预测值与其实际值之间的差值。误差来源:相邻像素之间的相关性。 对信源X={x1,x2,…,x8}进行Huffman编码,其中x1,x2,…,x8出现的概率分别为0.4,0.18,0.1,0.1,0.07,0.06,0.05,0.04。 JPEG中基于DCT的有失真压缩编码过程有哪几步?简述其工作原理。 离散余弦变换、量化处理、DC系数的编码和AC系数的行程编码、熵编码 JPEG2000与JPEG相比有什么特点? 高压缩率。无损压缩。渐进传输。感兴趣区域压缩。 MPEG系列标准主要有哪些?各自主要应用有哪些? MPEG-1,MPEG-2,MPEG-4,MPEG-7,MPEG-21 MPEG-1用于CD-ROM存储运动视频图像、数字电话网络上的视频传输。MPEG-2兼容MPEG-1还实现了低码率和多声道扩展用于广播电视网有线电视网等。MPEG-4应用于数字电视、动态图像、互联网、实时多媒体监控、移动多媒体通信、Internet/Intranet上的视频流与可视游戏、DVD上的交互多媒体等方面。 MP3音乐采用的是什么音频压缩技术?压缩率如何? MPEG Audio Player3。压缩率达到1:10 到1:12 MPEG中将图像分为哪3种类型?各自特点是什么? I图像,利用图像自身的相关性压缩,提供压缩数据流中的随机存取的点。P图像,用最近的前一个I图片(或P图像)预测编码得到(前向预测)。B图像,B图像在预测时,既可使用了前一个图象作参照,也可使用下一个图像做参照或同事使用前后两个图象作为参照图像(双向预测)。 MPEG标准在减少视频图像的时间冗余方面采用了什么方法? 运动补偿技术 相较于MPEG1与MPEG2,MPEG4最大的特点是什么? MPEG-4更适于交互AV服务以及远程监控,其设计目标使它具有更广的适应性和可扩展性:MPEG-4传输速率可在4.8-64kbps之间,分辨率为176×144, 可以利用很窄的带宽通过帧重建技术压缩和传输数据。 H.26X系列标准主要有哪些? Px64Kbps视频编码标准,H.263标准,H.264/AVC标准。 我国具有自主知识产权的音视频压缩标准是什么? AVS标准 语音生成机构的模型由哪几部分组成? 声源、共鸣机构、放射机构 对多媒体数据进行有效管理的方法有哪些? 文件管理系统 建立特定的逻辑目录 传统的字符、数值数据库管理系统 多媒体数据库管理系统 超文本和超媒体 多媒体数据对数据库的影响有哪些? 数据量大且媒体之间差异也极大,从而影响数据库中的组织和存储方法 媒体种类增多增加了数据处理困难 多媒体不仅改变了数据库的接口,使其声、文、图并茂,而且也改变了数据库的操作形式,其中最重要的是查询机制和查询方法。传统的事务一般都是短小精悍,在多媒体数据库管理系统中也应尽可能采用短事务。为保证播放不致中断,MDBMS应增加这种处理长事务的能力 多媒体数据库管理还有考虑版本控制的问题 简述MDBMS的三种组织结构。集中型: 由一个MDBMS来管理和建立不同媒体的数据库,并由这个MDBMS来管理对象空间及目的数据的集成。主从型: 由多个数据库管理系统来组成, 每个数据库管理系统之间有主从之分。协作型: 协作型MDBMS也是由多个数据库管理系统来组成, 每个数据库管理系统之间没有主从之分。 MDBMS中扩展关系数据模型的策略有哪些? 1.使关系数据库管理技术和操作系统中文件系统功能相结合, 实现对非格式化数据的管理。其主要方法是以存放非格式化数据的文件名代替。 2.将关系元组中格式化数据和非格式化数据装在一起形成一个完整的元组,存放在数据页面或数据页面组中,统一管理(大系统采用)。 3.将元组中非格式化数据分成两部分,一部分是格式化数据本身,另一部分是对非格式化数据的引用(小系统采用)。 基于内容的检索技术的特点是什么?主要实现方法有哪些? 特点: 1.从媒体内容中提取信息线索, 直接对媒体进行分析, 抽取特征(如基于表达式)。2.提取特征方法多种多样。如图象特征有形状、颜色、纹理、轮廓等特征。 3.人机交互。人能迅速分辨要查找的信息, 但难以记住信息, 人工大量查询费时、重复, 而这正是计算机的长处, 人机交互检索可大大提高多媒体数据检索的效率。 5.基于内容的检索采用一种近似的匹配技术。 6.提取媒体对象内容属性的方式一般有手工方式、自动方式和混合方式 方法: 一是基于传统的数据库检索方法,即采用人工方法将多媒体信息内容并表达为属性(关键词)集合,再在传统的数据库管理系统框架内处理。这种方法对信息采用了高度抽象,留给用户选择余地小,查询方式和范围有所限制。 二是基于信号处理理论, 即采用特征抽取和模式识别的方法来克服基于数据库方法的局限性,但全自动地抽取特征和识别时间开销太大,并且过分依赖于领域知识,识别难度大。 简述多媒体对通信的影响。(1)多媒体数据量 (2)多媒体实时性 (3)多媒体时空约束 (4)多媒体交互性(5)多媒体分布式处理和协同工作要求 什么叫多媒体网络? 将多台地理上分散的具有处理多媒体功能的计算机和终端通过高速通信线路互联起来,以达到多媒体通信和共享多媒体资源的网络。 衡量多媒体通信网QOS的性能指标主要有哪些? 吞吐量,延时,延时抖动,错误率 分布式多媒体系统的基本特征有哪些?(1)多媒体集成性(2)(3)运行实时性 (4)操作交互性 (5)系统透明性 什么是CSCW系统? CSCW是支持有着共同目标或共同任务的群体性活动的计算机系统,并且系统为共享的环境提供接口 典型的协作模型有哪些? 对话模型 会议模型 过程模型 活动模型 分层抽象模型 DAVIC系统包括哪几个部分? 一般包括5个部分(或称实体):内容提供者系统(CPS)、服务提供者系统(SPS)、服务消费者系统(SCS)以及连接它们的CPS-SPS传输系统和SPS-SCS传输系统。 一、单项选择题(共5道小题,共100.0分) 下面的H.248消息中,MGl为该呼叫分配的关联域标识号是()。MGl→MGC: MEGACO/1 [10.54.250.43]:2944 P=369363687{C=386{ A=A0,A=A100000124{ M{O{MO=RC,RV=OFF,RG=OFF,nt/jit=40}, L{v=0 c=IN IP4 10.54.250.43 m=audio 18300 RTP/AVP 8}}}}} 369363687 386 A0 A100000124 知识第一次阶段作业 点: 学生答[B;] 案: 得分: [20] 试题分 20.0 值: 提示: 以下消息中,被叫用户的注册账号为()。INVITE Sip:watson @ bell-tel.com SIP/2.0 Via: SIP/2.0/UDP kton.bell-tel.com From: A.Bell(Sip: a.g.bell @ bell-tel.com)To: T.Watson(Sip: watson @ bell-tel.com);tag = 37462311 Call-ID: 3298420296 @ kton.bell-tel.com CSeq: 1 INVITE Contact: Sip: a.g.bell @ kton.bell-tel.com Content-Type: application/sdp Content-Length =…… v=0 o = Watson 4858949 4858949 IN IP4 192.1.2.3 s = I'm on my way c = IN IP4 kton.bell-tel.com m = audio 5004 RTP/AVP 0 3 a.g.bell @ bell-tel.com watson @ bell-tel.com 3298420296 @ kton.bell-tel.com watson @ boston.bell-tel.com 知识第一次阶段作业 点: 学生答[B;] 案: 得分: [20] 试题分 20.0 值: 提示: SIP协议网络模型中,()能够将用户当前新的位置告诉请求方。 重定向服务器 代理服务器 定位服务器 注册服务器 知识第一次阶段作业 点: 学生答[A;] 案: 得分: [20] 试题分20.0 值: 提示: G.723编码数据的比特率采用6.3kb/s,每30ms传送一次,在不考虑静音压缩和数据链路层头部所占的带宽的情况下,在IP网络中传送一路G.723话音所占的带宽为()。 16.86kbit/s 64kb/s 6.3kb/s 15.86kbit/s 知识第一次阶段作业 点: 学生答[A;] 案: 得分: [20] 试题分 20.0 值: 提示: 以下协议中,()协议主要用来在IP网络中传送电话网的信令。 TCP RTP SCTP RTCP 知识第一次阶段作业 点: 学生答[C;] 案: 得分: [20] 提示: 试题分 20.0 值:第三篇:北邮微波仿真实验1
第四篇:北邮多媒体技术与应用期末考点
第五篇:北邮软交换技术与NGN第一次作业