Sistemas Operativos Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Operativos • Es un programa que actúa como intermediario entre el usuario y el hardware de una computadora. • Su propósito es: – proporcionar un entorno en el cual el usuario pueda ejecutar programas – lograr que el PC se utilice de manera sencilla y de eficiente. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Operativos • Mientras la computadora esté en funcionamiento, el SO tiene 4 tareas principales: – Proporcionar una interfaz de línea de comando o una interfaz gráfica al usuario – Administrar los dispositivos del hardware – Administrar y mantener los sistemas de archivos – Permitir y administrar la ejecución de otros programas. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Operativos • Un sistema de computación puede dividirse en cuatro componentes: – El hardware • UCP, memoria y dispositivos E/S – Los programas de aplicación • compiladores, sistemas de bases de datos, juegos de video y programas para negocios – Usuarios • personas, máquinas, otros computadores que intentan resolver problemas diferentes. – El sistema operativo • controla y coordina el uso del hardware entre los diversos programas de aplicación de los distintos usuarios. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Operativos • Características de los sistemas operativos. – Conveniencia. – Eficiencia. – Habilidad para evolucionar. – Administrar el hardware. – Relacionar dispositivos – Organizar datos para acceso rápido y seguro. – Manejar las comunicaciones en red. – Facilitar las entradas y salidas. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas de Colas de Trabajos Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sist. de Colas de Trabajo • Es una aplicación de la teoría de la probabilidad – Cola simple • un servidor que atiende a los requerimientos de los clientes • una línea de espera o cola donde los clientes esperan recibir servicios • una fuente que genera las llegadas de los clientes al sistema (cola(s)+servidor(es)). • La cabecera de la cola es la primera posición y el final la última. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sist. de Colas de Trabajo Cabecera Final Sala de espera o cola Clientes que llegan Servidor xxxxxxxxx Clientes que salen Sistema Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sist. de Colas de Trabajo • Los clientes llegan al final de la cola y son atendidos con una disciplina “primero en llegar, primero en ser atendido” (FIFO: first in, first out). • Ejemplo: – El servidor (CPU) procesa las tareas (clientes). – El número máximo (finito o infinito) de clientes que pueden unirse a la cola es la capacidad de la sala de espera (el tamaño del buffer). – Si la sala de espera es finita y llega un cliente cuando la sala está llena, se supone que éste se pierde para el sistema, es decir, como si nunca hubiera llegado. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sist. de Colas de Trabajo • Otras disciplinas: – “último en llegar, primero en ser atendido” (LIFO: last in, first out). – orden aleatorio, al azar. – orden de prioridades entre los clientes – proceso compartido (PS) donde cada cliente recibe una proporción igual de la capacidad del servidor Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sist. de Colas de Trabajo • Variaciones – puede haber más de un servidor (colas con servidores múltiples) – estos servidores podrían atender a los clientes: • a la misma velocidad (servidores homogéneos) • o a velocidades distintas (servidores heterogéneos) Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas de Tiempo Compartido Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • La mayoría de los sistemas operativos utilizan una técnica de gestión del procesador denominada: – multiprogramación o una variante de ésta llamada tiempo compartido. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Los primeros sistemas operativos gestionaban el procesador mediante otra técnica llamada monoprogramación (programación batch) • Para visualizar las diferencias entre estas, la multi y la monoprogramción, estudiaremos las operaciones de E/S en cada caso. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Los Dispositivos de E/S se dividen en: – El componente eléctrico • controlador del dispositivo – El componente mecánico • el dispositivo propiamente dicho. • Esta división facilita la comunicación entre el CPU y el dispositivo – La comunicación se realiza a través del controlador Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • El controlador contiene una serie de registros llamados puertos de E/S. • Estos registros son accesibles utilizando código de máquina. • Las operaciones de E/S se realizan leyendo y escribiendo estos registros. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • En forma genérica: – Registro de Entrada • indica la situación actual del dispositivo – Activo o en espera, por ejemplo) – Registro de Órdenes • en él se escriben las órdenes a ejecutar. – Buffer • se utiliza para almacenar los datos de la operación de E/S. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Monoprogramación: – todos los recursos de la computadora (CPU, memoria, discos, impresoras, etc) se dedican a la ejecución de un único programa. – Baja utilización de los recursos. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Monoprogramación: – Cuando el programa en ejecución realiza una operación de E/S se ejecuta un ciclo del siguiente estilo: Leer el registro de estado Mientras (Este ocupado el dispositivo) Leer el registro de estado Fin Mientras Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: – Para aumentar la recursos se multiprogramación. utilización de desarrolló los la – La multiprogramación se apoya en varios elementos del hardware: • la interrupción • el DMA • el canal Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: • La Interrupción: – detención temporal en un punto determinado de un programa – permitir el acceso y proceso de una rutina que tomará el control del sistema. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: • DMA (Memoria de Acceso Directo) – técnica orientada a la transferencia de información desde un dispositivo periférico hasta la memoria principal, sin utilizar el CPU. – implementada bajo microprocesador especializado un Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: • El Canal – es un pequeño procesador de E/S – su utilidad es proporcionar DMA a varios dispositivos – más económico que tener controlador DMA por dispositivo. un Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: – En un sistema multiprogramado la memoria principal alberga a más de un programa de usuario. – El CPU ejecuta instrucciones de un programa, cuando el programa en ejecución realiza una operación de E/S, en lugar de esperar a que termine la operación de E/S, se pasa a ejecutar otro programa. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: – Si este nuevo programa realiza otra operación de E/S, se mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro programa. – Esto permite que varios dispositivos trabajen simultáneamente, además, en el CPU no se tienen que ejecutar ciclos de comprobación del estado de los dispositivos. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: – Cuando un dispositivo acaba una operación de E/S se comunica con el programa que esperaba su finalización a través de una interrupción – La interrupción carga en el contador de programa una dirección fija de memoria donde reside un programa del sistema operativo que gestiona la interrupción. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Multiprogramación: – Este programa ejecutará cierto código para indicar al programa que esperaba la finalización de la operación de E/S que ésta ya terminó. – Una vez que este programa del sistema operativo acaba su trabajo ejecuta una instrucción de retorno de interrupción, la cual restaura el contador de programa. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Tiempo Compartido: – Después de la multiprogramación computadoras de aparición de surgieron acceso múltiple la las o multiusuario. – Cada usuario dispone de un terminal – Los usuarios ejecutan programas interactivos. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Tiempo Compartido: – Un programa interactivo es aquel que se comunica con el usuario por medio de un terminal, el información usuario al le programa suministra mediante el teclado, y recibe información del programa a través de la pantalla. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Tiempo Compartido: – Los programas de los usuarios comparten los recursos (CPU, memoria, discos, impresoras, etc) de la computadora. – Estos sistemas hacen uso de una variante de la multiprogramación llamada tiempo compartido. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Tiempo Compartido: – En el tiempo compartido los programas de los distintos usuarios residen en memoria – Al realizar una operación de E/S los programas ceden el CPU a otro programa, al igual que en la multiprogramación. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Tiempo Compartido: – Pero cuando un programa lleva cierto tiempo ejecutándose sin realizar operaciones de E/S el sistema operativo lo detiene para que se ejecute otro programa. – Con esto se consigue repartir el CPU con equidad entre los programas de los distintos usuarios. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula S. de Tiempo Compartido • Tiempo Compartido: – Al tener el CPU una capacidad de cálculo tan grande, los programas de los usuarios no sienten demasiado el hecho de que el CPU (y los demás recursos) sean compartidos. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Transacción: – consiste en una interacción con una estructura de datos que queremos que sea equivalente a una interacción atómica (que se realice de una sola vez) – Aunque la interacción sea compleja y sea compuesta de varios procesos que se han de aplicar uno después del otro Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Transacción: – Un ejemplo típico es el de la transferéncia de fondos entre dos cuentas corrientes. – Queremos transferir, $5000 de la cuenta corriente de A a la cuenta B – Las cuentas tienen $ 20.000 y $ 0 de saldo Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Transacción: – A = $ 20.000, B = $ 0, Transferir $ 5.000 1.Comprobar si en la cuenta A hay dinero suficiente 2.Restar $5000 de la cuenta de A, con lo que su saldo pasa a ser de $15000. 3.Sumar $5000 a la cuenta de B, con lo que los saldos quedan A=$15000 y B=$5000 Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Transacción: – Sí entre el paso 2 y el 3 el sistema sufre un error inesperado las cuentas quedarían como A= $ 15.000 y B= $ 0 – Desaparecieron $ 5.000! Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Este ejemplo ilustra porqué las transacciones tienen un comportamiento deseado de “Todo o nada” • O se realiza completamente o no debe tener ningún efecto. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Las propiedades deseables en una transacción son: –Atomicidad: • Han de ser atómicas (indivisibles) ante: – Fallos. – Procesos concurrentes. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Serializables: – Si dos transacciones se ejecutan en paralelo el resultado ha de ser el mismo que si se ejecutan una después de la otra. • Permanentes: – Una vez realizadas los datos han de ser visibles al resto del sistema de forma permanente. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • La atomicidad frente a fallos se suele implementar con mecanimos de journaling (llevar un registro de diario en el que se almacena la información necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle) • La protección frente a accesos concurrentes mediante bloqueos en las estructuras afectadas. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • La serialibilidad viene garantizada por la atomicidad. • La permanencia se suele implementar forzando a los periféricos encargados de almacenar los cambios a confirmar la completa y definitiva transmisión de los datos al medio (generalmente, el disco). Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • La forma algorítmica que suelen tener las transacciones es la siguiente: iniciar transacción (lista de recursos a bloquear) ejecución de las operaciones individuales if (todo_ok) aplicar_cambios else cancelar_cambios Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • En cualquier momento, el programa podría decidir que es necesario hacer fallar la transacción, con lo que el sistema deberá revertir todos los cambios hechos por las operaciones ya hechas. • En el lenguaje SQL se denomina: – COMMIT: a aplicar_datos – ROLLBACK: a cancelar_cambios. Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula Sistemas Transaccionales • Las transacciones suelen verse implementadas en sistemas de bases de datos, y, mas recientemente, se han visto incorporadas a la gestión de un sistema de archivos • Por ejemplo: – – – – – – – Ext3 de Linux NTFS de Windows NT ReiserFS de Linux Reiser4 de Linux UFS de SUN Solaris XFS de IRIX y Linux JFS de Linux, OS / 2 y AIX Sistemas Operativos II – ITS – EMT – CETP – 2014 – Prof. L. Carámbula