計算機裝置是如何分配的,詳細介紹如何避免計算機死鎖的發生

裝置分配,會按照一定的策略,把裝置分配給請求程序,系統中會設定相應的資料結構。有裝置控制表、控制器控制表、通道控制表和系統裝置表。每一個裝置都配置了一張裝置控制表,記錄本裝置的情況,其中含有裝置佇列首指標、裝置狀態、與裝置連線的控制器表指標和重複執行次數。

計算機裝置是如何分配的,詳細介紹如何避免計算機死鎖的發生

控制器控制表,為每一個控制器設定一張表用於記錄控制器情況。通道控制表,每個通道配置一張通道控制表,裡面含有識別符號、通道狀態、表的首址和隊首隊尾指標。系統裝置表,是系統範圍的資料結構,記錄了系統中的全部裝置的情況,每個裝置含有一個表目,其中包括裝置的各項入口。

計算機裝置是如何分配的,詳細介紹如何避免計算機死鎖的發生

裝置分配時需要考慮的因素,裝置的固有屬性、裝置分配演算法、裝置分配時的安全性和裝置獨立性。裝置的固有屬性有三種:獨佔性,這種裝置在一段時間內只允許一個程序獨佔,也就是臨界資源。共享性,這種裝置允許多個程序同時共享。可虛擬裝置,透過虛擬技術將獨佔裝置變成共享裝置。

計算機裝置是如何分配的,詳細介紹如何避免計算機死鎖的發生

裝置分配演算法,與程序排程的演算法有些相似之處。先來先服務演算法,將裝置分配給對優先請求的程序。優先順序排程演算法,將優先權高的程序排在裝置佇列前面,優先順序相同則採用先來先服務原則排隊。

計算機裝置是如何分配的,詳細介紹如何避免計算機死鎖的發生

裝置中的安全性,有兩種分配方式。安全分配方式和不安全分配方式,前者會在程序發出I/O請求並進入阻塞狀態後,使該程序不能再請求任何資源,避免了死鎖的發生。缺點是程序進展緩慢。後者會在程序發出I/O請求後仍繼續執行,可以發出第二個和第三個I/O請求。優點是可以讓程序同時操作多個裝置,使程序推進迅速。缺點是分配不安全,可能發生死鎖。