操作系统实验心得(多篇).doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 心得
- 资源描述:
-
操作系统实验心得(精选多篇) 第一篇:操作系统实验心得 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到件系统的详细解析。这些都能在上找到。也因为这样,整个课程设计下来,我浏览的相关页已经超过了100个(不完全统计)。当然上的东西很乱很杂,自己要能够学会筛选。不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域 3)其他 例如: 1 定义了指针后记得初始化,在使用的时候记得判断是否为null 2 在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等 3 在变量处理的时候变量的格式控制是否合理等 解决方法 1.利用gdb逐步查找段错误: 2.分析core件 3.段错误时启动调试: 4.利用backtrace和objdump进行分析: 总而言之,对待课设要像对待自己的作品一样,不要当作任务来完成。 第二篇:操作系统实验总结 操作系统实验总结 学号: 姓名: 班级: 在本学期的计算机操作系统这门课学习当中,为了更的了解操作系统相关知识,我们通过os lab平台做了几个实验。在实验室的过程中,我对课堂上学到的操作系统的一些知识有了新的认识,同时还接触到了操作系统的相关源代码,而且通过实验的运行效果了解了平时我们看不到的操作系统的一些状况,收获还是很大的。下面先简要归纳在实验课上我做的几个实验的主要实验内容和实验步骤: 实验一:实验环境的使用 实验步骤: 1.1启动os lab os lab每次启动后都会首先弹出一个用于注册用户信息的对话框(可以选择对话框标题栏上的“帮助”按钮获得关于此对话框的帮助信息)。在此对话框中填入学号和姓名后,点击“确定”按钮完成本次注册。观察os lab主窗口的布局。os lab主要由下面的若干元素组成:菜单栏、工具栏以及停靠在左侧和底部的各种工具窗口,余下的区域用来放置编辑器窗口。 1.2 学习os lab的基本使用方法 练习使用os lab编写一个windows控制台应用程序,熟悉os lab的基本使用方法(主要包括新建项目、生成项目、调试项目等)。 实验二:操作系统的启动 实验步骤: 2.1 准备实验 启动os lab,新建一个eos kernel项目,在“项目管理器”窗口中打开boot件夹中的boot.asm和loader.asm两个汇编件,按f7生成项目,生成完成后,使用windows资源管理器打开项目件夹中的debug件夹。找到由boot.asm生成的软盘引导扇区程序boot.bin件,找到由loader.asm生成的loader程序loader.bin件,记录下此件的大小1566字节。 2.2 调试eos操作系统的启动过程 2.2.1 使用bochs做为远程目标机 将调试时使用的远程目标机修改为bochs 2.2.2 调试bios程序 按f5启动调试, bochs在cpu要执行的第一条指令(即bios的第一条指令)处中断,从console窗口显示的内容中,我们可以获得关于bios第一条指令的相关信息,然后查看cpu在没有执行任何指令之前主要寄存器中的数据,以及内存中的数据。 2.2.3 调试软盘引导扇区程序 练习从0x7c00处调试软盘引导扇区程序;查看boot.lst件;调试过程——软盘引导扇区程序的主要任务就是将软盘中的loader.bin件加载到物理内存的0x1000处,然后跳转到loader程序的第一条指令(物理地址0x1000处的指令)继续执行loader程序; 2.2.4 调试加载程序 调试过程——loader程序的主要任务是将操作系统内核(kernel.dll件)加载到内存中,然后让cpu进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳转到kernel.dll的入口点执行); 2.2.5 调试内核 2.2.6 eos启动后的状态和行为 查看eos的版本号;查看eos启动后的进程和线程的信息;查看有应用程序运行时进程和线程的信息 实验三:进程的创建 实验步骤: 3.1 准备实验 启动os lab;新建一个eos kernel项目;分别使用debug配置和release配置生成此项目,从而在该项目件夹中生成完全版本的eos sdk件夹;新建一个eos应用程序项目;使用在第3步生成的sdk件夹覆盖eos应用程序项目件夹中的sdk件夹 3.2 练习使用控制台命令创建eos应用程序的进程 3.3 练习通过编程的方式让应用程序创建另一个应用程序的进程 使用os lab打开本实验件夹中的newproc.c件;查看应用程序创建另一个应用程序的进程的执行结果。 3.4 调试createprocess函数 调试createprocess函数创建进程的过程;分别验证应用程序和操作系统内核在进程的4g虚拟地址空间中所处的位置; 3.5 调试pscreateprocess函数 调试pspcreateprocessenvironment函数;调试进程控制块的创建过程;调试初始化进程控制块中各个成员变量的过程。 3.6 练习通过编程的方式创建应用程序的多个进程 使用os lab打开本实验件夹中的参考源代码件newtwoproc.c,仔细阅读此件中的源代码。使用newtwoproc.c件中的源代码替换eos应用程序项目中eosapp.c件内的源代码,生成后启动调试,查看多个进程并发执行的结果。 实验四:线程的状态和转换 实验步骤: 4.1 准备实验 启动os lab,新建一个eos kernel项目 4.2 调试线程状态的转换过程 查看一下loop命令执行的效果;调试线程状态转换的过程;对断点进行一些调整。 4.2.1 线程由阻塞状态进入就绪状态: 将线程从等待队列中移除;将线程的状态由waiting修改为zero;将线程插入其优先级对应的就绪队列的队尾;将线程的状态由zero修改为ready。 4.2.2 线程由运行状态进入就绪状态: 线程中断运行,将线程中断运行时的上下保存到线程控制块中;如果处于运行状态的线程被更高优先级的线程抢先,就需要将该线程插入其优先级对应的就绪队列的队首。(注意,如果处于运行状态的线程主动让出处理器,例如时间片用完,就需要将程插入其优先级对应的就绪队列的队尾);将线程的状态由running修改为ready 4.2.3 线程由就绪状态进入运行状态: 将线程从其优先级对应的就绪队列中移除;将线程的状态由ready修改为zero;将线程的状态由zero修改为running;将线程的上下从线程控制块(tcb)复制到处理器的各个寄存器中,让线程从上次停止运行的位置继续运行。 4.2.4 线程由运行状态进入阻塞状态: 将线程插入等待队列的队尾;将线程的状态由running修改为waiting;将线程中断执行,并将处理器上下保存到该线程的线程控制块中。 4.3 为线程增加挂起状态 观察loop线程被挂起的情况:删除之前添加的所有断点;按f5启动调试;待eos启动完 毕,在eos控制台中输入命令“loop”后按回车。此时可以看到loop线程的执行计数在不停增长,说明loop线程正在执行,记录下loop线程的id;按ctrl+f2切换到控制台2,输入命令“suspend 31”(如果loop线程的id是31)后按回车;按ctrl+1切换回控制台1,可以看到由于loop线程已经成功被挂起,其执行计数已经停止增长了。 在psresumthread函数第119行需要添加的代码的流程可以是:首先调用list remove entry函数将线程从挂起线程队列中移除, 然后调用pspreadythread函数将线程恢复为就绪状态,最后调用pspthreadschedule宏函数执行线程调度,让刚刚恢复的线程有机会执行。 实验过程: 做实验时,最开始并不是很了解os lab平台的使用,即使对着老师给的实验教程做还是不怎么会,于是请教会做的同学,通过同学的讲解我知道了怎样在os lab平台上建立项目,怎样更改路径并找到项目的源件等等基本操作。 掌握对平台的简单应用后,做后面的实验我是按照实验教程上的步骤一步步的实施,并且每次都认真观察相应的运行结果,每个实验都会建议我们学习实验教程前面的理论部分,我想如果对他的理论不熟悉,就算试验成功了我也不知道为什么,所以我一般在做实验前会对前面的理论部分进行简要的学习和熟悉。做实验的过程中,有时候按照实验教程上的步骤做平台还是会出现一些错误,比如做实验三到调试createprocess函数时,出现的调试异常对话框中,本来是要点击“是”的,但做到这里电脑总是会出现像死机一样的状况,关掉平台重做到这里老是出现同样的问题,最后换电脑也是这样,然后我尝试不按照实验步骤点击“是”也不行,最后还是又还了电脑才做成功,问其他同学也有出现同样的问题,我想可能是平台和电脑上有什么地方有冲突吧。 之后做试验是遇到问题我还是选择多问同学,毕竟每个人擅长的是不同的,有些问题这个同学会解决,有些问题则是那个同学才懂解决,通过互相交流和学习,我们通过实验不仅巩固了课堂上学到的相关知识,也对操作系统有了更深的了解。 体会: 其实做完实验我还是不能保证我对os lab这个平台有很的全面的了解,但是对一些基本操作及其快捷键我算是大致掌握了,通过这个平台我也是认识到了“没有做不到的,只有想不到的”,我觉得创建这个平台的人们真的是很了不起,这个平台让我们便动手便了解了平时我们看不到的操作系统的相关知识。要做实验,得按照实验教程上面的内容一步步落实,要边做变领悟相关原理及运行结果的出现的原因,这样我们才能在试验中学到更多、掌握更多。其次,也遇到问题我们自然是要先自己思考,通过不同的尝试来解决,之后不能解决的我们要多向老师同学请教,通过互相交流得来的知识也是会让我们难忘的。 第三篇:操作系统实验六 void * my_malloc(unsigned int size){ // int i; // linker *p=first; // for(i=size;i =heap_size p==null;i++) //p=p- next; // if(i heap_size)//空?间?不?足á? //return null; // if(i==heap_size){ ////p=(l.n+a)- first; //delete p;} // else // {//p=(l.n+i)- first; //int j; ////word *w; //int temp; //for(j=heap_size;j j++){temp=pow(2,j);w=p+temp; l.delet(p,i);}p- tag=1;p- kval=a;return p; //return null; if(size first- size) return null; else { static linker* p=(struct linker *) heap[heap_size-(first- size)];p- size=size; linker* tem=first; while(tem!=null) tem=tem- next; tem=p; first- size=(first- size)-size; return tem; } } void my_free(void * addr){ linker* p,*tem; p=first; while((linker*) addr- size!=p- next- size) p=p- next; tem=p- next; p- next=tem- next; first- size=first- size+tem- size; delete tem; } l.insert(w,j);} 第四篇:西工大操作系统实验2 实验二 freebsd的应用软件安装 问题: 目前实验室安装的是一个运行在windows xp虚拟机上的freebsd操作系统,是可视化桌面环境的命令行界面,上边只有最基本的unix操作系统,没有任何应用软件。 现在如果想安装一些常用软件,像编写java程序必须的jdk虚拟机,作为服务器常用的smtp邮件服务器端软件,可以远程登录freebsd的ssh开启方式… 这次实验主要的问题就是: 请问如何使用freebsd安装应用软件? 要求: 1、请查阅资料,了解freebsd 安装软件的主要方式,每种方式的具体步骤、操作指南; 2、学习使用freebsd安装方法的一种进行安装简单的ssh。 3、详细记录探索学习的内容和实验的整个过程,包括资料的查询、资料的来源(资料名称、址等)、所做的各种尝试、以及最终的结果(包含截屏); 4、对整个实验过程进行分析总结,给出详细步骤; 5、将记录和分析总结整理成实验报告以word件格式提交到ftp上; 6、实验报告件按“实验二_班级_学号_姓名”格式命名; 7、实验报告提交的最后期限为下周。 提示: 1、首先可以学习使用虚拟机vmware挂载u盘,读取u盘内容的方式,这样可以使用命令使虚拟机中的freebsd可以获得u盘的内容。 2、其次可以研究使用虚拟机挂载虚拟光驱并加载freebsd映像,这样可以使用命令读取光盘的内容。 第五篇:实验1:认识常见的操作系统 实验一、认识常见的操作系统 计算机系统由硬件系统和软件系统两部分组成。硬件系统是用户可以直接看见的部分,是完成用户各种任务的物质基础,而软件系统是对硬件功能的扩充,是人类编制出来,为方便人们使用计算机硬件或为完成某一特定任务和目标而编制的计算机程序。软件因作用不同又可分为系统软件和应用软件。操作系统是最重要的一种系统软件,是对硬件系统的第一次扩充。 自从第一代操作系统问世以来,随着计算机应用的发展,人们对计算机资源共享、通讯、和计算机效率等诸方面的要求越来越(在 搜索更多的 9 / 9展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




操作系统实验心得(多篇).doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4510774.html