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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 基于消息的進程通訊.cpp

?? 基于消息的通訊系統設計 本設計的目的:是通過設計和調試一個基于消息的通訊系統
?? CPP
字號:
#include"iostream.h"
#include"stdio.h"
#include"string.h"//頭文件

const int M=3;    //消息隊列長度:M條(由自己設定)
const int N=3;    //最大進程數目:N個(由自己設定)
int num=0,mutex=0;//進程數目num,臨界區互斥量mutex

struct infom      //消息結構
{
	int inno,outno;  //輸入,輸出進程號
	char content[20];//內容
	infom *next;
}*q,*s,*r,*first;
struct process    //進程結構
{
	int no,in,out;   //自己,輸入,輸出進程號
	char content[20];//內容
}P[M];
void main()
{
	
	cout<<"說明:(1)本程序消息隊列長度:"<<M<<"條"<<endl;
	cout<<"      (2)本程序最大進程數目:"<<N<<"個"<<endl;
	cout<<"      (3)本程序由操作者控制首先發送消息,然后再接收"<<endl;
	first=new infom;
	first->next=NULL; //初始化消息隊列頭指針
	do
	{
		if(num>0)
			cout<<"由于消息隊列中有消息沒被接收,繼續循環!"<<endl;
	for(int i=0;i<N;i++) //設計進程運行循環體
	{
		int k=1;
		P[i].no=i; //初始化進程號
		cout<<"\n以下是對P["<<i<<"]的操作"<<endl;
		while(k)
		{
			if(num<=M) //判斷消息數量是否滿
			{
				cout<<"(1)發送 " <<endl ;
				cout<<"(2)接收 " <<endl ;
				cout<<"(0)退出 " <<endl ;
				cout<<"請選擇:";
				cin>>k; //選擇操作
				switch(k)
				{
				case 1:   //發送消息部分
					{
						if(num<M)
						{	
							cout<<"請輸入接收進程號和內容:";
    						cin>>P[i].out>>P[i].content; //輸入接收進程號和內容
						    if(mutex==0)
							{							    
    						  if(P[i].out>=0&&P[i].out<N) //判斷接收消息號是否越界
							  {
								mutex=1;num++;  //互斥占用臨界區變量mutex
        					    infom *mes;
        						mes=new infom;  //新申請消息指針
						       	mes->inno=P[i].no;
						       	mes->outno=P[i].out;
						       	strcpy(mes->content,P[i].content);
					        	if(num==1)
							    r=first;
						       	r->next=mes;  //利用尾插法新消息入隊							
						        r=mes;	
						       	r->next=NULL;
						       	mutex=0;       //釋放臨界區變量mutex
						       	cout<<"進程P["<<i<<"]發送消息成功!"<<endl;
								cout<<"進程P["<<mes->outno<<"]請注意接收消息!"<<endl;//提醒進程同步接收
								if(mes->outno!=i&&mes->outno!=(i+1)&&(i+1)<M)  //判斷消息是否等待接收
								cout<<"由于下一個運行的進程是P["<<i+1<<"],所以消息等待接收!"<<endl;//進程互斥等待
							  }
							    else
							    	cout<<"進程號越界!請重新選擇!"<<endl;
							}
						    else
						    	cout<<"條件不滿足(已經有進程在訪問臨界區),等待...."<<endl;
						}
						else
							cout<<"消息隊列已滿,請先接收,然后再發送!!!"<<endl;
						break;
					}
				case 2:    //接收消息部分
					{
						if(num>0)
						{
							s=first;
						    q=first->next;  //初始化工作指針
							while(q)
							{
								if(P[i].no==q->outno)//判斷進程號是否相等
								{
									if(mutex==0)   //進程同步接收
									{
										mutex=1;num--;  //互斥占用臨界區變量mutex
									    P[i].in=q->inno;
								        strcpy(P[i].content,q->content);
							    	    mutex=0;        //釋放臨界區變量mutex
							    	    cout<<"進程P["<<i<<"]接收消息成功!"<<endl;
									    cout<<"消息來自:"<<P[i].in<<"  內容是:"<<P[i].content<<endl;
										s->next=q->next;//刪除已接收消息
									    break;    //接收一條消息后退出循環
									}
							        else
										cout<<"條件不滿足(已經有進程在訪問臨界區),等待...."<<endl;
								}
								s=q;      //保存工作指針前驅
							    q=q->next;//工作指針下移
							}
							if(!q)
								cout<<"沒有本進程的消息!"<<endl;
						}
						else
							cout<<"消息隊列中沒有消息,請先發送消息"<<endl;
						break;
					}
				default: break; //退出過程部分
				}
			}
			else
			{
				cout<<"消息隊列已經放滿!請先取出消息,然后再發送!"<<endl;
			    break;
			}
		}
	}
	}while(num>0);  //當消息隊列中還有消息時,繼續循環,直到沒有消息為止
	cout<<"\n進程通訊過程結束! "<<endl;
}



