评价的问题操作系统 - 一般进程创建
考虑计划
#include <stdio.h>
int main(){
putchar('X');
exit(0);
}
假设它是一个编译生成的a.out文件。现在假设在本地控制台窗口中的用户键入a.out并点击返回键。怎么了?一定要描述一个合理但详细而全面的操作系统操作和事件序列,而不仅仅是用户看到的。
我的回答
首先,外壳将创建在用户空间的过程
然后,它会执行系统调用“的putchar”的模拟输入,并且进程将切换到内核模式
然后它会将进程(线程)添加到长期调度程序,在此它将加入准备运行的所有进程的集合
一旦它被选择时,它会移动到短期调度程序,在那里将接收一些处理时间 - 由于该处理是一个IO结合过程(准备>运行)
,它将然后头到IO队列,它将被存储在等待执行的缓冲区中(运行 - >等待)
IO完成后,putchar调用将在其所应用的外设上打印X( (等待 - >运行)
一旦过程返回到短期调度程序,它将再次获得更多的处理时间。由于没有什么可以做但终止,进程终止(运行 - >终止)
这是否有效的理解?我是否错过了创建流程的一些关键概念?我知道这是相对简单的过程,但请告诉我缺少的任何东西。
感谢您阅读,并提前感谢您的帮助。