2038_Computacion_II.doc - Universidad de Mendoza

Examen de Sistemas Operativos Junio de 2005 ... a) fork y exec ... de Memoria
no le envía ningún mensaje a la Tarea del Sistema durante su ejecución: a) fork.

Part of the document


UNIVERSIDAD DE MENDOZA - FACULTAD DE INGENIERÍA
| |ASIGNATURA |CÓDIGO |
|CARRERA |COMPUTACIÓN II |2038 |
|INGENIERÍA EN INFORMÁTICA | | |
|CURSO |ÁREA |ULTIMA REVISIÓN |
|TERCER AÑO |Tecnologías Aplicadas |Marzo de 2014 |
|MATERIAS CORRELATIVAS: |AÑO LECTIVO 2014 |
| | |
|2028 - COMPUTACIÓN I | |
|Profesor Titular: |
|Profesor Asociado: |
|Profesores Adjuntos: Ing. Carlos Taffernaberry |
|Jefes de trabajos prácticos: Ing. Federico Hernandez | |Carga Horaria Semanal:|4 |
|Carga Horaria Total: |120 | OBJETIVOS:
. Adquirir dominio en las herramientas de desarrollo de sistemas POSIX
(Unix-like).
. Manejar adecuadamente dichas herramientas para la construcción de
aplicaciones.
. Conocer y utilizar las bibliotecas más comunes del entorno.
. Diferenciar los servicios de biblioteca de las llamadas al sistema
operativo.
. Utilizar eficientemente las API de bajo nivel y de red. PROGRAMA ANALÍTICO: Capítulo I: El entorno POSIX Tema 1: El entorno de usuario:
1.1.1- Sesión de usuario: inicio, operación, finalización. 1.1.2-
Personalización del entorno. 1.1.3- El shell de usuario. 1.1.4- Entrada y
salida estándar; salida de error. 1.1.5- Utilidades comunes para manejo de
archivos y filtrado de texto. Tema 2: El entorno de desarrollo:
1.2.1-Estándares ANSI, POSIX, BSD y System V. 1.2.2- Generalidades del
entorno. 1.2.3- Creación de aplicaciones: edición, compilación y enlace,
depuración. 1.2.4- Automatización con make. 1.2.5 - Estructura del
proyecto: archivos fuente: interface e implementación. 1.2.6 Ubicación de
archivos de encabezado y bibliotecas. 1.2.7 Secciones y páginas del manual
(man) del programador. 1.2.8 Herramientas de Depuración. 1.2.9 Control de
versiones. Capítulo II: API: entrada/salida (I/O) Tema 1: Entrada/salida de alto nivel:
2.1.1 - ANSI C: relación entre el lenguaje "C" y la biblioteca estándar.
2.1.2 - Diferencias con el API de bajo nivel. 2.1.3 - Funciones más
comunes: apertura, lectura/escritura y posicionamiento de archivos. Tema 2: Entrada/salida de bajo nivel:
2.2.1 - Llamadas al sistema operativo, interacción con el núcleo,
descriptores de archivo. 2.2.2 - Comparación con funciones de alto nivel.
2.2.3 - Apertura de archivos: flags de apertura, modos, permisos; relación
con umask. 2.2.4 - Lectura y escritura de archivos. 2.2.5 - I/O avanzado:
proyección de archivos en memoria. Capítulo III: API: Procesos Tema 1: Introducción:
3.1.1 - Generalidades: concepto de proceso, relación con el núcleo. 3.1.2
Propiedades de un proceso: PID, uid, gid, entorno, descriptores de archivo,
mapa de memoria. 3.1.3 - Utilidades para administración de procesos . 3.1.4
- Variables de entorno. Tema 2: Creación de procesos:
3.2.1 - Creación de procesos, comportamiento y flujo del programa (padre y
hijo). 3.2.2 - Relación proceso padre/hijo: memoria, archivos, entorno,
señales, process ids, user/group ids. 3.2.3 - Espera y recuperación del
estado de finalización de un proceso. Tema 3: Ejecución de programas:
3.3.1 - Generalidades respecto de la ejecución de programas. 3.3.2 -
Llamadas y funciones para ejecución de programas; comportamiento y flujo
del código . 3.3.3 - Propiedades conservadas luego de la ejecución. Tema 4: Señales:
3.4.1 - Concepto de señal, relación con el núcleo, señales síncronas y
asíncronas. 3.4.2 - Números y nombres de señal, condiciones informadas.
3.4.3 - Disposición de las señales: ignorar, interceptar ó permitir la
acción por defecto. 3.4.4 - Llamadas y funciones para la intercepción y
bloqueo de señales. 3.4.5 - Envío de señales. Capítulo IV: API: sistema de archivos (FS) Tema 1: Introducción:
4.1.1 - Generalidades sobre sistemas de archivos, estructura, inodos,
archivos y directorios, enlaces. 4.1.2 - Llamadas para recuperación de los
metadatos de archivos. 4.1.3 - Llamadas para la modificación del
propietario y modos de archivos. 4.1.4 - Llamadas para modificar entradas
de directorios: enlace, borrado, renombrado; lectura de directorios. 4.1.5
Dispositivos especiales (caracter y bloque). Capítulo V: API: Comunicación entre procesos (IPC) Tema 1: Pipes:
5.1.1 - Pipes , llamadas de bajo y alto nivel . 5.1.2 - FIFOs (named
pipes). Tema 2: Colas de mensajes:
5.2.1 - Generalidades y alcance. 5.2.2 - Identificación, creación y
remoción. 5.2.3 - Envío y recepción de mensajes. Tema 3: Semáforos:
5.3.1 - Generalidades y alcance. 5.3.2. - Identificación, creación y
remoción. 5.3.3 - Operaciones con semáforos, relación con la finalización
del proceso. Tema 4: Segmentos de memoria compartida:
5.4.1 - Generalidades y alcance. 5.4.2 - Identificación, creación y
remoción. 5.4.3 - Uso de la memoria compartida, mapeos privados y
compartidos. Capítulo VI API: Red Tema 1: Introducción:
6.1.1 - Generalidades sobre los sockets. 6.1.2 - Familias de protocolos,
tipos de sockets. 6.1.3 - Creación de sockets, apertura activa y pasiva.
6.1.4 - Direccionamiento. Tema 2: UNIX sockets:
6.2.1 - Características y alcance. 6.2.2 - Creación y utilización de
sockets AF_UNIX, socketpair. Tema 3: INET sockets:
6.3.1 - Características y alcance. 6.3.2 - Protocolos, direcciones IP y
puertos. 6.3.3 - Creación y utilización de sockets AF_INET. 6.C.4 -
Aplicaciones para servicios TCP/IP . Introducción sockets AF_INET6. Capítulo VII API: Hilos de ejecución (threads) Tema 1: Introducción:
7.1.1 - Generalidades sobre hilos de ejecución. 7.1.2 - Comparación con
procesos, ventajas y desventajas. Tema 2: Uso de hilos de ejecución:
7.2.1 - Creación y finalización de threads. 7.2.2 - Primitivas de
sincronización: exclusión mutua, espera condicional. Capítulo VIII : Sistemas y Procesos Distribuidos Tema 1: Introducción:
8.1.1 - Introducción a sistemas y procesos distribuidos. 8.1.2 -
Comparación Procesos Cliente/Servidor y Procesos distribuidos mediante paso
de Mensaje. Tema 2: Puertas
8.2.1 - Creación y finalización de doors. 8.2.2 - Paso de descriptor.
8.2.3 - Terminación prematura de Cliente y Servidor. Tema 3: Sun Remote Procedure Call (RPC)
8.3.1 - Introducción. Semántica de las llamadas. 8.3.2 - Multithread,
Binding al servidor, timeout y retransmisiones. 8.3.3 - Formato de paquete
RPC. Tema 3: Servicio Web
8.3.1 - Introducción y estándares. Ventajas y desventajas. 8.3.2 -
Implementación de API en C.
PROGRAMA DE TRABAJOS PRÁCTICOS: Práctico No 1: Redirección de la entrada y salida estándar
Práctico No 2: Aplicación de fork, exec y pipe.
Práctico No 3: Aplicación Servidor HTTP concurrente multiproceso
Práctico No 4: Aplicación de fork, exec e IPC (mem.compartida,cola de
mensajes)
Práctico No 5: Aplicación Servidor HTTP concurrente multihilado
ARTICULACIÓN HORIZONTAL Y VERTICAL DE CONTENIDOS: . Los contenidos abordados en esta materia se basan en conceptos de las
siguientes cátedras: |Asignatura |Curso |
|Informática |1er Año |
|Sistemas Operativos |2do Año |
|Computación I |2do Año | . Comparte e integra elementos horizontalmente con las siguientes
cátedras:
|Asignatura |Curso |
|Redes de Datos |3er Año |
|Programación I |3er Año |
|Teoría de Compiladores |3er Año |
. Los contenidos abordados en esta materia aportan conceptos a las
siguientes cátedras: |Asignatura |Curso |
|Teleinformática |4to. Año |
|Seguridad Informática I |4to. Año | CONDICIONES PARA REGULARIZAR LA MATERIA y RÉGIMEN DE EVALUACIÓN:
La materia se aprobará por medio de un examen final.
Para regularizar la materia el alumno deberá:
. Asistir al 80% de las clases.
. Aprobar el 100% de los trabajos prácticos. BIBLIOGRAFÍA: Principal: |Autor |Título |Editorial |Año Ed. |Dispon. |
|Kerrisk, |The Linux Programming |No starch |2010 | |
|Michael |Interface |press | | |
|Stevens, |Advanced Programming in|Addison |1996 | |
|Richard. |the UNIX Environment |Wesley | | |
|Stevens, |Unix Network |Prentice |1998 |1 |
|Richard |Programming Vol 1: |Hall | | |
| |Networking APIs: Socket| | | |
| |and XTI | | | |
|Stevens, |Unix Network |Prentice |1999 |1 |
|Richard |Programming Vol 2: |Hall | | |
| |Interprocess | | | |
| |Comunications | | | | De Consulta:
|Autor |Título |Editorial |Año Ed. |Dispon. |
|Neil Matthew |Professional Linux |Wrox |2000 | |
|and Richard |Programming | | | |
|Stones et al.| | | | |
|Wall, Kurt |Programación en Linux |Prentice |2000 | |
| |con ejemplos |Hall | | |
. comp.lang.c Frequently As