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

正文內(nèi)容

第10課設(shè)備驅(qū)動開發(fā)(參考版)

2024-10-02 16:43本頁面
  

【正文】 – … 異步 I/O ? 非 阻塞 I/O(nonblocking IO),又稱 異步I/O(Asynchronous IO): – 用戶程序發(fā)出 I/O請求 命令 后 ,不 必等待 I/O操作完成就 可以 繼續(xù)做另外的 事情 ; – 當(dāng) I/O操作 實(shí)際 完成 時 , 內(nèi)核會通過函數(shù)回 調(diào)(function callback)或者 信號 機(jī)制 (signal mechanism)通知 用戶進(jìn)程 。 ? 創(chuàng)建和調(diào)度工作隊(duì)列 – struct workqueue_struct *create_workqueue(const char *name)。 – void flush_scheduled_work(void)。 工作隊(duì)列的使用 ? 初始化 – INIT_WORK(_work, _func, _data) ? 使用 – int schedule_work(struct work_struct *work)。 work_func_t func。 ? 數(shù)據(jù)結(jié)構(gòu): struct work_struct { atomic_long_t data。 – 比如一個中斷 ISR里面要做很多比較耗時的操作,這時就可以把耗時的工作放到工作隊(duì)列中去滯后執(zhí)行。 – void plete_all(struct pletion *p)。 ? 等待某個進(jìn)程的完成 – void wait_for_pletion(struct pletion *p)。 – init_pletion(amp。 完成事件的使用 ? 靜態(tài)聲明和初始化 – DECLARE_COMPLETION(my_pletion)。 ? 與 semaphore的功能類似,但使用方法更為簡單 – 適用于需要睡眠和喚醒的情景 :可以讓一個 任務(wù) 進(jìn)入 睡眠直到其它任務(wù)完成某些處理過程為止 。 – void atomic_dec(atomic_t *v)。 – void atomic_sub(int I,atomic_t *v)。 – atomic_set(atomic_t *v,int i)。}atomic_t。 ? 很多 資源 計數(shù) ( reft) 操作 是 通過原子操作實(shí)現(xiàn)的。 原子操作 (atomic operation) ? 原子操作 在執(zhí)行完畢 前不會 被任何其他 任務(wù)打斷 。 – void up_write(struct rw_semaphore *sem)。 ? 寫操作 – void down_write(struct rw_semaphore *sem)。 ? 讀操作 – void down_read(struct rw_semaphore *sem)。 ? 讀者 在擁有讀寫信號量期間,對該讀寫信號量保護(hù)的共享資源只能進(jìn)行讀訪問;如果某個任務(wù)同時需要讀和寫,則被歸類為寫者,它在對共享資源訪問之前須先獲得寫者身份,寫者 在 當(dāng)前 不 需要寫訪問的情況 下 可以 被 降級為 讀者 ,提高系統(tǒng)的并發(fā)性 。 讀寫信號量( rw_semaphore) ? 任意多個讀者 可以 同時擁有一個讀寫信號量 。 – int down_trylock(struct semaphore *sem)。 – void init_MUTEX(struct semaphore *sem)。 ? 信號量適用于 鎖持有 時間較長 的 情況 ; 而自旋鎖適用于 鎖持有 時間較短的情況。當(dāng) 一個任務(wù)試圖獲得已被占用的信號量時,會進(jìn)入一個等待隊(duì)列,然后睡眠。 信號量 (semaphore) ? 信號量 (semaphore)可以有 1的值,而互斥鎖 (mutex)是一種特殊信號量,只能有 01值。 ? 寫 者: 由 自旋鎖 實(shí)現(xiàn) – void write_seqlock(seqlock_t *lock)。 /* Do what you need to do */ } while read_seqretry(amp。 do { seq = read_seqbegin(amp。這 種情況下,讀者會重新獲取鎖并重讀,直到兩次 sequence的值一致為止。 如果讀者獲取了鎖,寫者依然可以獲取鎖,也就是說,讀者不會阻塞寫者。 } seqlock_t。 seqlock的定義如下: typedef struct { unsigned sequence。如果有多個 RCU寫端調(diào)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1