上机实践报告project2.pdf

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实践报告 课程名称:操作系统实践 年级: 12 上机实践成绩: 指导教师:全红艳 姓名:修阳 上机实践名称:Pintos Project2 学号:10122510325 上机实践日期: 上机实践编号:No.4 组号: 上机实践时间: 一、目的 1) 了解Pintos 的现有用户程序处理的功能 2) 了解Pintos 提供的用户程序处理源代码 3) 完善 Pintos 的用户程序处理的功能 二、内容与设计思想 1、掌握Pintos 的磁盘申请、复制等功能 2 、明确Pintos 的用户程序处理中存在的问题 3、具体完成以下功能 (a )进程终止时输出信息 (b) 参数功能 (c) 系统调用功能 ( d) 禁止对可执行文件的写入功能 4 、撰写实验报告及项目说明 三、使用环境 Ubuntu 12,Pinos ,Geany ,C 语言 四、实验过程与分析、调试过程 1、创建虚拟磁盘  在命令行输入 pintos/src/userprog ,进行make—build ,然后输入创建磁盘及对其进行 分区的指令, 初始化磁盘后复制,将可执行文件 elf 装入 disk pintos-mkdisk filesys.dsk  2           pintos -f –q               pintos -p ../../examples/echo -a echo -- -q        pintos -q run echo x                第 1 页 共 23 页 2.Pintos 的用户程序处理中存在的问题 当系统需要执行一个文件时,就必须先对执行过程的需要的参数进行传递。比如用哪种 模式运行,需要用到的文件名称与路径是什么。用一个数组来进行存储,并且把名字和参数 分开处理。传递参数时,把堆栈里的参数地址存放在一个新的数组里,以备后用。然后执行 字对齐,分别把参数地址、参数的个数、返回地址压栈。 系统调用是由系统提供的一组完成底层操作的函数集合,由用户程序通过中断调用,系 统根据中断向量表和中断服务号确定函数调用,调用相应的函数完成相应的服务。 此外还有没有内部同步,并行的访问会互相影响,需要用到同步来保证同一时间只有一 个进程能访问文件系统代码。一个文件系统被用了多次后会产生大量外部碎片。当操作系统 准备运行某一个程序,而这个程序在磁盘上保存的程序代码被修改,则操作系统在运行是, 可能会出现异常结果等问题 五、实验总结 对于这么大而复杂的工程,着实无从下手,难度太大,需要修改的文档和函数非常多基 本都是借鉴参考,还是有大量问题没有解决,自己的代码编写能力必须加强,通过不断学习 改进提高动手能力,争取以后自己完成项目    第 2 页 共 23 页 项目 2 文档 10122510325 修阳 第 3 页 共 23 页 1. 需求分析(Pintos 中存在的问题 ) 使得程序能够通过系统调用来与操作系统交互。当用户程序想要用一些内核的功能时, 需要用到系统调用。现在只是实现了输出一段消息并且终止用户程序,需要更改代码来实现 系统调用所需要的一切。 2.改进的思想及流程 a) 进程终止消息 b) 参数传递 c) 系统调用 d) 实现禁止对可执行文件进行读写 3.实现方法(代码及说明) a) 进程终止消息 int process_wait (tid_t child_tid) {

文档评论(0)

152****7770 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档