第一題
偽**完成
int
main()
//主函式示例
patienti()
return;}
nurse()
doctor()
return
}
找到幾篇可以參考的文章
這篇含有對佇列的操作,打算在p,v操作間實現對佇列的操作而非僅僅輸出文字「我進病房啦」之類的
這兩篇大概是使用執行緒的範例
理髮師問題
稍微改了一下第一篇的main函式
寫了doctor函式
#include
#include
#include
#include
#include
#include
#include
sem_t sa;
sem_t sb;
sem_t s1;
//滿緩衝區數目
sem_t s2;
//空緩衝區數目
sem_t s;
pthread_mutex_t mutex;
void
*doctor (
void
*arg)
/*醫生執行緒程式*/
}void
*nurse (
void
*arg)
/***執行緒程式*/
}void
*paitient (
void
*arg)
/*病人執行緒程式*/
}
int
main()
//建立1個醫生
pthread_create
(&doc,
null
, doctor,
null);
//建立1個**
pthread_create
(&nur,
null
, nurse,
null);
for(i =
0; i <10;
++i)
/*等待病人執行緒退出*/
pthread_join
(c[i]
,&thread_result)
;pthread_join
(doc,
&thread_result)
;/*等待醫生執行緒退出*/
pthread_join
(nur,
&thread_result)
;/*等待**執行緒退出*/
pthread_mutex_destroy
(&mutex)
;/*銷毀互斥*/
return0;
}
訊號量申請那裡還沒寫好
建立程序那裡的指標是啥也沒明白
先醬紫
#include
#include
#include
#include
#include
#include
#include
sem_t sa;
sem_t sb;
sem_t s1;
//滿緩衝區數目
sem_t s2;
//空緩衝區數目
sem_t s;
pthread_mutex_t mutex;
int patn=0;
void
*doctor (
void
*arg)
/*醫生執行緒程式*/
return
null;}
void
*nurse (
void
*arg)
/***執行緒程式*/
return
null;}
void
*paitient (
void
*arg)
/*病人執行緒程式*/
intmain()
; pthread_mutex_init (
&mutex,
null);
/*初始化互斥*/
//建立1個**
pthread_create
(&nur,
null
, nurse,
null);
//建立1個醫生
pthread_create
(&doc,
null
, doctor,
null);
//建立10個病人
for(
int i =
0; i <
10; i++
)//for(int i = 0; i < 10; ++i) /*等待病人執行緒退出*/
pthread_join
(c,null);
pthread_join
(doc,
null);
/*等待醫生執行緒退出*/
pthread_join
(nur,
null);
/*等待**執行緒退出*/
pthread_mutex_destroy
(&mutex)
;/*銷毀互斥*/
sem_destroy
(&sa)
;sem_destroy
(&sb)
;sem_destroy
(&s1)
;sem_destroy
(&s2)
;sem_destroy
(&s)
;return0;
}
凌晨1:27,終於寫完**了 作業系統實驗
一 實驗目的 理解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 ...
實驗作業系統
實驗一 linux使用環境 實驗二 linux下c程式設計環境 1 設有乙個三位數,將它的百 十 個位上的3個數,各自求立方,然後加起來,正好等於這個3位數,請在linux環境下程式設計找出所有滿足條件的數,並編譯 除錯 執行你的程式。include int main return0 實驗三 程序觀...