操作系统实验心得doc文档格式.docx

上传人:b****3 文档编号:16713134 上传时间:2022-11-25 格式:DOCX 页数:16 大小:28.48KB
下载 相关 举报
操作系统实验心得doc文档格式.docx_第1页
第1页 / 共16页
操作系统实验心得doc文档格式.docx_第2页
第2页 / 共16页
操作系统实验心得doc文档格式.docx_第3页
第3页 / 共16页
操作系统实验心得doc文档格式.docx_第4页
第4页 / 共16页
操作系统实验心得doc文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

操作系统实验心得doc文档格式.docx

《操作系统实验心得doc文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统实验心得doc文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

操作系统实验心得doc文档格式.docx

大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。

3、敢于攻坚,越是难的问题,越是要有挑战的心理。

这样就能够达到废寝忘食的境界。

当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。

但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。

4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。

比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。

在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。

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

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

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

3)其他

例如:

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

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

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

解决方法

1.利用gdb逐步查找段错误:

2.分析core文件

3.段错误时启动调试:

4.利用backtrace和objdump进行分析:

总而言之,对待课设要像对待自己的作品一样,不要当作任务来完成。

第二篇:

操作系统实验总结

操作系统实验总结

学号:

姓名:

班级:

在本学期的计算机操作系统这门课学习当中,为了更好的了解操作系统相关知识,我们通过oslab平台做了几个实验。

在实验室的过程中,我对课堂上学到的操作系统的一些知识有了新的认识,同时还接触到了操作系统的相关源代码,而且通过实验的运行效果了解了平时我们看不到的操作系统的一些状况,收获还是很大的。

下面先简要归纳在实验课上我做的几个实验的主要实验内容和实验步骤:

实验一:

实验环境的使用

实验步骤:

1.1启动oslab

oslab每次启动后都会首先弹出一个用于注册用户信息的对话框(可以选择对话框标题栏上的“帮助”按钮获得关于此对话框的帮助信息)。

在此对话框中填入学号和姓名后,点击“确定”按钮完成本次注册。

观察oslab主窗口的布局。

oslab主要由下面的若干元素组成:

菜单栏、工具栏以及停靠在左侧和底部的各种工具窗口,余下的区域用来放置编辑器窗口。

1.2学习oslab的基本使用方法

练习使用oslab编写一个windows控制台应用程序,熟悉oslab的基本使用方法(主要包括新建项目、生成项目、调试项目等)。

实验二:

操作系统的启动

2.1准备实验

启动oslab,新建一个eoskernel项目,在“项目管理器”窗口中打开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.6eos启动后的状态和行为

查看eos的版本号;

查看eos启动后的进程和线程的信息;

查看有应用程序运行时进程和线程的信息

实验三:

进程的创建

3.1准备实验

启动oslab;

新建一个eoskernel项目;

分别使用debug配置和release配置生成此项目,从而在该项目文件夹中生成完全版本的eossdk文件夹;

新建一个eos应用程序项目;

使用在第3步生成的sdk文件夹覆盖eos应用程序项目文件夹中的sdk文件夹

3.2练习使用控制台命令创建eos应用程序的进程

3.3练习通过编程的方式让应用程序创建另一个应用程序的进程

使用oslab打开本实验文件夹中的newproc.c文件;

查看应用程序创建另一个应用程序的进程的执行结果。

3.4调试createprocess函数

调试createprocess函数创建进程的过程;

分别验证应用程序和操作系统内核在进程的4g虚拟地址空间中所处的位置;

3.5调试pscreateprocess函数

调试pspcreateprocessenvironment函数;

调试进程控制块的创建过程;

调试初始化进程控制块中各个成员变量的过程。

3.6练习通过编程的方式创建应用程序的多个进程

使用oslab打开本实验文件夹中的参考源代码文件newtwoproc.c,仔细阅读此文件中的源代码。

使用newtwoproc.c文件中的源代码替换eos应用程序项目中eosapp.c文件内的源代码,生成后启动调试,查看多个进程并发执行的结果。

实验四:

线程的状态和转换

4.1准备实验

启动oslab,新建一个eoskernel项目

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,输入命令“suspend31”(如果loop线程的id是31)后按回车;

按ctrl+1切换回控制台1,可以看到由于loop线程已经成功被挂起,其执行计数已经停止增长了。

在psresumthread函数第119行需要添加的代码的流程可以是:

首先调用listremoveentry函数将线程从挂起线程队列中移除,然后调用pspreadythread函数将线程恢复为就绪状态,最后调用pspthreadschedule宏函数执行线程调度,让刚刚恢复的线程有机会执行。

实验过程:

