日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

华科计算机课程设计,华中科大操作系统课程设计报告(附源码).doc

發布時間:2023/12/4 windows 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华科计算机课程设计,华中科大操作系统课程设计报告(附源码).doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

華中科技大學計算機學院

操作系統課程設計報告

班級:

學號:

姓名:彭博

時間:2010年3月

設計內容一:熟悉和理解Linux編程環境

編寫一個C程序,實現文件拷貝功能。

2)編寫一個C程序,使用下的圖形庫,分窗口顯示三個并發進程的運行

運行./copy a.out b.out后:

實現了文件拷貝的功能。

2、運行./gtk_process結果如下:

終端輸出:

點擊每個按鈕顯示進程名:

設計內容二:掌握添加系統調用的方法

1)采用編譯內核的方法,添加一個新的系統調用。

編寫一個應用程序,測試新添加的系統調用。

系統調用的功能:文件拷貝。

實驗結果:

測試運行前文件目錄狀態

運行./testmycopycall .sort .sort_mycopycall后

返回值是文件的大小,可以看見系統調用已經在當前目錄生成了sort_mycopycall文件。

通過ls -l查看文件詳細信息。

設計內容三:掌握添加設備驅動程序的方法

1)采用模塊方法,添加一個新的設備驅動程序。

)要求添加字符設備的驅動。

)編寫一個應用程序,測試添加的驅動程序。

運行結果如下:

可以看到輸出成功。

設計內容四:理解和分析文件

1)了解文件的特點和使用方法。

2)監控系統狀態,顯示系統中若干部件的使用情況。

3)用圖形界面顯示系統監控狀態。

附錄(代碼):

實驗一:文件拷貝

實驗一:并行程序的運行

實驗二:系統調用

實驗二:系統調用測試代碼

實驗三:添加模塊

實驗三:模塊測試代碼

實驗四:資源管理器

1

實驗分析:

文件拷貝相對來說比較簡單,主要問題在程序的健壯性上,要充分考慮在文件拷貝過程中可能出現的問題。比如參數個數的合法性,源文件存在性,目的文件的合法性等等問題。

linux下面的圖形庫主要有gtk和qt兩種,但這兩個庫沒有本質的區別,都是基于面向對象的概念和信號的模型。最后選定使用gtk來完成本次實驗。

實驗分析:

使用的linux內核為2.6.31.12;因為2.6的內核和之前的2.4結果變化太大,所以老師給的一些參考資料有些已經過時,對于2.6內核添加系統調用在網上查了很久,就是2.6本身因為小版本的變化結果也有較大的變化,對于最新的內核一方面查看內核Documentation文件夾下的幫助文檔,一方面參考了Amit Choudhary的Implementing a System Call on Linux 2.6 for i386 才最終將系統調用添加成功,總結步驟如下:

①vim /usr/src/linux26/arch/x86/include/asm/unistd_32.h添加#define __NR_mycopycall 337

②vim /usr/src/linux26/include/linux/syscalls.h添加:asmlinkage long sys_mycopycall(char *src,char *des);

③vim /usr/src/linux26/arch/x86/kernel/syscall_table_32.S添加:.long sys_mycopycall

④vim /usr/src/linux26/Makefile修改Makefile,以下參考了Amit Choudhary

Add mycall/ to core-y(Search for regex:core-y.*+=).You will be creating this directory.This direstory will contain the source file,header file and Makefile for our system call.

⑤root@ubuntu:/usr/src/linux26# mkdir mycopycall創建mycopycall目錄,并將寫的系統調用的源碼放在這里

⑥vim /usr/src/linux26/mycopycall/Makefile創建Makefile文件,只需添加obj-y := mycopycall.o

⑦好了,可以開始編譯內核了

實驗分析:

模塊的添加主要是按格式寫代碼,沒有什么新的東西。由于是實現簡單的字符設備,我主要在模塊中定義了一個buffer,用來實現數據的存儲,以便實現設備的讀寫。

主要注意幾個步驟:

①、編寫代碼并編譯。參考了2.6內核的文檔使用make -C /usr/src/linux26 M=`pwd`命令進行。

②、編譯成功后使用insmod ./pbdev.ko在當前系統中插入模塊。

③、使用mknod /dev/pbdev c 251 0在/dev目錄下建立一個鏈接文件,其中251是設備號,0代表字符設備。

總結

以上是生活随笔為你收集整理的华科计算机课程设计,华中科大操作系统课程设计报告(附源码).doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。