国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Linux系統(tǒng)原理知識(shí) 進(jìn)程切換的概念介紹

2024-06-28 13:02:28
字體:
供稿:網(wǎng)友
 

一、tast_struct結(jié)構(gòu)

它是一個(gè)數(shù)據(jù)結(jié)構(gòu),可以說,它代表了一個(gè)進(jìn)程。它有很多字段,大體有一下幾種:

標(biāo)識(shí)號(hào):進(jìn)程標(biāo)識(shí)、用戶標(biāo)識(shí)、組標(biāo)識(shí)。

狀態(tài): linux的進(jìn)程的四種基本狀態(tài)

調(diào)度信息:優(yōu)先級(jí)、時(shí)間片等

進(jìn)程鏈信息:父進(jìn)程、子進(jìn)程的指針

文件信息:打開文件、虛擬文件系統(tǒng)

上下文信息:進(jìn)程的運(yùn)行環(huán)境

二、I386體系的任務(wù)管理和調(diào)度

I386體系從硬件上支持任務(wù)間的切換。為此目的,增設(shè)了一種新段:任務(wù)狀態(tài)段(TSS),首先它和數(shù)據(jù)段、代碼段一樣也是一種段,其次它記錄了任務(wù)的狀態(tài)信息。

與其它段一樣,也有描述它的結(jié)構(gòu):TSS描述符表,它記錄了一個(gè)TSS的信息,同時(shí)還有一個(gè)TR寄存器,它指向當(dāng)前任務(wù)的TSS。任務(wù)切換的時(shí)候,cpu會(huì)將原寄存器的內(nèi)容寫出到相應(yīng)的TSS,同時(shí)將新TSS的內(nèi)容填到寄存器中,這樣就實(shí)現(xiàn)了任務(wù)的切換。

三、Linux進(jìn)程切換

Linux任務(wù)切換是通過switch_to這個(gè)宏實(shí)現(xiàn)的,它利用長(zhǎng)跳指令,當(dāng)長(zhǎng)跳指令的操作數(shù)是TSS描述符的時(shí)候,就會(huì)引起CPU的任務(wù)的切換,此時(shí),cpu將所有寄存器的狀態(tài)保存到當(dāng)前任務(wù)寄存器TR所指向的TSS段(當(dāng)前任務(wù)的任務(wù)狀態(tài)段)中,然后利用長(zhǎng)跳指令的操作數(shù)(TSS描述符)找到新任務(wù)的TSS段,并將其中的內(nèi)容填寫到各個(gè)寄存器中,最后,將新任務(wù)的TSS選擇符更新到TR中。這樣系統(tǒng)就正式開始運(yùn)行新切換的任務(wù)了。上面提到的task_struct中的tss成員就是記錄TSS段內(nèi)容的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 白银市| 定州市| 铅山县| 江达县| 客服| 屏南县| 惠州市| 犍为县| 上犹县| 广南县| 萨迦县| 西城区| 邯郸市| 英吉沙县| 馆陶县| 囊谦县| 固始县| 平潭县| 新乡市| 泾源县| 樟树市| 华宁县| 江源县| 项城市| 宣汉县| 丰城市| 昌乐县| 公安县| 土默特右旗| 山丹县| 汶川县| 淮阳县| 长子县| 巴塘县| 磴口县| 宣武区| 依兰县| 樟树市| 呼玛县| 洛浦县| 平南县|