日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【OS学习笔记】二十六 保护模式八:任务门---任务切换

發(fā)布時(shí)間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OS学习笔记】二十六 保护模式八:任务门---任务切换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一篇文章學(xué)習(xí)了:保護(hù)模式七:調(diào)用門與依從的代碼段----特權(quán)級(jí)保護(hù)
主要學(xué)習(xí)了以下內(nèi)容:

描述符特權(quán)級(jí)(目標(biāo)對(duì)象的特權(quán)級(jí))DPL

  • 描述符特權(quán)級(jí)(目標(biāo)對(duì)象的特權(quán)級(jí))DPL

  • 當(dāng)前特權(quán)級(jí)CPL

  • 低特權(quán)級(jí)的應(yīng)用調(diào)用高特權(quán)級(jí)的操作系統(tǒng)代碼的兩種方法

    • 第一種方法是將高特權(quán)級(jí)的代碼段定義為依從的
    • 第二種方法是使用調(diào)用門
  • 請(qǐng)求特權(quán)級(jí)RPL

今天接著上一篇文章學(xué)習(xí):

  • 任務(wù)切換的方法

1、回顧

從80286開始,處理器是面向多任務(wù)系統(tǒng)而設(shè)計(jì)的。在一個(gè)多任務(wù)的環(huán)境中,可以同時(shí)存在多個(gè)任務(wù),每個(gè)任務(wù)都有自己的局部描述符(LDT)和任務(wù)狀態(tài)段(TSS)??梢栽诙鄠€(gè)任務(wù)之間切換,使它們輪流執(zhí)行,從一個(gè)任務(wù)切換到另一個(gè)任務(wù)時(shí),具體的切換過程是處理器固件負(fù)責(zé)進(jìn)行。

但是什么時(shí)候切換到另一個(gè)任務(wù),以及切換到哪一個(gè)任務(wù),這是操作系統(tǒng)的責(zé)任,處理器只負(fù)責(zé)具體的切換過程,包括保護(hù)前一個(gè)任務(wù)的現(xiàn)場(chǎng)。

有兩個(gè)基本的任務(wù)切換方法,一種是協(xié)同式的,從一個(gè)任務(wù)切換到另一個(gè)任務(wù)時(shí),需要當(dāng)前任務(wù)主動(dòng)的請(qǐng)求暫時(shí)放棄執(zhí)行權(quán),或者在通過調(diào)用門請(qǐng)求操作系統(tǒng)服務(wù)時(shí)(系統(tǒng)會(huì)調(diào)用),由操作系統(tǒng)‘趁機(jī)’將控制轉(zhuǎn)移到另一個(gè)任務(wù)。

另一種方式是搶占式的。在這種情況下,可以安裝一個(gè)定時(shí)器,并在中斷服務(wù)程序中實(shí)施任務(wù)切換。硬件中斷信號(hào)總會(huì)出現(xiàn),不管處理器當(dāng)時(shí)在做什么,中斷總會(huì)按時(shí)到來,而任務(wù)切換就能準(zhǔn)時(shí)進(jìn)行。在這種情況下,每個(gè)任務(wù)都能獲得平等的執(zhí)行機(jī)會(huì)。搶占式多任務(wù)將放在后面:保護(hù)模式八進(jìn)行學(xué)習(xí)。這里我們只學(xué)習(xí)多任務(wù)切換的一般工作原理。

2、任務(wù)切與特權(quán)級(jí)控制轉(zhuǎn)移的區(qū)別

在上一篇文章點(diǎn)擊查看。我們學(xué)習(xí)了特權(quán)級(jí)相關(guān)的概念。知道了特權(quán)級(jí)實(shí)際上是針對(duì)同一個(gè)任務(wù)的局部空間與全局空間之間的控制轉(zhuǎn)移保護(hù)而存在的。注意,我們說特權(quán)級(jí)是針對(duì)同一個(gè)任務(wù)的,這一點(diǎn)需要理解,因?yàn)椴煌娜蝿?wù)之間就算特權(quán)級(jí)不一樣,也是可以進(jìn)行人去切換的。比如用戶線程與內(nèi)核線程,這肯定是可以進(jìn)行切換的。

上面的怎么理解呢?

實(shí)際上,操作系統(tǒng)出了為每一個(gè)任務(wù)提供服務(wù)外,也會(huì)有一個(gè)作為任務(wù)而獨(dú)立存在的部分,而且是0特權(quán)級(jí)的任務(wù)。當(dāng)計(jì)算機(jī)啟動(dòng)進(jìn)入保護(hù)模式,直接創(chuàng)建和執(zhí)行操作系統(tǒng)的0特權(quán)級(jí)任務(wù),然后可以從該任務(wù)切換到其他任務(wù),不管它們是哪個(gè)特權(quán)級(jí)的。

