亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jinchengtongbu.txt

?? 一個操作系統(tǒng)進程同步的程序
?? TXT
字號:
#include <stdio.h>
#include <string.h>
#include <time.h>                /*time及stdlib:產(chǎn)生隨機數(shù)*/
#include <stdlib.h>
#include <conio.h>


typedef int semaphore;
typedef char products;


typedef struct _proc
{
   char name[32];           /*進程名*/
   int state;               /*狀態(tài) 1:運行 2:就緒 3:等待 4:完成*/
   char reason;             /*等待原因*/
   int inter;               /*斷點*/
}PROC;


semaphore s1=10,s2=0;
int PC;

PROC *pnow;                 /*一組全局變量*/
PROC proc[2];
products B[10];
char cc,xx;



/*下面是程序子函數(shù)*/
void print()
{

switch(pnow->state)
{
case 1:{printf("pnow->state:  run\n");break;}
case 2:{printf("pnow->state:  ready\n");break;}
case 3:{printf("pnow->state:  wait\n");break;}
case 4:{printf("pnow->state:  finish\n");break;}
}
}

products produce (char SRC[])       /*關(guān)于product: 與提示不同 在此我用來自動(非手動)判斷生產(chǎn)者結(jié)束條件*/
{                                   /*本子函數(shù)用來:從給出的字符串中讀入一個字符 很簡單*/
products c;
static int count=0;
int length;

length=strlen(SRC);

if(count<length)
{ proc[0].state=2;

   c=SRC[count];

   count+=1;

   return c;
}

else

{proc[0].state=4;return 0;}     /*若越界 即生產(chǎn)者任務(wù)結(jié)束*/


}

void P(semaphore *S,char C)        /*p操作函數(shù)*/
{
*S=*S-1;

printf("P_S%c : %d\n",C,*S);
if (*S<0)                          /*若S自減一后 S值小于0 則將調(diào)用p(s)的進程置為等待信號量s的狀態(tài) 否則將調(diào)用p(s)的進程置為就緒*/
{
pnow->state=3;
pnow->reason=C;

printf("pnow->reason: s%c\n",C);

}
else 
pnow->state=2;

print();
}

void PUT(products C)             /*PUT函數(shù) 將produce產(chǎn)生的產(chǎn)品(一個字符)放到B[]緩沖里*/
{
static IN=0;

B[IN]=C;


printf("B[IN] : %c\n",B[IN]);


IN=(IN+1)%10;

}

void V(semaphore *S,char C)     /*V操作 若s增一后不大于0 則找一個等待s信號量的進程置為就緒態(tài) 最后將調(diào)用v(s)的進程置為就緒*/
{

*S=*S+1;
printf("V_S%c : %d\n",C,*S);
printf("reason: s%c\n",C);

if (*S<=0)
{
if(proc[0].state==3&&proc[0].reason==C)
proc[0].state=2;
else if(proc[1].state==3&&proc[1].reason==C)
proc[1].state=2;
}

pnow->state=2;
print();

}


products GET()                 /*GET函數(shù) 從緩沖區(qū)中依次取出一個產(chǎn)品*/
{
static OUT=0;
products x;

x=B[OUT];
OUT=(OUT+1)%10;


return x;


}


void consume(products X)      /*消費產(chǎn)品 即將得到的字符打印出來*/
{

printf("product :%c",X);


}



void init()                 /*初始化函數(shù) 初始化兩個進程 由于進程數(shù)較少 用數(shù)組方式*/
{



strcpy(proc[0].name,"producer");
proc[0].state=2;
proc[0].inter=0;


strcpy(proc[1].name,"consumer");
proc[1].state=2;
proc[1].inter=0;


pnow=&proc[0];
PC=0;


}



void zlzx()               /*指令執(zhí)行函數(shù) 核心是一個switch函數(shù) 和j的計算*/
{
int i,j;

char c1;
char x;
char src[]="ILOVEYOU!";


x=src[strlen(src)-1];


i=PC;

PC=(i+1)%4;

if (strcmp(pnow->name,proc[0].name)==0)

j=i;

else j=i+4;             /*以上為j的計算 若是生產(chǎn)者進程 j取0~3 分別對應(yīng)produce P PUT V 若是消費者進程 j取4~7 分別對應(yīng)P GET V consume */



switch(j)
{
case 0: { cc=produce(src); printf("case 0:produce()   cc=%c\n",cc); getchar();   break;}

case 1: { printf("case 1  P(s1)\n");P(&s1,'1');getchar();    break;}

case 2: { printf("case 2  PUT()\n");printf("cc= %c\n",cc); PUT(cc); pnow->state=2;getchar();    break;}

case 3: {printf("case 3 V(s2)\n");V(&s2,'2'); getchar();    break;}

case 4: { printf("case 4 p(s2)\n");P(&s2,'2'); getchar();    break;}

case 5: {printf("case 5 GET()\n");xx=GET(); printf("xx :%c\n",xx); pnow->state=2;getchar();     break;}

case 6: { printf("case 6 V(s1)\n"); V(&s1,'1'); getchar();   break;}

case 7: {printf("case 7 consume()\n"); consume(xx); pnow->state=2; getchar();    break;}

default: {printf("error!");}


}

/*生產(chǎn)者運行結(jié)束? 置完成狀態(tài) 手動 不過本人已在produce函數(shù)中解決了此問題 故不再在使用*/


/*if(K!='y')
{
printf("kill produce?\n y-yes    n-no");

if(strcmp(c1=getchar(),'y')==0)
{K='y';proc[0].state=4;}
}

else

proc[0].state=4;*/




}



