Unix操作系統(tǒng)進(jìn)程知識學(xué)習(xí)
Unix操作系統(tǒng)有很多值得學(xué)習(xí)的地方,這里我們主要介紹我們在學(xué)習(xí)Unix操作系統(tǒng)中的一點(diǎn)體會,大家一起來看看吧,希望對大家Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。Unix操作系統(tǒng)進(jìn)程是在某個(gè)進(jìn)程調(diào)用 fork 時(shí)創(chuàng)建的,fork 將正在運(yùn)行的可執(zhí)行進(jìn)程一分為二。
整個(gè)Unix操作系統(tǒng)可分為五層:***層是裸機(jī),即硬件部分;第二層是UNIX的核心,它直接建立在裸機(jī)的上面,實(shí)現(xiàn)了操作系統(tǒng)重要的功能,如進(jìn)程管理、存儲管理、設(shè)備管理、文件管理、網(wǎng)絡(luò)管理等,用戶不能直接執(zhí)行UNIX內(nèi)核中的程序,而只能通過一種稱為"系統(tǒng)調(diào)用"的指令,以規(guī)定的方法訪問核心,以獲得系統(tǒng)服務(wù)。
第三層系統(tǒng)調(diào)用構(gòu)成了第四層應(yīng)用程序?qū)雍偷诙雍诵膶又g的接口界面;應(yīng)用層主要是Unix操作系統(tǒng)的核外支持程序,如文本編輯處理程序、編譯程序、系統(tǒng)命令程序、通信軟件包和窗口圖形軟件包、各種庫函數(shù)及用戶自編程序。
Unix操作系統(tǒng)的最外層是Shell解釋程序,它作為用戶與操作系統(tǒng)交互的接口,分析用戶鍵入的命令和解釋并執(zhí)行命令,Shell中的一些內(nèi)部命令可不經(jīng)過應(yīng)用層,直接通過系統(tǒng)調(diào)用訪問核心層。
然后該進(jìn)程可以執(zhí)行 exec 系列中的某個(gè)系統(tǒng)調(diào)用,從而將當(dāng)前運(yùn)行的映像替換為新的映像。
當(dāng)父進(jìn)程終止時(shí),其所有子進(jìn)程將由 PID 為 1 的 init 接納。如果子進(jìn)程在父進(jìn)程之前終止,則會向父進(jìn)程發(fā)送一個(gè)信號,然后子進(jìn)程轉(zhuǎn)變?yōu)榻┧罓顟B(tài),直到該信號得到確認(rèn),或父進(jìn)程被終止。
現(xiàn)在您已了解了進(jìn)程是如何創(chuàng)建和銷毀的,您已經(jīng)為處理運(yùn)行您系統(tǒng)的進(jìn)程作了更好的準(zhǔn)備,尤其是大量使用多進(jìn)程的系統(tǒng),例如 Apache。如果您需要執(zhí)行某些故障排除,能夠跟蹤某個(gè)特定進(jìn)程的進(jìn)程樹還允許您將任何應(yīng)用程序追溯到創(chuàng)建它的進(jìn)程。
Unix操作系統(tǒng)的知識,我們就先介紹到這里了。
【編輯推薦】