1. 程式人生 > >華南理工大學2013級計科一班作業系統實驗

華南理工大學2013級計科一班作業系統實驗

實驗一:程序和執行緒的建立

1. 在linux下編寫一個應用程式,命名為an_ch2_1b。這個程式不斷地輸出如下行:

Those output come from child,[系統時間]

另外寫一個應用程式,命名為an_ch2_1a。這個程式建立一個子程序,執行an_ch2_1b。這個程式不斷地輸出如下行:

Those output come from child,[系統時間]

觀察程式執行的結果,並對你看到的現象進行解釋。

這個是an_ch2_1a.cpp

#include <iostream>
#include <unistd.h>
#include <cstdio>
#include <sys/types.h>
#include <stdlib.h>
using namespace std;
int main()
{
	time_t now;
	tm * timenow;
	pid_t pid;
	pid = fork();
	if(pid==-1){
		cout<<"fail to create"<<endl;
	}
	else if(pid==0){
		system("./an_ch2_1b");
	}
}

寫完之後儲存,命令列輸入:g++ -o aaa an_ch2_1a.cpp
進行編譯。生成可執行檔案aaa。
這個是an_ch2_1b.cpp
#include <iostream>
#include <cstdio>
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
using namespace std;
int main()
{   
	time_t now;
	tm * timenow;
	while(true){
		time(&now);
		timenow = localtime(&now);
		cout<<"Those output come from child,"<<asctime(timenow)<<endl;
	}
} 
寫完之後儲存,命令列輸入:g++ -o an_ch2_1b an_ch2_1b.cpp
進行編譯。生成可執行檔案an_ch2_1b

<pre name="code" class="cpp"><pre name="code" class="cpp">在命令列輸入:./an_ch2_1b
執行an_ch2_1b
在命令列輸入:./aaa 執行aaa
kill掉當前程序是ctrl+c

2.

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
int share_var=0;
void * son(void * arg)
{
	while(1){
	   share_var--;
	   printf("in the son share_var:%d\n",share_var);	
	   usleep(1000);
	}
}
int main()
{
    pthread_t pt;
	int ret;
	ret=pthread_create(&pt,NULL,(void*)son,NULL);
	if(ret!=0){
		printf("create fail\n");
	}
    while(1){
		share_var++;
		printf("in the main shaer-var:%d\n",share_var);
        usleep(1000);
	}
	pthread_join(pt,NULL);
}

相關推薦

華南理工大學2013作業系統實驗

實驗一:程序和執行緒的建立 1. 在linux下編寫一個應用程式,命名為an_ch2_1b。這個程式不斷地輸出如下行: Those output come from child,[系統時間] 另外寫一個應用程式,命名為an_ch2_1a。這個程式建立一個子程序,執行an_c

東華理工18團隊作業二

-- Deadline: 2018-11-04 23:00 pm -- 第五次作業   1. 關於評分:        有覺得不妥的可以留言提出。     -- 第五次

東華理工18團隊作業六

-- Deadline: 2018-12-14 23:00 pm -- 第九次作業   關於評分:        有覺得不妥的可以留言提出。      

東華理工18團隊作業五

-- Deadline: 2018-12-07 23:00 pm -- 第八次作業     關於評分:        有覺得不妥的可以留言提出。    

東華理工18團隊作業四

-- Deadline: 2018-11-30 23:00 pm -- 第七次作業     關於評分:        有覺得不妥的可以留言提出。    

2018年秋季C語言基礎課第1次作業

學習效率 span https 一個 ref 又一 logs 寫博客 效率 ---恢復內容開始--- 1、翻閱鄒欣老師博客關於師生關系博客,並回答下列問題: (1)大學和高中最大的不同是沒有人天天看著你,請看大學理想的師生關系是?有何感想? 答:我認為是鄒欣老師說的健身教練

7-3 jmu-Java-02基本語法-03-身份證排序 (15 分)其他的題

7-3 jmu-Java-02基本語法-03-身份證排序 (15 分) 輸入n,然後連續輸入n個身份證號。 然後根據輸入的是sort1還是sort2,執行不同的功能。輸入的不是sort1或sort2,則輸出exit並退出。 輸入sort1,將每個身份證的年月日抽取出來,按年-月-日格式組裝,

7-1 jmu-Java-03面向物件基礎-04-形狀-繼承 (10 分)其他的題

