操作系统实验心得(精选多篇)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统实验心得(精选多篇)

每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。

1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个。当然网上的东西很乱很杂,自己要能够学会筛选。不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,慢慢研究,最后才能事半功倍。

2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。

3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。

4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。

在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的

1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址

2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

3)其他

例如:

定义了指针后记得初始化,在使用的时候记得判断是否为null

在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等

在变量处理的时候变量的格式控制是否合理等

解决方法

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要执行的第一条指令处中断,从console 窗口显示的内容中,我们可以获得关于bios第一条指令的相关信息,然后查看cpu在没有执行任何指令之前主要寄存器中的数据,以及内存中的数据。

2.2.3 调试软盘引导扇区程序

练习从0x7c00处调试软盘引导扇区程序;查看boot.lst文件;调试过程——软盘引导扇区程序的主要任务就是将软盘中的loader.bin文件加载到物理内存的0x1000处,然后跳转到loader程序的第一条指令继续执行loader程序;

2.2.4 调试加载程序

调试过程——loader程序的主要任务是将操作系统内核加载到内存中,然后让cpu进入保护模式并且启用分页机制,最后进入操作系统内核开始执行;

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文件;查看应用程序创建另一个应用程序的进程的执行结果。

相关文档
最新文档