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

歡迎訪問 生活随笔!

生活随笔

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

linux

操作系统课设之Linux 进程管理

發布時間:2025/3/15 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统课设之Linux 进程管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

課程設計開始了,實驗很有意思,寫博客總結學到的知識
白嫖容易,創作不易,學到東西才是真
本文原創,創作不易,轉載請注明!!!
本文鏈接
個人博客:https://ronglin.fun/archives/173
PDF鏈接:見博客網站
CSDN: https://blog.csdn.net/RongLin02/article/details/118308366

為了美觀,實驗源代碼在結尾處,整合版見下
鏈接:https://pan.baidu.com/s/1rXj1QJGuw-BVc5sQWret9w
提取碼:Lin2
操作系統課程設計源代碼
本次操作系統課程設計合集
操作系統課設之Windows 進程管理
操作系統課設之Linux 進程管理
操作系統課設之Linux 進程間通信
操作系統課設之Windows 的互斥與同步
操作系統課設之內存管理
操作系統課設之虛擬內存頁面置換算法的模擬與實現
操作系統課設之基于信號量機制的并發程序設計
操作系統課設之簡單 shell 命令行解釋器的設計與實現
僅用于學習,如有侵權,請聯系我刪除

實驗題目

Linux 進程管理

實驗目的

通過進程的創建、撤銷和運行加深對進程概念和進程并發執行的理解,明確進程和程序之間的區別。

實驗內容

學習背景知識,了解Linux下的創建進程的方法。
由于操作系統的平時作業也是用Linux,再加上布置過在Linux下的C語言編程的作業,所以本驗證性實驗完成較為輕松
Linux環境:
虛擬機:Ubuntu 18.04 LTS;硬盤100G;內存4G;64位;4核心
Linux內核:5.11.8 開發工具:CodeBlocks
Linux虛擬機的安裝可以看我這兩篇博客:
https://blog.csdn.net/RongLin02/article/details/114273129
https://blog.csdn.net/RongLin02/article/details/115419994
原理:
主要涉及到兩個函數,一個是fork(),一個是exec()系列函數
fork 會建立一個子進程,父進程繼續運行,子進程在同樣的位置執行同樣的程序。fork()會分別返回兩個值給父子進程,fork()返回子進程的 pid給父進程,fork()返回 0給子進程。出錯時返回-1。 exec()函數會創建一個新的進程映象置換當前的進程映象。exec函數族的作用是根據指定的文件名找到可執行文件,并用它來取代調用進程的內容,換句話說,就是在調用進程內部執行一個可執行文件。這里的可執行文件既可以是二進制文件,也可以是任何Linux下可執行的腳本文件

在操作系統的平時作業中,我還用到了vfork()函數。因為fork()創建的子進程其實是父進程數據的copy,也就是說父子進程的數據并不是共享的,子進程只是父進程的翻版,類似于c語言函數中的傳遞形式參數,要想數據共享,其實也有很多方法,有些資料書上提到很多CLONE_開頭的標志位就是控制哪些東西是父子進程共享的。不過有更簡單的vfork()函數,其實本質上是一樣的,都是調用內核函數do_fork()。需要注意的是,不論多進程還是多線程,數據一旦共享,會涉及到安全問題,不過vfork()創建子進程之后,父進程就會阻塞,所以就沒安全問題了。
本驗證實驗不涉及到父子進程的數據傳遞

2-1 進程的創建

在Ubuntu下安裝好CodeBlocks,然后用CodeBlocks,創建一個新工程,將指導書的代碼copy到main.c文件中,然后編譯運行查看結果
多次運行,查看結果
關鍵代碼

int x;srand((unsigned)time(NULL));while((x=fork())==-1);if (x==0){sleep(rand() % 2);printf("a");}else{sleep(rand() % 3);printf("b");}printf("c");

2-2 子進程執行新任務

新建一個工程,將實例代碼copy到main.c下
運行查看結果
關鍵代碼

pid_t pid;/* fork a child process */pid = fork();if (pid < 0){/* error occurred */fprintf(stderr, "Fork Failed");return 1;}else if (pid == 0){/* 子進程 */execlp("/bin/ls","ls",NULL);}else /* 父進程 */{/* 父進程將一直等待,直到子進程運行完畢*/wait(NULL);printf("Child Complete\n");}

實驗結果與分析

2-1 進程的創建





這是幾次的運行的結果。
分析結果:
子進程輸出a和c,父進程輸出b和c,當fork()成功之后,將父進程的代碼copy一份給子進程運行,所以說父子進程都會輸出c,但是控制臺只有一個,父子進程會搶輸出,再加上一個隨機睡眠函數,所以就會出現不同的輸出結果。

