作業系統實驗指導書

2021-03-04 09:40:40 字數 3736 閱讀 2407

信電工程學院周巨集生

2023年3月

目錄前言 1

實驗要求 2

實驗準備 3

實驗一程序管理 4

實驗二儲存管理 6

實驗三裝置管理 9

實驗四檔案管理 13

「作業系統」是計算機及相關專業的必修課程,在學習計算機作業系統理論的同時,通過實驗可以加強對作業系統基本原理的理解。讓學生通過上機實驗驗證計算機作業系統的難點,增加學生對計算機作業系統的領悟和掌握。使學生對計算機作業系統的工作原理和工作過程有深刻的體會和理解,同時又鍛鍊了程式編制能力和學生創造能力。

本課程實驗共設8個學時,主要由程序管理、儲存管理、裝置管理、檔案管理等4個主要部分所組成,每個實驗2學時。要求學生熟悉開發環境visual c++ 6.0,由於學生c語言基礎較並且不平衡,本課程實驗安排了實驗準備(由學生課下完成),主要了解掌握visual c++ 6.

0程式設計環境、掌握c語言程式設計的基本編制方法和技巧,為後繼的實驗做準備。這些實驗能很好地解決配合作業系統課程教學來指導學生進行實踐的問題。

1. 學生按照實驗要求,上機前寫好上機實驗預習報告,內容包括:實驗的目的、內容、實驗步驟(程式)。

2. 上機實驗時按實驗要求完成每乙個實驗的內容。

3. 課後認真書寫實驗報告。實驗報告採用統一的實驗報告紙書寫。應包括:實驗目的和要求、實驗內容、實驗步驟、實驗記錄(程式)、實驗結果和總結幾部分。

4. 遵守機房紀律,服從輔導員教師指揮,愛護實驗裝置。

5. 實驗課程不遲到。如有事不能出席,所缺實驗一般不補。

一. 實驗目的

熟悉熟悉開發環境visual c++ 6.0基本程式設計環境

掌握c語言的基本程式設計方法

二. 實驗內容與要求

(一) visual c++ 6.0的基本操作

1、 visual c++ 6.0的基本操作

2、 執行乙個c語言程式的一般過程

3、 編輯並儲存乙個c語言程式

4、 編譯、鏈結源程式檔案

5、 執行與檢視程式結果

(二) c語言程式的基本程式設計方法

1、 資料型別、運算子、表示式

2、 資料的輸入、輸出

3、 c語言程式的基本控制結構

4、 陣列

5、 函式與程式結構

6、 指標

7、 結構與聯合

8、 檔案操作

一、實驗目的

通過本實驗熟悉windows系統提供的執行緒建立與撤銷等api系統呼叫,掌握windows系統環境下執行緒的建立與撤銷方法,了解在windows環境下是如何進行執行緒排程的。

二、實驗內容

1. 熟悉開發環境visual c++ 6.0;

2. windows系統環境下執行緒的建立與撤銷方法;

3.程式設計:在主線程中呼叫createthread( )建立子執行緒,並在子執行緒中顯示類似「thread is running !」等字樣。

三、實驗準備知識

相關的api函式的函式原型:

1. 執行緒建立函式 handle createthread();

handle createthread(

lpsecurity_attributes lpthreadattributes, // pointer to security attributes

dword dwstacksizeinitial thread stack size

lpthread_start_routine lpstartaddress, // pointer to thread function

lpvoid lpparameterargument for new thread

dword dwcreationflagscreation flags

lpdword lpthreadidpointer to receive thread id

);執行緒函式原型 dword winapi thread1proc(lpvoid lpparameter )

2. 執行緒撤銷函式

void exitthread(

dword dwexitcode // exit code for this thread

);功能:撤銷乙個執行緒。該函式將終止執行緒的執行,並導致作業系統清除該執行緒使用的所有作業系統資源。但是,c + +資源(如c + +類物件)將不被撤消。

說明:如果在主線程函式(main函式)中呼叫exitthread,那麼應用程式的主線程將停止執行。但是,如果程序中至少有乙個執行緒還在執行,該程序將不會終止執行。

3. 執行緒終止函式terminatethread();

4. 執行緒掛起函式sleep();程序主動放棄剩餘的時間片。

5. 關閉控制代碼函式closehandle( )。

說明:關閉乙個物件控制代碼,只是將相應物件的引用數減一,並不意味著終結該物件,除非引用數減至零。

四、程式源**及注釋

#include

#include

static handle hthread1=null; //存放建立的子程序的控制代碼

static handle hthread2=null;

dword dwthreadid1; //存放建立的子程序的id

dword dwthreadid2;

dword winapi thread1proc(lpvoid); //子執行緒函式的宣告

dword winapi thread2proc(lpvoid);

int main() // 主線程

//子執行緒的實現

dword winapi thread1proc(lpvoid lpparameter)

dword winapi thread2proc(lpvoid lpparameter)

實驗二儲存管理

一、實驗目的

掌握分頁儲存管理的基本原理及分頁儲存管理中的位址變換過程

二、實驗內容

1、複習分頁想念管理的基本概念、基本原理、及位址變換過程

2、編制乙個模擬位址變換過程的程式

三、參考程式

頁式虛擬儲存管理中位址轉換和缺頁中斷的模擬*/

include"stdio.h"

define n 64/*模擬實驗中假定的頁表長度*/

define length 10

struct

int lnumber;/*頁號*/

int flag;/*表示該頁是否在主存,"1"表示在主存,"0"表示不在*/

int pnumber;/*該頁所在主存塊的塊號*/

int write;/*該頁號是否被修改,"1"表示修改過,"0"表示末修改過*/

int dnumber;/*該頁存放在磁碟上的位置,即磁碟塊號*/

page[n];/*頁表定義*/

int m;/*m為該作業在主存中的主存塊塊數*/

int page_length;/*頁表實際長度*/

int p[length];/*存放在主存中頁的頁號*/

int head;/*主存中頁號佇列*/

page_interrupt(lnumber)

int lnumber;

int j;

printf("發生缺頁中斷*%d\n",lnumber);

淘汰頁*/

j=p[head];

p[head]=lnumber;

head=(head+1)%m;

if(page[j].write==1)

printf("將頁%d寫回磁碟第%d塊\n",j,page[j].dnumber);

作業系統實驗指導書

目錄實驗一 windows程序初識 3 實驗二程序管理 4 實驗三程序同步的經典演算法 7 實驗四儲存管理 10 實驗一 windows程序初識 1 實驗目的 2 實驗內容和步驟 執行結果 如果執行不成功,則可能的原因是什麼?步驟4 執行結果 如果執行不成功,則可能的原因是什麼?因為此程式是個死迴圈...

作業系統實驗指導書

計算機作業系統 實驗指導書 實驗報告內容規範 實驗報告內容要求如下 課程名稱 實驗日期 實驗名稱 實驗型別 班級 姓名 學號 指導教師 一 實驗目的及要求 本次實驗所涉及並要求掌握的知識點。二 實驗環境 本次實驗所使用的裝置和軟體。三 實驗內容 本次實驗的具體內容。四 實驗步驟 按照實驗過程列出實驗...

作業系統實驗指導書

李玲娟李剛編寫 李玲娟審核 南京中醫藥大學資訊科技學院 2005年10月 編者說明 軟體技術是 作業系統 最重要的計算機系統軟體,同時也是電腦科學與技術專業的一門核心專業基礎課,其發展極為迅速。學習計算機軟體技術,特別是計算機作業系統技術,除了需要刻苦努力外,還需要掌握軟體和作業系統的原理與設計技巧...