国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

這篇具有很好參考價(jià)值的文章主要介紹了操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、實(shí)驗(yàn)?zāi)康?/h2>

掌握文件的存取方法;掌握文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);掌握存儲空間的分配和回收;掌握磁盤管理與調(diào)度。

二、實(shí)驗(yàn)內(nèi)容

用程序模擬磁盤的調(diào)度過程,并計(jì)算各磁盤調(diào)度算法包括先來先服務(wù)算法、最短尋道時(shí)間優(yōu)先算法、掃描算法和循環(huán)掃描算法的平均尋道長度。
本實(shí)驗(yàn)是模擬操作系統(tǒng)的磁盤尋道方式,運(yùn)用磁盤訪問順序的不同來設(shè)計(jì)磁盤的調(diào)度算法。實(shí)現(xiàn)的磁盤調(diào)度算法有FCFS,SSTF,SCAN,CSCAN和 NStepSCAN算法。設(shè)定開始磁道號尋道范圍,依據(jù)起始掃描磁道號和最大磁道號數(shù),隨機(jī)產(chǎn)生要進(jìn)行尋道的磁道號序列。選擇磁盤調(diào)度算法,顯示該算法的磁道訪問順序,計(jì)算出移動的磁道總數(shù)和平均尋道總數(shù)。按算法的尋道效率進(jìn)行排序,并對各算法的性能進(jìn)行分析比較。

三、數(shù)據(jù)結(jié)構(gòu)

3.1 函數(shù)以及功能

函數(shù)名稱 功能描述
void FCFS(int b[],int n,int init) 先來先服務(wù)算法(FCFS)
void SSTF(int b[],int n,int k) 最短尋道時(shí)間優(yōu)先算法(SSTF)
void SCAN1(int b[],int n,int k) 掃描算法(SCAN)由外向里
void SCAN2(int b[],int n,int k) 掃描算法(SCAN)由里向外
void FCFS(int b[],int n,int init) 循環(huán)算法(C—SCAN)
int main() main函數(shù)

四、程序流程圖

操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

五、實(shí)驗(yàn)代碼

#include<stdio.h>
#include<math.h>
#define SYSINFO "文件管理" // 系統(tǒng)信息 
#define AUTHOR "孤燈" //作者 

void FCFS(int b[],int n,int init)
{
	int i = 0;
	int s = 0;
	int sum = 0;
	int a[20];
	for(i = 0; i < n; i++)
	{
		a[i] = b[i];
	}
	s = init;
	sum = 0;
	for(i = 0; i < n; i++)
	{
		printf("第%d次訪問的磁道:%d\n", i+1, a[i]);
		sum += abs(s - a[i]);
		printf("sum=%d\n", sum);
		s = a[i];
	}
	printf("平均尋道長度:%f\n", sum * 1.0 / n);
}

void SSTF(int b[],int n,int k)
{
	int i = 0;
	int j = 0;
	int s = 0;
	int sum = 0;
	int p = 0;
	int a[20];
	for(i = 0; i < n; i++)
	{
		a[i] = b[i];
	}

	for(i = n-1; i >= 0; i--)
	{
		s = a[0];
		p = 0;
		for(j = 0; j <= i; j++)
			if(abs(a[j] - k) < abs(s - k))
			{
				s = a[j];
				p = j;
			}
		a[p] = a[i];
		printf("第%d次訪問的磁道:%d\n", n-i, s);
		sum += abs(s - k);
		printf("sum=%d\n", sum);
		k = s;
	}

	printf("平均尋道長度:%f\n",sum * 1.0 / n);
}

