DEFINICION DE POSIX

Anuncio
Universidad Capitan General
Gerardo Barrios
Facultad de Ciencia y Tecnologia.
Sistemas Operativos
Tema:
Los Servicios Posix
Integrantes:
Ayala Vásquez William Alcides SMTS110510
Fecha de Entrega:
INDICE
INTRODUCCION
OBJETIVOS
OBJETIVOS GENERALES
OBJETIVOS ESPECIFICOS
MARCO TEORICO
DEFINICION DE POSIX
(Portable Operating System Interface para UNIX). Familia de estándares relacionados
especificados por la IEEE para definir APIs para la compatibilidad de software entre los
diferentes sistemas operativos Unix. El término "POSIX" fue sugerido por Richard Stallman en
respuesta a un requerimiento de la IEEE, que deseaba un nombre memorable.
La familia de estándares POSIX es formalmente designada como IEEE 1003, y el nombre del
estándar internacional ISO es ISO/IEC 9945.
Si los diseñadores de programas se adecúan a POSIX, sus aplicaciones podrán ejecutarse en
cualquier sistema operativo compatible con POSIX.
Los sistemas operativos que soportan POSIX son:
* A/UX
* AIX
* BSD/OS
* HP-UX
* INTEGRITY
* Irix
* LynxOS
* Mac OS X
* MINIX
* OpenVMS
* QNX
* RTEMS (POSIX 1003.1-2003 Profile 52)
* Solaris
* OpenSolaris
* UnixWare
* VxWorks
* Windows con kernel NT (usados en Windows NT, 2000, 2003; XP, Vista): sólo en algunas
ediciones o con determinadas aplicaciones instaladas.
IEEE
(Institute of Electrical and Electronics Engineers) Asociación de profesionales con sede en
EEUU que fue fundada en 1884, y que actualmente cuenta con miembros de más de 140
países. Investiga en campos como el aeroespacial, computacional, comunicaciones, etc.
APIs
1. (Application Programming Interface - Interfaz de Programación de Aplicaciones). Grupo
de rutinas(conformando una interfaz) que provee un sistema operativo,
una aplicación o una biblioteca, que definen cómo invocar desde un programa un
servicio que éstos prestan. En otras palabras, una API representa un interfaz de
comunicación entre componentes software.
El software que provee la funcionalidad descrita por una API se dice que es una
implementación del API. El API en sí mismo es abstracto, en donde especifica una
interfaz y no da detalles de implementación.
Un API a menudo forma parte de SDK (Kit de desarrollo de software).
Ejemplos de APIs:
* API de Windows
* API de Internet Explorer.
* OpenGL: API de gráficos en 3d.
* DirectX.
2. Es el método que utiliza un programa para interactuar con funciones del sistema
operativo.
4.4. Ejercicios de POSIX de Tiempo Real
Desarrolle las siguientes aplicaciones:
1. Gestión de hilos:
o Objetivos: Practicar con la creación y ejecución de hilos
o Descripción:
 Crear un programa con tres hilos
 Cada hilo consiste en un bucle que pinta 5 veces en
pantalla un mensaje diferente (por ejemplo, el valor de un
contador)
2. Planificación:
o Objetivos: Practicar con la planificación de hilos
o Descripción:
 Asignar a los tres hilos del ejercicio 1 la misma prioridad.
 Probar 2 casos:
a. Hilos planificados con la
política SCHED_RR
b. Hilos planificados con la
política SCHED_FIFO
 En ambos casos (FIFO y RR) probar las dos
siguientes alternativas:
a. Poner instrucciones nanosleep() en cada
lazo principal
b. Usar la función eat() (suministrada
en load.c) para simular tiempos de ejecución
en cada lazo principal
 Asignar prioridades diferentes a cada hilo
 Probar también la diferencia entre que el hilo se
duerma (nanosleep()) y que consuma CPU (eat())
3. Sincronización de acceso mutuamente exclusivo:
o Objetivos: Practicar con el mutex para realizar accesos
mutuamente exclusivos y evitar la inversión de prioridad.
o Descripción:
 Crear dos hilos que usan un recurso compartido durante
un cierto tiempo. Uno tiene prioridad alta, y otro baja.
Utilizar el modulo “load.h” para simular tiempos de
ejecución.
 Forzar que el hilo de prioridad alta se active durante la
región crítica del hilo de prioridad baja.
 Crear un tercer hilo de prioridad mediana, y que no
comparte el recurso.
 Forzar que el hilo de prioridad mediana se active durante
la espera del hilo de prioridad alta.
 Observar el efecto de la inversión de prioridad.
 Eliminar la inversión de prioridad.
4. Sincronización de espera:
o Objetivos: Practicar la sincronización de espera con variables
condicionales
o Descripción:
 Crear un programa con dos hilos
 El primer hilo lee un mensaje del teclado, lo escribe en
una variable protegida con mutex, y avisa al segundo hilo
señalando una variable condicional
 El segundo hilo espera en la variable condicional y,
cuando es señalizado, lee el mensaje y lo pinta en pantalla
 El proceso se repite indefinidamente. Es decir, no se trata
de hilos periódicos, sino de que cada hilo se activa una
sola vez, y su código consiste en un bucle indefinido.

GLOSARIO
Descargar