當前位置:首頁 » 課程大全 » 操作系統課程設計吃水果問題

操作系統課程設計吃水果問題

發布時間: 2021-02-02 14:55:32

『壹』 跪求操作系統中一家人吃蘋果橘子問題C或C++代碼,要能運行且結果正確

這是一個同步互斥問題呀,不是OS上有哇。

『貳』 操作系統中吃水果問題的同步管程步驟

有點不懂哦

『叄』 計算機操作系統題,爸爸放水果,兒子女兒吃的問題

是用P,V原語實現的那個吧,
先畫一個圖,父箭頭到兒,再父箭頭到女,再兒和女一起在下面內畫條橫線,兒和女的箭頭到父
然後容:
S(兒)=0,S(女)=0,S(父盤)=1
P(S盤) P(S兒) P(S女)
放 取走 取走
計放蘋果then V(S女)
else V(S兒)
要注意那些括弧都要在右下角標記~
這些是老師講課時候記的筆記~o(∩_∩)o...

『肆』 有關進程同步的程序:吃蘋果問題

begin
s:semaphore;
s:=1;
cobegin
process A
begin
L1: P(s);
放香蕉或蘋果;
V(s);
goto L1;
end;
process B
begin
L2:P(s);
拿蘋回果;
V(s);
goto L2;
end;
process C
begin
L3: P(s);
拿香答蕉;
V(s);
goto L3;
end;
coend;
end;

『伍』 不好意思,請教一下,關於計算機操作系統的,吃水果問題。 謝謝~

int mutex=1,s1=0,s2=0,s3=0;
father:{
wait(mutex);
if(s3==0) {signal(s1);s3+=1;}
signal(mutex);
}
daughter:{
wait(mutex);
wait(s1);s3-=1;
signal(mutex);
下面抄的mother ,son類似

『陸』 計算機操作系統問題,PV操作吃水果問題為什麼是屬於並發執行的

這不就是三個進程並發執行嗎
三個進程同時在
只是通過三個信號量同步放和吃

『柒』 求指教:用c語言寫吃蘋果問題,原理是操作系統同步與互斥 父親往盤子里放一個蘋果,兒子取一個吃,且盤

您好,有個例子,對您有用:
同步關系
設信號量e(表示盤子內為空),a(表示盤子里容是蘋果),o(表示盤子里是桔子)
int e=1,a=o=0;
main()
{father();
//son();
//daughter();/*三個為並發進程*/
}
father()
{while(1)
{ 洗水果
wait(e)
把水果放入盤子
if(水果是蘋果)signal(a)
else signal(o)
}
}

son()
{while(1)
{wait(o)
從盤子里取桔子
signal(e)
吃桔子}
}

daughter()
{while(1)
{wait(a)
從盤子里取蘋果
signal(e)
吃蘋果}
}

『捌』 猴子吃桃子問題 數據結構課程設計

//數組解法
#include<stdio.h>
void main()
{
int i,tao[10];
tao[9]=1;//tao[9]代表第10天剩的桃子數
for(i=8;i>=0;i--){
tao[i]=2*(tao[i+1]+1);
}
printf("共摘了%d個桃子!\n",tao[0]);
}
//遞歸實現
#include<stdio.h>
int tao(int n)
{
if(n==10) return 1;
return 2*(tao(n+1)+1);
}
void main()
{
int sum=0;
sum+=tao(1);
printf("共摘了%d個桃子!\n",sum);
}
至於用數據結構實現,可以採用棧,如下:
#include<stdio.h>
#include<stdlib.h>
//棧的結構定義
typedef struct{
int *base;
int *top;
}Stack;
//初始化棧
void InitStack(Stack &s)
{
s.base=(int *)malloc(sizeof(int));
if(s.base) s.top=s.base;
else{
printf("空間分配錯誤!\n");
exit(0);
}
}
//入棧
void PushStack(Stack &s,int data)
{
*s.top++=data;
}
//出棧
int PopStack(Stack &s)
{
return *(--s.top);
}
void main()
{
int i=10,data;
Stack s;
InitStack(s);
PushStack(s,1);//先將第10天的桃子數1入棧
while(i-->1){
data=PopStack(s);//出棧一個元素保存在data中
PushStack(s,2*(data+1));//再將2*(data+1)入棧
}
//最後棧中剩餘的那個元素就是第1天摘的桃子數
printf("共摘了%d個桃子!\n",PopStack(s));
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919