Professional Documents
Culture Documents
PAGINA 1 DE 71
Sistemas Operativos
INDICE
DEFINICIN DE SISTEMA OPERATIVO..............................................................................5 Esquema estructural...........................................................................................................5 HISTORIA...............................................................................................................................6 PRIMERA GENERACIN (1949/1959)..............................................................................8 SEGUNDA GENERACIN (1959/1965)............................................................................8 TERCERA GENERACIN (1965/1970).............................................................................8 EVOLUCION DE LOS SISTEMAS OPERATIVOS................................................................9 CONCEPTO DE PROGRAMA ALMACENADO.....................................................................9 Algunos componentes de la CPU........................................................................................10 Descripcin de los registros usados por un programa. .......................................................11 Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II........................................12 Descripcin del procesamiento de un programa.................................................................12 Ciclo de instruccin:..........................................................................................................13 Ciclo de ejecucin:............................................................................................................13 Ciclo de interrupcin:........................................................................................................13 Interrupciones.......................................................................................................................14 Stack.................................................................................................................................14 Punto de Retorno..............................................................................................................14 Problemas inherentes a la Multiprogramacin.................................................................15 Cambio de contexto..........................................................................................................16 Interrupcin.......................................................................................................................16 Atencin de una interrupcin: .........................................................................................17 Resumen paso a paso......................................................................................................17 Motivos de Interrupciones.................................................................................................18 Jerarquas de memoria. ......................................................................................................18 Principio de localizacin.......................................................................................................19 Memoria Cache....................................................................................................................19 Ejemplo del funcionamiento de una memoria Cache.......................................................21 Tcnicas Controladoras De Entradas/Salidas De Datos.....................................................21 1) Entrada Salida programada:........................................................................................21 2) Entrada Salida por Interrupciones:.............................................................................21 3) E/S por D.M.A ( Acceso directo a memoria):...............................................................22 Tpico diagrama de bloques del DMA..............................................................................22 ..............................................................................................................................................24 Proteccin de Recursos Compartidos:.................................................................................24 DESARROLLO DE PROGRAMAS...................................................................................24 EJECUCION DE PROGRAMAS.......................................................................................24 ACCESO A DISPOSITIVOS DE E/S................................................................................25 ACCESO CONTROLADO A LOS ARCHIVOS.................................................................25 ACCESO AL SISTEMA....................................................................................................25 DETECCION DE ERRORES Y RESPUESTA.................................................................25 CONTABILIDAD...............................................................................................................25 DISEO JERRQUICO GENRICO DE UN SISTEMA OPERATIVO:...........................25 SPOOLING.......................................................................................................................27 Multiprogramacin:...............................................................................................................27 Necesidad de definir procesos.............................................................................................28 PROCESOS ........................................................................................................................28 PCB (Process Control Block)............................................................................................29 PAGINA 2 DE 71
Sistemas Operativos
ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK...............................29 Identificacin de Procesos................................................................................................29 Informacin del estado del procesador............................................................................29 Informacin de control de procesos.................................................................................29 ESTADOS DE UN PROCESO:............................................................................................30 Diagrama general de estados (estructura de dos estados):............................................31 Time Out...........................................................................................................................31 Motivos de finalizacin de un proceso:.............................................................................32 EVOLUCION DE UN PROCESO:....................................................................................32 Esquema de 8 estados:................................................................................................32 Transiciones De Estados De Un Proceso.....................................................................34 Suspensin (que genera swapping).............................................................................35 Reingreso de un programa a proceso..........................................................................35 Descripcin esquemtica de procesos.........................................................................35 Implementacin de las colas.........................................................................................36 REPRESENTACION DE UN PROCESO EN MEMORIA.............................................37 PLANIFICACION DE CORTO PLAZO - DISPATCHER.........................................38 Polticas de Administracin del Procesador.....................................................................38 SJF Shortest Job First.................................................................................................39 Planificacin por prioridad.............................................................................................39 ROUND ROBIN.............................................................................................................40 Evolucin de los Sistemas Operativos.................................................................................40 Serial.................................................................................................................................40 Batch Simple.....................................................................................................................41 Batch Multiprogramado.....................................................................................................43 Razones para su uso........................................................................................................44 Recursos Compartidos. ................................................................................................44 Computacin ms rpida. ............................................................................................45 Confiabilidad. ................................................................................................................45 Comunicacin. ..............................................................................................................45 Comparacin entre un Batch Multiprogramado y un Time Sharing..............................47 Miscelneas sobre Sistemas Operativos.........................................................................47 ESTRUCTURA DE CAPAS SIMPLES..........................................................................48 ESTRUCTURA DE CAPAS ENCAPSULADAS (Windows NT 4.0)..............................49 MULTIHILOS-MULTITHREADING.......................................................................................54 OPERACIONES CON HILOS...........................................................................................56 BENEFICIOS: .................................................................................................................56 IMPLEMENTACION DE HILOS........................................................................................57 ULT Hilos a nivel de usuario........................................................................................57 KLT HILOS A NIVEL KERNEL (NUCLEO)...............................................................57 PREGUNTAS SOBRE SISTEMAS OPERATIVOS............................................................59 TRABAJO PRACTICO I.......................................................................................................62 TRABAJO PRACTICO II......................................................................................................64 Significado de palabras clave...............................................................................................71
PAGINA 3 DE 71
Sistemas Operativos
INTRODUCCIN Con el afn de ubicar al contenido de nuestra materia vinculado al funcionamiento de un Sistema de Computacin, sugiero posicionarse frente a dicho sistema y pensar conceptualmente, acerca de su probable estructura y servicios que brinda. Una posible visin elemental o primitiva, es la de una caja negra, de la cual no conocemos su funcionamiento. Solo conocemos que nos permite hacer clculos, guardar informacin para una posterior elaboracin, entregarnos informacin elaborada, es decir podemos observar, que est compuesto por un conjunto de dispositivos cada uno con una funcin especfica, vinculados con una cierta lgica y conectados por un cableado, trabajando de manera coordinada. Esa coordinacin nos la da el Sistema Operativo por lo que representa para el usuario, un cierto nivel de abstraccin: este reconoce su existencia sin conocer su estructura interna. Los programas de aplicacin desarrollados por el usuario, son un nuevo nivel de abstraccin, una solucin para un problema especifico. El concepto de Caja negra no tiene que ver con el dispositivo utilizado en los aviones, cuya funcin es la de registrar ciertos eventos que ocurren en el aeroplano y/o los dilogos entre pilotos y la base. Se vincula con el concepto siguiente: se desconoce su funcionamiento interior. Podemos decir que est encapsulado . Sabemos que, como toda mquina, recibe una determinada materia prima y entrega un material elaborado llamado informacin, que el usuario recibe y podr usar apropiadamente.
Materia prima
Producto elaborado
Caja
datos
Negra
informacin
Puede definirse desde un punto de vista exterior, como maquina virtual o maquina extendida: el usuario siente que tiene una maquina completa para l y sus necesidades. Desde un punto de vista interior, es un administrador de recursos. Como cualquier maquina, tiene ciertas habilidades o funciones, aseguradas y entregadas por su fabricante. Estas pueden ser invocadas por rdenes especficas (llamadas instrucciones), que conforman el lenguaje de mquina. Estn implantadas en el hardware de la maquina, variando su tipo y cantidad segn el modelo y el fabricante. La mayora de dichas habilidades, sirven para trasladar datos de un dispositivo a otro, albergar resultados intermedios, hacer operaciones matemticas, comparar valores (se hace por medio de una resta entre ambos), etc. Para poder acceder a esas habilidades, es necesario un mecanismo intermediador que nos permita encargar la ejecucin de cualquiera de esas habilidades elementales, con el PAGINA 4 DE 71
Sistemas Operativos
objetivo de resolver un problema determinado. Un conjunto ordenado de habilidades que resuelven un problema especfico, se llama programa . Dicho mediador funcionar interpretando las rdenes, trasladndola al dispositivo correspondiente para su ejecucin o cumplimiento y contando adems, con mecanismos que faciliten el uso de la computadora, el anlisis del resultado de cada ejecucin y la coordinacin de su funcionamiento interno.
disco
cinta
cpu
driver
driver
Memoria
driver
Toda computadora, puede reflejarse en esta estructura. Es un conjunto de dispositivos, vinculados por un medio de transporte de informacin: el bus o canal., El disco, la cinta y otros soportes similares de informacin, sirven para guardar informacin a lo largo del tiempo. Los programas que habitualmente residen en disco, se cargan en memoria para su ejecucin. All opera el procesador, quien elabora y ejecuta cada una a una las instrucciones integrantes del programa en ejecucin. Las componentes de una computadora, brindan al usuario diferentes servicios: manejo de la memoria, ejecucin de sus programas, administracin de soportes de informacin, detector de errores y comunicador de los mismos al usuario, flujo de informacin entre componentes, etc. As, podramos pensar al Sistema Operativo como una herramienta que permite alcanzar los siguientes objetivos: facilitar del uso de una computadora; permitir la utilizacin eficientemente de los recursos de una computadora y compartirlos entre diferentes usuarios; facilitar al usuario la ejecucin de las funciones de entrada/salida de datos; PAGINA 5 DE 71
Sistemas Operativos
brindar un horizonte de crecimiento en las funciones de desarrollo de programas, testeo de sistemas e introduccin de nuevas habilidades, con la menor interferencia con lo ya desarrollado.
HISTORIA
El desarrollo de los sistemas operativos fue evolucionando a lo largo del tiempo, paralelo a la evolucin de las computadoras, a la necesidad de incorporar a mayor cantidad de usuarios (por fines econmicos y satisfaccin de creciente demanda) y fundamentalmente respondiendo al principio hednico aplicable a cualquier equipamiento o herramienta de uso especifico: Obtencin de mayores beneficios con el mnimo esfuerzo u obtencin del mismo beneficio con el menor esfuerzo: ingenio y creatividad al servicio de un aprovechamiento integral de las posibilidades que dicho equipamiento brindaba en cada hito de su evolucin. Es de hacer notar que este principio tiene una raz netamente econmica y ello podr observarse a lo largo de toda su evolucin. El planteo fue siempre: cmo puede optimizarse la utilizacin de mi herramienta en pos de una mayor rentabilidad, de un usufructo ms ventajoso? Aun sin ser riguroso y por razones didcticas, podemos entender y analizar la evolucin de los sistemas operativos ubicndonos frente a lo que podramos considerar como la ms primitiva maquina de calcular: el baco (ao 1000 aprox). Objetivo de su construccin: maquina que ayude al hombre en trabajos repetitivos . La mquina de PASCAL (1642), es un interesante reflejo de esta afirmacin. Era una maquina de sumar, con discos dentados entrelazados entre s: cada vez que un disco (representaba las unidades) completaba un giro (10 unidades) generaba el movimiento de una posicin en el disco de su izquierda. El mismo criterio se aplicaba a los restantes discos en la misma direccin. Su creador la utiliz ayudando a su padre (recaudador de impuestos) a calcular la suma de las percepciones con fines de control. PAGINA 6 DE 71
Sistemas Operativos
Otra percepcin del principio impulsor de los sistemas operativos, fue la aparicin de la mquina de Jaquard (1801). Este seor era un tejedor de alfombras. Incentivado por el xito de sus diseos, intento crecer econmicamente buscando dos objetivos: poder repetir un mismo diseo, acortando los tiempos de produccin. Por ello diseo un patrn para que sus telares trabajasen automticamente: el entretejido de los hilos longitudinales (que ya venan cargados en el telar) con el hilo transversal que daba colores y formas, era dirigido por cartulinas estratgicamente perforadas. Estas perforaciones guiaban la lanzadera, parte fundamental del telar. Obtuvo automaticidad (incrementando su productividad) y pudo repetir el proceso satisfaciendo la demanda de sus clientes. Este criterio aun hoy sigue vigente (telas Jacquard), obviamente en maquinas con una productividad superior. De aqu puede anticiparse un moderno concepto de desarrollo de sistemas: la reutilizacin de ciertos programas (las cartulinas). Pueden mencionarse en esta historia, la maquina analtica de Babagge (1834). Era una herramienta mecnica que nunca funciono pues no se pudieron construir las poleas y soportes diseados. Es muy importante la aparicin de la tarjeta perforada de Hollerith (1837) y de la maquina que las leyera y procesara. Fue creada para apurar el conteo de los censos de EEUU. Lo que antes se tardaba 8 aos en contabilizar un censo, pas a hacerse en dos aos. Se pudo acceder a informacin vigente aumentando las posibilidades de anlisis y reproceso. Nuevamente, una maquina facilito la tarea humana repetitiva y permiti el reproceso en caso de necesidad o seguridad. La empresa IBM naci en 1924. El verdadero empuje a esta evolucin histrica, previa aun a la existencia de lo que hoy consideramos como sistema operativo, fue la Segunda Guerra mundial. Se requera velocidad de procesamiento y la posibilidad de modelar visiones multidisciplinarias, para la resolucin de problemas originados en la guerra (simulacin, clculo de trayectoria de obuses, etc.). Nacieron as la MARK I(1944) y la ENIAC (1945). Esta ultima funcionaba con un sistema decimal, pesaba 30 toneladas y estaba compuesto por 18000 (dieciocho mil) vlvulas al vaco. Es necesario imaginar su funcionamiento, considerando el calor que generaban tal cantidad de elementos y la cantidad de interrupciones por mal funcionamiento de dichas vlvulas, quienes se quemaban frecuentemente por la temperatura que disipaban. Su uso ms importante fue el apoyo para clculos matemticos, principalmente trigonomtricos. Es interesante estudiar el material incluido en el siguiente sitio http://www.wired.com/magazine/2010/07/ff_fred_brooks/
Sistemas Operativos
Muchos de estos cambios estn vinculados a la compactacin fsica de circuitos por cambios tecnolgicos. Esto implico una disminucin del tamao de los equipos, aumentos notables de velocidad de procesamiento y disminucin de consumo elctrico, reduccin de partes mviles y modernizacin en intervencin humana para la construccin de partes. Esto implico, en cada oportunidad, construcciones mas automatizadas, reduccin de tiempos y costos, e incremento de la fiabilidad de los circuitos.
PAGINA 8 DE 71
Sistemas Operativos
El sistema operativo articula la integracin de estos factores, encapsulando (para los ojos del usuario) el funcionamiento del hardware, permitiendo una facilitada y eficiente administracin de los datos e informacin (ingreso, procesamiento y almacenamiento) y el suministro y administracin eficiente de los recursos exigidos por los programas puestos en marcha. Este encapsulamiento (concepto utilizado fuertemente en modelado orientado a objetos) permite un cierto nivel de abstraccin (solo se conoce su utilizacin, pero no su funcionamiento: tampoco podemos modificarlo). El objetivo de esta materia, es analizar el funcionamiento interno de los sistemas operativos en cada una de sus partes, los servicios que brindan, los problemas que resolvieron a trabes de su evolucin y su desarrollo actual.
Sistemas Operativos
estudiar en la historia la evolucin de los conceptos intuidos y desarrollados. Su integracin como sistema y su potenciacin al desarrollarse formas de trabajo ms modernas, veloces y seguras, nos permitir entender las ideas concebidas, los problemas enfrentados y las correspondientes soluciones, su importancia y vigencia y la participacin de dichos hechos en la evolucin de los sistemas operativos. John von Neumann (1949) defini un modelo de computacin con ciertos ingredientes, que fueron bisagra para la concepcin moderna de lo que es una computadora: el programa almacenado. El concepto de salto condicional Definicin de un programa como cadena lgica binaria. Si observamos el uso de una calculadora en la resolucin de la suma de dos nmeros, vemos que utilizamos las siguientes funciones elementales de dicho instrumento: 1. Ingresar el primer valor 2. digitar el signo + 3. ingresar el segundo valor 4. digitar el signo = 5. el sistema muestra el resultado Supongamos necesitar nuevamente sumar otros dos nmeros. Debemos repetir exactamente las mismas habilidades para aplicarlas a los nuevos dos datos. Y esto vale para cualquier nueva oportunidad de igual necesidad. Podemos distinguir en este programa la existencia de pasos constantes y variables, a lo largo de cada utilizacin del mismo. Los dos sumandos varan con cada oportunidad; los pasos 2, 4 y 5 se repiten. El principio de menor esfuerzo indujo a pensar: si la estructura repetitiva de este programa pudiese ser almacenada en memoria, el usuario estara en condiciones de repetir esta operacin ingresando solo los sumandos (parte variable). Este concepto llamado programa almacenado fue aportado por el modelo de Von Neumann. En lugar de ejecutar las rdenes del programa conforme iban ingresando, propone la carga completa del programa en memoria, para luego poner en marcha su ejecucin. Esta ejecucin significa que el conjunto de rdenes cargadas se ejecutara en un orden secuencial. Pero este autor agrega un concepto adicional: propuso la incorporacin de una nueva habilidad que, cambiase dicha secuencia de ejecucin del programa condicionada por una determinada condicin a verificar (por ejemplo, resultado de una operacin previa, o signo de un operando recin calculado). Se puede definir a esta instruccin como salto condicional o ruptura condicional de secuencia. Segn el resultado de la verificacin se ejecuta una parte del programa u otra.
PAGINA 10 DE 71
Sistemas Operativos
REGISTRO DE INSTRUCCION:
El registro de instruccin permite albergar cada instruccin tomada desde la memoria. El sistema operativo separa el cdigo de operacin de los operndoos para luego analizar (ver Descripcin del procesamiento de un programa)
BASE POINTER Es un puntero, que contiene la direccin donde comienza la pila que
administrara los datos del proceso y que participara en los retornos a direcciones que originaron un determinado proceso.
REGISTROS DE USO GENERAL Son los registros de CPU que albergan datos o
direcciones como resultado de la ejecucin de las instrucciones u rdenes que integran el programa en uso.
PSW (Program Status Word) es un registro de estado: es un conjunto de bits cada uno
de los cuales tiene un significado determinado. Modo privilegiado protegido se pueden ejecutar todas las instrucciones de mquina y todas las direcciones de memoria son accesibles. Modo no privilegiado o modo usuario: algunas instrucciones (privilegiadas) no se pueden utilizar. Adems inhibe el acceso a ciertas direcciones de memoria. A estas instrucciones y/o memoria, se puede acceder a travs de la versin compilada de un programa, debido al acuerdo existente entre el desarrollador del compilador y el fabricante del CPU utilizado. Prioridad para tratamiento de interrupciones. Est vinculado con la aceptacin o no de las interrupciones. Si la interrupcin es de mayor prioridad a la de la CPU, es aceptada. En caso contrario la deja en espera hasta que lo permitan las condiciones de prioridad.
PAGINA 11 DE 71
Sistemas Operativos
Cdigos de condicin: graba informacin referida a resultados de la instruccin ejecutada anteriormente y que podran utilizarse como condicin de ejecucin de la instruccin en curso.
AC (Alignement Check) ID (Identification flag) RF (Resume Flag) IOPL(I.O. privilege level) DF (Direction Flag) IF (Interrupt enable Flag) TF (Trap Flag)
alineacin o no alineacin a entorno de doble palabra hay procesadores que soportan (y este bit es para habilitarla o no) informacin del fabricante, familia y modelo de computadora Permite al programador inhibir excepciones en el debugging de modo que la instruccin pueda ser recomenzada despus de una excepcin de debugger sin causar inmediatamente otro nueva interrupcin. Si pone en ON, implica que se genere una excepcin en todos los accesos a dispositivos de E/S durante el modo de operacin privilegiado. Determina cuando incrementar los registros SI DI ESI o EDI cuando se procesan instrucciones de strings. En ON el procesador reconoce interrupciones externas. En ON, genera una interrupcin despus de cada instruccin (para debugging)
Bits de modo de operacin NT (Nested task flag) Indica si la tarea actual, esta anidada dentro de otra en modo protegido. VM (Virtual Mode 8086) Permite operar simulando un procesador 8086-mas antiguo) VIP (Virtual Interrupt Pending) usado en modalidad 8086 para indicar si una o varias interrupciones estn esperando servicio Cdigos de condicin. AF (Auxiliary carry flag) representa si hubo carry en una operacin de medios bytes en una operacin logia o aritmtica con el registro AL CF (Cary Flag) Indica un carry del bit izquierdo despus de una operacin aritmtica. Tambin puede modificarse por un corrimiento de bits. OF (Ocverflow Flag) Indica overflow aritmtico despus de una suma o resta PF (Parity Flag) Paridad del resultado de una operacin aritmtica (1 par 0 impar) SF (Sign Flag) Indica signo del resultado de una operacin matemtica o lgica ZF 8Zero Flag) Indica si fue 0 el resultado de una operacin matemtica o lgica.
Sistemas Operativos
Ciclo de instruccin:
El procesador consulta al RPI. Su contenido apunta al lugar de memoria donde se encuentra la prxima instruccin a procesarse. Toma la instruccin direccionada y la copia al Registro de Instruccin. Su contenido se analiza por separado: primero el cdigo de operacin y luego el o los operandos. Antes de analizar la instruccin leda, el RPI se actualiza. Se le suma el tamao de la instruccin que se va a analizar. De este modo, el RPI servir para posicionarse en la siguiente instruccin para el prximo ciclo. Si la instruccin a analizar se trata de una bifurcacin, la nueva direccin de bifurcacin es cargada en el RPI y el ciclo contina. A continuacin se analiza si el cdigo de operacin es vlido (si pertenece a alguna de las habilidades antes mencionadas). En caso negativo, se para el proceso. Luego, se controla si las direcciones de memoria contenidas en los operandos son vlidas, es decir, que estn dentro del rango de la memoria principal asignada al programa y no corresponda al rango de memoria utilizado por el sistema operativo residente en memoria.
Ciclo de ejecucin:
Si los anlisis anteriores fueron correctos la instruccin es ejecutada por la Unidad Aritmtica y Lgica (UAL) usando, si fuesen necesarios los registros de uso general antes definidos.
Ciclo de interrupcin:
Bajo el concepto de multiprogramacin, toda instruccin pasa por un ciclo inicial de interrupcin, donde la CPU pregunta al Bus (dispositivo encargado de realizar el manejo PAGINA 13 DE 71
Sistemas Operativos
de entradas y salidas de datos), si hay una interrupcin pendiente de ser atendida. En caso de haberla, la CPU atiende la interrupcin (luego se explicara). En caso contrario, sigue procesando la instruccin a la que apunta el RPI.
Interrupciones
Stack
La funcin de la pila o stack es la de acumular informacin con la metodologa LIFO. El uso ms importante de esta estructura es documentar las condiciones de retorno en la ejecucin de un programa, cuando por alguna razn, se interrumpe su procesamiento y se va a otro subprograma especfico. Hay que crear las condiciones de retornar al programa original. Para ello hay que reproducir las condiciones existentes (los valores de todos los registros, por ejemplo), tal como si el programa nunca se hubiese detenido a esperar la operacin de E/S. Las operaciones con un stack son: PUSH, agregar informacin a la cabeza de la pila; POP tomar informacin de la cabeza de la pila. Para definir una estructura de pila, se consideran los siguientes elementos: Base Pointer: puntero que contiene la direccin de memoria donde comienza la pila Stack Pointer: puntero a la direccin ltimamente cargada de la pila Length: tamao del stack. Si el stack pointer coincide con el Base pointer es porque la pila est vaca. Se incrementa en la cantidad de informacin a guardar el stack. Si en cada oportunidad se agrega o quita la misma informacin solo se guarda en el stack la direccin de memoria que contiene los datos. El agregar y quitar debern respetar el orden y cantidad de los datos.
Punto de Retorno
Programa Principal Posicion inicial 4000 4000 4100 Call Proc1 Programa Proc1 Posicion Inicial 4500 4500 4600 Call Proc2 Programa Proc2 Posicion Inicial 4800 4800
PAGINA 14 DE 71
Sistemas Operativos
Una utilizacin muy interesante de la estructura stack, es en el caso del punto de retorno. Supongamos estar posicionados en el programa llamado principal. El mismo est cargado en memoria, a partir de la direccin 4000. En la direccin 4100 hay un llamado a un subprograma Proc1, cargado a partir de la direccin 4500. Se llama subprograma a un conjunto de instrucciones insertadas dentro de un determinado programa principal del cual es parte, y que resuelve un clculo que puede repetirse varias veces, a lo largo del ciclo de vida del programa principal. Debemos reconocer el principio de reutilizacin, necesidad de incorporar una nica vez dicho subprograma y llamarlo desde diferentes lugares. A su vez, Proc1 puede llamar a Proc2 y as sucesivamente. Cada subprograma finaliza con la instruccin Return, que indica volver al punto en que dicho subprograma fue convocado. Esta direccin de memoria se llama punto de retorno y la instruccin Return funciona as: toma la direccin del stack y actualiza el RPI. Dado que puede existir un encadenamiento de llamados, debe preverse la vuelta inversa. Para ello se utiliza la estructura de un stack. El programa principal ejecuta la instruccin call Proc1 ubicada en la direccin 4100. El RPI apunta a la direccin de la siguiente instruccin: supongamos 4104. Es el primer valor que se agrega (push) al stack. El RPI se llena con la direccin 4500. All sigue el proceso hasta llegar a la 4650, con un call Proc2. Se agrega al stack el punto de retorno 4604 y el RPI se actualiza con 4600. Sigue el procesamiento de las instrucciones del Proc2. Cuando llega el Return correspondiente, el sistema operativo hace POP del stack tomando el valor superior (4604) actualizando el RPI y siguiendo su trabajo. Al llegar a la instruccin call proc2 ubicada en 4600 se vuelve a proceder como est arriba explicado. Vuelve a alimentarse el stack con 4654. Ante el siguiente Return se vuelve a 4654 y cuando llega el Return de Proc1 se toma el elemento superior del stack (4104) para proseguir hasta terminar.
Sistemas Operativos
El bus se encarga de comunicar la orden al dispositivo por medio del driver especfico mientras el procesador elabora instrucciones de otro programa. El aprovechamiento cobra ms importancia, debida a la franca diferencia de velocidad entre cualquier dispositivo y la CPU (obviamente en favor de esta ltima).
Cambio de contexto
En el momento en que el programa en ejecucin procesa una instruccin que pide una E/S, se pone en marcha el mecanismo llamado cambio de contexto. El procesador se ocupara de otro programa en memoria, aprovechando que no puede hacer nada con el actual hasta que no se cumpla la E/S pedida. Naturalmente, deben crearse las condiciones de que vuelva a ser procesado EN LAS MISMAS CIRCUNSTANCIAS Y DATOS EXISTENTES, EN EL MOMENTO DE LA SUSPENSION TRANSITORIA DEL PROCESO. Por otro lado en todo sistema de computacin hay un solo juego de registros especficos y de uso general. Cada programa entonces, debe preservar los valores que estos registros tenan, al momento en que el procesador decidi ocuparse de otro programa. Es una especie de radiografa tomada en el momento del corte, que servir para ser retomado, tomando los valores de los registros guardados y restaurarlos en cada uno de ello. El programa podr en algn momento continuar, COMO SI NUNCA HUBIESE SIDO SUSPENDIDO. Este resguardo de informacin se llama Cambio de Contexto. El procesador carga la informacin de todos los registros en uso en la PCB, particularmente el RPI cuyo contenido apunta a la instruccin prxima a ejecutarse, despus de la concrecin de la E/S. Cada programa tiene su propio stack, construido en memoria principal y la PCB cuenta con un puntero a dicha pila.
Interrupcin
Cuando el bus termina de realizar la operacin previamente encomendada, genera una interrupcin, avisando al sistema operativo que su trabajo termin indicando, adems, en qu condiciones termin. La CPU es informada de todo este movimiento pues controla el flujo de procesos, especficamente en su ciclo de interrupcin. Generada la interrupcin, el sistema toma conocimiento de la misma y analiza el cdigo devuelto. Este cdigo identifica la finalizacin de la operacin pedida y las condiciones de finalizacin: , o con un determinado error. En la memoria correspondiente al sistema Operativo existe un vector de interrupciones. Es una lista de dos columnas: la primera, tiene todos los cdigos de interrupcin previstos, mientras que la segunda tiene una direccin de memoria donde se guarda un subprograma que trata especficamente cada interrupcin. Estos programas son definidos por el fabricante del Sistema Operativo. Se produce un nuevo cambio de contexto y se procesan dichas instrucciones. Esto se llama resolver la interrupcin. Seguramente, una de estas instrucciones es poner en aviso al programa originario, del resultado de la operacin, para que el determine como continuar. Cuando el procesador decida la continuacin del proceso del programa para el cual se proceso la interrupcin, se producir un cambio de contexto inverso, restaurando las condiciones existentes en el momento de que se lo dejo de procesar. PAGINA 16 DE 71
Sistemas Operativos
Entre estos datos figura el punto de retorno, direccin de la instruccin inmediatamente posterior a la que genero el pedido de E/S. Aqu cobra sentido el contenido de RPI (Reg. Prxima Instruccin). Tambin interesa el estado del resultado de la ltima operacin, previa a la interrupcin. Tambin la PSW, registros de cpu, etc. LA PILA NO GUARDA INSTRUCCIONES DEL PROGRAMA CORRESPONDIENTE. EL PROGRAMA PERMANECE EN MEMORIA. SOLO GUARDA DIRECCIONES DE RETORNO. La Administracin de todo este proceso la hace el Sistema Operativo, no el procesador. El procesador solo sirve para controlar y ejecutar las instrucciones que se le presentan: en nuestro caso, la de un programa del sistema operativo.
PAGINA 17 DE 71
Sistemas Operativos
Cambio de contexto para poder seguir procesando el programa B mientras se est ejecutando la orden de E/S del programa A El dispositivo finaliza su tarea y emite una interrupcin El procesador termina con su actual instruccin, perteneciente al programa B Se notifica de que hay una interrupcin pendiente. Hace cambio de contexto de la informacin del programa B Trae del stack la info de contexto correspondiente a la rutina de tratamiento de la interrupcin. La direccin inicial de este programa est definida en el llamado Vector de interrupciones, lista que contiene el cdigo de interrupcin y una direccin a la rutina de su tratamiento, que vienen con el sistema operativo. Restaura valores dejados en el stack por el cambio de contexto ocurrido en (*), para volver a las condiciones de ejecucin del programa A El programa A sigue su procesamiento.
Motivos de Interrupciones.
Reloj (timer) Entrada/Salida Falla de algn dispositivo Programa que produce el time out finalizacin normal o con el problema ocurrido, de una operacin de E/S (fuente de poder, memoria, etc) (divisin por 0, instruccin ilegal, fuera de la memoria permitida o disponible, etc.)
Jerarquas de memoria.
Memoria es un nombre genrico, referido a dispositivos que se usan para guardar informacin, algunas en forma permanente y algunos en forma voltil. Pueden establecerse diferentes ordenamiento: de arriba hacia abajo, por velocidad mayor, por mayor costo por bit (de abajo hacia arriba), menor tiempo de acceso a cada unidad de informacin (de arriba hacia abajo). Punto a) Registros CPU Cache Memoria principal Disco electrnico Disco magntico CD (disco ptico) DVD Cintas magnticas
Voltiles
No voltiles
Punto b)
Punto a): Mayor costo por bit almacenado, menor capacidad de informacin, menor tiempo de acceso y mayor frecuencia de acceso. Punto b): Mayor capacidad de informacin, menor costo por bit empleado, mayor tiempo de acceso, menor frecuencia de acceso. Se pueden observar las siguientes relaciones: Cuanto ms rpido es el dispositivo mayor es el costo por bit de informacin. PAGINA 18 DE 71
Sistemas Operativos
A mayor capacidad por dispositivo, menor costo por bit. A mayor capacidad del dispositivo, menor tiempo de acceso
Principio de localizacin
Hay un principio inherente a muchas opciones incorporadas a los sistemas operativos, originado en la observacin y en la definicin e implementacin de ciertos conceptos. Debido al principio de Von Neumann el ordenamiento de ejecucin de un programa es secuencial. Debido a ello, es alta la probabilidad de que a la ejecucin de una instruccin determinada, le siga la ejecucin de la instruccin fsicamente contigua. Las excepciones estn dadas cuando el procesador se encuentra con una instruccin de bifurcacin. Este principio, tambin se aplica al tratamiento de la informacin guardada en un determinado dispositivo.
Memoria Cache
En este tem, integraremos los dos conceptos anteriores y adems se introducir el conocimiento acerca de un dispositivo fundamental en la evolucin de los Sistemas Operativos e importante para su comprensin. Aunque resulte obvio, es interesante resaltar que la diferencia de velocidad entre dispositivos sea tal, que resulta difcil su vinculacin. Si los dispositivos fueran vagones de un ferrocarril, resulta obvio que la velocidad final de la formacin depender fuertemente, del vagn ms lento o ms trabado. Es por ello, que para mitigar este desacople, se crean dispositivos intermediarios entre uno rpido y otro lento, pero que puedan vincularse rtmicamente. Es el caso de la memoria principal y el procesador. Este ltimo, es por lejos, el dispositivo ms veloz de todo sistema computacional. En consecuencia, el procesamiento de una instruccin se medir de acuerdo a la velocidad de la memoria (mucha ms lenta que la del procesador) y el procesador no podr desplegar toda su potencia. Para procesar una instruccin el procesador procede (como fue explicado) a ejecutar dos accesos a memoria: acceder a la instruccin y analizarla, y otro en momento de su ejecucin. Es en estas condiciones que se crea un dispositivo que intermedie entre ambos: el cache. Es construido con un material muy caro (por ello la memoria no se construye totalmente del material del cache) y tiene una velocidad ms cercana a la del procesador. Lo que se intenta hacer es evitar (en lo posible) acceder dos veces a la memoria: el primer acceso se intenta en la cache, donde su supone que previamente, fueron cargadas un grupo de instrucciones, copiadas desde su posicin original en la memoria. EN ESTO RESIDE EL AUMENTO DE VELOCIDAD DEL PROCESO: EVITANDO UNO DE LOS DOS ACCESOS A MEMORIA. Por el principio de localizacin, se supone que habr un procesamiento secuencial entre dicho grupo de instrucciones. Por lo tanto, con la alimentacin de dicho grupo, el procesador tendr suficiente material de trabajo en la cache hasta que se justifique la copia de otro tramo del programa a la misma PAGINA 19 DE 71
Sistemas Operativos
CPU
CACHE
MEMORIA
Transfiere un bloque de instruccion es(ejecucin de varios programas Cuando se trabaja con Multiprogramacin Transfiere una instruccin simultneamente) la cache se divide en porciones asignadas cada una a cada programa en ejecucin. De modo que cada programa en ejecucin tiene un grupo de sus instrucciones tanto en memoria (donde reside todo el programa) como en la cache. Cuando un programa debe procesar una instruccin y la encuentra en la cache se dice que hubo un HIT (xito en encontrar la instruccin y el ahorro del correspondiente acceso a memoria). Por el contrario, si la instruccin a procesar (valor del RPI) no est en cache es un MISS (falta). Entonces (considerando el principio de localizacin) se trae un nuevo bloque de instrucciones de memoria, donde reside la instruccin buscada y hasta el tamao del bloque asignado a cada proceso. Este nuevo bloque reemplaza en la cache, al bloque que hace ms tiempo que no se procesa: criterio llamado LRU (Least recently used el que hace ms tiempo que no se usa). Al actualizar la cache, se vuelve al ciclo anterior y seguramente habr un HIT. Lgicamente, que este proceso generara una distraccin de la CPU actualizando la cache. Pero esta situacin, es infinitamente menos costosa que el doble acceso a la memoria de todas las instrucciones procesadas, desde el ltimo MISS. Cabe una cuestin importante: si en el procesamiento de un tramo de instrucciones se modifico algn dato, se presenta la situacin de que la cache (que representa la memoria) y la memoria no coinciden: se modifico un dato en la cache pero la memoria no se actualizo. Caben aqu dos polticas: a) la memoria se actualiza inmediatamente que la cache cambio (write through); b) se espera al prximo MISS (write back) para analizar dos situaciones a. no hubo cambios. Se trae el siguiente bloque a la cache, directamente b. hubo cambios. Por lo tanto, primero se graba en memoria la informacin de la cache y recin se lee un nuevo bloque de la cache. Hay dos factores adicionales para ajustar la eficiencia de la cache: Tamao de la cache. Cuanto ms grande ms instrucciones pueden cargarse Tamao de cada bloque: cuanto ms grande, menos transferencias sern necesarias, pero el principio de localizacin ya no se cumplir tan estrictamente
PAGINA 20 DE 71
Sistemas Operativos
PAGINA 21 DE 71
Sistemas Operativos
Contador de datos
Lineas de datos
Registros de datos
Lineas de direcciones
Registros de dirrecciones
Logica de control
El DMA es capaz de imitar al procesador, tomando el control del bus. Los necesita hacer para transferir los datos desde y hacia la memoria usando el bus del sistema. Funcionamiento: cuando el procesador quiere leer o escribir un bloque de datos enva un mandato al DMA especificndole: Si es de E/S, cantidad de datos a transmitir, direcciones del disco y la memoria. PAGINA 22 DE 71
Sistemas Operativos
El procesador sigue con otra tarea. El modulo DMA transfiere el bloque completo, palabra a palabra. Directamente con la memoria sin pasar por el procesador. Cuando finaliza la transmisin enva una interrupcin. Por lo tanto el procesador interviene en dos partes: inicia la transmisin y atiende una interrupcin. (Al inicio y a la finalizacin). Tres mecnicas: 1. Todos los mdulos de E/S comparten un mismo bus. El D MA acta como un procesador subordinado, usa E/S programada para intercambio de datos entre un modulo de E/S y la memoria usando el DMA. Mecanismo ineficiente, pues cada transferencia de una palabra insume dos ciclos del bus (peticin de transferencia y transferencia. 2. Si se integra el DMA a las funciones de E/S se pueden disminuir la cantidad de ciclos. Hay un camino entre la funcin de E/S y el DMA que no incluye al bus. La lgica del DMA puede ser parte del modulo de E/S o puede controlar uno o mas mdulos de E/S integrndolos
Procesa dor
DMA E/S
DMA
Memoria
E/S
E /S
1. Los mdulos de E/S pueden conectarse al DMA utilizando un bus especfico de E/S. Esto reduce a una nica interfaz de E/S en el mdulo DMA y proporciona una configuracin expandible, El Bus del sistema dsolo se usa para intercambiar datos con la memoria y seales de control con el procesador. El intercambio de datos entre los mdulos del DMA y la E/S tienen lugar fuera del bus del sistema
PAGINA 23 DE 71
Sistemas Operativos
Procesa dor
Memoria
E/S
E /S
DESARROLLO DE PROGRAMAS
Aunque no se consideran estrictamente pertenecientes al S.O. de cualquier maquina, hay una serie de programas que facilitan las tareas del usuario/programados: editores, debuggers, compiladores, controladores de uso debido de memoria. etc. Esto entra dentro de las funciones del S.O. de facilitar al usuario en el uso de recursos del sistema de computacin.
EJECUCION DE PROGRAMAS
Incluye tareas para la ejecucin de programas, carga del mismo en memoria, preparacin de la informacin de procesos (PCB), preparacin de la entrada y salida de datos, preparacin de los dispositivos. Con este planteo, podemos definir inicialmente a un sistema operativo como un conjunto de programas que permite y controla la ejecucin de programas de aplicacin (desarrollados por los programadores) y funciona como interfase o intermediario entre estos programas y el hardware integrado por la computadora donde los programas se ejecutan.
PAGINA 24 DE 71
Sistemas Operativos
ACCESO AL SISTEMA
En caso de ser un sistema pblico y compartido, proveer mecanismos de control de acceso global y particular de determinados recursos. Debe proveer proteccin de usuarios y accesos indebidos o no autorizados y evitar conflictos por retencin de recursos.
CONTABILIDAD
El creciente involucramiento del uso de una computadora en todas las reas de una empresa, asociado al costo de su mantenimiento y de la incorporacin de nuevos dispositivos y software, as como el de especialistas, dio lugar a la necesidad de controlar dichas inversiones y particularmente del uso de sus recursos. Un buen sistema operativo colecciona informacin sobre el uso de sus recursos y los acumula para su posterior anlisis. Muchas veces se utiliza esta informacin con fines de auditora y facturacin intersectorial.
PAGINA 25 DE 71
Sistemas Operativos
3 4
instrucciones. El resultado de toda compilacin estar conformado por instrucciones pertenecientes a este grupo. Llamado a subrutina y retorno, manejo de stack (pop y push). Esquema clsico para registrar los cambios de contexto en el caso de interrupciones. Interrupciones.
De 1 a 4 no son parte del Sistema Operativo. Sin embargo son la base para la definicin de sus funciones y obviamente de su naturaleza. 5 6 7 Nocin de procesos y sus estados. Manejo de primitivas. Switcheo entre dos procesos. Mtodos de sincronizacin para procesos cooperativos, cuando se requiere algn tipo de coordinacin. Dispositivos de memoria secundaria. Posicionamiento en una zona especifica del disco, transferencia de informacin solicitada, reserva y liberacin de espacio. Tiene que ver con manejo de cdigos de retorno de cada operacin fsica de Entrada Salida Creacin del direccionamiento lgico para uso de los procesos, expandiendo la memoria a almacenamiento secundario. Administracin dinmica de memoria, en cuanto al movimiento de intercambio de informacin entre disco y memoria.
de 5 a 7 el S.O. se ocupo de recursos para un procesador nico. A partir del 8 se ocupa de objetos externos (perifricos o redes) que pueden compartirse entre uno o varios computadores 8 9 10 11 Comunicacin entre procesos. Pipe, canal lgico de comunicacin entre procesos Administracin de archivos en memoria secundaria. Tiene que ver con la administracin lgica (no fsica-sectores, pistas, etc) que se vio en nivel 6. Provee acceso a dispositivos externos. Impresoras, display y teclados Directorios. Vinculacin entre nombres lgicos y fsicos de objetos. Administracin de derechos de acceso. Este es un problema clsico en computacin. El objetivo econmico de acercar ms usuarios, dio lugar a la creacin de la entidad del nombramiento simblico de variables, dispositivos, nombres de archivos, etc. Pero los procesos reales suceden bajo una denominacin fsica, primitiva de esos recursos. Por ello en este nivel se implementa la asociacin de estas dos metodologas de nombramiento de recursos. Es la funcin del Sistema Operativo, de hacer amigable al usuario el uso de un sistema. Administracin profunda de procesos. Registracin de la informacin de estados en la PCB, formacin de las colas, facilidades para la ejecucin del dispatcher, creacin de procesos y en general control de los mismos. Es importante destacar la administracin de datos en disco, segn las diferentes visiones de los niveles 6 y 9. Cada transferencia fsica a/desde disco se hace apuntando a la mnima unidad de informacin direccionable en disco: el sector. Este es una unidad fsica del dispositivo y puede contener varios registros lgicos. Pero la visin del programador es por registro lgico, e implementada en el nivel 9. Ante la apertura de un archivo, el S.O. emite una orden de lectura apuntando al primer sector y trayndolo en forma completa (Nivel 6). Pero el nivel 9 administra esa info, y entrega de un registro lgico por cada pedido de lectura del programa. Recin cuando termino de aportar todos los registros lgicos trados en la ltima lectura, recin hace una segunda lectura fsica al dispositivo. La cantidad de registros lgicos por registro fsico (sector en el disco o bloque en la unidad de cintas) se llama factor de bloqueo. Es decir, que se arrobaran n-1 lecturas fsicas en caso de haber un factor de bloqueo de n. Provee la interfase entre el usuario y el Sistema Operativo. Es el clsico shell o ncleo que interpreta los comandos al S.O (Job Control Lenguage). Es la capa ms externa de un sistema Operativo
12
13
PAGINA 26 DE 71
Sistemas Operativos
SPOOLING
Con la aparicin del disco magntico, se pudo pensar en mecanismos para tratar una permanente obsesin de los fabricantes de equipos y/o sistemas operativos: aprovechar los tiempos, generar la posibilidad de ms usuarios simultneos, abaratar costos o generalizar ms procesos simultneamente. (Repetimos la motivacin econmica para todos los avances y evoluciones de temas vinculados con Sistemas Operativos). Uno de estos conceptos es el spooling (simulteneous peripheral on line operation). El spooling permiti a la CPU superponer (para poder hacerlas simultaneas y aprovechar los tiempos) las operaciones de entrada o salida de varios trabajos. Se trata de un nivel sofisticado de administracin de una cola de trabajos, tanto de entrada como de salida. En el spooler de entrada, se trata de cargar los trabajos en forma masiva (por la cantidad de trabajos), para ser administrados como una cola. Esto permitira la aplicacin de conceptos como el de prioridad, caractersticas similares de trabajos. Puede retenerse un trabajo debido a una dependencia de resultados de un proceso previo, para que pueda administrarse su lanzamiento segn la conveniencia del centro de cmputos. En el spooler de salida, el aprovechamiento es muy importante. Se aplica para la administracin de los listados generados simultneamente por varios programas. Se pudo lograr la siguiente funcionalidad: Retener la salida de un listado, cuando por motivo de volumen deba recibir la autorizacin del programador Retener la salida de un listado, cuando faltan formularios especiales para el mismo. Permitir ver por dentro del listado, para verificar su correccin antes de iniciarlo. Permitir comenzar la impresin aun antes de haber finalizado el programa que lo est generando Indicar que se impriman varias copias de un listado, sin repetir el proceso de generarla. Eliminar un listado de la cola Administrar prioridad de listados, etc.
Multiprogramacin:
Inicialmente, cuando un programa derivaba una orden de E/S a un dispositivo, el mismo se quedaba esperando hasta la finalizacin de dicha orden. La diferencia abismal de velocidades mostraba a una CPU (nica y costosa) de dbil utilizacin, desaprovechada. Con la aparicin del concepto de canal o bus de E/S, el procesador pudo derivarle este trabajo. Por lo que, mientras el programa en ejecucin deriva una operacin de E/S al bus, la CPU puede ocuparse de otro programa residente en Memoria. Esto permitir una superposicin de tareas, con un importante aprovechamiento del uso del dispositivo ms importante de toda computadora: la CPU. A fin de mejorar el desempeo global del sistema, los desarrolladores introdujeron el concepto de multiprogramacin. Con la multiprogramacin varios trabajos se mantienen en la memoria al mismo tiempo; la CPU conmuta de un trabajo a otro para mejorar el aprovechamiento del procesador. Consiste en la posibilidad de activacin de varios programas simultneamente. Se trata de aprovechar el tiempo til de la CPU.
PAGINA 27 DE 71
Sistemas Operativos
PROCESOS
Un proceso es un programa en ejecucin, en actividad. Desde que el programa (residente en disco) es convocado para su ejecucin y hasta su finalizacin, pasa por diferentes estadios: el tiempo transcurrido entre esos extremos se llama ciclo de vida del proceso. Durante este ciclo de vida, el sistema agrega datos al programa, y lo trata con la ejecucin de instrucciones propias. Los Procesos se estudian dentro del concepto de multiprogramacin. El concepto de proceso tiene origen en los problemas vinculados con la administracin de recursos que el S.O. brinda en la medida que estos lo demanden. Se incluyen cuestiones de coordinacin de dichos recursos ante la existencia de usuarios concurrentes (Time .Sharing) o de proteccin de los recursos compartidos: memoria, archivos, instrucciones privilegiadas, etc. Contenido estructural de un proceso: Proceso Instrucciones del programa Datos propios (contadores, acumuladores, variables) Contexto (formado por los datos y las instrucciones que el S.O. genera para la administracin del programa, a lo largo del ciclo de vida del proceso.
Simultaneidad de uso de un programa: Es una posible condicin de un programa, por la que distintos usuarios lo pueden usar al mismo tiempo en diferentes puntos de utilizacin del mismo total o parcialmente. El programa puede abrirse varias veces pero solo una copia del mismo ocupa memoria Ej: Word de Microsoft. Es decir son procesos asociados al mismo programa y se consideran secuencias de ejecucin distintas o procesos diferentes. La nica condicin, es que el programa sea reentrante, es decir, que no permita ser modificado por ninguno de los usuarios simultneos, de modo que cada uno de ellos cuente siempre con la misma versin y contenido del programa.
PAGINA 28 DE 71
Sistemas Operativos
Identificacin de Procesos
Identificacin de un proceso comn Identificacin de un proceso generado por un padre Identificacin de usuario
PAGINA 29 DE 71
Sistemas Operativos
Proceso Privilegiado. Un proceso puede tener privilegios de memoria o de cierto tipo de instrucciones a utilizar (privilegiadas) Administracin de memoria: puede contener pointers a segmentos o pginas de memoria asignados al evento, segn la metodologa de paginacin utilizada. Propiedad de recursos y su utilizacin. Registracin de los archivos utilizados por el proceso. Registros de auditora del uso del procesador para cada proceso. Esta informacin puede ser utilizada por el organizador de procesos.
ESTADOS DE UN PROCESO:
Se identifican varios estados de un proceso a lo largo de su ciclo de vida: El estado new nace cuando el programa es convocado para su ejecucin. El sistema operativo forma la PCB en memoria, la inicializa (le pone sus valores iniciales) y le asigna un numero nico de proceso. Se dice que el estado NoRunning o listo o Ready si, estando en New se le asigna memoria donde ser cargado para su ejecucin o cuando el proceso suspende su ejecucin. En estado de listo, el proceso est en condiciones de ser nuevamente elegido para su procesamiento. La PCB permanece en memoria, acompaando el ciclo de vida del proceso Pueden haber diferentes motivos para pasar al estado listo: un pedido de entrada/salida, se termino el tiempo mximo asignado a cada proceso (time out: se explica ms adelante). Se dice que est en estado de Running o ejecucin cuando se est ejecutando alguna de sus instrucciones.
PAGINA 30 DE 71
Sistemas Operativos
Time Out
En todo Sistema Operativo existen una serie de parmetros o valores llamados quantum. Sirven para customizar o particularizar algunas caractersticas del mismo, acorde a lo que sus usuarios prefieran. Aqu aparece el primero. En cada sistema operativo se asigna un tiempo mximo para una ejecucin continua de un proceso. Esto se define para que un programa orientado a proceso (uso continuo de CPU procesos de ndole matemtica o de mucho calculo) no se apropie o monopolice la CPU a expensas de otros. Dispatcher Es un programa del Sistema Operativo que elige al proceso que estando en estado de Ready, corresponde pasarlo a estado de Running. VIDA Y MUERTE DE UN PROCESO: Motivos de inicio de un proceso: 1) Cuando entra un nuevo trabajo o programa PAGINA 31 DE 71
Sistemas Operativos
2) Cuando un usuario se loggea en time sharing 3) Un proceso puede disparar a otro (en un entorno multithread, relacin padre hijo, cuando finaliza el padre tambin lo hace el hijo). El proceso que inicia la ejecucin de otro se llama padre, el nacimiento de un hijo se registra en el Process Control Block del padre y como proceso independiente, el Sistema Operativo crea la PCB propia.
EVOLUCION DE UN PROCESO:
Esquema de 8 estados: 1) Running : 2) ready: 3) Bloqueado: 4) Suspendido: 5) new: 6) exit. : 7) Bloqueado suspendido 8) LISTO-suspendido El programa se est ejecutando El programa solo espera memoria para ser ejecutado El programa espera un entrada o salida El programa fue desalojado de memoria El programa ha solicitado su entrada para ser procesado El programa ha finalizado y se genera una interrupcin. El programa estaba bloqueado y fue desalojado de MP (swapping) El programa pide ser ejecutado, se crea su PCB pero no hay memoria asignable
PAGINA 32 DE 71
Sistemas Operativos
Admitio
ne w
Ready/ suspen d
Ready
T.Out Ocurrio evento Susp Blocked/ Suspend ed Blocked Activo Ocurrio evento Espera evento
Blocked/ Suspend ed
Un proceso esta Ready cuando es admitido por el CPU, se le asigna un rango de memoria. El dispatcher le pasa el control al proceso para ser ejecutado. Un proceso es bloqueado cuando espera un evento (e/s), cuando tiene una interrupcin privilegiada, cuando espera que un hijo termine su proceso. En este estado hay distintas colas de almacenamiento: por eventos y por dispositivo. Un proceso es suspendido cuando el S.O. lo desaloja de la memoria principal por otro de mayor prioridad. Este es el proceso de swapping. La PCB sigue en memoria y tiene el dato de la direccin de disco donde se genero la copia previa al desalojo del proceso Un programa est en New cuando pide ser ejecutado y aun no fue cargado en memoria. Se construye e inicializa su PCB. Para pasar a ready el SO fija la cantidad de memoria disponible y se fija cuantos procesos se estn realizando y as poder regular el balanceo entre los procesos. Un programa finaliza por los motivos vistos en Motivos de finalizacin de un proceso: Al finalizar el programa, el proceso aun sigue vigente, registrando datos provenientes de la utilizacin de recursos hechos por el mismo y acumulados en la PCB. Esto servir para ser utilizado para la contabilidad de recursos, distribuyndolos por centro de costo usuario. Es muy importante analizar que el estado Blocked/Suspended tiene dos motivaciones: Espera una E/S Esta suspendido Ambos eventos son totalmente INDEPENDIENTES. Tuvieron que ocurrir en determinada secuencia: primero el blockeo y luego la suspensin. La inversa es imposible pues no se puede procesar una instruccin de E/S estando el programa fuera de memoria.
PAGINA 33 DE 71
Sistemas Operativos
Por lo tanto a un proceso en esas condiciones le pueden ocurrir dos eventos a su tiempo: producirse el evento esperado (deja de estar bloqueado pero sigue suspendido), se recarga a memoria (pero sigue bloqueado).
PAGINA 34 DE 71
Sistemas Operativos
Memori a Virtual
P1
P2
Pn
recursos
Procesador
E/S
E/S
E/S
Memoria
Utilizacin de recursos en un instante dado. Una lnea con punta indica el uso del recurso. Una lnea sin punta indica que el recurso al que apunta, no se est utilizando. El proceso 1 est en ejecucin El proceso 2 est bloqueado El proceso n est suspendido PAGINA 35 DE 71
Sistemas Operativos
El sistema operativo se ve en la necesidad de manejar informacin sobre el uso de los recursos. Por lo tanto maneja tablas y los datos propios de las PCB de cada proceso. Particularmente, interesa el manejo de colas: hay una cola en el estado Ready. A veces esta cola se puede organizar por prioridades y dentro de una misma prioridad, por orden de llegada. Tambin el estado blocked se organiza por dispositivo, para hacer ms eficiente al tratamiento de una interrupcin determinada: se busca en la cola del dispositivo que provoco la interrupcin. Tambin puede definirse una cola para suspendidos, donde al igual que en Ready se respeta la prioridad y luego el orden de llegada.
PCB
PAGINA 36 DE 71
Sistemas Operativos
Las PCB se transforman en algo tan importante, que es necesario construir una ESTRUCTURA DE LISTAS para contener toda la informacin necesaria. Para facilitar su manejo, se usa la ID provista por el Sistema Operativo como ndice.
PLANIFICACION DE PROCESOS
Dentro del tratamiento de procesos, se ejecutan en modo kernel las siguientes funciones: creacin y finalizacin de procesos criterios de seleccin y switcheo entre procesos administracin de PCB Administracin de memoria Administracin buffers y manejo de canales y dispositivos Adm. de interrupciones, contabilidad, etc.
Entre los diferentes recursos que maneja, es la seleccin del programa para su ejecucin. Este criterio se llama planificacin de procesos y el objetivo es optimizar el uso del procesador. Existen tres niveles de planificacin: Planificador de largo plazo: de new a ready/suspended, de new a ready Planificador medio de ready/suspended a ready de blocked suspended a blocked tiene que ver con el swapping, sacar de memoria un programa y guardarlo en disco hasta la prxima recarga Planificador corto plazo de ready a running, se selecciona para la inmediata ejecucion dentro de los disponibles. En esta estructuracin, subyacen dos criterios: uno orientado al usuario para obtener una respuesta rpida. Es bueno para los sistemas en lnea o para monousuario La segunda es orientada al sistema para una mayor eficiencia, y menor tiempo para completar procesos. Es bueno para procesos batch. Un proceso puede ser elegido por prioridad, tiempos de espera tiempos de ejecucin
PAGINA 37 DE 71
Sistemas Operativos
Las polticas preemptivas generan ms overhead pero mejoran la respuesta y evitan monopolio.
DISPATCHER
El Dispatcher, es un programa del S.O. que hace cumplir las funciones de la planificacin de corto plazo. Se implementa administrando las colas del estado listo para optimizar el funcionamiento general del sistema. Interviene cuando se suspende un proceso y debe decir cual elige para esta oportunidad. Motivos: reloj por time out interrupcin de E/S planificacin expropiativa llamado al S.O. Criterios complementarios: NO Expropiativos: Cuando debe elegir un proceso para su pase a Running permite que el actual siga su ejecucion hasta terminar o en que pide una E/S Expropiativos La interrupcin de ejecucin del programa actual es abrupta y es reemplazado por el proceso elegido.
PAGINA 38 DE 71
Sistemas Operativos
P4 P1 P3 P2 -------]-------]---------------------------]-----------------------] 0 3 9 16 24 tiempo medio de espera (3 + 16 + 9 + 0) / 4 = 28/4 = 7 mseg Para el siguiente ejercicio, incorporamos un criterio adicional: el momento de llegada del proceso. Hasta ahora se supona que todos los candidatos arribaron al mismo tiempo. Sea P1 con un tiempo de rfaga de 8 mseg tiempo de llegada 0 P2 con un tiempo de rfaga de 4 mseg tiempo de llegada 1 P3 con un tiempo de rfaga de 9 mseg tiempo de llegada 2 P4 con un tiempo de rfaga de 5 mseg tiempo de llegada 3 P1 P2 P4 P1 P3 ----]-------]---------------]------------]-----------------------] 0 1 5 10 17 26 tiempo medio de espera ((10-1) + (1-1) + (17-2) + (5-3) ) / 4 = 26/4 = 6.5 mseg
PAGINA 39 DE 71
Sistemas Operativos
ROUND ROBIN
Es el criterio aplicado al SO Tiempo Compartido o Round Robin. En forma circular se va entregando tanto tiempo de procesador como indica el quantum. Si la rfaga pendiente es menor al quantum, lgicamente se usa tanto tiempo de procesador como haga falta. Sea P1 con un tiempo de rfaga de 24 mseg P2 con un tiempo de rfaga de 3 mseg P3 con un tiempo de rfaga de 3 mseg
Serial
En los aos 1950, los sistemas Operativos no existan. El operador interactuaba directamente con el HW, trabajando desde la consola, que en muchos casos era un teclado y una impresora donde se iban imprimiendo el ingreso para proceso de un programa y el resultado general de su ejecucin: finalizado , o con un determinado error. Un modo habitual de uso, era que el programador hacia reserva de un tiempo determinado para obtener en forma dedicada la maquina. El usuario deba hacerse cargo de su costo aunque no utilizase todo el periodo reservado. (Block time)
tarjetas
consola
Codigo maquina
El programador era el operador de su propio programa. El hecho de que la impresora no estuviese en lnea obligaba a que la operacin no sea inmediata, y al gasto en recursos intermedios: perforacin de tarjetas para ms adelante, ser impresas. El concepto de serial, surge pues el operador, despus de cada programa finalizado, deba operar para cargar el siguiente. Nacen lectoras ms potentes, cintas magnticas e impresoras en lnea. En lnea, significa que la orden de imprimir se cumpla inmediatamente, pues el dispositivo estaba integrado a la computadora.
PAGINA 40 DE 71
Sistemas Operativos
Se crean los ensambladores, enlazadores, bibliotecas de funciones de uso comn nuevamente el concepto de REUSO) y fundamentalmente la aparicin del concepto de driver. (Nuevamente reuso). Aparecen los compiladores como FORTRAN, COBOL. Aparece una situacin que puede describirse por estos hitos: Mucho trabajo de preparacin o Carga de compilador en cinta o Salida del cdigo objeto en cinta o Cambio de carretes. o Organizacin de programas escritos en el mismo lenguaje, para conservar los compiladores en sus cintas. Maquinas carsimas Mucho tiempo ocioso, dependiendo de las tareas del operador Muchos baches de tiempo en el llamado block time. El atraso de un programador daba lugar al atraso en los siguientes. Ineficiencia del uso de los recursos Nacimiento de la funcin del operador, que alejo al programador del equipo. Obviamente el operador especializado aportaba la sistematizacin de sus tareas cubriendo (aunque sea parcialmente) la ineficiencia natural de la situacin.
Batch Simple
Promediando los aos 50 IBM saco un equipo 704/7090-7094 con un sistema operativo innovativo. La idea provino NUEVAMENTE, de la observacin de que el trabajo del operador era de ndole repetitiva. Por lo tanto, se intento sistematizar esta actividad. Se trato de evitar de que el operador tuviese que ocuparse de cada programa en forma individual: cargarse, retirar resultados, guardar el programa (escrito en tarjetas) en la casilla de cada programador. La idea es proveer algn flujo continuo a esta tarea, de modo que a la finalizacin de un programa pudiese seguir automticamente el siguiente programa. Se trato de definir un secuenciador automtico. Para ello se cre un programa llamado MONITOR: su caracterstica es que daba lugar al primer sistema Operativo de programa almacenado y era de residencia permanente en memoria. Por ello al Monitor tambin se lo llama Residente. El Residente necesitaba conocer el principio y finalizacin de cada programa y la definicin del uso de recursos a utilizar y finalmente indicar la finalizacin de cada programa para que aparezcan los datos y as poder automatizar la ejecucin de los procesos. Para ello se diseo un lenguaje especifico del Sistema Operativo: JCL (Job Control Language) que permiti la intercepcin de los comandos especficos y se especializo en decodificarlos y ejecutarlos o sea, proceder en base a la aparicin de tarjetas pertenecientes a dicho lenguaje. Esto permiti una revolucin de eficiencia y disminucin de los tiempos muertos. PAGINA 41 DE 71
Sistemas Operativos
ATENCION: NO ES UN LENGUAJE DE PROGRAMACION. SOLO ERAN COMANDOS AL SISTEMA OPERATIVO. Esa continuidad en el tratamiento de programas, permiti cargar varios programas juntos (uno detrs de otro) en la lectora. Este conjunto se llamo lote de programas. Y a la forma de trabajar se la llamo procesamiento por lotes o batch. Solo haba monoprogramacin. Por ello se llama Sistema Operativo Batch Simple. El JCL nacido para procesos batch, seguramente puede ser reconocido en las sentencias de extensin bat que se usan en DOS y en la opcin Ejecutar de Windows, por ejemplo. (bat viene de la palabra batch) En esta secuencia de programa, se minimizaba la interaccin del operador, dado que haba un flujo continuo de procesamiento. El monitor residente dio lugar al procesamiento secuenciado automtico de los programas. Las tarjetas del JCL contenan diversos: //JOB era el anuncio de la carga de un programa, con un nombre e incluso una prioridad; // FORTRAN para decir que se va a compilar un programa escrito en Cobol; // LOAD era indicativo de la carga de un programa en memoria // RUN orden de ejecucin del programa // END indicativo de ltima sentencia fuente o fin de datos Una programacin tpica de un programa era: // Job Programa // Fortran Instrucciones escritas en fortran /* indica fin de instrucciones Fortran // Load crguese el programa Fortran // Run ejecucin del programa Fortran datos /* fin de datos // END fin del programa Con esta creacin la memoria quedaba estructurada as:
PAGINA 42 DE 71
Sistemas Operativos
Vector Interrupciones Programas que tratan las interrupciones Drivers Secuenciados de trabajos o jobs Interprete del JCL
Monitor Residente
MEMORIA
LIBRE PARA
DISPONIBLE
Batch Multiprogramado
Mejoro el secuenciamiento de procesos, pero AUN CON MUCHOS tiempos muertos. Aparece el disco magntico, y con l la posibilidad de acceso aleatorio y no secuencial (cinta) Con el DMA o el mecanismo de E/S por interrupciones se aprovecharon mejor los tiempos del procesador. Pero esto implico el agregado de dos dificultades adicionales: crecimiento de los requerimientos de memoria El procesador debe administrar conceptos nuevos como la planificacin/prioridades La proteccin no solo de memoria: de archivos, de impresora, para compartirlos entre varios usuarios. Esquema de memoria, con un Monitor residente
PAGINA 43 DE 71
Sistemas Operativos
s.o. p1
Memoria Protegida
p2
p3
Sistemas Distribuidos
Una tendencia reciente en los sistemas de computacin es distribuir el cmputo entre varios procesadores. En contraste con los sistemas fuertemente acoplados, los procesadores no comparten la memoria ni el reloj. En vez de ello, cada procesador tiene su propia memoria local. Los procesadores se comunican entre s a travs de diversas lneas de comunicacin, como buses de alta velocidad o lneas telefnicas. Solemos decir que tales sistemas estn dbilmente acoplados o distribuidos. Los procesadores de un sistema distribuido pueden tener diferentes tamaos y funciones; pueden incluir microprocesadores pequeos, estaciones de trabajo, minicomputadoras y sistemas de computacin grandes de propsito general. Tales procesadores reciben varios nombres distintos, como sitios, nodos, computadoras, etc., dependiendo del contexto en el que se mencionan. Hay diversas razones para construir sistemas distribuidos, siendo las principales:
PAGINA 44 DE 71
Sistemas Operativos
Computacin ms rpida.
Si un clculo dado se puede dividir en varios subclculos susceptibles de ejecucin concurrente (paralelo), un sistema distribuido podra permitirnos distribuir el clculo entre los distintos sitios, y ejecutarlo de forma concurrente. Adems, si un sitio en particular actualmente est sobrecargado de trabajos, algunos de ellos podran transferirse a otros sitios cuya carga sea ms ligera. Esta transferencia de trabajos se llama carga compartida.
Confiabilidad.
Si un sitio de un sistema distribuido falla, los sitios restantes podran seguir funcionando. Si el sistema se compone de varias instalaciones autnomas grandes (es decir, computadoras de propsito general) el fallo de uno no deber afectar a los dems. Por otro lado, si el sistema se distribuye en varias mquinas pequeas, cada una de las cuales se encarga de alguna funcin crucial del sistema (como la E/S de caracteres de las terminales, o el sistema de archivos), un solo fallo podra detener todo el sistema. Es una especializacin. En general, si existe suficiente redundancia (datos dems para poder reconstruirlos en caso de falla de algn dispositivo) en el sistema (tanto de hardware como de datos), este puede continuar con su operacin, incluso si algunos de sus sitios han fallado.
Comunicacin.
Hay muchos casos en los que los programas necesitan intercambiar datos con otros programas del mismo sistema. Los sistemas de ventanas son un ejemplo, ya que a menudo comparten datos o transfieren datos entre presentaciones. Si muchos sitios estn conectados a travs de una red de comunicaciones los procesos de diferentes sitios tienen la oportunidad de intercambiar informacin. Los usuarios podran iniciar transferencias de archivos o comunicarse entre s por correo electrnico. Un usuario puede enviar correo a otro en el mismo sitio o en uno distinto.
PAGINA 45 DE 71
Sistemas Operativos
El procesamiento debe efectuarse dentro de los intervalos definidos, o el sistema fallar. Por ejemplo, no es conveniente ordenar a un brazo robot que se detenga despus de haber chocado con el automvil que est construyendo. Se considera que un sistema de tiempo real est funcionando correctamente slo si produce el resultado correcto dentro de los intervalos de tiempo estipulados. Podemos contrastar este requisito con un sistema de tiempo compartido, en el que es deseable (pero no obligatorio) responder rpidamente, o con un sistema por lotes, en el que tal vez no haya restricciones de tiempo. Hay dos tipos de sistemas de tiempo real. Un sistema de tiempo real duro garantiza que las tareas crticas se terminaran a tiempo. Este objetivo requiere que los retardos del sistema estn limitados, desde la obtencin de datos almacenados hasta el tiempo que el sistema operativo tarda en atender cada solicitud que se le presenta. Tales restricciones de tiempo determinan los recursos que estn disponibles en este tipo de sistemas. El almacenamiento secundario de cualquier ndole suele estar limitado o ausente, y los datos se almacenan de preferencia en memoria de corto plazo o en memoria slo de lectura (ROM, read-only memory). La ROM se encuentra en dispositivos de almacenamiento no voltil que conservan su contenido aun en caso de fallar el suministro de electricidad; casi todos los dems tipos de memoria son voltiles. Tambin est ausente la mayor parte de las funciones avanzadas de los sistemas operativos, ya que tienden a separar al usuario an ms del hardware, y tal separacin causa incertidumbre acerca del tiempo que una operacin tarda. Por ejemplo, los sistemas de tiempo real casi nunca tienen memoria virtual (que estudiaremos ms adelante). Por ello, los sistemas de tiempo real duros son incompatibles con el funcionamiento de los sistemas de tiempo compartido, y no pueden combinarse con ellos. Un tipo menos restrictivo de sistema de tiempo real es el de tipo real blando, en el que una tarea de tiempo real crtica goza de prioridad respecto a otras tareas, y conserva esa prioridad hasta que se lleva a cabo. Al igual que en los sistemas de tiempo real duros, es preciso limitar los retardos del ncleo. El tiempo real blando es una meta alcanzable que puede combinarse con otros tipos de sistemas. No obstante, los sistemas de tiempo real blandos tienen una utilidad ms limitada que los duros. En vista de que no apoyan el cumplimento estricto de plazos, es riesgoso utilizarlos en control industrial y robtica, aunque hay varias reas en las que pueden ser tiles, como multimedia, realidad virtual y proyectos cientficos avanzados como la exploracin submarina y planetaria. Ejemplo: Ktetsibios de Alejandra (250 a.c.) construy la primer mquina auto controlada: un reloj de agua con un regulador que mantena el flujo de agua circulando por l, con un ritmo constante y predecible. Esta invencin cambi la definicin de lo que un artefacto poda hacer. Anteriormente. solamente seres vivo podan modificar su comportamiento como respuesta a cambios en su entorno.
Time Sharing
En un tiempo en que un equipo de computacin era tan caro, pocas eran las organizaciones que pudieran contar con dicho equipamiento. Pero el inters econmico PAGINA 46 DE 71
Sistemas Operativos
(anunciado en el primero de estos apuntes) hizo pensar a los fabricantes de computadora, en algn mecanismo que facilitara el acercamiento de usuarios necesidades de las funciones de clculo. Por ello se cre el S.O. de Tiempo compartido o Time Sharing. Varios usuarios podan acercarse y utilizar la computadora Los tiempos y recursos de la CPU se dividen entre todos los usuarios loggeados en cada instante. Se le proporcionaba a cada cliente un tiempo fijo, en forma rotativa. Este tiempo es fijado y modificado por el administrador del sistema operativo y se denomina Time Slice. Es otro quantum, referido al tiempo dedicado por la CPU a cada usuario. Los usuarios de aquel entonces, eran generalmente cientficos o calculistas, que necesitaban probar sus formulas o sus modelos matemticos. Eran programas orientados a clculos y requeran mucho tiempo de ingreso de instrucciones y datos. Por lo tanto, el uso del teclado era intensivo en relacin al tiempo total de procesador. Obviamente, el teclado es en dispositivo lento, dependiente exclusivamente de la velocidad del operador. Por otro lado, la velocidad del procesador hacia que el usuario tuviese la sensacin de que tena una dedicacin completa del equipo y permanente contacto con la cpu. El mecanismo de distribuir en forma circular a todos los usuarios sin un criterio determinado de prioridad, se llama Round Robin. El criterio era tan importante, que fue aplicado en otros aspectos de los Sistemas Operativos. Se podan introducir comandos para correccin inmediata y serva para respuestas cortas. Un ejemplo de TS es el Sistema CTSS primitivo (aunque permita hasta 32 usuarios). Cada programa cargaba en punto de carga 0. Cuando se cargaba nuevo, aprovechaba si quedaba parte sin tapar de una carga anterior, NO HABIA REUBICACION
PAGINA 47 DE 71
Sistemas Operativos
Los desarrollos de S.O. implican la consideracin de tres problemas: son despachados tardamente: entre la deteccin de necesidades y la implementacin de las soluciones, hay un tiempo largo en el cual surgen nuevos desafos; bugs permanentes: es muy comn utilizar al usuario como tester de un producto que, por su naturaleza debera asegurar tu calidad y correcto funcionamiento performance real inferior a la prometida y lo que es peor, inferior a la necesaria
UN BUEN SISTEMA OPERATIVO, debe ser construido por capas, con encapsulamiento (concepto del paradigma de objetos) de su funcionamiento, y con la posibilidad de crecimiento en volumen de tareas a despachar, y en complejidad. Cada nivel provee primitivas a sus capas superiores. De modo que cualquier cambio en las inferiores, no trasciende. Los mdulos inferiores, conectados con el hardware, trabajan a niveles de billonsimas de segundo. Las superiores, trabajan a nivel del usuario, mucho ms lento.
controladores de dispositivos
PAGINA 48 DE 71
Sistemas Operativos
subsistema
subsistema
subsistema
controladores de dispositivos
MICRONUCLEO
Pongamos en el ncleo SOLO las funciones esenciales. Dicha parte del SO pasa a llamarse: micronucleo Los otros servicios van fuera del Microncleo y funcionan en modo Usuario. De all surgen los servicios y el concepto de SERVIDORES para diferentes procesos La interaccin dentro del Microncleo es va MENSAJES. Definicin MICRONUCLEO: base del ncleo que permite expansiones futuras Intercambiador de mensajes Concede acceso al HW Solo deja pasar mensajes permitidos (mejor defensa ante virus)
Sistemas Operativos
Cun pequeo debe ser el ncleo para llamarse Microncleo? Como abstraer sus funciones del HW? las funciones son del ncleo? las ejecutamos en el ncleo o en el espacio del usuario? se mantiene la codificacin del SO existente o se reprograma? Esquema de evolucin actual de la estructura de un Sistema Operativo. de estructura POR CAPAS a estructura HORIZONTAL
Interactan entre ellos va mensajes con proteccin MODO USUARIO Usuarios-Modo usu Procesos cliente
M O D O Sist. De ficheros N U C L E O Comunicacin entre procesos Gestin de E/S y dispositivos MV Gestin de primitivas de procesos HARDWARE Server de procesos y seguridad MV Todo modo usuario Micronucleo:MO DO NUCLEO HARDWARE Server. De ficheros
PERMITE Interfaz Uniforme Extensibilidad Ncleo Flexibilidad Portabilidad Fiabilidad a travs de mensajes de peticin se pueden agregar nuevos servicios y no requieren construir uno nuevo Muchos servicios como diferentes organizaciones de archivos rehacer un servicio. Se pueden ofrecer opcionales (SO a medida) cambiar un procesador con bajo impacto solo debe conocer API y mtodos de interaccin
PAGINA 50 DE 71
Sistemas Operativos
MICRONUCLEO. SOLO DEBERIA INCLUIR FUNCIONES QUE DEPENDAN DIRECTAMENTE DEL HW y las funciones para mantener los servicios en MODO USUARIO En el MICRONUCLEO se mantienen: Memoria virtual a bajo nivel, lgica de paginacin Comunicacin entre procesos Detector de interrupciones Manejo de interrupciones enviando mensajes
Resumen
Finalmente, los SO deberan poder garantizar
Garantizar que cada proceso obtenga su proporcin justa de CPU Mantener ocupada la CPU el 100% de su tiempo Minimizar el tiempo de respuesta para los usuarios interactivos Minimizar el tiempo de espera para usuarios batch Maximizar el numero de tareas procesadas
Ante la pronunciada baja del costo del Hardware y la paralela evolucin de los procesadores, se lleg a la conclusin de que ya no sera posible aumentar abruptamente la velocidad de proceso. Por lo tanto se investig la posibilidad de hacer procesamiento en paralelo (similar idea al RAID). La simultaneidad de tareas permiti satisfacer mayores y ms exigentes necesidades de procesamiento. Ordenamiento de procesos paralelos FLUNN propone categoras de sistemas de procesadores Single Instruction Single Data Stream 1 procesador 1 instruc 1 dato en 1 sola MP
S M
I I
M M
D D
1 grupo inst- vs grupos datos en vs procesadores: PROCESADORES vectoriales/matriciales vs. procesadores vs secuencias instruc. vs datos
PAGINA 51 DE 71
Sistemas Operativos
Los MIMD se dividen en funcin a como se comunican los procesadores Procesadores Paralelos SIMD MIMD
CLUSTERS o multicomputador
2- SMP
Cada procesador su PROPIA memoria = computador integral COMUNICACIONES POR RUTAS O REDES
CLUSTERS
1 - MAESTRO ESCLAVO MAESTRO: el ncleo esta en un procesador determinado, responsable de la planificacin de procesos. Se comunica con los restantes a travs de la memoria. Tiene control sobre la memoria y recursos E/S ESCLAVO Programas de usuario. Si necesita un hilo, se lo pide al maestro. Es casi Multiprogramacin. Si se cae el maestro, se cae toda la estructura. Esto genera mucho overhead para el Maestro con la consiguiente baja en rendimiento y lo transforma en un cuello de botella. La estructura es simple pues TODO PASA POR EL MAESTRO Y TODO LO RESUELVE EL MAESTRO
PAGINA 52 DE 71
Sistemas Operativos
2SMP
SYMMETRIC MULTIPROCESSOR
El ncleo se puede ejecutar en cualquier procesador. Cada procesador tiene su propia planificacin de procesos e hilos. Es ms difcil controlar la distribucin de tareas de SO entre procesadores. La complejidad est en la comunicacin entre procesadores, diseo del SO y estructuras de interconexin. Procesador Procesador registros UCL UAL CACHE CACHE
SMP
Cache de disco
Cache de disco
B U S Compartido
MP compartida
BUS UNICO
MDEMORIA COMPARTIDA
Una cache por procesador. Da mucha ms velocidad pero hay que tener cuidado con los CAMBIOS. Debe haber coherencia entre caches para que un cambio que quedo registrado en la cache, sea tomado de all. COMUNICACIN: Memoria Compartida o Mensajes. Hay problemas de sincronizacin. PARA EL USUARIO: Es un UNICO PROCESADOR con Multiprogramacin. Puede desarrollar aplicaciones con mltiples procesos con mltiples hilos c/u CUIDADOS rutinas del ncleo deben ser reentrantes PLANIFICACION se pueden ejecutar hilos del mismo proceso en diferentes procesadores SINCRONIZACION exclusin mutua. Evita el deadlock GESTION DE MP se comparten pginas PAGINA 53 DE 71
Sistemas Operativos
FIABILIDAD
MULTIHILOS-MULTITHREADING
Hasta ahora un proceso tena una unidad conceptual de propiedad de recursos y una unidad conceptual de ejecucin o planificacin. imagen Direcciones virtuales Datos Pila PCB Archivos, El SO los provee y da dispositivos proteccin entre otros procesos
1) La imagen de un proceso est compuesta por las direcciones de memoria ocupada por sus instrucciones y sus datos, su PCB, la pila asociada a cada proceso y la vinculacin con sus archivos. Este conjunto de recursos es propiedad del proceso y el sistema operativo da proteccin a estos recursos compartidos. 2) Cada proceso tiene adems una unidad de Ejecucin / Planificacin intercalado con programas del SO que lo hacen ejecutar. El SO hace pasaje de estado de usuario a supervisor y planifica la ejecucin de los procesos por prioridad y por orden de llegada Con la introduccin del concepto de MULTIHILO, se pasa a otro paradigma a partir del cual cada proceso puede tener varios hilos de ejecucin. Cada hilo es una unidad activa o thread o proceso ligero. Cada hilo tendr: un estado de ejecucin (ready, blocked, running, etc) Una PCB Una pila de ejecucin Espacio de almacenamiento para variables locales Acceso a la memoria compartida con los otros hilos de un mismo proceso Para el procesamiento de las instrucciones se pueden definir 4 modalidades. a) 1 Proceso 1 Hilo Tradicional DOS b) varios procesos 1 hilo por proceso Unix c) 1 proceso vs Hilos JAVA d) vs. procesos vs hilos por proceso SOLARIS, OS/2
PAGINA 54 DE 71
Sistemas Operativos
En un proceso tradicional, donde cada proceso tiene un nico hilo se da la siguiente estructura
c o m p a r t e n
Pila Usuario
Pila Usuario
Pila Ncleo
Pila Ncleo
En Multihilo sigue habiendo una PCB para el proceso y un espacio de direcciones ocupada por el mismo pero hay adems: Una pila por hilo, una PCB por hilo con toda la informacin que contiene la misma. Todos los hilos comparten los recursos del proceso padre y todos tienen acceso a los mismos datos. Por lo que si un hilo cambia un dato, es visible para los dems. Lo mismo ocurre ante la apertura de un archivo, pues todos sus hilos hermanos ven al archivo Por lo tanto un proceso implica la existencia de varias unidades de ejecucin relacionada y mucho ms eficiente que varios procesos.
PAGINA 55 DE 71
Sistemas Operativos
BENEFICIOS:
se crea ms rpido 1 hilo que un proceso, lleva menos tiempo la finalizacin de un hilo, mejora la comunicacin entre hilos pues no necesita al ncleo como intermediario como en otros sistemas operativos donde los programas se comunican Comparten memoria Se puede realizar procesamiento paralelo e independiente
Ejemplos de aplicacin de multihilo En Primer Plano se manejan los menes de Excel mientras que en Background se actualizan datos de otra planilla Excel Un hilo puede editar un texto mientras otro hace un backup Un hilo puede hacer una lectura de un archivo mientras otro hace algn proceso simultneamente En un soporte multihilo, la planificacin y la activacin se hacen a nivel de hilos. Sin embargo hay actividades que se dan a nivel de proceso afectando a todos los hilos: sus pender un proceso es privarlo de un recurso compartido con sus hilos. Al igual que la finalizacin de un proceso obliga a la finalizacin de todos sus hilos. Los Hilos pueden pasar por estos estados propios. Running Ready Blocked.
BENEFICIOS:
PROCESO EN PARALELO. Similar a MULTIPROGRAMACION Al compartir espacio de direcciones y archivos todos los hilos pueden accederlos. Se hace necesario tomar ciertos recaudos para que no se corrompan. Por ejemplo, si dos hilos quieren simultneamente modificar elementos de una lista. La sincronizacin que debe hacerse exige cierto OVERHEAD Con la introduccin del concepto de multihilo podramos definir al Multiprocesamiento como la ejecucin de varios procesos con varios hilos cada uno
PAGINA 56 DE 71
Sistemas Operativos
IMPLEMENTACION DE HILOS
Hay dos modalidades para la implementacin de Hilos a) Hilos de usuario: ULT (User Level Thread) b) Hilos a nivel de kernel: KLT (KERNEL LEVEL THREAD) o (KERNEL
SUPPORTED THREAD) o LEIGHTWEIGHT PROCESSES
PAGINA 57 DE 71
Sistemas Operativos
Windows HILOS
NUCLEO
ULT
K LT
Puro
PAGINA 58 DE 71
Sistemas Operativos
7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
21.
PAGINA 59 DE 71
Sistemas Operativos
30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
incluso forzando swapping aun cuando el swapping no sea necesario. Sugiera una poltica intermedia para balancear performance. Un proceso pasa del estado ejecutando a bloqueado por time out. V o F. Justifique. En los procesos, explicar las transiciones de Running a Ready y de Blocked a Ready. Explique las partes constitutivas de una instruccin (estructura), su uso, su ocupacin de memoria. Funciones bsicas de un sistema operativo, objetivos y servicios que brinda Describir un sistema de procesamiento serial. Explique brevemente que es un sistema operativo batch o por lotes. En un sistema de tipo interactivo se corren principalmente procesos batch. (V o F). Justifique la respuesta. Explicar los conceptos de monoprogramacin, multiprogramacin y multiprocesamiento Explicar los distintos tipos de estructuras que pueden tener los sistemas operativos Describir el recorrido de una orden dada al Sistema Operativo Describir en forma novelada el funcionamiento de un SO por Time Sharing, describiendo las estructuras de informacin que utiliza. Explicar la diferencia entre un sistema operativo con multiprocesamiento y un sistema distribuido que es un sistema operativo en tiempo real, cuando es til usarlo? Que aprovechamientos se intentaron implementar al definir multiprogramacin. Explicar la tcnica de spooling. Motivo por el cual se desarroll. En qu mejor el rendimiento Cul es el principal problema que resuelve la multiprogramacin? Aporte un mismo ejemplo contando con MP y sin contar con ella. Cuales son las perspectivas de un Sistema Operativo desde el punto de vista del usuario, desde el punto de vista de la industria, desde el punto de vista de la eficiencia de procesamiento. Explicar la estructura jerrquica de un sistema operativo. Cul es la diferencia con la estructura monoltica. Explique la estructura por capas, como cliente-servidor. Explique modo de usuario, modo de monitor. Explique porque la distincin entre ambos permite un tratamiento de seguridad o proteccin Una computadora esta conformada bsicamente, por 4 elementos: Procesador, Memoria Principal, mdulos de E/S, bus del sistema. Describa como se vinculan estos elementos, desde el punto de vista de un sistema operativo. Un S.O. de tipo batch es aquel en el que el usuario puede navegar por el programa que est corriendo. V o F. Justifique la respuesta. Que es un spooler? Descripcin breve y precisa. Cuantos tipos de spooler conoce? Considere particularmente un spooler de impresin. Explique las posibilidades de administracin de listados que brinda. Beneficios que aporta. En que circunstancias le convendra mas a un usuario utilizar un sistema de tiempo compartido en lugar de un computador personal o una estacin de trabajo monousuario? El inters de esta pregunta reside en que se puedan rescatar las condiciones de ambos esquemas de proceso asumiendo que uno pudiese optar por una u otra (se reconoce que no son temporalmente comparables) que es un driver? Ud. la considerara como parte del sistema operativo? Un editor, forma parte del sistema operativo? Cmo lo considera usted? Cual es el concepto de proteccin, en un S.O. y para cuales recursos se aplica. Cuales de las siguientes instrucciones deberan ser privilegiadas: leer el reloj, borrar la memoria, desactivar las interrupciones cambiar de modo de usuario de usuario a monitor Defina las propiedades esenciales de los siguientes tipos de sistemas operativos: Por lotes; batch; Interactivos; tiempo compartido; De tiempo real; Distribuidos Cuales de los siguientes cambios de estado pueden ocurrir en forma directa: a. Exit a Running (V/F) b. Running a ready-suspended (V/F) c. Running a new (V/F) d. Running a blocked-suspended (V/F) e. Blocked-suspended a ready (V/F) Explicar los algoritmos de planificacin del procesador que involucran el tiempo de ejecucin de los procesos como factor decisivo. Que significa que un algoritmo de planificacin sea apropiativo o no apropiativo?. Clasificar los distintos algoritmos segn sean apropiativos o no apropiativos. Grafique el comportamiento de una computadora ante la necesidad de una solicitud de entrada o salida de datos a) en un entorno de monoprogramacin b) en un entorno de multiprogramacin Que es el Job Control Language (lenguaje de comandos)? Para que se lo utiliza? Describa las tareas previas que la CPU debe realizar para que el proceso este en condiciones de ser ejecutado y justifique la eleccin de pasarlo directamente a READY/SUSPEND y no a READY. Describa si hay un evento nico o varios encadenados (y su orden de ocurrencia) para que pueda ocurrir la transicin Running ===== blocked/suspended, Un determinado programa PEPE esta en el estado BLOCKED/SUSPENDED. Hay una cola no vaca de procesos READY/SUSPENDED. Justifique la razn por la cual el S.O. habilite al PEPE para su ejecucin. qu significa habilitar al programa para su ejecucin, dado el estado en que se encuentra?
PAGINA 60 DE 71
Sistemas Operativos
65. Describa el mtodo Round-Robin, utilizado en un sistema Operativo por Time Sharing. Cules problema resolvi su aparicin. Proponga incorporar algn mecanismo para optimizar su funcionamiento y dar mejores servicios a sus usuarios.
PAGINA 61 DE 71
Sistemas Operativos
TRABAJO PRACTICO I
Multiple Choice (Verdadero o Falso) 1) Un proceso en estado inactivo se encuentra alojado en memoria principal, mientras que uno activo est en disco rgido. 2) El PCB es un conjunto de datos que necesita el sistema operativo para poder administrar un proceso 3) Un proceso en estado de ejecucin (running) tiene el uso del procesador mientras que uno bloqueado (blocked) se diferencia nicamente del anterior porque no lo tiene. 4) El swapping se produce siempre que un proceso que debe ser ejecutado no encuentra memoria disponible 5) Un proceso por lotes (batch) consiste en ir solicitando la ejecucin de los procesos que no requieren conversacin con los usuarios 6) Un proceso suspendido no esta disponible para la ejecucin, puesto que se suspende siempre que se esta a la espera de algn suceso por l pedido 7) Una bifurcacin incondicional implica la modificacin del RPI en el ciclo de instruccin 8) Una habilidad elemental de un procesador es la orden que emite el programador en su programa 9) El Rpi contiene la instruccin prxima a ejecutarse 10) EL PSW contiene bits que muestran los resultados del programa 11) Una interrupcin significa que el programa en running deja de estarlo y pasa a ready por decisin autnoma del proceso 12) Una interrupcin consta exclusivamente de guardar la informacin de los registros en la PCB correspondiente 13) La organizacin SMP es una forma de administrar un cluster de procesadores 14) Hay un stack por cada programa de usuario 15) El stack contiene instrucciones del programa al que pertenece. 16) La cache aumenta la velocidad del procesador 17) La cache evita un acceso a memoria 18) Hay dos polticas para actualizar la memoria cada vez que se produce una modificacin en el programa cargado en memoria 19) En KLT el ncleo del SO se ocupa de proveer un nuevo hilo al proceso solicitante 20) En ULT el ncleo del SO se ocupa de proveer un nuevo hilo al proceso solicitante 21) En SMP cada procesador administra su propia porcin de memoria 22) Un cluster de computadoras permite administrar a cada procesador su propia memoria principal 23) En una organizacin Maestro/esclavo, cada procesador administra funciones especficas del SO 24) El mecanismo de Round Robin en un sistema operativo de Time Sharing le da a cada usuario el tiempo de la cpu dividido la cantidad de usuarios logeados 25) El concepto de lote en un sistema operativo Batch (que significa lote) se refiere a que cada programa se cargaba en la lectora de tarjetas y se consideraba un lote de tarjetas 26)Las prioridades pueden ser estticas o dinmicas segn sean asignadas por el sistema operativo o por el propietario del proceso PAGINA 62 DE 71
Sistemas Operativos
27)Las prioridades pueden asignadas por el sistema operativo o por el propietario del proceso independientemente que sean estticas o dinmicas. 28) 29)Un proceso en estado inactivo se encuentra alojado en memoria principal, mientras que uno activo estar en memoria secundaria (disco rgido) 30)Un proceso por lotes (batch) consiste en ir solicitando la ejecucin de procesos que no requieren conversacin con el usuario. 31)El PCB ( Bloque de Control de Procesos), es un conjunto de datos de cada proceso, que tiene como objetivo convertirlo en programa ejecutable 32)El PCB ( Bloque de Control de Procesos) , es un conjunto de datos de cada proceso, que tiene como objetivo el registro de esos datos para permitir la interrupcin de su ejecucin y la localizacin de esa informacin por parte del sistema operativo. 33)Un proceso puede estar activo o inactivo durante su vida dentro de un sistema, el sistema operativo debe informar siempre al usuario cul es el estado en que se encuentra su proceso. 34)Un proceso puede estar activo o inactivo durante su vida dentro de un sistema, esta situacin es transparente al usuario. 35)Un proceso en estado de ejecucin tiene el control del procesador, mientras que uno bloqueado, se diferencia del anterior nicamente porque no lo tiene 36)Un proceso en estado de ejecucin tiene el control del procesador, mientras que uno listo, se diferencia del anterior justamente porque no lo tiene nmg el proceso no controla al procesador 37)Un proceso pasa a estado de bloqueado cuando otro proceso le saca el control del procesador 38)Un proceso pasa a estado de bloqueado cuando queda a la espera de que suceda algo que necesita para seguir con su ejecucin 39)Son varias las causas por las que se crea un proceso, entre ellas la conexin de un nuevo usuario en un sistema tipo batch o desde otro proceso, en este ltimo caso el nuevo proceso ser un hijo del anterior 40)Son varias las causas por las que se crea un proceso, entre ellas la conexin de un nuevo usuario en un sistema interactivo, o a partir de otro proceso, en este ltimo caso el nuevo proceso ser un hijo del anterior 41)Un proceso suspendido no est disponible para su ejecucin, puesto que se suspende siempre que est a la espera de algn suceso 42)Un proceso bloqueado no est disponible para su ejecucin, espere un suceso o no, porque debe ser llevado a memoria para poder ejecutarse 43)Un proceso en estado activo se encuentra alojado en memoria principal, mientras que uno inactivo estar en memoria secundaria (disco rgido). 44)El Swapping (intercambio) se produce cuando un proceso est bloqueado: 45)El Planificador a corto plazo se encargar de crear y terminar procesos, mientras que el de largo plazo gestionar los procesos suspendidos 46)El Planificador a largo plazo se encargar de crear y terminar procesos, mientras que el de medio plazo gestionar los procesos suspendidos 47)Un programa ejecutable est formado por un proceso y sus datos, ubicado en un determinado entorno 48)Un proceso est formado por un programa ejecutable y sus datos, que se ejecuta en un determinado entorno yo agregaria algunas cosas mas
PAGINA 63 DE 71
Sistemas Operativos
TRABAJO PRACTICO II
Multiple Choice (pueden haber 0 a n respuestas correctas o incorrectas) 1. Lenguaje de mquina a. Conjunto de rdenes que el programador solicita ejecutar b. Conjunto de habilidades elementales con que cuenta cada maquina c. Instrucciones de un programa d. Ordenes de un sistema operativo que no impliquen cortes en la secuencia de ejecucin e. Ninguna de las anteriores 2. Servicios de un Sistema Operativo a. Usos especficos tipificados de los recursos que brinda el hardware b. Conjunto de facilidades que brinda un sistema operativo c. Administracin de los registros de procesador d. Procesamiento de las instrucciones de un programa de usuario e. Ninguna de las anteriores 3. Programa almacenado a. Programa del sistema operativo almacenado en memoria para su ejecucin b. Programa del usuario almacenado en disco c. Programa del usuario almacenado en memoria d. Ejecucin de instrucciones especificas del sistema operativo e. Ninguna de las anteriores 4. RPI a. Es una parte de la memoria principal b. Es un registro perteneciente a la CPU c. Guarda la instruccin prxima a ejecutarse d. Guarda un puntero a la memoria de la instruccin que se esta analizando e. Guarda un puntero a la memoria de la instruccin siguiente a la que se esta analizando f. Algunas de las anteriores 5. Stack Pointer a. Es un puntero relacionado solo con la pila de del sistema operativo b. Es un puntero relacionado solo con la pila de cada programa c. Es un puntero que indica el inicio del programa para acceder a sus instrucciones d. Es un registro que indica la longitud de las diferentes pilas e. Alguna de las anteriores f. Ninguna de las anteriores 6. Registros de uso general a. Partes de la CPU donde se guardan solamente punteros b. Tramos de memoria donde se guardan los datos definidos por cada programa c. Partes de la CPU que se utilizan como memorias para guardar instrucciones de los programas de usuario d. Partes de la CPU que se utilizan como memorias para guardar datos del SO e. Partes de la CPU que se utilizan como memorias para guardar direcciones de memoria PAGINA 64 DE 71
Sistemas Operativos
f. Partes de la CPU que se usan como memorias para guardar direcciones de memoria y/o resultados de clculos 7. P.S.W. a. Equivalente al dispositivo llamado canal o bus. b. Es un registro de uso general c. Es un registro de uso especifico d. Contiene una serie de bits (flags, banderas) cuyos valores son modificados por cada instruccin ejecutada e. Es consultada por las instrucciones de salto incondicional f. Es consultada por las instrucciones de salto condicional 8. Cdigo de operacin a. Es el signo del resultado de cada operacin matemtica b. Es un conjunto de 0 o n direcciones codificables en cada instruccin c. Es un conjunto de dos bytes que indican la accin que debe implementar cada instruccin de un programa de usuario d. Ninguna de las anteriores 9. Operandos a. Es un dato que acompaa a cada instruccin de maquina b. Son exclusivamente direcciones que acompaan a cada instruccin de maquina c. Son partes de toda instruccin de maquina que contienen datos o direcciones a memoria principal d. Es cierta solo la ultima respuesta 10. Ciclo de instruccin a. Es una de las cinco partes en que se divide el procesamiento de una instruccin b. En l se calcula el nuevo valor del RPI c. En l se analiza el cdigo de operacin d. En l se analiza cada uno de los operandos e. Es el ciclo donde se ejecuta cada instruccin f. Todas las anteriores 11. Interrupcin a. Es una comunicacin de la CPU a un dispositivo indicando que el programa no puede seguir b. Es una comunicacin al SO de que se produjo un error de hardware y el programa no puede continuar c. Es una comunicacin entre un registro de uso general a la CPU indicando que el resultado de una operacin excede el tamao del registro d. Es una comunicacin al SO de que se produjo una direccin invlida y el programa no puede continuar e. Es una comunicacin de un dispositivo a la CPU avisando que se ha cumplimentado un pedido de E/S para dicho dispositivo f. Es una comunicacin al SO de que se produjo un time out g. Algunas de las anteriores son ciertas 12. STACK PILA a. Solamente hay una por cada programa de usuario en ejecucin b. Solamente hay una para el Sistema Operativo c. Hay una sola pila por cada sistema operativo
PAGINA 65 DE 71
Sistemas Operativos
13. Cambio de contexto a. El SO deja de procesar un programa para pasar a otro b. Proceso que permite continuar con el procesamiento de un programa despus que el procesador se ocupo de procesar otro que estaba en memoria c. Se manifiesta tomando el ltimo valor contenido en la PILA de cada programa y pasar a procesar a partir de ella d. Es preservar los valores de los registros en la pila de cada programa e. Es preservar los valores de todos los registros en la PCB de cada programa f. Proceso tpico como resultado de una interrupcin 14. Vector de interrupciones a. Es un vector con direcciones de programas b. Es un vector cargado en memoria c. Es un vector con una entrada por cada una de las interrupciones posibles y una direccin de memoria por cada uno de ellos d. Los programas a los que se refiere la respuesta a. se refieren a los generados por los programadores e. Todas las anteriores f. El vector reside permanentemente en memoria g. Ninguna de las anteriores 15. Principio de localizacin a. b. Posicin inicial de memoria de cada programa del usuario c. Uno de los principios de Von Neumann d. Resultado de los principios de Von Neumann e. Probabilidad de que luego de una instruccin se ejecute la adyacente f. Todas las respuestas son ciertas 16. CACHE a. Software que reemplaza las funciones de la memoria principal b. Hardware que reemplaza las funciones de la Memoria Principal c. Hardware que cumple las funciones de la Memoria principal d. Hardware que permite ahorrar accesos a memoria principal e. Todas las anteriores 17. DMA a. Disco adicional mas rpido que el que viene con cada equipo b. Software que acelera la transferencia de datos c. Hardware que comunica directamente el disco con memoria principal d. Implementacin de E/S de informacin que evita trabajo al procesador e. Solo la ultima respuesta es cierta
18. DMA:
a. Es un mdulo que recibe informacin desde el procesador y que le permite encargarse de las operaciones de E/S b. Es un mdulo que permite independizar el procesador de las operaciones de E/S c. Es una cache de transmisin de informacin d. Ninguna de las anteriores 19. Spooler a. Implementacin de una cola servicios
PAGINA 66 DE 71
Sistemas Operativos
b. Se construyeron spooler de entrada (para la carga de trabajos) y otro de salida (para la administracin de la impresora) c. Permiti la administracin de mltiples funciones de impresin contando con un nico dispositivo en un entorno multiusuario d. Todas las anteriores
20. Proceso:
a. Es un cdigo con datos que se est ejecutando y con un determinado entorno b. Es un programa ejecutable c. Es la ejecucin de un programa d. Es la copia en memoria de un programa guardado en disco e. Es un programa en ejecucin f. Ninguna de las anteriores g. Es un programa activo 21. Dispatcher a. Programa que cada usuario ejecuta previamente a su programa b. Programa del sistema operativo c. Ordena la cola de programas en estado ready d. Ninguna de las anteriores 22. Cuando finaliza un proceso a. Solo se libera la memoria por el ocupada b. Se borra su PCB c. Se guardan los datos de su PCB en disco d. Solo se libera el espacio de memoria ocupado por la PCB e. Se procesan los datos contables 23. Estado Blocked/Suspended a. Es un estado al que se llego por dos eventos: pedido de E/S y suspensin b. A dicho estado se lleg desde el estado running c. A dicho estado se llego desde el estado suspended del proceso d. A dicho estado se lleg desde el estado blocked e. Todas las anteriores son falsas 24. Suspensin a. Un proceso es suspendido cuando se lo incorpora a memoria principal b. Un proceso es suspendido cuando se lo excluye parcialmente de memoria principal c. Un proceso es suspendido cuando se lo excluye completamente de memoria principal d. Implica la copia del programa a disco para su posterior reincorporacin e. Implica el proceso de swapping 25. Cola de procesos en estado blocked a. Se ordenan por tiempo de llegada (definicin de cola) b. Se ordenan por tiempo de llegada (definicin de cola) y por dispositivo c. Se ordenan por dispositivo para una bsqueda mas rpida d. Todas las anteriores 26. Batch a. Se refiere a lotes de programas b. Tipo de SO nacido para automatizar la ejecucin secuencial de programas PAGINA 67 DE 71
Sistemas Operativos
c. Tipo de SO nacido para evitar la intervencin del usuario d. Incorporo el concepto de monitor residente e. Todas las anteriores 27. SO residente a. Se refiere a que siempre hay una copia en disco b. Se refiere a la aparicin del tipo de SO Batch c. SO con la modalidad de estar permanentemente cargado en memoria d. SO que controlaba el flujo de ejecucin de los programas mediante la incorporacin del JCL 28. SO en tiempo real a. Sirve para el manejo de maquinas herramientas b. No trabaja con interrupciones y cambios de contexto para acelerar su respuesta c. Generalmente gira alrededor del control de dispositivos d. Generalmente tiene prefijados los puntos op direcciones a los que ingresa la informacin del entrono 29. Time Sharing a. El procesador divide su tiempo entre los procesos presentes b. El procesador entrega a cada proceso una misma cantidad de tiempo c. El programador siente que tiene una maquina completa a su disposicin d. Cada tramo de tiempo entregado a cada procesose llama time slice e. Todas las anteriores f. Ninguna de las anteriores 30. Microncleo a. Es la ms inferior de las capas de una estructura de un SO por capas b. Es el conjunto de las funciones mas elementales de un sistema operativo c. Es el sostn bsico para una estructura de un SO por servicios 31. Servidor a. Es un sistema operativo estructurado en servicios especializados b. Es una computadora c. Es un servicio especializado que ofrece un SO alojado, probablemente, en una maquina especializada. d. Permite la estructuracin inteligente de un SO poniendo nfasis en el HW o SW necesario para que cada servicio pueda llegar a todos los usuarios con la menor multiplicacin de recursos 32. SMP a. Es un modelo de procesador surgido cerca de 1980 b. Es una estructura de procesamiento distribuido c. Son varios procesadores, cada cual con su propia memoria d. Son varios procesadores compartiendo la memoria e. Son varios procesadores donde uno de ellos cumple funciones del sistema operativo f. Tiene un SO equilibrado, pues cuando falla uno las funciones del SO que tena hasta ahora se redistribuyen 33. Maestro/Esclavo a. Es una estructura de procesamiento distribuido b. Son varios procesadores, cada cual con su propia memoria c. Es un modelo de procesador surgido cerca de 1950 d. Son varios procesadores compartiendo la memoria
PAGINA 68 DE 71
Sistemas Operativos
e. Son varios procesadores donde uno de ellos cumple funciones del sistema operativo f. Tiene un SO equilibrado, pues cuando falla uno las funciones del SO que tena hasta ahora se redistribuyen 34. Multithread-Multihilo a. Innovacin que permite un aumento en la velocidad del procesador b. Innovacin que permite procesamiento en paralelo c. Innovacin que permite que cada proceso tenga varias unidades de ejecucin d. Entre los hilos de un proceso no hay comunicacin alguna pues son entes independientes. e. Los hilos se manejan entre si por prioridades
35. Las Interrupciones:
a. Son mecanismos que permiten detener la ejecucin normal de un proceso b. Pueden ser provocadas por fallos de memoria c. Se tratan por software a partir de una serie de acciones de la Rutina de Tratamiento correspondiente d. Ninguna de las anteriores
36. Al atenderse una interrupcin:
a. Se producen una serie de acciones del hardware, entre ellas el preservar el RPI y la PSW del proceso que se interrumpe en la pila del sistema, seguidas de acciones del Software, entre ellas restaurar los valores anteriores para volver al control al programa interrumpido. b. Se ponen en zero todos los registros de uso general y los especficos c. Ninguna de las anteriores
37. Un sistema Operativo jerrquico est compuesto por:
a. Niveles. Cada uno de ellos resuelve una serie de funciones y tienen una clara interfaz entre niveles contiguos. b. Niveles determinados por la importancia de los servicios que presta cada uno de ellos c. Rutinas entrelazadas llamadas niveles, que resuelven los servicios del sistema operativo. d. Ninguna de las anteriores
38. El ncleo o kernel del Sistema Operativo:
a. Es el nivel que se ocupa de las funciones referentes a las operaciones sobre la UCP y la planificacin de los procesos, entre otras cosas. b. Es el nivel que maneja la transferencia de datos entre la memoria y el almacenamiento secundario c. Es la interfaz entre el usuario y el sistema Operativo d. Ninguna de las anteriores
39. El Intrprete de comandos:
a. En un sistema Operativo jerrquico es la interfase entre el usuario y los otras niveles del SO b. En un sistema monoltico es el nivel del SO que se encarga de la creacin y terminacin de los procesos c. Es un lenguaje de programacin PAGINA 69 DE 71
Sistemas Operativos
d. Ninguna de las anteriores 40. P.C.B. a. Es un registro de uso general b. Es un tramo de memoria c. Existe una sola para el SO d. Existen tantas como procesos se estn ejecutando e. Las PCBs de los programas de usuario varan de tamao
41. El P.C.B.
a. b. c. d.
Es una estructura de datos del SO que le permite gestionar los procesos Se agrega al cdigo de un proceso cuando entra en ejecucin Contiene los datos con que se est ejecutando el programa Ninguna de las anteriores
a. Entre otras cosas se carga en el RPI la direccin de la instruccin correspondiente que se debe ejecutar de ese proceso b. El planificador a largo plazo lo selecciona de la cola de listos c. El planificador a corto plazo aplica un algoritmo de seleccin para elegirlo entre los procesos vivos en el sistema d. Ninguna de las anteriores
43. Los algoritmos de planificacin son apropiativos:
a. Cuando se pueden apropiar del procesador desplazando al proceso que lo ocupa en dicho momento b. Cuando un proceso se apropia del procesador y no lo abandona hasta que termina o se bloquea c. Cuando distribuyen el uso del procesador apropiadamente entre los procesos vigentes en el sistema d. Ninguna de las anteriores
44. Los algoritmos del planificador son No apropiativos:
a. b. c. d.
Si permiten terminar de procesarse al proceso en estado running Si comparte ciclos de memoria con el proceso en estado running Inhabilitan el bit de interrupciones en el PSW Ninguna de las anteriores
PAGINA 70 DE 71
Sistemas Operativos
PAGINA 71 DE 71