Versión para impresoraCódigo: SI-220
Modalidad: Presencial
Total Horas: Consultar
Fecha Inicio: Bajo demanda
Descripción del Curso
En el curso Programación de Sistemas UNIX se enseña a escribir programas C con las llamadas de librería y del sistema más comunes en los sistemas operativos Solaris 2.x y Solaris 7. Está diseñado para programadores C que quieran escribir aplicaciones que utilicen los servicios de estos sistemas operativos. El curso contiene una introducción a los estándares ANSI C, POSIX y SVID-3 incluidos en estos sistemas operativos. En él se describe el uso de las llamadas de librería y del sistema más comunes en los sistemas operativos Solaris 2.x y Solaris 7 (lo que incluye la librería de E/S estándary las llamadas de bajo nivel para usar archivos y directorios). También se tratan las llamadas utilizadas para crear procesos, ejecutar nuevos programas y controlar señales, así como las utilidades de comunicaciones entre procesos de Solaris 2.x y Solaris 7, lo que incluye canales, mmp, VIPC System y sockets.
Objetivo
Las personas que realicen el curso aprenderán a:
- Definir los términos POSIX (Sistema operativo portable basado en UNIX) y SVID (Definición de interfaz de System V).
- Comprender la relación entre Solaris y los estándares POSIX y SVID.
- Escribir aplicaciones que realicen operaciones básicas con archivos.
- Utilizar el bloqueo de archivos y registros.
- Identificar las diferencias que existen entre las funciones de sistema y de librería.
- Consultar y modificar los atributos y los límites de recursos del proceso.
- Escribir aplicaciones que utilicen herramientas de gestión de memoria para la asignación dinámica de la memoria.
- Comprender la estructura de directorios y escribir aplicaciones que puedan leer jerarquías de directorios.
- Escribir aplicaciones que generen otros procesos, y que controlen de alguna manera los nuevos procesos.
- Escribir aplicaciones que utilicen herramientas de administración de señales y herramientas de memoria virtual para mejorar el rendimiento, y que intercambien datos mediante canales, colas de mensajes y memoria compartida.
- Sincronizar los procesos mediante el uso de semáforos.
- Escribir una aplicación cliente/servidor sencilla utilizando funciones de socket.
Prerequisitos
Para obtener el máximo aprovechamiento del curso, los alumnos necesitan:
- Saber escribir programas en C que utilicen punteros, estructuras y argumentos de la línea de comandos.
- Saber crear y modificar archivos de texto con vi o el editor de texto OpenWindows.
- Saber utilizar los comandos básicos de Solaris.
Cursos relacionados
Cursos relacionados (Antes):
SI-240: Network Programming
SI-260: Multi-Threaded Applications Programming
SI-375: Writing Device Drivers for the Solaris Operating Environment
SL-380: High Performance Computing Programming
SP-365: Solaris 9 Internal
Contenido
Descripción de la interfaz del sistema
- POSIX y SVID
- Entornos de programación disponibles en el sistema operativo SunOS 5.x
- Diferencias entre las llamadas del sistema y las llamadas de librería, y cómo encontrar información sobre ellas.
- Cómo manejar los errores devueltos
- Funciones de E/S estándar y funciones de memoria
Producción de tareas nuevas.
- La necesidad de crear procesos
- Creación de un proceso
- Ejecución de un programa nuevo
- Terminación del proceso en curso
- Periodo de espera hasta que termina un proceso
Información del sistema y de procesos
- Cómo acceder al nombre y el número de identificación del sistema
- Cómo acceder a información sobre los archivos y los límites del sistema
- Campos en una entrada de contraseña
- Cómo conserva el sistema operativo Solaris los datos de tiempo, y las rutinas utilizadas para la conversión entre varios formatos de tiempo
- Definición de un proceso y del espacio de direcciones virtual de un proceso
- Cómo utilizar argumentos y variables de entorno
- Asignación dinámica de memoria
- Atributos de un proceso
- Diferencia entre ID de usuario real e ID de usuario efectivo
- Recuperación de la información de uso del recurso de tiempo relacionada con un proceso y los procesos subordinados
Archivos
- Descripción de un file system operativo Solaris
- Relación de la información acerca de un archivo que conserva el sistema
- Cómo leer y escribir archivos regulares
- Diferencia entre las funciones open ( ) y dup ( )
- Algunas llamadas de E/S estándar avanzadas y por qué no deben mezclarse con las llamadas de E/S del sistema
- Creación de archivos temporales
- Simplificación del control de archivos
- Uso de canales anónimos
Directorios
- Formato de un directorio
- Lectura del contenido de un directorio
- Cómo crear y eliminar un directorio
- Diferencia entre enlaces simbólicos y completos
- Cambio del nombre de los archivos
Señales
- Usos de las señales
- Envío de señales
- Conjuntos de señales
- Diferencia entre bloquear y capturar una señal
- Escritura de un manejador de señales
- Diferentes temporizadores disponibles
Programación con subprocesos (threads)
- Describir la importancia de un proceso ligero en la programación de subprocesos.
- Explicar las ventajas de los subprocesos múltiples y los procesos ligeros en un proceso.
- Escribir código para crear subprocesos y comunicarse con otros subprocesos.
Descripción de IPC
- Describir las características de las comunicaciones entre procesos (IPC).
- Describir los métodos de IPC.
- Explicar cómo hacer una lista de objetos IPC y eliminarlos desde la línea de comandos.
Mensajes cortos
- Uso de canales con nombre
- Uso de colas de mensajes para la comunicación entre procesos
Memoria compartida
- Usar mmap() para incorporar archivos a la memoria.
- Explicar por qué es necesario sincronizar la memoria con la memoria gráfica.
- Compartir una región de la memoria empleando la región de memoria compartida de System V.
Sincronización
- Entender por qué son necesarios el bloqueo y la sincronización.
- Entender la operación test-and-set (evaluar y modificar).
- Entender los tipos de bloqueos disponibles, sus aplicaciones y diferencias.
- Entender la aplicación de distintos tipos de bloqueos a los threads de comunicación interprocesos e intraprocesos con acceso a datos compartidos.
Sockets
- Modelo cliente-servidor con funciones socket
- Diferencias entre sockets de flujo y sockets de datagramas
- Diferencias entre sockets de UNIX y sockets de Internet
- La necesidad de las funciones de orden de bytes para redes
- Conversión de un nombre de host en una dirección IP
- Cómo conectar el cliente y el servidor
- Cómo enviar y recibir datos
- Simplificación de E/S asíncrona
- Cómo utilizar select ( ) en sockets