此为本人在进行实验时所做的实验日志,仅供参考。

一、比较trace09~10执行不同结果,编程实现内建命令bg和fg的do_bgfg()处理函数:
首先在之前实验的基础上执行trace09~10比较不同,得到结果如下:
HNU计算机系统实验shlab7&shlab8
HNU计算机系统实验shlab7&shlab8
HNU计算机系统实验shlab7&shlab8
HNU计算机系统实验shlab7&shlab8
可以看到缺少了对bg和fg指令的处理,直接跳过,于是查看bg和fg指令的用法得到:bg指令可以将一个在后台暂停的命令变成继续执行,fg可以将后台中的命令调制到前台继续运行,而加上%表示作业,不加表示进程(通过练习题7-1-1得到)。所以可以进行编程得到如下代码:
HNU计算机系统实验shlab7&shlab8
即将do_bgfg函数增加一个if判断分支,在接收到bg或fg命令后发送SIGCONT信号给所有的进程,然后将某个指定进程的状态切换为BG或者FG,由此实现bg和fg指令

二、验证trace09~10:
HNU计算机系统实验shlab7&shlab8
HNU计算机系统实验shlab7&shlab8
trace09跟踪文件主要是增加了一条bg %2指令,即将作业号为2的作业调制后台运行;而trace10跟踪文件主要是增加了一条fg %1指令,即将作业号为1的作业调制前台运行,最终将我的代码进行测试,得到测试结果如下:
HNU计算机系统实验shlab7&shlab8
HNU计算机系统实验shlab7&shlab8
可以看到和上面的标准结果一致,说明代码运行正确。

三、验证trace11~15并解释与记录:
HNU计算机系统实验shlab7&shlab8
HNU计算机系统实验shlab7&shlab8

相关文章:

  • 2022-01-03
  • 2021-12-03
  • 2021-12-03
  • 2022-01-17
  • 2021-05-10
  • 2021-06-02
  • 2022-12-23
  • 2021-06-21
猜你喜欢
  • 2021-10-03
  • 2021-07-06
  • 2021-11-17
  • 2021-11-25
  • 2021-07-09
  • 2021-04-02
  • 2021-11-06
相关资源
相似解决方案