void SCAN1(int b[],int n,int k)
{
	int i = 0;
	int j = 0;
	int s = 0;
	int sum=0;
	int p = 0;
	int biaoji = 0;
	int a[20];
	for(i=0; i<n; i++)
	{
		a[i] = b[i];
	}

	for(i = n-1; i >= 0; i--)
	{
		biaoji = 0;
		for(j = 0; j <= i; j++)
		{
			if(a[j] - k <= 0)
			{
				biaoji=1;
				p=j;
				break;
			}
		}
		if(biaoji==1)
		{
			s=a[p];
			for(j=0; j<=i; j++)
				if(a[j]<k&&k-a[j]<k-s)
				{
					s=a[j];
					p=j;
				}
			a[p]=a[i];
			printf("第%d次訪問的磁道:%d\n",n-i,s);
			sum+=k-s;
			printf("sum=%d\n",sum);
			k=s;
		}
		else
		{
			s=a[0];
			for(j=0; j<=i; j++)
				if(a[j]-k<=s-k)
				{
					s=a[j];
					p=j;
				}
			a[p] = a[i];
			printf("第%d次訪問的磁道:%d\n",n-i,s);
			sum += abs(k-s);
			printf("sum=%d\n",sum);
			k = s;
		}
	}

	printf("平均尋道長度:%f\n",sum * 1.0 / n);
}

void SCAN2(int b[],int n,int k)
{
	int i = 0;
	int j = 0;
	int s = 0;
	int sum=0;
	int p = 0;
	int biaoji = 0;
	int a[20];
	for(i = 0; i < n; i++)
	{
		a[i] = b[i];
	}

	for(i = n - 1; i >= 0; i--)
	{
		biaoji = 0;
		for(j = 0; j <= i; j++)
		{
			if(a[j] - k >= 0)
			{
				biaoji = 1;
				p = j;
				break;
			}
		}
		if(biaoji == 1)
		{
			s = a[p];
			for(j = 0; j <= i; j++)
				if(a[j]>k&&a[j]-k<s-k)
				{
					s=a[j];
					p=j;
				}
			a[p]=a[i];
			printf("第%d次訪問的磁道:%d\n",n-i,s);
			sum += s-k;
			printf("sum=%d\n", sum);
			k = s;
		}
		else
		{
			s = a[0];
			for(j = 0; j <= i; j ++)
			{
				if(k - a[j] <= k - s)
				{
					s = a[j];
					p = j;
				}
			}

			a[p] = a[i];
			printf("第%d次訪問的磁道:%d\n", n - i, s);
			sum += abs(k - s);
			printf("sum=%d\n",sum);
			k = s;
		}
	}
	printf("平均尋道長度:%f\n",sum * 1.0 / n);
}

