0% encontró este documento útil (0 votos)
153 vistas4 páginas

POSIX

El estándar POSIX define una interfaz portable para aplicaciones basadas en UNIX para lograr portabilidad entre sistemas. POSIX incluye estándares base, interfaces para diferentes lenguajes de programación, y perfiles de entornos de aplicaciones. Una parte importante de POSIX se enfoca en proveer portabilidad para aplicaciones con requerimientos de tiempo real a través de definiciones como POSIX.4, POSIX.4a y POSIX.4b.

Cargado por

aitor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
0% encontró este documento útil (0 votos)
153 vistas4 páginas

POSIX

El estándar POSIX define una interfaz portable para aplicaciones basadas en UNIX para lograr portabilidad entre sistemas. POSIX incluye estándares base, interfaces para diferentes lenguajes de programación, y perfiles de entornos de aplicaciones. Una parte importante de POSIX se enfoca en proveer portabilidad para aplicaciones con requerimientos de tiempo real a través de definiciones como POSIX.4, POSIX.4a y POSIX.4b.

Cargado por

aitor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Está en la página 1/ 4

POSIX – Aitor Barrachina Escrig

El estándar POSIX (Portable Operating System Interface) define una interface portable
para aplicaciones basada en el sistema operativo UNIX. El principal objetivo de este
estándar es la portabilidad de las aplicaciones a nivel de código fuente, mediante la
unificación de las diferentes versiones de UNIX. Cada uno de los estándares que lo
componen cubre diferentes aspectos de los sistemas operativos. Los estándares POSIX
se pueden agrupar en tres categorías diferentes:
-Estándares Base: Definen interfaces del sistema relacionadas con diferentes
aspectos del sistema operativo. Especifica la sintaxis y la semántica de estos
servicios del sistema operativo, de modo que los programas de aplicación
puedan invocarlos directamente, pero no especifica cómo se implementan estos
servicios, de este modo, los implementadores de sistemas pueden elegir la
implementación que crean más conveniente, siempre que cumplan la
especificación de la interface. Todos los estándares base desarrollados hasta el
momento lo han sido para el lenguaje C.

-Interfaces en diferentes lenguajes de programación: Son estándares que


traducen a un lenguaje de programación concreto los estándares base.

-Entornos de Sistemas Abiertos: Estos estándares incluyen una guía al entorno


POSIX y los perfiles de entornos de aplicación. Un perfil de aplicación es una lista
de los estándares POSIX, con especificación de las opciones y parámetros
necesarios, que se requieren para un cierto entorno de aplicación. El objetivo
principal de los perfiles de aplicación es conseguir un conjunto pequeño de
clases de implementaciones de sistemas operativos bien definidas y que sean
apropiadas para entornos particulares de aplicaciones.

Muchas aplicaciones en tiempo real, y los sistemas empotrados, tienen restricciones


físicas especiales que imponen el uso de sistemas operativos con un conjunto reducido
de funciones o servicios del sistema. Para estos sistemas es necesario que el estándar
permita implementaciones que sólo soporten un subconjunto de los servicios POSIX.
POSIX.4 es la parte del POSIX que define las interfaces para soportar aplicaciones con
requerimientos de tiempo real. Define un modelo con actividades concurrentes
denominadas procesos y tres políticas de planificación.
POSIX.4 también define funciones para bloquear en memoria física o bien todo el
espacio de direccionamiento de un proceso, o bien rangos seleccionados de ese
espacio. Estas funciones deberán ser utilizadas por los procesos con requerimientos
temporales estrictos, así como por aquellos procesos con los que se sincronicen. Para
permitir la sincronización, POSIX.4 define procesos a través de semáforos contadores,
desafortunadamente estos semáforos no evitan el fenómeno conocido por inversión de
prioridad no acotada. Esto ocurre cuando un proceso de prioridad alta tiene que
esperar a que un proceso de prioridad baja termine de utilizar un determinado recurso
que tiene reservado.
POSIX.4 define los objetos de memoria compartida, que son regiones de memoria que
pueden ser mapeadas en el espacio de direcciones de un proceso. Cuando dos o más
procesos mapean el mismo objeto de memoria entonces comparten la región de
memoria asociada. Al igual que en el caso de los semáforos, los objetos de memoria
compartida se identifican por un nombre que pertenece a un espacio de nombres
dependiente de la implementación.
Puesto que muchas aplicaciones de tiempo real están basadas en el rápido intercambio
de eventos en el sistema, el POSIX.4 ha extendido la interface de señales para conseguir
las siguientes características:
-Las señales de tiempo real se guardan en colas, por lo que los eventos no se
pierden.
-Las señales de tiempo real pendientes de procesado se extraen de la cola en
orden de prioridad, usando el número de señal como prioridad. Esto permite
diseñar aplicaciones con tiempos de respuestas más rápidos ante eventos
urgentes
-Las señales de tiempo real contienen un campo adicional de información, que la
aplicación puede utilizar para intercambiar datos entre el generador de la señal
y el módulo que la procesa.

