什麼是死鎖死鎖產生的原因是什麼

什麼是死鎖死鎖產生的原因是什麼

死鎖是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱爲死鎖進程。

產生原因如下:

1、 競爭資源引起進程死鎖。當系統中供多個進程共享的資源如打印機、公用隊列的等,其數目不足以滿足諸進程的需要時,會引起諸進程對資源的競爭而產生死鎖;

2、 可剝奪資源和不可剝奪資源。系統中的資源可以分爲兩類,一類是可剝奪資源,是指某進程在獲得這類資源後,該資源可以再被其他進程或系統剝奪;

3、 競爭不可剝奪資源。在系統中所配置的不可剝奪資源,由於它們的數量不能滿足諸進程運行的需要,會使進程在運行過程中,因爭奪這些資源而陷於僵局;

4、 競爭臨時資源。指由一個進程產生,被另一個進程使用,短時間後便無用的資源,故也稱爲消耗性資源,它也可能引起死鎖。