delete some exercise

This commit is contained in:
KaitoD 2022-04-17 12:34:31 +08:00 committed by GitHub
parent 6a373dcac9
commit 239bc61178
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 1 additions and 44 deletions

View File

@ -84,50 +84,7 @@ lab3中我们引入了任务调度的概念可以在不同任务之间切换
问答作业
--------------------------------------------
1. fork + exec 的一个比较大的问题是 fork 之后的内存页/文件等资源完全没有使用就废弃了,针对这一点,有什么改进策略?
2. [选做,不占分] 其实使用了题(1)的策略之后fork + exec 所带来的无效资源的问题已经基本被解决了,但是今年来 fork 还是在被不断的批判,那么到底是什么正在"杀死"fork回答合理即可。可以参考 `fork-hotos19 <https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf>`_
3. 请阅读代码并分析如下程序的输出,不考虑运行错误,不考虑行缓冲,不考虑中断:
.. code-block:: c
int main(){
int val = 2;
printf("%d", 0);
int pid = fork();
if (pid == 0) {
val++;
printf("%d", val);
} else {
val--;
printf("%d", val);
wait(NULL);
}
val++;
printf("%d", val);
return 0;
}
如果 fork() 之后一定主程序先运行结果如何?如果 fork() 之后一定 child 先运行结果如何?
4. 请分析如下程序运行后最终输出 `A` 的数量(已知 ``&&`` 的优先级比 ``||`` 高)
.. code-block:: c
int main() {
fork() && fork() && fork() || fork() && fork() || fork() && fork();
printf("A");
return 0;
}
[选做,不占分] 更进一步,如果给出一个 ``&&`` ``||`` 的序列,你如何设计一个程序来得到答案?
5. stride 算法深入
stride 算法深入
stride 算法原理非常简单,但是有一个比较大的问题。例如两个 pass = 10 的进程,使用 8bit 无符号整形储存 stride p1.stride = 255, p2.stride = 250在 p2 执行一个时间片后,理论上下一次应该 p1 执行。