自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix操作系統(tǒng)加鎖和解鎖講解

系統(tǒng) 其他OS
我們在文章中,可以知道Unix操作系統(tǒng)加鎖和解鎖的基本思想,當Unix操作系統(tǒng)該鎖被釋放時,也就是解鎖事件發(fā)生時。

今天,我們來講解一些關于加鎖解鎖的知識。Unix操作系統(tǒng)加鎖和解鎖的基本思想是,當某個進程進入臨界區(qū),它將持有一個某種類型的鎖(UNIX里一般來說是semaphore,Linux里一般是信號量和原子量或者spinlock)。當其他進程在該進程沒有釋放該鎖時試圖進入臨界區(qū)(加鎖),它將會被設置成睡眠狀態(tài),然后被置入等待該鎖的進程隊列(某個優(yōu)先級的)。

當Unix操作系統(tǒng)該鎖被釋放時,也就是解鎖事件發(fā)生時,內(nèi)核將從等待該鎖的進程優(yōu)先級隊列中尋找一個進程并將其置為就緒態(tài),等待調度(schedule)。

在system v中,等待某一事件被稱為sleep(sleep on an event),因此下文將統(tǒng)一使用睡眠(sleep)。Unix操作系統(tǒng)等待某事件也可以成為等待某個鎖。(注:本文中的sleep與sleep()系統(tǒng)調用不同)

Unix操作系統(tǒng)的實現(xiàn)將一組事件映射到一組內(nèi)核虛擬地址(鎖);而且事件不區(qū)別對待到底有多少進程在等待。這就意味著兩個不規(guī)則的事情:

一、當某個事件發(fā)生時,Unix操作系統(tǒng)等待該事件的一組進程均被喚醒(而不是僅僅喚醒一個進程),并且狀態(tài)均被設置成就緒(ready-to-run)。

這時候由內(nèi)核選擇(schedule)一個進程來執(zhí)行,由于system v內(nèi)核不是可搶占的(Linux內(nèi)核可搶占),因此其他的進程將一直在就緒狀態(tài)等待調度,或者再次進入睡眠(因為該鎖有可能被執(zhí)行進程持有,而執(zhí)行進程因為等待其他事件的發(fā)生而睡眠),或者等其他進程在用戶態(tài)被搶占。

二、多個事件映射到同一個地址(鎖)。假設事件e1和e2都映射到同一個地址(鎖)addr,有一組進程在等待e1,一組進程在等待e2,它們等待的事件不同,但是Unix操作系統(tǒng)對應的鎖相同。

假如e2發(fā)生了,所有等待e2的進程都被喚醒進入就緒狀態(tài),而由于e1沒有發(fā)生,鎖addr沒有被釋放,所有被喚醒的進程又回到睡眠狀態(tài)。

Unix操作系統(tǒng)貌似一個事件對應一個地址會提高效率,但實際上由于system v是非搶占式內(nèi)核,而且這種多對一映射非常少,再加上運行態(tài)進程很快就會釋放資源(在其他進程被調度之前),因此這種映射不會導致性能的顯著降低。

【編輯推薦】

  1. 提高Unix系統(tǒng)安全性和穩(wěn)定性
  2. 講述5種Unix關機方法
  3. 提高Unix系統(tǒng)安全性和穩(wěn)定性
  4. 使用Unix密鑰啟用自動登錄
  5. unixware進程相關的命令
責任編輯:小霞
相關推薦

2010-04-19 16:34:29

Unix操作系統(tǒng)

2010-04-20 11:34:26

Unix操作系統(tǒng)

2010-04-19 17:25:31

Unix操作系統(tǒng)

2010-04-29 13:30:20

Unix操作系統(tǒng)

2010-04-15 14:40:26

Unix操作系統(tǒng)

2010-04-08 16:57:03

Unix操作系統(tǒng)

2010-05-04 17:17:46

Unix類

2010-05-04 14:42:33

Unix操作系統(tǒng)

2010-04-19 14:23:40

Unix操作系統(tǒng)

2010-04-16 16:53:46

Unix操作系統(tǒng)

2010-04-30 17:53:29

2010-04-16 11:18:23

2010-04-19 16:47:40

Unix操作系統(tǒng)

2010-04-29 17:15:48

Unix操作系統(tǒng)

2010-04-09 15:10:41

Unix操作系統(tǒng)

2010-04-16 14:46:22

2010-04-08 16:40:35

2010-04-19 15:18:45

Unix操作系統(tǒng)

2010-04-20 10:12:40

Unix操作系統(tǒng)

2010-04-20 12:02:22

Unix操作系統(tǒng)
點贊
收藏

51CTO技術棧公眾號