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

正文內(nèi)容

第4章_io設(shè)備管理-在線瀏覽

2025-03-22 08:10本頁(yè)面
  

【正文】 要循環(huán)地檢測(cè)設(shè)備是否就緒;在 I/O操作進(jìn)行之中,要循環(huán)地檢測(cè)設(shè)備是否已完成。w也稱為 繁忙等待 方式( busy waiting)或 輪詢 方式( polling)。基本思路:把這 8個(gè)字符逐個(gè)送到打印機(jī)設(shè)備的I/O端口地址(內(nèi)存地址)。 i count。 *printer_data_register = p[i]。例如:假設(shè)打印機(jī)的打印速度為 100字符 /秒,在循環(huán)檢測(cè)方式下,當(dāng)一個(gè)字符被寫入到打印機(jī)的數(shù)據(jù)寄存器中后, CPU需要等待 10毫秒 才能寫入下一個(gè)字符。 進(jìn) 程管理 24246。老師被打斷? 如果寶寶舉手,給他 /她添飯? 如果寶寶舉拳頭,給他 /她添湯? 如果寶寶吃完了,收拾碗和勺子? ......? 回到 剛才的狀態(tài) 進(jìn) 程管理 26在硬件一級(jí),當(dāng)一個(gè) I/O設(shè)備完成任務(wù)時(shí),它的控制器會(huì)通過(guò)總線向中斷控制器發(fā)出一個(gè)信號(hào),如果中斷控制器接受了該信號(hào),就把標(biāo)明該設(shè)備的一個(gè)編號(hào)放在地址線上,并向 CPU發(fā)出一個(gè)中斷信號(hào)。 關(guān)中斷 … 進(jìn) 程管理 27用戶進(jìn)程strcpy(buffer, “ABCDEFGH”)。中斷驅(qū)動(dòng)方式 進(jìn) 程管理 28 系統(tǒng)調(diào)用函數(shù) printcopy_from_user(buffer, p, count)。while(*printer_status_reg != READY)。scheduler( )。}else{ *printer_data_register = p[++i]。}acknowledge_intereupt( )。執(zhí)行過(guò)程 進(jìn) 程管理 30中斷驅(qū)動(dòng)方式的基本思路是:用戶進(jìn)程通過(guò)系統(tǒng)調(diào)用函數(shù)來(lái)發(fā)起 I/O操作,并在發(fā)起后阻塞該進(jìn)程,調(diào)度其他的進(jìn)程使用 CPU。在中斷驅(qū)動(dòng)方式下,數(shù)據(jù)的每次讀寫還是通過(guò) CPU來(lái)完成,但是當(dāng) I/O設(shè)備在進(jìn)行數(shù)據(jù)處理時(shí),CPU不必等待,可以繼續(xù)執(zhí)行其他的進(jìn)程。 進(jìn) 程管理 32 進(jìn) 程管理 33w直接內(nèi)存訪問(wèn)( Direct Memory Access, DMA)方式:在硬件上需要一個(gè) DMA控制器。wDMA控制器包含了一些寄存器,可被 CPU來(lái)讀或?qū)憽? 進(jìn) 程管理 34(本圖摘自 Andrew S. Tanenbaum: “Modern Operating Systems” )5.DMA工作原理是否所有設(shè)備都要用 DMA? 進(jìn) 程管理 35如果使用 DMA,過(guò)程如下:1. CPU對(duì) DMA控制器進(jìn)行編程,告訴它應(yīng)把什么數(shù)據(jù)傳送到內(nèi)存的什么地方。若計(jì)數(shù)器的值大于 0轉(zhuǎn)第 2步;5. DMA控制器向 CPU發(fā)出一個(gè)中斷,告訴它數(shù)據(jù)傳輸已完成。n 統(tǒng)一命名:即用簡(jiǎn)單的字符串或整數(shù)的方式來(lái)命名一個(gè)文件或設(shè)備。n 阻塞與非阻塞 I/O:當(dāng)進(jìn)程啟動(dòng)一個(gè)系統(tǒng)調(diào)用后,是立即返回還是被阻塞起來(lái),直到 I/O操作完成。 創(chuàng)建或打開(kāi)以下的某種對(duì)象:控制臺(tái)、通信資源(如串口)、目錄、磁盤設(shè)備(分區(qū))、文件(軟盤、硬盤、光盤)等;216。 設(shè)備獨(dú)立性。 進(jìn) 程管理 40阻塞與非阻塞 I/O J阻塞:進(jìn)程被 阻塞 起來(lái),直到 I/O操作完成? 易于使用和理解? 有些情形下不能滿足要求J非阻塞: I/O調(diào)用很快返回n異步性:當(dāng) I/O操作進(jìn)行時(shí) 進(jìn)程繼續(xù)執(zhí)行 , 當(dāng)I/O操作完成時(shí), I/O子系統(tǒng)給進(jìn)程發(fā)信號(hào)n調(diào)用者具有主動(dòng)權(quán)n不易使用,多線程 進(jìn) 程管理 41HANDLE hCom。//EV_RXCHAR: A character was received and placed in the input bufferSetCommMask(hCom, EV_RXCHAR)。if (dwEvtMask EV_RXCHAR) { ReadFile(hCom, buf, NumBytesToRead, NumBytesRead, NULL)。OVERLAPPED o。//重疊 I/O//EV_RXCHAR: A character was received and placed in the input bufferSetCommMask(hCom, EV_RXCHAR)。bR = WaitCommEvent(hCom, dwEvtMask,o)。r = WaitForSingleObject(,INFINITE)。 if( !bR ) { if(GetLastError()==ERROR_IO_PENDING) { r = WaitForSingleObject(,2023)。 else if(r == WAIT_TIMEOUT)... }} 進(jìn) 程管理 44應(yīng)用程序開(kāi)發(fā)人員 程序 /OS的接口操作系統(tǒng)OS/設(shè)備驅(qū)動(dòng)的接口設(shè)備廠商希望 OS提供什么樣的接口 ?鍵盤、鼠標(biāo)、顯示器、打印機(jī)、磁盤、磁帶、光驅(qū) … 進(jìn) 程管理 45設(shè)備驅(qū)動(dòng)程序的接口 w為實(shí)現(xiàn)設(shè)備獨(dú)立性, OS把各種類型的設(shè)備劃分為三類:塊設(shè)備、字符設(shè)備和網(wǎng)絡(luò)設(shè)備,并為每一類定義了一個(gè)標(biāo)準(zhǔn)接口,大多數(shù)設(shè)備驅(qū)動(dòng)程序都支持其中之一。w分層 :其他 OS軟件 /接口 /設(shè)備驅(qū)動(dòng)程序。 啟動(dòng)設(shè)備,初始化并分配資源(如緩沖區(qū))wClose( deviceNumber )252。 read(deviceNumber, buffer, size)從一個(gè)字節(jié)流設(shè)備中讀入 ”size”個(gè)字節(jié)到buffer緩沖區(qū)中。 write(deviceNumber, buffer, size)從 buffer緩沖區(qū)中取出 ”size”個(gè)字節(jié)寫入到一個(gè)字節(jié)流設(shè)備中。 read(deviceNumber, deviceAddr, buffer)從設(shè)備地址 deviceAddr處讀入一個(gè)數(shù)據(jù)塊到buffer緩沖區(qū)252。 seek(deviceNumber, deviceAddress)把訪問(wèn)指針定位到正確的位置 進(jìn) 程管理 48 I/O軟件的層次結(jié)構(gòu) 用戶空間的 I/O軟件設(shè)備獨(dú)立的系統(tǒng)軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件I/O軟件系統(tǒng)的層次 ?I/O 設(shè)備管理軟件的基本思想是采用分層的結(jié)構(gòu),把各種設(shè)備管理軟件組織成一系列的層次。 進(jìn) 程管理 49 設(shè)備驅(qū)動(dòng)程序 w設(shè)備驅(qū)動(dòng)程序:與具體的設(shè)備類型相關(guān)的,用來(lái)控制設(shè)備運(yùn)行的程序。w通常是平臺(tái)相關(guān)(如 Windows/linux ),適合于特定的某個(gè)設(shè)備(如鍵盤)或某類設(shè)備
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1