深入理解计算机系统(第三版)家庭作业 第八章
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 暂略
深入理解计算机系统(第三版)家庭作业 第八章相关推荐
- [第六章] 深入理解计算机系统第三版 家庭作业参考答案
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^ ...
- [第五章] 深入理解计算机系统第三版 家庭作业参考答案
5.13 A. 画图: 关键路径为第三幅图加粗部分 B. 下界为浮点加法的延迟界限,CPE 为 3.00 C. 整数加法的延迟界限,CPE 为 1.00 D. 关键路径上只有浮点加法 5.14 voi ...
- [第三章] 深入理解计算机系统第三版 家庭作业参考答案
人非圣贤孰能无过,欢迎大家提问与纠错 3.58 long decode2(long x, long y, long z) {y -= z;x *= y;return ((y << 63) ...
- 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答
原题目: **3.63 伪代码分析: x rdi ;n rsi n=n-0x3c(60); if(n>5){-->4005c3 } else{ goto:*(8n+0x4006f8) n= ...
- 深入理解计算机系统_3e 第二章家庭作业 CS:APP3e chapter 2 homework
初始完成日期:2017.9.26 许可:除2.55对应代码外(如需使用请联系 randy.bryant@cs.cmu.edu),任何人可以自由的使用,修改,分发本文档的代码. 本机环境: (有一些需要 ...
- 深入理解计算机系统(第三版)
300M+ 超级清楚 这本书我觉得很棒 最近在自学它 很基础的东西 百度网盘:https://pan.baidu.com/s/1rUHIzjvPZFbWiia-NUHnhQ passwd: 2gsp ...
- 深入理解计算机系统(第二版)第四章知识整理
深入理解计算机系统(第二版)笔记 第四章 处理器体系结构 4.1 Y86指令集体系结构 4.1.1 程序员可见的状态 4.1.2 Y86指令 4.1.3 指令编码 4.1.4 Y86异常 4.1.5 ...
- 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf
深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf
- 深入理解C#第三版部分内容
最近,粗略的读了<深入理解C#(第三版)>这本技术书,书中介绍了C#不同版本之间的不同以及新的功能. 现在将部分摘录的内容贴在下面,以备查阅. C#语言特性: 1.C#2.0 C#2的主 ...
- 深入理解计算机系统(第二版)读书笔记
八月初开始接触<深入理解计算机系统>这本书,当时看的是英文版,花了一个月的时间大体上过了一遍,但我知道其实还是有很多没看懂的地方,于是借了一本中文版,如今总算可以说我真正看过了这本书,可以 ...
最新文章
- Android性能优化典范第五季
- html标签自动对齐,sublime,jsx里的html标签自动缩进对齐的插件或者配置?
- ngx_http_discard_request_body
- SimpleXMLRPC_python xmlrpclib SimpleXMLRPCServer 模块
- shell连接远程mongodb数据库
- mysql找不到sys_解决方法:①MySQL 闪退 ②服务列表里找不到MySQL ③MySQL服务无法启动...
- [导入]构建WCF面向服务的应用程序系列课程(10):安全基础.zip(24.27 MB)
- 计算机系统结构的发展现状,浅析计算机系统结构的发展现状和发展方向
- 微信小程序地图坐标转换
- 连续函数零点定理 介值定理
- Python爬虫 之 破解 cookie 代理 验证码 实战
- fileman命令的帮助+?
- nssa和stub_eNSP环境,分析NSSA区域与Stub区域的区别
- 计算机登录域时很慢,新装WIN7电脑加入域后,变的很慢
- vue 代码格式化(VS code)
- 电脑的dns服务器未响应怎么解决,电脑DNS服务器未响应怎么解决
- React 源码系列 | React Context 详解
- HDU 2448 Mining Station on the Sea 最短路+KM
- Android App Initializer 实现方案
- Form表单提交成功,但是后台并没有处理数据且debug无效
热门文章
- Hi3518EV300芯片linux系统配置USB Camera功能
- cocos shader 之 黑白滤镜
- Gmail 中出现紫字的怪现象
- C++内存管理与指针的使用
- PHP开发之-微信网页授权获取用户基本信息
- React打包出现:The project was built assuming it is hosted at ./.
- excel怎么设置自动计算_excel表格设置自动计算的方法步骤(2)
- CSS3 排版属性盒子模型 第二个模块
- windows中 FFmpeg 配置libx264 遇到的坑和解决办法
- 今天分享一个Python游戏:简约飞机模拟器