void clqdd()            /*處理器調(diào)度函數(shù)*/
{


while(1)                /*一個大while循環(huán) 結(jié)束條件為生產(chǎn)者和消費者狀態(tài)均不是就緒*/
{
int rdm;
pnow->inter=PC;
randomize();            /*隨機選擇就緒的進程*/
rdm=random(2);

printf("\n");
printf("rdm= :%d\n",rdm);


if (proc[rdm].state==2)
{pnow=&proc[rdm];

printf("pnow->name :%s\n",pnow->name);}

else if (proc[0].state==2)
pnow=&proc[rdm];
else if (proc[1].state==2)
pnow=&proc[rdm];
else
{
printf("GAME OVER! \n \t\t\tby 01 ");    /*若已經(jīng)沒有就緒進程 則結(jié)束本程序 署作者名:01*/
sleep(3);
return -1;
}

pnow->state=1;

PC=pnow->inter;


getchar();

zlzx();                     /*調(diào)用指令執(zhí)行函數(shù)*/
}

}
void paper()
{ int i; 
   gotoxy(1,25);        
   printf("press enter to see the result......\n");   
   getch();                      
   clrscr();                     
   gotoxy(1,1);             
   textcolor(GREEN);   
   textbackground(RED);   
   gotoxy(10,2);          
   putch(0xc12);        
   for(i=1;i<44;i++)
      putch(0xcd);    
   putch(0xbb);            
   for(i=3;i<20;i++)
   {
      gotoxy(10,i);putch(0xba);  
      gotoxy(54,i);putch(0xba);
   }  
   gotoxy(10,20);putch(0xc8);  
   for(i=1;i<44;i++)
      putch(0xcd);     
   putch(0xbc);                 
   window(11,6,60,21);       
   clrscr();             
  
   textbackground(BLACK);   
   window(1,1,80,25);      
   gotoxy(10,21);      
}