void  C_SCAN(int b[],int n,int k)
{
	int i = 0;
	int j = 0;
	int s = 0;
	int sum=0;
	int p = 0;
	int biaoji = 0;
	int a[20];
	for(i = 0; i < n; i++)
	{
		a[i] = b[i];
	}

	for(i = n-1; i >= 0; i--)
	{
		biaoji=0;
		for(j = 0; j <= i; j++)
		{
			if(a[j]-k <= 0)
			{
				biaoji=1;
				p=j;
				break;
			}
		}
		if(biaoji == 1)
		{
			s = a[p];
			for(j = 0; j <= i; j++)
			{
				if(a[j] < k && a[j] - k > s - k)
				{
					s = a[j];
					p = j;
				}
			}
			a[p] = a[i];
			printf("第%d次訪問的磁道:%d\n", n-i, s);
			sum += s - k;
			printf("sum=%d\n", sum);
			k = s;
		}
		if(biaoji==0)
			break;
	}
	s = a[0];
	for(j = 0; j <= i; j++)
	{
		if(a[j] >= s)
		{
			s = a[j];
			p = j;
		}
	}

	a[p] = a[i];
	printf("第%d次訪問的磁道:%d\n", n - i, s);
	sum += k - s;
	printf("sum=%d\n", sum);
	k = s;
	i --;
	for(i; i >= 0; i --)
	{
		s = a[0];
		for(j = 0; j <= i; j ++)
		{
			if(a[j] - k >= s - k)
			{
				s = a[j];
				p = j;
			}
		}
		a[p] = a[i];
		printf("第%d次訪問的磁道:%d\n", n-i, s);
		sum += s - k;
		printf("sum=%d\n", sum);
		k=s;
	}

	printf("平均尋道長度:%f\n", sum * 1.0 / n);
}
int main()
{
	int a[20] = {0};
	int i = 0;
	int n = 0;
	int k = 0;
	int k1 = 0;
	int init = 0;
	printf("請輸入需要訪問的磁道總數(shù):");
	scanf("%d", &n);
	printf("要輸入的訪問序列要有重復(fù)值和距離相等的值,例如:初始值為5,序列中必須含有5,4,6,這樣的序列。\n");
	for(i = 0; i < n; i++)
	{
		printf("需要訪問的磁道%d:",i+1);
		scanf("%d",&a[i]);
	}

	printf("請輸入指針?biāo)诖诺?");
	scanf("%d",&init);
	k = 1;
	while(k)
	{
		printf("**********************************\n");
		printf("%s\nDesigned By:%s\n", SYSINFO, AUTHOR);
		printf("**1.先來先服務(wù)(FCFS)**\n");
		printf("**2.最短尋道時(shí)間優(yōu)先(SSTF)**\n");
		printf("**3.掃描算法(SCAN)**\n");
		printf("**4.循環(huán)算法(C-SCAN)**\n");
		printf("**0.退出**\n");
		printf("**********************************\n");
		printf("請?jiān)谙旅孑斎肽倪x擇:");
		scanf("%d", &k);
		switch(k)
		{
			case 1:
				FCFS(a, n, init);
				break;
			case 2:
				SSTF(a, n, init);
				break;
			case 3:
				k1=1;
				while(k1)
				{
					printf("**1.移動臂由里向外**\n");
					printf("**2.移動臂由外向里**\n");
					printf("**0.返回上一層**\n");
					printf("**********************************\n");
					printf("請?jiān)谙旅孑斎肽倪x擇:");
					scanf("%d", &k1);
					switch(k1)
					{
						case 1:
							SCAN1(a, n, init);
							break;
						case 2:
							SCAN2(a, n, init);
							break;
					}
				}
			case 4:
				C_SCAN(a, n, init);
				break;
		}
	}

	return 0;
}


六、實(shí)驗(yàn)結(jié)果

1)輸入訪問的磁道數(shù)及需要訪問的磁道
操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

2)輸入初始指針?biāo)诖诺牢恢?,選擇FCFS算法
操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

3)最短尋道時(shí)間優(yōu)先算法(SSTF)
操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

4)掃描算法(SCAN)由里向外
操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

5)掃描算法(SCAN)由外向里
操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

6)循環(huán)算法(C—SCAN)
操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理

七、實(shí)驗(yàn)體會總結(jié)

體會與總結(jié):文章來源地址http://www.zghlxwxcb.cn/news/detail-464527.html

  • 此次實(shí)驗(yàn)思路簡單,目的明確,就是集中文件管理方法的算法的代碼實(shí)現(xiàn),分為幾種不同的算法,通過代碼加以實(shí)現(xiàn),從而實(shí)現(xiàn)文件管理。
  • 此次實(shí)驗(yàn)設(shè)計(jì)到四個(gè)文件管理算法,分別是先來先服務(wù)算法(FCFS)、最短尋道時(shí)間優(yōu)先算法(SSTF)、SCAN掃描算法、循環(huán)算法(C—SCAN)。
  • 先來先服務(wù)(FCFS):根據(jù)進(jìn)程請求訪問磁盤的先后次序進(jìn)行調(diào)度。
  • 最短尋道時(shí)間優(yōu)先(SSTF):其要求訪問的磁道與當(dāng)前磁頭所在的磁道距離最近,以使每次的尋道時(shí)間最短,但這種調(diào)度算法卻不能保證平均尋道時(shí)間最短。
  • 掃描算法(SCAN):當(dāng)磁頭正在由里向外移動時(shí),SCAN算法所選擇的下一個(gè)訪問對象應(yīng)是其欲訪問的磁道,既在當(dāng)前磁道之外,又是距離最近的。這樣由里向外地訪問,直至再無更外的磁道需要訪問時(shí),才將磁臂換向,由外向里移動。也叫電梯算法。
  • 通過此次實(shí)驗(yàn)加深了我對這幾種算法的理解,以及熟悉了算法的流程,對這幾種磁盤調(diào)度算法有了更清晰的認(rèn)知。
  • 此次實(shí)驗(yàn)已經(jīng)是操作系統(tǒng)這門課程的最后一次實(shí)驗(yàn)了,這次實(shí)驗(yàn)算是畫上一個(gè)圓滿的句號,這門課的句號,但是以后的逗號,行路并不止于此,路漫漫其修遠(yuǎn)兮,吾將上下而求索。

