Ⅰ 計組原理--IO系統
RAID0 :無冗餘和無校驗的磁碟陣列
磁碟交叉並行進行讀寫,擴大存儲容量,提高速度,但沒有容錯
RAID1 :鏡像磁碟陣列
兩個磁碟互為備份,容量減半
RAID2:採用海明碼來糾錯的磁碟陣列
RAID3:位交叉奇偶校驗的磁碟陣列
RAID4:塊交叉奇偶校驗的磁碟陣列
RAID5:無獨立校驗的奇偶校驗磁碟陣列
發出詢問信號,讀取設備狀態,CPU不斷查詢IO設備狀態直到就緒,有「踏步」等待現象。
CPU暫時終止現行程序,轉去對異常情況進行處理,處理完畢後,CPU返回到現行程序的斷點處,繼續執行原程序
1.關中斷
2.保存斷點
3.引出中斷服務程序
-------------------------上面由硬體完成,下面由中斷程序完成-----------------------------
4.保存現場和屏蔽字
5.開中斷
6.執行中斷服務程序
7.關中斷
8.恢復現場和屏蔽字
9.開中斷
10.中斷返回
由DMA控制器控制數據傳送過程。在外設與內存之間開辟一條「直接數據通路」,DMA控制器從CPU完全接管對匯流排的控制,信息不再經過CPU,降低CPU在數據傳送時的開銷
獨立於 CPU 的專門負責輸入輸出控制的處理機,它控制設備與內存直接進行數據交換。這些指令由 CPU 啟動,並在操作結束時向 CPU 發出中斷信號。
在DMA方式下,數據的傳送方向、存放數據的內存地址、數據塊長度由CPU控制,且每台設備至少需要一個DMA控制器。
一個通道可以控制多台設備,且通道本身就是一種處理器。
用戶操控硬體:用戶-->用戶層io軟體-->設備獨立性軟體-->設備驅動程序------------------------>硬體設備
硬體輸入信息給用戶:硬體設備--> 中斷處理程序 --> 設備驅動程序 --> 設備獨立性軟體 -->用戶層io軟體-->用戶
核心子系統:設備獨立性軟體,設備驅動程序,中斷處理程序
分為單緩沖、雙緩沖和循環緩沖。
緩沖區解決:
1.緩和CPU與IO設備間速度不匹配的矛盾
2.減少對CPU的中斷頻率
3.解決基本數據單元大小不匹配的問題
4.提高CPU與IO設備的並行性
1.獨占設備--列印機
2.共享設備--磁碟IO,通過分時來交替進行
3.虛擬設備
將獨占設備改造為共享設備的技術
共享列印機的過程:當用戶進程請求列印輸出時,SPOOLing系統同意為它列印輸出,但並不真正立即把列印機分配給該用戶進程,而是在輸出井中為之申請一個空閑區,將列印數據放入其中,然後把這個列印請求掛到請求列印隊列中。
Ⅱ 可以通過什麼把原獨享設備改造成能為若干用戶共享的設備。
虛擬設備,SPOOLing 技術
Ⅲ 死鎖及死鎖的處理策略
死鎖是指兩個或兩個以上的進程因競爭資源而造成的一種互相等待的現象,若無外力作用,這些進程都將無法向前推進。
飢餓:由於長期得不到想要的資源而導致進程無法向前推進的現象。如在進程調度演算法中的短進程優先演算法中,若有源源不斷的短進程到來,則長進程一直得不到處理機,從而發生了長進程飢餓。
死循環:某進程執行的過程中一直跳不出某種循環的現象。死循環可能是因為程序bug或者程序員有意為之。
(1) 互斥條件。 只有對必須互斥使用的資源爭搶(如列印機設備)才能導致死鎖。
(2) 不剝奪條件。 進程所獲得的資源在未使用完之前,不能由其他進程強行奪走,只能主動釋放。如果進程可以搶奪其他進程持有自己需要的資源的話,也就不會產生死鎖了,需要資源直接搶就行了。
(3) 請求和保持條件。 進程已經保持了至少一個資源,但是又提出了新的資源需求,而該資源又被其他進程佔有,此時請求進程被阻塞,但是又對自己持有的資源保持不放。也是很簡單的道理,如果一個進程請求的資源被阻塞,就釋放了自己持有的資源,其他進程就可以獲取它釋放的資源,也就不會發生相互等待而導致死鎖了。
(4) 循環等待條件。 存在一種進程資源的循環等待鏈,鏈中的每一個進程已經獲得的資源同時被下一個進程所請求。
(1) 對系統資源的爭搶。各進程對不可剝奪資源的競爭可能會引起死鎖。
(2) 進程推進順序非法。如果請求資源的順序不當也會導致死鎖,如上面的圖,雙方請求的資源被對方佔有而導致死鎖。
(3) 信號量的使用不當。並發執行進程時,如果信號量使用的順序不當也會到導致死鎖。
總之,對不可剝奪的資源的不合理分配,可能導致死鎖。
(1) 預防死鎖。 破壞死鎖產生的四個必要條件中的一個或幾個。
(2) 避免死鎖。 用某種方法防止系統進入安全狀態,從而避免死鎖(銀行家演算法)。
(3) 死鎖的檢測和解除。 允許死鎖的發生,不過操作系統會負責檢測出死鎖的發生,然後才去某種措施解除死鎖。
如果把只能互斥使用的資源改造成允許共享使用,則系統不會進入死鎖狀態。如 SPOOLing技術 。操作系統可以採用SPOOLing技術吧獨占設備在邏輯上改造成共享設備。 它由專門負責 I/O 的常駐內存進程以及輸入、輸出井組成。 比如,用SPOOLing技術將列印機改造為共享設備...
缺點:並不是所有的資源都可以改造成共享使用的資源。並且為了系統安全,有時候還需要保護這種互斥性。
方案一:當某個進程請求新的資源得不到滿足時,它必須立即釋放保持的所有資源,待以後需要時重新申請。
方案二:申請的資源被其他進程佔用時,藉助操作系統的協助,剝奪進程資源,至於剝奪哪個進程資源可以根據優先順序考慮。
缺點:實現復雜。暫時請求不到某個資源,之前獲取的資源就需要釋放,以後重新申請,如果一直這樣可能會導致飢餓。
可以採用 靜態分配方法 ,即進程在運行前一次申請完它所需要的全部資源,在它的資源未滿足之前,不讓它運行。一旦運行,這些資源在運行期間一直歸它所有,該進程就不會再請求別的任何資源。
缺點:如果有些資源只需要用很短的時間,因此如果進程運行時間長,在運行期間都會保持持有所有資源,就會造成資源浪費, 資源利用率低。 此外,該策略可能導致某些進程飢餓。如下,如果C類進程需要資源1和資源2,如果有大量的A或B類進程,就會導致C類進程一直不能一次獲取全部需要的資源,導致飢餓。
可採用 順序資源分配法。 首先給系統中的資源編號,規定每個進程必須按編號遞增的順序請求資源,同類資源一次申請完。
原理:一個進程只要已佔有我號的資源時,才有資格申請更大號編號的資源。按照這樣的規則,已持有大編號的資源就不會逆向回來申請我號的資源,從而就不會產生循環等待的現象。
缺點:
(1) 實現復雜。
(2) 不方便增加新的設備,因為要重新分配所有編號。
(3) 進程實際使用資源的順序可能和資源編號遞增順序不一致,會導致資源浪費。例如列印機設備編號2,輸出設備編號為1,那麼一個進程請求列印機設備前,必須先請求輸出設備,而輸出設備在請求列印機設備這一段時間內根本沒有發揮作用,其他進程也不能訪問,造成資源浪費。
假如你是一個成功的銀行家,手裡有100個小目標資金....現在有三家公司A、B、C分別向從你貸款
然而,有個規則,如果借給企業的錢達不到企業提出的最大需求,那麼錢可能就一去不復返了.....
剛開始,三家公司分別從你這里借了20、10、30億.......
此時,手裡還要40億,此時B表示還要借20億,那麼你需要考慮可以借嗎?
如果給B借了20億.....此時手裡還要有20億。
之後看手裡剩下的錢能不能周轉過來,現在可以將剩下的20億借給C,C就達到了最大需求,之後C還錢50億,然後借給A,A達到最大需求,最後A還70億,最後A........還好借給B20億後,可以通過 C->A->B 這個順序周轉,所以這20億可以借。
現在看另一種情況,回到最初狀態,現在手裡還有40億
對於上面的第一種借給B20億是安全的,因為會存在C->A->B這樣的周轉路徑(安全序列),不會血本無歸。
安全序列:如果系統按照這種序列分配資源,則每個進程都能順利完成。 只要能找出一個安全序列,系統就是 安全的 。一個系統的 安全序列可能有多個 。
如果分配了資源之後,系統中找不到任何一個安全序列,系統進入了 不安全狀態 ,這就意味著之後可能所有的進程都無法順序執行下去。當然,如果有進程提前歸還了一些資源(如對上面的第二中情況,如果B提前還10億,那麼就可以周轉了....),那系統也可能 重新回到安全狀態 ,不過在分配資源之前總是考慮最壞情況 。
如果系統處於 安全狀態 ,就 一定不會發生死鎖 。如果系統進入了不安全狀態未必一定發生死鎖,但是發生了死鎖一定是在不安全狀態。
銀行家演算法 核心思想: 在進程提出資源請求時,先預先判斷此次分配是否會導致系統進入不安全狀態,如果進入不安全狀態,就暫時不答應這次請求,讓該進程先阻塞。
銀行家演算法步驟:
如果系統中既不採取預防死鎖的措施,也不採取避免死鎖的措施,系統就很可能發生死鎖。在這種情況下,系統應當提供兩個演算法:
(1) 死鎖檢測演算法:用於檢測系統狀態,以確定系統中是否發生了死鎖。
(2) 死鎖解除演算法:當認定系統中已經發生了死鎖,利用該演算法可將系統從死鎖狀態中解脫出來。
系統死鎖可利用 資源分配圖 來描述。
上圖可以看到,R1類資源的資源數已經全部分配完了,R2類資源還有一個資源。P1進程向R2類資源請求一個資源,P2進程向R1類資源請求一個資源。
如果系統中剩餘可用的資源數足夠滿足進程的需求,那麼這個進程暫時是不會阻塞的,可以順利的執行下去。如果這個進程執行結束了把資源歸還給系統,就可能使某些正在等待的資源的進程重新被激活,並順利的執行下去。相應的,這些被激活的進程執行完後又會歸還一些資源,這樣可能又會激活另外一些阻塞的進程...
按照上面的過程分析,最終 能消除所有邊 ,就稱這個圖是 可完全簡化的 。此時一定 沒有發生死鎖 (相當於找到一個安全序列)。如果最終 不能消除所有邊 ,那麼此時就是 發生死鎖了。
最終還連著邊的進程就是處於死鎖狀態的進程。
檢測死鎖的演算法:
死鎖定理:如果某時刻系統的資源分配圖是不可完全簡化的,那麼此時系統死鎖。
下圖是一個系統死鎖的圖:
即使P3釋放了資源,P1和P2進程都不滿足繼續運行的條件,所以此時P1和P2就是死鎖進程。
解除死鎖的方法有:
(1) 資源剝奪法。 掛起(暫時放在外存上)某些死鎖進程,並搶占它的資源,將這些資源分配給其他進程,但是應防止被掛起長時間導致飢餓。
(2) 撤銷進程法。 強制撤銷部分、甚至全部死鎖進程,並剝奪這些進程的資源。這中方法實現簡單,但是也是有代價的,如果有些已經運行了很長時間了,離成功只有一步之遙了,此時撤銷導致功虧一簣,還需要從頭再來....
(3) 進程回退法。 讓一個或多個死鎖進程回退到足以避免死鎖的地步。這就要求系統要記錄進程的歷史信息,設置還原點。
那麼對哪些進程動手呢?可以考慮優先對以下的進程處理:
(1) 優先順序低的進程。
(2) 執行時間段的進程。
(3) 距離運行結束剩餘時間長的進程。
(4) 使用資源多的進程。
(5) 批處理式而不是互動式的進程。
Ⅳ 什麼是spooling技術
SPOOLing技術是低速輸入輸出設備與主機交換的一種技術,通常也稱為「假離線真聯機」,他的核心思想是以聯機的方式得到離線的效果。低速設備經通道和外設在主機內存的緩沖存儲器與高速設備相聯,該高速設備通常是輔存。
虛擬性是OS的四大特性之一。如果說可以通過多道程序技術將一台物理CPU虛擬為多台邏輯CPU,從而允許多個用戶共享一台主機,那麼,通過SPOOling技術便可將一台物理I/O設備虛擬為多台邏輯I/O設備,同樣允許多個用戶共享一台物理I/O設備。

