A. 硬碟是不是臨界資源
從應用程序的角度看,硬碟是以文件為單位進行操作的,對文件寫入之前必須先加鎖,這個操作的原子性是在操作系統完成的,每個文件是一個臨界資源,不同的文件之間的操作是不互斥的。當然如果直接進行底層調用修改磁碟數據,那就和下面說的操作系統相同了
從操作系統或者驅動程序的角度看,硬碟是以磁軌為單位進行操作的,無論是DMA方式還是PIO方式,同一時間都只能操作一個位置,整個磁碟是一個資源
從硬碟自身的控制層面來看,一個操作序列下發之後,默認情況下是必須按照順序進行操作的,但是如果支持NCQ的話,可以對操作的順序進行更改以適應磁頭移動的軌跡。但是需要注意的是,一個磁碟即使有多個磁頭,也只有一個音圈馬達來控制,所以整個磁碟同一時間只能操作一個位置。
====================================================================
從操作系統看,硬碟是臨界資源,但要注意對應用程序的呈現
B. 所有共享資源都是臨界資源嘛,不怎麼清楚啊,求講解
不是所有的共享資源都是臨界資源。因為臨界資源是一次僅允許一個進程使用的資源,而系統中有很多資源可以讓多個進程同時使用,例如硬碟、正文段等。