Beruflich Dokumente
Kultur Dokumente
Entregables:
Ejercicio solicitado en la clase anterior.
Test de Lectura N 1 sobre los temas de Arquitectura de la PC vistos en la clase
anterior.
Prctica: 1:00 hs.
A partir de estos dispositivos ya conocidos trabajar en el laboratorio de PCs en el
desarrollo de programas en modo real cuyo nivel de complejidad vaya aumentando
para introducir conceptos de programacin avanzada tiles a la hora de trabajar en
modo protegido en las clases subsiguientes.
Se estimular el uso de las herramientas de desarrollo en entorno LINUX de modo de
familiarizar a los alumnos con dicho entorno que ser el que utilizar en el segundo
cuatrimestre.
Agregar conceptos de programacin avanzada en Assembler: Macros, y Estructuras a
los diferentes programas que se vayan desarrollando.
Combinacin de programas escritos en lenguajes mixtos: C y Assembler
Terica: 3:00hs
Descripcin de los restantes componentes bsicos de un motherboard. Principales
caractersticas de cada controlador y conceptos asociados:
1. Controlador de DMA: Concepto de DMA. Breve descripcin del 8237, aclarando
su uso solo en aplicaciones legacy (compatibilidad). Breve descripcin de los
sistemas modernos DMA (Ultra DMA, Bus Mastering).
2. Controlador de teclado en la PC. Explicacin de la lgica de Hardware,
Controlador 8042: Breve descripcin y funciones de hardware que cumple en el
sistema adems del teclado. Interrupcin 9h: Funcionamiento, direcciones de
estado de teclas modificadoras, buffer circular. Ejemplos simples de programacin
y de acceso al port 60h en un handler de Interrupcin.
3. Manejo de la pantalla de Video en modo texto. Adelanto al tema controlador
de Video que se ver en el segundo cuatrimestre
4. Reloj de tiempo real. Detalle de sus registros internos. Tcnicas de
Programacin. Memoria CMOS. Uso de la Interrupcin IRQ15.
5. Bus ISA de 8 bits y de 16 bits. Wait states. Tcnicas de Diseo de placas en
esta estructura. Uso de las seales ms importantes: Uso de las seales AEN.
Explicar la redundancia de usar en este bus las lneas de Address mas all de A0A9 para mapeo de dispositivos de E/S. Mapeo de memorias FLASH (A0 A19).
6. Introduccin al Bus PCI.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas desarrollados en esta clase.
- Ejercicio de aplicacin en C y Assembler:
Programa en C que muestre en pantalla el estado de la mascara del PIC 1
utilizando la rutina de conversin de word en formato hexadecimal a su
Objetivo: A partir de una breve revisin de los conceptos vistos para el procesador
8088 en TDII, se retoma la arquitectura interna del procesador 80386, en lo referente
al modelo de registros de propsito general, modelo de segmentacin, y se sita al
alumno en el concepto de Modo Real como emulacin de un 8088. A partir de all se
introducen los conceptos de Modo Protegido.
Material de la ctedra: Procesador IA-32 Clase1.pdf
Entregables:
Ejercicio solicitado en la clase anterior.
Test de Lectura N 2 sobre los temas vistos en la clase anterior.
Terica: 2:30 hs.
Presentacin de la arquitectura denominada IA-32: El Procesador 80386
1. Modo Real.
Segmentacin, modelo de registros de 16 y 32 bits, interrupciones (vector de
interrupciones), capacidad de direccionamiento en Modo Real. Similitudes y diferencias
con el 8088 en el modo real que introduce el 80386. Uso de la arquitectura de 32 bits
en Modo Real.
2. Introduccin al Sistema de Proteccin.
2.a. Requerimiento de los Sistemas Operativos Multitasking a los procesadores
avanzados de 32 bits.
Memoria virtual: Concepto y funcionamiento de un subsistema clsico de
Memoria Virtual.
Entorno de proteccin entre tareas: reas de memoria pblicas y privadas
Multitasking: Sistemas Operativos Multitasking por Time Slicing y Real Time.
Capacidad de direccionamiento: Relacin con el alojamiento de mltiples
tareas en memoria.
Capacidad de procesamiento: Necesidad de ejecutar y conmutar a gran
velocidad las tareas en curso.
2.b. Recursos que emplean los procesadores de Intel 80386 y superiores para
satisfacer estos requerimientos:
2.c. Modelos de Programacin:
Programacin de Aplicaciones: Registros del procesador (propsito general).
Programacin de Sistemas: Registros del procesador (propsito general mas
registros de debug, control, tareas, tablas de descriptores).
2.d. Administracin de los privilegios de las aplicaciones: Introduccin al
modelo de anillos.
2.e. Unidad de Gestin de Memoria (MMU) Parte I: Unidad de Segmentacin.
Segmentacin: Datos necesarios para describir un segmento en Modo Protegido.
Selectores (Registros) de segmento: tamao de un registro de segmento vs.
Informacin necesaria para describir un segmento: Necesidad de emplear estructuras
auxiliares al procesador: Descriptores de Segmento: Estructura y tipos, Tablas de
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Trabajo prctico de entrega obligatoria de Bus ISA
Test de Lectura N 3 sobre los temas vistos en la clase anterior.
Terica 1:30 hs.
1. Interrupciones y Excepciones en Modo Protegido
Repaso de la estructura de un descriptor. Atributos, Bit S=0. Descriptor de sistema,
enfoque como mecanismo de acceso a recursos o procedimientos en lugar de
medio de acceso a un segmento especfico. Descriptores de Interrupcin. Tabla de
Descriptores de Interrupcin. Registros Asociados. Excepciones: Descriptores de
Excepcin. Principales casos vistos hasta el momento: Fallo de Pgina, segmento
no presente.
Prctica 2:30 hs
Laboratorio. Exposicin Prctica a cargo del docente, utilizando las herramientas de
desarrollo bajo LINUX.
Continuacin del programa visto en la clase 3 con la incorporacin de interrupciones.
Manejo de excepciones. Tablas de descriptores Interrupcin. Inicializacin.
Problemtica planteada por la superposicin de las interrupciones del PIC1 con las
excepciones del procesador. Modalidades de tratamiento para resolver la situacin al
manejar excepciones. Soluciones que aplican los Sistemas Operativos en la prctica.
Acceso al controlador de Interrupciones. Manejo de Interrupciones. Manejo de teclado
y timer tick, port serie.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas desarrollados en esta clase.
- Ejercicio de aplicacin en Assembler:
Realizar un programa en Assembler que pase a Modo Protegido al
procesador y espere 5 segundos antes de volver a Modo Real (utilice el
timer tick para tal fin).
Clase 5: Semana del 25 de Abril
Laboratorio. Prctica a cargo del ayudante de TP.
que est detenido, y el valor de la variable junto con los comandos que
utiliz para setear el breack point y dumpear la variable. Elaborar un
informe con las conclusiones y los grficos de captura de pantalla.
Clase 6: Semana del 2 de Mayo
Laboratorio. Prctica a cargo del ayudante de TP.
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 6 sobre los temas vistos en la clase anterior (nasm, compilacin)
Terica: 2:15 hs.
Mecanismos y Niveles de Proteccin. Puertas de llamada. Cambio de nivel de privilegio
a travs de compuertas de Interrupcin. Manejo del stack en cambios de nivel.
Mecanismos de seguridad para evitar accesos indebidos (escenario del caballo de
Troya).
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 7 sobre los temas vistos en la clase anterior
Terica: 1:30 hs.
1. Unidad de Gestin de Memoria (MMU) Parte II: Unidad de Paginacin.
Paginacin: Inconvenientes en la Administracin de la memoria virtual por
segmentos. Presentacin de la Administracin de memoria por pginas:
Caractersticas fundamentales de la paginacin. Ventajas de su uso en la
Administracin de Memoria Virtual. Mejoras en el algoritmo de Administracin por
segmentacin. Acceso a las pginas por parte del procesador: Necesidad de un
Descriptor de Pgina. Administracin de los descriptores de pginas mediante
Tablas de Pgina
Base_TP
0
1
Indexn
PTBAn
0
1
Indexm
PBAm
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 8 sobre los temas vistos en la clase anterior
Prctica 3:45 hs.
Anlisis de un scheduler que maneje una lista de tareas cuya cantidad pueda variar.
Las tareas siempre deben ser sencillas, hacindose especial nfasis en la
administracin de las mismas. Trabajo en la puesta a punto de los programas de la
gua combinando C y Assembler. Es conveniente que los alumnos traigan los archivos
fuente pre desarrollados para terminar de ponerlos en condiciones de funcionamiento
en el laboratorio.
Desarrollo de programas que manejen tareas en diferentes niveles de privilegio.
Aplicacin de las Tcnicas cambio de nivel de privilegio de tareas.
Debugging de estas tareas con Bochs y los archivos LST generados por el
ensamblador. Trabajo en la puesta a punto de los programas de la gua.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas vistos en teora en esta clase
- Ejercicio.
Entregar un scheduler genrico para un nmero variable de tareas con
prioridad medida en ciclos de timer tick.
Clase 10: Semana del 30 de Mayo
Procesadores de 32 bits Micro Arquitecturas IA-32
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 10 sobre los temas vistos en la clase anterior
Terica 3:45 hs.
Arquitectura de un procesador de 32 bits. Procesadores superescalares. Paralelizacin
de instrucciones. Limitaciones del modelo. Modelo CISC vs. Modelo RISC.
Memoria cach. Su finalidad. Criterios de Vecindad espacial y temporal para la
administracin de su contenido. Controlador de Memoria Cache - Mapeo directo Mapeo Asociativo n vas. Bus local.
Introduccin a la arquitectura del IA-32. Arquitectura Pipeline del 80386. El 80486 y el
segundo nivel de cach.
Procesadores Pentium: Arquitectura Superescalar, Ejecucin paralela, Branch
Prediction.
Pentium Pro: Super integracin del Cach de 2do. Nivel Ventajas.
Evolucin de la Arquitectura Superescalar. Ampliacin de unidades de ejecucin.
Ejemplos con procesadores Pentium II, III, y IV (Micro Arquitectura Net Burst).
Multimedia
Introduccin
al
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 9 sobre los temas vistos en la clase anterior
Modelo de ejecucin SIMD. Necesidades de procesamiento Multimedial.
Formatos numricos. Representacin en punto flotante. Standard IEEE 574.
Tecnologa MMX. Puede un procesador de estas caractersticas emplearse en
Procesamiento Digital de Seales?
Operaciones empaquetadas. Aritmtica Saturada y de desborde. Set de instrucciones.
Extensiones para Procesamiento Digital de Seales: Tecnologas SSE, SSE2, SSE3.
Algoritmos empleando la implementacin del modelo SIMD en procesadores IA-32.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas vistos en teora en esta clase
- Ejercicio.
Escriba el cdigo de una rutina que calcule la convolucin entre dos arreglos de
valores discretos utilizando extensiones multimedia.
Clase 12: Semana del 13 de Junio
Laboratorio. Prcticas a cargo del ayudante
1.a. Arquitectura: Modelo de ejecucin en modo User y en Modo Kernel, Manejo de los
stacks, reentrancia. System Calls.
1.b. Manejo de la memoria. Modelo de Segmentacin utilizado en Linux. Definicin en
el Sistema de los Segmentos basados en los recursos que provee la arquitectura IA32 estudiada en el primer cuatrimestre. Modelo de Gestin de la Memoria Virtual:
Uso de la Paginacin en el sistema.
1.c. Manejo de los procesos. Process Descriptor. Task Array. Estados de ejecucin de
los procesos. Identificacin de un proceso (PID). La lista de Procesos. Parentesco
entre procesos. Como se retoma un proceso puesto a dormir: Colas de Espera.
Limitaciones en cantidad de procesos.
1.c.i. Conmutacin de procesos. Relacin con la TSS de lso procesadores IA-32
estudiados en el primer cuatrimestre.
1.c.ii. Creacin de procesos. Clone ( ), Fork ( ), vfork ( ). Terminacin de procesos exit
( ).
1.c.iii. Threads. Concepto diferencia entre crear una imagen del proceso actual con fork
( ), y un thread con pthread_create ( ). POSIX Threads versus Linux Threads.
1.c.iv. Concepto de Kernel Threads. El proceso swapper o proceso 0. INIT el proceso 1.
1.c.v. Comandos del shell para el control y visualizacin de los procesos: ps" top.
Espacio de Direccionamiento del proceso (Understanding the Linux Kernel Bovet
Pg. 183).
1.c.vi. Ejecucin de Mltiples hilos (Multithreading). Las primitivas fork( ) system( )
excecl ( ) execlp( ). Explicacin de la funcin de cada tipo de primitiva y del manejo
que hace con el espacio de direcciones del proceso. Ejemplos.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas desarrollados en esta clase.
- Ejercicio de aplicacin en C:
Escriba un programa que cree un proceso hijo mediante fork. El programa
tendr una variable global, inicializada en 0. Luego de crear el proceso hijo el
padre imprime el contenido de la variable global. El proceso hijo incrementa la
variable global y luego la presenta
Elabore una discusin acerca del orden de los mensajes en stdout y el valor de
la variable global en cada caso.
Clase 18: Semana del 15 de Agosto
Estructura de un Sistema Operativo Multitasking. Caso de estudio detallado:
Linux.
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 15 sobre temas vistos en la clase anterior
Terica 3:45 hs.
1. El Scheduler.
Poltica de scheduling. Preemption. El Algoritmo de scheduling. La funcin schedule
( ). System Calls relacionadas con el scheduler: nice ( ), setpriority ( ), getpriority (
3. Arquitectura SMP
Introduccin. rea de Memoria Comn. Sincronizacin de Cach. Manejo
distribuido de Interrupciones Control del sistema APIC.
4. File System.
4.a. Disco Flexible:
Breve exposicin de la estructura y funcionamiento de un drive y estructura de
los discos de 3 . Formato del sector de arranque para disquetes con formato
DOS (se utiliza este formato ya que es reconocido por todos los Sistemas
Operativos, an los que no son de autora de Microsoft. Objetivo: Poder generar
nuestros propios programas de arranque. Uso de la INT 13h del BIOS. Formato
de un disco bajo DOS: Directorio Raz, cluster, FAT.
4.b. Disco Rgido:
Estructura de los discos rgidos: Drive y controlador, Master Boot Record.
Concepto de Particin de disco. Mecanismos que utilizan los Programas
Maestros de arranque para seleccionar una particin: LILO, o GRUB para
LINUX, o el Master Boot de Windows 2000, o programas de terceras partes.
Interfaz ATAPI: Direcciones de E/S y Registros asociados. Ejemplos de acceso
fsico al disco.
4.c. Concepto general de File System.
Estructura lgica del disco en Linux. Concepto, estructura y contenido de un inodo. Comandos del shell para la visualizacin y manejo del sistema de
archivos: ls, cp, mkdir, rm, df.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas desarrollados en esta clase.
- Ejercicio de aplicacin en C:
Para el programa realizado para esta clase modificar la prioridad del proceso
hijo en el momento de su creacin desde el proceso padre, de modo que sea la
mas alta posible.
Elabore una discusin acerca de cmo tuvo que ejecutar el programa para que
opere de acuerdo con lo requerido.
Clase 19: Semana del 22 de Agosto
Estructura de un Sistema Operativo Multitasking. Caso de estudio detallado:
Linux.
Objetivo: Aplicar los conceptos vistos en las clases tericas a cargo del profesor en el
manejo de aplicaciones que optimicen el consumo de recursos para el sistema
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 17 sobre temas vistos en la clase anterior
Prctica 3:45 hs.
Desarrollo de programas. Uso de system calls. Manejo de archivos. Uso de IPCs:
Seales y pipes. FIFOs y colas de mensajes. Introduccin del concepto de reemplazo
de un proceso por otro. Primitiva excelp ().
Ejecucin de shell scripts para monitoreo del sistema y comprobacin del consumo de
los recursos del sistema involucrados en los programas de aplicacin. Visualizacin de
pipes entre aplicaciones existentes. Operador '|'. Bsqueda de procesos.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas desarrollados en esta clase.
- Ejercicio de aplicacin en C:
Programa que cree un message queue, y dos procesos hijos. Cada proceso
recibe solo aquellos mensajes que tengan como mtype su propio PID.
Clase 21: Semana del 5 de Setiembre
Laboratorio. Prcticas a cargo del ayudante
Objetivo: Aplicar los conceptos vistos en las clases tericas a cargo del profesor en el
manejo de aplicaciones que optimicen el consumo de recursos para el sistema
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 18 sobre temas vistos en la clase anterior
Prctica 3:45 hs.
Desarrollo de programas de manejo de threads. Cotejando los resultados con los
programas que hacen uso de fork () para crear hilos de procesamiento en procesos
separados, obtener conclusiones. Uso de semforos mutex para sincronizar el acceso a
recursos comunes entre threads.
TRABAJO PARA PROXIMA CLASE:
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 19 sobre temas vistos en la clase anterior
Terica 2:00hs
Acceso a la E/S en sistemas Multitasking. Problemas de la concurrencia de accesos.
Necesidad de administracin de cada dispositivo mediante un software que permita
regular el acceso desde los diferentes procesos que lo requieran.
Device Drivers: Funcin dentro de un Sistema Operativo. Clasificacin: Caracter,
Bloque, Network, y Miscelneos. Caractersticas de cada uno.
Caso de implementacin : LINUX. Modelo de programacin de Device Drivers. El
directorio /dev. Nmeros Mayor y Menor. Tratamiento del driver como un archivo.
Mapeo del API del sistema Operativo sobre el hardware: La estructura
"file_operations".
Instalacin de un device driver: Mtodo en las viejas versiones UNIX: Relinkeo contra
el kernel, Mtodo actual: ejecucin como Modulo. Ventajas y desventajas de cada
caso.
Estructura de un mdulo en Linux. Instalacin y desinstalacin. Comandos de shell
necesarios. Ejecucin desde root: motivos. Funciones del mdulo que trabajan de entry
point en cada caso.
Funciones del kernel utilizables por los drivers. Registro del driver. Manejo del buffer
de datos desde especio User a espacio Kernel y viceversa. Uso de interrupciones de
hardware desde el driver.
El file system /proc.
Prctica 1:45hs
Ejemplos de desarrollo. Anlisis exhaustivo del cdigo de "serial.c": (driver genrico
para un port serie standard).
Manejo de las Interrupciones: Funciones del kernel relacionadas.
Uso de las funciones internas del kernel para:
Intercambio de los datos desde el buffer de memoria de Modo User al de Modo
Kernel
Escriba un programa que espere datos desde un FIFO, el dispositivo serie del
programa entregado en esta clase, y que adems genere una demora de 60
segundos luego de los cuales no contine esperando datos y finalice su
ejecucin.
Analice el comportamiento si se enva una seal cualquiera mientras est
bloqueado
Incluya la espera de un mensaje por una message queue
Elabore un informe con los resultados, explicando las causas de los
comportamientos descriptos.
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Test de Lectura N 22 sobre temas vistos en la clase anterior
Terica 3:45 hs.
Entregables:
Entrega del ejercicio solicitado en la clase anterior.
Entrega Trabajo Prctico obligatorio de LINUX
Test de Lectura N 23 sobre temas vistos en la clase anterior
Terica 3:45 hs.
Capa 4: Concepto de acceso a servicios. Protocolos Conectados y no Conectados.
Ventajas y desventajas de cada uno. Condiciones de uso. TCP y UDP. Concepto de port
lgico.
Dispositivos de tratamiento de paquetes en una red (Repetidores, Bridges, Switches,
Routers,
Gateways).
Servicios dentro de una red: Naming. DNS. Funcionamiento. Traduccin dinmica.
Modelo cliente servidor:
Implementacin de la intercomunicacin de procesos en una red para el acceso a
servicios. La interfaz de sockets. Modelo de programacin de un servidor. Servidores
concurrentes e iterativos. Diferencias. Funciones standard de la librera TCP/IP para el
desarrollo: socket (), bind (), listen (), accept (). Programacin en LINUX. Familias de
sockets (AF_UNIX, AF_INET, PF_INET). Programacin de clientes tanto windows como
Linux, Portabilidad de las funciones. primitiva connect (). Lectura y escritura de datos:
con funciones de archivos, o especficas.
Desarrollo de aplicaciones clientes servidor TCP y UDP. Diferencias.
Servidores concurrentes Manejo de control de sesiones en TCP y UDP.
Funciones de soporte. getservbyname (), gethostbyname ().
Configuracin y declaracin de un servidor en un sistema Linux.
TRABAJO PARA PROXIMA CLASE:
- Lectura de los temas desarrollados en esta clase.
- Ejercicio de aplicacin:
Tomar el programa servidorTCP.c, y clienteTCP,c vistos en clase. Al Server,
antes del accept () insertarle pause () de modo de frenarlo hasta que se pulse
una tecla.
Compilarlos.
Ejecutar en diferentes consolas el servidor y diversos clientes.
En una consola separada ejecutar netstat a. Tome nota de la salida del
comando.
En la ventana del Server pulse una tecla.
Vuelva a la consola en donde ejecut netstat, y repita el mismo comando.
Tome nota de la salida ahora.
Elabore un informe sobre el comportamiento observado.
Clase 27: Semana del 17 de Octubre
Laboratorio. Prcticas a cargo del ayudante