/*
6、設計六  基于消息的通訊系統設計
目的與要求:
  本設計的目的:是通過設計和調試一個基于消息的通訊系統,來實現進程之間的間接通訊,
                使學生對進程間的通訊機制、進程間的同步機制有一個深入的理解。
具體要求如下:
  ⑴設計一個消息傳遞系統,使兩進程以消息為單位進行數據交換;
  ⑵以間接方式進行這種傳遞,發送進程把消息發送到中間實體,接收進程從中取得消息;
  ⑶中間實體應能保留一定數量的消息(如,保留10條消息);
  ⑷兩進程應保證同步與互斥。
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日本韩国| 欧美日韩免费电影| 免费看欧美美女黄的网站| 亚洲精品成人天堂一二三| 国产精品久久免费看| 亚洲猫色日本管| 老司机精品视频线观看86 | 亚洲国产wwwccc36天堂| 伊人一区二区三区| 国产成人综合亚洲91猫咪| 成人av电影在线| 91影视在线播放| 在线精品观看国产| 欧美精选午夜久久久乱码6080| 欧美色图第一页| 欧美成人精品二区三区99精品| 久久久久久亚洲综合影院红桃| 国产婷婷精品av在线| 国产精品久久久久久亚洲毛片| 视频一区二区三区在线| 国产一区日韩二区欧美三区| 波多野结衣中文字幕一区| 精品久久久久久久久久久院品网 | 中文字幕亚洲在| 亚洲成人动漫精品| 国产美女在线精品| 91精品国产综合久久久久久| 国产欧美精品一区二区色综合 | 99久精品国产| 欧美人xxxx| 亚洲成年人影院| 欧美日韩免费一区二区三区视频| 中文字幕一区二区日韩精品绯色| 国产一区二区在线电影| 日韩视频一区二区在线观看| 国产亚洲成年网址在线观看| 久久精品国产精品亚洲综合| 一区二区三区四区国产精品| 五月天一区二区三区| 国产一区二区三区在线观看免费| 日韩一区二区三区免费看| 日韩电影在线一区二区| 99久久免费精品| 亚洲人123区| 日本久久一区二区| 日本一区二区三区四区| 成人精品gif动图一区| 国产精品久久久久四虎| 91极品美女在线| 视频一区免费在线观看| 欧美一区二区三区色| 一区二区三区四区av| 欧美三区免费完整视频在线观看| 亚洲成人综合在线| 欧美一区二区播放| 国产乱子轮精品视频| 国产日产亚洲精品系列| 99国产精品久久久久久久久久 | www.av亚洲| 久久你懂得1024| 成人黄色av电影| 亚洲一区中文日韩| 在线观看中文字幕不卡| 偷拍自拍另类欧美| 精品国产乱码久久久久久1区2区| 亚洲大型综合色站| 欧美刺激午夜性久久久久久久| 亚洲国产成人tv| 精品精品国产高清一毛片一天堂| 国产 日韩 欧美大片| 久久久久久久久久美女| 91麻豆精品视频| 美女视频网站久久| 欧美精品123区| 国产91露脸合集magnet| 亚洲午夜精品久久久久久久久| 精品国产成人在线影院| 91麻豆精品一区二区三区| 久久99久久精品欧美| 欧美日本一道本| 成人久久18免费网站麻豆 | 国产精一品亚洲二区在线视频| 日韩欧美国产不卡| av激情成人网| 久久国产精品无码网站| 亚洲综合999| 欧美国产精品久久| 99久久精品国产观看| 免费观看日韩电影| 亚洲欧美区自拍先锋| 精品国偷自产国产一区| 欧美日韩一卡二卡三卡| www.亚洲色图| 国产一区欧美一区| 男人的j进女人的j一区| 亚洲午夜电影在线| 亚洲天堂av一区| 欧美日韩国产一级| av在线不卡免费看| 国产一区二区在线影院| 日韩黄色免费电影| 亚洲国产视频一区| 日韩美女精品在线| 国产精品狼人久久影院观看方式| 欧美va亚洲va国产综合| 欧美精品一卡二卡| 欧美日韩在线亚洲一区蜜芽| av中文字幕在线不卡| 国产盗摄精品一区二区三区在线| 日本aⅴ免费视频一区二区三区 | 日本丰满少妇一区二区三区| 成人性生交大片免费看在线播放| 老司机精品视频一区二区三区| 婷婷一区二区三区| 亚洲成人在线免费| 亚洲一二三区视频在线观看| 一区二区在线看| 亚洲精品你懂的| 亚洲国产欧美日韩另类综合 | 国产视频一区二区三区在线观看| 日韩欧美成人一区二区| 日韩精品一区二区三区在线观看| 欧美一区二区三区公司| 日韩欧美一级片| 精品久久久久久久人人人人传媒| 欧美岛国在线观看| 精品国产亚洲在线| 国产亚洲人成网站| 中文字幕第一区二区| 亚洲欧美一区二区在线观看| 成人欧美一区二区三区1314| 中文字幕人成不卡一区| 亚洲免费av高清| 亚洲一区二三区| 日韩精品视频网站| 久久国产综合精品| 国产成人精品免费看| 成人av午夜影院| 欧洲一区在线观看| 日韩一区二区电影在线| 26uuu国产在线精品一区二区| 欧美日韩激情一区二区三区| 91.com在线观看| 日韩精品一区二区三区中文不卡 | 一区二区三区四区视频精品免费 | 视频在线在亚洲| 久久99久久精品| 成人av资源在线观看| 欧美在线你懂的| 久久众筹精品私拍模特| 国产精品免费看片| 久久综合五月天婷婷伊人| 欧美国产视频在线| 亚洲国产wwwccc36天堂| 国产在线视频一区二区三区| 奇米色777欧美一区二区| 国产综合久久久久影院| 欧美在线色视频| 久久综合色天天久久综合图片| 自拍偷拍亚洲激情| 狠狠色丁香婷婷综合| k8久久久一区二区三区| 欧美久久久久久蜜桃| 国产精品网友自拍| 夜夜嗨av一区二区三区中文字幕| 美腿丝袜在线亚洲一区 | 免费一区二区视频| 成人小视频免费观看| 欧美日韩国产综合草草| 国产精品久久一卡二卡| 美女任你摸久久| 在线视频国内自拍亚洲视频| 精品国免费一区二区三区| 亚洲精品国产无套在线观| 国内精品久久久久影院色| 在线观看一区日韩| 日本一二三四高清不卡| 六月丁香婷婷色狠狠久久| 成人av集中营| 久久久亚洲精华液精华液精华液| 亚洲在线视频网站| 99热这里都是精品| 国产日韩综合av| 国模冰冰炮一区二区| 日韩亚洲欧美在线| 午夜久久久久久久久久一区二区| 91丨九色丨蝌蚪富婆spa| 国产精品久久久久一区二区三区| 国内精品自线一区二区三区视频| 欧美肥妇bbw| 午夜精品久久久久久久99水蜜桃 | 欧美激情艳妇裸体舞| 理论片日本一区| 91精品国模一区二区三区| 亚洲韩国精品一区| 欧美视频精品在线观看| 精品av久久707| 卡一卡二国产精品| 日韩精品一区二区三区swag| 日本欧美在线观看|