Se especifica un mecanismo sencillo de colas de mensajes para la comunicación entre


procesos. Las colas de mensajes están identificadas por un nombre perteneciente a un
espacio de nombres dependiente de la implementación. Los mensajes tienen asociado
un campo de prioridad, y se extraen de las colas en orden de prioridad. Esta facilidad
permite minimizar la cantidad total de inversión de prioridad en el sistema.
El POSIX.4 también define funciones para que las operaciones de lectura y escritura
normales se realicen de forma sincronizada.
POSIX.4a define interfaces para soportar múltiples actividades concurrentes,
denominadas threads, dentro de cada proceso POSIX. Los threads que pertenecen al
mismo proceso comparten el mismo espacio de direccionamiento. Pueden ser
implementados con tiempos de cambio de contexto y de creación y destrucción más
bajos que los de los procesos.
Los threads pueden usar todas las funciones definidas en el POSIX.4 y POSIX.1, además
de las funciones definidas específicamente para threads en el POSIX.4a.

POSIX.4b define extensiones adicionales de tiempo real para soportar la portabilidad de


aplicaciones con requerimientos de tiempo real.

POSIX.5 define las interfaces básicas del sistema para lenguaje Ada, que es un estándar
complementario de aplicación a los sistemas de tiempo real. En este estándar se
especifica que un programa Ada se comporta como un proceso POSIX. Aunque los
servicios del sistema operativo son los mismos que los especificados para C en el
POSIX.1, se han tenido en cuenta las facilidades especiales del lenguaje Ada al
desarrollar las interfaces. Las interfaces Ada más prometedoras por su funcionalidad
añadida, son las interfaces para la extensión threads.

El POSIX es un estándar de sistema operativo en evolución, que se prevé que será


ampliamente utilizado en los próximos años. Una importante parte de este estándar
está pensada para proporcionar la portabilidad de aplicaciones con requerimientos de
tiempo real. Junto a las interfaces de servicios del sistema, se estandarizan también
perfiles de entornos de aplicaciones que permitirán a los implementadores desarrollar
sistemas operativos POSIX de tiempo real para una gran variedad de plataformas, desde
los sistemas empotrados pequeños hasta los sistemas de tiempo real grandes. El
estándar que define interfaces en diferentes lenguajes de programación, en particular,
las interfaces de tiempo real están siendo definidas para C y Ada, que son los lenguajes
estándar de programación más importantes para los sistemas prácticos de tiempo real.
Características de POSIX:

 Nombres de funciones cortos y en letras minúsculas (fork, read, close)


 las funciones normalmente devuelve 0 en caso de éxito, o -1 en caso de error
(variable errno)
 recursos gestionados por el sistema operativo se referencian mediante
descriptores
 Sistemas operativos compatibles:
 A/UX
 AIX
 BSD/OS
 DSPnano
 HP-UX
 INTEGRITY
 IRIX
 LynxOS
 Mac OS X v10.5 en Procesadores Intel.
 MINIX
 MPE/iX
 QNX (IEEE Std. 1003.13-2003 PSE52;
 RTEMS (POSIX 1003.1-2003 Profile 52)
 Solaris
 Unison RTOS
 UnixWare
 velOSity
 VxWorks (IEEE Std. 1003.13-2003 PSE52;

También podría gustarte