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

正文內(nèi)容

linux驅(qū)動(dòng)工程師面試題(卷整理-資料下載頁(yè)

2025-03-24 04:59本頁(yè)面
  

【正文】 60。 2) 查看字符設(shè)備信息可以用lsmod 和modprobe,lsmod可以查看模塊的依賴關(guān)系,modprobe在加載模塊時(shí)會(huì)加載其他依賴的模塊。 3)顯示當(dāng)前使用的中斷號(hào)cat /proc/interrupt6Linux中引入模塊機(jī)制有什么好處?答:首先,模塊是預(yù)先注冊(cè)自己以便服務(wù)于將來的某個(gè)請(qǐng)求,然后他的初始化函數(shù)就立即結(jié)束。換句話說,模塊初始化函數(shù)的任務(wù)就是為以后調(diào)用函數(shù)預(yù)先作準(zhǔn)備。好處:1) 應(yīng)用程序在退出時(shí),可以不管資源的釋放或者其他的清除工作,但是模塊的退出函數(shù)卻必須仔細(xì)此撤銷初始化函數(shù)所作的一切。2) 該機(jī)制有助于縮短模塊的開發(fā)周期。即:注冊(cè)和卸載都很靈活方便。6copy_to_user()和copy_from_user()主要用于實(shí)現(xiàn)什么功能?一般用于file_operations結(jié)構(gòu)的哪些函數(shù)里面?答:由于內(nèi)核空間和用戶空間是不能互相訪問的,如果需要訪問就必須借助內(nèi)核函數(shù)進(jìn)行數(shù)據(jù)讀寫。copy_to_user():完成內(nèi)核空間到用戶空間的復(fù)制,copy_from_user():是完成用戶空間到內(nèi)核空間的復(fù)制。一般用于file_operations結(jié)構(gòu)里的read,write,ioctl等內(nèi)存數(shù)據(jù)交換作用的函數(shù)。當(dāng)然,如果ioctl沒有用到內(nèi)存數(shù)據(jù)復(fù)制,那么就不會(huì)用到這兩個(gè)函數(shù)。6請(qǐng)簡(jiǎn)述主設(shè)備號(hào)和次設(shè)備號(hào)的用途。如果執(zhí)行mknod chartest c 4 64,創(chuàng)建chartest設(shè)備。請(qǐng)分析chartest使用的是那一類設(shè)備驅(qū)動(dòng)程序。答:1)主設(shè)備號(hào):主設(shè)備號(hào)標(biāo)識(shí)設(shè)備對(duì)應(yīng)的驅(qū)動(dòng)程序。雖然現(xiàn)代的linux內(nèi)核允許多個(gè)驅(qū)動(dòng)程序共享主設(shè)備號(hào),但我們看待的大多數(shù)設(shè)備仍然按照“一個(gè)主設(shè)備對(duì)應(yīng)一個(gè)驅(qū)動(dòng)程序”的原則組織。 次設(shè)備號(hào):次設(shè)備號(hào)由內(nèi)核使用,用于正確確定設(shè)備文件所指的設(shè)備。依賴于驅(qū)動(dòng)程序的編寫方式,我們可以通過次設(shè)備號(hào)獲得一個(gè)指向內(nèi)核設(shè)備的直接指針,也可將此設(shè)備號(hào)當(dāng)作設(shè)備本地?cái)?shù)組的索引。2)chartest 由驅(qū)動(dòng)程序4管理,該文件所指的設(shè)備是64號(hào)設(shè)備。(感覺類似于串口終端或者字符設(shè)備終端)。6設(shè)備驅(qū)動(dòng)程序中如何注冊(cè)一個(gè)字符設(shè)備?分別解釋一下它的幾個(gè)參數(shù)的含義。答:注冊(cè)一個(gè)字符設(shè)備驅(qū)動(dòng)有兩種方法:1) void cdev_init(struct cdev *cdev, struct file_operations *fops)該注冊(cè)函數(shù)可以將cdev結(jié)構(gòu)嵌入到自己的設(shè)備特定的結(jié)構(gòu)中。cdev是一個(gè)指向結(jié)構(gòu)體cdev的指針,而fops是指向一個(gè)類似于file_operations結(jié)構(gòu)(可以是file_operations結(jié)構(gòu),但不限于該結(jié)構(gòu))的指針.2) int register_chrdev(unsigned int major, const char *namem , struct file)operations *fopen)。該注冊(cè)函數(shù)是早期的注冊(cè)函數(shù),major是設(shè)備的主設(shè)備號(hào),name是驅(qū)動(dòng)程序的名稱,而fops是默認(rèn)的file_operations結(jié)構(gòu)(這是只限于file_operations結(jié)構(gòu))。對(duì)于register_chrdev的調(diào)用將為給定的主設(shè)備號(hào)注冊(cè)0-255作為次設(shè)備號(hào),并為每個(gè)設(shè)備建立一個(gè)對(duì)應(yīng)的默認(rèn)cdev結(jié)構(gòu)。70、請(qǐng)簡(jiǎn)述中斷與DMA的區(qū)別。Linux設(shè)備驅(qū)動(dòng)程序中,使用哪個(gè)函數(shù)注冊(cè)和注銷中斷處理程序?答:1)DMA:是一種無須CPU的參與就可以讓外設(shè)與系統(tǒng)內(nèi)存之間進(jìn)行雙向數(shù)據(jù)傳輸?shù)挠布C(jī)制,使用DMA可以使系統(tǒng)CPU從實(shí)際的I/O數(shù)據(jù)傳輸過程中擺脫出來,從而大大提高系統(tǒng)的吞吐率。中斷:是指CPU在執(zhí)行程序的過程中,出現(xiàn)了某些突發(fā)事件時(shí)CPU必須暫停執(zhí)行當(dāng)前的程序,轉(zhuǎn)去處理突發(fā)事件,處理完畢后CPU又返回源程序被中斷的位置并繼續(xù)執(zhí)行。所以中斷和MDA的區(qū)別就是MDA不需CPU參與而中斷是需要CPU參與的。2)中斷注冊(cè)函數(shù)和中斷注銷函數(shù)注冊(cè)中斷:int request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *dev_name, void *dev_id)。參數(shù)意義依次是:中斷號(hào),中斷處理函數(shù),中斷管理有關(guān)的掩碼,中斷請(qǐng)求設(shè)備名,中斷信號(hào)線。過程是:dev_name設(shè)備請(qǐng)求中斷cpu分配中斷號(hào)設(shè)置中斷管理的掩碼分配中斷信號(hào)線處理中斷函數(shù)完成之后再根據(jù)設(shè)置情況返回原處理程序處繼續(xù)處理程序。注銷中斷;Void free_irq(unsigned int irq, void *dev_id)。釋放中斷和中斷信號(hào)線7中斷和輪詢哪個(gè)效率高?怎樣決定是采用中斷方式還是采用輪詢方式去實(shí)現(xiàn)驅(qū)動(dòng)?答:中斷是CPU處于被中狀態(tài)下來接受設(shè)備的信號(hào),而輪詢是CPU主動(dòng)去查詢?cè)撛O(shè)備是否有請(qǐng)求。凡事都是兩面性,所以,看效率不能簡(jiǎn)單的說那個(gè)效率高。如果是請(qǐng)求設(shè)備是一個(gè)頻繁請(qǐng)求cpu的設(shè)備,或者有大量數(shù)據(jù)請(qǐng)求的網(wǎng)絡(luò)設(shè)備,那么輪詢的效率是比中斷高。如果是一般設(shè)備,并且該設(shè)備請(qǐng)求cpu的頻率比較底,則用中斷效率要高一些。7簡(jiǎn)單描述在cs8900的驅(qū)動(dòng)設(shè)計(jì)中, 發(fā)送數(shù)據(jù)frame和接收數(shù)據(jù)frame的過程。答:1)發(fā)送流程如下:(1) 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序從上層協(xié)議傳遞過來的sk_buff參數(shù)獲得數(shù)據(jù)包的有效數(shù)據(jù)和長(zhǎng)度,將有效數(shù)據(jù)放入臨時(shí)緩沖區(qū)。(2) 對(duì)于以太網(wǎng),如果有效數(shù)據(jù)的長(zhǎng)度小于以太網(wǎng)沖突檢測(cè)所要求的數(shù)據(jù)楨的最小長(zhǎng)度,則給臨時(shí)緩沖區(qū)的末尾填充0(3) 設(shè)置硬件寄存器,驅(qū)使網(wǎng)絡(luò)設(shè)備進(jìn)行數(shù)據(jù)發(fā)送操作。 2)接收流程 網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)主要是由中斷引發(fā)設(shè)備的中斷處理函數(shù),中斷處理函數(shù)判斷中斷類型,如果為接收中斷,則讀取接受到的數(shù)據(jù),分配sk_buff數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)緩沖區(qū),將接收到的數(shù)據(jù)復(fù)制到數(shù)據(jù)緩沖區(qū),并調(diào)用netif_rx()函數(shù)將sk_buff傳遞給上層協(xié)議。7發(fā)送數(shù)據(jù)frame的過程為什么需要關(guān)中斷?接收數(shù)據(jù)frame的過程為什么不需要關(guān)中斷?答:在發(fā)送過程中是不能被打斷的,在發(fā)送的過程中,不關(guān)中斷,這時(shí)候如果有一個(gè)中斷到來,那么cpu有可能會(huì)去相應(yīng)該中斷,如果該中斷需要改寫的數(shù)據(jù)是發(fā)送數(shù)據(jù)的緩沖區(qū),那么緩沖區(qū)將被改寫,這樣即使cpu相應(yīng)完畢該中斷,再發(fā)送數(shù)據(jù),接收方也不認(rèn)識(shí)該數(shù)據(jù)不能接收。在接收數(shù)據(jù)的時(shí)候,需要打開中斷,是因?yàn)橐皶r(shí)的相應(yīng)接收到的數(shù)據(jù)。如果關(guān)閉該中斷,那么接收方有可能因?yàn)橄鄳?yīng)優(yōu)先級(jí)高的中斷而接收不到該數(shù)據(jù)。7簡(jiǎn)單描述skbuff這個(gè)數(shù)據(jù)結(jié)構(gòu)在網(wǎng)絡(luò)結(jié)構(gòu)中所起到的作用,為什么需要一個(gè)skbuff,它的分配和釋放主要都在什么部位答:sk_buff結(jié)構(gòu)非常重要,它的含義為“套接字緩沖區(qū)”,用于在linux網(wǎng)絡(luò)子系統(tǒng)中的各層之間傳遞數(shù)據(jù)。當(dāng)發(fā)送數(shù)據(jù)包時(shí),linux內(nèi)核的網(wǎng)絡(luò)處理模塊必須建立一個(gè)包含要傳輸?shù)臄?shù)據(jù)包的sk_buff,然后將sk_buff遞交給下層,各層在sk_buff中添加不同的協(xié)議頭直至交給網(wǎng)絡(luò)設(shè)備發(fā)送。同樣的,當(dāng)網(wǎng)絡(luò)設(shè)備從網(wǎng)絡(luò)媒介上接受到數(shù)據(jù)包后,它必須將接受到的數(shù)據(jù)轉(zhuǎn)換為sk_buff數(shù)據(jù)結(jié)構(gòu)并傳遞給上層,蓋層不拋去相應(yīng)的協(xié)議頭直至交給用戶。分配sk_buff在接收一開始就應(yīng)該分配,在發(fā)送完畢數(shù)據(jù)之后可以釋放sk_buff。您好,歡迎您閱讀我的文章,本W(wǎng)ORD文檔可編輯修改,也可以直接打印。閱讀過后,希望您提出保貴的意見或建議。閱讀和學(xué)習(xí)是一種非常好的習(xí)慣,堅(jiān)持下去,讓我們共同進(jìn)步。您好,歡迎您閱讀我的文章,本W(wǎng)ORD文檔可編輯修改,也可以直接打印。閱讀過后,希望您提出保貴的意見或建議。閱讀和學(xué)習(xí)是一種非常好的習(xí)慣,堅(jiān)持下去,讓我們共同進(jìn)步。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1