做实验时,最开始并不是很了解oslab平台的使用,即使对着老师给的实验教程做还是不怎么会,于是请教会做的同学,通过同学的讲解我知道了怎样在oslab平台上建立项目,怎样更改路径并找到项目的源文件等等基本操作。

掌握对平台的简单应用后,做后面的实验我是按照实验教程上的步骤一步步的实施,并且每次都认真观察相应的运行结果,每个实验都会建议我们学习实验教程前面的理论部分,我想如果对他的理论不熟悉,就算试验成功了我也不知道为什么,所以我一般在做实验前会对前面的理论部分进行简要的学习和熟悉。

做实验的过程中,有时候按照实验教程上的步骤做平台还是会出现一些错误,比如做实验三到调试createprocess函数时,出现的调试异常对话框中,本来是要点击“是”的,但做到这里电脑总是会出现像死机一样的状况,关掉平台重做到这里老是出现同样的问题,最后换电脑也是这样,然后我尝试不按照实验步骤点击“是”也不行,最后还是又还了电脑才做成功,问其他同学也有出现同样的问题,我想可能是平台和电脑上有什么地方有冲突吧。

之后做试验是遇到问题我还是选择多问同学,毕竟每个人擅长的是不同的,有些问题这个同学会解决,有些问题则是那个同学才懂解决,通过互相交流和学习,我们通过实验不仅巩固了课堂上学到的相关知识,也对操作系统有了更深的了解。

体会:

其实做完实验我还是不能保证我对oslab这个平台有很好的全面的了解,但是对一些基本操作及其快捷键我算是大致掌握了,通过这个平台我也是认识到了“没有做不到的,只有想不到的”,我觉得创建这个平台的人们真的是很了不起,这个平台让我们便动手便了解了平时我们看不到的操作系统的相关知识。

要做好实验,得按照实验教程上面的内容一步步落实,要边做变领悟相关原理及运行结果的出现的原因,这样我们才能在试验中学到更多、掌握更多。

其次,也遇到问题我们自然是要先自己思考,通过不同的尝试来解决,之后不能解决的我们要多向老师同学请教,通过互相交流得来的知识也是会让我们难忘的。

第三篇:

操作系统实验六

void*my_malloc(unsignedintsize){

//inti;

//linker*p=first;

//for(i=size;

i<

=heap_size&

&

p==null;

i++)

//p=p->

next;

//if(i>

heap_size)//空?

间?

不?

足á

?

//returnnull;

//if(i==heap_size){

////p=(l.n+a)->

first;

//deletep;

}

//else

//{//p=(l.n+i)->

//intj;

////word*w;

//inttemp;

//for(j=heap_size;

jtag=1;

p->

kval=a;

returnp;

if(size>

first->

size)

returnnull;

else

{

staticlinker*p=(structlinker*)&

heap[heap_size-(first->

size)];

size=size;

linker*tem=first;

while(tem!

=null)

tem=tem->

tem=p;

first->

size=(first->

size)-size;

returntem;

}

voidmy_free(void*addr){

linker*p,*tem;

p=first;

while((linker*)addr->

size!

=p->

next->

p=p->

tem=p->

p->

next=tem->

size=first->

size+tem->

size;

deletetem;

l.insert(w,j);

第四篇:

西工大操作系统实验2

实验二freebsd的应用软件安装

问题:

目前实验室安装的是一个运行在windowsxp虚拟机上的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:

认识常见的操作系统

实验一、认识常见的操作系统

计算机系统由硬件系统和软件系统两部分组成。

硬件系统是用户可以直接看见的部分,是完成用户各种任务的物质基础,而软件系统是对硬件功能的扩充,是人类编制出来,为方便人们使用计算机硬件或为完成某一特定任务和目标而编制的计算机程序。

软件因作用不同又可分为系统软件和应用软件。

操作系统是最重要的一种系统软件,是对硬件系统的第一次扩充。

自从第一代操作系统问世以来,随着计算机应用的发展,人们对计算机资源共享、通讯、和计算机效率等诸方面的要求越来越(在好范文网搜索更多的文章:

)高,操作系统也因此发展得越来越快,市面上不同目的、各种特色的操作系统也应运而生。

1.目的和要求

通过internet和/或图书馆馆藏资源,让学生从课堂以外,从感性上认识操作系统这种系统软件的功能,了解市场上常见的操作系统,为后面进一步的学习打下基础。

2.实验内容

搜索并归纳如下信息:

1什么是操作系统?

你买回一台新计算机后,○要装的第一个软件是什么?

为什么必须在计算机上安装操作系统?

2目前市场上常见的操作系统有哪些类型?

3请尽可能多地罗列出目前市场上已有的操作系统产品,○分别给出这些操作系统所取得的成就,采用的新技术,以及这些操作系统的特点、特色和不足,指明它们的开发公司和开发年代。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1