Your SlideShare is downloading. ×
0
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Posix
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Posix

6,099

Published on

Estandard para Sistemas Operativos

Estandard para Sistemas Operativos

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,099
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
199
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UNIVERSIDAD NACIONAL AUTONOMA DE HONDURAS Facultad de Ciencias Económicas Departamento de Informática Administrativa Asignatura: Sistemas Operativos I Catedrático: Lic. Carmen González Sección: 1101 Alumno: Roy Portillo Álvarez Cuenta: 20091002855 Tegucigalpa M.D.C. 20 de Mayo de 2012
  • 2. POSIXPortable Operating System Interface X
  • 3. POSIXPOSIX es el acrónimo de Portable Operating System Interface;la X viene de UNIX como seña de identidad de la API.El término fue sugerido por Richard Stallman en respuesta a lademanda de la IEEE , que buscaba un nombre fácil de recordar.Una traducción aproximada del acrónimo podría ser "Interfaz desistema operativo portable" o "Interfaz portable de sistemaoperativo".
  • 4. ¿Que es POSIX?O POSIX es el estándar de interfaz de sistemas operativos portables de IEEE basado en el sistema operativo UNIX. Aunque UNIX era prácticamente un estándar industrial, había bastantes diferencias entre las distintas implementaciones de UNIX, lo que provocaba que las aplicaciones no se pudieran transportar fácilmente entre distintas plataformas UNIX.O El POSIX Se trata de un estándar que intenta asegurar la portabilidad entre diferentes sistemas operativos. Dentro del estándar se especifica el comportamiento de las expresiones regulares y de las herramientas más comunes que las usan.
  • 5. O Estos son una familia de estándares de llamadas al sistema operativo definido por el IEEE y especificado formalmente en el IEEE 1003. Persiguen generalizar las interfaces de los sistemas operativos para que una misma aplicación pueda ejecutarse en distintas plataformas. Estos estándares surgieron de un proyecto de normalización de las API y describen un conjunto de interfaces de aplicación adaptables a una gran variedad de implementaciones de sistemas operativos.
  • 6. El POSIX es un grupo de estándares en evolución. Cada unode los estándares que lo componen cubre diferentes aspectosde los sistemas operativos. Algunos de ellos ya han sidoaprobados, mientras que otros están aún en fase de desarrollo.Los estándares POSIX se pueden agrupar en tres categoríasdiferentes:
  • 7. 1)Estándares de Base Definen interfaces del sistema relacionadas condiferentes aspectos del sistema operativo. El estándar especifica la sintaxisy la semántica de estos servicios del sistema operativo, de modo que losprogramas de aplicación puedan invocarlos directamente. El estándar noespecifica cómo se implementan estos servicios; de este modo, losimplementadores de sistemas pueden elegir la implementación que creanmás conveniente—y así competir entre ellos—, siempre que cumplan laespecificación de la interface. Todos los estándares base desarrolladoshasta el momento lo han sido para lenguaje C. En el momento de escribireste artículo está abierto el debate sobre si los estándares base debendesarrollarse de forma independiente del lenguaje, y luego especificarinterfaces concretas para los diferentes lenguajes de programación.
  • 8. 2) Interfaces en diferentes lenguajes de programación: Son estándaressecundarios que traducen a un lenguaje de programación concreto losestándares base. Los lenguajes utilizados hasta el momento son Ada,Fortran 77, y Fortran 90, además del lenguaje C, en el que se hanespecificado hasta el momento los estándares base.
  • 9. 3) Entorno de Sistemas Abiertos Estos estándares incluyen una guía alentorno POSIX y los perfiles de entornos de aplicación. Un perfil deaplicación es una lista de los estándares POSIX, con especificación de lasopciones y parámetros necesarios, que se requieren para un cierto entornode aplicación. El objetivo principal de los perfiles de aplicación es conseguirun conjunto pequeño de clases de implementaciones de sistemasoperativos bien definidas y que sean apropiadas para entornos particularesde aplicaciones. La Tabla IV muestra la lista de estándares que estánsiendo desarrollados en este grupo.
  • 10. ¿Donde se Utiliza ?O En hilos, se les asignan porciones de tiempo por el núcleo.O Definen interfaces de sistemas operativos;O Permiten el desarrollo de Software portable y reutilizable;O Interfaz básica;O Extensiones de tiempo real;O Procesos ligeros;O Seguridad;O Servicios de red;O Tolerancia de fallos;O Comunicaciones de tiempo real.
  • 11. Uso del POSIXO Especifica las interfaces de usuario y software al sistema operativo en 15 documentos diferentes. La línea de comandos estándar y las interfaces de scripting se basaron en Korn Shell. Otros programas a nivel de usuario (user-level), servicios y utilidades incluyen AWK, echo, ed y cientos de otras. Los servicios a nivel de programa requeridos incluyen definición de estándares básicos de I/O, (file, terminal, y servicios de red).O También especifican una API para las bibliotecas de threading, que es muy utilizada en una gran variedad de sistemas operativos. Una serie de pruebas acompañan al estándar POSIX. Son llamadas “PCTS” en alusión al acrónimo “Posix Conformance Test Suite”. Desde que la IEEE empezó a cobrar altos precios por la documentación de POSIX y se ha negado a publicar los estándares, ha aumentado el uso del modelo Single Unix Specification. Este modelo es abierto, acepta entradas de todo el mundo y está libremente disponible en Internet. Fue creado por The Open Group.
  • 12. O Sincronización de procesos. Define funciones para permitir la sincronización de procesos a través de semáforos contadores.O Memoria compartida. Tienen espacios de direccionamiento que son independientes entre sí. Sin embargo, muchas aplicaciones de tiempo real (y también muchas que no son de tiempo real) necesitan compartir grandes cantidades de datos de una manera eficiente.O Señales de tiempo real. Permite notificar eventos que ocurren en el sistema, pero no es completamente satisfactorio para aplicaciones de tiempo real. Las señales no se almacenan en colas y, por tanto, algunos eventos se pueden perder. Las señales no están priorizadas, y esto implica tiempos de respuesta más largos para eventos urgentes.O Comunicación de procesos. 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.
  • 13. O Entrada/Salida Asíncrona. Define funciones que permiten solapar el procesado de aplicaciones con las operaciones de entrada/salida iniciadas por la aplicación. Una operación de entrada/salida asíncrona es similar a las operaciones de entrada/salida normales, con la excepción de que una vez que la operación asíncrona ha sido iniciada por un proceso, este proceso no se suspende y puede continuar ejecutando instrucciones, en paralelo con la operación de entrada/salida.O Extensión de threads. Define interfaces para soportar múltiples actividades concurrentes, denominadas threads, dentro de cada proceso POSIX. Los threads definidos en el POSIX tienen un estado asociado más pequeño que el de un proceso. Todos 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. El POSIX.4a ha sido específicamente desarrollado para abordar las necesidades de los sistemas multiprocesadores de memoria compartida.
  • 14. Características del POSIXO Algunos tipos de datos utilizados por las funciones no se definen como parte de estándar, pero se definen como parte de la implementación. Estos tipos se encuentran definidos en el archivo de cabecera <sys/types.h>. Estos acaba con el sufijo _t. Por ejemplo, uid_t es el tipo que se emplea para almacenar un identificador de usuario.O Los nombres de las funciones en POSIX son en general cortos y con todas sus letras en minúsculas. Ejemplo de funciones en POSIX son: 1. Fork, para crear un nuevo proceso. 2. Read, para leer datos de un archivo. 3. Close, para cerrar un archivo.
  • 15. O Las funciones, normalmente devuelven cero si se ejecutaron con éxito 0-1 en caso de error.O Cuando una función devuelve -1, se almacena en una variable global, denominada errno, el código de error. Este código de error es un valor entero. La variable errno se encuentra definida en el archivo de cabecera <errno.h>.O La mayoría de los recursos gestionados por el sistema operativo se referencian mediante descriptores. Un descriptor es un numero entero mayor o igual que cero.
  • 16. Funciones del POSIXInstalaciónLas funciones POSIX son habilitadas por defecto. Puededeshabilitar las funciones tipo POSIX con --disable-posix.Constantes predefinidasEstas constantes están definidas por esta extensión y estarándisponibles solamente cuando la extensión ha sido o biencompilada dentro de PHP o grabada dinámicamente en tiempo deejecución.POSIX_F_OK (integer)Verificar si el archivo existe.POSIX_R_OK (integer)Verificar si el archivo existe y tiene permisos de lectura.POSIX_W_OK (integer)Verificar si el archivo existe y tiene permisos de escritura.POSIX_X_OK (integer)Verificar si el archivo existe y tiene permisos de ejecución.POSIX_S_IFBLK (integer)Archivo especial de bloque.POSIX_S_IFCHR (integer) Archivo especial de carácter.POSIX_S_IFIFO (integer)Archivo especial FIFO (pipe con nombre).POSIX_S_IFREG (integer)Archivo normal.POSIX_S_IFSOCK (integer)Socket.
  • 17.  posix_access — Determinar la accesibilidad de un archivo, verifica el permiso del usuario sobre un archivo. posix_ctermid — Recoge el nombre de ruta de la terminal de control. Necesita ser escrito. posix_get_last_error — Recuperar el número de error establecido por la última función posix que ha fallado. Recupera el número de error establecido por la última función posix que falló. El mensaje de error del sistema asociado con el valor errno puede ser consultado con posix_strerror(). posix_getcwd — Nombre de ruta del directorio actual. Necesita ser escrito cuanto antes. posix_getegid — Devuelve el ID de grupo efectivo del proceso actual. Devuelve el valor numérico ID de grupo efectivo del proceso actual.
  • 18.  posix_geteuid — Devuelve el ID de usuario efectivo del proceso actual. Devuelve el valor numérico ID de usuario efectivo del proceso actual. posix_getgid — Devuelve el ID de grupo real del proceso actual. Devuelve el valor numérico ID de grupo real del proceso actual. posix_getgrgid — Devuelve información sobre un grupo a través del id de grupo. Necesita ser escrito. posix_getgrnam — Devuelve información sobre un grupo a través del nombre. Necesita ser escrito. posix_getgroups — Devuelve el conjunto de grupos del proceso actual. Devuelve un vector de enteros que contiene los ids numéricos de grupo de el conjunto de grupos del proceso actual. posix_getlogin — Devuelve el nombre de usuario. Devuelve el nombre de usuario (login) que es dueño del proceso actual. posix_getpgid — Recoge el id del grupo de procesos para el control de trabajo. Devuelve el identificador de grupo de procesos del proceso pid.
  • 19.  posix_getpgrp — Devuelve el identificador de grupo del proceso actual. Devuelve el identificador de grupo de proceso del proceso actual. posix_getpid — Devuelve el identificador del proceso actual. Devuelve el identificador de proceso del proceso actual. posix_getppid — Devuelve el identificador del proceso padre. Devuelve el identificador de proceso del proceso padre del proceso actual. posix_getpwnam — Devuelve información sobre un usuario a través del nombre de usuario. Devuelve un vector asociativo conteniendo información sobre un usuario referenciado por un nombre alfanumérico, pasado a la función en el parámetro username . posix_getpwuid — Devuelve información sobre un usuario a través de su id. Devuelve un vector asociativo que contiene información sobre un usuario referenciado con un ID de usuario, pasado por el parámetro uid. posix_getrlimit — Devuelve información sobre los limites de recursos del sistema. Necesita ser escrita tan pronto como sea posible. posix_getsid — Consigue el sid actual del proceso. Devuelve el sid del proceso pid . Si pid es 0, se devolverá el sid del proceso actual. Esta no es una función POSIX, pero es normal en sistemas System V. Si su sistema no soporta esta función a nivel de sistema, esta función PHP devolverá siempre FALSE.
  • 20.  posix_getuid — Devuelve el ID de usuario real del proceso actual. Devuelve el valor numérico ID de usuario real del proceso actual. posix_isatty — Determinar si un descriptor de archivo es una terminal interactiva. Determina si el descriptor de archivo da hace referencia a un dispositivo tipo terminal válido. posix_kill — Manda una señal a un proceso. Manda la señal sig al proceso con el identificador de proceso pid . Devuelve FALSE, si no puede enviar la señal. Si sí la envía devuelve TRUE . posix_mkfifo — Crear un archivo especial fifo (un pipe con nombre). posix_mkfifo() crea un archivo FIFO especial que existe en el sistema de archivos y actúa como un punto de comunicación bi-direccional para los procesos. posix_mknod — Crear un archivo especial u ordinario. Crea un archivo especial u ordinario. posix_setegid — Establecer el GID efectivo del proceso actual. Establece el ID de grupo efectivo del proceso actual. Esta es una función privilegiada y se necesitan los permisos apropiados (usualmente root) en el sistema para contar con la capacidad de ejecutar esta función.
  • 21.  posix_seteuid — Establecer el UID efectivo del proceso actual. Establece el ID de usuario real del proceso actual. Esta es una función privilegiada y se necesitan los permisos apropiados (usualmente root) en el sistema para tener la capacidad de ejecutar esta función. posix_setgid — Asigna el GID efectivo del proceso actual. Asigna el ID de grupo real del proceso actual. Esta es una función privilegiada y necesitas los privilegios apropiados (normalmente root) en tu sistema para realizar esta función. El orden apropiado de llamada es posix_setgid() primero, posix_setuid() después.Devuelve TRUE si tiene éxito, FALSE en caso contrario. posix_setpgid — Asigna el id de grupo de procesos para el control de trabajos. Inserta el proceso pid en el grupo de procesos pgid. posix_setsid — Convierte el proceso actual en líder de sesión. Convierte el proceso actual en líder de sesión. posix_setuid — Asigna el UID efectivo del proceso actual. Asigna el ID de usuario real al proceso actual. Esta es una función privilegiada y necesitas los privilegios apropiados (normalmente root) en tu sistema para realizar esta función.
  • 22.  posix_strerror — Recuperar el mensaje de error del sistema asociado con el errno dado. Devuelve el mensaje de error del sistema POSIX asociado con el errno. Es posible obtener el parámetro errno llamando la función posix_get_last_error(). posix_times — Recoge el tiempo de los procesos. Devuelve un hash de cadenas con información sobre el uso de CPU del proceso actual. Los índices del hash sona) ticks - el numero de ticks de reloj que han pasado desde el reinicio.b) utime - tiempo de usuario usado por el proceso actual.c) stime - tiempo de sistema usado por el proceso actual.d) cutime - tiempo de usuario usado por el proceso actual e hijos.e) cstime - tiempo de sistema usado por el proceso actual e hijos. posix_ttyname — Determina el nombre del dispositivo terminal. Necesita ser escrito. posix_uname — Consigue el nombre del sistema.
  • 23. CompatibilidadLos siguientes Sistemas Operativos son 100% compatibles con uno o variosestándares POSIX.1. A/UX2. AIX3. BSD/OS4. DSPnano5. HP-UX6. INTEGRITY7. IRIX8. LynxOS9. Mac OS X v10.5 en Procesadores Intel.10. MINIX11. MPE/iX12. QNX (IEEE Std. 1003.13-2003 PSE52;13. RTEMS (POSIX 1003.1-2003 Profile 52)14. Solaris15. Unison RTOS16. UnixWare17. velOSity18. VxWorks (IEEE Std. 1003.13-2003 PSE52;
  • 24. POSIX para Windows Cygwin ofrece un desarrollo en gran parte compatible con POSIX y un entorno de ejecución para Microsoft Windows. Microsoft POSIX subsystem, un subsistema opcional Windows Windows Services for UNIX de Microsoft permite una plena compatibilidad POSIX para ciertos productos de Microsoft Windows.Los sistemas operativos basados en Windows NT hasta Windows2000 tenían una interfaz POSIX incorporada en el sistemaoperativo y los Servicios UNIX para Windows brindaban unentorno del tipo UNIX. Para Windows XP, los Servicios UNIX paraWindows deben de instalarse para que exista compatibilidadPOSIX. El subsistema UNIX está incorporado a las edicionesEnterprise y Ultimate de Windows Vista y 7, y no pueden seragregados en forma separada a las otras ediciones.. UWIN de AT&T Research implementa una capa POSIX sobre la interfaz de programa de aplicaciones (API) de Win32. MKS Toolkit.

×