前言 前面題目形狀中我們看到,為了輸出所有形狀的周長與面積,需要建立多個數組進行多次迴圈。這次試驗使用繼承與多型來改進我們的設計。 本題描述: 定義抽象類Shape 屬性:不可變靜態常量double PI,值為3.14, 抽象方法:public double getPerimet

2013C++第12周(春)項目——成員的訪問屬性、多重繼承

更新 日期 報告 時間 上下 cin out 讀取 edate 課程首頁在:http://blog.csdn.net/sxhelijian/article/details/11890759,內有完整教學方案及資源鏈接第一部分 程序閱讀 1、閱讀程序。分析類中成員的訪問屬性

java高工程師(

jsb http協議 html tel url 實現負載均衡 為什麽 行為 get 一、無筆試題 不知道是不是職位原因還是沒遇到,面試時,都不需要做筆試題,而是填張個人信息表格,或者直接面試 二、三大框架方面問題 1、Spring 事務的隔離性,並說說每個

Unix環境高編程()文件I/O

argc 緩沖 png body 定位 creat desc printf tde   Unix系統中大多數文件I/O只需用到五個函數:open、read、write、lseek、close。本章說介紹的I/O是不帶緩沖的,即:每個read和write都調用內核中的一個系統

2018華南理工大學程序設計競賽 H-對稱與反對稱

對稱 pos print 其中 數據 string long IT 競賽 H-對稱與反對稱 題目描述 給出一個N*N的方陣A。構造方陣B,C: 使得A = B + C.其中 B為對稱矩陣,C為反對稱矩陣。 對於方陣S中的任意元素,若(S)ij = (S)ji,則稱S為對稱

Lync Server 2013 共享PPT經過段時間報演示錯誤(ID32402、61045)

PPT共享報錯 32403 61045 Lync共享PPT報錯 嘗試在Windows Server 2012 R2 上安裝Lync 2013前端服務器,發現所有版本 Lync客戶端不能參加會議通過 Lync Server 2013 或 Lync Server 2010 中的會議形式。並且統一聯

JAVA高開發面試(ZX)

正則表達式 算法 con 類圖 person 筆試 靜態 字母數 字符 筆試: 1、正則表達式,第一個字符為字母其他為字母數字下劃線,最大長度為5-20範圍內;^[a-zA-Z]\w{4,19} 2、代碼塊加載順序;父靜態屬性->父靜態代碼塊->子靜態屬性-&g

入門 20181031 rsync

10月31日任務 10.28 rsync工具介紹10.29/10.30 rsync常用選項10.31 rsync通過ssh同步 Linux檔案同步工具 rsync 非常實用和重要的一個工具。在日常的運維工作中每天都要用到。傳輸檔案從A到B,備份到遠端的資料等都會使用到這個工具。 不僅僅可

入門20181101 rsync syslog screen

11月1日任務 10.32/10.33 rsync通過服務同步10.34 linux系統日誌10.35 screen工具擴充套件1. Linux日誌檔案總管logrotate http://linux.cn/article-4126-1.html2. xargs用法詳解 http://blog.csd

入門20181019 awk

9.6/9.7 awk awk awk相對於sed 更方便的功能是支援了分段。 awk不會更改檔案的內容 最簡單的一種用法,以某種分隔符來分割後,取第幾部分打印出來。 awk -F ':' '{print $1}' passwd -F 分隔符  {$1 第一

入門 20181017 sed

10月17日任務 10月17日任務9.4/9.5 sed sed -n '/關鍵字/'p 檔名 sed -n ‘數字’p 檔名  就是列印第數字行的那一行內容 注意以上的區別,有/ /的是關鍵字  不帶/ / 的是行號 有一個例題: 例如:有個檔案test的

入門 20181113 php5 install php7 install

11月13日任務 11.10/11.11/11.12 安裝PHP511.13 安裝PHP7php中mysql,mysqli,mysqlnd,pdo到底是什麼 http://blog.csdn.net/u013785951/article/details/60876816檢視編譯引數 http://as

入門 20181114

11月14日任務 11.14/11.15 Apache和PHP結合11.16/11.17 Apache預設虛擬主機 1. 首先看一下: 這是個警告,雖然並非錯誤但是可以取消掉。辦法就是去定義好 servername  vim /usr/local/apache2/co