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

操作系統(tǒng)課程設(shè)計(jì)-Linux 進(jìn)程控制

這篇具有很好參考價(jià)值的文章主要介紹了操作系統(tǒng)課程設(shè)計(jì)-Linux 進(jìn)程控制。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言

1 實(shí)驗(yàn)題目

2 實(shí)驗(yàn)?zāi)康?/p>

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

3.1 進(jìn)程的創(chuàng)建

3.1.1 步驟

3.1.2 關(guān)鍵代碼

3.2 子進(jìn)程執(zhí)行新任務(wù)

3.2.1 步驟

3.2.2?關(guān)鍵代碼

4 實(shí)驗(yàn)結(jié)果與分析

4.1 進(jìn)程的創(chuàng)建

4.2 子進(jìn)程執(zhí)行新任務(wù)

5 代碼

5.1 進(jìn)程的創(chuàng)建

5.2 子進(jìn)程執(zhí)行新任務(wù)


前言

?????????本實(shí)驗(yàn)為課設(shè)內(nèi)容,博客內(nèi)容為部分報(bào)告內(nèi)容,僅為大家提供參考,請勿直接抄襲,另外,本次實(shí)驗(yàn)所用平臺是Ubuntu 22.04 LTS,代碼均是在終端進(jìn)行編譯的,不會的可以先了解怎么用終端編程,或者利用其他較為智能的開發(fā)環(huán)境進(jìn)行編程

1 實(shí)驗(yàn)題目

????????實(shí)驗(yàn)二?Linux 進(jìn)程管理

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

????????通過進(jìn)程的創(chuàng)建、撤銷和運(yùn)行加深對進(jìn)程概念和進(jìn)程并發(fā)執(zhí)行的理解,明確進(jìn)程和程序之間的區(qū)別。???

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

3.1 進(jìn)程的創(chuàng)建

3.1.1 步驟

? ? ? ? (1)步驟1:在目錄實(shí)驗(yàn)2下用touch命令新建一個(gè)實(shí)驗(yàn)2-1.c文件,利用gedit命令打開編輯,復(fù)制清單3-1中的代碼到實(shí)驗(yàn)2-1.c文件中并保存,利用gcc命令將其編譯成可執(zhí)行文件實(shí)驗(yàn)2-1。

? ? ? ? (2)步驟2:在命令行輸入./實(shí)驗(yàn)2-1運(yùn)行該程序,觀察運(yùn)行結(jié)果。

? ? ? ? (3)步驟3:多次運(yùn)行程序,觀察運(yùn)行結(jié)果。

3.1.2 關(guān)鍵代碼

	 if (x==0)
	 {
		sleep(rand() % 2);
		printf("a\n");
	 }
	 else
	 {
		sleep(rand() % 3);
		printf("b\n");
	 }
	 if(x==0)printf("cc\n");
	 else printf("fc\n");

3.2 子進(jìn)程執(zhí)行新任務(wù)

3.2.1 步驟

? ? ? ? (1)步驟1:在目錄實(shí)驗(yàn)2下用touch命令新建一個(gè)實(shí)驗(yàn)2-2.c文件,利用gedit命令打開編輯,復(fù)制清單3-2中的代碼到實(shí)驗(yàn)2-2.c文件中并保存,利用gcc命令將其編譯成可執(zhí)行文件實(shí)驗(yàn)2-2。

? ? ? ? (2)步驟2:在命令行輸入./實(shí)驗(yàn)2-2運(yùn)行該程序,觀察運(yùn)行結(jié)果。

3.2.2?關(guān)鍵代碼

    pid_t pid;
	/*fork another process*/
	pid = fork();
	if(pid<0){
		fprintf(stderr,"Fork Failed");
		exit(-1);
	}else if(pid==0){
		execlp("/bin/ls","ls",NULL);
	}else{/*parent process*/
		/*parent wait for the child to complete*/
		wait(NULL);
		printf("Child Complete\n");
		exit(0);
	}

4 實(shí)驗(yàn)結(jié)果與分析

4.1 進(jìn)程的創(chuàng)建

執(zhí)行步驟2和3后,可以看到每次的結(jié)果不一定相同,可能是父進(jìn)程先執(zhí)行完畢,也可能是子進(jìn)程先執(zhí)行完畢,這說明進(jìn)程的調(diào)度是不可預(yù)測的,即程序的執(zhí)行不可在現(xiàn),結(jié)果如下圖所示:

操作系統(tǒng)課程設(shè)計(jì)-Linux 進(jìn)程控制,操作系統(tǒng),linux,ubuntu

圖1.1 實(shí)驗(yàn)2-1步驟2和3

4.2 子進(jìn)程執(zhí)行新任務(wù)