如下圖是一個(gè)任務(wù)切換和在任務(wù)內(nèi)進(jìn)行特權(quán)級(jí)間的控制轉(zhuǎn)移示意圖:

很明顯,任務(wù)切換與特權(quán)級(jí)控制轉(zhuǎn)移不是一回事!!!

3、任務(wù)切換的方法

3.1 借助于中斷—任務(wù)門

這是現(xiàn)代搶占式多任務(wù)的基礎(chǔ)。原因很簡(jiǎn)單,只要中斷沒有被屏蔽,它就能隨時(shí)發(fā)生。特別是定時(shí)器中斷,能夠以準(zhǔn)確的時(shí)間間隔發(fā)生,可以用來強(qiáng)制實(shí)施任務(wù)切換。

我們知道在實(shí)模式下,內(nèi)存最低地址端的1KB是中斷向量表,保存著256個(gè)中斷處理過程的段地址和偏移地址。當(dāng)中斷發(fā)生時(shí),處理器把中斷號(hào)乘以4,作為索引號(hào)訪問中斷向量表,從相應(yīng)的位置取出中斷處理過程的段地址和偏移地址,并轉(zhuǎn)移到那里執(zhí)行,

而在保護(hù)模式下,中斷向量表不再使用,取而代之的是中斷描述符表。它和GDT,LDT是一樣的,用于保存描述符。它保存的是門描述符。 包括中斷門,陷阱門和任務(wù)門。這些門和我們之前學(xué)過的調(diào)用門非常類似。當(dāng)中斷發(fā)生時(shí),處理器用中斷向量表乘以8(因?yàn)槊總€(gè)描述符占8字節(jié)),作為索引訪問中斷描述符表,取出門描述符。門描述符中有中斷處理過程的代碼段選擇子和段內(nèi)偏移量,這和調(diào)用門是一樣的。接著,轉(zhuǎn)移到相應(yīng)位置去執(zhí)行。

一般的中斷處理可以使用中斷門和陷阱門。它們兩的本質(zhì)與調(diào)用門類似,都是任務(wù)內(nèi)的控制轉(zhuǎn)移。從任務(wù)的局部空間轉(zhuǎn)移大全局空間。

但是當(dāng)中斷發(fā)生時(shí),中斷號(hào)對(duì)應(yīng)的是任務(wù)門,那就不一樣了。此時(shí)就是進(jìn)行任務(wù)切換-----即終止當(dāng)前任務(wù)的執(zhí)行,切換到另一個(gè)任務(wù)執(zhí)行。

如下圖是一個(gè)任務(wù)門描述符的格式:

其中:

  • TSS選擇子: 執(zhí)行任務(wù)切換時(shí),必須找到新任務(wù)的選擇子。
  • P位:任務(wù)門的P位指示該門是否有效,p=0時(shí),不允許使用此門實(shí)施任務(wù)切換;
  • DPL:任務(wù)門描述符的特權(quán)級(jí),但是對(duì)因中斷而發(fā)起的任務(wù)切換不起作用,處理器不按特權(quán)級(jí)施加任何保護(hù)。當(dāng)以非中斷的方式使用任務(wù)門進(jìn)行任務(wù)切換,就需要用到DPL

