作業系統實驗1

2021-06-27 15:12:17 字數 1514 閱讀 8975

1、當生產者-消費者分別由位於同一臺計算機上的若干程序充當時,如何設計實驗?給出設計方案和linux c語言實現(重要語句加上注釋)。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define buffersize 5//緙撳啿鍖哄ぇ灝?

//鍏變韓鍐呭瓨

struct productbuff ;

int semid;//淇″佛閱忛泦鍚?

int shmid;//鍏變韓鍐呭瓨

struct sembuf semaphore;//淇″佛閱?

struct productbuff* addr;

//pv錼嶄綔,鐢卞弬鏁皌紜畾鏄鍝竴涓彉閱忚繘琛孭v錼嶄綔,t=0,1,2

#define mutex 0

#define empty 1

#define full 2

void p(int t)

void v(int t)

void init()

int sem = 1;

semctl(semid, mutex, setval, sem);

sem = buffersize;

semctl(semid, empty, setval, sem);

sem = 0;

semctl(semid, full, setval, sem);

//鍒涘緩鍏變韓鍐呭瓨 騫舵槧灝?

key_t shmkey;

shmkey = ftok("renyuzhuo2.c", 0);

shmid = shmget(shmkey, 2048, 0666 | ipc_creat);

if (shmid == -1)

//鎶婂叡浜唴瀛樺尯瀵矽薄鏄犲皠鍒拌皟鐢ㄨ繘紼嬬殑鍦板潃絀洪棿

addr = (struct productbuff*) shmat(shmid, 0, 0);

if (addr == (struct productbuff * ) - 1)

addr -> in = addr -> out = 0;

printf("init success!!\n");

}//閿€姣佸叡浜唴瀛?淇″佛閱?

void destroy()

#define many 3//鐢熶駭鑰呮秷璐矽€呮暟鐩?

#define times 9//姣忎釜鐢熶駭鑰呯敓浜т駭鍝佷釜鏁?娑堣垂鑰呮秷璐逛駭鍝佷釜鏁癵e

int main()

}else}}

}sleep(3);

destroy();

sleep(3);

編譯命令:

gcc 1-1.c -o 1-1 -lpthread

執行命令:

./1-1  

作業系統實驗三 (1)

作業系統課程設計 三 1 實現乙個模擬shell 編寫三個不同的程式 cmd1.c,cmd2.c,cmd3.c,每個程式輸出一句話,分別編譯成可執行檔案cmd1,cmd2,cmd3。然後再編寫乙個程式,模擬shell程式的功能,能根據使用者輸入的字串 表示相應的命令名 去為相應的命令建立子程序並讓它...

作業系統實驗

一 實驗目的 理解vi的三種執行模式及其切方法。學會使用vi的各種操作命令進行文字檔案的編輯。用vi編寫linux下c程式,會用gcc編譯。二 實驗環境 一台裝有linux的機器 這裡預設是red hat linux 9 系統裡面有gcc編譯器。三 實驗內容 寫出主要的內容 首先用合法使用者登入系統...

作業系統實驗

分析bootloader進入保護模式的過程。在剛進入bootloader的時候,最先執行的操作分別為關閉中斷 清除eflags的df位以及將ax,ds,es,ss暫存器初始化為0 globl start start code16 cli 關中斷 cld 清除方向標誌 xorw ax,ax ax清0 ...