當前位置:首頁 » 存儲配置 » 操作系統存儲管理實驗報告

操作系統存儲管理實驗報告

發布時間: 2022-08-01 23:22:26

Ⅰ 操作系統大型實驗,求個用C++實現的文件系統代碼+實驗報告,

首先研究linux源代碼樹的頂層目錄,它通常(但不總是)位於/usr/src/linux-。我們不會研究得過於詳細,因為Linux源代碼經常會發生變化,但是,我們將嘗試讓給出的信息足以找出特定驅動程序或函數的位置。Makefile:這個文件是整個源代碼樹的頂層makefile。它定義了很多實用的變數和規則,比如默認的gcc編譯標記。Documentation/:這個目錄中包含很多關於配置內核、運行ramdisk等任務的實用信息(但通常是過時的)。不過,與不同配置選項相應的幫助條目並不在這里——它們在每個源代碼目錄的Kconfig文件中。arch/:所有與體系結構相關的代碼都在這個目錄以及include/asm-目錄中。在此目錄中,每種體系結構都有自己的目錄。例如,用於基於PowerPC的計算機的代碼位於arch/ppc目錄中。在這些目錄里,可以找到底層內存管理、中斷處理、早期初始化、匯編常式,等等。crypto/:這是內核本身所用的加密API。drivers/:按照慣例,在此目錄的子目錄中可以找到運行外圍設備的代碼。包括視頻驅動程序、網卡驅動程序、底層SCSI驅動程序,以及其他類似的驅動程序。例如,在drivers/net中可以找到大部分網卡驅動程序。將一類驅動程序組合在一起的某些更高層代碼,可能會(也可能不會)像底層驅動程序本身那些包含在同一目錄中。fs/:通用文件系統的代碼(稱做VFS,即VirtualFileSystem)和各個不同文件系統的代碼都可以在這個目錄中找到。ext2文件系統是在Linux中最常廣泛使用的文件系統之一;在fs/ext2中可以找到讀取ext2格式的代碼。並不是所有文件系統都會編譯或運行;對某些尋找內核項目的人而言,更生僻的文件系統永遠都是理想的候選者。include/:在.c文件的開頭所包含的大部分頭文件都可以在這個目錄中找到。asm-目錄下是與體系結構相關的包含(include)文件。部分內核構建過程創建從asm指定asm-的符號鏈接。這樣,無需將其固定編碼到.c文件#include就可以獲得用於那個體系結構的正確文件。其他目錄中包含的是非-體系結構-相關的頭文件。如果在不只一個.c文件中使用了某個結構體、常量或者變數,那麼它可能應該放入其中一個頭文件中。init/:這個目錄中的文件包括main.c、創建早期用戶空間(earlyuserspace)的代碼,以及其他初始化代碼。可以認為main.c是內核「粘合劑(glue)」。在下一部分將深入討論main.c。早期用戶空間提供了Linux內核引導起來時所需要的功能,而這些功能並不需要在內核本身運行。ipc/:IPC的意思是進程間通信(interprocesscommunication)。它包含了共享內存、信號量以及其他形式IPC的代碼。kernel/:不適合放在任何其他位置的通用內核級代碼位於此處。這里有高層系統調用代碼,以及printk()代碼、調度程序、信號處理代碼,等等。文件名包含很多信息,所以可以使用lskernel/,並非能常准確地猜到每個文件的功能。lib/:這里是對所有內核代碼都通用的實用常式。常見的字元串操作、調試常式,以及命令行解析代碼都位於此處。mm/:這個目錄中是高層次內核管理代碼。聯合使用這些常式以及底層的與體系結構相關的常式(通常位於arch//mm/目錄中)來實現虛擬內存(Virtualmemory,VM)。在這里會完成早期內存管理(在內存子系統完全建立起來之前需要它),以及文件的內存映射、頁高速緩存管理、內存分配、RAM中頁的清除(還有很多其他事情)。net/:這里是高層網路代碼。底層網路驅動程序與此層次代碼交換數據包,這個層次的代碼可以根據數據包將數據傳遞給用戶層應用程序,或者丟棄數據,或者在內核中使用它。net/core包含大部分不同的網路協議都可以使用的代碼,和某些位於net/目錄本身中的文件一樣。特定的網路協議在net/的子目錄下實現。例如,在net/ipv4目錄中可以找到IP(版本4)代碼。scripts/:這個目錄中包含的腳本可用於內核的構建,但並不將任何代碼加入到內核本身之中。例如,各種配置工具可以將它們的文件放在這里。security/:在這里可以找到不同Linux安全模型的代碼,比如NSASecurity-EnhancedLinux以及套接字和網路安全鉤子函數(hooks),以及其他安全選項。sound/:這里放置的是音效卡驅動程序和其他與聲音相關的代碼。usr/:此目錄中的代碼用於構建包含root文件系統映像的cpio-格式的歸檔文件,用於早期用戶空間。

Ⅱ 計算機操作系統基本操作及常見命令的實驗報告

搜索有很多大綱的:對具體步驟:
舉例:查看硬體信息;
辦法一:右擊桌面上的我的電腦,屬性,常規選項卡有cpu.和內存信息;
辦法,右擊我的電腦,管理,設備管理器,所有硬體都可見:網卡是什麼,顯卡是什麼,硬碟多大,光碟機叫什麼;

