Q: 每個運(yùn)行中的進(jìn)程都包含什么?
A:指令:實現(xiàn)了程序的運(yùn)算;數(shù)據(jù):用于運(yùn)算過程的變量;棧:管理了程序的過程調(diào)用
Q:進(jìn)程如何使用內(nèi)核服務(wù)的?
A:進(jìn)程通過系統(tǒng)調(diào)用使用內(nèi)核服務(wù)。所以進(jìn)程總是在用戶空間和內(nèi)核空間之間交替運(yùn)行。
Q:內(nèi)核如何保證用戶進(jìn)程職能訪問自己的內(nèi)存空間呢?
A:內(nèi)核使用CPU的硬件保護(hù)機(jī)制來保證用戶進(jìn)程只能訪問自己的內(nèi)存空間。內(nèi)核擁有實現(xiàn)保護(hù)機(jī)制所需的硬件權(quán)限(hardware privileges)
Q:Shell是什么?
A: Shell是一個普通的程序,它接受用戶輸入的命令并且執(zhí)行它們,它也是傳統(tǒng)Unix系統(tǒng)中最基本的用戶界面。shell作為一個普通程序,而不是內(nèi)核的一部分,充分說明了系統(tǒng)調(diào)用借口的強(qiáng)大:shell并不是一個特別的用戶程序。這也意味著shell是很容易被替代的,實際上這導(dǎo)致了現(xiàn)代Unix系統(tǒng)有著各種各樣的shell,每一個都有著自己的用戶界面和腳本特性。
Q: xv6的進(jìn)程組成部分是什么?
A:由兩部分組成,一部分是用戶內(nèi)存空間(指令,數(shù)據(jù),棧),另一部分是僅對內(nèi)核可見的進(jìn)程狀態(tài)。
Q: 文件描述符是什么?
A:文件描述符是一個整數(shù),它代表了一個進(jìn)程可以讀寫的被內(nèi)核管理的對象。進(jìn)程可以通過多種方式獲得一個文件描述符,如打開文件、目錄、設(shè)備,或者創(chuàng)建一個管道(pipe),或者復(fù)制意境存在的文件描述符。
Q:什么是管道 ?
A:管道是一個小的內(nèi)核緩沖區(qū),它以文件描述符對的形式提供給進(jìn)程,一個用于寫操作,一個用于讀操作。從管道的一端寫的數(shù)據(jù)可以從管道的另一端讀取。管道提供了一種進(jìn)程間交互的方式。