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

正文內(nèi)容

第10課設(shè)備驅(qū)動(dòng)開(kāi)發(fā)-閱讀頁(yè)

2024-10-18 16:43本頁(yè)面
  

【正文】 指針重新指向新的被修改的數(shù)據(jù)。 ? 讀者 基本上沒(méi)有同步開(kāi)銷(xiāo),不需要鎖,不使用原子指令; 但是 寫(xiě) 者同步開(kāi)銷(xiāo)相對(duì)較大,因?yàn)樗枰舆t數(shù)據(jù)結(jié)構(gòu)的釋放,復(fù)制被修改的數(shù)據(jù)結(jié)構(gòu),也必須用某種鎖機(jī)制同步并行的其它寫(xiě)者的修改操作。 – 該函數(shù)由 RCU寫(xiě)端調(diào)用,它將阻塞寫(xiě)者,直到所有讀者完成對(duì)臨界區(qū)的訪(fǎng)問(wèn)后,寫(xiě)者才可以繼續(xù)下一步操作。 seqlock( 1) ? Linux Lock, seqlock, 目的是在讀者操作特別多的情況下,避免寫(xiě)操作餓死。 spinlock_t lock。 它比 spinlock多了一個(gè) sequence域 。讀者在得到鎖時(shí),會(huì)讀取 sequence的值,在它退出時(shí),會(huì)檢查當(dāng)前的 sequence值和之前取得的 sequence值是否一致,如果不一致,則說(shuō)明有寫(xiě)者進(jìn)入過(guò)臨界區(qū)。 seqlock( 2) ? 讀者: unsigned int seq。the_lock)。the_lock, seq)。 – void write_sequnlock(seqlock_t *lock)。 ? 信號(hào)量是 一種睡眠鎖 。當(dāng)持有該信號(hào)量 的 任務(wù)釋放信號(hào) 量后 ,等待 該信號(hào)量 的 一個(gè)任務(wù)就會(huì)被 喚醒 并 獲得 信號(hào)量 。 信號(hào)量的使用 ? 宏聲明 – DECLARE_MUTEX(name) – DECLARE_MUTEX_LOCKED(name) ? 初始化 – void sema_init(struct semaphore *sem, int val)。 – void init_MUTEX_LOCKED(struct semaphore *sem); ? 獲得 /釋放 – void down(struct semaphore *sem)。 – void up(struct semaphore *sem)。 而 寫(xiě)者 則 具有排他性和獨(dú)占性。 讀寫(xiě)信號(hào)量的使用 ? 聲明和初始化 – DELARE_RWSEM(sem) – void init_rwsem(struct rm_semaphore *sem)。 – int down_read_trylock(struct rw_semaphore *sem)。 – int down_write_trylock(struct rw_semaphore *sem)。 ? 寫(xiě)者降級(jí)為 讀者 – void downgrade_write(struct rw_semaphore *sem)。 需要 CPU硬件支持 ; 它 的 API和原子類(lèi)型的定義都在內(nèi)核源碼樹(shù)include/asm/,使用匯編語(yǔ)言實(shí)現(xiàn)。 原子操作的使用 ? 原子 操作類(lèi)型的定義 – typedef struct {volatile int counter。 ? 原子操作 API – atomic_read(atomic_t *v)。 – void atomic_add(int I, atomic_t *v)。 – void atomic_inc(atomic_t *v)。 – … 完成事件 (pletion) ? pletion是一種輕量級(jí)的同步機(jī)制,它允許一個(gè)任務(wù)告訴另一個(gè)任務(wù)工作已經(jīng)完成。 ? 如果 要使用 pletion,需要包含linux/,同時(shí)創(chuàng)建類(lèi)型為 struct pletion的變量。 ? 動(dòng)態(tài) 聲明 和 初始化 – struct pletion my_pletion。my_pleiton)。 ? 喚醒等待該事件的 進(jìn)程 – void plete(struct pletion *p)。 工作隊(duì)列 ? Linux 隊(duì)列 (Work Queue),是 將工作 推 后 執(zhí)行的 機(jī)制 ??梢?交給 內(nèi)核線(xiàn)程去 執(zhí)行 , 允許重新 調(diào)度 或 睡眠。 struct list_head entry。 }。 – int schedule_delayed_work(struct work_struct *work, unsigned long delay)。 – int cancel_delayed_work(struct work_struct *work)。 – int queue_work(struct workqueue_struct *wq, struct work_struct *work)。 – 提高系統(tǒng) 的響應(yīng)速度 ? 要 使用 AIO功能,需要包含頭文件 Thanks!
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1