Manejo De Interbloqueo SO
Enviado por Armand_JP • 16 de Julio de 2014 • 2.225 Palabras (9 Páginas) • 278 Visitas
UNIVERSIDAD CENTRAL DEL ECUADOR
TRABAJO DE SISTEMAS OPERATIVOS
TEMA:
MANEJO DE INTERBLOQUEO EN EL SISTEMA OPERATIVO DEBIAN
NOMBRE:
JONATHAN FABRICIO PAREDES
AULA:
SALA 1
SEMESTRE:
ABRIL-SEPTIEMBRE
Concurrencia Interbloqueo en DEBIAN
DEBIAN proporciona diversos mecanismos de comunicación y sincronización entre procesos. En esta parte, se revisarán los más importantes:
• TUBERÍAS (PIPES).
CONCEPTOS GENERALES.
Descriptor de fichero:
Número entero positivo usado por un proceso para identificar un fichero abierto. Esta traducción se realiza mediante una tabla de descriptores de fichero, ubicado en la zona de datos del proceso.
Descriptores reservados:
• 0: entrada normal (stdin).
• 1: salida normal (stdout).
• 2: salida de error (stderr).
Redirección:
Establecer copias del descriptor de ficheros de un archivo para encauzar las operaciones de E/S hacia otro fichero.
Tubería:
Mecanismo de intercomunicación entre procesos que permite que 2 o más procesos envíen información a cualquier otro.
Tubería sin nombre:
Enlace de comunicación unidireccional, capaz de almacenar su entrada (hasta 4 KB en BSD o hasta 40 KB en System V).
Tuberías nombradas (FIFO):
Permiten una comunicación menos restringida, ya que las colas FIFO existen en el sistema de archivos hasta que son borradas.
Características:
• Permite comunicar procesos no emparentados.
• Tiene una entrada en el sistema de archivos.
• Usa una política de colas "primero en llegar, primero en servirse".
• Sólo disponible en Debian y Unix
Redirección.
Subrutinas dup y dup2:
- Descripción:
Duplica un descriptor de fichero.
- Formatos:
#include <unistd.h>
#include <fcntl.h>
#include <sys/types>
int dup (desc_abierto)
int desc_abierto;
int dup2 (desc_abierto, desc_nuevo)
int desc_abierto, desc_nuevo;
- Parámetros:
desc_abierto: Descriptor de fichero abierto.
desc_nuevo: Nuevo descriptor de fichero devuelto por dup2.
- Devuelve:
dup devuelve el menor descriptor de fichero que esté libre.
dup2 devuelve el valor de desc_nuevo.
Ambas subrutinas devuelven el valor -1 en caso de error.
Subrutina fcntl:
- Descripción:
Realiza operaciones de control sobre ficheros abiertos, tales como:
• duplicar el descriptor,
• poner o leer características del descriptor,
• poner o leer estado del fichero,
• gestionar bloqueos de registros,
• gestionar la propiedad de la E/S asíncrona,
• cerrar varios ficheros.
- Formato:
#include <unistd.h>
#include <fcntl.h>
#include <sys/types>
int fcntl (descriptor, comando, argumento)
int descriptor, comando, argumento);
- Parámetros:
descriptor: Descriptor del fichero.
comando: Operación ha realizar.
argumento: Parámetro del comando.
- Devuelve:
Valor devuelto por el comando; -1, en caso de error.
- Operaciones:
F_DUPFD: Obtener el menor descriptor de fichero disponible que sea mayor que el parámetro descriptor. Mantiene el mismo puntero y las mismas características del fichero original.
F_GETFD: Obtener características del descriptor.
F_SETFD: Poner características del descriptor.
F_GETFL: Obtener estado del fichero.
F_SETFL: Poner estado del fichero.
F_GETLK: Obtener información de bloqueo.
F_SETLK: Poner bloqueo.
F_SETLKW: Poner bloqueo en una zona bloqueada.
F_GETOWN: Obtener PID (>0) o PGID (<0) del proceso que recibe las señales SIGIO o SIGURG.
F_SETOWN: Poner PID (>0) o PGID (<0) del proceso gestor de la E/S asíncrona.
F_CLOSEM: Cierra todos los descriptores desde descriptor hasta el valor máximo (OPEN_MAX).
- Características del descriptor de ficheros:
FD_CLOEXEC: Indica si el descriptor se cerrará
...