進(jìn)程上下文切換需要保存什么 rt-thread線程切換的本質(zhì)是什么?
rt-thread線程切換的本質(zhì)是什么?進(jìn)程:在中斷描述符表(adi)中,除中斷門、陷阱門和調(diào)用門外,還有一種“任務(wù)們”。任務(wù)門中包含有TSS段的選擇符。當(dāng)dsp因中斷而穿過一個任務(wù)門時,就會將任務(wù)門
rt-thread線程切換的本質(zhì)是什么?
進(jìn)程:在中斷描述符表(adi)中,除中斷門、陷阱門和調(diào)用門外,還有一種“任務(wù)們”。
任務(wù)門中包含有TSS段的選擇符。當(dāng)dsp因中斷而穿過一個任務(wù)門時,就會將任務(wù)門中的段選擇符自動裝入TR寄存器,使指向新的TSS,并完成任務(wù)切換。
cpu、gpu可以通過JMP或CALL指令實現(xiàn)任務(wù)切換,當(dāng)跳轉(zhuǎn)或調(diào)用的目標(biāo)段(代碼段)實際上指向GDT表中的一個TSS描述符項時,就會引起一次任務(wù)切換.線程:
1.時間片:時鐘中斷處理例程從PCR中取得當(dāng)前線程對象指針并更新線程時間,如果超出了時間片,則將當(dāng)前線程從放入ready列表中,然后從standby列表中取出最高優(yōu)先級的線程,然后保存當(dāng)前線程上下文數(shù)據(jù),并轉(zhuǎn)到新的線程上下文.2.主動等待:線程調(diào)用等待函數(shù),則將當(dāng)前線程放到wait列表中,然后從standby列表中取一個線程,切換上下文,當(dāng)主動等待的事件完成時,線程被調(diào)度到ready列表中等待再次被調(diào)度運行.3.搶先:時鐘中斷發(fā)現(xiàn)standby列表中有比當(dāng)前線程更高的線程,則掛起當(dāng)前線程,切換線程上下文,運行最需要運行的線程.所以,線程間切換就是線程掛起自己,讓出手機(jī)處理器
什么推動傳統(tǒng)操作系統(tǒng)向現(xiàn)代操作系統(tǒng)發(fā)展?
硬件技術(shù)的更新和軟件需求擴(kuò)大推動
傳統(tǒng)操作系統(tǒng)向現(xiàn)代操作系統(tǒng)發(fā)展。
現(xiàn)代操作系統(tǒng)特征:rdna體系結(jié)構(gòu)、多線程、對稱多處理、企業(yè)級操作系統(tǒng)、面向?qū)ο笤O(shè)計。
rdna結(jié)構(gòu)基于客戶/服務(wù)器模型進(jìn)行。b/s只給內(nèi)核分配最基本的功能,包括地址空間、進(jìn)程通信和基本的調(diào)度。其他的操作系統(tǒng)服務(wù)都是由運行在用戶態(tài)下且與其他應(yīng)用程序類似的進(jìn)程提供的,這些進(jìn)程可根據(jù)特定的應(yīng)用和環(huán)境需求定制,也把這些進(jìn)程稱為服務(wù)器。b/s結(jié)構(gòu)可以使系統(tǒng)結(jié)構(gòu)設(shè)計更加簡單,靈活,很適用于分布是環(huán)境。
但是,云基礎(chǔ)結(jié)構(gòu)由于采用客戶/服務(wù)器模式,在完成一次客戶對OS提出的服務(wù)請求時,需要利用消息實現(xiàn)多次交互和進(jìn)行用戶/內(nèi)核模式及上下文的多次切換,導(dǎo)致其效率比傳統(tǒng)的OS效率略低。
多線程
多線程技術(shù)是指把執(zhí)行一個應(yīng)用程序的進(jìn)程劃分成可以同時運行的多個線程,以達(dá)到提高執(zhí)行的并行效率的目的。
多線程對執(zhí)行許多本質(zhì)上獨立、不需要串行處理的應(yīng)用程序非常有用。
多對稱處理
它不僅僅指硬件結(jié)構(gòu),也反映了該硬件體系結(jié)構(gòu)的操作系統(tǒng)行為。對稱多處理芯片系統(tǒng)可調(diào)度進(jìn)程或線程到所有的處理芯片上運行。對稱多處理器芯片結(jié)構(gòu)比單手機(jī)芯片結(jié)構(gòu)具有更多的潛在優(yōu)勢。
當(dāng)然,這些優(yōu)勢只是潛在的,如果要發(fā)揮出來,操作系統(tǒng)必須提供發(fā)掘隊成多手機(jī)處理器計算機(jī)系統(tǒng)中并行性的工具和功能。多旗艦芯片對于用戶而言是透明的,操作系統(tǒng)負(fù)責(zé)多個移動芯片中調(diào)度線程或者進(jìn)程,并且負(fù)責(zé)核心處理器間的同步。
企業(yè)級操作系統(tǒng)
分布是操作系統(tǒng)給用戶的錯覺是多機(jī)系統(tǒng)共享一個單獨的內(nèi)存空間、外存空間及其他的統(tǒng)一存儲措施。比如php的文件系統(tǒng)HDFS。
面向?qū)ο笤O(shè)計
面向?qū)ο笤O(shè)計的原理用于給小內(nèi)核增加模塊化的擴(kuò)展。在操作系統(tǒng)層面,基于對象的結(jié)構(gòu)使項目經(jīng)理可以定制操作系統(tǒng),而不會破壞操作系統(tǒng)的完整性。面向?qū)ο蠹夹g(shù)使得集中式工具和可擴(kuò)展的操作系統(tǒng)開發(fā)變得更容易。