一、实验目的

熟练Linux创建进程fork操作。

二、实验内容

  • 使用Vim编辑器,在服务器os_exp/exp2_process/fork_two_children.c文件上编写一个程序实现一个进程创建两个子进程(只创建两个子进程,多的不要)。
  • 查看进程树(命令pstree -p pid,详情见进程相关命令

提示:

  • 使用unsigned sleep(unsigned seconds)挂起进程,以便打印进程树
  • 打印进程树命令pstree -p pid,或者用命令pstree -p $(pidof fork_two_children)(不是好主意,因为大家的可执行程序都是这个名称)

三、实验要求

实验基本要求见:所有实验要求

截止时间:见课堂派

实验报告提交:提交到课堂派,同时上传pdf和markdown文档

三、评分

本次作业满分为10分。

  • 只创建两个子进程,才能得满分。多于两个子进程,最多得7分。
  • 代码原理及结果正确,得5分
  • 分析源代码,得5分

深入分析Linux中的以下源代码,建议使用Linux 0.12:(参照上课讲的printf源码分析)

  • 学号最后一位数为奇数:PCB,不能简单给出属性的含义,如state表示进程状态,还应给出其取值,进程状态是怎么转换的
  • 学号最后一位数为偶数:fork

四、 实验报告

如果很尽力去做了,但代码运行不正确,或者部分功能未能实现。没关系,将你所做的努力写到报告里,依然可以得高分,因为实验重在展示你所做的努力,而非最后结果。

  • 做了什么
  • 碰到什么样的问题
  • 针对遇到的问题,你做了哪些努力

如果运行结果正确,按以下方式来写:

  • 结合源代码,解释代码背后的原理(对于别人不能一眼就能明白你代码要做什么的,你要给出解释)
  • 打印出进程树

以下是代码运行正确的报告格式:

[!Warning]

实验报告内容应结合源代码分析,而不是贴个源代码,对源代码进一步解释,源代码只是服务于你的报告内容。

因此,应该按模块来讲解,而不是把整个代码文件贴上去,做增强版代码解释。

以下模板只是作为参考,可以根据需要,增加和删减章节。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2025-03-14 14:38

results matching ""

    No results matching ""