操作系统实践报告-综合版.doc

  1. 1、本文档共102页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品文档 PAGE . 操作系统实验报告 专业名称: 软件工程 学生年级: 2018级本科 指导教师: 课程性质: 专业必修 研修时间: 2019~2020学年第1学期 实验地点: 软件学院 2020年 1月 1日 Pintos 实验统计 请自评你的项目完成情况,在表中相应位置划√。 Pintos Project1 内容\完成情况 完成圆满 基本 完成 完成 大部分 还有很多 没完成 1. 消除忙等 √ 2. 优先级调度 √ 3. 高级调度 √ Pintos Project2 内容\完成情况 完成 圆满 基本 完成 完成 大部分 还有很多 没完成 1. 进程终止的终端提示 √ 2. 参数传递 √ 3. 系统调用 √ 4. 运行文件禁止写操作 √ 目 录 TOC \o "1-3" \h \z \u 摘 要 4 基础实践1 5 基础实践2 6 Pintos项目1 7 Pintos项目2 10 摘 要 基础实践1 一、目的 掌握虚拟机安装方法 掌握Linux的基本使用方法 掌握Pintos的安装方法 掌握Pintos的编译、跟踪及动态调试方法 二、内容与设计思想 1、下载软件Vitualbox及虚拟机映像文件 2、安装虚拟机 3、熟悉Linux的基本命令和使用方法 4、学会使用Linux系统的常用命令 5、学会Pintos的编译、跟踪及动态调试方法 三、使用环境 Ubuntu 10.04,Pintos,C语言 四、实验过程与分析、调试过程 1. 下载Oracle VM VirtualBox,下载虚拟机映像文件,安装虚拟机 2. 3. 安装pintos:在官网下载bochs,bochs-2.6.7.tar.gz,下载pintos,pinots.tar.gz,移动到虚拟机中,执行tar zxvf bochs-2.6.7.tar.gz,执行tar zcvf pintos.tar.gz 更新一些脚本,$ sudo apt-get install buid-essential $ sudo apt-get install xorg-dev $ sudo apt-get install bison $ sudo apt-get install libgtk2.0-dev $ sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386 $ sudo apt-get install libncurses5:i386 $ sudo apt-get install g++-multilib 安装bochs:cd bochs-2.6.7 ./configure – enable-gdb-stud make sudo make install 安装和运行pintos:tar zxvf pintos2011.tar.gz cd pintos/src/tjreads make cd build ../../utils/pintos – rum alarm-multiple 五、实验总结 实验的开端,安装,配置环境。 六、附录 基础实践2 一、目的 巩固Ubutu系统命令; 通过例程了解进程、线程的创建及主要函数的使用方法; 掌握用户程序的编辑、编译、调试程序的方法; 学会利用gdb跟踪程序的方法; 了解Pintos工程的结构,学会Pintos的跟踪方法。 二、内容与设计思想 1、编辑几个例程,了解进程、线程的创建及主要函数的使用方法。 2、利用gdb对上述的进程、线程的基本例程进行调试和跟踪,学会断点设置和取消方法,学会在断点处观察变量的方法。 3、了解Pintos工程的结构,学会Pintos的编译、运行及跟踪方法。 三、使用环境 Ubuntu 12,Pinos,gedit或vi,gdb 四、实验过程与分析、调试过程 1. tid_t thread_create (const char *name, int priority, thread_func *function, void *aux) { struct thread *t; struct kernel_thread_frame *kf; struct switch_entry_frame *ef; struct switch_threads_frame *sf; tid_t tid; enum intr_level old_level; ASSERT (function != NULL); /* Allocate thread. */ t = pa

文档评论(0)

184****1086 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档