一.認(rèn)識操作系統(tǒng)
操作系統(tǒng)是一款純正的 “搞管理” 的文件。
那操作系統(tǒng)為什么要管理文件?
“管理” 又是什么?
它是怎么管理的?
為什么?
1.操作系統(tǒng)幫助用戶,管理好底層的軟硬件資源;
2.為了給用戶提供一個良好,安全的環(huán)境
即操作系統(tǒng)通過管理好底層的軟硬件資源,為用戶提供一個良好,安全的環(huán)境。
?怎么管理?
操作系統(tǒng)里是有各種各樣的很多的數(shù)據(jù)的,但是操作系統(tǒng)并不相信任何用戶!
那它怎么為用戶服務(wù)呢?
操作系統(tǒng)為了保護(hù)自己的數(shù)據(jù)安全,同時保證為用戶提供良好的服務(wù),操作系統(tǒng)以接口的方式提供給用戶使用的入口,這就稱為系統(tǒng)調(diào)用。
接口是用C語言寫的函數(shù),所以調(diào)用接口時,也就是在調(diào)用函數(shù)。
所有訪問操作系統(tǒng)的行為,只能通過系統(tǒng)調(diào)用來完成!
所以我們經(jīng)常會發(fā)現(xiàn),有一些軟件在linux操作系統(tǒng)上行,可能到了windows操作系統(tǒng)就不行了,這是因為軟件運(yùn)行時一定會通過接口訪問操作系統(tǒng),不同的操作系統(tǒng)的接口可能并不完全一樣,所以就造成了這種狀況。
“管理”如何理解?
首先,既然有管理者,那么也就有被管理者。
1.管理者和被管理者并不需要見面就能完成管理;
2.那不見面該如何管理呢?-----通過被管理者的數(shù)據(jù)進(jìn)行管理,所以管理的本質(zhì)是通過對數(shù)據(jù)的管理,來達(dá)到對人的管理;
3.管理者和被管理者都不見面,該怎么拿到數(shù)據(jù)呢?-----通過執(zhí)行者。
來看上圖:
操作系統(tǒng)就是管理者,底層硬件就是被管理者,驅(qū)動程序就是執(zhí)行者。
操作系統(tǒng)一定是通過驅(qū)動程序拿到底層硬件的數(shù)據(jù),然后實現(xiàn)對底層硬件的管理,不能跨級訪問!
操作系統(tǒng)在拿到數(shù)據(jù)后,首先對數(shù)據(jù)進(jìn)行描述,C語言中對數(shù)據(jù)描述通常使用的都是結(jié)構(gòu)體,操作系統(tǒng)也是這樣,建立結(jié)構(gòu)體來描述數(shù)據(jù),然后把這些結(jié)構(gòu)體組織起來,即用某種數(shù)據(jù)結(jié)構(gòu)組織起來,所以操作系統(tǒng)里一定存在大量的數(shù)據(jù)結(jié)構(gòu)!
總結(jié)成6個字:先描述,再組織!
回想我們寫通訊錄的時候,先建立一個結(jié)構(gòu)體來描述一個人的信息,然后再加一個指針來找到下一個人的信息,這樣就把聯(lián)系人的數(shù)據(jù)組織起來了。
二.進(jìn)程概念
可能我們再很多書上看到進(jìn)程的概念都是:
一個正在運(yùn)行的程序或是一個加載到內(nèi)存的程序。
但事實上并沒有這么簡單。
PCB進(jìn)程控制塊
PCB進(jìn)程控制塊,,全稱:process control block
PCB里包括該進(jìn)程得各種屬性,例如進(jìn)程的編號,狀態(tài),優(yōu)先級等等,可以說PCB是進(jìn)程屬性的集合。
PCB是一個非常龐大的結(jié)構(gòu)體。
當(dāng)一個程序被加載到內(nèi)存時,操作系統(tǒng)會為這個程序創(chuàng)建一個PCB,PCB中描述了進(jìn)程的各種屬性,還有一些指針,他幫助操作系統(tǒng)找到這個程序的代碼和數(shù)據(jù),所以:
進(jìn)程=內(nèi)核PCB數(shù)據(jù)結(jié)構(gòu)對象 + 程序的代碼和數(shù)據(jù)
把這些進(jìn)程組織起來,就變成了對某種數(shù)據(jù)結(jié)構(gòu)的增刪查改。
?task_struct
linux下的PCB是 task_struct,task_struct 是PCB的一種。?
task_struct是Linux內(nèi)核的一種數(shù)據(jù)結(jié)構(gòu),它會被裝載到RAM(內(nèi)存)里并且包含著進(jìn)程的信息。
????本篇文章到此就結(jié)束了,?若有錯誤或是建議的話,歡迎小伙伴們指出;?????
????希望小伙伴們能支持支持博主啊,你們的支持對我很重要哦;????文章來源:http://www.zghlxwxcb.cn/news/detail-555091.html
????謝謝你的閱讀。????文章來源地址http://www.zghlxwxcb.cn/news/detail-555091.html
到了這里,關(guān)于【Linux】初步理解操作系統(tǒng)和進(jìn)程概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!