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