分時(shí)操作系統的分類(lèi)
分時(shí)操作系統,主要分為三類(lèi):?jiǎn)蔚婪謺r(shí)操作系統,多道分時(shí)操作系統,具有前臺和后臺的分時(shí)操作系統。
分時(shí)操作系統是一個(gè)多用戶(hù)交互式操作系統。
簡(jiǎn)介 分時(shí)操作系統 (time-sharingsystem)——70年代中期至今
“分時(shí)”的含義:分時(shí)是指多個(gè)用戶(hù)分享使用同一臺計算機。多個(gè)程序分時(shí)共享硬件和軟件資源。
分時(shí)操作系統是指:在一臺主機上連接多個(gè)帶有顯示器和鍵盤(pán)的終端,同時(shí)允許多個(gè)用戶(hù)通過(guò)主機的終端,以交互方式使用計算機,共享主機中的資源。
分時(shí)(Time Sharing)操作系統的工作方式是:一臺主機連接了若干個(gè)終端,每個(gè)終端有一個(gè)用戶(hù)在使用。用戶(hù)交互式地向系統提出命令請求,系統接受每個(gè)用戶(hù)的命令,采用時(shí)間片輪轉方式處理服務(wù)請求,并通過(guò)交互方式在終端上向用戶(hù)顯示結果。用戶(hù)根據上步結果發(fā)出下道命令。分時(shí)操作系統將CPU的時(shí)間劃分成若干個(gè)片段,稱(chēng)為時(shí)間片。操作系統以時(shí)間片為單位,輪流為每個(gè)終端用戶(hù)服務(wù)。每個(gè)用戶(hù)輪流使用一個(gè)時(shí)間片而使每個(gè)用戶(hù)并不感到有別的用戶(hù)存在。分時(shí)系統具有多路性、交互性、“獨占”性和及時(shí)性的特征。多路性指,同時(shí)有多個(gè)用戶(hù)使用一臺計算機,宏觀(guān)上看是多個(gè)人同時(shí)使用一個(gè)CPU,微觀(guān)上是多個(gè)人在不同時(shí)刻輪流使用CPU。交互性是指,用戶(hù)根據系統響應結果進(jìn)一步提出新請求(用戶(hù)直接干預每一步)。“獨占”性是指,用戶(hù)感覺(jué)不到計算機為其他人服務(wù),就像整個(gè)系統為他所獨占。及時(shí)性指,系統對用戶(hù)提出的請求及時(shí)響應。
1. 多路性:即眾多聯(lián)機用戶(hù)可以同時(shí)使用同一臺計算機;
2. 獨占性:各終端用戶(hù)感覺(jué)到自己獨占了計算機;
3. 交互性:用戶(hù)與計算機之間可進(jìn)行“會(huì )話(huà)”。
4. 及時(shí)性:用戶(hù)的請求能在短時(shí)間內得到響應。
常見(jiàn)的通用操作系統是分時(shí)系統與批處理系統的結合。其原則是:分時(shí)優(yōu)先,批處理在后。“前臺”響應需頻繁交互的作業(yè),如終端的要求; “后臺”處理時(shí)間性要求不強的作業(yè)。
即CPU分配給各個(gè)程序的時(shí)間,每個(gè)進(jìn)程被分配一個(gè)時(shí)間段,稱(chēng)作它的時(shí)間片,即該進(jìn)程允許運行的時(shí)間,使各個(gè)程序從表面上看是同時(shí)進(jìn)行的。如果在時(shí)間片結束時(shí)進(jìn)程還在運行,則CPU將被剝奪并分配給另一個(gè)進(jìn)程。如果進(jìn)程在時(shí)間片結束前阻塞或結束,則CPU當即進(jìn)行切換。而不會(huì )造成CPU資源浪費。在宏觀(guān)上:我們可以同時(shí)打開(kāi)多個(gè)應用程序,每個(gè)程序并行不悖,同時(shí)運行。但在微觀(guān)上:由于只有一個(gè)CPU,一次只能處理程序要求的一部分,如何處理公平,一種方法就是引入時(shí)間片,每個(gè)程序輪流執行。
你同時(shí)輸入兩篇文檔:A.txt和B.txt;
你在A中輸入一個(gè)字之后,再在B中輸入一個(gè)字,輪流輸入,直至完成??偟目磥?lái)你似乎在同時(shí)進(jìn)行兩篇文章的錄入,你可以說(shuō)我一邊寫(xiě)A一邊寫(xiě)B。但是具體到某個(gè)字時(shí),就是沿著(zhù)時(shí)間的前進(jìn),AB交替進(jìn)行了。而你每個(gè)字輸入所占用的這段時(shí)間,我們就可以稱(chēng)之為時(shí)間片。
舉個(gè)多線(xiàn)程程序的例子,說(shuō)明時(shí)間片是怎樣工作的(java)
如上:
由此可見(jiàn):兩個(gè)線(xiàn)程是交替執行的(數字的變化),從宏觀(guān)上(同時(shí)輸出)。
其他資料
什么是時(shí)間片輪轉:
時(shí)間片輪轉調度是一種最古老,最簡(jiǎn)單,最公平且使用最廣的算法。每個(gè)進(jìn)程被分配一個(gè)時(shí)間段,稱(chēng)作它的時(shí)間片,即該進(jìn)程允許運行的時(shí)間。如果在時(shí)間片結束時(shí)進(jìn)程還在運行,則CPU將被剝奪并分配給另一個(gè)進(jìn)程。如果進(jìn)程在時(shí)間片結束前阻塞或結束,則CPU當即進(jìn)行切換。調度程序所要做的就是維護一張就緒進(jìn)程列表,當進(jìn)程用完它的時(shí)間片后,它被移到隊列的末尾。
時(shí)間片輪轉調度中唯一有趣的一點(diǎn)是時(shí)間片的長(cháng)度。從一個(gè)進(jìn)程切換到另一個(gè)進(jìn)程是需要一定時(shí)間的--保存和裝入寄存器值及內存映像,更新各種表格和隊列等。假如進(jìn)程切換(processswitch) - 有時(shí)稱(chēng)為上下文切換(context switch),需要5毫秒,再假設時(shí)間片設為20毫秒,則在做完20毫秒有用的工作之后,CPU將花費5毫秒來(lái)進(jìn)行進(jìn)程切換。CPU時(shí)間的20%被浪費在了管理開(kāi)銷(xiāo)上。
為了提高CPU效率,我們可以將時(shí)間片設為500毫秒。這時(shí)浪費的時(shí)間只有1%。但考慮在一個(gè)分時(shí)系統中,如果有十個(gè)交互用戶(hù)幾乎同時(shí)按下回車(chē)鍵,將發(fā)生什么情況?假設所有其他進(jìn)程都用足它們的時(shí)間片的話(huà),最后一個(gè)不幸的進(jìn)程不得不等待5秒鐘才獲得運行機會(huì )。多數用戶(hù)無(wú)法忍受一條簡(jiǎn)短命令要5秒鐘才能做出響應。同樣的問(wèn)題在一臺支持多道程序的個(gè)人計算機上也會(huì )發(fā)生。
結論可以歸結如下:時(shí)間片設得太短會(huì )導致過(guò)多的進(jìn)程切換,降低了CPU效率;而設得太長(cháng)又可能引起對短的交互請求的響應變差。將時(shí)間片設為100毫秒通常是一個(gè)比較合理的折衷。
實(shí)時(shí)系統(Real-time operating system,RTOS)
實(shí)時(shí)系統(Real-time operatingsystem,RTOS)的正確性不僅依賴(lài)系統計算的邏輯結果,還依賴(lài)于產(chǎn)生這個(gè)結果的時(shí)間。實(shí)時(shí)系統能夠在指定或者確定的時(shí)間內完成系統功能和外部或內部、同步或異步時(shí)間做出響應的系統。因此實(shí)時(shí)系統應該在事先定義的時(shí)間范圍內識別和處理離散事件的能力;系統能夠處理和儲存控制系統所需要的大量數據。
實(shí)時(shí)系統的任務(wù)具有一定的時(shí)間約束(截止時(shí)間)。根據截止時(shí)間,實(shí)時(shí)系統的實(shí)時(shí)性分為“硬實(shí)時(shí)”和“軟實(shí)時(shí)”。硬實(shí)時(shí)是指應用的時(shí)間需求能夠得到完全滿(mǎn)足,否則就造成重大安全事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞,如在航空航天、軍事、核工業(yè)等一些關(guān)鍵領(lǐng)域中的應用。軟實(shí)時(shí)是指某些應用雖然提出時(shí)間需求,但實(shí)時(shí)任務(wù)偶爾違反這種需求對系統運行及環(huán)境不會(huì )造成嚴重影響,如監控系統等和信息采集系統等。
可預測性是指系統能夠對實(shí)時(shí)任務(wù)的執行時(shí)間進(jìn)行判斷,確定是否能夠滿(mǎn)足任務(wù)的時(shí)限要求。由于實(shí)時(shí)系統對時(shí)間約束要求的嚴格性,使可預測性稱(chēng)為實(shí)時(shí)系統的一項重要性能要求。除了要求硬件延遲的可預測性以外,還要求軟件系統的可預測性,包括應用程序的響應時(shí)間是可預測的,即在有限的時(shí)間內完成必須的工作;以及操作系統的可預測性,即實(shí)時(shí)原語(yǔ)、調度函數等運行開(kāi)銷(xiāo)應是有界的,以保證應用程序執行時(shí)間的有界性。
大多數實(shí)時(shí)系統要求有較高的可靠性。在一些重要的實(shí)時(shí)應用中,任何不可靠因素和計算機的一個(gè)微小故障,或某些特定強實(shí)時(shí)任務(wù)(又叫關(guān)鍵任務(wù))超過(guò)時(shí)限,都可能引起難以預測的嚴重后果。為此,系統需要采用靜態(tài)分析和保留資源的方法及冗余配置,使系統在最壞情況下都能正常工作或避免損失??煽啃砸殉蔀楹饬繉?shí)時(shí)系統性能不可缺少的重要指標。
實(shí)時(shí)系統通常運行在一定的環(huán)境下,外部環(huán)境是實(shí)時(shí)系統不可缺少的一個(gè)組成部分。計算機子系統一般是控制系統,它必須在規定的時(shí)間內對外部請求做出反應。外部物理環(huán)境往往是被控子系統,兩者互相作用構成完整的實(shí)時(shí)系統。大多數控制子系統必須連續運轉以保證子系統的正常工作或準備對任何異常行為采取行動(dòng)。
早期的實(shí)時(shí)系統功能簡(jiǎn)單,包括單板機、單片機,以及簡(jiǎn)單的嵌入式實(shí)時(shí)系統等,其調度過(guò)程相對簡(jiǎn)單。隨著(zhù)實(shí)時(shí)系統應用范圍的不斷擴大,系統復雜性不斷提高,實(shí)時(shí)系統具有以下新特點(diǎn)。
在實(shí)時(shí)系統中,不但包括周期任務(wù)、偶發(fā)任務(wù)、非周期任務(wù),還包括非實(shí)時(shí)任務(wù)。實(shí)時(shí)任務(wù)要求要滿(mǎn)足時(shí)限,而非實(shí)時(shí)任務(wù)要求要使其響應時(shí)間盡可能的短。多種類(lèi)型任務(wù)的混合,使系統的可調度性分析更加困難。
任務(wù)的約束包括時(shí)間約束、資源約束、執行順序約束和性能約束。時(shí)間約束是任何實(shí)時(shí)系統都固有的約束。資源約束是指多個(gè)實(shí)時(shí)任務(wù)共享有限的資源時(shí),必須按照一定的資源訪(fǎng)問(wèn)控制協(xié)議進(jìn)行同步,以避免死鎖和高優(yōu)先級任務(wù)被低優(yōu)先級任務(wù)堵塞的時(shí)間(即優(yōu)先級倒置時(shí)間)不可預測。執行順序約束是指各任務(wù)的啟動(dòng)和執行必須滿(mǎn)足一定的時(shí)間和順序約束。例如,在分布式端到端(end-to-end)實(shí)時(shí)系統很重,同一任務(wù)的各子任務(wù)之間存在前驅/后驅約束關(guān)系,需要執行同步協(xié)議來(lái)管理子任務(wù)的啟動(dòng)和控制子任務(wù)的執行,使它們滿(mǎn)足時(shí)間約束和系統可調度要求。性能約束是指必須滿(mǎn)足如可靠性、可用性、可預測性、服務(wù)質(zhì)量(Quality of Service,QoS)等性能指標。
在實(shí)時(shí)系統中,即使一個(gè)功能設計合理、資源充足的系統也可能由于一下原因超載:
1)系統元件出現老化,外圍設備錯誤或系統發(fā)生故障。隨著(zhù)系統運行時(shí)間的增長(cháng),系統元件出現老化,系統部件可能發(fā)生故障,導致系統可用資源降低,不能滿(mǎn)足實(shí)時(shí)任務(wù)的時(shí)間約束要求。
2)環(huán)境的動(dòng)態(tài)變化。由于不能對未來(lái)的環(huán)境、系統狀態(tài)進(jìn)行正確有效地預測,因此不能從整體角度上對任務(wù)進(jìn)行調度,可能導致系統超載。
3)應用規模的擴大。原先滿(mǎn)足實(shí)時(shí)任務(wù)時(shí)限要求的系統,隨著(zhù)應用規模的增大,可能出現不能滿(mǎn)足任務(wù)時(shí)限要求的情況,而重新設計、重建系統在時(shí)間和經(jīng)濟上又不允許。
為了精確管理“時(shí)間”資源,已達到實(shí)時(shí)性和與預測性要求,并能夠滿(mǎn)足是實(shí)時(shí)系統的新要求,需用實(shí)時(shí)調度理論對任務(wù)進(jìn)行調度和可調度性分析。任務(wù)調度技術(shù)包括調度策略和可調度性分析方法,兩者是緊密結合的。任務(wù)調度技術(shù)研究的范圍包括任務(wù)使用系統資源(包括處理機、內存、I/O、網(wǎng)絡(luò )等資源)的策略和機制,以及提供判斷系統性能是否可預測的方法和手段。例如,什么時(shí)候調度任務(wù)運行、在哪運行(當系統為多處理機系統或分布式系統時(shí))、運行多長(cháng)時(shí)間等等;以及判斷分析用一定參數描述的實(shí)時(shí)任務(wù)能否被系統正確調度。
給定一組實(shí)時(shí)任務(wù)和系統資源,確定每個(gè)任務(wù)何時(shí)何地執行的整個(gè)過(guò)程就是調度。在非實(shí)時(shí)系統中,調度的主要目的是縮短系統平均響應時(shí)間,提高系統資源利用率,或優(yōu)化某一項指標;而實(shí)時(shí)系統中調度的目的則是要盡可能地保證每個(gè)任務(wù)滿(mǎn)足他們的時(shí)間約束,及時(shí)對外部請求做出響應。實(shí)時(shí)調度技術(shù)通常有多種劃分方法,常用以下兩種。
1)搶占式調度通常是優(yōu)先級驅動(dòng)的調度。每個(gè)任務(wù)都有優(yōu)先級,任何時(shí)候具有最高優(yōu)先級且已啟動(dòng)的任務(wù)先執行。一個(gè)正在執行的任務(wù)放棄處理器的條件為:自愿放棄處理器(等待資源或執行完畢);有高優(yōu)先級任務(wù)啟動(dòng),該高優(yōu)先級任務(wù)將搶占其執行。除了共享資源的臨界段之外,高優(yōu)先級任務(wù)一旦準備就緒,可在任何時(shí)候搶占低優(yōu)先級任務(wù)的執行。搶占式調度的優(yōu)點(diǎn)是實(shí)時(shí)性好、反應快,調度算法相對簡(jiǎn)單,可優(yōu)先保證高優(yōu)先級任務(wù)的時(shí)間約束,其缺點(diǎn)是上下文切換多。而非搶占式調度是指不允許任務(wù)在執行期間被中斷,任務(wù)一旦占用處理器就必須執行完畢或自愿放棄。其優(yōu)點(diǎn)是上下文切換少;缺點(diǎn)是在一般情況下,處理器有效資源利用率低,可調度性不好。
2)靜態(tài)表驅動(dòng)策略(Static Table-Driven Scheduling)是一種離線(xiàn)調度策略,指在系統運行前根據各任務(wù)的時(shí)間約束及關(guān)聯(lián)關(guān)系,采用某種搜索策略生成一張運行時(shí)刻表。這張運行時(shí)刻表與列車(chē)運行時(shí)刻表類(lèi)似,指明了各任務(wù)的起始運行時(shí)刻及運行時(shí)間。運行時(shí)刻表一旦生成就不再發(fā)生變化了。在系統運行時(shí),調度器只需根據這張時(shí)刻表啟動(dòng)相應的任務(wù)即可。由于所有調度策略在離線(xiàn)情況下指定,因此調度器的功能被弱化,只具有分派器(Dispatcher)的功能。
優(yōu)先級驅動(dòng)策略指按照任務(wù)優(yōu)先級的高低確定任務(wù)的高低確定任務(wù)的執行順序。優(yōu)先級驅動(dòng)策略又分為靜態(tài)優(yōu)先級調度策略。靜態(tài)優(yōu)先級調度是指任務(wù)的優(yōu)先級分配好之后,在任務(wù)的運行過(guò)程中,優(yōu)先級不會(huì )發(fā)生改變。靜態(tài)優(yōu)先級調度又稱(chēng)為固態(tài)優(yōu)先級調度。動(dòng)態(tài)優(yōu)先級調度是指任務(wù)的優(yōu)先級可以隨著(zhù)時(shí)間或系統狀態(tài)的變化而發(fā)生變化。
實(shí)時(shí)系統主要分為以下兩類(lèi)。
強實(shí)時(shí)系統(Hard Real-Time):在航空航天、軍事、核工業(yè)等一些關(guān)鍵領(lǐng)域中,應用時(shí)間需求應能夠得到完全滿(mǎn)足,否則就造成如飛機失事等重大地安全事故,造成重大地生命財產(chǎn)損失和生態(tài)破壞。因此,在這類(lèi)系統的設計和實(shí)現過(guò)程中,應采用各種分析、模擬及形式化驗證方法對系統進(jìn)行嚴格的檢驗,以保證在各種情況下應用的時(shí)間需求和功能需求都能夠得到滿(mǎn)足。
弱實(shí)時(shí)系統(Soft Real-Time):某些應用雖然提出了時(shí)間需求,但實(shí)時(shí)任務(wù)偶爾違反這種需求對系統的運行以及環(huán)境不會(huì )造成嚴重影響,如視頻點(diǎn)播(Video-On-Demand,VOD)系統、信息采集與檢索系統就是典型的弱實(shí)時(shí)系統。在VOD系統中,系統只需保證絕大多數情況下視頻數據能夠及時(shí)傳輸給用戶(hù)即可,偶爾的數據傳輸延遲對用戶(hù)不會(huì )造成很大影響,也不會(huì )造成像飛機失事一樣嚴重的后果。
聯(lián)系客服