執(zhí)行步驟2后,會看到在終端上先輸出了目錄下的文件情況,再輸出”Child Compelete”,說明父進(jìn)程執(zhí)行wait之后,會等待子進(jìn)程執(zhí)行完才會繼續(xù)執(zhí)行,結(jié)果如下圖所示:

操作系統(tǒng)課程設(shè)計(jì)-Linux 進(jìn)程控制,操作系統(tǒng),linux,ubuntu

圖1.2 實(shí)驗(yàn)2-2步驟2文章來源地址http://www.zghlxwxcb.cn/news/detail-802669.html

5 代碼

5.1 進(jìn)程的創(chuàng)建

#include<stdio.h>
#include<stdlib.h>
int main(void){
	int x;
	srand((unsigned)time(NULL)); 
	while((x=fork())==-1);
	if(x==0){
		sleep(rand()%2);
		printf("a\n");	
	}else{
		sleep(rand()%3);
		printf("b\n");	
	}
	if(x==0)printf("cc\n");
	else printf("fc\n");
}

5.2 子進(jìn)程執(zhí)行新任務(wù)

#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main(void){
	pid_t pid;
	/*fork another process*/
	pid = fork();
	if(pid<0){
		fprintf(stderr,"Fork Failed");
		exit(-1);
	}else if(pid==0){
		execlp("/bin/ls","ls",NULL);
	}else{/*parent process*/
		/*parent wait for the child to complete*/
		wait(NULL);
		printf("Child Complete\n");
		exit(0);
	}
}

