Documentos de Académico
Documentos de Profesional
Documentos de Cultura
U1-C1
Temario
Terminologa y Conceptos bsicos de los sistemas operativos Administracin del procesador Administracin de la memoria Administracin de los dispositivos de entrada y salida Administracin de los sistemas de archivos
Referencias bsicas
Silberchatz. Operating System Concepts. Wiley. Sexta Edicin. Tanenbaum, Andrew. Operating systems, Design and Implementation. Prentice Hall. 1997 Tanenbaum, Andrew. Sistemas Operativos, Diseo e Implementacin. Prentice Hall Software Series. Milenkovic, Milan. Sistemas Operativos. Conceptos y diseo. McGraw Hill. Tanenbaum, Andrew. Sistemas operativos Modernos. Prentice Hall Hispanoamericana, 1993.
Sistemas Operativos
U1-C2
Qu es un sistema operativo? Un programa que acta como intermediario entre el usuario y el hardware de la computadora. Objetivos del Sistema Operativo:
Proveer un ambiente en donde el usuario pueda ejecutar programas y solucione sus problemas de manera ms fcil. Permitir el uso cmodo de la Computadora. Utilizar el hardware de la computadora de una manera eficiente.
Mainframes.
Recursos compartidos, intercambio de informacin. S.O. diseado para maximizar la utilizacin de los recursos. Asegura que los tiempos disponibles de CPU, memoria, E/S son utilizados eficientemente
Handheld.
Sistemas personales con limitaciones de poder e interface S.O. diseados para el uso individual.
Programa de control.
Control de los dispositivos de E/S y programas de usuario para prevenir errores y el mal uso de la computadora.
Kernel.
Los sistemas operativos en esta poca eran muy simples y el trabajo principal del S.O. era transferir el control de manera automtica de un trabajo a otro. Al terminar con todo el lote, un operador retiraba las cintas de entrada y salida, introduca la nueva cinta con el Lote e imprima la cinta de salida.
Procesamiento de trabajos
Sistemas de Multiprogramacin
Con la mejora de la tecnologa y la introduccin de los discos se tuvieron dispositivos ms rpidos de E/S.
Permiti a los sistemas operativos almacenar los trabajos en dichos discos en lugar de cintas o tarjetas perforadas
Esto permiti a los S.O. acceder directamente a varios trabajos por lo que se incluyeron algoritmos de calendarizacin de los trabajos, con el propsito de realizar las tareas y usar los recursos eficientemente.
Sistemas de Multiprogramacin Uno de los aspectos ms importantes de la multiprogramacin es la calendarizacin de trabajos. La multiprogramacin incrementa la utilizacin del CPU mediante la organizacin de los trabajos de tal forma que siempre hay un proceso para ejecutar. La idea es partir la memoria en varias partes, con un trabajo distinto en cada particin
Mientras que un programa esperaba a que terminara la operacin de E/S, otro podra utilizar la CPU
Sistemas de Multiprogramacin
No obstante, el nmero de particiones que se podan hacer en memoria era muy inferior a la cantidad de trabajos que se podan almacenar en los discos. Entonces otra caracterstica de esta generacin de S.O. fue la utilizacin de SPOOLING (Simultaneous Peripheral Operational On Line), que consista en poder cargar del disco un nuevo trabajo cuando conclua otro. La multiprogramacin es de las primeras instancias en donde el S.O. tiene que tomar una decisin por el usuario.
Sistemas de Multiprogramacin Si varios procesos estn listos para ser cargados a la memoria y no hay suficiente memoria, el S.O. debe escoger entre ellos. (calendarizacin de procesos) Si se tienen varios procesos en memoria entonces es necesaria una Administracin de la memoria Si varios procesos estn listos para ejecutarse al mismo tiempo, es necesaria entonces una Calendarizacin del CPU
Sistemas de Multiprogramacin
Sistemas de multiprogramacin Qu pasa cuando tenemos un proceso que por mucho tiempo no necesita realizar operaciones de entrada/salida Conforme el uso de la computadora evolucion a un modo mucho ms interactivo la multiprogramacin por s sola ya no satisfaca
Multitarea cooperativa Procesos o tareas que ceden voluntariamente tiempo a otros procesos Qu pasaba si un proceso que tena la CPU se colgaba
Colapso del sistema
Por lo tanto, un S.O. multitareas permite a muchos usuarios compartir la computadora simultneamente.
Tiempo compartido
En un sistema de tiempo compartido cada accin y comando slo necesita tiempos cortos de CPU para cada usuario. De esta forma, mientras el sistema cambia rpidamente de un usuario a otro, da la impresin que todo el sistema est dedicado para su uso. Reparto equitativo de los recursos
Tiempo Compartido
Un SO de tiempo compartido debe utilizar calendarizacin del CPU y multiprogramacin para proporcionarle a cada usuario una pequea porcin del tiempo del sistema. Al programa cargado en la memoria y que se est ejecutando se le llama Proceso. Los procesos pueden necesitar operaciones de E/S, en ese lapso el SO le asigna el procesador a algn otro usuario.
Tiempo compartido Los SO de tiempo compartido necesitan administracin y proteccin de la memoria. Para mantener tiempos de respuesta razonables, los procesos pueden ser cargados y descargados (swap) de la memoria principal hacia el disco, el cual sirve como un almacn temporal para la memoria.
Tiempo compartido
Memoria Virtual Es una tcnica comn para lograr el swap. Permite la ejecucin de un proceso que no puede ser completado en la memoria. La principal ventaja de la memoria virtual es que los programas pueden ser ms grandes que la memoria fsica. Memoria virtual abstrae la memoria principal en un gran arreglo uniforme de almacenamiento, separando la memoria lgica vista por el usuario de la memoria fsica.
Tiempo compartido
Los sistemas de TC deben proporcionar un sistema de archivos.
Necesario una administracin de archivos
Tambin, proporcionan un mecanismo para la ejecucin concurrente, lo que requiere de esquemas complejos de calendarizacin del CPU Para asegurar la ejecucin ordenada, el sistema debe proporcionar mecanismos para la sincronizacin y comunicacin de procesos.
Sistemas Operativos
U1-C3
Sistemas de Escritorio
Las PC aparecieron en 1970. Al principio los S.O. de estos sistemas no fueron ni multiusuarios ni multitareas. Los principales objetivos de estos sistemas es maximizar la conveniencia y tiempo respuesta. Pueden adoptar tecnologa desarrollada para S.O. grandes (mainframes) Dado que el usuario no tiene que compartir el CPU, su mxima utilizacin ya no es una preocupacin primaria
Sistemas Multiprocesadores
La mayora de los sistemas actuales son de un solo procesador. Sin embargo los sistemas que tienen ms de un procesador (sistemas paralelos o multiprocesadores) cada da crecen ms en importancia. Principales Ventajas
Incremento del rendimiento Economa en escalabilidad? Confiabilidad, tolerancia a fallas
Sistemas Multiprocesadores
Multiprocesamiento simtrico (SMP)
Cada procesador ejecuta una copia idntica del sistema operativo. Muchos procesos pueden correr al mismo tiempo (tantos procesos como procesadores) afectando poco el desempeo. Este tipo de sistemas permite compartir dinmicamente los procesos y recursos entre varios procesadores. La mayora de los sistemas modernos soportan SMP
Sistemas Multiprocesadores
Multiprocesamiento asimtrico
Cada procesador tiene asignada una tarea Un procesador maestro controla el sistema
Calendariza y asigna procesos a cada procesador esclavo.
Sistemas Distribuidos
Los sistemas distribuidos estn basado en las redes de computadoras y su funcionalidad depende del trabajo en redes. Cada procesador tiene su propia memoria local. Los procesadores se comunican entre ellos utilizando las redes de comunicaciones. Existen sistemas cliente-servidor o peer to peer Sistema operativo de red, proporciona caractersticas de trabajo en red, incluye esquemas de comunicacin que permite a diferentes procesos en diferentes computadoras intercambiar mensajes.
Sistemas en grupos (Cluster) Al igual que en lo sistemas paralelos, los clusters de computadoras agrupan mltiples CPUs para realizar un trabajo computacional. Una capa de software se ejecuta en cada nodo del cluster. De esta manera, cada nodo puede monitorear uno o ms de los otros nodos. Dos tipo de clustering
Asimtrico (Un monitor para el servidor activo) Simtrico (Todos se monitorean entre ellos)
Tarea 1
Caractersticas de los sistemas operativos durante la evolucin histrica
Tarea 2
Caractersticas de los sistemas operativos de tiempo real
Sistemas Porttiles
Asistentes personales digitales (PDAs) Telfonos celulares Caractersiticas
Memoria limitada. Procesadores lentos. Pantallas pequeas.
Evolucin de los SO
Sistemas Operativos
U1-C4
Repaso
Sistemas de escritorio Multiprocesadores
Simtrico y asimtrico
La ocurrencia de un evento es normalmente marcada por una interrupcin ya sea del hardware o del software
Interrupciones
El hardware dispara (trigger) una interrupcin enviando una seal al procesador por medio del bus del sistema. El software dispara una interrupcin ejecutando un programa especial, llamada al sistema. Los sistemas operativos modernos se rigen mediante interrupciones. Los eventos, por lo general son marcados por la ocurrencia de una interrupcin o trap (excepcin)
Interrupciones
Cuando el CPU recibe una interrupcin, se detiene de lo que hace y transfiere su ejecucin a otro lugar. Cada interrupcin cuenta con una rutina de servicio de interrupcin quien es responsable de manejar a dicha interrupcin. Para el manejo de las interrupciones se usa una tabla de apuntadores a las rutinas de interrupciones. Esta tabla (Vector de Interrupciones) refiere a la rutina de interrupcin correspondiente a una interrupcin. El Vector de Interrupciones se almacena en la memoria baja y almacena las direcciones de las rutinas de servicio.
Estructura de E/S
Controladores de dispositivos. Cada controlador tiene a su cargo un tipo de dispositivo. Sncrono. Una vez que una operacin de E/S es inicializada, el control regresa al usuario hasta que se completa la operacin de E/S.
Existe un instruccin especial de espera (wait) que paraliza al CPU hasta la siguiente interrupcin Computadora que no cuentan con la instruccin Wait tienen un ciclo wait. A lo ms una peticin de E/S es atendida a la vez, impidiendo el procesamiento simultneo de E/S.
Estructura de E/S
Asncrono. Una vez que una operacin de E/S es inicializada, el control regresa al usuario sin esperar que se complete la operacin de E/S.
Llamada al sistema. Se efecta para permitir al programa del usuario esperar por la finalizacin de la operacin de E/S, si as se desea. Si no es necesario ejecutar algn programa o el sistema operativo no tiene trabajo por hacer entonces se utiliza la instruccin wait. Para manipular varias operaciones E/S, el S.O. utiliza una Tabla de Estado de Dispositivo. Cada registro de esta tabla indica el tipo de dispositivo, direccin y estado.
Estructura E/S
a) Sncrono
b) Asncrono
Estructura de E/S
Un dispositivo E/S produce una interrupcin cuando necesita un servicio. Cuando la interrupcin ocurre, el S.O. determina primero cul dispositivo de E/S caus la interrupcin. Entonces enlista la tabla de estado de dispositivos para saber el estado del dispositivo Modifica la tabla para reflejar la ocurrencia de la interrupcin
Estructura DMA
As como existen dispositivos de E/S que envan informacin de manera muy lenta, permitiendo que la CPU pueda ejecutar otras operaciones, existen dispositivos de E/S de alta velocidad Estos dispositivos transmiten informacin a una velocidad cercana a la velocidad de la memoria. Esto deja poco tiempo al procesador para ejecutar otras operaciones. Para resolver este problema se utiliza DMA (Direct Access Memory).
Sistemas Operativos
U1-C5
Estructura de Almacenamiento
Para ser ejecutados, los programas deben estar en la memoria principal o RAM. La RAM es la nica memoria que el procesador puede acceder directamente. La interaccin se logra mediante la secuencia de instrucciones load y store.
La instruccin load mueve una palabra de la memoria RAM hacia un registro interno del CPU, mientas que store mueve el contenido de un registro hacia la memoria RAM.
Memoria voltil y almacenamiento secundario Idealmente se quiere que los programas y datos residan en la memoria RAM permanentemente, pero
La memoria RAM es usualmente muy pequea para almacenar todos los programas y datos necesarios permanentemente. La memoria principal es un almacn voltil que pierde su contenido cuando se apaga la fuente de poder.
Es por esto que casi todos los sistemas deben proveer un almacn secundario como una extensin de la memoria principal.
Estructura de almacenamiento
El dispositivo secundario de almacenamiento ms comn es el disco magntico. La mayora de los programas son almacenados en disco hasta que se cargan a la memoria principal. Sin embargo, la memoria RAM, los discos magnticos, los registros son algunas de las muchas formas posibles de almacenamiento
Memoria cach, CD-ROM, cintas magnticas, etc
Memoria principal
Como ya hemos mencionado, el CPU solo puede acceder directamente a la memoria RAM y sus registros internos. En el caso de los dispositivos de E/S, sus controladores contienen registros que almacenan comandos o datos a transferir entre la memoria y esos registros. Para permitir un acceso ms conveniente a los dispositivos de E/S muchas arquitecturas proporcionan correspondencia de memoria de E/S (memory-mapped I/O).
Memory-mapped
Se establecen rangos de direcciones de memoria y se crea un correspondencia entre stos y los registros de los dispositivos. Leer y escribir de estos rangos de memoria implica que la informacin sea transferida desde o hacia los registros. La correspondencia de memoria es muy utilizada para dispositivos como los puertos paralelos y seriales. Los registros de estos dispositivos son llamados puertos de E/S
Discos Magnticos
Rotan entre 60 y 200 veces por segundo Tasa de transferencia. Velocidad con la que transfiere informacin. Tiempo de posicionamiento (tiempo de acceso aleatorio). Tiempo que le toma mover el brazo hacia el cilindro deseado. Latencia de rotacin. Tiempo en que el sector llega a la cabeza de lecto-escritura.
Jerarqua de almacenamiento
De acuerdo a la rapidez y el costo. Los niveles altos son muy caros pero muy rpidos. Los sistemas arriba de los discos electrnicos son voltiles y los que estn por debajo son Novoltiles.
Sistemas Operativos
U1-C6
Repaso
Estructura de los sistemas de cmputo Entrada/salida
Interrupciones Sncrono/asncrono Tabla de estado de dispositivo DMA
Almacenamiento
Memoria voltil y secundaria correspondencia de memoria de E/S Programmed I/O Discos Jerarqua de almacenamiento
Memoria cach
No obstante la rapidez de la memoria principal, el acceso a su informacin puede tomar varios ciclos del CPU El remedio para esto es agregar ms memoria entre el CPU y la memoria principal. A esta memoria se le llama memoria cach. Cuando el CPU necesita informacin lo que hace es examinar si se encuentra en la cach. Si se encuentra la utiliza. Sino toma la informacin de la memoria principal y pone una copia en la cach. El principal uso de la memoria cach es almacenar datos que han sido utilizados recientemente y que prximamente se usarn de nuevo.
Cach
Dado que la memoria cach tiene un limite de tamao, es importante tener una buena administracin de la cach Generalmente, la transferencia de informacin entre cach, CPU y los registros es una funcin de hardware sin la intervencin del S.O. Por otro lado la transferencia entre disco y memoria principal es controlada por el S.O.
Coherencia de cach
Suponga que quiere incrementar el valor de A y A se encuentra en un archivo en disco. Se realizan varias copias de A hasta que finalmente se copia en un registro de CPU para su incremento. Una vez que se ha incrementado el valor de A existen diferentes copias con valores diferentes de A. Imagine qu pasa en un sistema multitarea si varios procesos quieren obtener el valor reciente de A. Imagine qu pasa en un sistema de multiprocesadores donde cada procesador tiene su propia memoria cach. Asegurar que el ltimo cambio de A en una cach sea inmediatamente reflejado en todas las dems se le llama Cache Coherency.
Modos de ejecucin
Al menos se necesitan dos modos de operacin: modo usuario y modo monitor (protegido) Un bit, llamado bit de modo, se agrega al hardware de la computadora para indicar el modo actual: monitor (0) o usuario (1). Con el bit de modo, se puede distinguir entre una tarea ejecutada para el usuario y una ejecutada para el S.O.
Modos de operacin
Cuando una computadora inicia, el hardware se pone en modo protegido, entonces el sistema operativo se carga y empieza los procesos del usuario en modo usuario. Cuando una interrupcin o llamada al sistema ocurre, el hardware cambia de modo usuario o modo protegido. Entonces, cuando el SO toma el control de la computadora lo hace en modo protegido. El sistema siempre cambia al modo usuario antes de pasar el control a los programas del usuario.
Instrucciones protegidas
La operacin dual, nos permite proteger al SO de usuarios errantes y entre ellos. Dicha proteccin se logra designando a algunas instrucciones de mquina que podran causar dao, como instrucciones privilegiadas. El hardware permite la ejecucin de las instrucciones privilegiadas solamente en modo protegido.
Proteccin E/S
Un programa de usuario puede terminar abruptamente al realizar alguna operacin ilegal de E/S. Para prevenir al usuario de incurrir en operaciones ilegales de E/S, se definen todas stas como instrucciones protegidas Por lo tanto, el usuario no puede manipular instrucciones E/S directamente sino a travs del sistema operativo.
Proteccin de la memoria
Otro aspecto que se debe proporcionar para asegurar la correcta operacin de un S.O. es la proteccin de la memoria. Esta proteccin al menos se debe hacer para el vector de interrupciones y las rutinas del servicio de interrupciones. Para separar cada espacio de memoria para los programas, se debe poder determinar los rangos de direcciones legales que los programas debe acceder.
Proteccin de la memoria
La proteccin se completa al comparar el CPU cada direccin generada en modo usuario con los registros Cualquier intento de un programa ejecutndose en modo usuario de acceder a la memoria de modo restringido u otra espacio de memoria de usuario genera una excepcin para el monitor.
Temporizadores Un uso ms comn del temporizador es para implementar el tiempo compartido. En el caso ms directo, el temporizador interrumpe cada N milisegundos, donde N es la ranura de tiempo que cada usuario puede ejecutar su programa antes de que el siguiente usuario tome el control del CPU.
Resumen
Un sistema operativo debe proporcionar el ambiente dentro del cual se ejecutan los programas. Segn el tipo de objetivos planteados para un S.O. es el diseo y estructura del mismo. No obstante, los S.O. deben contar con ciertos componentes comunes para ofrecer sus servicios tanto a usuarios, como a programadores.
Sistemas Operativos
U1-C7
Estructura de Sistemas
Sistemas tan grandes y complejos como los S.O. deben ser diseados cuidadosamente para su correcto funcionamiento y su fcil modificacin Encontramos, entre los diseos, las siguientes estructuras
Simple Capas Microkernel
Estructura simple Muchos sistemas comerciales no tiene una estructura muy bien definida MS-DOS es un ejemplo. Fue hecho para proporcionar la mayor funcionalidad en el menor espacio. En consecuencia, no fue dividido en mdulos de manera correcta
Estructura de MS-DOS
Unix
UNIX en un principio consista de dos partes separables: el kernel y los programas del sistema Entonces el kernel proporciona, administracin de archivos, calendarizacin de CPU, administracin de memoria, etc. por medio de las llamadas al sistema. Mucha funcionalidad combinada para un solo nivel! Esto hizo a UNIX difcil de mejorar, ya que un cambio en una seccin poda afectar otra.
Estructuras en capas
La modularizacin de un sistema se puede hacer de diferentes maneras, una de ellas es en capas. La capa ms baja es el hardware y la ms alta es la interfaz de usuario. Una capa de un S.O. es la implementacin de un objeto abstracto el cual encapsula datos y operaciones que manipulan esos datos. Tpicamente una capa M consiste de estructuras de datos y rutinas que pueden ser llamadas por las capas superiores. A su vez, la capa M llama operaciones de las capas inferiores.
Estructura en capas
La principal ventaja de este esquema es que las capas son diseadas para que slo utilicen funciones de las capas inferiores. Esto permite una verificacin y rastreo del sistema ms sencilla. Una capa no necesita saber cmo se implementas las funciones, sino qu hacen las funciones. Cada capa esconde la existencia de ciertas estructuras de datos, operaciones y hardware de las capas superiores.
Estructura en capas
Estructura de OS/2
Microkernels
Conforme crece un S.O. su kernel se vuelve ms grande y difcil de manejar.
A mediados de los 80s investigadores de Carnegie Mellon University desarrollaron un S.O. llamado Mach que organiza en mdulos el kernel utilizando un esquema de microkernel.
Este mtodo reestructura un S.O. removiendo todos los componentes no esenciales del kernel e implementndolos en programas a nivel del sistema o de usuario.
Estructura en Microkernel
La funcin principal de un microkernel es proporcionar una facilidad de comunicacin entre el programa cliente y los diferentes servicios que tambin estn corriendo en el espacio de usuario. Por ejemplo, si el programa cliente desea acceder a un archivo, entonces debe interactuar indirectamente con el servidor de archivos mediante el pase de mensajes a travs del microkernel.
Portabilidad del S.O. a nuevas arquitecturas Mayor fiabilidad y seguridad. Dado que la mayora de los servicios corren como procesos de usuario en vez del sistema.
Tarea Investigar caractersticas de sistemas operativos Monolticos y Microkernel. Dar ejemplos de sistemas operativos con esta estructura.