引論:我們為您整理了13篇操作系統實驗報告范文,供您借鑒以豐富您的創作。它們是您寫作時的寶貴資源,期望它們能夠激發您的創作靈感,讓您的文章更具深度。
篇1
系
計算機
任課教師
指導教師
評閱教師
實驗地點
綜合樓B102
實驗時間
2012-9-26
實驗課表現
出勤和個人表現Q1(15+15(組長評分)=30分)
得分:
實驗
總分
(Q1+Q2+Q3+Q4)
實驗完成情況Q2(45分(組長與教師評分的加權平均))
得分:
實驗編號與實驗名稱:
實驗七、常用頁面置換算法模擬實驗
實驗目的:
通過模擬實現請求頁式存儲管理的幾種基本頁面置換算法,了解虛擬存儲技術的特點,掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換算法的基本思想和實現過程,并比較它們的效率。
實驗內容及要求(詳見實驗講義與實驗指導書):
要求:
1)要求用你熟悉的程序設計語言編寫和調試一個頁面置換模擬程序;要求在主函數中測試。
2)實驗報告中必須包括:設計思想、數據定義(包括詳細說明)、處理流程(詳細算法描述和算法流程圖)、源代碼、運行結果、體會等部分。
3)必須模擬本實驗內容中提到的算法中的至少2種頁面置換算法。
4)
比較不同頁面置換算法的效率
內容:編寫一個程序,使用以下頁面置換算法中的某2種分別模擬一個分頁系統,并統計同一個頁面訪問序列情況下不同頁面置換算法引發的缺頁中斷次數。
1、第二次機會算法(Second
Chance)
2、最近最少使用算法(Least
Recently
Used,LRU
)
3、最不常用算法(Not
Frequently
Used,NFU)
4、最近未使用算法(Not
Recently
Used
,NRU)
5、時鐘頁面置換算法
6、老化算法(aging)
頁框的數量固定為4,虛擬頁面數為8。實驗輸入為訪問頁面序列,比如0,1
,3
,2,7,1
實驗用到的軟件(:)
DevC++,Visio
實驗內容及關鍵步驟(代碼)Q3(15分)
得分:
流程圖:輸入頁面訪問序列
取訪問的頁號
查頁表
是否缺頁?
是
置缺頁標志flag為’*’
按算法不同淘汰一頁面
調入所訪問的頁面
否
FIFO算法流程圖
LRU算法流程圖:
函數關系解釋圖:
實現結果:
圖1
圖2
代碼:
#include
#include
#define
MEMORY_SIZE
4
/*物理塊數*/
#define
PROESS_SIZE
8
/*頁面號引用串個數*/#include
#include
/*全局變量*/
int
mSIZE=4;
int
pSIZE=8;
static
int
memery[4]={0};
/*物理塊中的頁號*/
static
int
page[8]={0};
/*頁面號引用串*/
static
int
temp[8][4]={0};
/*輔助數組*/
/*置換算法函數*/
void
FIFO();
void
LRU();
void
OPT();
void
designBy();
/*輔助函數*/
void
print(unsigned
int
t);
/*主函數*/
int
main()
{
int
i,k,code;
designBy();
system(“color
0A“);
puts(“請依次輸入頁面號(8個):“);
for(i=0;i
scanf(“%1d“,&page[i]);
system(“cls“);
system(“color
0E“);
do{
puts(“輸入的頁面號引用串為:“);
for(k=0;k
{
for(i=20*k;(i
{
if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))
printf(“%d\n“,page[i]);
else
printf(“%d
“,page[i]);
}
}
printf(“*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*\n“);
printf(“*
請選擇頁面置換算法:\t\t\t
*\n“);
printf(“*
-----------------------------------------
*\n“);
printf(“*
1.先進先出(FIFO)
2.最近最久未使用(LRU)
*\n“);
printf(“*
3.退出
*\n“);
printf(“*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*\n“);
printf(“請選擇操作:[
]\b\b“);
scanf(“%d“,&code);
switch(code)
{
case
1:
FIFO();
break;
case
2:
LRU();
break;
case
3:
system(“cls“);
system(“color
0A“);
exit(0);
default:
printf(“輸入錯誤,請重新輸入:“);
}
printf(“按任意鍵重新選擇置換算法:>>>“);
getch();
system(“cls“);
}while
(code!=3);
getch();
}
void
print(unsigned
int
t)
{
int
i,j,k,l;
int
flag;
for(k=0;k
{
for(i=20*k;(i
{
if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))
printf(“%d\n“,page[i]);
else
printf(“%d
“,page[i]);
}
for(j=0;j
{
for(i=20*k;(i
{
if(i>=j)
printf(“
|%d|“,temp[i][j]);
else
printf(“
|
|“);
}
for(i=mSIZE+20*k;(i
{
for(flag=0,l=0;l
if(temp[i][l]==temp[i-1][l])
flag++;
if(flag==mSIZE)/*頁面在物理塊中*/
printf(“
“);
else
printf(“
|%d|“,temp[i][j]);
}
/*每行顯示20個*/
if(i%20==0)
continue;
printf(“\n“);
}
}
printf(“----------------------------------------\n“);
printf(“缺頁次數:%d\t\t“,t+mSIZE);
printf(“缺頁率:%d/%d\n“,t+mSIZE,pSIZE);
printf(“置換次數:%d\t\t“,t);
printf(“訪問命中率:%d%%\n“,(pSIZE-(t+mSIZE))*100/pSIZE);
printf(“----------------------------------------\n“);
}
/*先進先出頁面置換算法*/
void
FIFO()
{
int
memery[10]={0};
int
time[10]={0};
/*記錄進入物理塊的時間*/
int
i,j,k,m;
int
max=0;
/*記錄換出頁*/
int
count=0;
/*記錄置換次數*/
/*前mSIZE個數直接放入*/
for(i=0;i
{
memery[i]=page[i];
time[i]=i;
for(j=0;j
temp[i][j]=memery[j];
}
for(i=mSIZE;i
{
/*判斷新頁面號是否在物理塊中*/
for(j=0,k=0;j
{
if(memery[j]!=page[i])
k++;
}
if(k==mSIZE)
/*如果不在物理塊中*/
{
count++;
/*計算換出頁*/
max=time[0]
for(m=2;m
if(time[m]
max=m;
memery[max]=page[i];
time[max]=i;
/*記錄該頁進入物理塊的時間*/
for(j=0;j
temp[i][j]=memery[j];
}
else
{
for(j=0;j
temp[i][j]=memery[j];
}
}
print(count);
}
/*最近最久未使用置換算法*/
void
LRU()
{
int
memery[10]={0};
int
flag[10]={0};
/*記錄頁面的訪問時間*/
int
i,j,k,m;
int
max=0;
/*記錄換出頁*/
int
count=0;
/*記錄置換次數*/
/*前mSIZE個數直接放入*/
for(i=0;i
{
memery[i]=page[i];
flag[i]=i;
for(j=0;j
temp[i][j]=memery[j];
}
for(i=mSIZE;i
{
/*判斷新頁面號是否在物理塊中*/
for(j=0,k=0;j
{
if(memery[j]!=page[i])
k++;
else
flag[j]=i;
/*刷新該頁的訪問時間*/
}
if(k==mSIZE)
/*如果不在物理塊中*/
{
count++;
/*計算換出頁*/
max=flag[0]
for(m=2;m
if(flag[m]
max=m;
memery[max]=page[i];
flag[max]=i;
/*記錄該頁的訪問時間*/
for(j=0;j
temp[i][j]=memery[j];
}
else
{
for(j=0;j
temp[i][j]=memery[j];
}
}
//
compute();
print(count);
}
/*顯示設計者信息*/
void
designBy()
{
printf(“━━━━━━━━━━━━━━━━━━━━━━━━━\n“);
printf(“┃㊣
實驗七:頁面置換算法
㊣┃\n“);
printf(“┃
學號:1001010042
┃\n“);
printf(“┃
姓名:黃浩全
4.9.9.0>┃\n“);
printf(“┣━━━━━━━━━━━━━━━━━━━━━━━━━┫\n“);
}
實驗過程中遇到的問題解決辦法與實驗體會Q4(需手寫,10分)
得分:
1、在FIFO算法可以很容易用數組實現,而LRU算法可以用數組實現,不過用結構體會更明顯簡單。結構體成員變量可以記錄頁號進入的時間,和最近使用的記錄。相對比數組更容易理解和實現。
2:首先,FIFO(先進先出)算法和LRU(最近未使用算法)兩者之間,FIFO算法明顯會比LRU容易理解,而且比LRU算法較容易實現,但在性能方面,LRU的確在優化方面做的比較理想。再且在考慮頁框和頁表號之間的問題用代碼可以容易模擬,但是真是在物理內存塊中是如何實現,那確實是很難以理解,需要真正理解到內存內部的知識才知道這兩個算法是怎么實現的。
評閱教師特殊評語:
篇2
學生姓名、學號、及合作者
實驗日期和地點(年、月、日)
實驗目的
目的要明確,在理論上驗證定理、公式、算法,并使實驗者獲得深刻和系統的理解,在實踐上,掌握使用實驗設備的技能技巧和程序的調試方法。一般需說明是驗證型實驗還是設計型實驗,是創新型實驗還是綜合型實驗。
實驗原理
在此闡述實驗相關的主要原理。
實驗內容
這是實驗報告極其重要的內容。要抓住重點,可以從理論和實踐兩個方面考慮。這部分要寫明依據何種原理、定律算法、或操作方法進行實驗。詳細理論計算過程。
實驗步驟
只寫主要操作步驟,不要照抄實習指導,要簡明扼要。還應該畫出實驗流程圖(實驗裝置的結構示意圖),再配以相應的文字說明,這樣既可以節省許多文字說明,又能使實驗報告簡明扼要,清楚明白。
實驗結果
實驗現象的描述,實驗數據的處理等。原始資料應附在本次實驗主要操作者的實驗報告上,同組的合作者要復制原始資料。
對于實驗結果的表述,一般有三種方法:
1. 文字敘述: 根據實驗目的將原始資料系統化、條理化,用準確的專業術語客觀地描述實驗現象和結果,要有時間順序以及各項指標在時間上的關系。
2. 圖表: 用表格或坐標圖的方式使實驗結果突出、清晰,便于相互比較,尤其適合于分組較多,且各組觀察指標一致的實驗,使組間異同一目了然。每一圖表應有表目和計量單位,應說明一定的中心問題。
3. 曲線圖
應用記錄儀器描記出的曲線圖,這些指標的變化趨勢形象生動、直觀明了。
在實驗報告中,可任選其中一種或幾種方法并用,以獲得最佳效果。
討論
根據相關的理論知識對所得到的實驗結果進行解釋和分析。如果所得到的實驗結果和預期的結果一致,那么它可以驗證什么理論?實驗結果有什么意義?說明了什么問題?這些是實驗報告應該討論的。但是,不能用已知的理論或生活經驗硬套在實驗結果上;更不能由于所得到的實驗結果與預期的結果或理論不符而隨意取舍甚至修改實驗結果,這時應該分析其異常的可能原因。如果本次實驗失敗了,應找出失敗的原因及以后實驗應注意的事項。不要簡單地復述課本上的理論而缺乏自己主動思考的內容。
另外,也可以寫一些本次實驗的心得以及提出一些問題或建議等。
結論
結論不是具體實驗結果的再次羅列,也不是對今后研究的展望,而是針對這一實驗所能驗證的概念、原則或理論的簡明總結,是從實驗結果中歸納出的一般性、概括性的判斷,要簡練、準確、嚴謹、客觀。
實驗報告范文1一、實驗目的及要求:
本實例的目的是設置頁面的背景圖像,并創建鼠標經過圖像。
二、儀器用具
1、生均一臺多媒體電腦,組建內部局域網,并且接入國際互聯網。
2、安裝windows xp操作系統;建立iis服務器環境,支持asp。
3、安裝網頁三劍客(dreamweaver mx;flash mx;fireworks mx)等網頁設計軟件;
4、安裝acdsee、photoshop等圖形處理與制作軟件;
5、其他一些動畫與圖形處理或制作軟件。
三、實驗原理
設置頁面的背景圖像,并創建鼠標經過圖像。
四、實驗方法與步驟
1) 在“頁面屬性”對話框中設置頁面的背景圖像。
2) 在頁面文檔中單擊“”插入鼠標經過圖像。
五、實驗結果
六、討論與結論
實驗結束后我們可以看到頁面的背景變成了我們插入的圖像,并且要鼠標經過的時候會變成另一個圖像,這就是鼠標經過圖像的效果。當然這種實驗效果很難在實驗結果的截圖里表現出來。這個實驗的關鍵在于背景圖像的選擇,如果背景圖像太大不僅會影響網頁的打開速度,甚至圖像在插入會也會有失真的感覺,因此在插入前對圖像進行必要的處理能使實驗的效果更好。
實驗報告范文2一、實驗目的及要求:
本實例是要創建邊框為1像素的表格。
二、儀器用具
1、生均一臺多媒體電腦,組建內部局域網,并且接入國際互聯網。
2、安裝windows xp操作系統;建立iis服務器環境,支持asp。
3、安裝網頁三劍客(dreamweaver mx;flash mx;fireworks mx)等網頁設計軟件;
4、安裝acdsee、photoshop等圖形處理與制作軟件;
5、其他一些動畫與圖形處理或制作軟件。
三、實驗原理
創建邊框為1像素的表格。
四、實驗方法與步驟
1) 在文檔中,單擊表格“”按鈕,在對話框中將“單元格間距”設置為“1”。
2) 選中插入的表格,將“背景顏色”設置為“黑色”(#0000000)。
3) 在表格中選中所有的單元格,在“屬性”面版中將“背景顏色”設置為“白色”(#ffffff)。
4) 設置完畢,保存頁面,按下“f12”鍵預覽。
篇3
3.要排版,格式應規范,截圖一律采用JPG格式(非BMP格式)。為避免抄襲,用圖像編輯軟件在截圖右下角“嵌入”自己的學號或姓名。實驗報告的格式是否規范、截圖是否嵌入了自己的學號或姓名,是評價報告質量的考量因素。
4.說明文字與實驗截圖相配合,若只有說明文字,或只有截圖,則成績為不及格。
5.只提交報告電子版。在規定的日期內,通過電子郵件發送到[emailprotected],若三天之內沒有收到內容為“已收到”的回復確認Email,請再次發送或電話聯系任課老師。
6.為了便于歸檔,實驗報告Word文檔的命名方式是“學號姓名-計算機病毒實驗報告.doc”,如“20xx12345張三-計算機病毒課程報告.doc”。
注意:提交報告截止日期以QQ群通知時間為準(一般在考試周下周周三),若因沒有及時提交實驗報告,導致課程成績為“缺考”的,責任自負。
實驗一 程序的自動啟動
一、實驗目的
(1)驗證利用注冊表特殊鍵值自動啟動程序的方法;
(2)檢查和熟悉殺毒軟件各組成部分的自動啟動方法。
二、實驗內容與要求
(1)在注冊表自動加載程序主鍵中,添加加載目標程序鍵值(自己指派任意程序),重啟操作系統,檢查是否能自動成功加載目標程序。羅列5或5個以上能自動啟動目標程序的鍵值,并用其中某一個啟動自己指派的程序。
(2)檢查/分析你所使用的計算機中殺毒軟件系統托盤程序、底層驅動程序等組成部分的自動啟動方式。
三、實驗環境與工具
操作系統:Windows XP/Windows Vista/Windows 7
工具軟件:RegEdit.exe,AutoRuns,或其他注冊表工具軟件;殺毒軟件
四、實驗步驟與實驗結果
一)按啟動文件夾的方法
1、“啟動”文件夾是最常見的自啟動文件夾。可以打開“開始”菜單—>“所有程序”,在所有程序里面可以找到“啟動”文件夾找到“啟動”文件夾的位置,在其中加入WPS的word的快捷方式,就可以在電腦開機時自啟動word了.在AutoRuns中可以看到如下圖中的結果,WPS文字的快捷方式在自啟動項中。
二)利用注冊表鍵值來實現程序的自啟動
1、“Run”鍵值--在HKEY_LOCAL_MACHINESoftwareMicrosoftWindows
CurrentVersionRun新建一個wps_excel 數值數據為“C:Program FilesKingsoftWPS Office Personaloffice6et.exe” 可以實現WPS表格的自啟動。在AutoRuns中可以看到下圖內容:
2、“Load”鍵值--將HKCUSoftwareMicrosoftWindows NTCurrentVersion WindowsLoad中的數值數據更改為C:Program FilesKingsoftWPS Office Personaloffice6wpp.exe”,在AutoRuns中可以看到下圖內容:
3、“Userinit”鍵值--用戶可以在HKEY_LOCAL_MacHINESOFTWAREMicrosoft WindowsNTCurrentVersionWinlogonUserinit 中添加自啟動程序
4、在HKCUSoftwareMicrosoftWindowsCurrentVersionRun 新一個建了 ppt鍵值,其數值數據為“c:program fileskingsoftwps office personaloffice6wpp.exe”,可實現WPS幻燈片程序的自啟動。
5、在HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon Userinit中可以添加自啟動程序
6、“RunOnce”鍵值--在HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRunOnceSetup,和HKEY_LOCAL_MACHINESOFTWARE
MicrosoftWindowsCurrentVersionRunOnceSetup新建一個“金山衛士”鍵值,其數值數據為"C:Program FilesksafeKSafe.exe",可以實現“金山衛士”程序的自啟動重啟之后,先后啟動了WPS文字,金山衛士,WPS表格和WPS幻燈片。
五、思考題
殺毒軟件為什么要分成幾個部分各自自動啟動?
篇4
文章編號:1672-5913 (2007) 15-0027-04
Experimental Teaching System Construction for Embedded Software
Abstract:To train up a good deal of embedded software development talents adaptable to the society requirements, the embedded software system’s architecture and development contents are analysed in this paper, as well as the particular fashion of embedded software development and the developers’ knowledge system structure required by the community.
Several configuration schemes for embedded software experimental teaching system are also described in this paper, as well as the construct of multiple levels’ experimental projects. In the end, how to doing experimental teaching well and raise the teaching quality are summarized. This paper is a summarization for the many years’ embedded software practical teaching work by the authors. We hope that it could bring some enlightening reference to the community, and establish a basis for our next improvement.
Key words:embedded software; experimental teaching system
“嵌入式軟件開發”是一門實踐性相當強的課程,學生在學習了相關理論知識之后,如何能從實踐的角度掌握更實用的開發方法和技能,是我們在規劃、完善嵌入式軟件教學體系中重點關注的問題。為此,我們以培養適應社會需求的嵌入式軟件開發人才為目標,充分研究了嵌入式軟件系統結構及開發內容、嵌入式軟件開發方式的特殊性以及業界對嵌入式軟件開發人才的知識體系結構需求,開發了以多種配置方案、多層次實驗項目為主要內容的嵌入式軟件實驗教學系統。
1嵌入式軟件系統結構及開發內容
嵌入式軟件系統的典型結構如圖1所示。
因此,嵌入式軟件的開發自下而上可分為以下幾種層次:
編寫簡單的板級測試軟件,主要目的是輔助硬件的調試
(1) 開發基本的驅動程序(不針對特定的嵌入式操作系統)
(2) 開發特定嵌入式操作系統的驅動程序(即板級支持包BSP――Board Support Package,包括目標板的初始化、中斷管理以及一些簡單的驅動程序單元)
(3) 開發嵌入式系統軟件,如嵌入式操作系統
(4) 開發嵌入式中間件,如嵌入式CORBA、嵌入式JAVA等
(5) 開發嵌入式應用軟件
2嵌入式軟件開發方式的特殊性
嵌入式軟件開發方式有其特殊性,具體體現在如下幾個方面:
(1) 開發方式:采用交叉開發的方式。這是與桌面軟件開發不同的地方,其開發環境的建立相對復雜,不僅要安裝開發工具軟件,還需配置特定的目標硬件平臺,并在開發平臺與目標平臺之間建立有效的物理連接和邏輯連接,相關概念易產生混淆。
(2) 對開發工具的要求比較高:一則需要有功能強大的集成環境提升開發過程的便捷性,二則不管是進行調試還是測試,均要求在目標端有相應的模塊,以支持宿主端功能的實現,模塊可以是用軟件實現的,也可以是由硬件實現的。
(3) 硬件平臺豐富多樣,有共性,也有較大的差異性。據不完全統計,目前全世界嵌入式微處理器的品種總量已經超過千種,有幾十種體系,主流的體系有ARM、MIPS、PowerPC、SH、X86,廣泛應用于消費電子、通信、汽車、國防、航空航天、工業控制、儀表、辦公自動化等領域。教學中應考慮采用各種典型的硬件平臺,讓學生學到的知識更能接近社會的需求。
3嵌入式軟件開發的知識體系結構
嵌入式軟件開發的范圍和內容涉及很多方面,與桌面軟件開發不同,業界對嵌入式軟件開發人才有更多的要求:不僅要懂軟件,還要具備基本的硬件知識。具體來講,除具備計算機基礎理論知識如計算機組成原理、操作系統、匯編語言、C語言、程序設計思想和方法等外,嵌入式軟件開發的知識體系結構中還要求如圖2所示的內容:
4實驗系統構成及配置
嵌入式軟件開發實驗系統一般由下列元素組成:
(1) 嵌入式系統芯片及開發板(或評估板)
(2) 嵌入式軟件開發工具(或集成開發環境)
(3) 嵌入式操作系統(可選)
(4) 其他監測儀器(硬件相關,可選)
(5) 實驗項目
(6) 配套資料,如實驗教學大綱、參考實驗程序、參考實驗報告、實驗課件、實驗教材。
針對嵌入式系統芯片及開發板、嵌入式操作系統及嵌入式軟件開發工具多樣性的特點,我們通過與嵌入式硬件廠商、軟件供應商的廣泛交流與合作,利用多方資源建設與豐富實驗系統,規劃和實現了多種配置的實驗系統,可以配套具有不同教學側重點的嵌入式軟件課程,靈活性大。在配置實驗系統時我們基于如下的一些考慮:
硬件平臺方面:主要考慮選擇屬于不同系列的嵌入式微處理器構建目標平臺,目前有如下幾種配置:
(1) 嵌入式仿真PC平臺
用軟件仿真的方式在PC機上模擬一個嵌入式目標平臺,學生利用PC機就可以自己動手搭建嵌入式系統的開發環境,熟悉應用開發,更快捷方便地學習和理解嵌入式系統的基礎知識。基于這樣的基礎,再在真實的嵌入式目標硬件平臺上進行開發,經歷從純軟件到軟硬件結合、從“紙”上談兵到“板”上談兵的一個學習實踐過程,逐步遞進,由淺入深,就能更加系統、透徹地掌握嵌入式軟件開發的知識和技能。
(2) 基于ARM7的嵌入式硬件平臺
ARM(Advanced RISC Machine)是目前業內主流的嵌入式微處理器系列,在眾多的嵌入式領域中得到應用,已成為業界公認的嵌入式微處理器標準。ARM7在整個ARM系列中位于中低端的位置,采用ARM7為核心的嵌入式硬件板作為目標平臺,既能讓學生從一開始就了解和熟悉業內主流和先進的嵌入式微處理器的知識,又能降低實驗系統構建的成本,便于普及。
(3) 基于SH3的嵌入式硬件平臺
SuperH(簡稱SH)是由renesas(瑞薩)公司開發的用于高性能價格比、小型化和高性能功耗比的嵌入式RISC處理器。Renesas也是目前位居業界前列的微控制器供應廠商,其SH系列的嵌入式微處理器在汽車電子、網絡設備、辦公自動化設備、家用電器、工業設備等領域被廣泛應用。
軟件平臺方面:
(1) 嵌入式操作系統:一種方案是采用開源的嵌入式操作系統作為學習和使用對象,例如uC/OS-II。由于開放源代碼,學生能夠看到嵌入式實時操作系統尤其是內核的典型實現,能夠更好地激發他們的學習興趣,可自己嘗試修改如調度算法之類的內部機制,對于他們掌握好相關理論知識和提高實踐水平很有好處。另一種方案是選擇商用嵌入式操作系統,這些操作系統廠商可提供針對教育的版本,比如北京科銀京成技術有限公司推出的國產自主品牌嵌入式實時操作系統DeltaOS。主流的商用嵌入式操作系統經過了市場應用的考驗,在功能、性能、穩定性和可靠性方面都有較大優勢,讓學生學習了解它們也是有好處的。
(2) 嵌入式軟件開發工具:盡量采用集成化程度高的、使用方便、易學習掌握的工具。因為在教學中工具不是重點,但又是實現開發所必需的。選擇好的工具能讓學生盡快熟悉嵌入式軟件開發的過程尤其是交叉開發的方式,盡快跨越工具關,建立起開發環境,以便在有限的課時中把精力集中在嵌入式操作系統、嵌入式微處理器編程、驅動開發、應用軟件開發等重點內容上。
基于上述考慮,我們規劃的不同方案的實驗系統配置如表1所示。
5實驗項目體系設計
實驗項目的設計遵循下面的一些原則:
(a) 由淺入深,由易到難
(b) 由硬件到軟件、自下而上
(c) 由基礎到綜合、由驗證到創新
基于這樣的原則,我們設計的實驗項目可分為以下類型:
(1) 嵌入式開發環境的建立:包括仿真開發環境的建立、交叉開發環境的建立,讓學生體會不同開發方式的要點和差異(包括宿主平臺及目標平臺的軟硬件配置、軟件工具的安裝及配置、硬件線路的制作及連接、物理連接的驗證、邏輯連接的驗證等),掌握開發工具的基本使用,熟悉嵌入式軟件運行的載體――嵌入式目標平臺;
(2) 嵌入式微處理器編程基礎實驗:包括匯編指令實驗、處理器工作模式實驗、存儲器實驗、I/O接口實驗、中斷實驗等;
(3) BSP及硬件驅動開發實驗:包括板級初始化、系統自舉程序(boot loader)、實時時鐘和定時器驅動、網絡接口驅動、鍵盤驅動、顯示(如LCD)驅動、串行總線(包括UART/USB/I2C等)驅動、多媒體接口設備(比如音頻)驅動、可編程I/O端口操作等;
(4) 嵌入式系統軟件開發實驗:比如嵌入式操作系統內核移植、嵌入式操作系統組件(如GUI等)移植、開放源代碼的嵌入式內核機制改造等;
(5) 嵌入式操作系統應用基礎實驗:對嵌入式操作系統尤其是內核的基本管理功能的驗證性實驗,包括任務管理、信號量機制、消息傳送機制、優先級反轉及解決策略、內存管理等,幫助學生掌握嵌入式操作系統的基本原理和使用。這類實驗比較簡單,只突出某一方面的主題;
(6) 嵌入式操作系統應用綜合實驗:學生在全面掌握基礎理論知識和具備一定動手能力后,掌握嵌入式軟件開發的過程和方法,將所有的基礎軟件部件貫穿起來,比如將嵌入式實時內核、文件系統和TCP/IP網絡協議棧、嵌入式GUI進行綜合應用;
(7) 嵌入式中間件應用實驗:比如嵌入式JAVA程序設計、手機Java應用開發等;
(8) 嵌入式系統應用綜合設計實驗:從底層硬件的擴展和設計,到驅動開發,再到上層應用軟件的設計,完成復雜應用開發。幫助學生了解真實的應用,并鍛煉自己分析和解決問題的綜合能力,掌握系統分析、設計及編程、調試和固化等多方面的技能。
6如何提高實驗教學質量
(1) 積累、完善相關素材和配套資料(包括實驗教學大綱、參考實驗程序、參考實驗報告、實驗課件、實驗教材等),進行充分的準備。
(2) 規劃好實驗步驟,規范化實驗課程程序,完善相關管理制度,比如:將實驗步驟以實驗指導書的形式體現;實驗前由老師講解,并演示操作步驟;學生開始實驗操作前教師明確實驗項目的目標和要求,在實驗過程中適時提供指導;實驗結束后要求學生按標準格式書寫實驗報告,教師及時批改和總結。
(3) 根據所配套的理論課程,將實驗項目合理組合搭配:在實驗教學課時有限以及實驗設備資源不是很充足的情況下,為了盡量多地讓學生掌握嵌入式軟件開發的知識和能力,對上述不同硬件平臺和軟件版本的實驗系統進行選擇,對不同類型的實驗項目進行組合搭配,以取得更好的教學效果。
(4) 根據實驗內容的難易程度和工作量大小,改變實驗小組的構成形式。對于簡單的和工作量小的實驗項目,可要求學生獨立完成。而對于綜合性和創新性的實驗,一般不是能由單個人獨立完成的,需要學生們組成設計小組,協同分工,共同完成。
(5) 創新實驗考核方式。針對不同類別的實驗,采取不同的考核方式。對于一些簡單的驗證性實驗,由教師直接在實驗課上考核,在學生完成實驗項目后檢查其完成情況,酌情打分;另一方面,對學生提交的實驗報告進行評價,關注他們是否能提出一些心得體會,以及對實驗的建議。對于綜合性的設計實驗和創新性實驗,關注學生個體或團隊開展實驗的過程,要求他們提交更為詳細的實驗報告,以及在實驗過程中產生的其他工作產品(除了軟件程序本身外,還要求有完善的設計文檔),評價他們是否掌握了提出問題、分析問題和解決問題的基本方法,是否具備將相關理論和實踐知識融匯貫通、舉一反三的能力。
7結語
在現今計算機技術迅速發展和縱深應用的后PC時代,嵌入式系統的應用無處不在,業界對于嵌入式系統開發人才的需求與日俱增。這種人才需求不僅是數量上的,更是品質上的。國內各高校、職業技術學院及培訓機構的嵌入式相關理論與實踐課程的開設也從客觀上證明了這種需求。本文是對作者多年嵌入式軟件實踐教學工作的總結,希望能給同業者帶來一些啟示和參考,也作為自身下一步工作改進的基礎。
參考文獻
[1] 羅蕾. 嵌入式實時操作系統及應用開發[M]. 北京:北京航空航天大學出版社,2005.
[2] 陳天洲. “嵌入式系統概論”課程設計[J]. 北京:計算機教育,2006,4.
[3] 王志軍. 解構北京大學嵌入式系統課程建設[J]. 北京:計算機教育,2006,5.
篇5
2 《操作系統》實踐環節的運作情況
經過對各高校《操作系統》實踐教學的調查,《操作系統》實踐部分的開設形式主要有以下四種:
2.1 驗證操作系統部分功能的實驗
這種實驗方式最簡單,主要思路是,以某個實際的商業操作系統為實驗環境,學生可以嘗試執行操作系統提供的某些功能,能力更強的學生還可利用操作系統提供的系統調用函數編寫、運行程序,以改進功能。通過這兩種方式,學生可體驗操作系統原理在實際商用操作系統中是如何工作的。
這種方式的特點是,學生不必編寫操作系統功能實現的代碼,對完全理解操作系統的內涵意義不大。
2.2 模擬經典算法的實驗
這是比較常見的一種實驗方式。其執行過程是,由教師選取操作系統中的一些經典算法,如讀者-寫者問題,電梯算法,讓學生使用其熟悉的編程語言(如:C語言、C++語言)來實現算法。
該方式與程序設計課程的上機環節相似,這有助于學生理解《操作系統》的理論和技術,但是,這種方式由于缺乏訓練學生對操作系統完全性的把握,達不到培養學生完整掌握操作系統的目的。
2.3 替換實際操作系統的主要模塊
這種方式對學生的編程能力要求較高。其執行過程是,以開源的操作系統為平臺,要求學生選取其中的主要功能模塊,并對其進行替換及擴展。然而,開源的操作系統一般比較龐大,結構環境復雜,對師生的要求很高,一般高校實施的效果不好,最終只有小部分學生達到實驗目的,學生的受益面不大。[3]
2.4 設計一個操作系統雛形
這種方式的執行過程是,教學中可選取一個包含簡單內核的教學操作系統,讓學生逐步改進、擴展其功能;或者干脆讓學生設計一個全新的操作系統雛形,該雛形包含操作系統的基本內核功能,如處理機管理、進程管理、內存管理、設備管理、文件管理功能。
該方式與課程實驗教學目標一致,理論上比較理想,但在實際的執行過程中,由于操作系統是一個大型的系統軟件,其設計、結構相當復雜,因此這種方式實施起來難度很大。
3 在教學操作系統GeekOS上完成實驗教學
由于一般的商業操作系統設計復雜,結構龐大,學生規定課時內很難全面掌握,同時,這些操作系統已經非常成熟,差不多實現了全部功能,學生沒有多少新的工作可做。所以,設計一個基于教學操作系統的實踐教學平臺顯得尤為迫切和必要。
3.1 教學操作系統的分類
教學操作系統有兩大類:一類是針對RISC結構MIPS處理器的,例:Nachos;另一類是針對CISC結構的X86通用處理器的,例:Minix、 GeekOS。
3.2 GeekOS操作系統概述
最通用的處理器是CISC結構的X86通用處理器。它是一個用C語言開發的操作系統,學生可以在Linux或UNIX環境下對其進行功能擴充,也可以在g(project1等項目中還包含有磁盤鏡像diskc.img),makefile項目管理文件。
2) Include文件夾。包含兩個子目錄,分別是geekos和libc,在geekos子目錄中有kthread.h,keyboard.h等頭文件,在libc中包含有GeekOS支持的C語言標準字符串函數頭文件string.h。
3) scripts文件夾。包含項目編譯時用到的一些腳本文件。
4) src文件夾。包含系統內核源代碼,用戶修改GeekOS系統時要修改的源代碼如main.c等都位于這個目錄中,在User子文件夾中一般是用來存放用戶的測試文件,在tools子目錄中的代碼是用來建立pfat測試文件系統的。
3.3.2七個項目的功能
project0:在該項目中,要求學生實現一個內核級的I/O進程,該進程能從鍵盤接收一個按鈕,并顯示在顯示屏上。該項目的目的是讓學生了理解GeekOS的編譯、鏈接和運行,明白計算機系統是如何啟動的。
project1:在該項目中,要求學生熟悉可執行鏈接文件(ELF)的格式,并通過編程程序來分析該文件,同時將分析結果送到加載器。該項目的目的是讓學生理解ELF文件的結構,使學生掌握如何加載和運行可執行文件。
在提供的GeekOS內核系統的基礎上,為學生設計了7個由易到難的設計項目用于GeekOS的改進。這些項目分別涵蓋了操作系統內核的各個基本模塊:系統啟動,進程管理,存儲管理,文件系統,訪問控制以及進程間通信。7個項目都規定了改進的目標,并提供了一些設計指導性的意見,但沒有提供源代碼,所以學生首先必須熟悉GeekOS的基本工作原理,才能開展各個項目的設計與實現。
project2:在該項目中,要求學生編程來支持用戶態進程,這種支持包括初始化用戶態進程空間、初始化用戶進程空間、切換用戶進程、導入用戶程序。該項目中,計算機存儲分配方式還是采用段式分配。該項目實現后,學生就可以使用GeekOS提供的命令行解釋器Shell運行一些命令來執行PFAT文件系統內的用戶測試程序。
project3:在該項目中,要求學生改進GeekOS的調度程序,實現基于4級反饋隊列的調度算法(初始GeekOS系統僅提供了FIFO進程調度算法),并實現信號量,支持進程間通信。
project4:在該項目中,要求學生編程實現分頁虛擬存儲管理,以替代前述項目中一直采用的段式存儲管理。學生實現分頁式虛存管理以后,系統在內存不足時,就可以將部分內存頁面調出送到硬盤,以緩解內容壓力,實現虛擬存儲技術。
project5:在該項目中,要求學生實現GOSFS文件系統,該文件系統采用虛擬文件系統,可加載不同的文件系統,PFAT只讀文件系統是默認加載的文件系統。該項目的目的是要實現一個多級目錄的、可讀寫的文件系統。
project6:在該項目中,要求在文件系統中新增一個訪問控制列表,并使用匿名半雙工管道實現進程間通信。
4 《操作系統》實踐環節的考核
《操作系統》實踐環節的考核非常重要,好的考核將激勵學生努力學習,達到實驗效果,辦法如下:
1)教師制定實驗報告格式和要求,教師對學生完成的實驗報告的作檢查和評價;
2)對設計性實驗,要求學生回答并作出評價,回答的問題主要有:闡述解決該問題的算法思想、所使用的數據結構是如何設計的、使用的測試用例是如何選取和設計的、算法性能怎么樣。
篇6
作者簡介:張莉莉(1967-) 女,碩士,三峽大學計算機學院講師,研究方向為操作系統、系統結構。
0引言
物聯網是在計算機互聯網的基礎上,利用RFID、無線數據通信等技術,構造一個覆蓋世界上萬事萬物的“Internet of Things”。在這個網絡中,物品能夠彼此進行“交流”,而無需人的干預。物聯網是繼計算機、互聯網和移動通信之后的又一次信息產業的革命性發展。物聯網被正式列為國家重點發展的戰略性新興產業之一。在國家大力推動工業化與信息化兩化融合的大背景下,物聯網會是工業乃至更多行業信息化過程中一個比較現實的突破口,是一個未來新興產業。應這種社會需求,2010年初教育部下達了高校設置物聯網專業申報通知,眾多高校爭相申報。三峽大學計算機科學與技術專業開設了物聯網工程方向,以培養能夠系統地掌握物聯網相關理論、方法和技能,具備通信技術、網絡技術、傳感技術等信息領域專業知識的高級工程技術人才。但是作為一個新興的課程體系,教學內容選擇、實踐環節組織等問題依然處于探索階段。三峽大學將《嵌入式操作系統》[1]作為一門專業基礎課程被列入該專業方向必修課程,和傳統操作系統課程相比,嵌入式操作系統有自己的特點,尤其是實踐環節,本文就《嵌入式操作系統》課程實踐教學部分進行研究。
1《嵌入式操作系統》教學存在的問題
首先,《嵌入式操作系統》是近年才出現的課程,可參考和借鑒的資料不多,各個學校都在探索一種適合該課程的教學模式。
其次,嵌入式系統是個綜合性很強的系統,它涵蓋計算機、通信、網絡、RFID等各方面的技術,那么,作為嵌入式系統開發和執行平臺的操作系統也要體現這方面的特征,而如何體現尚有待進一步探索。
再次,需要更多的經費投入,實驗的開設往往不是一臺PC機器就可以解決的。
2《嵌入式操作系統》實踐教學內容的選定
《嵌入式操作系統》同一般操作系統課程相比有很多獨特之處。一般操作系統都以PC機操作系統為平臺,內容包括進程管理、存儲管理、設備管理以及文件系統等內容。嵌入式操作系統作為嵌入式軟件開發平臺,最終要和應用軟件一起固化在某種設備里,因此,嵌入式操作系統應該是易于裁剪和配置[2]的。如果這種設備要聯網使用,還需具備網絡功能,有的還需要特殊的文件系統,而且在進程和內存管理方面也不能過于復雜,在開設實驗課程時要考慮這些因素。鑒于以上分析,實踐教學內容可從4個方面考慮:
(1)模擬類實驗。主要是通過編寫程序模擬嵌入式操作系統的一些算法。嵌入式操作系統和PC操作系統相比有很多不同之處:嵌入式操作系統要適應多種處理器、可裁剪、輕量型、實時可靠、可固化。因此,嵌入式操作系統在進程管理、內存管理、文件系統、設備管理等方面有獨特算法,可以開設實驗編寫程序模擬這類算法。此類實驗通常作為課內實驗與理論課同步進行,用于驗證理論,屬于驗證型實驗。
(2)分析裁剪類實驗。主要利用免費操作系統,如linux、minix、ucos/Ⅱ等。先分析這些系統內核,再做適當裁剪或增加或替換。由于這類實驗需要編譯內核,所需時間比較長,可以作為課外選修的實驗。
(3)應用型實驗。通過系統調用來完成一些應用,這類實驗可以是驗證性的,也可以是設計類的。可以根據具體的應用,設計一個實驗題目,讓學生在理論和驗證性實驗的基礎上進一步擴展。
(4)設計型實驗。主要是設計一個小型的操作系統,這類實驗難度較高,可以作為課程設計類實驗。
三峽大學物聯網方向的課內實驗[1]主要是配合理論課內容而開設,總共8個實驗,一個驗證性實驗,7個設計性實驗,實驗內容如表1所示。
在課內實驗的基礎上,再配以課外實驗[1],可以提高學生的綜合開發能力,課外實驗可以采用項目方式進行。課內實驗在虛擬機上完成,課外實驗可以在基于ARM芯片的實時系統上開發;課內實驗要求獨立完成,課外實驗可以以小組為單位完成。課外實驗內容如表2所示。
3教學環境與教學方式
3.1教學環境
首先,操作系統的選擇。嵌入式操作系統種類比較多,要根據先行課程和學生的層次選擇不同的操作系統。對于有操作系統背景知識的學生,可以采用較為復雜的系統,如linux;
而對于沒有操作系統背景的學生,可以選擇簡單的操作系統,例如UCOS/Ⅱ。
其次,開發工具的選擇。嵌入式軟件開發需要交叉編譯和交叉鏈接。交叉編譯器的主要功能是將主機上編寫的源程序編譯成可以在目標機上運行的代碼。教學環境可以是仿真環境[2]或者是真實環境。仿真環境有嵌入式軟件集成開發環境,例如lambdaTOOL,這個集成開發工具可以支持多種嵌入式操作系統,如linux或者ucos等操作系統,也支持32位的嵌入式處理器。該工具有面向教學的免費版本,利用這種工具進行實踐教學的好處就是有一臺PC機器即可,在實踐教學經費缺乏的情況下是一種比較好的選擇,對于初學者來說也是一款很方便的工具。
真實環境除了PC機器之外還需要開發板,在PC機器上編譯、開發板上執行,這種環境可以鍛煉學生的動手能力。真實環境開發工具和開發板有關聯,這類開發工具一般有與相關開發板芯片配套的開發環境,可以針對這種開發環境設計實驗內容。
3.2教學方法
過去常用的教學方式是配合理論教學開設課內實驗,這類實驗課時有限,每個實驗偏重某個知識點,實驗內容事先設定好,學生在開發板上一個一個地驗證。這類實驗缺乏系統性,做完后,學生缺乏完整概念,而且,這種按照指導書按部就班完成實驗的方式,也缺乏創造性。對于《嵌入式操作系統》這門課程,單一地采用這種方式并不合適。
《嵌入式操作系統》實踐教學可以采用多種方式,如課內課外實驗相結合、驗證性實驗和設計性實驗相結合等。課內實驗開設應用型且學生在短時間內容易接受的實驗,這類實驗用于訓練學生的基本技能。課外實驗通過課程設計、大型作業等方式,要求學生開發一個小型的系統或對已有系統進行裁剪或修改。課外實驗在時間上沒有課內實驗的限制,可以開設綜合性的實驗。
此外,還可以采用項目驅動式教學,如果有這個條件,可以讓學生參與一些項目的開發,將科研與教學結合起來。
教學手段可以采用多媒體教學與網絡輔助教學相結合的方式,多媒體教學用于面授,網絡用于課外自學。《嵌入式操作系統》課程需要較強的理論知識,更需要在實踐環節加強訓練。多媒體教學可以作為實踐教學環節的準備,形象、生動地將一些抽象的概念具體化,讓學生有一個感性的認識,模擬一些在使用操作系統時看不見的過程,加深學生對知識的理解。
網絡教學手段能夠彌補課程教學的不足。可以充分利用現有的校園網資源開發一個網上答疑系統,學生與學生、學生與教師之間可以隨時“交談”,改變以教師為主的教學方式,轉向以學生為主的教學方式。也可以嘗試大規模網絡開放課程(Massive Open Online Courses),這是一種依托互聯網的教學模式,與傳統的教學模式有很大差別,它在線提供課程教學的全過程,包括微證書的管理,是一種新型的適合高校教育的模式。在這種模式下,教室成為學習會所,教師在“云”端授課,可以不拘泥于場所、時間等因素,甚至可以讓學生自行選取學習的內容。這個正好與《嵌入式操作系統》課程內容相吻合,因為嵌入式系統所涉及的領域十分廣泛,在做教學計劃時,將方向定在什么領域也十分困難,可以讓學生自行根據愛好和市場需求制定學習模塊,利用開放課堂進行學習。目前,全球比較成規模的MOOCs三大平臺是Coursera、Udacity、edX,可以依托這些平臺,建設《嵌入式操作系統》課程資源。
4教材
目前,《嵌入式操作系統》實踐系列的教材還不多見,筆者推薦《嵌入式實時操作系統及應用開發》配套的實驗方案[2]。該方案有兩套,一套是利用仿真系統開發實驗,工具是利用免費的開發環境Lambdatool,另一套是利用某種嵌入式微處理器開發的嵌入式軟件交叉開發實驗系統,也可以自行編寫。
5考核方式
《嵌入式操作系統》課程教學考核方式應該多樣化。傳統的考核方式一般是學生按照事先設定的內容完成實驗,然后提交實驗報告,教師依據報告的內容給予成績評定。《嵌入式操作系統》是一門綜合性和實踐性比較強的課程,用通常的機考、筆試等方式,要求在限定的短時間內完成考核存在一定的難度,因此考核方式應該多樣化。將考核與教學方法相結合,對于課內實驗,要求在固定時間內完成命題,這類命題一般為設計驗證性的實驗和難度偏低的內容;對于課外實驗,考核命題可以由教師指定范圍,學生自己擬定題目的方式。對于參與項目的學生,可以由項目負責人給予成績評定。考核過程采用答辯和文字描述相結合的方式,學生提交實驗報告或者設計報告,教師通過提問的方式來考核學生完成報告的程度。考核的最終成績可以由以上3個方面來進行綜合評定。
6結語
高校教育必須面向市場,不斷地進行教學改革,提高教學質量。計算機專業更是一個較前沿的專業,新的概念和技術不斷出現,《嵌入式操作系統》就是在物聯網的新形式下開設的一門課程。鑒于嵌入式設計將操作系統和應用軟件一體化的特點,《嵌入式操作系統》實踐教學更要加快研究步伐,不斷探索,實驗內容通常每學年做一些修訂,三年左右做一次較大修訂。只有不斷地改革《嵌入式操作系統》課程的實踐教學環節,才能更好地培養動手能力強的學生,以適應物聯網市場的人才需求。
參考文獻參考文獻:
[1]張莉莉.嵌入式操作系統課程教學探討[J].軟件導刊,2012(12):190-191.
[2]羅蕾.嵌入式實時操作系統及應用開發[M].第3版.北京:北京航空航天大學出版社,2011.
篇7
實驗報告封面
實驗名稱:制作電子演示文稿
姓名:×××
專業年級:201x級××××學院××××專業
學號:
指導老師:任課教師姓名
201x~201x學年 第一學期
[實驗目的]
1。掌握PowerPoint文檔的創建、打開、關閉等基本操作
2。掌握幻燈片的插入、復制、刪除操作
3。掌握幻燈片文本的編輯方法
4。掌握設置背景,母版,應用設計模板的方法
5。掌握插入圖片,聲音,視頻和FLASH等操作
6。掌握幻燈片放映方法
[實驗環境]
Windows XP操作系統、OFFICE20xx
[實驗內容和實驗步驟]
1.在D:盤建立一個名為“我的專業.ppt”的演示文稿,包括三張幻燈片 。
1)第一張:版式為“標題幻燈片”,主標題為“我的專業”,副標題為“選擇因為喜愛” 步驟:
2)第二張:版式為“標題和文本”,標題內容為“專業簡介”,內容自己輸入。
步驟:
3)第三張:版式為“標題和兩欄文本”,標題內容為“開設課程”,內容自己輸入。 步驟:
4)將所有幻燈片切換設為“隨機”。
步驟:
2.將給定的Powerpoint文件a.ppt(在IE瀏覽器中輸入網址:
下載a.ppt)下載到本機后打開,再做以下操作:
1)將第一張幻燈片的背景紋理設為:畫布;
步驟:
2)在第二張幻燈片上,添加標題:古典名著;字體為:隸書;且居中對齊;
步驟:
3)將第三張幻燈片的版式更改為“標題和兩欄文本”,并設置幻燈片的切換效果為“溶解”。 步驟:
3.將給定的Powerpoint文件b.ppt(在IE瀏覽器中輸入網址:
下載b.ppt)下載到本機后
打開,再做以下操作:
1)將第一張幻燈片的版式設為:標題幻燈片;
步驟:
2)將第二張幻燈片的切換方式改為:階梯狀向左下展開;
步驟:
3)設置第二張幻燈片標題框在3秒后自動播放;
步驟:
4)在第三張幻燈片后插入一張新幻燈片,標題為:新幻燈片
步驟:
[實驗分析和實驗心得]
自己書寫。
[問題和建議]
篇8
一、引言
操作系統是計算機專業重要的核心課程,是一門理論性和綜合性較強的學科,該課程的理論學習是理解計算機系統工作、用戶與計算機系統交互和設計開發應用系統等基本知識結構的重要途徑,而其實驗教學則是學生得以深入理解和驗證課堂教學內容的直接和有效手段。
操作系統實驗教學能強化學生加深理解操作系統的概念、原理、組成等基本知識,能拓寬學生編程思路,培養動手操作能力與分析綜合能力,所以實驗教學的質量將直接影響學生的實踐能力、創新能力、合作能力等。[1]在創新驅動戰略的指引下進行操作系統實驗教學的改革,面向市場不斷創新實驗教學的各項機制,提高學生的創新能力和實踐能力,使實驗教學、人才培養和服務社會有機融合、協同發展,培養更符合就業市場對計算機類技術應用型需求的人才。
二、操作系統實驗教學現狀及存在的問題
1.實驗教學的重視度不夠
在教育教學中,大多數的實驗教學往往附屬于理論教學,對學生的實驗能力和創新精神的培養不夠重視。而學生在實驗環節中過于隨意,學習紀律渙散,遲到、早退、曠課、請假等情況屢見不鮮。由于實驗教學落不到實處,導致學生動手實踐能力薄弱,創新能力差,缺乏適應企業需求的專業知識和實踐能力,造成了學生就業困難的局面。
2.實驗教學內容設置問題[2]
操作系統課程的實驗教學內容主要是圍繞教材中的主要算法進行驗證性的實驗,但是僅僅靠這幾個算法很難讓學生直觀地理解眾多抽象的概念,且學生在這些實驗中學習的方法和技能并不能應用到實際項目開發中去,實驗成為一種形式,理論與實踐脫離嚴重。
3.實驗教學平臺的選擇問題[1,2]
操作系統課程的實驗教學環境選擇較難,大部分的教材都是以Unix系統為例,但是Unix安裝成本較貴,不太適宜用于學生實驗。Windows系統是學生較為熟悉的操作系統,但是其大部分源代碼不對外公開,學生實驗時無法深入到操作系統內部進行學習和探究,不利于學生對操作系統的工作原理的理解。選用Linux作為實驗操作系統,又因為學生對Windows系統較為熟悉,大部分沒有接觸過Linux系統,思維定勢難免會給學習和認知帶來難度,因而也限制了學生對操作系統工作原理的理解和創新能力的培養。
4.實驗教學類型和手段的單一[3]
目前的實驗教學大多是驗證型和仿真型的,注重的是理論知識的檢驗和證明。這種實驗以教師為中心,學生完全按照教師的意圖進行實踐操作,缺乏自己的思考和創新過程。實驗教學沒有發揮其應有的作用,還直接影響到學生的學習興趣和積極性,也因此使學生的創新思維和能力的培養和提高受到了限制。
5.缺乏高水平的、雙師型的實驗教學師資隊伍
高校教師大多是從學校到學校,缺乏校企溝通的理念和環境,缺乏企業工程化的實踐工作經驗,因而無法保證對學生的操作技能進行有效的指導,直接影響實踐教學的效果和應用型人才的培養。
針對上述操作系統實驗教學的現狀,筆者結合學校“第四批精品課程立項項目”――計算機操作系統課程建設中的實驗教學的改革實踐,提出了創新驅動戰略下實驗教學體系改革的思路以及一些具體的措施。
三、創新驅動戰略下實驗教學改革思路
1.推進產學研合作,構建實驗教學改革的條件
建立產學研技術創新戰略聯盟,為實驗教學體系結構的改革提供有力的支持。具體包括兩個方面的創新工作:
(1)創新制度建設,搭建高校和企業合作的外部環境。建立高校教師到企業掛職制度,改善教師的專業知識結構,通過結合技術創新的實踐,提高專業技能、積累經驗,從創新過程中加深教師對產業的認知。同時建立流動編制,從企業聘請集工程理論與技術專長為一體的工程師進行實驗指導,并在制度上促進這一機制的形成。這種制度建設的改革,培養了高素質的、“雙師型”實驗師資隊伍,使實驗教學教師的知識結構與時俱進,從而保證了實驗教學的質量。
(2)創新科研思路,將實驗教學與科研進行有機融合,促進產學研合作機制的可持續發展。以科技或市場為驅動,加強與企業的聯系,主動找準企業的關鍵點和興趣點,建立以企業需求為導向的科研項目。同時將科研與實驗教學相結合,以綜合性的工程實踐項目為主線,圍繞綜合實踐項目內容將項目模塊化,按照操作系統功能的五大模塊:進程管理模塊、存儲管理模塊、文件管理模塊、設備管理模塊、網絡管理模塊分配到實驗教學內容各環節中,從而將實驗教學與科研實現有機的融合。在提高教師的科研水平和業務水平的同時,實驗教學的效果和質量得到了顯著提高,實驗教學內容也更加貼近了產業技術對人才的需求。
2.創新實驗教學過程,分層次教學,逐步培養學生的學習能力
單一的驗證型實驗教學并不適合培養學生的獨立設計能力和綜合運用知識的能力,所以要創新實驗課程內容,精簡基礎和驗證性實驗,增加模擬設計性、規劃研究性和開放性的實驗,使實驗教學內容的層次分明。
在不同階段實施不同的實驗內容和形式,讓實驗教學循序漸進完成,以達到最佳實驗效果。具體實驗教學過程為:
(1)認知學習實驗階段。這種實驗主要是驗證型實驗,包括基本的應用級和系統管理級的實驗。如,操作系統的安裝、文件操作等,實驗中以教師輔導為主,教會學生如何安裝虛擬機、如何加載虛擬機鏡像、熟悉操作系統各項功能、掌握文件操作命令等。
(2)設計性實驗階段。以學生自學為主,學生自己編程模擬實現操作系統的某些功能模塊。主要的實驗有:動態優先權進程調度算法、時間片輪轉調度算法、頁面置換算法等。當學生遇到問題時,并不直接替他們排除故障,而是提出產生故障的幾種可能性,鼓勵學生提出問題和不同的見解并自行加以解決。例如,在動態優先權進程調度算法設計實驗中,學生的設計思路不明確時,可從幾個方面來幫助他們理清思路:是否考慮了進程的阻塞時間、在運行進程已占用CPU時間以達到所需運行時間時是否進程還未到達,等等,提出多種可能的情況,讓學生自行思考、設計并解決問題。
(3)研究創新性實驗階段。在進行設計性實驗后,學生已經從書本逐步走向實踐,消除了對編寫軟件系統的心理障礙,提高了編程水平。此階段是以提高素質為主,激發學生創新思維能力,強調的是主動研究式的實驗學習過程。可選的實驗內容較多,如進程創建、內存分配、文件的讀/寫等,教師給出其中較為有意思部分的源代碼,要求學生閱讀,然后讓學生在此基礎上自行提出課題和基本思路,并利用圖書館、網絡等查找相關資料后獨立完成。學生在這種研究性學習過程中主動獲取知識,開動腦筋進行課題的思考和設計,因而有效地培養了學生的創新精神和實踐能力。
(4)開放性實驗階段。[4]最后,安排學生進行開放性實驗,培養學生的主體作用和主動學習能力。可讓學生自成小組,在虛擬機平臺上,從裸機開始,通過實例利用匯編與C語言編寫一個小型的操作系統的框架,包括處理機管理、存儲器管理、文件管理和簡單的設備管理。團隊協作分析和設計仿真操作系統的架構和各項功能、制定實驗計劃、編寫代碼并注釋說明、分析實驗結果、撰寫說明書和實驗報告,最后由團隊統一提交。這樣的實驗有助于學生把握操作系統的精髓,真實地消化書本知識,同時培養和提高了學生自主學習能力、獨立思考的探索精神和團隊協作的能力。
3.創新實驗教學方法和手段,激發學生的興趣
在實驗中創新實驗教學方法和手段,使用多樣的教學方法和手段并靈活應用來提高學習的積極性、激發學習的興趣。
(1)借助合適的實驗平臺。在實驗教學平臺選擇上,采用的是在Windows操作系統上運行虛擬機方式,利用一些虛擬機軟件,如VisualPC,再運行Linux系統。通過學生較為熟悉的Windows操作系統的相關功能來對比學習Linux操作系統,這樣的實驗平臺更容易讓學生更易掌握和理解操作系統的工作原理。
(2)多媒體輔助實驗教學。利用多媒體技術為實驗教學提供交互式教學環境,讓學生清楚實驗的內容、重點、目的等,促進學生對知識的學習興趣和熱情。例如在銀行家算法實驗中,可以設計動態的場景,借助多媒體的應用,讓學生充分了解在該實驗中什么情況下會發生死鎖現象,又如何設計實現安全狀態來避免該現象的發生等。
(3)啟發式實驗教學。實驗教學中可采用啟發式的教學方法,加強學生對抽象知識的理解和掌握。例如在操作系統教學內容中有多處調度算法,如進程調度算法、虛擬內存的頁面調度算法、磁盤調度算法等,在實驗教學中可采用對比分析的啟發式教學方法,讓學生對不同內容的調度算法進行比較,從而對實現操作系統課程教學的目的起到很好的促進作用。
(4)案例驅動式實驗教學。實驗中通過具體案例來挖掘學生的創新潛能,要有意識地從應用及工程實踐的角度,用案例、項目的方式對實驗內容以多角度描述,然后讓學生在案例基礎上進行改進和創造。如,將開源操作系統Linux作為實例教學,引導和幫助學生進行深入分析,通過案例分析和“做中學”,使學生深刻理解操作系統中的原理和算法和實現技術,讓學生在內核中添加或修改功能。培養了學生的創新能力,同時也培養了學生對系統軟件進行分析、設計和開發的能力。
4.創新實驗教學考核評價模式
探索、創新更加合理的實驗教學考核評價模式,不再單純地以上交的實驗報告為最終成績的評定。具體的方法有:提高實驗成績在總成績中的比例,使得學生更加重視實驗教學;對不同階段的實驗題目設置一定的權重,學生根據能力選擇題目;深入學生實驗項目中,隨時提問,考察學生的學習態度、設計思路等;程序驗收時,抽選部分學生進行答辯,考核學生的學習效果;結合學生平時的各項表現,批改實驗報告,給出實驗教學最終成績。
四、結語
操作系統實驗教學活動可以幫助學生加深對操作系統原理和算法的理解和掌握,讓學生通過實驗過程體會到計算機軟硬件體系結構和操作系統的關系,以及計算機體系結構對操作系統發展的影響等。我們在學校立項的精品課程建設項目中,立足本校,更新實驗教學理念,深化實驗教學體系結構的改革,培養學生對技術發展的跟蹤意識,提高學生的學習能力、實踐能力、創新能力,鍛煉他們的團隊協作精神,以達到與企業的無縫鏈接,為社會培養能適應市場需求的創新型與技能性的計算機專業技術人才。
參考文獻:
[1]孫述和等.操作系統實驗教學研究與探索[J].計算機教育,2010,(1).
篇9
The Research and Practice on the Bilingual Teaching of Operation System(OS) Course
TIAN Jun, LI Dan
(School of Electronic and Information Engineering,Xuzhou Institute of Technology, Xuzhou,Jiangsu 221008,China)
Abstract:Bilingual teaching of Operation System(OS)course is the reform and innovation of teaching methods, on the basis of original teaching requirements.Then the students can master the operating system design principles and methods through the bilingual study about technical terms and algorithms. In the basis of the training goal of OS bilingual teaching,this article is focused on the three major aspects of the Practice Teaching Reform:teaching material,teaching methods and assessment methods.
Key words:operation system; bilingual teaching; discovery of teaching practice
隨著科技發展與國際交流的關系日益密切,我國對雙語人才的需求日漸增加,國家教育部在2001年提出加強大學本科教學的12項措施,其中要求各高校在三年內開設5%---10%的雙語課程,并引進原版教材和提高師資水平[1]。在專業課授課中引入國外原版教材以及技術資料,開展相關課程的雙語教學近年來已成為徐州工程學院提高本科教育教學質量的重要措施。作者承擔了我校“操作系統”雙語課程建設的工作,該文就將從操作系統雙語教學實踐中遇到的問題以及采取的改革措施進行初步的探討。
1 OS開展雙語教學的必要性
從計算機科技研發的發展過程看,重要的技術革新都源于歐美,這也局限了我們所接觸的核心學術論文以及軟硬件產品的技術資料等都是以英文來編寫,計算機專業外語也形成了一個相對獨立的體系[2,3],因此對計算機專業課程開設雙語教學是實現我校計算機教育與國際接軌的重要手段,勢在必行。
《操作系統》是為計算機應用技術和軟件技術專業方向學生開設的專業必修課。該課程作為一門原理課程,各類算法以及學科前沿的相關資料都是英文版的,通過雙語的學習,有益于學生在獲得專業知識的同時掌握計算機專業外語,具備查閱英文文獻的能力。此外,該課程開設在計算機專業本科學生的大三學年,考慮到學生已經具備了一定的英語聽說讀水平和專業基礎知識,也是比較適當的。
2本課程雙語教學的目標
5考核方式
以往的教學中考試成績只是考慮了期末成績以及平時作業、實驗報告,難以體現出學生對OS理論知識的運用能力,因此在本課程的考核方式中引入了專題討論成績,實現了考核方式的多元化。每章節作業以及實驗報告占10%,期末考試成績50%,主要考察學生對OS原理的掌握;專題討論占40%,而專題討論又細化四部分(發現問題10%,算法改進15%,算法實現5%,比較分析10%),考察學生的實踐能力。改革后課程成績考核方法如圖3所示。
6結論
對比我校近兩屆學生操作系統課程綜合成績,尤其是畢業設計選題及完成情況,學生平均課程成績以及畢業設計選題的前沿性都有顯著提高。說明學生較好的掌握了操作系統原理理論知識,培養了學生發現問題解決問題的能力,學生查閱英文文獻的能力也得到培養和提高。可見,我校操作系統雙語教學立足專業注重實踐的基本方案是可行有效的,本方案的實施也為我校其他課程雙語課程的開展具有一定參考價值。
參考文獻:
[1]蘇曉云.地方高校雙語教學課程質量保障體系的研究與實踐[J].中國電力教育,2010(19).
篇10
培養實用型、創新型人才,提升軟件研發能力,構建系統、完善的理論及實踐專業課程體系架構,一直是計算機專業課程和專業基礎課程的根本目標。為積極落實計算機學院計算機科學與技術專業的專業培養目標,強化對學生應用編程實踐能力的體系化培養,進一步構建、充實計算機軟件、硬件緊密結合的基本知識架構,貫徹系統、可持續發展的培養思路和課程體系,在C語言程序設計、面向對象技術、計算機基礎等先修課程基礎上,加強學生軟件開發能力的培養,設置并開設程序設計實踐課程“計算機設計項目實踐”。
課程設計方案針對專門的實用編程技術及其應用實現方法,進行特定系統功能的設計,確立實現方法,完成程序編碼與調試。進一步加強程序設計基礎理論技術的掌握,提升程序設計的深度和難度,培養學生設計實現較大程序的能力。為專業素質和能力的培養奠定扎實基礎。
本課程的設計項目對方案設計目標、設計內容、設計思路、實施基本方法進行系統規劃,學生能夠了解面向具體應用的程序設計基本方法,明確系統功能、設計、實現的基本流程,理解一個實用應用程序的基本架構,掌握設計實現的應用程序的運行流程。在選擇C語言編程環境及其方法的基礎上,能夠基于庫函數或類庫函數接口,運用具體編程方法,完成應用程序的設計、編碼等開發工作。選擇學生感興趣的項目,構建用戶自己的應用程序代碼,達到熟練運用編譯環境工具、開發較大型應用程序的目的。
課程方案設計的基本原則在于,通過精選應用系統的需求分析、功能設計、編碼、實現、測試、提交等基本環節,展現軟件開發基本過程,運用實用編程技術及其應用實現方法,培養學生實際開發經驗,提升學生應用編程實力,鞏固學生程序設計基本規范、基本流程的理解和實現技術,達到充實程序設計的應用知識體系、激發學生的學習興趣和主動性、開拓學生的專業視野和實際工作能力的目的。
2教學方案設計
2.1應用系統的設計
通用操作系統的文件系統為用戶數據的存儲和讀寫等提供必備支持,應用程序設計也需要有關文件操作功能的支持,文件系統及其各項實現技術具有實用價值,C語言程序設計課程中,文件系統相關章節對文件的基本操作、編程接口、實現方法等內容進行了簡要介紹,學生具備一定的理解文件系統功能和處理文件的知識基礎[1]。
參考相關資料,使用高級語言實現的一個文件系統,作為一個應用原型系統,基于該系統,完成軟件項目設計的各個過程[2]。
首先通過分析文件系統基本功能,理解文件系統的設計步驟,及設計實現一個簡單、功能完善的模擬文件系統SMFS。該文件系統功能包括文件操作、文件存儲管理、文件系統一致性和容錯性管理[3]。
SMFS文件系統采用C語言設計實現。通過分析原型程序的數據結構設計、算法設計實現,掌握該應用軟件的模塊劃分與集成,掌握編譯環境、運行環境的構建與使用。
首先對現有原型系統初步改錯并進行調試,查看運行結果,分析并找出原型系統仍然存在的問題。
再根據所設計的文件系統應用程序方案功能,進行設計和修改,對應用程序進行二次開發,完成應用程序的設計、編碼、調試、運行。
方案的實施使學生應用能力得到鍛煉和提高。學生可了解軟件開發規律、開發思路和實現技術。
2.2開發平臺的選擇
使用PC機、Windows操作系統、高級語言編譯工具及其環境,作為硬件、軟件開發運行平臺。選擇Turbo C或 Borland C作為編譯工具。開發、運行平臺易建。原型軟件程序已通過初步調試,可運行,為學生的調試、二次設計、開發提供有利支持和保證。方案可行性、可操作性較強。
3教學內容
3.1文件系統分析
以UNIX操作系統文件系統為例,對文件系統管理數據結構及基本構成進行必要分析,了解文件系統基本工作方式及其功能實現的基本方式。動手實現一個模擬文件系統――文件應用系統。
3.2文件應用系統規劃
文件應用系統設計功能包括,提供一個文件操作接口函數庫,基于該函數庫實現一個簡單的文件系統,提供高效的存儲管理功能。該文件系統提供較好的容錯性能,系統崩潰時進行數據的一致性檢測,確保數據不丟失。
基于文件函數庫的基本文件操作函數,設計實現一個簡單的單用戶文件系統。文件系統功能設計簡化為以下幾個模塊。
Naming:將文件名映射為文件占用的磁盤塊,空閑磁盤塊管理的內存與磁盤數據結構,稱為磁盤空閑表。該表可跟蹤磁盤上每一個磁盤塊分配使用情況,該表永久存放在磁盤上,文件系統啟動時放入內存,指導文件的空間分配。
Allocated:磁盤塊的分配記錄,即文件系統的物理組織。采用索引節點方式進行文件分配磁盤塊的管理。每個文件擁有唯一I節點,每個文件的屬性信息存放在該文件的I節點中。此外,目錄文件中包含該目錄下子目錄名及其I節點或文件名及其I節點,用于按目錄逐級查找,將文件名映射到I節點上。
文件操作包括:創建文件;修改文件;刪除文件等。
容錯性、一致性的設計。文件系統的恢復策略。確保文件數據的完整性、持久性。
3.3文件應用系統數據結構設計
全局數據結構包括:文件系統文件最大數量;文件系統最大空間;文件系統操作提示符――字符串;文件系統名稱――文件名表示;文件系統文件指針;文件I節點――結構體類型;文件I節點指針;文件I節點表――數組。
3.4文件函數庫設計
文件系統應能永久存儲數據,物理上存儲數據的是磁盤。為簡單起見,使用一個文件模擬磁盤。將文件磁盤塊大小設定為4KB,每個磁盤塊有唯一編號,每個文件以磁盤塊為單位存儲數據。
磁盤函數庫模擬真實的硬件接口,設計為函數實現,函數接口提供良好的調試接口,為將磁盤驅動器接口映射為模擬的磁盤函數庫函數接口。磁盤函數庫設計如下函數:
void creat_file_system()
函數功能:創建一個文件,包括文件管理數據和實體數據結構,表示文件系統。
void open_file_system();
函數功能:打開或創建文件系統,錯誤返回error;正確則返回文件系統指定的文件管理數據和實體數據結構位置指針。
int new_a_file(char *file_name)
函數功能:搜索文件系統,查出可用空閑管理塊,存入指定文件名,返回管理數據位置指針,否則,返回-1。
int del_a_file(char *file_name)
函數功能:搜索文件系統,查出指定文件,從文件系統中刪除該文件,返回該文件位置指針,否則返回-1。
void list()
函數功能:搜索文件系統,只要文件名不為空,輸出文件名和文件長度,文件計數。
int open_a_file(char *file_name)
函數功能:搜索文件系統,如指定文件存在,返回指定文件所在的序號。
int offset_by_i(int i)
函數功能:返回第i個文件在文件系統存儲空間的偏移量。
int write(char *file_name,int offset,char *str,int count)
函數功能:打開文件file_name,寫入文件,寫入文件系統管理塊信息。
int read(char *file_name,int offset,int count,char *str)
函數功能:打開文件file_name,讀出該文件字符串內容。
void print_help()
函數功能:輸出系統文件操作提示信息,供用戶選擇。
int main()
函數功能:啟動文件系統,進入幫助界面,用戶可以輸入各項操作代碼,循環執行對應文件操作,或結束系統運行。
合法操作包括:①創建文件系統;②新建一個文件;③刪除一個文件;④顯示文件列表;⑤寫入文件;⑥輸出文件;⑦退出文件系統。
3.5應用文件系統運行分析
測試中,查看存在的設計缺陷。如,文件系統中文件數量的檢測和控制;文件長度的檢測和控制;文件系統啟動確認等[4]。
3.6應用文件系統的再設計方案
根據學生對原型系統的理解和掌握程度進行自行設計。測試改進方案的系統運行的完善性和健壯性。
4教學過程
本課程課堂授課課時為8學時,上機實踐學時為24學時。教學采用講課、上機交替進行的方式。便于學生及時把教師交付的每個任務貫徹落實、設計實現,教師能將學生實踐中出現的問題,利用課堂教學及時反饋、說明、給出指導意見。
教師在授課期間,對設計方案的設計思想、設計方法、實現系統功能、實現技術及方法、編譯運行環境等進行簡要講解、說明。學生在上機實踐環節過程中,完成項目方案的設計實現,通過接受教師檢查、驗收、答辯等環節,提交實驗報告。鍛煉和提升分析,設計,文字、語言表述,實現,工具運用等能力。
該方案教學過程可設計為三個階段。
4.1授課內容設計
該階段完成進行系統開發的技術理論、程序架構、軟硬平臺搭建等準備工作。從項目設計目標、方案設計、實施過程及要求、編程技術分析、系統功能等方面進行授課。指導學生奠定扎實基礎,為進行下一階段的實踐作好準備。為了比較系統全面了解有關軟件開發的基本概念、基本過程,設計授課內容按系統功能驅動的方法展開,緊密結合實現編程技術,引導學生逐步系統了解開發一個特定應用系統所必需掌握的基本概念和基本技術。
教師在8學時的授課中,首先向學生明確說明方案系統的功能,然后進行功能的分解,直至完成模塊的劃分,講解需要的編程技術,實現模塊功能,學生在此基礎上,設計模塊內部的算法流程,并實現、調試、運行軟件系統。
4.2實踐內容設計
上機實踐24學時。實踐環節以課題組模式進行工作,利于互相幫助,培養合作能力和意識。學生以課題組為單位進行方案論證、設計、開發環境構建、分工、單元開發、調試、系統運行,完成項目實踐報告的編寫。組長是項目主持人。該過程能使學生明確軟件開發的各個環節,結合自身條件對每個環節進行自己的設計實現。課題組學生可按以下實施內容及步驟開展工作,并按計劃接受教師的檢查和評估。
每2人自由結為一個課題組。可以均衡學生的能力,達到互助的目的。確立方案的功能及設計基本方法,設計模塊函數功能及其編程接口。
安裝開發環境、調試開發工具。對于開發使用的 C/C++語言環境及工具、函數等作必要的調試。
分析設計系統功能,劃分每位同學的模塊分工明細。完成各自的功能模塊設計、編碼實現、調試,并接受教師檢查、評估。
課題組完成系統集成調試。提交調試報告和系統使用說明書,并接受教師軟件驗收。
項目實踐上機環節的內容可操作性強、實施要求具體、目標明確,便于對學生的研究能力、協調協作能力、軟件系統分析設計能力、編碼能力,解決問題能力、語言、書面表述能力等作一個綜合的培養、評價、考核。
5評價體系
對學生方案設計實現的評價,旨在通過實踐的各個環節的監督檢查,深入了解學生的進展情況、方案實施效果、出現的問題等,為學生提供指導、建議,考核設計與實現結果是否達到方案目標的要求。
針對項目實踐課程的目標和特點,必須規劃、確立學生成績評價標準。否則,課程開設效果難以保證。對學生方案設計實現的評價,旨在通過實踐的各個環節的監督檢查,深入了解學生的進展情況、方案實施效果、出現的問題等,為學生提供指導、建議,考核設計與實現結果是否達到方案目標的要求。
課程實施過程分為:課堂教學,課題組完成系統分析設計的理解、模塊功能設計與劃分、編程實現與調試、軟件驗收、答辯等。
學生成績評價體系設計根據每位學生的各個部分的實施情況進行評估。學生應提交規定格式、內容的文檔、實驗報告,完成編碼、調試、軟件驗收,學生在階段檢查時對設計實現內容進行講解、答辯。答辯對學生的系統總體設計模式與運行模式進行考核,確認學生是否對軟件系統的設計流程、運行流程及其出現的問題,有全面的理解。敦促學生全面系統地完成項目實踐整個實施計劃與實施過程。
學生成績評價體系包括文檔成績評估設計和軟件驗收答辯兩個部分。
文檔成績評估設計。組長及其組員負責組織編寫實驗報告,實驗報告的詳細格式及內容的規范要求見附錄。其中包括分析設計、系統調試、系統運行手冊、設計實現的模塊和調試等內容。根據實驗報告的可讀性、創新性、結構內容完整性、工作量等因素,評估每位學生的文檔成績。
軟件驗收答辯。根據教師提出的系統需求和設計方案建議,以課題組為單位進行系統分析設計,每人獨立進行模塊詳細設計及編碼調試工作,根據提交的模塊設計實現文檔和調試文檔,學生對模塊使用的數據結構及算法設計進行講解、答辯。教師根據講解簡明、思路清楚、工作量飽滿、使用技術有獨到之處等方面給予成績評定。根據提交的實驗報告進行軟件系統驗收,根據系統的運行功能實現、界面設計、編碼技術運用等評估學生的驗收成績。考核分值分布如表1所示。
表1考核分值分布表
考核內容百分比
系統分析設計報告10%
模塊詳細設計報告10%
原運行系統調試報告15%
系統調試報告用戶手冊15%
階段檢查25%
驗收檢查25%
6教學文檔及環境支撐
計算機設計項目實踐包括24學時的上機操作,需要完成課程軟件系統開發與文檔組織編寫,是以學生自主完成為主,教師指導為輔的實踐過程。為配合師生的需求,提高學生的工作效率,支持文檔的編寫、系統的設計實現、編碼、調試等諸多具體要求,一個方便實用的文檔及具體要求支持體系十分必要。教學文檔可提前提交給學生參考,一般包括:①授課教案;②實驗指導書;③應用軟件開發環境;④課程實踐環節參考手冊;⑤網上教學資源平臺;⑥教學大綱;⑦實驗大綱;⑧授課計劃;⑨實驗上機學期計劃表。
7課程實踐環節參考手冊設計
特別設置一個實踐環節參考手冊,對課程設計所有環節具體要求和實施辦法作一說明。為學生方便地編寫文檔和規范地完成實施過程,提供規范文檔體系參考與指導,使學生的成果體系完整、有據可查。
附錄一,實驗報告規范模板;附錄二,實驗任務書;附錄三,報告文檔內容格式參考;附錄四,進度安排及成果提交;附錄五,實驗報告撰寫規范;附錄六,成績評估表。
8結語
操作系統技術對于大學計算機專業課體系教育的重要性勿容置疑,實踐教學對理論教學有延伸和提升的作用,其教學重要性、迫切性、科學性越來越得到國內外同行的共識,如何將實用技術引入實踐教學
環節一直是教學中探索的重點和難點。本方案的創新性在于系統全面地設計了實踐類課程的各個環節,提供了較全面的方案設計內容,有一定的參考價值。方案具有較好的可操作性和可移植性,可供其他計算機專業課的實踐環節參考。該方案已應用于教學,對學生拓展應用編程技術,進行軟件開發具有較好的效果。
該方案具有技術實用、平臺易建、功能明確、難度適中的特點。通過方案的實施,學生系統軟件分析能力和應用軟件的開發能力能得到一個全面的實踐和鍛煉。
參考文獻:
[1] 譚浩強. C語言程序設計[M]. 北京:清華大學出版社,2006(6):150-210.
[2] 盧軍. Linux0.01內核分析與操作系統設計[M]. 北京:清華大學出版社,2004(6):139-198.
[3] 孟慶昌,牛欣源. 操作系統[M]. 2版. 北京:電子工業出版社,2009(11):183-216.
[4] 趙斌. 軟件測試技術經典教程[M]. 北京:科學出版社,2007(5):1-59.
Research and Implementation of Programming Practice Project
NIU Xin-yuan
篇11
“信息安全導論”是面向計算機科學與技術專業和網絡工程專業學員的一門專業技術課程。隨著部隊信息化建設的迅猛發展,部隊對信息系統的依賴日益加重,信息安全問題日益突出,因此在利用信息化提升部隊戰斗力的同時,必須研究信息安全的自身特點,尋找信息安全問題的解決之道。
本課程要求學員了解信息安全的重要性和復雜性、理解信息安全的基本概念和基本原理、掌握信息安全的基本技能和基本方法。而實驗教學的主要目的是讓學員通過實驗能夠掌握基本的信息安全防護技能,了解系統存在的安全隱患,樹立牢固的安全意識,培養良好的安全習慣,另一方面提高實踐操作和應用能力。
課程的課內學時為32課時,課外學時即實驗學時為12學時。課程內容基本覆蓋了信息安全領域所涉及的主要分支和領域,共包括信息安全緒論、密碼學基礎、計算機系統安全、計算機網絡安全、計算機應用安全和信息系統安全工程六章內容。而課外實驗由于學時有限,只能在課程內容中進行適當的選擇。
2實驗教學內容選擇
由于時間有限,應該優先選擇最基本、最常用的安全技術方面的實驗,并按照所需技術水平的高低進行階梯式的安排。
根據這一原則在整個課程中計算機系統安全章節、計算機網絡安全章節中涉及的內容成為實驗內容安排的重點。
2.1計算機系統安全的實驗內容選擇
在計算機系統安全章節中的計算機操作系統的安全內容成為實驗內容的首選。計算機操作系統是應用軟件同系統硬件的接口,其目標是高效地、最大限度地、合理地使用計算機資源。沒有系統的安全就沒有信息的安全。操作系統作為系統軟件中最基礎的部分,其安全問題的解決最為關鍵。目前操作系統主要分為 Windows系列的操作系統和類Unix的操作系統。雖然這些操作系統符合C2級安全級別,即自主安全保護和受控存儲控制,但操作系統仍存在不少安全漏洞,而大多數惡意代碼正是針對操作系統存在的安全漏洞進行攻擊,因此導致出現很多安全問題。
為了讓學員了解操作系統存在的安全漏洞以及攻擊者入侵操作系統的手段,加強自身的安全意識,我們設計了一個Windows 2000漏洞入侵實驗。實際上,對于大部分的安全問題,我們可以通過對操作系統的安全管理配置操作來進行防范。在實驗內容中,我們選擇Windows 2000和Linux操作系統進行操作系統的安全管理配置操作的學習。
2.2計算機網絡安全的實驗內容選擇
在計算機網絡安全章節中防火墻技術、嗅探技術和VPN技術被選擇為實驗的內容。
許多來自網絡的遠程攻擊可以通過防火墻技術來進行防范。防火墻是在兩個網絡之間執行訪問控制策略的一組硬件和軟件系統,其目的是保護本地網絡的通信安全。使用防火墻進行網絡的安全防護是最常用的安全技術。據統計,全球接入因特網的計算機中有1/3以上處在防火墻保護之下。因此,理解防火墻的工作原理,并能根據定義的安全策略配置相應的安全規則是學習安全技術的一個重點。
嗅探技術主要通過將網卡設置為混雜模式來接收和分析所有經過網卡的數據包。而利用嗅探器竊取別人的用戶密碼和秘密信息是惡意攻擊者常用的手段。通過學習嗅探器的使用,可以使學員們了解數據包的基本結構,從而加深對后階段實驗的理解,同時增強數據包在網絡上傳輸時需要安全保護的意識。
在學習嗅探器使用的實驗中,學員已經認識到數據包在網絡上傳輸的不安全性。而VPN技術是實現網絡安全傳輸的一種安全技術。VPN稱為虛擬專用網,它是在因特網上實現的一個專用網絡。由于利用VPN技術構建的虛擬網絡中數據包是加密傳輸的,從而能夠保證信息在網絡傳輸的機密性。通過學習VPN 服務的配置和連接的建立技術,可以加深學員對VPN技術的理解。
最后,學員通過學習本門課程不斷地提高自身信息安全技術水平,并按照如圖1的階梯式實驗內容的安排進行學習,能夠了解入侵操作系統的典型攻擊手段、掌握主流操作系統的安全管理配置操作、掌握防火墻的基本配置和使用、學會嗅探工具的使用和掌握VPN服務的配置和連接。
3實驗內容設計
根據圖1的安排,整個實驗課程的內容包括六個實驗。每個實驗所占課時為2個課時,為了讓學員們能夠在短時間達到實驗要求,實驗內容主要以驗證性的實驗為主,部分提高型的設計實驗為輔。驗證性的實驗內容的實驗步驟比較詳細,力爭學員在實驗課時間內完成所需實驗,而提高型的實驗內容用于部分感興趣的同學在課后進一步提高技術水平。
3.1Windows 2000漏洞入侵的實驗內容
操作系統存在許多安全漏洞如緩沖區溢出,很多攻擊都是針對這些漏洞進行的。此次實驗的操作系統選擇的是Windows 2000。實驗的主要目的是讓學員們了解典型入侵過程,提高安全意識。針對漏洞入侵的典型過程如圖2。在入侵典型過程中安裝后門和清除入侵痕跡不屬于必備環節,而是較高級的攻擊者采取的方法。 此次實驗的主要內容是設計兩個可驗證步驟的漏洞入侵過程,讓學員可以在實驗課時內按照實驗步驟完成實驗。這兩個入侵過程分別為:1433溢出漏洞攻擊和弱口令入侵。第一個實驗包括了典型入侵過程的主要環節。第二個實驗進一步提高學習內容,包括了安裝后門的環節。
3.2操作系統的安全配置實驗內容
針對攻擊者的攻擊,實際上可以通過對操作系統進行安全管理配置的操作來進行防范。操作系統的安全配置實驗包括Windows的安全管理配置和Linux的安全管理配置兩次實驗。
這兩次實驗的具體操作雖然不同,但實驗的內容是相同的。每次的實驗內容包括三部分:系統用戶管理、系統服務管理和系統安全配置。
多用戶的操作系統通過將用戶進行分組的管理,每組賦予不同的權限,來限制用戶對系統資源的使用,從而防止非授權用戶進行非法操作。通過系統用戶管理的學習,學員不僅可以掌握如何增加和刪除用戶,而且還可以學會如何修改用戶權限。
由于針對操作系統的漏洞進行攻擊是攻擊者的主要手段,因此操作系統應遵循最小特權原則,盡可能關閉不需要的服務。通過系統服務管理,學員可以知道如何根據需求關閉特定的服務和端口。
為了防御攻擊,操作系統還可以進行專門的安全配置。審核策略就是其中的一項重要的功能。審核策略可以對特定事件如登陸失敗的事件進行日志記錄。系統管理員通過對日志記錄進行分析可以對攻擊者的攻擊行為進行事后追蹤。同時,管理員還可以發現攻擊者的不良企圖,從而加強對系統的防護。
3.3嗅探工具Sniffer的使用的實驗內容
利用嗅探器竊取別人的用戶密碼和秘密信息是惡意攻擊者常用的手段。此實驗的目的是通過學習典型嗅探器sniffer的使用了解數據包的結構,加深學員對后階段實驗的理解,并增強學員對數據包在網絡傳輸要進行保護的安全意識。
整次實驗包括如何利用嗅探器sniffer對報文進行捕獲、解碼和編寫報文的內容。其中報文捕獲和解碼是基本學習內容,而編寫報文為提高內容。
報文捕獲的實驗內容如下:
利用sniffer工具捕獲指定目標機發出的所有數據包。
利用sniffer分析捕獲的報文。讓學員兩人一組:一人在目標機上登錄某網站并輸入用戶名和密碼;一人捕獲其發出的數據包并分析出用戶名和密碼。
報文解碼的實驗內容包括熟悉各種協議報文結構并對捕獲的IP報文主要是報文頭部的各種信息進行分析。
編寫報文的實驗內容是利用sniffer提供的報文編輯功能,自行編寫一個IP報文并發送到合作伙伴的目標機上,并由合作伙伴捕獲進行分析。
3.4防火墻iptables的啟用與配置的實驗內容
使用防火墻是防范攻擊者攻擊的一種最常用的安全技術。此實驗的目的是通過啟動配置linux系統下的防火墻iptables,理解防火墻的工作原理,并能根據定義的安全策略配置相應的安全規則。
此次實驗需要兩臺機器,可驗證的實驗步驟如下:
(1) 一臺機器啟動防火墻iptables,充當服務器。
(2) 服務器清空防火墻的過濾規則表。
(3) 另一臺機器充當客戶機,使用掃描器nmap對服務器進行掃描,發現其開放的服務,并使用其提供的服務。
(4) 服務器配置報文過濾表使得客戶機不能訪問服務器提供的任何服務。
(5) 客戶機再次訪問服務器,已不能使用其提供的服務。
3.5VPN服務器配置與連接的實驗內容
VPN技術是在因特網上構建的虛擬專用網絡。它通過一套復雜的協議來保證數據包在網絡上進行安全的傳輸。此實驗的目的就是通過對學習VPN服務器的配置和連接建立來加深學員對VPN概念的理解。
實驗內容選擇學習VPN中最常用的一種訪問連接方式——遠程訪問連接方式。通過虛擬專用網的遠程訪問方式,VPN客戶端可以通過IP網絡(例如因特網)與充當VPN服務器的遠程訪問服務器建立虛擬點對點連接。這種方式最適用于公司內部經常有流動人員遠程辦公的情況。
可驗證的實驗步驟包括:
(1) 配置和啟動Windows 2000 Server下的VPN服務器。
(2) 授予用戶通過VPN連接服務器的權限。
(3) 授權用戶與VPN服務器建立VPN連接。
4教學效果
信息安全導論實驗課程的每次實驗都需要提交實驗報告來考察實驗教學的效果。從提交的實驗報告來看,所有學員都在既定時間內完成了實驗規定的基本內容,而部分學員在課外時間完成了提高部分的內容。信息安全導論課程的總評分中筆試占70%,實驗成績占30%。整個課程的成績在良好以上的學員占 30%,中以上的學員占80%,達到預期目標。
篇12
該精品課的創新點主要有以下幾點:
提高學生創新性培養。該精品課是以當前嵌入式技術的主流方向和技術特點為主要內容,具有技術先進、涉及領域寬等特點。通過本課程學習,啟發學生的創新能力,將新技術應用到不同領域。對此,我們嘗試采取了相應的考試方法,要求學生期末遞交實驗報告及創新課題立項報告及閉卷考卷,綜合評定成績。
加強學生的實踐能力培養。本課程的學時32 學時;講課16學時;實驗16學時。從學時安排加強實驗環節,加強學生動手能力鍛煉。提供學生良好的實驗條件及設備。
把教學內容與各種競賽緊密配合。使學生能把學來的內容盡快地應用到競賽實踐中,提高學生的學習興趣。
增強學生的合作能力、團隊精神。通過本課程學習可以使學生掌握教學內容,另外也為學生參加各種競賽提供良好基礎。我們在此課的基礎上組織興趣小組活動。為選拔組隊參加各種競賽提供基礎。學生通過活動提高了合作能力及團隊精神。
進一步提高學生的交流能力、與人交往能力。通過幾次競賽中學生的表現,我們發現學生的表達能力、溝通能力欠佳。盡管有好的創意,但不能很好地展示給聽眾。所以,我們通過報告問答等形式加強學生表現力。
教學內容與世界知名大學同步。積極跟進世界知名大學教材及課件內容,經常與知名大學聯絡交流,參加各種高層次學術活動,把最新技術引入教學內容。
精品課程建設實施辦法
教學內容與最新技術同步。始終保持教學內容不斷更新,緊跟當前嵌入式技術的主流方向和技術特點,不斷更新教學內容及教學軟件包內容。注重教學內容的寬口徑、基礎性及創新性人才的培養。
教學方法特色鮮明,形式多樣。充分利用多媒體技術、網絡技術,在網上提供教學多媒體課件及相關參考文件,便于學生學習。在課堂教學之外,組織學生參加課外興趣小組,從中選拔優秀學生參加各種全國、亞太及全球性的嵌入式系統設計大賽,提高和激發學生學習的積極性、創造性。實驗內容具有基礎性和創造性。
媒體課件及教材系統化。幾年來不斷更新教學內容,不斷完善本科生、碩士生及不同層次的教學課件,已經有兩本相應教材出版。
不斷完善教學實踐基地建設。進一步加強教學實踐環節基地建設,務求實效,把有限資金合理使用。擴大學生直接參與的范圍及時間,做到每人一套獨立完成,提高獨立工作能力。
不斷加強與著名企業之間的聯系。在鞏固與原有大型企業合作的基礎上,進一步加深合作范圍,派出實習學生,加強合作科研,為進一步改進教學內容提供充實材料。
做好精品課教材建設。與精品課配套的教材已申報國家“十一五”規劃教材。教材暫定名《嵌入式操作系統實用教材-基于Windows CE》。該教材在多年教學課件基礎上加以改進編寫,教材內容與課件內容相配套,便于學生閱讀。
建設好教學網站。在原有教學網站的基礎上,進一步充實教學內容,增設習題、考題、教學課件、試驗指導書、實驗報告及教學相關軟件、硬件資源。
精品課程相關教材介紹
精品課程相關教材正在編寫中,該教材已申報國家“十一五”規劃教材。教材暫定名《嵌入式操作系統實用教材-基于Windows CE》。
該教材是為電子類和非計算機本科學生學習嵌入式操作系統編寫的。教材本著實用性強、內容簡練、通俗易懂原則,以Windows CE為例,介紹嵌入式操作系統原理、嵌入式應用軟件的設計方法及經驗。
學生在學習閱讀本書之前,了解計算機程序設計的基本概念,熟悉C 語言程序設計、對計算機基本原理有初步了解即可。
教材主要章節:
第一章 嵌入式系統概述
第二章 Windows CE系統結構
第三章 模型、進程和線程
第四章 內存管理
第五章 存儲管理
第六章 設備管理
第七章 用戶界面與圖形子系統
第八章 應用程序設計
第九章 Windows CE 6.0簡介
第十章 VxWorks簡述
第十一章 PXA255 概述
主講教師個人簡歷及成果
王金剛,1970-2005年在天津大學電信學院任助教、講師、教授。
擔任過課程:
本科生主講課程:電路分析基礎,專業英語、電子線路的計算機輔助分析、嵌入式系統等;
2002-2005年擔任本科生主講課程“嵌入式實時系統原理”課程(100人選修/每年);
2006年擔任本科生主講課程“嵌入式實時系統原理”課程 (120人必修)+(100人選修)。
碩士生課程:2002-2005年開始擔任碩士生主講課程“嵌入式實時系統原理及應用”(30人選修/每年)。近五年來主要從事“嵌入式系統原理及應用”的教學內容、教學方法研究,尤其對不同層次學生的教學內容選取,優秀本科學生的選拔及本科學生參加各種嵌入式系統大賽的培訓等作了深入研究。
負責組織學生參加了Intel支持的“2004年嵌入式系統專題電子大賽”,并獲得了二等獎和三等獎。
負責組織學生參加了Intel支持的“2004年嵌入式系統專題電子大賽”,并受聘為大賽評委。
負責組織學生參加了“2005年微軟支持的嵌入式系統挑戰賽”。
2006年帶隊參加“微軟嵌入式大學生競賽”,進入世界前三十名,到美國西雅圖參加決賽。
近五年主持了六部關于嵌入式系統的編著、譯著及教材的編寫,在2003-2004年間已陸續出版。
有六篇論文被EI收錄、五篇論文被ISTP收錄。
近五年關于教育教學的立項及成果:
1.2005年度“教育部-微軟精品課程”建設項目立項;
2.國家發改委-微軟聯合推出的“國家發改委-微軟嵌入式系統教學包”嵌入式系統原理部分編寫(微軟-國家發改委),2005年;
3.微軟“嵌入式操作系統Windows CE”優秀課程建設”項目(微軟),2004年;
4.“嵌入式系統教材建設立項”教材清華大學出版社2003年已出版(天津大學立項),2003年;
5.“嵌入式系統課程建設”項目(天津大學立項),2003年;
6.獲得Intel公司的“Intel大學計劃”支持,2003年;
7.獲得美國風河公司的“大學伙伴”支持,2002年;
8.“電路分析基礎雙語教學多媒體教學軟件”項目(天津大學立項),2003年;
9.“電路分析基礎雙語教學”項目(天津大學立項),2003年;
篇13
1引言
“操作系統原理”課程的重要性可以用Avi Silberschatz在其經典教材《Operating Systems Concepts》中的描述來概括:“操作系統是任何計算機系統的基本組成部分,因而操作系統課程也是任何計算機科學相關教育的基本組成部分”。該課程主要講述通用操作系統應該具備的功能、工作原理及相關算法。應該說課程內容并不艱深晦澀,但該課程卻是一門公認的難教、難學的課程。難教的原因是其內容多且散、理論性強又抽象。難學的原因是教學內容看不見摸不到,學生難以理解掌握。
在理論教學時以學生常用的操作系統如Windows、Linux等作為案例進行分析對輔助學生掌握課程內容有一定作用。但由于理論課時有限,教學內容多,Windows、Linux等案例的分析很難展開;而且案例分析時學生看到的主要是程序代碼,不能直觀的反映教學內容。因此設計直觀、合理的課程實驗成為保證“操作系統原理”課程教學效果的重要手段。
國內外操作系統課程實驗教學采用的系統有Minix、Nachos、ToyOS、Linux等。Minix、Nachos、ToyOS均不是通用操作系統,而是為教學目的而開發的,功能不完善,存在較多BUG,安裝復雜,不宜作為操作系統課程實驗平臺。Linux是一個完整的通用操作系統,且開放源代碼,是一個可行的實驗平臺。但目前大多數高校機房由于承擔了多門課程的上機任務,往往安裝的是Windows操作系統。若同時安裝雙系統則給機房管理造成困難,因此Linux的實驗平臺在建設上也存在困難。
Windows作為目前使用最普遍的操作系統,以之作為實驗平臺可極大的激發學生的學習興趣。但Windows代碼不公開,給課程實驗設置帶來困難。作為微軟共享源代碼計劃的一部分,微軟了WAP(Windows Academic Program),提供了一套簡單但完整的操作系統內核源代碼,老師和學生可以更清晰的了解Windows內核工作機制,并可以動手對之進行修改或添加新的底層功能,成為一個理想的操作系統課程實驗平臺。
在微軟亞洲研究院資助下,我們開始了WAP在本科“操作系統原理”課程實驗教學中的應用探索。本文以學生對實驗教學內容的興趣及需求分析為依據,介紹了基于WAP的“操作系統原理”課程實驗教學的方案設計和內容設計。應用WAP后,學生對“操作系統原理”課程實驗興趣大大增加,學習的主動性、動手能力得到提高,也更深刻的理解掌握了課程內容。
2學生興趣與需求調研
目前各高校普遍開設了“操作系統原理”課程實驗,實驗內容的設置也各有不同,為切實了解學生對于“操作系統原理”課程實驗的興趣與需求,從而有針對性的設置實驗平臺及實驗內容,在2008年對正在開設“操作系統原理”課程的210名本科生進行了問卷調查,同樣的調查也于2009年在部分本科生中開展。
圖1是學生希望使用的實驗平臺情況。不出意料,絕大多數學生(93%)希望使用Windows作為實驗平臺,這與學生平時的使用經歷有關,100%的學生在日常生活中就使用了Windows,所以他們也希望“操作系統原理”課程實驗選擇熟悉的Windows平臺。雖然有4%的學生希望使用Linux或Unix,3%的學生希望使用Nachos或其它系統,但這些學生也比較熟悉Windows。此外,調查中,學生也普遍表現出對了解Windows的結構、工作原理的興趣。因此,以Windows作為課程實驗平臺,符合了學生的意愿,能夠最大程度的激發他們的學習興趣,保證教學效果。
實驗的目的是輔助學生形象深刻的理解課程重點,內容應涵蓋課程的主要知識點。實驗類型根據實驗的難度、知識要求及對學生的輔助作用的不同,一般可分為驗證性實驗、設計性實驗和綜合性實驗。為了達到實驗效果,應該設置不同難度的實驗以使學生循序漸進的掌握知識。 圖2是學生希望的實驗難度情況。有過半的學生希望實驗能夠有一定的難度,其中有10%的學生希望能有難度較大的實驗,只有16%的學生希望實驗能簡單。這一結果對不同類型實驗的設置有指導意義,考慮到大多數學生希望實驗難度在中等以上,即使是驗證性實驗也必須考慮實驗內容的設置要保證不能太簡單;同時設計性實驗和綜合性實驗可以有一定的難度,但只有10%的學生希望實驗有較大難度,因此,難度也不能太大。
3WAP的應用
依據對學生的問卷調查結果,決定選擇Windows作為課程實驗平臺。但Windows代碼不公開,給課程實驗設置帶來困難。微軟的WAP(Windows Academic Program)為解決這一困難提供了可行的途徑。因此,最終確定基于WAP設計實驗教學方案和內容設計,開展Windows平臺下的“操作系統原理”課程實驗教學的探索。
3.1WAP介紹
WAP是微軟公司的一項讓學生通過閱讀Windows內核源碼來學習“操作系統原理”的項目,它分為三部分:
(1) 課程資源包CRK(Curriculum Resource Kit)
CRK是一套Windows系統教學資源包,包括大量驗證性實驗、實驗工具及Windows課程講義。這些資源均以Windows XP和Windows 2003為基礎。CRK基本覆蓋了操作系統課程的所有知識點。但主要提供驗證性實驗。
(2)Windows研究內核WRK(Windows Research Kernel)
WRK是微軟為高校操作系統課程提供的可修改和跟蹤的操作系統實驗教學平臺。它給出了Windows內核的大部分代碼,可以對其進行修改、編譯,并且可以用這個內核啟動Windows操作系統。這一平臺是進行設計性或綜合性實驗的理想平臺。
(3) 項目實驗工具ProjectOZ
一套探索實際操作系統運行情況的工具,其實是一個運行在用戶模式下的內核接口程序。在這個環境下學生可以查看實際運行的Windows的各種數據結構、處理過程等。同時提供了一個運行于其上的簡單但完整的示例操作系統BasicOZ。全部程序以C和匯編語言源碼形式提供。
3.2實驗教學內容設計
以WAP為平臺,對“操作系統原理”課程實驗教學的方案和內容進行了設計。實驗教學共計32學時,主要希望達到這樣一些目的:
理解并掌握現代操作系統的工作原理和機制;
會分析和解讀Windows操作系統內核源代碼;
能從Windows內核源代碼級修改和擴充操作系統功能。
根據難度的不同,每個實驗或由學生單獨進行或分組進行。為使學生重視,實驗成績占課程成績30%,并且每個實驗要求學生在給老師演示結果的同時提交實驗報告和設計文檔。實驗教學內容設置了8個必做實驗和一定數量的自選實驗,覆蓋了“操作系統原理”課程的基本內容,并具有不同的難度。必做實驗如表1所示。
4結束語
以WAP作為“操作系統原理”課程實驗教學平臺已有兩個學期。結果表明WAP平臺極大的吸引了學生的興趣,學生有很大的熱情去閱讀分析Windows的源代碼,并嘗試進行修改。大部分課堂較認真的學生基本能獨立的完成所有實驗。由于WAP平臺所提供資源很豐富,下一步將探索在WAP下開設更多難度適中、學生有興趣的實驗;另外也將研究基于WAP平臺開展“操作系統原理”課程設計。
參考文獻:
[1] 黃廷輝,王宇英,崔更中.“操作系統”課程實踐教學的研究與實踐[J]. 計算機教育,2007(11):18-20.