作業系統實驗三 (1)

2021-09-24 08:58:29 字數 1130 閱讀 2467

作業系統課程設計(三)

1、實現乙個模擬shell:編寫三個不同的程式:cmd1.c, cmd2.c, cmd3.c,每個程式輸出一句話,分別編譯成可執行檔案cmd1, cmd2, cmd3。然後再編寫乙個程式,模擬shell程式的功能,能根據使用者輸入的字串(表示相應的命令名),去為相應的命令建立子程序並讓它去執行相應的程式,而父程序則等待子程序的結束,然後再等待接收下一條命令。如果接收到的命令為exit,則父程序結束,如果接收到無效命令,則顯示」command not found」,繼續等待。

exec函式

程序exec系列函式

fork和exec

fork詳解

shell中exec函式詳解ll中

fork執行過程

#include #include #include #include #include #include #define cmd_collection_len 4 //命令陣列的長度(有4命令)

//命令索引

#define invalid_command -1 //無效命令返回-1

#define exit 0

#define cmd_1 1

#define cmd_2 2

#define cmd_3 3

//bool

#define true 1

char *cmdstr [cmd_collection_len ]= ;

//對比所有命令引數,如果有一樣的,就返回對應數字,用於後面執行

int getcmdindex(char *cmd)

}

①呼叫fork()函式建立子程序(當前程序的副本)成功後會返回兩次值,一次是在父程序中返回子程序的pid,另一次是在子程序中返回0;若建立不成功,則返回-1。

②呼叫exec()函式讀取指定可執行檔案並載入該子程序的位址空間執行,即把當前子程序替換成新的程式(cmd),此時程序的pid不變仍為fork()建立的子程序pid。

作業系統實驗1

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

作業系統 實驗三

分析程序爭用臨界資源的現象,學習解決程序互斥的方法。linux 程序控制 lockf 利用系統呼叫lockf fd,mode,size 對指定區域 有size指示 進行加鎖或解鎖,以實現程序的同步或互斥。其中,fd是檔案描述字 mode是鎖定方式,mode 1表示加鎖,mode 0表示解鎖 size...

作業系統實驗三

name procnque.c 程序排程模擬實驗原始碼 儲存結構鍊錶 description 實現乙個有 n級佇列的多級反饋佇列排程演算法。include stdio.h include include define getpch type type malloc sizeof type defin...