日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux实验三父子进程每隔3秒,实验三进程的创建和简单控制(学生分析.doc

發布時間:2024/9/19 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux实验三父子进程每隔3秒,实验三进程的创建和简单控制(学生分析.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗三進程的創建和簡單控制(學生分析

實驗 進程的創建和簡單控制

實驗目的:

掌握進程的概念和進程的狀態,對進程有感性的認識;

掌握進程創建方法;

認識進程的并發執行,了解進程族之間各種標識及其存在的關系;

熟悉進程的創建、阻塞、喚醒、撤銷等控制方法。

實驗內容:

了解有關Linux進程的屬性和進程的層次結構;

學習有關Linux的前臺后臺進程;

學習有關Linux命令的順序執行和并發執行;

學習有關掛起和終止進程;

了解并發程序的不可確定性,進行簡單并發程序設計。

實驗步驟:

Shell下的進程控制

進入Linux系統。

用ps查看進程。linux的ps命令是用來監視系統進程和資源使用情況的命令顯示瞬間的動態ps 的參數非常多常用的參數-A 列出所有的-w 顯示加寬可以顯示較多的-au 顯示較詳細的-aux 顯示所有包含其他使用者的

用kill終止進程kill命令通過向進程發送指定的信號來結束進程。

用pstree命令顯示系統中進程層次結構。pstree指令用ASCII字符顯示樹狀結構,清楚地表達間的相互關系。語法格式pstree [-acGhlnpuUV][-H ][/]

Linux簡單進程編程

理解系統調用fork()的使用。fork()會產生一個與父程序相同的子程序,唯一不同之處在其圖 5所示。

圖 5 系統調用fork()

編輯下面的實現父進程產生兩個子進程,父進程顯示字符“a”、兩個子進程,分別顯示字符“b”、“c”圖 6所示。#include

main( )

{

int p1,p2;

while ((p1=fork())==-1); /*父進程創建第一個進程,直到成功*/

if(p1==0) /*0返回給子進程 1*/

{

putchar('b');/*P1的處理過程*/

}

else ①

{ /*正數返回給父進程(子進程號)*/

while ((p2=fork())==-1); /*父進程創建第二個進程,直到成功*/

if(p2==0) /*0返回給子進程2*/

{

putchar('c');/*P2的處理過程*/

}

else

{

putchar('a');/*P2創建完成后,父進程的處理過程*/

}

}

}圖 6系統調用 fork()的使用編譯連接通過后,多次運行程序,觀察進程并發執行結果,并分析原因。

原因:當程序并發執行時,系統處于一個復雜的動態組合狀態,各程序執行的相對速度不確定,這使得這些程序多次并發執行得到的結果不同,調度、執行的順序由系統決定。

刪除語句①,觀察輸出的內容,體會fork的使用。

提示:編譯和運行該程序,分析結果出現兩種輸出的原因。

刪除語句①后:

思考的問題:

運行命令為什么是“./command”?

將源文件保存為以.c為后綴名的文件,開始進行編譯$gcc -o XXX XXX.c

編譯成功完成后,在當前路徑下,生成一個名為XXX的文件

然后執行 $./XXX

程序得以運行

. 和 .. 什么含義?

.表示當前目錄,..表示上級目錄,即父目錄

shell 提示為什么不換行?

因為在輸出語句中沒有/n換行符。

輸出字母為什么和提示交錯?

b,a,shell,c四個進程并發執行,執行先后順序由系統調度決定。所以當shell調度在c進程前時,會出現輸出字母和提示交錯的現象。

管道什么含義?

管道符,可以認為它是一根水管,連接輸入端和輸出端。

a | b

其中,| 就是管道符,將輸入端 a命令產生的數據傳給輸出端的b命令來處理

./f1|pstree|grep f1什么含義?

將./f1產生的數據傳給pstree來處理,經過pstree處理后的數據再傳給grep f1來處理

在運行f1文件的進程的樹結構中查找f1(?)

6中組合命令為什么沒有輸出?

(?)

如果想保留6中的./f1的輸出內容,該如何操作?

進行重定向操作

./f1 運行結果為什么不一樣?每種結果的產生原因。

有a,b,c三個并發進程,調度順序由系統決定

①bca

②bac

③abc

./f1|pstree|grep f1運行結果為什么不一樣?截圖中四種結果的產生原因。

由于并發進程的調度順序是由系統決定的,并且pstree顯示的是一剎那的進程,進程調度又是動態的。

四種結果:

①無結果:可能三個進程調度已經

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Linux实验三父子进程每隔3秒,实验三进程的创建和简单控制(学生分析.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。