死鎖對操作系統(tǒng)有哪些影響 分布式操作系統(tǒng)的基本功能?
分布式操作系統(tǒng)的基本功能?分布式操作系統(tǒng)有以下三個基本功能,:。過程管理、通信管理和資源管理。除了單機(jī)操作系統(tǒng)的主要功能外,分布式操作系統(tǒng)還應(yīng)包括分布式進(jìn)程通信、分布式文件系統(tǒng)、分布式進(jìn)程遷移、分布式
分布式操作系統(tǒng)的基本功能?
分布式操作系統(tǒng)有以下三個基本功能,:。
過程管理、通信管理和資源管理。
除了單機(jī)操作系統(tǒng)的主要功能外,分布式操作系統(tǒng)還應(yīng)包括分布式進(jìn)程通信、分布式文件系統(tǒng)、分布式進(jìn)程遷移、分布式進(jìn)程同步和分布式進(jìn)程死鎖等功能。
分布式文件系統(tǒng)是一種允許通過網(wǎng)絡(luò)互連的系統(tǒng),這樣不同機(jī)器上的用戶就可以共享文件。它可以由運(yùn)行它的所有主機(jī)共享,并且可以管理操作系統(tǒng)內(nèi)核和文件系統(tǒng)之間的通信。
如何解決I2C器件死鎖的問題?
正常情況下,I2C總線協(xié)議可以保證總線的正常讀寫操作。但是,在某些異常情況下,I2C公交車會被鎖定。例如,主控制器的突然復(fù)位,或I2C總線上的干擾,或異常供電都可能導(dǎo)致I2C總線鎖定。
在I2C主設(shè)備的讀寫操作過程中,主設(shè)備控制SCL在起始信號后產(chǎn)生8個時鐘脈沖。然后將SCL信號拉低至低電平。此時,從機(jī)輸出應(yīng)答信號,并將SDA信號拉至低電平。如果此時主設(shè)備異常復(fù)位,SCL將被釋放至高電平。此時,如果從設(shè)備沒有復(fù)位,它將繼續(xù)I2C應(yīng)答,將SDA拉至低電平,直到SCL變?yōu)榈碗娖讲沤Y(jié)束應(yīng)答信號。對于I2C主設(shè)備,復(fù)位后會檢測到SCL和SDA信號。如果發(fā)現(xiàn)SDA信號為低電平,則認(rèn)為I2C總線被占用,SCL和SDA信號將一直等待高電平。這樣,I2C主機(jī)等待從機(jī)釋放SDA信號,而I2C從機(jī)等待主機(jī)拉低SCL信號以釋放應(yīng)答信號。兩者互相等待,I2C總線進(jìn)入死鎖狀態(tài)。
類似地,當(dāng)I2C讀取時,I2C從設(shè)備應(yīng)答并輸出數(shù)據(jù)。如果此時I2C主設(shè)備異常復(fù)位,而I2C從設(shè)備輸出的數(shù)據(jù)位正好為0,I2C總線也會進(jìn)入死鎖狀態(tài)。
廣州致遠(yuǎn)電子ARM核心板使用IIC設(shè)備,遇到總線死鎖如何恢復(fù)總線死鎖?常見的方法如下:
(1)盡量選擇帶復(fù)位輸入的I2C從設(shè)備。從I2C總線死鎖的原因可以發(fā)現(xiàn),I2C總線死鎖的一個必要條件是主設(shè)備復(fù)位,從設(shè)備不復(fù)位。如果從設(shè)備選擇帶復(fù)位輸入的芯片,并將主設(shè)備和從設(shè)備的復(fù)位信號連接在一起,當(dāng)外部發(fā)生復(fù)位事件時,主設(shè)備和從設(shè)備同時復(fù)位,這樣就不會出現(xiàn)I2C總線死鎖。這種方法的缺點也很明顯。首先,大多數(shù)I2C從設(shè)備沒有復(fù)位輸入,這大大限制了設(shè)備的選擇。其次,由與主器件集成的看門狗引起的這種復(fù)位不起作用。
(2)將從I2C設(shè)備的所有電源連接在一起,并通過M0連接。S管連接到主電源,而MOS管由I2C主設(shè)備打開和關(guān)閉。一般來說,I2C主設(shè)備是帶有算術(shù)單元的處理器??刂乒δ芸梢酝ㄟ^處理器的GPIO實現(xiàn)。每次主設(shè)備復(fù)位,運(yùn)行程序控制GPIO關(guān)閉MOS,使從設(shè)備掉電。然后延時一段時間后MOS管導(dǎo)通,從設(shè)備上電,達(dá)到強(qiáng)制從設(shè)備復(fù)位的效果。這種方法可以彌補(bǔ)第一種方法的不足,但會增加電源設(shè)計的復(fù)雜度,影響版圖設(shè)計時電源的完整性。同時需要改變處理器的底層引導(dǎo)代碼,影響了底層軟件的通用性和可移植性。
(3)在I2C從設(shè)備中設(shè)計看門狗功能。當(dāng)I2C從設(shè)備檢測到其處于響應(yīng)狀態(tài)或低電平輸出超過規(guī)定時間時,看門狗動作復(fù)位I2C從設(shè)備。這種情況下,不需要增加額外的硬件設(shè)計,但要求I2C從設(shè)備具有可編程功能,更適合從設(shè)備為單片機(jī)或CPLD的情況。
(4)在I2C主設(shè)備中增加I2C總線恢復(fù)程序。I2C主器件每次復(fù)位后,如果檢測到SDA數(shù)據(jù)線被拉低,則控制I2C的SCL時鐘線產(chǎn)生9個時鐘脈沖(針對8位數(shù)據(jù)的情況),使I2C從器件完成掛起的讀操作,從死鎖狀態(tài)恢復(fù)。這種方法有很大的局限性,因為主設(shè)備的大部分I2C模塊都是通過內(nèi)置的硬件電路實現(xiàn)的。該軟件可以 t直接控制SCL信號產(chǎn)生所需的時鐘脈沖。采用這種方法,I/O可以用來模擬I2C,SCL時鐘也很容易控制。
(5)在I2C總線上添加一個額外的總線恢復(fù)設(shè)備,用于監(jiān)控I2C總線。當(dāng)器件檢測到SDA信號被拉低超過規(guī)定時間時,它會在SCL總線上產(chǎn)生9個時鐘脈沖,使能I2C從機(jī)完成讀操作并從死鎖狀態(tài)中恢復(fù)。總線恢復(fù)設(shè)備需要具有編程功能,一般可以用單片機(jī)或CPLD來實現(xiàn)。
(6)在I2C上串一個具有死鎖恢復(fù)的I2C緩沖區(qū)。