91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 268.03 KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2024-08-23
  • 語言: 其他
  • 標(biāo)簽: linux??

資源簡介

基于共享內(nèi)存實現(xiàn)的理發(fā)師問題.

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#if?defined?(__GNU_LIBRARY__)&&?!defined?(_SEM_SEMUN_UNDEFINED)

#else

union?semun
{
int?val;
struct?semid_ds?*buf;
unsigned?short?int?*array;
struct?seminfo?*__buf;
};


#endif

#define?SHMDATASIZE?1000
#define?BUFFERSIZE?(SHMDATASIZE?-sizeof(int))


#define?WAITING?8
#define?MUTEX?16
#define?CHAIRS?3
#define?CUS?20
#define?BAR?28



#define?MAXSIZE?100


int?Semid?=?0;

void?customer?(int?shmid);

void?barbers(int?shmid);

void?v(int?*mutex);
void?p(int?*mutex);


int?masterinit?(void);
int?*standardinit?(int?shmidint?*semid);
void?delete?(void);
void?sigdelete?(int?signum);
void?cuthair(int?shmidint?semidchar?*buffer);

int?mysemget?(key_t?kyeint?nsemsint?semflg);
int?mysemctl?(int?shmidint?semnumint?cmdunion?semun?arg);
int?mysemop?(int?semidstruct?sembuf?*sopsunsigned?nsops);
int?myshmget?(key_t?keyint?sizeint?shmflg);
void?*myshmat?(int?shmidconst?void?*shmaddrint?shmflg);
int?myshmctl?(int?shmidint?cmdstruct?shmid_ds?*buf);

int?main?(int?argcchar?*argv[])
{
char?selection[3];
int?shmid;

if?(argc? {
shmid?=?masterinit();
}
else?
{
shmid?=?atoi?(argv[1]);
}
printf?(“Who?are?you?customer(1)?barber(2)?\n“);
fgets?(selectionsizeof?(selection)stdin);

switch?(selection[0])
{
case?‘1‘:customer(shmid);break;
case?‘2‘:barbers(shmid);break;

default:printf?(“invalid?choicequit?\n“);
}
return?0;
}

void?customer(int?shmid)
{
int?semid=0;
int?*buffer=0;
int?*waiting=0;
int?*customers=0;
int?*mutex=0;
int?*barbers=0;

char?selection[3];

buffer=standardinit(shmid&semid);
waiting=buffer+WAITING;
mutex=buffer+MUTEX;


customers=buffer+CUS;
barbers=buffer+BAR;

printf(“?begin?to?run?the?id?of?share?memory?is?%d?semaphore?id?is?%d?\n“shmidsemid);
??//??printf(“Press?any?key?when?you?want?to?cut?hair... \n“);
// fgets?(selectionsizeof?(selection)stdin);
????//??? fflush(stdout);

printf(“Now?waiting?for?mutex...?\n“);

p(mutex);
*waiting=*waiting+1;
if(*waiting???????????????????????

v(customers);
v(mutex);
????????????????????????printf(“waiting?for?barber...\n“);
p(barbers);
????????????????????????printf(“you?are?getting?hair?cut...\n“);
*waiting=*waiting-1;
printf(“finished\n“);
}
else?{v(mutex);*waiting=*waiting-1;
printf(“so?many?peoplelet‘s?go!\n“);
?? }

}

void?barbers(int?shmid)
{ int?semid=0;
int?*buffer=0;
int?*waiting=0;
int?*customers=0;
int?*mutex=0;
int?*barbers=0;

char?selection[3];

buffer=standardinit(shmid&semid);
waiting=buffer+WAITING;
mutex=buffer+MUTEX;
customers=buffer+CUS;
barbers=buffer+BAR;

while(1){char?input[3];




????????????????printf(“waiting?for?customer\n“);
p(customers);
???????????????//?printf(“waiting?for?mutex\n“);
//p(mutex);
//*waiting=*waiting-1;
printf(“Press?any?key?when

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????245726??2007-12-24?23:12??report.pdf

?????文件???????9297??2007-12-17?17:12??c

?????文件???????5906??2007-12-17?16:57??cusbar.c

?????文件?????160388??2007-12-24?23:11??readme.pdf

-----------?---------??----------?-----??----

???????????????421317????????????????????4


評論

共有 條評論