(4)如何將獨占設備改造為共享設備擴展閱讀:
SPOOLing技術的特點:
1、提高了I/O速度。從對低速I/O設備進行的I/O操作變為對輸入井或輸出井的操作,如同離線操作一樣,提高了I/O速度,緩和了CPU與低速I/O設備速度不匹配的矛盾。
2、將獨占設備改造為共享設備。因為在SPOOLing系統的系統中,實際上並沒為任何進程分配設備,而知識在輸入井或輸出井中為進程分配一個存儲區和建立一張I/O請求表。這樣,便把獨占設備改造為共享設備。
3、實現了虛擬設備功能。多個進程同時使用一獨享設備,而對每一進程而言,都認為自己獨占這一設備,從而實現了設備的虛擬分配。不過,該設備是邏輯上的設備。
Ⅳ 操作系統的SPOOLING,實質是將什麼設備轉為共享設備 獨占還是虛擬還是離線解釋下
SPOOLING技術(Simultaneous Peripheral Operating On Line)
同時聯機外圍操作技術,它是關於慢速字元設備如何與計算機主機進行數據交換的一種技術,通常又稱假離線技術。
在多道程序環境下,利用多道程序中的一道或者兩道程序來模擬離線輸入/輸出中的外圍控制機的功能,以達到「離線」輸入/輸出的目的。
利用這種技術可把獨占設備轉變成共享的虛擬設備,從而提高獨占設備的利用率和進程的推進速度。
SPOOLING系統 是對離線輸入/輸出工作的模擬,它必須有大容量的且可隨機存取的存儲器
的支持。
其主要思想是在聯機的條件下,進行兩個方向的操作,在數據輸入時,將數據從輸入設備傳送到磁碟或磁帶(塊設備),然後把這些塊設備與主機相連;反過來,在數據輸出時,將輸出數據傳送到磁碟或磁帶上,再從磁碟或磁帶傳送到輸出設備。
這樣,可以將一台獨占的物理設備虛擬為並行使用的多態邏輯設備,從而使該物理設備被多個進程共享。
輸入進程SPI是模擬離線輸入時的外圍控制機,它將用戶要求處理的數據從輸入設備通過輸入緩沖區再送到輸入井(磁碟上開辟的一塊區域),當CPU處理這些數據數據時,就直接從輸入井讀入內存。
輸出進程SPO是模擬離線輸出時的外圍控制機,把用戶要求輸出的數據,先從內存送到輸出井,待輸出設備空閑時,再將輸出井中的數據通過輸出緩沖區(內存中一塊區域)傳送到輸出設備上。
Ⅵ SPOOLing技術的SPOOLing技術
由上所述得知,SPOOLing技術是對離線輸入、輸出系統的模擬。相應地,SPOOLing系統必須建立在具有多道程序功能的操作系統上,而且還應有高速隨機外存的支持,這通常是採用磁碟存儲技術。
SPOOLing系統主要有以下三部分:
(1)輸入井和輸出井。這是在磁碟上開辟的兩個大存儲空間。輸入井是模擬離線輸入時的磁碟設備,用於暫存I/Q設備輸入的數據;輸出井是模擬離線輸出時的磁碟,用於暫存用戶程序的輸出數據。
(2)輸入緩沖區和輸出緩沖區。為了緩和和CPU和磁碟之間速度不匹配的矛盾,在內存中要開辟兩個緩沖區;輸入緩沖區和輸出緩沖區。輸入緩沖區用於暫存由輸入設備送來的數據,以後再傳送到輸入井。輸出緩沖區用與暫存從輸出井送來的數據,以後在傳送給輸出設備。
(3)輸入進程SPi 和輸入進程SP0。這里利用兩個進程來模擬離線I/O時的外圍控制機。其中,進程SPi模擬離線輸入時的外圍控制機,將用戶要求的數據從輸入機通過輸入緩沖區再送到輸入井,當CPU需要輸入數據時,直接從輸入井讀入內存;進程SP0模擬離線輸出時的外圍控制機,把用戶要求輸出的數據從先內存送到輸出井,待輸出設備空閑時,在將輸出井中的數據經過輸出緩沖區送到輸出設備上。 (1)提高了I/O速度。從對低速I/O設備進行的I/O操作變為對輸入井或輸出井的操作,如同離線操作一樣,提高了I/O速度,緩和了CPU與低速I/O設備速度不匹配的矛盾。
(2)將獨占設備改造為共享設備。因為在SPOOLing系統的系統中,實際上並沒為任何進程分配設備,而知識在輸入井或輸出井中為進程分配一個存儲區和建立一張I/O請求表。這樣,便把獨占設備改造為共享設備。
(3)實現了虛擬設備功能。多個進程同時使用一獨享設備,而對每一進程而言,都認為自己獨占這一設備,從而實現了設備的虛擬分配。不過,該設備是邏輯上的設備。
SPOOLing除了是一種速度匹配技術外,也是一種虛擬設備技術。用一種物理設備模擬另一類物理設備,使各作業在執行期間只使用虛擬的設備,而不直接使用物理的獨占設備。這種技術可使獨占的設備變成可共享的設備,使得設備的利用率和系統效率都能得到提高。

