(计算机软件与理论专业论文)基于课堂现场教学和教学过程记录软件设计的研究.pdf_第1页
(计算机软件与理论专业论文)基于课堂现场教学和教学过程记录软件设计的研究.pdf_第2页
(计算机软件与理论专业论文)基于课堂现场教学和教学过程记录软件设计的研究.pdf_第3页
(计算机软件与理论专业论文)基于课堂现场教学和教学过程记录软件设计的研究.pdf_第4页
(计算机软件与理论专业论文)基于课堂现场教学和教学过程记录软件设计的研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机软件与理论专业论文)基于课堂现场教学和教学过程记录软件设计的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

论文独创性声明 本论文楚我令灭在导簿强蛩下送行羲臻究王 睾及酝褥鼓疆究 成果。论文中除了特别加以标注和致谢的地方外,不包含其他人 或机构已经发表或撰写过的研究成果。其他同志对本研究的启发 和所做的贡献均已在论文中做了明确的声明并表示了谢意。 作者镰名:日期: 辫 神t f 论文使用授权声明 本天完全了解上海赉器莛大攀寄关镶整、镬爨学袋论文鹣褒定, 即:学校有权保留送交论文的复琦】件,允许论文被裔阅和借阅; 学校可以公布论文的全部或部分内容,可以采用影印、缩印或其 它手段保存论文。保密的论文在解密后遵守此规定。 踟择矽吣 皋于醒章现场教学和教学过程记录软件 啦计的研究海帅范人学坝i 。学位论文 摘要 随着网络和多媒体技术的发展,信息技术在课堂教学中变得越来越重要了。 本文在现有的课拳多媒体制作和演示系统的基础之上力求研究和丌发一个完全 针对教师课堂教学中使用的系统。 本文首先介绍多媒体制作和演示系统的发展现状及它们的优缺点,并分析了 教师在课堂教学过程中的一些要求。在此基础之上,我们设计了一个完全针对教 师课掌教学的多媒体制作和演示系统,并简要的对该系统的各个模块作功能介 绍。 接着阐述了实现这个项目的一些关键技术,例如:内存块的动态分配技术, 屏幕视频和音频的捕获,视频编码器,视频压缩技术,视频编码的标准和复合多 媒体的一般过程,音频文件和视频文件的复用的实现进行了详细的讨论。其中视 频捕获功能的实现采用了微软推出的关于数字视频的v f w 软件丌发工具包。 为了提高系统的稳定性和系统的反应速度,采用多线程的编程技术和双缓存 策略。双缓存使用内存缓冲去解决因为多次在屏幕中绘图中产生的闪烁问题,所 有的绘图在内存中绘图而不是在屏幕中直接绘制,因此可去除闪烁的现象。 提出基于t c p i p 协议和f t p 协议为网络传输方式的数据库通信模块的方案, 并给出了运用w i n s o c k 的具体实现。本系统是基于v i s u a lc + + 以及数掘库s q l s e r v e r2 0 0 0 开发的。 关键字:课堂教学,v f l r ,屏幕录像,内存分配,多线程,w i n s o c k ,f r p 2 璀十课章现场教学和教学过程记录软件设计的研究 海帅范人学倾i 学位论文 a b s t r a c t w i t ht h e d e v e l o p m e n t o f i n t e r n e ta n dm u l t i m e d i at e c h n o l o g y i n f o r m a t i o nt e c h n o l o g yb e c o m em o r ea n dm o r ei m p o r t a n ti nt h ec l a s s r o o m t e a c h i n g t h ep u r p o s eo ft h i sp a p e ri st oa n a l y s ea n dd e v e l o pan e w l y m u t i m e d i ac l a s s r o o mt e a c h i n gs y s t e mo n l yf o rt e a c h e r si nc l a s s r o o m a tf i r s t ,t h ep a p e ri n t r o d u c e dt h ee x i s t i n gm u l t i m e d i as o f t w a r es i t u a t i o na n d t h e i ra d v a n t a g ea n dd i s a d v a n t a g e a n da l s oa n a l y s e dt e a c h e r s d e m a n di n t h ec l a s s r o o mt e a c h i n g b a s e do ni t ,w eh a v ed e s i g n e dan e wm a k i n ga n d p l a y i n gm u l t i m e d i as y s t e mt h a tw i l lb eu s e db yt e a c h e r t h i sp a p e re x p l a i n si nd e t a i lt h ep r i n c i p a lt e c h n i q u eh o wt oi m p l e m e n t t h i ss y s t e m ,w ed i s c u s s e dt h ef 0 1 l o w i n gq u e s t i o n s :i n c l u d i n gd y n a m i c a l l y m e m o r yb l o c ka l l o c a t i o n ,v i d e oa n da u d i oc a p t u r eo ft h es c r e e n ,v i d e o c o d e c ,v i d e om e d i ac o m p r e s st e c h n i q u e ,s t a n d a r d so fv i d e ee n c o d i n ga n da g e n e r a lp r o c e s s o f g a t h e r i n gm u l t i m e d i a i n f o r m a t i o n ,t om e r g e ( i n t e r l e a v e ) a na u d i of i l ew j t hav i d e ef i l e t h ef u n c t i o n o fv i d e oc a p t u r e isi m p l e m e n t e db yv f ws d k w i t ht h eu s eo fm u l t i t h r e a d i n ga n dd o u b l eb u f f e r i n g i tw i l li m p r o v e t h er e s p o n s ea n dt h es t a b i1i t yo ft h es y s t e m d o u b l eb u f f e r i n gu s e s a m e m o r yb u f f e rt oa d d r e s st h ef l i c k e rp r o b l e m sa s s o c i a t e dw i t hm u l t i p l e p a i n to p e r a t i o n s a 1 1p a i n to p e r a t i o n sa r ef i r s tr e n d e r e dt oam e m o r y b u f f e ri n s t e a do ft h ed r a w i n gs u r f a c eo nt h es c r e e n t h ei m a g ef l i c k e r i n g a s s o c i a t e dw i t hc o m p l e xp a i n t i n go p e r a t i o n si se l i m i n a t e d p r o p o s e st h ed a t a b a s ec o m m u n i c a t i o np l a t f o r mm o d u l et h a tb a s e do n u s i n gt c p i pa n dt h ef t pa sn e t w o r kt r a n s m i s s i o nm o d e a n di m p l e m e n ti t r i t hw i n s o c kt e c h n i q u e t h ed e v e l o p m e n to ft h i ss y s t e mi sb a s e do nv i s u a l c + + a n dd a t a b a s es q ls e r v e r2 0 0 0 k e yw o r d s :c l a s s r o o mt e a c h i n g ,v f w ,s c r e e nc a p t u r e ,m e m o r ya l l o c a t i o n , m u l t i t h r e a d i n g ,w i n s o c k ,f r p 幕手谖章瑾勃教学嚣教学过程记录较羲:鼗跨瓣研究 海静蓝天学秧 :擘经论文 第一章引言 。 课堂课斧制作和瑗场教学系统的课题背景分缨 教育是一个国家的重中之煎。课掌现场教育又怒教育的一个重要缀成部分。 我国已进入企面加快推进社会童义现代化建设的关键时期。而对于传统的课常教 学而言,教师学中的粉笔和黑板擦蛔何借助信息化技术得到快速的发展。如何增 强教学豹夏貔魏2 翅露程蔫缤惑纯王其恕教簿麸笈袋豹无矮懿或与教学无关熬 工作中勰放出来? 这是实现教宵现代化过程中必须解决的重要问题。随着当代多 媒体技术、网络技术的快速发展,使信息技术融入谍堂成为一种必然髓势。 课掌现场教学是教学的核心,信息技术与教学的整合只有在课常数学中有所 体现,蠢会收列实效,掰良,秀发专供渫堂教学傻蠲豹多媒俸教学系绕软箨,是 信怠技术与教学整合静当务之惫,秩我们对未柬帝场对象( 教师) 酌调焱着,确 实也是他们迫切的呼声。正因为此,上海二期课程改革将课程与信息技术的整合 确立为一个黛要的改革突破口。本课题正是上海市教黉的对于中小学谍徽现场教 学系统开发豹一个磅究项目。因j 勰:,项目不仅仅填於了专雳课堂教学谍传开发平 台熬空自,瓣基其妥糍市场穆会专分庞大。矮户是犬懿孛套学教耀。专耀漾擎 教学课件歼投平台在后台教学资源库的支持下,无论对于提高教师备谍资料来源 的丰富性,邂是对于增强课堂教学的互动性都会有很大的提高。 1 2豳内终研究的现状h 泌担弭疆1 】删 1 2 1 信息技术在课堂现场教学的理论依据 现代教学的基本重点在于课黻教学的互动性和多样性,在于学生奎体地位的 确定,在予燹广泛教学内容豹雾纳。那么,利翅傣息技术麸哪些方覆去体现课堂 教学的现 弋化豹优势昵? 这蹙我们应该考虑雏重点。我们认为,它的童簧关键点 应当是提供交互式的教学环境、增大教和学的信息撰型和信息量。町以说,信息 技术是现代教学理念赖以实现的种重要教学技术。我们甚至还可以说,没有信 息技术豹支撵,现代教学理念的察现会困难重重。 6 耪卡潍牵或场救擎豢l 教学过程证录软箨墩讳麓辫究l :海帮薤太学聩l :掌茳论文 关键点一:信息技术应该比传统现场教学提供照好的交互性要求。所谓交互, 从信息技术洋玎教学技术两方面爿乏讲,应当是人机交互和人人交飘( 师生 交互和生生交嚣) ,在交互的教学群境中,信息的传递应当是多囱豹。镶怠多淘 翡传递,燕教学孛教耀帮学玺童动经戆傈谖。多媒体矮零埝埝在“交夏”方嚣翼 有强大的技术优势。 课常教学环境中,人人之间的直接交互主鼹是语音信息,但语音传递的 信息很有限,教学还需要文字储患、图形图像信息铸,而这些信息交互辩要一个 孚台柬实瑷。在传统教学孛,这今擎台逶零是黑援耪粉笔,众瘊嚣翘,羰投露耪 笔的功能有限,交互的效率也不糍。如果能充分利用多媒体技术来搭建入( 学生、 教师) 机人( 学生、教师) 的交互平台,凭论是交互的形式述是交互的 效率都会得剔大大提高。 关键点二:信息技术剩用爨络优势提供裹度共攀的丰富豹售息炎擞秘信怠 量。谍拳教警楚否筢充分震示教学内容豹内涵,谦鬈教学翦效搴是否能够缮嚣保 证,跟教学中提供的信息类型怒谮丰富,是否能吸引学生,以及有没有足够的信 息量有着密切关系。在传统教举中,教师为学生准备的信息类型主要魁谮言和文 字( 教科书、板书) ,语言和文字都属予符号性信患,而教学的原理告诉我们, 霆形、强豫缘熬信惑零鬻雯窖易被学生理解,逡涵毽爱秀事塞。茏其怒一些“只 能意会,不能言传”的深层涵义,璺需要图形和图像的帮助。在传统教学中,教 师准备的教学内容往往被教科粥所局限,而今天教学却要求让学生能接触到更 多、更为广泛的信息,教学信息不仅需要多样化,遥需要有量的保证。因此,扩 大教学痿息滚豹数量和范围+ 分重要。 多媒体援零和网络技术是瑗健信惹技术的重要麓荔。对于漂囊教学泉说,多 媒体技术恰愉具有交互性强、能耀示多种类型信息的优势,而网络技术则可有效 地拓展信息的来源。如果能够充分利用好、整合好多媒体技术和网络技术,那么, 课堂教学中的交互行为、信息的类型和信息的来源,以及信息的展示效攀等都会 霉囊蠢鬓来菇豹提毫。 1 2 2 国内外相关软件的优点和缺点 p o w e r p o i n t 是幻灯片制作麓其,它是微软o f f i c e 系列办公组件乏一。 7 菸卡醒鼙斑场教学秘教学过程记录较静设讳鹩蟹 究 海绵越大学皱 掌位论交 p o w e r p o i n t 内置丰富的动画,过渡效果和几十种声街效果,并具备超饿接功能, 可以直接调用外部媒体文件,能够满足一般教学的隳求。而且,p o w e r p o i n t 对 技能的要求誉菇,所以是目翦大多数教疖蓠选的谍体制作工具。 毽是,宅在谍拳教学上缺陷氇楚显瑟易冤豹,弼磐,绍赶冀式懿撩放侵潆俸 不够流畅,交驻功能其实是简单的链接;功能虽然强犬,但有许多跟课镦教学的 要求无关,而有些课章教学必鼹的环节,尤其是交艇,不能得到很好地体现。 a u t h o r w a r e 是著名的多媒体制作工具,它刨造了纂于图标豹创作方式,有可 踅赘滚程爨穷谍绛翻毒# 豹整令避簇,渣瘊寿孝。同辩,a u t h o r w a r e 蠹嚣了4 0 多 种过渡效果,矗种基本运动形态,利用层和a l p h a 邋遒,本身能完成动蜥效果。 对于外部各种格式的文本、图片、声音、视频等,都可直接调用,并能熊成独立 播放的多媒体程序。 毽运爆a u t h o r a r e 对于教爆来说需要掌握比较燮杂静专业技能,铡撵过程 费时费力,黢掌握这门技术豹教舜为数不多。鼹p o w e r p o i n t 籀 跬,僚梵个瑟 向多媒体制作用户的软件,有许多功能在教学中没脊必要,同时教学中需要突出 的功能,a u t h o r w a r e 并不一定加以重视。 f l a s h 怒用来编辑二维动疆的软件,它采用了矢量图形和流式技术,是阏上 魂垂豹霸主。f l a s h 襞够缀努懿支持声音,吴有交嚣功蕤。f l a s h 雾囊霹分秀工 具箱、总谱隧、层控制面板和舞螽四大支块。用f l a s h 制作动藏,只要定义好各 个关键帧,渴中的过程由计算机自动生成。f l a s h 特别适合表现现实中雉以实现 的、抽象的概念或现象,像炮弹的轨迹图,原子裂变效果等。 毽f l a s h 势不是秀课堂教学定潮熬,存在一定欠姣,最合适豹用法怒将f l a s h 与其谴漾体编辑平台配合使用。露l 佟f l a s h 氇需要院较专韭蠹每技能,拜缴的周麓 比较长,掌撼这门技术的教师为数鞍少。 方币舆恩是一款国产多媒体制作软件,自1 9 9 6 年发行以来得到圈内各领域 用户的青昧。方疆奥思提供了如下功能:提供矢量动藏编辑器,编制的渤翅可以 转换鸯f l a s h 文律;挺供支持终联羧撵痒瓣表錾:爨供嚣瑷实露绘蘑豹颡叛,遴 过画板可以绘制各种数学函数鞠线与图形,也可以隧筝画图;支持m p e g l 、m p e g 2 、 m p e g 4 等压缩格式的视频;从动懑演示的能力来讲;方正奥思支持g i f 、f l i 、f l c 格式的动剜。 s 肇于谖拳氆场教学翔教擘过程记录软箨谥 静磷究 海静箍天学段l j 学位论交 但对课件制作而言,方币舆恩仍然是一个特点不鼹著,功能不够完备的平台, 学习方讵奥恩,对于教师束说,依然是比较困难的。所以,相比其他软件,方丁f 奥思在课 串制作方面的知名度要小褥多。 慧之,我袋骞瑷下鼙象;一努瓣,谍程嚣教学改孳豹发展遥臻疆霭鬟耨翁技 术,而信息技术确实已经开始展现其特有的革命悔的优势:另一方面,在技术领 域,对教育改革的呼声仍然没有做出切切实实的反映,信息技术跟课常教学整合 急需在技术麟藤褥到突破。在我们的调查中,绝大多数教师期望能有充分反映教 学特点;容易学,揉嫠方覆,蠢利孳:交互嚣专暨课转锲终软终。这一潮凝态分反 映了墨酶广大教师的追切需求。 1 3 本文研究的主要内容 1 3 。1 课堂现场教学和教学过程记录系统酶特点窝要求 本课题的研究足上海市教餐埘中小学课章现场激学和上海市二期课程改革 相结合的研究项l l ( 2 0 0 6 ) ,是建立在广大中小学教师浠要的调奄基础上县存较 高豹现实意义釉市场潜力。其特点和要求主要表现谯以下几个方瑟: l 拜发斑囊歪适合教舔漂蹩教学特点静教学软髂,并戆为教舞提供一个丰富 的教学资源蹿平台,使教师从既繁忙又盲目的教学资源搜寻工作中解脱出来。 2 ) 丌发出既具有传统课黛激学的优势,又具有现代多媒体信息化的优势的 教学软件,熊够给教师提供极大的工具帮助,这对予提商课堂教学的听课效率是 曼瑟瑟冤豹。 3 ) 歼发蹴能够方便整合其豫的多媒体资潦小稔膨( 铡如f l a s h ,a v i ,e x e 等其他格式) 的软件能够最大比例利用现有的多媒体资源来进行课畿教学。 4 ) 了r 发l i j 能够进行课常教学记录功能的软件,能够将课掌教学过程完整的 记录下来。翁剃予教簿自我提离教学链力和教学反馈筑力。 1 3 2 论文所做的工作 本文主袋介绍了一个基于课嫩现场教学和教学过税记录系统的设计和实现。 本系统豹设计楚建立在教疖等特定用户需求上,参照秘氆鉴p o w e r p o i n t 常用软 9 基十谍牮现场教学和教学过程记录软件设计的研究 海帅范人学钡i 学位论文 件的操作使用方法,使得用户通过简单的培训就能熟练的使用,具有易用性特点。 本系统在设计上充分考虑到软件的小巧和使用方便的特点,将课堂教学课 件制作系统,课掌现场教学演示和教学过程记录系统分开使用,这样可减小软件 的大小。教师在设计课件的时候只需要课件制作系统,而对应的教师在上课的时 候只需要课堂现场教学演示系统。这样分丌使用对教师课件的知识产权也有间接 的保护作用。 其中教师在利用课件制作系统时既可以直接利用本地的资源和i n t e m e t 资 源,还可以通过网络访问和登录到本系统的专用教学资源库平台查询和下载所需 要的教学资源,课件中可以导入多种类型的教学资源( 文本,图片,各种音频和 视频,f l a s h ,e x e 程序等) o 教师利用课掌现场教学演示和教学过程记录系统进行课掌教学时,利用黑板 和粉笔的功能有效的替代传统教学的黑板和粉笔,解决p o w e r p o i n t 流行软件只 能放映不能写的缺点,为教师提供实用的工具。在硬件要求上,需要配备一个手 写板设备对教师在书写上的支持。 教师可以在教学演示的同时把教师在屏幕上操作的整个过程和声音以音视 频方式或其他方式记录下来。记录的方式可以设计为两种方法:第一种是传统的 音视频方式记录。把整个教学过程利用视频压缩方法写成视频文件,其优点在于 能够全面有效的还原整个教学过程,缺点在于尽管经过压缩,但文件体积还是较 大;第二种是将教师的操作动作和鼠标位置记录下来,利用定义的文件的数据结 构写成特定的文件保存。其优点在于文件体积很小,缺点在于没有音频的支持, 无法准确的还原整个课堂教学过程。为了提高系统的性能,不影响j 下在教学的演 示效果,记录采用多线程的方法实现。总的说来,这个功能无论对于教师还是学 生来说都是重要的,教师可以利用它进行反馈,学生可以利用它进行课后复习。 本文第一章为引言,介绍了信息化技术对于课堂的现场教学中的必要性和重 要性,国内外软件在教学领域的优点和缺点,由此得出本文研究的主要内容。第 二章介绍系统的整体设计。第三章主要介绍系统的关键技术和实现,其中包括内 存对象的分配,文件的数据结构,记录系统的实现,双缓冲技术,钩子函数,多 线程技术,f t p 和w i n s o c k 编程。第四章为总结和展望部分。 1 0 崔十谍章现场教学和教学过程记录软件设计的研究 海师范人学颂i 。学位论文 2 1 系统分析 第二章系统整体设计 2 1 1 系统项目背景和需求分析 如果要真币让信息技术在课堂教学中起到作用,让上海二期课程改革在信息 技术的整合上得到有效突破,就有必要丌发一个充分适应教学需求,具有自主知 识产权的多媒体课堂教学系统,填补这一领域的空白。本课题的研究足建立上海 市教委对中小学课章现场教学和上海市:二期课程改革相结合的研究项e j ,是建立 在广大中小学教师需要的调查基础上,对于教师的要求主要表现在以f j l 个方 丽: j ) 开发出适合教师使用的课件制作系统,并能提供一个丰富的教学资源库 平台,为课件的制作提供资源上的支持。使教师从既繁忙又盲目的教学资源搜寻 工作中解脱出来。 2 ) 开发出既具有传统课堂教学的优势,又具有多媒体优势的课堂教学系统, 使得虚拟的黑板和粉笔在系统中发挥作用,能够给教师提供极大的工具帮助,这 对于提高课堂教学的听课效率是显而易见的。 3 ) 系统能够方便整合其他的多媒体类型小程序( 例如f l a s h ,a v i ,e x e 等 其他格式) ,并能够支持这些多媒体类型在系统中使用。 4 ) 教师能够利用系统进行课堂教学的记录,能够将课堂教学过程中教师的 操作过程和声音以视频流的方式记录下来,有利于教师自我提高教学能力和教学 反馈能力。 2 1 2 系统设计目标 任何一个软件没有“最好”,只有最“合适”。作为一个面向教师,面向课掌 教学,这一特殊对象群体的,“合适”的课堂课件制作和现场教学系统,尤其应 当在教学的交互性、教学资源的丰富和有序以及课件制作效率方面得到显著突 破,达到既能提高教学的效益,又能减轻教师工作强度的目的,成为教师离不开 菸卡滩牵巍辑教举秘教学进程证录较终设谤的骈究 舞摔薤天擎壤 擘盈论文 的好帮手。本系统的设计目标成该考虑下面的原则;适应课常教学需求和特点, 各学科在课嫩教学的通用性,简捷。易学好用的原则。 2 。2 系统整体设计 基于教师的需求,整个课掌现场教学和教学过稷记录系统分成两个系统:课 件制作系统,课堂教学和课裳记漾系统,它们可以独立分开使用。 课件制作系统用于课佟的制律,因为需要导入麟上的教学资源数据霹中静资 滚,它又怠旗涤锌裁作模块,数撵蓐模块蠢溺终模块。 课掌教学和课堂记录系统燕用予课掌的教学,它戗括课章教学模块和课堂记 录模块,其中课堂教学模块打歼的文件是课件制作系统生成的文件。下圈2 2 1 是整个系统的结构图。 2 。3 系统功麓设计 幽2 - 2 - i系统的整体结l 勾豳 本系统谯设计上充分考虑列软件的小巧和使用方便的特点,将课畿教学谋件 制作系统,课徵现场教学演示和教学过程记录系统分开使用。这样可减小软件的 大小,教师谯设计课件的时候只鬟要课件制作系统,箍对应的教师在上谍的时候 1 2 皋十诹章现场教学和教学过程记录软件设计的研究 海帅范人学i 魏i :学位论文 只需要课堂现场教学演示系统。这样分开使用对教师课件的知识产权也有间接的 保护作用。 对于课件制作系统,本系统的主要功能是设计、编辑和生成课件文件,它包 括两个主要部分,一是教学顺序提纲的生成和修改,二是教学顺序中的每一“页” 的编辑。在编辑过程中的课件文件,可以保存为本系统的使用的课件文件,在下 次打开时继续修改:也可以打包成为课堂教学系统中需要的课件文件,但是课件 文件不能在课章教学系统中修改。 在教学顺序提纲设计部分,顺序提纲页的类型有两种:普通页( 矩形) 、逻 辑页( 菱形) ;它们的主要区别是页之间的出口和逻辑关系不同,顺序页( 例如 图2 - 3 - 1 中的页1 ) 只有上为入口,下为出口;而逻辑页( 例如图2 3 1 中的页 2 ) 有一个入口和三个出口。下图2 - 3 - 1 表示教学顺序提纲设计的显示部分,共 有6 个页面,其中l 和4 是顺序页,其他是逻辑页。 图2 3 1 教学顺序提纲设计显不区 在每一“页”的设计、编辑部分,具有文本、图形图像、视频动画等插入功 能,对于文本具有调整位置,字体格式等功能,同时还具有简易绘图功能。在“页” 的编辑过程中,教师不仅可以直接利用本地的资源和i n t e m e t 资源,还可以通过 网络访问登录到本系统的专用教学资源库平台查询和下载所需要的教学资源,课 件中可以导入多种类型的教学资源( 文本,图片,各种音频和视频,f l a s h ,e x e 程序等) 。 培十 ! i :举现场教学和教学过程记录软件设计的研究 海帅范人学坝i :学位论义 对于课堂现场教学演示和教学过程记录系统,本系统是为上课而用,直接进 入课章教学,所以交互性非常重要。考虑到教师的习惯,该模块可以参考 p o w e r p o i n t “页”的表现方法,但是更加强教学的实际需求。 演示系统的界面就像是一块“电子黑板”,在这块“黑板”上按照教师预先 编制的课件演示文字、动画、视频和运行程序( 包括具有人机对话功能的程序) 等。“黑板”上有一些简捷而实用的教学工具,如“黑板擦”、“粉笔”、“小黑板”、 “教学顺序提纲”和“记录”等。“黑板擦”随意“擦”掉屏幕上的内容;“粉笔” 可以写上任何要添加的内容,包括画图;弹出“小黑板”,就是提供一块空白的 书写区域,它不会影响整个大“黑板”的内容;“教学顺序提纲”基于事先的设 计代表了几种不同的教学顺序。 教学过程记录系统则提供了教学实录的功能,它可以将教师在课常上的行为 ( 反映在教学演示中的行为) ,按照事件的顺序记录下来,并可以回放。显然, 有了这些工具,教师可以根据课堂教学的实际情况调整自己的教学行为。 教学资源库是一个共享的网络信息资源库。这些信息资源至少包括,必要的 文字( 如概念,定律,公式等) ,图形和图像,视频和动画,可执行程序等。这 些教学资源要以符合教学需求的方式组织起来,例如根据学科分类,年级分类, 教科书分类,以及根据信息类型分类等。通过多途径的网状分类法( 每一信息点 跟数个分类相关) 使得信息更容易被检索。教师在联网备课时,合法的用户可以 通过教学设计模块直接进入网络信息资源库,十分方便地下载资料,并把下载的 资料按一定的方式直接插入到课件制作系统中去。 1 4 幕十课章现场教学和教学过程记录软件设计的研究l :海帅范人学琐i :学位论文 第三章系统的关键技术和实现 3 1 程序中的中小对象内存分配的优化与封装的实现【1 1 1 【1 刁 【1 4 】【3 7 】【3 8 】【3 川【4 3 l 3 1 1 缺省的内存分配方式 内存碎片是指计算机中未使用内存( f r e em e m o r y ) 和已使用内存( u s e d m e m o r y ) 相互交错。计算机内存时刻都是存在碎片的,但只有当碎片的数量很 大时碎片才引起注意。这时未始用的内存块的平均大小变得很小。例如:一个程 序可能有5 m b 的可用内存,但是不能分配一个大小为i m b 的连续内存块。 在c + + 程序中的内存分配的基本动作是:o p e r a t o rn e w ( ) ,内存释放的基 本动作是:o p e r a t o r d e l e t e ( ) 。这两个全局函数相当于c 的m a l l o c ( ) 和f r e e ( ) 函数。正是这样,s g i 正是以m a l l o c ( ) 和f r e e ( ) 完成内存的配置与释放。 c + + 语法中的动态分配和指针引用的使用非常普遍,然而缺省的自由存储区 分配器( 例如: :o p e r a t o r n e w 和:o p e r a t o r d e l e t e ) 只适用于较大对象的内 存分配,对于小型对象内存分配并不十分有效。系统缺省的f r e es t o r e ( 自由空自j ) 分配方式速度不快,这在对小对象分配时速度太慢。其中一个可能的原因是,通 常它只是ch e a p 分配器( m a l l o c r e a l l o e f r e e ) 的浅层包装。ch e a p 分配器并 未特别针对小块内存的配置进行优化。c 程序通常十分有条理的,保守的使用动 态内存,决不会采用任何导致小块内存被大量分配的方法。c 程序通常配置大的 对象( 数百个和数千个b y t e s ) 。因此,m a l l o c ,f r e e 有必要针对小型对象的配置 进行优化。 除了速度慢,c + + 缺省内存的分配的通用性也造成对小型对象空间分配的低 效。缺省内存的分配器管理一个内存池( m e m o r yp 0 0 1 ) ,而这种管理通常要耗用 一些额外的内存。一般而言,对于利用n e w 分配的每一块内存,其用于登记管 理的部分达到数个( 4 3 2 个) b y t e s ,如果分配大小为1 0 2 4 b y t e s 的区块,每一 区块的额外开销微不足道( 大约占o 4 - - 3 ) ,但如果分配的对象较小,例如 大小为8 b y t e s ,则每个对象的额外开销就变成了5 0 一1 0 0 ,尤其是如果你需 幕十课章现场教学和教学过程记录软件设计的研究 海帅范人学顾l :学位论文 要大量分配这种小对象时,浪费非常巨大。因此,如果要在系统中进行高效丌发, 改进缺省的内存分配这个步骤是必不可少的。 对于内存管理常用的解决方法是,一种在预先分配一大块内存以供程序使 用,这是常用的内存池技术( m e m o r yp 0 0 1 ) ,一种是设计一个基类,程序中使用 到的小对象可从这个类派生,以获得内存分配优化。上述两种方法,一个在分配 时申请一大块内存,一个则是在释放时不直接交回给系统。两种方法在不同时刻 优化了内存管理,这两种技术也可以同时被使用。其内存分配算法:最优选择法一 选择一块最小的满足需求的内存块;最劣选择法一选择能够满足条件中最大的一 块内存块;顺序选择法一按顺序查找可用的内存块,选择最先遇到的能够满足大 小的内存块。 1 9 9 8 年c + + s t a n d a r d 定案以后,c + + 程序库有了大幅度的扩充和优化,其中 s t l 功不可没。s t l 中内存的优化方法,考虑到小区块所造成的内存碎片问题, 以s g is t l ( g n uc + + 所带的版本) 为例,采用了两级分配器,第一级分配器直 接调用m a l l o c ( ) 分配内存和f r e e ( ) 释放内存。第二级分配器则视情况采用不同的 策略。 第二级分配器多了一些机制,避免太多小额区块造成内存碎片。小额区块带 来的其实不仅是内存的碎片,分配时的额外负担也是一个大问题。这个额外的负 担永远都是无法避免的,毕竟系统要靠这些多出来的空问来管理内存,如下图 3 - 1 - 1 所示,但是区块越小,区块的额外负担所占比例就越大,就会显得越浪费。 c o o k i e , _ h j 丁记 录内存人小 o b j e c t 所需的 内存 豳3 - 1 1 分配任何一块内存都需要额外的空间进行管理 s g i 第二级配置器的做法是:如果需要分配的内存过大,超过1 2 8 字节,就 交给第一级分配器处理;当小于1 2 8 字节的内存被请求分配时,为了降低额外负 担,采用前述内存池技术管理,这种方法又日q 分层处理,每次分配一大块内存, 并由一个内置链表来管理,下次如果再有相同大小的内存要求,就直接从链表中 1 6 幕十诛章现场教学和教学过程记录软件设计的研究 海帅托人学顾i 。学位论文 取出。如果释放小区块,就由分配器回收到链表中。分配器的功能除了分配内存, 也负责回收内存。为此s g i 第二级分配器会主动将小额内存分配请求上调至8 的倍数( 例如要求分配3 0 字节,就自动调整为3 2 字节) ,并维护1 6 个内置链表, 各自管理大小分别为8 ,1 6 ,2 4 ,3 2 ,4 0 ,4 8 ,5 6 ,“,7 2 ,8 0 ,8 8 ,9 6 ,1 0 4 , 11 2 ,1 2 0 ,1 2 8 字节的小块区域。自由链表的结构如下: u n i o no b j u n i o no b j f r e e l i s t l i n k ; c h a rc l i e n t _ d a t a 【l 】; ) ; 由此可得到启发,可使用面向对象的方法设计一个代码可重用的小对象的 类,在无需或无法使用s t l 而又对内存碎片十分敏感的程序中十分有用。 3 1 2 内存分配器的工作方式 内存分配器,它是管理一个山尚未被分配的内存块( r a w b y t e s ) 所组成的内 存池,能够从内存池中分配任意大小的内存区块。记录结构可以是像这样的简单 的控制块: s t r u e tm e m c o n t r o l b i o e k s t d :s i z e t s i z e ; b o o l a v a i l a b l e ; ; m e m c o n t r o l b i o c k 对象所管理的区块紧接在它的后面,大小为s i z e 字节,然后 又是另一个控制块m e m c o n t r o l b l o e k ,依次类推下去。 程序丌始执行时,内存池起始处只有一个m e m c o n t r o l b l o c k ,并将所有内存 块看成一大块来管理。这就是r o o t 控制块,永远不离开开始位景。下图3 一卜2 显示程序刀= 始时i m 的内存池的布局。 图3 - 1 2榉序开始时内存布局 1 7 桀十课章现场教学和教学过程记录软件设计的研究 j :海| i i | j 范人学坝i :学位论文 每次分配申请都会引发内存的一次线性搜寻,以求找到一个合适区块( 等于 或大于申请值) 来满足需求。每次归还区块,同样需要一次线性搜寻,找出待归 还区块的i j 一区块并调整其大小。这个方法在时问上并不是特别高效。但在空日j 上的额外空日j | 丌销也是相当小的,对于每一区块,只需额外付出一个s i z e 和一 个b o o l 。大多数的实际场合下甚至可以将s i z e 中的一个b i t 挪作为a v a i l a b l e 来 用,从而将m e m c o n t r o l b i o c k 包装成极限: s t r u c tm e m c o n t r o l b l o c k s u t :s i z ets i z e :3 1 位 b o o la v a i l a b l e :1 位 5 如果将指向前一个和指向下一个m e m c o n t r o l b l o c k 的指针储存在每个 m e m c o n t r o l b l o c k 中,就可以得到常数时间的内存块归还动作。这是因为,根据 待归还区块,我们可以直接取得i 临近的区块并调整它。这种控制块的结构如下: s t r u c tm e m c o n t r o l b l o c k m e m c o n t r o l b l o c k + p r e v : m e m c o n t r o l b l o c k + n e x t : b o o i a v a i l a b l e ; ; 下图3 - 1 - 3 显示了这样一种支持双向对列的内存布局。可以看到其中已经不需要 s i z e ,因为我们很容易可以通过计算得到内存区块的大小:t h i s - - n e x t t h i s 。 但是每一块的内存,必须要有两个指针和一个b o o l 的额外开销,并且管理也要 消耗时问。每一种管理的技术都是有利有弊的,没有任何一种内存管理技术能够 称的上完美,每一种方法在某种情况下的执行效率都可能比其他方式要差,也可 能在另一种情况下的执行效率都比其他方式要好。因此,我们并不需要将通用型 的内存管理器最佳化。我们要把重点放在对系统中的小型对象的专用型的内存管 理上。 幕十谍章现场教学和教学过程记录软件设计的研究 f :海师范人学颂i :学位论文 幽3 - 1 - 3一种支持双向对列的内存布局 3 1 3 可重用的小对象内存分配体系的类的层次结构 可重用的小对象内存分配体系由四个层次组成。其中下层功能供上层使用, 而上层是下层的继承和封装。 第一层也就是最底层的是m e m b l o c k 类。每一个m e m b l o c k 对象封装和管理 一大块内存块,这个内存块本身又包含多个固定大小的内存块b l o c k 。m e m b l o c k 对象实现了分配和释放内存块的方法,使用者可以根据它来配置和释放内存块。 如果m e m b i o e k 对象里面没有剩余的b l o c k s ,分配函数返回0 值代表失败。 第二层是m e m a l l o e 类,其对象以m e m b l o c k 类对象为组件,m e m a l l o c 知 道怎么分配和释放混合大小的内存块,而不限于m e m b l o c k 对象的大小。它的容 量只受限于可获得的堆内存的大小。m e m a l l o c 主要是满足那些累计超过 m e m b l o c k 容量的内存块的分配请求。m e m a i l o e 透过一个数组v e c t o r 将 m e m b l o e k 组合在一起以达成目的。如果有一个新的分配请求,但是现有的 m e m b l o c k 全部被占用的话,此时m e m a l l o c 会分配一个新的m e m b l o c k ,并把 它加入到v e c t o r 中,从而由新加入的m e m b l o c k 满足分配的要求。 第三层是o b j e c t a i l o c 类,它提供了通用的内存分配和释放的方法,可以分配 各种大小的对象。o b j e c t a u o c 也是包含多个m e m a l l o c 对象组成的v e c t o r ,每一 个负责分配某一特定大小的对象。根据分配申请的字节的不同,0 b j e c t a l i o c 对 象会将内存分配申请给内部的某个m e m a i l o c 。但是如果申请的数目太多,则由 系统提供的:o p e r a t o rn e w 来处理。 第四层也就是最上的一层是m y o b j e c t 类。它封装了m e m a l l o c ,这样它就可 以向其他的c + + 类提供封装性良好的内存分配的方法。m y o b j e c t 类重载了全局 o p e r a t o rn e w 和o p e r a t o rd e l e t e 全局运算符,并将任务转给o b j e c t a l l o c 对象去完 成。任何从m y o b j e c t 继承的对象都可以按照所定义的方法执行内存分配。 3 1 4m e m b l o c k 类的定义和实现 每一个m e m b i o c k 对象都封装并管理一大块由混合大小内存块组成的内存, 这个内存块本身又包含多个固定大小的内存块b l o c k 。m e m b l o c k 对象实现了分 1 9 是于谋章现场教学和教学过程记录软件设计的研究海9 i l j 范人学硕l :学位论文 配和释放内存块的方法,使用者可以根据它来配置和释放内存块。如果 m e m b l o c k 对象罩面没有剩余的b l o c k s ,分配函数返回0 值代表失败。可以在对 象构造期间设定区块的大小和数量。m e m b i o c k 的定义如下: s t r u c tm e m b i o c k 。 v o i di n i t ( s t d :s i z e t b l o c k s i z e ,u n s i g n e dc h a rb l o c k s ) : v o i dr e l e a s e 0 : v o i d + a u o c a l e ( s t d :s i z e _ tb l o c k s i z e ) : v o i dd e a l l o c a t e ( v o i d + p ,s t d :s i z etb l o c k s i z e ) : u n s i g n e dc h a r + p d a t a _ ; u n s i g n e dc h a rf i r s t a v a i l a b l e b l o c k _ ; u n s i g n e dc h a rb l o c k s a v a i l a b l e ; ; 除了用一个指针指向被管理的内存块本身外,m e m b l o c k 还保存以下的整数值: f i r s t a v a i l a b l e b l o c k :m e m b l o c k 内的第一个可用内存区块的索引号 b l o c k s a v a i l a b l e :m e m b l o e k 内的可以使用的区块总的数目 m e m b l o c k 的定义如下图3 - 1 - 4 所示,一个内含2 5 5 个内存区块的m e m b l o c k , 每个区块都是4 个字节: 幽3 - 1 - 4m e m b i o c k 的定义 m e m b l o c k 的接口函数很简单。包括函数i n i t ( ) 的目的是用来初始化 m e m b l o c k 对象,a l l o c a t e ( ) 的作用是分配内存块,d e a l l o c a t e ( ) 的作用是释 放内存块。注意必须传递字节数给a l l o c a t e ( ) 和d e a l l o c a t e ( ) ,因为m e m b l o c k 没有保留其字节数。如果是系统的默认的n e w ( ) 函数,系统会以“c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论