semop () e sem_flg [fechado]

1

Devemos desenvolver um projeto para o curso de sistema operacional e usaremos a versão 14.04 do Ubuntu. No projeto, nos foi dado um pedaço de código, e foi escrito que essa parte do código incrementa o valor do semáforo.

No entanto, não há explicação sobre o código, exceto para sua tarefa. Eu estou tentando entendê-lo, pesquisando alguns sites, mas não consigo entender algumas partes. O código dado a nós:

void sem_signal(int semid, int val){
    struct sembuf semaphore;
    semaphore.sem_num = 0;
    semaphore.sem_op = val;
    semaphore.sem_flg = 1;
    semop(semid, &semaphore, 1);
}

Este código adiciona o valor "val" ao semáforo no conjunto de semáforos apontado por semid. O semáforo no qual a operação é executada é primeiro semáforo no conjunto. Isso é determinado por "sem_num". Na verdade, esses são meus fundamentos pesquisando os recursos. No entanto, não consigo entender;

1) por que o sem_flg está definido como 1?

2) por que o terceiro argumento do método semop() é igual a 1?

    
por Goktug 13.04.2018 / 12:57

0 respostas

Tags