Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Integrantes:
Israel Solís Ahuactzin
Jose Adrian Montiel Cruz
Héctor Manuel Trujillo Castillo
Habid Alberto Betancourt López
Flor Arlethe Ramirez Badillo
Dulce Andrea Téllez Lorenzo
Definición:
struct sembuf {
unsigned short sem_num; // número del semáforo dentro del conjunto
short sem_op; // clase de operación
// según sea >0, <0 o ==0
short sem_flg; // modificadores de operación
};
Estructura semun: Es una unión, se utiliza en la llamada semctl para almacenar o recuperar
informaciones sobre los semáforos.
Estructura seminfo: Estructura que permite conocer los valores límite o actuales del sistema
mediante una llamada a semctl. Estas llamadas no se realizan generalmente en modo directo, sino que
están reservadas a las utilidades del sistema como el mandato ipcs.
Estructura sem: Se usa una estructura sem para cada semáforo en el sistema. Esta indica el valor
actual del semáforo y el pid de la última operación.
Estructura sem_queue: Estructura que permite conocer los procesos que están durmiendo
(bloqueados).
Estructura sem_undo: Estructura utilizada para poder deshacer las acciones en caso de fallo o
terminación del proceso
Principales funciones:
Prototipo de la función:
#include <sys/types.h>
#include<sys/ipc.h>
#include<sys/sem.h>
int semget (key_t key, int nsems,int semflg);
Prototipo de la función:
#include <sys/types.h>
#include <sys/ipc.h>
#include<sys/sem.h>
• semid: Identificador del semáforo (grupo sobre el cual las operaciones tendrán lugar).
• sops: Puntero a un array de estructuras que indican las operaciones que se llevaran acabo sobre
los semáforos (estructuras sembuf).
• nsops: Número de operaciones a realizar en esta llamada.
• Semctl (el control de los semáforos)
Permite la consulta, modificación o supresión de un grupo de semáforos. También permite
inicializar los semáforos y obtener información sobre el número de semáforos en espera de
aumento.
Prototipo de la función:
#include <sys/types.h>
#include <sys/ipc.h>
#include<sys/sem.h>
int semctl(int semid, int semnum, int cmd,union semun arg);
• Libro: Fundamentos de Sistemas Operativos 7ma Edición, Autores: Abraham Silberschatz, Peter Baer
Galvin & Greg Gagne
• Libro: Sistemas operativos modernos 3ra Edicion, ISBN: 9786074420463, Autor: Andrew S.
Tanenbaum
• Libro: Unix Programación Avanzada 3ra Edicion , Autor: Francisco M. Márquez
• Wiki de Sistemas Operativos
Enlace: https://1984.lsi.us.es/wiki-ssoo/index.php/Sem%C3%A1foros
• C & Linux
Enlace: http://www.chuidiang.org/clinux/ipcs/semaforo.php