linux系统ll历史,Linux操作系统原理笔记
在Linux操作系統(tǒng)內(nèi)核內(nèi)部,進(jìn)程是通過一個(gè)鏈表,而且是一個(gè)雙向鏈表來管理的。
進(jìn)程描述符:每一個(gè)進(jìn)程都有其描述符,每一個(gè)描述符彼此之間都有關(guān)聯(lián)性的。
雙向鏈表:
一個(gè)進(jìn)程內(nèi)部可能包含多個(gè)線程。
上下文切換(Context swtch)
假如說進(jìn)程A從當(dāng)前CPU上被拿走,切換成進(jìn)程B,進(jìn)程A有自己的描述符(task_struct),且被掛起。被Suspend(棧指針),CPU內(nèi)部,包括指令計(jì)數(shù)器等保存下來。
保存在進(jìn)程描述符文件當(dāng)中。而進(jìn)程描述符是由內(nèi)核維持。所以這些信息都保存在內(nèi)核中。
當(dāng)A進(jìn)程被切換出去,就意味著B進(jìn)程被調(diào)度上來。這一過程被叫做恢復(fù)線程(Resume)
總的過程就叫做上下文切換。
進(jìn)程A------CPU------進(jìn)程B
上下文切換由誰完成?----由內(nèi)核。
這意味著:
每一次進(jìn)程切換都要先從用戶空間轉(zhuǎn)到內(nèi)核模式,然后再到用戶模式。
注意:不可能由一個(gè)進(jìn)程到另一個(gè)進(jìn)程,必須由內(nèi)核來指揮完成。
所以CPU的整體時(shí)間就分為兩部分:
一部分是用戶空間所有進(jìn)程加起來的計(jì)的時(shí)間
另一部分是內(nèi)核空間所占用的時(shí)間
不管是那個(gè)進(jìn)程,CPU總是分配到用戶空間一部分,又分配到內(nèi)核空間一部分。
Linux支持進(jìn)程搶占。
優(yōu)先級(jí)高的可以搶占優(yōu)先級(jí)低的。
但不是隨時(shí)都可以搶占,-------系統(tǒng)時(shí)鐘。
系統(tǒng)時(shí)鐘:
有內(nèi)部的時(shí)間頻率。
Tick:滴答----時(shí)間解析度
操作系統(tǒng)是怎么記錄時(shí)間的?
每一次滴答(tick),都會(huì)產(chǎn)生可搶的時(shí)鐘中斷。
滴答來了,就可以搶了。
Linux的進(jìn)程類別:
1、交互式進(jìn)程(IO密集型):等待IO,對(duì)CPU要求量特別小。
2、批處理進(jìn)程(CPU密集型):也可以理解成守護(hù)進(jìn)程。
3、實(shí)時(shí)進(jìn)程(Real-time):隨時(shí)運(yùn)行,優(yōu)先級(jí)非常高的進(jìn)程
對(duì)于PC(桌面):交互式進(jìn)程優(yōu)先級(jí)應(yīng)該是高優(yōu)先級(jí)的,IO,,,,,
對(duì)于服務(wù)器來說:一般以批處理為主(CPU)
現(xiàn)在很多調(diào)度器可以這樣來實(shí)現(xiàn):
讓批處理進(jìn)程多一些時(shí)間片。----時(shí)間片比較大,但優(yōu)先級(jí)低。
而交互式進(jìn)程時(shí)間片少,但優(yōu)先級(jí)高。
調(diào)度就是按照優(yōu)先級(jí)來完成的。
Top命令是用來顯示系統(tǒng)運(yùn)行的進(jìn)程信息。
Linux優(yōu)先級(jí):
1、實(shí)時(shí)進(jìn)程優(yōu)先級(jí):1-99?? 數(shù)字越小,優(yōu)先級(jí)越低。通常與內(nèi)核相關(guān)。
2、靜態(tài)優(yōu)先級(jí):通常用來描述用戶進(jìn)程優(yōu)先級(jí)。
100-139 數(shù)字越小,優(yōu)先級(jí)越高。
所以優(yōu)先級(jí)范圍是1-139
實(shí)時(shí)優(yōu)先級(jí)比靜態(tài)優(yōu)先級(jí)高。
很顯然,內(nèi)核進(jìn)程通常都是實(shí)時(shí)優(yōu)先級(jí)。
TOP
顯示RT的為實(shí)時(shí)進(jìn)程。
總結(jié)
以上是生活随笔為你收集整理的linux系统ll历史,Linux操作系统原理笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DDoS攻击教程(ddos 攻击教程 平
- 下一篇: star-cd linux安装,linu