下面總體概述一下如何使用任務(wù)門來進(jìn)行任務(wù)切換:

  • 當(dāng)中斷發(fā)生時(shí),處理器用中斷號(hào)乘以8作為索引訪問中斷描述符表。當(dāng)它發(fā)現(xiàn)這是一個(gè)任務(wù)門描述符時(shí),就知道應(yīng)當(dāng)發(fā)起任務(wù)切換。
  • 取出任務(wù)門描述符。
  • 從任務(wù)門描述符中取出新任務(wù)的TSS選擇子;
  • 再用TSS選擇子訪問GDT,取出新任務(wù)的TSS描述符
  • 在執(zhí)行新任務(wù)前,處理器會(huì)把當(dāng)前任務(wù)狀態(tài)保存起來。也就是將當(dāng)前任務(wù)的狀態(tài)保存到TR寄存器指向的TSS狀態(tài)段。
  • 然后處理器訪問新任務(wù)的狀態(tài)段TSS,并從中恢復(fù)各個(gè)寄存器的內(nèi)容,包括通用寄存器、標(biāo)志寄存器EFLAGS、段寄存器、指令指針寄存器EIP、棧指針寄存器ESP,以及局部描述符表寄存器LDTR等。
  • 最終任務(wù)寄存器TR指向新任務(wù)的TSS,而處理器開始新任務(wù)的執(zhí)行。
  • 一旦新任務(wù)開始執(zhí)行,處理器固件會(huì)自動(dòng)將其TSS描述符的B位置1,表示該任務(wù)狀態(tài)為忙。
  • 4 總結(jié)

    以上只是大概學(xué)習(xí)了任務(wù)切換的一般過程以及任務(wù)門描述符的基本概念。我們需要注意任務(wù)切換與特權(quán)級(jí)的控制轉(zhuǎn)移之間的區(qū)別。后序還會(huì)有詳細(xì)的內(nèi)容。

    詳細(xì)的內(nèi)容還是要參考原書籍,這里只是做一個(gè)簡(jiǎn)單的總結(jié)。

    學(xué)習(xí)探討加個(gè)人:
    qq:1126137994
    微信:liu1126137994

    總結(jié)

    以上是生活随笔為你收集整理的【OS学习笔记】二十六 保护模式八:任务门---任务切换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲天堂中文 | 婷婷调教口舌奴ⅴk | 欧美黄色免费视频 | 国产精品免费无遮挡无码永久视频 | 女女高潮h冰块play失禁百合 | 国产91一区在线精品 | 日日躁夜夜躁狠狠躁 | 一本一道久久a久久精品蜜桃 | 日韩一级在线视频 | 麻豆一区二区三区精品视频 | 精品人妻无码一区二区三区换脸 | 亚洲区小说区 | 欧美日韩人妻精品一区二区三区 | 一区二区三区高清在线观看 | 国产福利在线视频 | 青青草网站 | 日本大尺度吃奶做爰久久久绯色 | 在线免费观看污视频 | 日本激情网站 | 日本在线观看一区二区三区 | 欧美天天性 | 久久久久久久久99 | 黄免费在线观看 | 韩国一区二区在线播放 | 欧美日韩成人免费 | 小妹色播影院 | 亚洲一区二区三区激情 | 欲求不满在线小早川怜子 | 国产一区,二区 | 国产欧美一区二区视频 | 天天干天天上 | 包射屋| www.av在线免费观看 | 日韩成人av一区二区 | 亚洲中文字幕无码av永久 | 日韩av在线免费观看 | 欧美乱视频| 黄色片网站免费 | 欧洲精品一区 | 国产一级二级三级在线观看 | 国产精品--色哟哟 | 性色av一区二区三区红粉影视 | 日韩在线免费视频观看 | 免费一区二区视频 | 久久国产一二三 | 日本欧美另类 | 丝袜制服一区 | 天堂在线观看 | 国产最爽的乱淫视频国语对白 | 一级黄色毛毛片 | 美腿丝袜亚洲综合 | 日本在线二区 | 四虎永久免费影院 | 日韩欧美国产片 | 青青草av在线播放 | 黄色91| 黄网在线播放 | 操综合网| 国产精品一亚洲av日韩av欧 | 日韩精品人妻一区二区三区免费 | 久久久噜噜噜久久 | 日本精品久久久久中文字幕 | h视频在线免费看 | 肉丝肉足丝袜一区二区三区 | 看黄色一级 | 女同性恋一区二区三区 | 69国产精品视频 | 美女高潮流白浆视频 | 麻豆精品 | 欧美黄色免费大片 | 91麻豆国产| 西方裸体在线观看 | 精品动漫一区二区 | 97伦伦午夜电影理伦片 | 国产精品免费av一区二区 | 国产日韩精品在线观看 | 亚洲美免无码中文字幕在线 | 成人午夜小视频 | 亚洲不卡av一区二区 | 亚洲精品成人无码 | 伊人视屏 | 欧美在线性视频 | 国产精品成人无码专区 | 欧美v日韩 | 日日干影院 | 综合久久一区二区 | 色婷婷亚洲一区二区三区 | 亚洲黄色三级 | 97免费在线观看视频 | 男女免费网站 | 三级影片在线播放 | 久久久久无码精品国产 | 久久精工是国产品牌吗 | 香蕉视频在线观看黄 | 亚洲风情亚aⅴ在线发布 | 亚洲少妇18p | 婷婷综合五月天 | 午夜三区 | 亚洲人成免费 |