void main()
{
paper();

init();
clqdd();

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av影院| 国产盗摄一区二区| 国产精品久久久久久久久图文区| 欧美少妇bbb| 成人av在线电影| 激情欧美一区二区三区在线观看| 亚洲婷婷国产精品电影人久久| 久久免费电影网| 欧美日韩高清一区二区不卡| 成人污视频在线观看| 久草这里只有精品视频| 午夜欧美大尺度福利影院在线看| 亚洲天堂精品视频| 国产精品无码永久免费888| 精品三级av在线| 91精品麻豆日日躁夜夜躁| 91国内精品野花午夜精品 | 极品少妇xxxx偷拍精品少妇| 亚洲国产欧美日韩另类综合| 最近日韩中文字幕| 国产欧美一区二区三区沐欲 | 欧美国产精品中文字幕| www一区二区| 精品国产乱码久久久久久老虎 | 欧美日韩三级一区| 色婷婷综合久久久久中文| 成人av免费网站| 国产91精品入口| 国产不卡一区视频| 粉嫩av一区二区三区| 国产精品一区二区你懂的| 国产一区二区在线视频| 国产伦精品一区二区三区免费迷| 七七婷婷婷婷精品国产| 蜜桃久久av一区| 激情小说欧美图片| 国产麻豆日韩欧美久久| 国产成人免费av在线| 成人免费看黄yyy456| 成人97人人超碰人人99| 99视频国产精品| 欧美性受xxxx黑人xyx| 欧美三级日韩在线| 91精品在线免费| 欧美精品一区二区三区四区| 久久久天堂av| 国产精品家庭影院| 一区二区三区四区乱视频| 亚洲国产日韩a在线播放| 婷婷丁香激情综合| 九九**精品视频免费播放| 国产一区二区三区最好精华液| 国产一区二区看久久| 国产成人精品亚洲午夜麻豆| 成人黄色一级视频| 91福利在线播放| 337p亚洲精品色噜噜| 精品国产青草久久久久福利| 久久精品亚洲乱码伦伦中文| 亚洲视频在线一区二区| 亚洲图片一区二区| 看国产成人h片视频| 不卡的av电影| 欧美精品1区2区3区| 久久综合久久综合久久| **欧美大码日韩| 偷拍与自拍一区| 激情av综合网| 日本丰满少妇一区二区三区| 日韩一级完整毛片| 国产精品免费人成网站| 亚洲成人动漫在线免费观看| 国产一区福利在线| 欧美在线观看视频在线| 精品国产免费人成电影在线观看四季| 中文av字幕一区| 日本午夜精品一区二区三区电影| 国产精品一区二区你懂的| 欧美三级资源在线| 欧美国产精品v| 视频一区视频二区中文字幕| 国产jizzjizz一区二区| 欧美精品丝袜中出| 国产精品成人在线观看| 日本强好片久久久久久aaa| 99久久精品国产观看| 日韩欧美专区在线| 最新国产成人在线观看| 精品系列免费在线观看| 色婷婷精品久久二区二区蜜臀av| 日韩一二三区视频| 亚洲另类色综合网站| 国产一区二区三区日韩| 欧美日韩一区在线| 亚洲三级理论片| 国产乱子轮精品视频| 欧美人与禽zozo性伦| 国产精品不卡一区二区三区| 韩国成人精品a∨在线观看| 欧美在线一区二区| 国产精品国产三级国产aⅴ原创| 日本亚洲天堂网| 欧美三级蜜桃2在线观看| 亚洲人成在线观看一区二区| 国产成人亚洲综合a∨猫咪| 91精品国产色综合久久ai换脸| 亚洲日本欧美天堂| 成人精品gif动图一区| 精品国产青草久久久久福利| 日本中文在线一区| 日本韩国欧美一区| 亚洲视频在线一区| 波波电影院一区二区三区| 久久亚洲精品国产精品紫薇| 日本少妇一区二区| 在线不卡一区二区| 丝袜亚洲另类丝袜在线| 欧美日韩综合在线| 亚洲综合在线电影| 色久优优欧美色久优优| 亚洲天堂av一区| 色综合久久中文综合久久97 | 国产精品久久久久一区| 高清视频一区二区| 国产亚洲一区二区三区在线观看| 美腿丝袜亚洲一区| 日韩精品综合一本久道在线视频| 五月天视频一区| 91精品午夜视频| 日韩不卡手机在线v区| 在线播放视频一区| 日本欧美大码aⅴ在线播放| 欧美人与禽zozo性伦| 日本最新不卡在线| 精品久久免费看| 国产精品一区二区视频| 国产精品丝袜黑色高跟| 成人91在线观看| 亚洲精品水蜜桃| 欧美日韩电影在线播放| 天堂成人免费av电影一区| 欧美一区二区网站| 久久成人av少妇免费| 久久亚区不卡日本| www.久久久久久久久| 亚洲乱码中文字幕综合| 欧美影院一区二区| 男人的天堂久久精品| 精品国产成人在线影院| 成人免费视频caoporn| 亚洲欧美视频一区| 欧美男男青年gay1069videost| 日韩精品免费视频人成| 精品欧美一区二区久久| 国产精品亚洲人在线观看| 亚洲国产电影在线观看| 色老汉一区二区三区| 免费成人你懂的| 欧美激情在线免费观看| 色女孩综合影院| 免费人成精品欧美精品| 国产清纯美女被跳蛋高潮一区二区久久w | 97久久久精品综合88久久| 亚洲二区视频在线| 精品国产一区二区三区不卡| 成人黄色大片在线观看| 亚洲国产一区二区在线播放| 精品国产在天天线2019| 97精品超碰一区二区三区| 日本欧美在线看| 国产精品网友自拍| 欧美视频一区在线| 国产在线播放一区三区四| 日韩毛片视频在线看| 3751色影院一区二区三区| 成人免费看视频| 激情av综合网| 亚洲精品videosex极品| 精品国精品国产| 在线亚洲一区二区| 国产伦理精品不卡| 香蕉久久一区二区不卡无毒影院| 久久久久亚洲综合| 欧美日韩国产在线观看| 亚洲国产视频一区| 久久精品免费看| 久久国产精品无码网站| 欧美精品在线一区二区三区| 视频一区视频二区中文字幕| 欧美激情一区二区在线| 欧美一区二区三区在线视频| 色综合久久综合网97色综合| 国产麻豆精品theporn| 亚洲成人自拍偷拍| 亚洲欧美日韩精品久久久久| 久久综合中文字幕| 欧美一区二区黄色| 欧美亚洲动漫另类| 北条麻妃一区二区三区| 激情综合色播五月|