Can you summarize the following document?
        
  例如,一個程序 p1佔用了顯示器,同時又必須使用印表機,而印表機被程序p2佔用,p2又必須使用顯示器,這樣就形成了死鎖。 因為p1必須等待p2釋出印表機才能夠完成工作並釋出螢幕,同時p2也必須等待p1釋出顯示器才能完成工作並釋出印表機,形成迴圈等待的死結。

  如果系統中只有一個程序,當然不會產生死鎖。如果每個程序僅需求一種系統資源,也不會產生死鎖。不過這只是理想狀態,在現實中是可遇不可求的。  死鎖的四個條件是:  死鎖只有在四個條件同時滿足時發生,預防死鎖必須至少破壞其中一項。

  我們也可以嘗試迴避死鎖。因為在理論上,死鎖總是可能產生的,所以作業系統嘗試監視所有程序,使其沒有死鎖。

  最簡單的消除死鎖的辦法是重啟系統。更好的辦法是終止一個程序的執行。  同樣也可以把一個或多個程序回滾到先前的某個狀態。如果一個程序被多次回滾,遲遲不能佔用必需的系統資源,可能會導致資源匱乏。

  活結(英語:Livelock),與死結相似,死結是行程都在等待對方先釋放資源;活結則是行程彼此釋放資源又同時佔用對方釋放的資源,當此情況持續發生時,儘管資源的狀態不斷改變,但每個行程都無法取得所需資源,使得事情沒有任何進展。

  假設兩人正好面對面碰上對方:
死鎖(英語:Deadlock),又譯為死結,電腦科學名詞。當兩個以上的運算單元,雙方都在等待對方停止執行,以取得系統資源,但是沒有一方提前退出時,就稱為死結。在多工作業系統中,作業系統為了協調不同行程,能否取得系統資源時,為了讓系統運作,必須要解決這個問題。