Monografías Plus »

Introducción a POSIX (Portable Operating System Interface + UniX)



Monografias.com
Introducción POSIX son un conjunto de normas IEEE/ISO que definen la interfaz entre las aplicaciones y el SSOO POSIX: Portable Operating System Interface + UniX Su objetivo es conseguir la portabilidad de las aplicaciones a nivel de código fuente La aplicación puede desarrollarse en C, Ada, Fortran y otros lenguajes Las normas definen los servicios que cada sistema operativo particular puede incluirlos o no La denominación oficial es IEEE Std. 1003, e ISO/IEC-9945
Monografias.com
POSIX: estándares base (C) POSIX 1, 1a Unix básico sin tiempo real POSIX 1b, 1d, 1i, 1j Extensiones de tiempo real POSIX 1c Extensiones de threads POSIX 1e Seguridad POSIX 1f Network File System POSIX 1g Servicios de red (sockets) POSIX 1h Tolerancia a fallos POSIX 21 Comunicaciones de TR
Monografias.com
POSIX: interfaz otros lenguajes POSIX 5, 5a, 5b Interfaces con Ada POSIX 9 Interfaces con Fortran 77
Monografias.com
POSIX: perfiles de entornos POSIX 10 Supercomputadores POSIX 13 Tiempo real POSIX 14 Multiprocesadores POSIX 18 Estación de trabajo POSIX
Monografias.com
POSIX de tiempo real ¿para qué? Existe gran diversidad de sistemas de TR: Núcleos de TR (LynxOS, VxWorks, QNX, etc.) Ejecutivos Ada En sistemas grandes: VMS y otros Era necesario definir un estándar que asegurase la portabilidad de aplicaciones a nivel de código fuente entre diferentes entornos de tiempo real
Monografias.com
Perfiles de entornos de aplicación PSE50: sistema de tiempo real mínimo Sólo procesos ligeros, sin gestión de memoria ni archivos ni terminal PSE51: controlador de tiempo real Añade el terminal y sistema de archivos PSE52: sistema de tiempo real dedicado Soporta procesos pesados y gestión de memoria PSE53: sistema de tiempo real generalizado Sistema completo con todos los servicios
Monografias.com
Características de los perfiles Perfil Sistema de archivos Múltiples procesos Threads Sistema mínimo Sistema multipropósito Controlador Sistema dedicado NO NO SÍ SÍ SÍ SÍ NO NO SÍ SÍ SÍ SÍ
Monografias.com
POSIX: Unix básico POSIX 1 define los servicios ofrecidos por Unix: Gestión de procesos: Creación y destrucción Sincronización Temporización Gestión de archivos Creación y borrado de archivos y directorios Trabajo con archivos especiales Protección de la información Entrada-salida y control
Monografias.com
POSIX: Extensiones de TR Para obtener determinismo en el comportamiento Planificación Gestión de memoria Señales Relojes y temporizadores Para facilitar la concurrencia Sincronización Memoria compartida Colas de mensajes Entrada-salida síncrona y asíncrona
Monografias.com
POSIX: Extensiones de threads POSIX 1c incorpora funciones para trabajar con hilos. Incluye: Gestión de hilos Sincronización de hilos Planificación de hilos Creación y destrucción de hilos Añade reentrada a algunas funciones de POSIX1 POSIX 1c puede hacer uso de funciones incluidas en POSIX 1 y POSIX 1b
Monografias.com
Definiciones Programa Archivo ejecutable residente en un dispositivo de almacenamiento permanente Se ejecuta por medio de la llamada exec() Proceso Es un programa en ejecución Los procesos se crean con la llamada fork() Servicios del sistema operativo Invocados por medio de funciones POSIX no diferencia entre llamadas al sistema y procedimientos de biblioteca
Monografias.com
Estructura de un proceso en C Núcleo Proceso de usuario Funciones main() Rutina de inicio exec() Llamada al sistema exit() _exit()
Monografias.com
Ejemplo /************************************** * Programa que imprime todos los * * argumentos de línea de órdenes * **************************************/ int main (int argc, char *argv[]) { int i; for (i=0; i
Monografias.com
Características de un proceso Cada proceso se caracteriza por una estructura de datos conocida como tabla de control de tarea que contiene: Identificador de proceso o PID Identificador de proceso padre o PPID Identificador de usuario o UID Identificador de grupo o GID Puntero a la memoria asignada Puntero a los recursos ... Cada proceso dispone de un espacio de direccionamiento virtual independiente
Monografias.com
Creación de procesos: fork() La llamada fork() crea una copia (hijo) del proceso que la invoca El hijo hereda del padre: Estado Semáforos Objetos de memoria Política de planificación, etc. El hijo no hereda: El PID Alarmas y temporizadores Operaciones de E/S asíncronas
Monografias.com
Interfaz de fork() Definida en: #include pid_t fork(void); Valores de retorno: Al padre: el PID del hijo Al hijo: cero En caso de error: devuelve -1 y la variable errno contiene el valor asociado al error