Ⅶ 採用spooling技術的目的是
SPOOLing,即外圍設備聯機並行操作,它除了是一種速度匹配技術外、也是一種虛擬設備技術。用一種物理設備模擬另一類物理設備,使各作業在執行期間只使用虛擬的設備,而不直接使用物理的獨占設備。這種技術可使獨占的設備變成可共享的設備,使得設備的利用率和系統效率都能得到提高。
SPOOLing技術是低速輸入輸出設備與主機交換的一種技術,通常也稱為「假離線真聯機」,他的核心思想是以聯機的方式得到離線的效果。低速設備經通道和設在 主機內存的緩沖存儲器與高速設備相聯,該高速設備通常是輔存。為了存放從低速設備上輸入的信息,或者存放將要輸出到低速設備上的信息(來自內存),在輔存分別開辟一固定區域,叫「輸出井」(對 輸出),或者「輸入井」(對輸入)。簡單來說就是在內存中形成 緩沖區,在高級設備形成輸出井和輸入井,傳遞的時候,從低速設備傳如緩沖區,在傳到高速設備的輸入井,在從高速設備的輸出井,傳到緩沖區,在傳到低速設備。
SPOOLing是 On-Line (即外部設備聯機並行操作)的縮寫,它是關於慢速字元設備如何與計算機主機交換信息的一種技術,通常稱為「假離線技術」。
SPOOLing系統既不同於離線方式,也不同於直接藕合方式,SPOOLing技術實際上是一種外圍設備同時聯機操作技術,又稱為排隊轉儲技術。它在輸入和輸出之間增加了「輸入井」和「輸出井」的排隊轉儲環節,以消除用戶的「聯機」等待時間。在系統輸入模塊收到作業輸入請求信號後,輸入管理模塊中的讀過程負責將信息從輸入裝置中讀入輸入井緩沖區。當緩沖區滿時,由寫過程將信息從緩沖區寫到外存的輸入井中,讀過程和寫過程反復循環,直到一個作業輸入完畢。當讀過程讀到一個硬體結束標志之後,系統再次驅動寫過程把最後一批信息寫入外存輸入井並調用中斷處理程序結束該次輸入。
然後,系統為該作業建立作業控制塊,從而使輸入井中的作業進入作業等待隊列,等待作業調度程序選中後進入內存運行。系統在管理輸入井過程中可以「不斷」讀入輸入的作業,直到輸入結束或輸入井滿而暫停。若系統的某台台行式列印機採用了虛擬設備技術,那麼若有進程要求對它列印輸出時,SPOOLing系統並不是將這台列印機直接分配給進程,而是在共享設備(磁碟)上的輸出,SPOOLing存儲區中為其分配一塊存儲空間,進程的輸出數據以文件形式此。各進程的數據輸出文件形成了一個輸出隊列,由輸出POOLing系統控制這台列印機進程,依次將隊列中的輸出文件實際列印輸出。在SPOOLing系統中,實際上並沒有為任何進程分配,而只是在輸入井和輸出井中,為進程分配一存儲區和建立一章I/O請求表。這樣,便把獨占設備改造為共享設備。
Ⅷ 簡述SPOOLing系統的基本原理
SPOOLing是Simultaneous Peripheral Operation On-Line (即外部設備聯機並行操作)的縮寫,它是關於慢速字元設備如何與計算機主機交換信息的一種技術,通常稱為「假離線技術」。實際上是一種外圍設備同時聯機操作技術,又稱為排隊轉儲技術。
它在輸入和輸出之間增加了「輸入井」和「輸出井」的排隊轉儲環節。
SPOOLing系統主要包括以下三部分:
(1)輸入井和輸出井:這是在磁碟上開辟出來的兩個存儲區域。輸入井模擬離線輸入時的磁碟,用於收容I/O設備輸入的數據。輸出井模擬離線輸入時的磁碟,用於收容用戶程序的輸出數據。
(2)輸入緩沖區和輸出緩沖區:這是在內存中開辟的兩個緩沖區。輸入緩沖區用於暫存有輸入設備送來的數據,以後在傳送到輸出井。輸出緩沖區用於暫存從輸出井送來的數據,以後再傳送到輸出設備。
(3)輸入進程和輸出進程:輸入進程模擬離線輸入時的外圍控制機,將用戶要求的數據有輸入設備到輸入緩沖區,再送到輸入井。當CPU需要輸入設備時,直接從輸入井讀入內存。輸出進程模擬離線輸出時的外圍控制機,把用戶要求輸入的數據,先從內存送到輸出井,待輸出設備空閑時,再將輸出井中的數據,經過輸出緩沖區送到輸出設備上。
SPOOLing技術的特點:
(1)提高了I/O速度.從對低速I/O設備進行的I/O操作變為對輸入井或輸出井的操作,如同離線操作一樣,提高了I/O速度,緩和了CPU與低速I/O設備速度不匹配的矛盾.
(2)設備並沒有分配給任何進程.在輸入井或輸出井中,分配給進程的是一存儲區和建立一張I/O請求表.
(3)實現了虛擬設備功能.多個進程同時使用一獨享設備,而對每一進程而言,都認為自己獨占這一設備,不過,該設備是邏輯上的設備.
Ⅸ 共享設備有哪些
說到共享設備,大家首先想到的是共享車,其實,隨著物聯網技術的不斷運用,共享設備項目也開始變的多樣化,比如我們生活中的共享設備有:共享汽車、共享充電寶、共享雨傘、共享WiFi、共享按摩椅等,甚至現在還出現有共享休息室,在產品上面可謂是層出不窮。共享是一種潮流,更是一種趨勢。從共享單車到共享汽車等各種共享產品,可以看出來,我們正在進入一個嶄新的共享時代,而共享無人設備更是順應這個時代而衍生出來的產品。
Ⅹ win10怎麼設置網路共享設備
工具: win10 方法如下: 1、點擊Win10系統桌面上的控制面板,然後選擇控制面板里的查看類型,如下圖所示。 2、將查看類型更改為小圖標,然後點擊「設備和列印機」,如下圖所示。 3、在設備和列印機窗口中,選擇一台想要共享的列印機,然後在右鍵選擇「列印機屬性」。如下圖所示。 4、點擊進入對應的列印機屬性對話框,點擊共享選項卡,如下圖所示。 5、在共享選項卡里將「共享這台列印機」勾選上,然後點擊確定,如下圖所示。 6、列印機共享設置完成後,其他電腦就可以通過網路訪問到這台共享列印機。如下圖所示。