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

正文內(nèi)容

三、內(nèi)存管理應(yīng)用程序設(shè)計(jì)-文庫(kù)吧資料

2024-10-20 13:49本頁(yè)面
  

【正文】 ITMAPINFO //位圖信息結(jié)構(gòu)體 fread( ) 函數(shù) //文件讀函數(shù) 下一頁(yè) 上一頁(yè) 停止放映 第 60/76 頁(yè) BITMAPFILEHEADER格式 位圖文件頭結(jié)構(gòu)體為: typedef struct tagBITMAPFILEHEADER { WORD bfType。并顯示位圖文件名稱、位圖文件類型、圖像寬度、圖像高度和每個(gè)像素的位數(shù)。 cout ()日 endlendl。 //取得文件建立時(shí)間 cout 建立時(shí)間是: ()年 。 CTime fileTime。 else cout 文件 endl。 cout 文件路徑: (LPCTSTR) () endl。 //取得命令行參數(shù)指定的文件名 ,并查詢 while (bWorking) { bWorking = ()。 } CFileFind finder。 下一頁(yè) 上一頁(yè) 停止放映 第 56/76 頁(yè) 源程序 include include void main(int argc,char *argv[]) { if(argc2) { cout 使用格式: Example3_11 文件名稱 endl。 3. 分別通過(guò)函數(shù) GetFileName、 GetFilePath、IsDirectory、 IsReadOnly和 GetCreateTime得到文件的名稱、路徑、是否目錄、是否只讀和建立時(shí)間等,并顯示相應(yīng)結(jié)果。命令格式為: 命令 文件名 1. 使用 FMC的 CFileFind類的 FindFile函數(shù)對(duì)指定文件進(jìn)行查找。 } cout共: nCount個(gè)盤 endl。 } dwDriveList = 1。break。 break。 break。 break。 break。 break。 //將字符串轉(zhuǎn)換為指定格式 nType = GetDriveType ((LPCTSTR) strDrive)。 (0, 0x41 + nPos)。 while (dwDriveList) { if (dwDriveList amp。 UINT nType。 DWORD dwDriveList = GetLogicalDrives ()。 UINT nCount = 0。 下一頁(yè) 上一頁(yè) 停止放映 第 51/76 頁(yè) 程序步驟 ① 調(diào)用 API函數(shù) GetLogicalDrives取得“我的電腦”中的所有邏輯盤,并得到一個(gè) DWORD類型的數(shù),其中的某一位為 1時(shí)表示該位代表的盤存在。 ?通過(guò)文件的目錄結(jié)構(gòu) , 將文件的邏輯結(jié)構(gòu)和文件的物理結(jié)構(gòu)聯(lián)系在了一起 。 ?用戶使用的是文件的邏輯結(jié)構(gòu) , 系統(tǒng)使用的是文件的物理結(jié)構(gòu) , 在兩種不同的組織結(jié)構(gòu)之間似乎應(yīng)該有銜接的紐帶 。它采用計(jì)算尋址方法,將記錄鍵值通過(guò) Hash函數(shù)計(jì)算轉(zhuǎn)換成相應(yīng)記錄的地址。索引文件要求系統(tǒng)為每一個(gè)文件創(chuàng)建一張索引表,索引表的表項(xiàng)給出文件的邏輯塊號(hào)和物理塊號(hào)的對(duì)應(yīng)關(guān)系。它采用非連續(xù)的物理塊來(lái)存放文件信息,將文件的所有物理塊串聯(lián)組成一個(gè)鏈表,塊之間通過(guò)指針鏈接。 – 串聯(lián)文件 。又稱順序文件。 示例 示例 下一頁(yè) 上一頁(yè) 停止放映 第 48/76 頁(yè) 文件的物理結(jié)構(gòu) ?是指文件在存儲(chǔ)設(shè)備上的存放形式 。 例如,一個(gè) Word文件。 例如,數(shù)據(jù)庫(kù)文件。 下一頁(yè) 上一頁(yè) 停止放映 第 47/76 頁(yè) 文件的邏輯結(jié)構(gòu) ?文件的邏輯結(jié)構(gòu)分為兩種形式: – 一種是有結(jié)構(gòu)的 記錄式文件 ,它由一組相關(guān)記錄組成。文件的邏輯結(jié)構(gòu)是用戶所觀察到的文件組織形式,是用戶可以直接處理的數(shù)據(jù)及結(jié)構(gòu),它獨(dú)立于物理特性,又稱為文件組織( FILE ORGANIZATION)。 ? 文件的物理結(jié)構(gòu)又稱為文件的存儲(chǔ)結(jié)構(gòu),它是指文件在外存上的存儲(chǔ)組織形式,與存儲(chǔ)介質(zhì)的存儲(chǔ)性能有關(guān)。 – NTFS采用壓縮存儲(chǔ)方式,具有文件權(quán)限的管理功能,能夠更好地管理文件。 下一頁(yè) 上一頁(yè) 停止放映 第 45/76 頁(yè) 文件系統(tǒng)格式 ? Windows操作系統(tǒng)采用 FAT32和 NTFS兩種文件系統(tǒng)格式: – 其中 FAT32采用 文件目錄表 ( file directory table,FDT)和 文件分配表 ( file allocate table,FAT)相結(jié)合的方式來(lái)管理文件。 下一頁(yè) 上一頁(yè) 停止放映 第 43/76 頁(yè) 文件系統(tǒng) ? 文件管理程序和所管理的全部文件(文件與目錄的集合)。 – 從邏輯上,有字( word)、字段( segment)、記錄( record)、虛擬塊( virtual block)、文件( file)、文件目錄( file directory)、文件夾( folder)和文件卷( volume)等。 下一頁(yè) 上一頁(yè) 停止放映 第 42/76 頁(yè) 文件 有關(guān)概念 ? 文件 – 一組相關(guān)信息的集合,文件具有一定的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)、分類屬性和訪問(wèn)權(quán)限。 //清除位圖對(duì)象 ()。MemDC,0,0,SRCCOPY)。 //畫直線 (220,250,“歡迎” )。 //畫圓 (100,100)。 //將位圖選入到內(nèi)存顯示設(shè)備中 (0,0,nWidth,nHeight,RGB(192,192,192))。 //建立一個(gè)與屏幕顯示兼容的位圖 (amp。 //繪圖高度 (NULL)。 //定義一個(gè)位圖對(duì)象 int nWidth=500。 下一頁(yè) 上一頁(yè) 停止放映 第 39/76 頁(yè) 程序步驟 ① 建立單文檔 /視圖框架程序,工程名為“ Example3_9”; ② 在文件“ ”的 OnDraw(CDC* pDC) 函數(shù)中添加如下代碼: CDC MemDC。 ? 繪制完成后通過(guò) pDC的函數(shù) BitBlt將內(nèi)存中的圖拷貝到屏幕上進(jìn)行顯示 。 ? 通過(guò) MemDC的函數(shù) SelectObject將位圖選入到內(nèi)存顯示設(shè)備中 。 ? 通過(guò) MemDC的函數(shù) CreateCompatibleDC建立與屏幕顯示兼容的內(nèi)存顯示設(shè)備 。 ? 本程序中定義一個(gè)內(nèi)存顯示設(shè)備對(duì)象 MemDC、屏幕顯示設(shè)備對(duì)象 pDC和位圖對(duì)象 m_Bitmap。 ? 采用雙緩沖技術(shù) 可 以減少屏幕的閃爍。 return 0。 } if( argv[2][0]==?O? ) OnCdopen(argv[1])。 } 下一頁(yè) 上一頁(yè) 停止放映 第 36/76 頁(yè) 主函數(shù) int main(int argc, char *argv[]) { if (argc 3) { cout\a使用方法 : Example3_8 光驅(qū)盤符 打開 (O)或關(guān)閉 (C)。 //取得輸入光驅(qū)盤符 CD_OpenCloseDrive(TRUE, new_letter[0])。//打開指定盤符光驅(qū) m_Letter = 。 //釋放設(shè)備存取 } } 下一頁(yè) 上一頁(yè) 停止放映 第 35/76 頁(yè) 子函數(shù)源程序 void OnCdopen(CString m_Letter) //打開光驅(qū)子函數(shù) { CString new_letter = m_Letter。 //打開光驅(qū) else mciSendCommand(,MCI_SET,MCI_SET_DOOR_CLOSED,0)。op) ) //發(fā)送設(shè)備打開命令 { = MCI_STATUS_READY。 } else { flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE。 = szDriveName。 //光驅(qū)參數(shù)賦值為 0 = (LPCSTR) MCI_DEVTYPE_CD_AUDIO。 ::ZeroMemory(amp。 TCHAR szDriveName[4]。 //光驅(qū)打開參數(shù)結(jié)構(gòu) MCI_STATUS_PARMS st。 void ZeroMemory ( //初始化數(shù)據(jù)函數(shù) PVOID Destination, //填充地址 DWORD Length //填充字節(jié)大小 )。 } MCI_STATUS_PARMS。 DWORD dwItem。 typedef struct tag MCI_STATUS_PARMS { //光驅(qū)狀態(tài)參數(shù) DWORD dwCallback。 LPCSTR lpstrAlias。 LPCSTR lpstrDeviceType。 // MCIDEVICEID wDeviceID。 下一頁(yè) 上一頁(yè) 停止放映 第 30/76 頁(yè) 解題思路 ? 使用“ ”中的媒體控制接口 (MCI) API函數(shù); ? MCI_OPEN_PARMS //打開光驅(qū)參數(shù)結(jié)構(gòu)體 ? MCI_STATUS_PARMS //光驅(qū)狀態(tài)參數(shù)結(jié)構(gòu)體 ? ZeroMemory函數(shù) //光驅(qū)參數(shù)賦零,將光驅(qū)類型 //參數(shù)設(shè)為 CD_AUDIO ? mciSendCommand函數(shù) //發(fā)送設(shè)備打開命令 ? 根據(jù)命令參數(shù)打開光驅(qū)和關(guān)閉光驅(qū) ? 最后釋放設(shè)備存儲(chǔ)。 下一頁(yè) 上一頁(yè) 停止放映 第 27/76 頁(yè) 設(shè)備管理示意圖 CPU CH1 CH2 CHn …… CU1 CU2 CUm …… DV1 DV2 DV3 DV4 DVk DVk+1 …… 通道 控制器 設(shè)備 下一頁(yè) 上一頁(yè) 停止放映 第 28/76 頁(yè) 緩沖技術(shù)與設(shè)備分配 ? 緩沖技術(shù) – 單緩沖、雙緩沖、多緩沖和單緩沖池 ? 設(shè)備分配 – 專門的數(shù)據(jù)結(jié)構(gòu) – 最佳的設(shè)備分配原則和策略 – 設(shè)備驅(qū)動(dòng)程序 下一頁(yè) 上一頁(yè) 停止放映 第 29/76 頁(yè) 例 38 光驅(qū)管理程序 算法分析 ① 通過(guò)使用媒體控制接口 (MCI) 的 API函數(shù),實(shí)現(xiàn)對(duì)光驅(qū)的操作。在通道方式下, I/O處理變成了處理機(jī)之間的通訊問(wèn)題?!巴ǖ馈笔蔷哂邢鄬?duì)獨(dú)立的 I/O處理能力的裝置。 缺點(diǎn): DMA方式只能完成簡(jiǎn)單的數(shù)據(jù)傳輸,不能滿足更復(fù)雜的 I/O操作要求,在大、中型計(jì)算機(jī)系統(tǒng)中,普遍采用 I/O處理機(jī)來(lái)管理外部設(shè)備和主存之間的信息交換。即 DMA為具有部分 CPU功能的裝置。它是一種簡(jiǎn)單的通道方式,即在硬件的支持下,通過(guò)占用總線控制權(quán),實(shí)現(xiàn)信息交換。 示例 下一頁(yè) 上一頁(yè) 停止放映 第 25/76 頁(yè) ⑶ DMA方式 ( Direct Memory Access) ? 中斷方式只能提高 CPU的利用率,但在傳送數(shù)據(jù)量大、速度高的情況下,其處理效率就不理想了。 缺點(diǎn) : I/O操作還依賴于 CPU,如果 I/O處理頻繁,CPU也將很忙。只有當(dāng) CPU接到 I/O設(shè)備中斷請(qǐng)求后,才處理 I/O操作。 優(yōu)點(diǎn): 管理簡(jiǎn)單 缺點(diǎn): 浪費(fèi)了 CPU資源 下一頁(yè) 上一頁(yè) 停止放映 第 24/76 頁(yè) ( 2)中斷處理方式
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1