到了這里,關(guān)于操作系統(tǒng)課程設(shè)計(jì)-Linux 進(jì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)文章

  • 操作系統(tǒng)2:進(jìn)程的描述與控制

    操作系統(tǒng)2:進(jìn)程的描述與控制

    目錄 1、什么是前驅(qū)圖? 2、進(jìn)程的定義和描述 (1)什么是進(jìn)程? (2)進(jìn)程的基本狀態(tài)及轉(zhuǎn)換 (3)掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換 3、進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu) (1)進(jìn)程控制塊 PCB 的作用 (2)進(jìn)程控制塊 PCB 中的信息 (3)PCB 的組織方式 3、進(jìn)程的控制 (1)操作系統(tǒng)內(nèi)核 (2)

    2024年02月09日
    瀏覽(22)
  • 操作系統(tǒng)課程設(shè)計(jì)----模擬文件管理系統(tǒng)(c語言)

    操作系統(tǒng)課程設(shè)計(jì)----模擬文件管理系統(tǒng)(c語言)

    1.采用高級語言編寫程序模擬文件系統(tǒng),文件系統(tǒng)采用多級目錄結(jié)構(gòu),實(shí)現(xiàn)對文件和目錄的創(chuàng)建、刪除、重命名、變更權(quán)限、顯示文件內(nèi)容、修改文件內(nèi)容等操作。 2.撰寫課程設(shè)計(jì)報(bào)告。 編寫程序模擬一個(gè)簡單的文件系統(tǒng),具體實(shí)驗(yàn)內(nèi)容如下: (1)實(shí)現(xiàn)多級目錄結(jié)構(gòu),而

    2024年01月21日
    瀏覽(24)
  • Linux操作系統(tǒng)篇:進(jìn)程

    Linux操作系統(tǒng)篇:進(jìn)程

    我們常見的計(jì)算機(jī),如筆記本。我們不常見的計(jì)算機(jī),如服務(wù)器,大部分都遵守馮諾依曼體系 為什么計(jì)算機(jī)要采用馮諾依曼體系呢? 在計(jì)算機(jī)出現(xiàn)之前有很多人都提出過計(jì)算機(jī)體系結(jié)構(gòu),但最終選擇馮諾依曼是因?yàn)橛帽容^少的錢就可以做出效率不錯(cuò)的計(jì)算機(jī) 截至目前,我們

    2024年03月18日
    瀏覽(44)
  • 【Linux】操作系統(tǒng)&&進(jìn)程概念

    【Linux】操作系統(tǒng)&&進(jìn)程概念

    馮·諾依曼結(jié)構(gòu)也稱普林斯頓結(jié)構(gòu),是一種將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器結(jié)構(gòu) 。數(shù)學(xué)家馮·諾依曼提出了計(jì)算機(jī)制造的三個(gè)基本原則,即采用二進(jìn)制邏輯、程序存儲執(zhí)行以及計(jì)算機(jī)由五個(gè)部分組成( 運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備 ),這

    2024年01月16日
    瀏覽(25)
  • Linux--操作系統(tǒng)進(jìn)程的狀態(tài)

    Linux--操作系統(tǒng)進(jìn)程的狀態(tài)

    【Linux】進(jìn)程概念 —— 進(jìn)程狀態(tài)_linux d狀態(tài)進(jìn)程_Hello_World_213的博客-CSDN博客 新建: 字面意思,將你的task_struct創(chuàng)建出來并且還未入隊(duì)列 運(yùn)行: task_struct結(jié)構(gòu)體在運(yùn)行隊(duì)列中排隊(duì),就叫做運(yùn)行態(tài) 阻塞: 等待非CPU資源就緒,阻塞狀態(tài) ? 掛起: 當(dāng)內(nèi)存不足的時(shí)候,OS通過適當(dāng)?shù)?/p>

    2024年02月15日
    瀏覽(30)
  • 軟考:中級軟件設(shè)計(jì)師:操作系統(tǒng),進(jìn)程管理,前趨圖,進(jìn)程同步互斥,PV操作,

    軟考:中級軟件設(shè)計(jì)師:操作系統(tǒng),進(jìn)程管理,前趨圖,進(jìn)程同步互斥,PV操作,

    提示:系列被面試官問的問題,我自己當(dāng)時(shí)不會,所以下來自己復(fù)盤一下,認(rèn)真學(xué)習(xí)和總結(jié),以應(yīng)對未來更多的可能性 關(guān)于互聯(lián)網(wǎng)大廠的筆試面試,都是需要細(xì)心準(zhǔn)備的 (1)自己的科研經(jīng)歷, 科研內(nèi)容 ,學(xué)習(xí)的相關(guān)領(lǐng)域知識,要熟悉熟透了 (2)自己的實(shí)習(xí)經(jīng)歷,做了 什

    2024年02月12日
    瀏覽(56)
  • 計(jì)算機(jī)操作系統(tǒng)【慕課版】習(xí)題答案(第2章進(jìn)程的描述與控制)

    計(jì)算機(jī)操作系統(tǒng)【慕課版】習(xí)題答案(第2章進(jìn)程的描述與控制)

    一:簡答題 (1).什么是前趨圖?試畫出下面四條語句的前趨圖. S1:a=x+y; S2:b=z+1; S3:c=a-b; S4:w=c+1; 答:前趨圖(Precedence Graph)是一個(gè)有向無循環(huán)圖,記為DAG(DirectedAcyclicGraph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。 (2)什么是進(jìn)程? OS中為什么要引入進(jìn)程?它會產(chǎn)生什么樣的

    2024年04月13日
    瀏覽(19)
  • 頁面置換算法模擬實(shí)現(xiàn)-操作系統(tǒng)課程設(shè)計(jì)基于Java

    頁面置換算法模擬實(shí)現(xiàn)-操作系統(tǒng)課程設(shè)計(jì)基于Java

    存儲管理的主要功能之一是合理的分配空間,請求頁式存儲管理是一種常用的虛擬存儲管理技術(shù)。在地址映射過程中,若在頁表中發(fā)現(xiàn)所要訪問的頁面不在內(nèi)存,則產(chǎn)生中斷,當(dāng)發(fā)生中斷時(shí),系統(tǒng)必須在內(nèi)存選擇一個(gè)頁面移出內(nèi)存,調(diào)用頁面置換算法,以便為調(diào)入新的頁面讓

    2024年02月07日
    瀏覽(29)
  • 【Linux】操作系統(tǒng)與進(jìn)程的概念

    【Linux】操作系統(tǒng)與進(jìn)程的概念

    目錄 馮諾依曼體系 注意 為什么CPU不直接訪問輸入或輸出設(shè)備? 跨主機(jī)間數(shù)據(jù)的傳遞 操作系統(tǒng) 管理 進(jìn)程 描述進(jìn)程 進(jìn)程的查看和終止 ?bash 通過系統(tǒng)調(diào)用創(chuàng)建子進(jìn)程 fork的辨析 ??馮·諾依曼結(jié)構(gòu)也稱普林斯頓結(jié)構(gòu),是一種 將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器

    2024年01月18日
    瀏覽(21)
  • Linux操作系統(tǒng)——第五章 進(jìn)程信號

    Linux操作系統(tǒng)——第五章 進(jìn)程信號

    ? ? ? 目錄 信號概念 用kill -l命令可以察看系統(tǒng)定義的信號列表 信號處理常見方式概覽 產(chǎn)生信號 1. 通過終端按鍵產(chǎn)生信號 2. 調(diào)用系統(tǒng)函數(shù)向進(jìn)程發(fā)信號 3. 由軟件條件產(chǎn)生信號 4. 硬件異常產(chǎn)生信號 阻塞信號 1. 信號其他相關(guān)常見概念 2. 在內(nèi)核中的表示 3. sigset_t 4. 信號集操作

    2024年02月11日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包