評價的問題操作系統 - 一般進程創建
考慮計劃
#include <stdio.h>
int main(){
putchar('X');
exit(0);
}
假設它是一個編譯生成的a.out文件。現在假設在本地控制檯窗口中的用戶鍵入a.out並點擊返回鍵。怎麼了?一定要描述一個合理但詳細而全面的操作系統操作和事件序列,而不僅僅是用戶看到的。
我的回答
首先,外殼將創建在用戶空間的過程
然後,它會執行系統調用「的putchar」的模擬輸入,並且進程將切換到內核模式
然後它會將進程(線程)添加到長期調度程序,在此它將加入準備運行的所有進程的集合
一旦它被選擇時,它會移動到短期調度程序,在那裏將接收一些處理時間 - 由於該處理是一個IO結合過程(準備>運行)
,它將然後頭到IO隊列,它將被存儲在等待執行的緩衝區中(運行 - >等待)
IO完成後,putchar調用將在其所應用的外設上打印X( (等待 - >運行)
一旦過程返回到短期調度程序,它將再次獲得更多的處理時間。由於沒有什麼可以做但終止,進程終止(運行 - >終止)
這是否有效的理解?我是否錯過了創建流程的一些關鍵概念?我知道這是相對簡單的過程,但請告訴我缺少的任何東西。
感謝您閱讀,並提前感謝您的幫助。