freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第10課設(shè)備驅(qū)動(dòng)開發(fā)-預(yù)覽頁

2024-10-30 16:43 上一頁面

下一頁面
 

【正文】 – 驅(qū)動(dòng) 結(jié)構(gòu) drivers Linux統(tǒng)一設(shè)備模型的基本結(jié)構(gòu) 類型 說明 對(duì)應(yīng)內(nèi)核數(shù)據(jù)結(jié)構(gòu) 對(duì)應(yīng) /sys項(xiàng) 總線類型( Bus Types) 系統(tǒng)中用于連接設(shè)備的總線 struct bus_type /sys/bus/*/ 設(shè)備( Devices) 內(nèi)核識(shí)別的所有設(shè)備,依照連接它們的總線進(jìn)行組織 struct device /sys/devices/*/*/../ 設(shè)備類別( Device Classes) 系統(tǒng)中設(shè)備的類型(聲卡,網(wǎng)卡,顯卡,輸入設(shè)備等),同一類中包含的設(shè)備可能連接不同的總線 struct class /sys/class/*/ 設(shè)備驅(qū)動(dòng)( Device Drivers) 在一個(gè)系統(tǒng)中安裝多個(gè)相同設(shè)備,只需要一份驅(qū)動(dòng)程序的支持 struct device_driver /sys/bus/pic/drivers/*/ Platform機(jī)制 ? 從 Linux 起引入了一套新的驅(qū)動(dòng)管理和注冊(cè)機(jī)制 :Platform_device 和 Platform_driver 。 同步機(jī)制 ? 同步 鎖 ? 信號(hào)量 ? 讀寫信號(hào)量 ? 原子操作 ? 完成 事件( pletion) 同步鎖 ? 自旋鎖( spinlock) ? 讀寫鎖( rwlock) ? RCU鎖 ( ReadCopy Update) ? Seqlock 自旋鎖( 1) ? 如果一個(gè) 自旋鎖被別的 任務(wù) 保持 ,調(diào)用者就一直循環(huán) , 不停檢測(cè) 該 自旋鎖的保持 者是否 已經(jīng) 釋放了鎖 。 – void spin_lock_init(spinlock_t *lock)。 – int spin_trylock_bh(spinlock_t *lock)。/*靜態(tài) */ – rwlock_init(amp。 ? 寫 者 鎖的獲取和釋放: – void write_lock(rwlock_t *lock)。 ? 對(duì)于被 RCU保護(hù)的共享數(shù)據(jù)結(jié)構(gòu),讀者不需要獲得任何鎖就可以訪問它,但寫者在訪問它 時(shí)首先拷貝一個(gè)副本,然后對(duì)副本進(jìn)行修改,最后使用一個(gè)回調(diào)( callback)機(jī)制在適當(dāng)?shù)臅r(shí)機(jī)把指向原來數(shù)據(jù)的指針重新指向新的被修改的數(shù)據(jù)。 – 該函數(shù)由 RCU寫端調(diào)用,它將阻塞寫者,直到所有讀者完成對(duì)臨界區(qū)的訪問后,寫者才可以繼續(xù)下一步操作。 spinlock_t lock。讀者在得到鎖時(shí),會(huì)讀取 sequence的值,在它退出時(shí),會(huì)檢查當(dāng)前的 sequence值和之前取得的 sequence值是否一致,如果不一致,則說明有寫者進(jìn)入過臨界區(qū)。the_lock)。 – void write_sequnlock(seqlock_t *lock)。當(dāng)持有該信號(hào)量 的 任務(wù)釋放信號(hào) 量后 ,等待 該信號(hào)量 的 一個(gè)任務(wù)就會(huì)被 喚醒 并 獲得 信號(hào)量 。 – void init_MUTEX_LOCKED(struct semaphore *sem); ? 獲得 /釋放 – void down(struct semaphore *sem)。 而 寫者 則 具有排他性和獨(dú)占性。 – int down_read_trylock(struct rw_semaphore *sem)。 ? 寫者降級(jí)為 讀者 – void downgrade_write(struct rw_semaphore *sem)。 原子操作的使用 ? 原子 操作類型的定義 – typedef struct {volatile int counter。 – void atomic_add(int I, atomic_t *v)。 – … 完成事件 (pletion) ? pletion是一種輕量級(jí)的同步機(jī)制,它允許一個(gè)任務(wù)告訴另一個(gè)任務(wù)工作已經(jīng)完成。 ? 動(dòng)態(tài) 聲明 和 初始化 – struct pletion my_pletion。 ? 喚醒等待該事件的 進(jìn)程 – void plete(struct pletion *p)??梢?交給 內(nèi)核線程去 執(zhí)行 , 允許重新 調(diào)度 或 睡眠。 }。 – int cancel_delayed_work(struct work_struct *work)。 – 提高系統(tǒng) 的響應(yīng)速度 ? 要 使用 AIO功能,需要包含頭文件 Thanks!
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1