Arquivo1: servidor.c #include #include #include #include #include #include #include #include #define SHMSZ 27 char SEM_NAME[]= "SOUFES"; int main() { char ch; int shmid; key_t key; char *shm,*s; sem_t *mutex; //”Nomeie” (identifique) o segmento de memória compartilhado _______________________________________________; //Crie e inicialize o semáforo mutex = _____________________________________; if(mutex == SEM_FAILED) { perror("Falha ao criar o semáforo"); _________________________________________; exit(-1); } //Crie o segmento de memória compartilhado com esta chave “key” shmid = ______________________________________; if(shmid<0) { perror("Falha ao criar segmento compartilhado"); exit(-1); } //Conecte (attach) este segmento à memória virtual do processo shm = _________________________________________; //Grave os dados na memória compartilhada (acesso exclusivo) s = ___________________________________________; for(ch='A';ch<='Z';ch++) { ___________________________________________; *s++ = ch; ___________________________________________; } //Substitua o loop abaixo por um semáforo binário while(*shm != '*') { sleep(1); } // Feche o semáforo e depois remova o semáforo e a área compartilhada ________________________________________________; ________________________________________________; ________________________________________________; _exit(0); }