Ⅲ 求高人幫做操作系統的實驗報告,只需把實驗內容寫下即可

#include<algorithm>
#include<iomanip>
#include<conio.h>
using namespace std;
struct PCB
{
string p_name;//程序名
int super;//優先順序
double ndtime;//需要時間
double runtime;//運行時間
string state;//狀態
bool operator<(const PCB& nd)
{
return super>nd.super ;
}
};
int main()
{
int n,i,j,nn=0;
cout<<"\n請輸入進程總個數?";
cin>>n;
PCB *PB=new PCB[n];
for(i=0;i<n;i++)
{
cout<<"\n\n進程號No."<<i<<":"<<endl;
cout<<"\n輸入進程名:";
cin>>PB[i].p_name ;
cout<<"\n輸入進程優先順序數<0~99>:";
cin>>PB[i].super ;
cout<<"\n輸入進程運行時間:";
cin>>PB[i].ndtime ;
nn +=PB[i].ndtime ;
PB[i].runtime =0;PB[i].state ="W";
}
sort(PB,PB+n);
int k=PB[0].super ;
queue<PCB> *que=new queue<PCB>[k+1];
for(i=0;i<n;i++)
que[PB[i].super ].push (PB[i]);
cout<<setfill(' ');
cout<<setiosflags(ios::left);
for(i=0;i<nn;i++)
{
PCB PP=que[k].front() ;
int kk;
for(kk=0;kk<n;kk++)
if(PP.p_name ==PB[kk].p_name) break;
PB[kk].state ="R";
cout<<"\n\n按任意鍵繼續......";
getch();
cout<<"\n\n*-*-*-*-*-*-*-* The excute number:"<<i+1<<" *-*-*-*-*-*-*-*";
cout<<"\n\n*-*-*-*-*-*-* 當前正在運行的進程是: "<<PP.p_name <<" *-*-*-*-*-*-*";
cout<<"\n\np_name state super ndtime runtime";
cout<<"\n |"<<setw(10)<<PP.p_name <<" |"<<setw(6)<<PB[kk].state <<" |"<<setw(6)
<<PP.super <<" |"<<setw(11)<<PP.ndtime <<" |"<<PP.runtime ;
PP.runtime +=1;PB[kk].runtime +=1;
if(PB[kk].super >0) PB[kk].super -=1;
que[k].pop ();
cout<<"\n\n*-*-*-*-*-*-* 當前就緒隊列狀態為: *-*-*-*-*-*-*";
for(j=0;j<n;j++)
if(PB[j].state =="W")
{
cout<<"\n\np_name state super ndtime runtime";
cout<<"\n |"<<setw(10)<<PB[j].p_name <<" |"<<setw(6)<<PB[j].state <<" |"<<setw(6)
<<PB[j].super <<" |"<<setw(11)<<PB[j].ndtime <<" |"<<PB[j].runtime ;
}
if(PP.runtime ==PP.ndtime )
{
PB[kk].state ="F";
cout<<"\n\n時間片到期,此時進程["<<PB[kk].p_name <<"]已完成.";
if(que[k].empty ()&&k>0) k--;
}
else
{
PB[kk].state ="W";
if(k>0) que[k-1].push (PB[kk]);
else que[k].push (PB[kk]);
if(que[k].empty ()&&k>0) k--;
}
}
cout<<"\n\n進程已全部完成."<<endl<<endl;
return 0;
}

整個程序都是模擬「最高優先順序」進程調度演算法的程序啊
我是用C++寫的 你用編譯器編譯下 然後運行下 就知道怎麼回事了

輪轉法很簡單,,,就不寫了
不給我分數我覺得很冤枉 因為為了這個程序我寫了1個多小時
沒有功勞也會苦勞啊

Ⅳ 操作系統題目

1A.為內外存容量之和

Ⅳ 操作系統 設備管理 實驗報告

本書根據計算機操作系統課程的教學大綱要求,結合目前高校使用的主要教材,全面11.4.5實驗報告 11.5實驗四設備管理實驗 11.5.1實驗目的與要求 11.5.

Ⅵ linux操作系統實驗總結報告怎麼寫好看

1) 啟動vmware虛擬機
2) 單擊「文件—>新建?虛擬機」,出現「安裝虛擬機向導」對話框,單擊「下一步」,選「典型」;
3)「客戶機操作系統」選擇安裝Linux,版本選「RedHat Linux」,單擊「下一步」;
4) 在「虛擬機名稱」處:輸入「LINUX」, 創建指定位置(不要選擇在C盤)的磁碟映像文件linux.vmx單擊「下一步」,出現「網路連接」 設置界面,選擇「使用橋接網路」 單擊下一步;
5) 磁碟容量為8G, 單擊「完成」;
6)編輯虛擬機設置:
雙擊設備欄「CD-ROM」,選擇「使用ISO鏡像」;指定鏡像文件路徑,例如: D:\RedHatLinux_ISOFiles\RedHatLinux9_i386_disc1.iso ;
Floppy設備欄取消「打開電源時連接「
7) 配置步驟完成,啟動系統。

熱點內容
ios應用上傳 發布:2024-09-08 09:39:41 瀏覽:439
ios儲存密碼哪裡看 發布:2024-09-08 09:30:02 瀏覽:871
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:653
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:744
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:173
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:780
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995