2-2 子進程執行新任務

運行結果

子進程會執行execlp()調用ls命令,輸出當前的目錄結構,同時父進程因為用了wait(null),會自我阻塞,等待隨機一個進程結束,然后再執行。
Wait函數也有兩個,一個是wait(),另一個是waitpid(),后者比前者功能更強大。

小結與心得體會

由于操作系統平時作業的關系,我對于Linux系統也比較熟悉了,在Linux系統下的C/C++編程也比較熟悉,故完成本驗證實驗也很輕松。
平時作業我們曾完成過,Linux虛擬環境的安裝,Linux內核的編譯,Linux下的C語言的進程與線程編程,Linux下打印進程樹。
這些在我的博客主頁中都可以搜到
=w=

源代碼

2-1 進程的創建

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

2-2 子進程執行新任務

#include <sys/types.h> #include<sys/wait.h> #include <stdio.h> #include <unistd.h>int main() {pid_t pid;/* fork a child process */pid = fork();if (pid < 0){/* error occurred */fprintf(stderr, "Fork Failed");return 1;}else if (pid == 0){/* 子進程 */execlp("/bin/ls","ls",NULL);}else /* 父進程 */{/* 父進程將一直等待,直到子進程運行完畢*/wait(NULL);printf("Child Complete\n");}return 0; }

總結

以上是生活随笔為你收集整理的操作系统课设之Linux 进程管理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 超碰超碰 | 久青草视频| 国产精品久久久久久久久久直播 | 99香蕉视频| 久久久久久1 | 按摩毛片| 激情亚洲色图 | 捅肌肌 | 久久国产成人 | 成年人小视频在线观看 | 成人日b视频 | 男女激情啪啪 | 88国产精品视频一区二区三区 | 日本黄网站在线观看 | 好吊操这里有精品 | 99热欧美| 日韩精品在线观看一区二区三区 | 亚洲资源av | av黄色免费在线观看 | www.rihan| 国产中文字幕免费 | av小说在线观看 | 伊人久久精品一区二区三区 | 免费精品视频一区二区三区 | 精品国产黄色片 | 黄色日韩网站 | 好吊视频一区 | 日韩一中文字幕 | wwwxxx日本人 | 日本午夜电影 | 丁香婷婷亚洲 | 国产欧美一区二区 | 久久大 | 爱爱综合网 | 亚洲三级在线看 | 日韩精品亚洲一区 | 色.com| www.三区| 91毛片在线观看 | 国产精品日韩欧美 | 精品无码一区二区三区在线 | av片免费| 国产成人无码精品久久久性色 | 日韩欧美大片在线观看 | 国产精品美女久久久久图片 | 国产香蕉尹人视频在线 | 国产伦精品一区二区三区视频痴汉 | 麻豆人妻少妇精品无码专区 | 男女福利视频 | 深夜成人福利视频 | 欧美日韩人妻精品一区二区三区 | 色狠| 深夜老司机福利 | 国产精品视频在线播放 | 俄罗斯嫩小性bbwbbw | 精品久久久久久久无码 | 黄网免费在线观看 | 午夜美女网站 | 影音先锋在线视频 | 97在线观看免费高清 | 日韩无套 | www.四虎在线 | 久久免费视屏 | 91手机视频在线观看 | 啪视频在线观看 | 天天欲色 | 一级在线播放 | 国产亚洲欧美在线 | 国产视频一二三区 | 亚洲专区中文字幕 | 午夜免费一区 | 欧美精品久久久 | 西欧free性满足hd老熟妇 | bbbbbbbbb毛片大片按摩 | 少妇把腿扒开让我舔18 | 超碰在线c | 羞羞免费视频 | 中文字幕一区在线 | 永久精品 | 欧美区一区二区三 | 一二三区免费 | 老女人做爰全过程免费的视频 | 少妇又色又紧又大爽又刺激 | 丝袜+亚洲+另类+欧美+变态 | 亚洲精品图区 | 高清在线一区二区三区 | 日本大尺度做爰呻吟舌吻 | 麻豆国产一区二区 | 大肉大捧一进一出好爽视频动漫 | 亚洲精品一级 | 中文字幕在线播放一区 | 国产精品高清无码在线观看 | 美利坚合众国av | 伊人婷婷综合 | 第一页综合 | 狠狠操狠狠操 | 日b视频在线观看 | 办公室荡乳欲伦交换bd电影 | 91av免费观看 |