| | | | Conectados: Actualmente hay 6 invitados, 1 miembro(s) conectado(s).
Es un usuario anónimo. Puede registrarse aquí | | | | |
| |
|
|
|
|
Patiperros del DCC
CC31A Programacion de Software de Sistemas
CC31A Programación de Software de Sistemas
10 UD
Vigencia
A partir de primavera 1995.
Requisitos
CC30A
Objetivos
Capacitar al alumno para programar usando las funciones básicas que proveen
los sistemas operativos, tanto para administración de sistemas,
como para hacer programas eficientes.
Se revisarán conceptos básicos de arquitectura
como direcciones de memoria, notación hexadecimal, representación de enteros,
bits, máscaras, etc
Se enfatizarán los sistemas operativos Unix (BSD, System V y Linux),
así como la programación eficiente en C y assembler.
Este curso es el complemento de CC31B Desarrollo de Software de Aplicación,
donde se enfatiza la programación estructurada de alto nivel, mientras en
este curso se enfatiza la eficiencia en la programación de bajo nivel.
Programa
- Assembler (4.5 horas)
Estructura lógica de un computador. Representación de los enteros,
direcciones de memoria, bits y bytes, notación hexadecimal.
Código de máquina, lenguaje assembler,
código generado por el compilador de
C, protocolos de llamado/retorno de subrutinas, linker,
módulos ejecutables. Ejemplo de RISC, CISC, manejo de registros.
- Programación Eficiente en C (12 horas)
Se revisarán los detalles del lenguaje de programación C tendientes
a la eficiencia del código. En particular, manejo de bits, enteros,
punteros, etc. Ejemplos de profiling y debugging.
Sistemas de pasos de parámetros, número variable de argumentos,
longjmp,
administración de la memoria, declaraciones
de tipo register, variables globales, etc.
Uso de macros, switch y tabla de saltos. Equivalencia entre punteros
y arreglos.
- Sistema Operativo Unix (27 horas)
Se estudiará en detalle todos los servicios del kernel, en
su versión POSIX.1 y cómo utilizarlos desde C.
Se verá la interfaz
de red, aunque simplificada a través de una
biblioteca de simple sockets.
Se hará énfasis en la forma de usar los servicios eficientemente y
cómo programar aplicaciones de sistemas.
En particular, se verán:
manejo de E/S (archivos, dispositivos, descriptores),
interrupciones y señales, pipes, procesos, IPC, red.
- Herramientas para la Programación de Sistemas (4.5 horas)
Se verán las herramientas de Unix para el desarrollo de
aplicaciones rápidas: shell programming, awk, sed, perl.
Bibliografía
- David A. Curry, Using C on the UNIX System: A Guide to System
Programming, O'Reilly & Associates, 1989 (D.3.2 C CURR89 en DCC)
- Sun Microsystems, {em SunOS Reference Manual Vol II (Capítulo 2: System
Calls),} Sun Microsystems, 1990
- Sun Microsystems, Network Programming Guide, Sun Microsystems, 1990
- Jerry Peek, Mike Loukides, Tim O'Reilly, et al., UNIX Power Tools,
March 1993, 0-679-79073-X (Random House ISBN), O'Reilly & Associates.
|
|
|
|
|
|