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

正文內(nèi)容

第4章_io設(shè)備管理-wenkub

2023-03-09 08:10:53 本頁面
 

【正文】 7 設(shè)備 控制器 機(jī)械部分 電子部分 一個(gè) I/O單元由兩部分組成: 機(jī)械部分 和 電子部分(設(shè)備控制器 或 適配器 ) 。I/O( Input / Output)設(shè)備 進(jìn) 程管理 3 I/O硬件 對(duì)于 I/O硬件, 操作系統(tǒng) 所關(guān)心的并不是硬件自身的設(shè)計(jì)、制造和維護(hù),而是如何來對(duì)它進(jìn)行編程,即該設(shè)備給軟件提供的接口是什么,包括它所接受的控制命令、所完成的功能,以及所返回的出錯(cuò)報(bào)告。操作系統(tǒng)Operating Systems諶衛(wèi)軍 清華大學(xué)軟件學(xué)院 1. I/O硬件2. I/O控制方式3. I/O軟件4. 磁盤第 四 章 I/O設(shè)備管理 進(jìn) 程管理 2 在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,有大量的輸入輸出設(shè)備,其種類繁多,差異大。 進(jìn) 程管理 4170。 進(jìn) 程管理 8170。 進(jìn) 程管理 9 I/O地址 每個(gè)設(shè)備控制器都有一些寄存器用來與 CPU通信。 I/O獨(dú)立編址;216。例如: IN R0 [4] 表示讀入 I/O端口地址為 4的內(nèi)容;MOV R0 [4] 表示讀入內(nèi)存地址為 4的內(nèi)容; 進(jìn) 程管理 12mov al,0x11 ! initialization sequenceout 0x20,al ! send it to 8259A1mov al,0x20 ! start of hardware int39。 進(jìn) 程管理 14F 編程方便,無需專門的 I/O指令 (C vs. 匯編 );F 不能對(duì)控制寄存器的內(nèi)容進(jìn)行 Cache,須關(guān)閉;F 每一次都要判斷訪問的是內(nèi)存還是 I/O。小寶寶在家吃飯? 如果寶寶的嘴巴沒空(如上一口飯菜尚未吃完),循環(huán)等待? 裝一勺飯菜,喂到寶寶嘴里? 重復(fù)上述步驟 進(jìn) 程管理 20w基本思路 :在程序(設(shè)備驅(qū)動(dòng)程序)中通過不斷地檢測(cè) I/O設(shè)備的當(dāng)前狀態(tài),來控制 I/O操作的完成。 ... 進(jìn) 程管理 21一個(gè)例子已知 I/O地址采用內(nèi)存映像編址的方式,現(xiàn)需要在打印機(jī)上打印一個(gè)字符串 “ABCDEFGH”。 i++){ while(*printer_status_reg != READY)。一種解決的辦法:中斷驅(qū)動(dòng)的控制方式。 CPU就中斷當(dāng)前工作,并以該 編號(hào) 為索引去訪問 中斷向量表 ,取出中斷處理程序的起始地址,并在該程序運(yùn)行后向中斷控制器發(fā)出確認(rèn)信號(hào)。 // p:內(nèi)核緩沖區(qū)enable_interrupts( )。?老師從食堂取來飯菜?若寶寶尚未準(zhǔn)備好吃飯,循環(huán)等待?將飯菜裝入每個(gè)寶寶的小碗?寶寶開始吃飯,老師去做別的事情?在吃飯時(shí),寶寶通過各種信號(hào)打斷老師 進(jìn) 程管理 29 中斷處理程序if(count == 0){ unblock_user( )。return_from_interrupt( )。 進(jìn) 程管理 31 直接內(nèi)存訪問方式 I/O讀操作的典型過程:wCPU向設(shè)備控制器發(fā)出命令,啟動(dòng)讀操作;w設(shè)備控制器控制 I/O設(shè)備完成此次讀操作,并將數(shù)據(jù)保存在設(shè)備控制器內(nèi)部的寄存器或緩沖區(qū)中,然后中斷 CPU;wCPU把數(shù)據(jù)讀入內(nèi)存。包括:一個(gè)內(nèi)存地址寄存器、一個(gè)字節(jié)計(jì)數(shù)器,以及一個(gè)或多個(gè)控制寄存器(指明了 I/O設(shè)備的端口地址、數(shù)據(jù)傳送方向、傳送單位,以及每一次傳送的字節(jié)數(shù))。 進(jìn) 程管理 36 I/O軟件 I/O軟件的接口 頭腦風(fēng)暴( Brain Storm)為了管理 I/O設(shè)備,需要哪一些相關(guān)的軟件?這些軟件各自完成何種功能,相互的關(guān)系、 組織結(jié)構(gòu) 又如何? 進(jìn) 程管理 37應(yīng)用程序開發(fā)人員 程序 /OS的接口操作系統(tǒng)程序員希望 OS提供什么樣的接口,有何特點(diǎn) ?鍵盤、鼠標(biāo)、顯示器、打印機(jī)、磁盤、磁帶、光驅(qū) … 進(jìn) 程管理 38n 設(shè)備獨(dú)立性:使得用戶在編寫程序、訪問各種 I/O設(shè)備時(shí),無需事先指定特定的 設(shè)備類型 ,各種類型的設(shè)備之間的差異由 OS來處理,對(duì)用戶是透明的。 進(jìn) 程管理 39n Windows 中的 CreateFile()函數(shù)216。統(tǒng)一命名: “A:\\”、“C:\\”、 “F:\\”、 “COM1”、 “\\.\A:”、“\\.\C:”、 “CON”。 WaitCommEvent(hCom, dwEvtMask, NULL)。hCom = CreateFile(“COM1”,GENERIC_READ,0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL)。if(!bR)ASSERT(GetLastError()== ERROR_IO_PENDING)。 if(r == WAIT_OBJECT_0) GetOverlappedResult(hCom, o, nBytesRead, FALSE)。 進(jìn) 程管理 46wOpen( deviceNumber )252。252。 write(deviceNumber, deviceAddr, buffer)把 buffer中的數(shù)據(jù)塊寫入到設(shè)備地址deviceAddr252。一般由 設(shè)備生產(chǎn)商提供 。當(dāng)用戶進(jìn)程需要輸入輸出服務(wù)時(shí),會(huì)調(diào)用相應(yīng)的系統(tǒng)調(diào)用函數(shù) (sys_read);170。驅(qū)動(dòng)程序以什么形式存在?單獨(dú)的一個(gè)進(jìn)程嗎?調(diào)用驅(qū)動(dòng)時(shí) 有無進(jìn)程切換 ?170。我們要為一個(gè)簡(jiǎn)單的 字符輸入設(shè)備 實(shí)現(xiàn)相應(yīng)的設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序主要由兩個(gè)函數(shù)組成:252。一個(gè)例子 進(jìn) 程管理 55size_t foo_read(struct file *filp, char *buf, size_t count, loff_t *ppos){ foo_dev_t *foo_dev = filpprivate_data。 wait_event_interruptible(foo_devwait, (foo_devintr == 1))。} 進(jìn) 程管理 56void foo_interrupt(int irq,void *dev_id, struct pt_regs *regs){ foodata = inb(DEV_FOO_DATA_PORT)。方案 1只適合需要互斥訪問的設(shè)備。塊設(shè)備驅(qū)動(dòng)程
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1