Bienvenido a CADCC.CL Centro de Alumnos Departamento de Ciencias de la Computacion
Departamento de Ciencias de la Computación   Escuela de Ingenieria y Ciencias   Universidad de Chile


Inicio · Temas ·  Tu Cuenta
 
 

 
 
Temas

· Inicio
· Departamento
· Actualidad
· Docencia
· Alumnos
· Recreación
· Actividades
· Trabajo
· Histórico
· CADCC 2002
 
 

 
 
Servicios

· Principal
· Temas
· Estoy Harto!
· Galerías Fotos
· Recomiendanos
· Crea tu Cuenta
· Publicar Noticia
· Estadisticas
· Top 10
 
 

 
 
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

  1. Assembler (4.5 horas)
  2. 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.

  3. Programación Eficiente en C (12 horas)
  4. 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.

  5. Sistema Operativo Unix (27 horas)
  6. 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.

  7. Herramientas para la Programación de Sistemas (4.5 horas)
  8. 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.

 

 
 


 
 
Centro de Alumnos del Departamento de Ciencias de la Computación
Facultad de Ciencias Físicas y Matemáticas
Universidad de Chile
Web site powered by PHP-Nuke

 
 
Google