8.9

进程对 并发地?
AB
AC
AD
BC
BD
CD

8.10 A、fork

B、longjmp,(execve调用成功时不返回)

C、setjmp

8.11 4(2个子进程,1个孙进程,1个父进程各打印一行)

8.12 8(同上,共4个进程,各打印2行)

8.13 432;243;423(三种可能性)

8.14 3次

8.15 5次

8.16 2(子进程和父进程不共享内存)

8.17 Hello 1 Bye 0 2 Bye

Hello 1 0 Bye 2 Bye

Hello 0 1 Bye 2 Bye

8.18 ACE

8.19 (每次fork都使原进程数翻倍)

8.20

#include "csapp.h"int main(int argc, const char *argv[], const char *envp[])
{if (execve("/bin/ls", argv, envp) < 0){printf("/lib/ls not found.\n");return -1;        }return 0;
}

8.21 abc

bac

8.22 假设command不包含空格,如果包含,可调用parseline函数

#include "csapp.h"int mysystem(char *command)
{int status;pid_t pid;char *argv[4];char *a0 = "sh";char *a1 = "-c";if( pid = Fork()==0 ) /*子进程*/{ argv[0] = a0;argv[1] = a1;argv[2] = command;argv[3] = NULL;execve("/bin/sh", args, environ);return -1; //执行异常}else{ /*父进程*/if( waitpid(pid,&status,0) > 0){if(WIFEXITED(status) != 0)return WEXITSTATUS(status);else return status;}else return -1; //wait异常}
}

8.23 第一个信号发送给父进程后,父进程进入信号处理程序,并阻塞了SIGUSR2,此后第二个信号仍可以发送,但之后的信号都被丢弃,最终只有2个信号得到处理。

8.24

#include "csapp.h"const char CONSTANT[4] = "FOO"; int main()
{int status, i;pid_t pid;for (i = 0; i < N; i++)                       if ((pid = Fork()) == 0) { /* Child */     CONSTANT[0] = "A";        // 试图写只读常量exit(100 + i);                   }    while ((pid = waitpid(-1, &status, 0)) > 0) { if (WIFEXITED(status)) {         printf("child %d terminated normally with exit status=%d\n",pid, WEXITSTATUS(status));    }else if(WIFSIGNALED(status)) {printf("child %d terminated by signal %d:", pid, WTERMSIG(status));fflush(stdout);psignal(WTERMSIG(status), NULL);}}/* The only normal termination is if there are no more children */if (errno != ECHILD)                          unix_error("waitpid error");exit(0);
} 

8.25

#include "csapp.h"
#define TimeLimitSecs 5sigjmp_buf env;void tfgets_handler(int sig)
{signal(SIGALRM, SIG_DFL);siglongjmp(env, 1);
}char *tfgets(char *buf, int bufsize, FILE *stream)
{signal(SIGALRM, tfgets_handler)alarm(TimeLimitSecs);int rc = sigsetjmp(env, 1);if(rc == 0) return fgets(buf, bufsize, stream);else return NULL;
}

8.26 暂略

深入理解计算机系统(第三版)家庭作业 第八章相关推荐

  1. [第六章] 深入理解计算机系统第三版 家庭作业参考答案

    6.22 磁道数 d 与 r - x * r 成正比 设 d = k(r - x * r) = kr(1 - x) 总容量 c = 2πxk(r^2)(1 - x) = 2πk(r^2)(x - x^ ...

  2. [第五章] 深入理解计算机系统第三版 家庭作业参考答案

    5.13 A. 画图: 关键路径为第三幅图加粗部分 B. 下界为浮点加法的延迟界限,CPE 为 3.00 C. 整数加法的延迟界限,CPE 为 1.00 D. 关键路径上只有浮点加法 5.14 voi ...

  3. [第三章] 深入理解计算机系统第三版 家庭作业参考答案

    人非圣贤孰能无过,欢迎大家提问与纠错 3.58 long decode2(long x, long y, long z) {y -= z;x *= y;return ((y << 63) ...

  4. 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答

    原题目: **3.63 伪代码分析: x rdi ;n rsi n=n-0x3c(60); if(n>5){-->4005c3 } else{ goto:*(8n+0x4006f8) n= ...

  5. 深入理解计算机系统_3e 第二章家庭作业 CS:APP3e chapter 2 homework

    初始完成日期:2017.9.26 许可:除2.55对应代码外(如需使用请联系 randy.bryant@cs.cmu.edu),任何人可以自由的使用,修改,分发本文档的代码. 本机环境: (有一些需要 ...

  6. 深入理解计算机系统(第三版)

    300M+ 超级清楚 这本书我觉得很棒 最近在自学它 很基础的东西 百度网盘:https://pan.baidu.com/s/1rUHIzjvPZFbWiia-NUHnhQ passwd: 2gsp ...

  7. 深入理解计算机系统(第二版)第四章知识整理

    深入理解计算机系统(第二版)笔记 第四章 处理器体系结构 4.1 Y86指令集体系结构 4.1.1 程序员可见的状态 4.1.2 Y86指令 4.1.3 指令编码 4.1.4 Y86异常 4.1.5 ...

  8. 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

    深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

  9. 深入理解C#第三版部分内容

     最近,粗略的读了<深入理解C#(第三版)>这本技术书,书中介绍了C#不同版本之间的不同以及新的功能. 现在将部分摘录的内容贴在下面,以备查阅. C#语言特性: 1.C#2.0 C#2的主 ...

  10. 深入理解计算机系统(第二版)读书笔记

    八月初开始接触<深入理解计算机系统>这本书,当时看的是英文版,花了一个月的时间大体上过了一遍,但我知道其实还是有很多没看懂的地方,于是借了一本中文版,如今总算可以说我真正看过了这本书,可以 ...

最新文章

  1. Android性能优化典范第五季
  2. html标签自动对齐,sublime,jsx里的html标签自动缩进对齐的插件或者配置?
  3. ngx_http_discard_request_body
  4. SimpleXMLRPC_python xmlrpclib SimpleXMLRPCServer 模块
  5. shell连接远程mongodb数据库
  6. mysql找不到sys_解决方法:①MySQL 闪退 ②服务列表里找不到MySQL ③MySQL服务无法启动...
  7. [导入]构建WCF面向服务的应用程序系列课程(10):安全基础.zip(24.27 MB)
  8. 计算机系统结构的发展现状,浅析计算机系统结构的发展现状和发展方向
  9. 微信小程序地图坐标转换
  10. 连续函数零点定理 介值定理
  11. Python爬虫 之 破解 cookie 代理 验证码 实战
  12. fileman命令的帮助+?
  13. nssa和stub_eNSP环境,分析NSSA区域与Stub区域的区别
  14. 计算机登录域时很慢,新装WIN7电脑加入域后,变的很慢
  15. vue 代码格式化(VS code)
  16. 电脑的dns服务器未响应怎么解决,电脑DNS服务器未响应怎么解决
  17. React 源码系列 | React Context 详解
  18. HDU 2448 Mining Station on the Sea 最短路+KM
  19. Android App Initializer 实现方案
  20. Form表单提交成功,但是后台并没有处理数据且debug无效

热门文章

  1. Hi3518EV300芯片linux系统配置USB Camera功能
  2. cocos shader 之 黑白滤镜
  3. Gmail 中出现紫字的怪现象
  4. C++内存管理与指针的使用
  5. PHP开发之-微信网页授权获取用户基本信息
  6. React打包出现:The project was built assuming it is hosted at ./.
  7. excel怎么设置自动计算_excel表格设置自动计算的方法步骤(2)
  8. CSS3 排版属性盒子模型 第二个模块
  9. windows中 FFmpeg 配置libx264 遇到的坑和解决办法
  10. 今天分享一个Python游戏:简约飞机模拟器