到了這里,關(guān)于操作系統(tǒng) | 實(shí)驗(yàn)八 文件管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Linux操作系統(tǒng)】【綜合實(shí)驗(yàn)三 用戶帳號、文件系統(tǒng)與系統(tǒng)安全管理】【未整理】

    【Linux操作系統(tǒng)】【綜合實(shí)驗(yàn)三 用戶帳號、文件系統(tǒng)與系統(tǒng)安全管理】【未整理】

    要求掌握Linux系統(tǒng)用戶的創(chuàng)建、刪除與管理操作;熟悉Linux文件系統(tǒng)的管理模式,學(xué)會創(chuàng)建用戶文件系統(tǒng)并裝載和卸載文件系統(tǒng);掌握超級用戶的管理方式與權(quán)限,并實(shí)施對普通用戶的管理;熟悉Linux系統(tǒng)安全機(jī)制與相關(guān)管理方法。 通過這個(gè)第三階段實(shí)驗(yàn),要求掌握以下操作與

    2024年02月06日
    瀏覽(27)
  • JavaWeb圖書管理系統(tǒng)課設(shè):全面掌握CRUD操作

    詳細(xì)介紹JavaWeb圖書管理系統(tǒng)的開發(fā)過程,包括后端Servlet服務(wù)、前端Ajax交互以及MyBatis的增刪改查實(shí)現(xiàn),適合初學(xué)者鞏固JavaWeb知識。

    2024年02月08日
    瀏覽(32)
  • 操作系統(tǒng)實(shí)驗(yàn)之存儲管理

    操作系統(tǒng)實(shí)驗(yàn)之存儲管理

    一、實(shí)驗(yàn)?zāi)康?1、了解虛擬存儲技術(shù)的特點(diǎn),掌握請求頁式存儲管理的主要頁面置換算法原理。 2、掌握請求頁式存儲管理中頁面置換算法的模擬設(shè)計(jì)方法。 3、通過隨機(jī)產(chǎn)生頁面訪問序列開展有關(guān)算法的測試及性能比較。 二、實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)一個(gè)虛擬存儲區(qū)和內(nèi)存工作區(qū),并

    2024年02月08日
    瀏覽(22)
  • 操作系統(tǒng)實(shí)驗(yàn)五 存儲管理

    操作系統(tǒng)實(shí)驗(yàn)五 存儲管理

    ★觀前提示 : 本篇內(nèi)容為操作系統(tǒng)實(shí)驗(yàn)內(nèi)容 ,代碼等內(nèi)容經(jīng)測試沒有問題,但是 可能會不符合每個(gè)人實(shí)驗(yàn)的要求 ,因此以下內(nèi)容建議 僅做思路參考 。 一、實(shí)驗(yàn)?zāi)康?掌握 虛擬內(nèi)存 的管理機(jī)制。 了解虛擬存儲技術(shù)的 特點(diǎn) 。 掌握請求分頁存儲管理的 頁面置換算法 。 二、

    2024年02月06日
    瀏覽(19)
  • 操作系統(tǒng)實(shí)驗(yàn)(一)——可變分區(qū)存儲管理

    湖南師范大學(xué)信息科學(xué)與工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)非師范班操作系統(tǒng)實(shí)驗(yàn)報(bào)告 一、實(shí)驗(yàn)?zāi)康模?加深對可變分區(qū)存儲管理的理解; 提高用C語言編制大型系統(tǒng)程序的能力,特別是掌握C語言編程的難點(diǎn):指針和指針作為函數(shù)參數(shù); 掌握用指針實(shí)現(xiàn)鏈表和在鏈表上的基本操作。

    2024年02月06日
    瀏覽(21)
  • 操作系統(tǒng)實(shí)驗(yàn)——進(jìn)程管理的算法實(shí)現(xiàn)

    筆者在大學(xué)下屬的事業(yè)單位上班,最近去幫著帶下操作系統(tǒng)的實(shí)驗(yàn)課,這里隨手水點(diǎn)參考代碼,歡迎各位領(lǐng)導(dǎo)老師蒞臨指正 編寫一個(gè)簡單的進(jìn)程調(diào)度器 進(jìn)程控制塊(PCB)的定義與管理 進(jìn)程調(diào)度算法的實(shí)現(xiàn) 進(jìn)程創(chuàng)建、銷毀和切換 給定一批進(jìn)程對比3-4種調(diào)度算法的時(shí)間(自選

    2024年02月06日
    瀏覽(25)
  • 操作系統(tǒng)期末實(shí)驗(yàn):多用戶二級文件系統(tǒng)

    操作系統(tǒng)期末實(shí)驗(yàn):多用戶二級文件系統(tǒng)

    期末實(shí)驗(yàn)不是python寫的,所以很可能是當(dāng)時(shí)在github上找了一個(gè),然后改了改hhh 如果后續(xù)找到了鏈接就放過來 設(shè)計(jì)一個(gè)多用戶的二級文件系統(tǒng),能夠?qū)崿F(xiàn)簡單的文件操作。具體包括如下幾條命令: (1)Dir 列文件目錄; (2)Create 創(chuàng)建文件 (3)Delete 刪除文件 (4)Deldir 刪除

    2024年01月18日
    瀏覽(18)
  • 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與操作系統(tǒng)實(shí)驗(yàn)三(6)-內(nèi)存管理

    計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與操作系統(tǒng)實(shí)驗(yàn)三(6)-內(nèi)存管理

    實(shí)現(xiàn)內(nèi)存管理 這里修改makefile文件和run.sh文件 在《操作系統(tǒng)真相還原源碼》的基礎(chǔ)上稍加修改makefile 注意:這里要用 make all 命令來執(zhí)行makefile文件了 本實(shí)驗(yàn)所有源碼?????? 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與操作系統(tǒng)實(shí)驗(yàn)三bochs源代碼

    2024年02月15日
    瀏覽(21)
  • 【操作系統(tǒng)實(shí)驗(yàn)】Ubuntu Linux 虛擬機(jī)用戶管理

    【操作系統(tǒng)實(shí)驗(yàn)】Ubuntu Linux 虛擬機(jī)用戶管理

    Linux系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),任何一個(gè)要使用系統(tǒng)資源的用戶都必須先向系統(tǒng)管理員申請一個(gè)賬號,然后以這個(gè)賬號的身份進(jìn)入系統(tǒng)。 在Linux系統(tǒng)中,任何文件都屬于某一特定用戶,而任何用戶都隸屬于至少一個(gè)用戶組。 用戶名(username) :每個(gè)用戶賬號都

    2023年04月24日
    瀏覽(18)
  • Linux文件系統(tǒng)(操作系統(tǒng)的文件管理)

    Linux文件系統(tǒng)(操作系統(tǒng)的文件管理)

    參考Linux內(nèi)核源碼版本------ linux-2.4.3 操作系統(tǒng)之下,進(jìn)程是計(jì)算機(jī)系統(tǒng) 執(zhí)行計(jì)算任務(wù)的基本單位 ,進(jìn)程訪問文件執(zhí)行數(shù)據(jù)讀寫之前,操作系統(tǒng)會從外設(shè)獲取相應(yīng)的文件信息,在內(nèi)存中建立 struct file 結(jié)構(gòu)體對象來 描述和管理文件 ,進(jìn)程借助 struct file 結(jié)構(gòu)體提供的文件信息執(zhí)行文件

    2024年02月05日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包