You are on page 1of 71

Sistemas Operativos

Prof. Alberto Rozenfarb

ARQUITECTURA Y SISTEMAS OPERATIVOS Primer Modulo Prof. Alberto ROZENFARB

PAGINA 1 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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.

DEFINICIN DE SISTEMA OPERATIVO


Esquema estructural

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

Prof. Alberto Rozenfarb

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.

Entre el usuario (crculo ms externo) y el hardware, se encuentra el S.O.

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

Prof. Alberto Rozenfarb

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/

ESQUEMA EVOLUTIVO FORMAL DE LAS COMPUTADORAS.


A continuacin se comentan las conocidas evoluciones de sistemas de computacin. Se las conoce como Generaciones, y fundamentalmente, estn vinculadas a la evolucin del hardware que las, principalmente por la integracin de sus componentes y por la evolucin de materiales utilizados en su construccin. El pasaje a cada nueva generacin, se determina por cambios tecnolgicos de envergadura y nuevos desarrollos en tcnicas de programacin que implican un gran salto o evolucin en la explotacin de los equipos. PAGINA 7 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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.

PRIMERA GENERACIN (1949/1959)


Segunda Guerra Mundial. Construccin basada en vlvulas al vaco y relays. Son equipos electromecnicos, de gran tamao, escasa capacidad y difcil mantenimiento. Especialmente construida para clculos trigonomtricos. Los programas deben ser ejecutados de a uno por vez (monoprogramacin) y ausencia del concepto de Sistema Operativo. Se programaba en lenguaje de maquina directo. Los dispositivos de entrada / salida eran de papel: cinta o fichas perforadas.

SEGUNDA GENERACIN (1959/1965)


Se sustituyen vlvulas y relays por transistores y diodos. Aparecen discos magnticos y las impresoras a cadenas. Nacen los lenguajes simblicos y los sistemas operativos que permiten encadenamiento de lotes de trabajo (procesamiento batch) y del programa almacenado Se especializaron maquinas para leer y para imprimir que aun no estn en lnea con la maquina central. Aqu nace el primer embrin de Sistemas Operativos con el objetivo (siempre econmico) de ganar tiempo y aprovechar simultaneidad de operaciones (paralelismo). Se comenz a considerar la conveniencia econmica de fabricar computadoras en serie, aumentando la rentabilidad por su utilizacin.

TERCERA GENERACIN (1965/1970)


Aparicin de los circuitos integrados. Aparece una gran variedad de dispositivos de entrada / salida de todo tipo, con perifricos independientes de la C.P.U. Aparicin del bus o canal y del manejo de interrupciones, fue revolucionario dando lugar a la multiprogramacin, con Sistemas operativos orientados a esa caractersticas. Gran impulso a sistemas operativos de tiempo real y tiempo compartido. Lenguajes de alto nivel. Aparicin de las bases de datos. Nacen computadoras que van creciendo por familias: compatibles con un soft pero con oferta de tamaos diferentes propios para diferentes aplicaciones. Nace la idea de construccin de Sistemas Operativos de uso general, aplicables tanto a maquinas de orientacin cientfica como comercial.

CUARTA GENERACIN (1970/1990?)


Construccin de circuitos integrados a muy alta escala que trajo aparejada compactacin de tamao potenciacin de velocidades de proceso y volumen de almacenamiento y baja abrupta de costos. Dominio absoluto de microprocesadores integrados en un chip. Perifricos sofisticados para procesamiento de sonido, imagen y grafica. Inicio de los discos pticos con tecnologa lser. Sistemas operativos orientados a redes. Lenguajes de 4ta generacin.

PAGINA 8 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

EVOLUCION DE LOS SISTEMAS OPERATIVOS


De lo ledo hasta ahora, es necesario aislar tres conceptos: Hardware (dispositivos y mecanismos fsicos) que conforman el equipo de computacin; Recursos o servicios que ofrece el Hardware Datos: conforman la materia prima que como usuarios queremos trabajar para obtener informacin til; Programas desarrollados por cada usuario para resolver un problema especfico usando las facilidades que entrega el funcionamiento del hardware.

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.

CONCEPTO DE PROGRAMA ALMACENADO


El propsito de repasar la historia, no es la de recordar fechas, nombres. Es conocido el fracaso de cualquier intento de fijar esos conocimientos. Lo verdaderamente til, es PAGINA 9 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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.

Algunos componentes de la CPU.


Se denominan registros a unas porciones de la CPU que sirven para guardar transitoriamente datos o direcciones: son pedacitos de memoria especficos de la CPU. Son utilizados por las instrucciones del lenguaje de mquina para sus clculos y funcionamiento.

PAGINA 10 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

Descripcin de los registros usados por un programa.


RPI (Registro prxima Instruccin) o PC (Programm counter). Es un registro
que contiene una direccin que apunta a la prxima instruccin que deber ejecutarse despus de la actual. En el momento previo a la ejecucin de una determinada instruccin, el registro RPI contiene su direccin en memoria. Una vez que la copia al RI calcula su longitud en bytes, que depender de la cantidad de operandos que tenga. Ello lo averigua por el valor de su cdigo de operacin. Suma el valor del RPI ms la longitud de la instruccin que va a procesar, y as se posiciona en la ubicacin en memoria de la siguiente. Con dicho valor actualiza el RPI, para la siguiente ejecucin. En caso de que la actual instruccin sea un salto a otra instruccin (condicional o incondicional) el RPI recibir como nuevo dato la direccin de la instruccin a la cual se deber bifurcar.

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)

REGISTRO BASE: me da el punto de carga del programa. Se usa en un esquema de


particionado fijo de memoria.

STACK POINTER Es un puntero, que contiene la direccin donde se ha ubicado el


stack que administrara los datos del proceso y que participara en el tratamiento de las interrupciones.

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

Prof. Alberto Rozenfarb

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.

Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II


Bits de control

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.

Descripcin del procesamiento de un programa


Programa: Conjunto de ordenes de ejecucin a habilidades elementales para resolver un problema o algoritmo. El ordenamiento de ejecucin es de naturaleza secuencial. Existen instrucciones especiales de bifurcacin o quiebre de dicha secuencia. Hay de naturaleza condicional o incondicional. Estas bifurcaciones permiten la posibilidad de repeticin de un ciclo de programa, tantas veces como sea necesario. Estas habilidades ingresan en la memoria, para poder ser ejecutadas: la memoria es un gran vector de posiciones, donde cada elemento se corresponde con un numero llamado direccin de memoria y que permite identificarlo en forma biunvoca. LA MEMORIA ES EL UNICO DISPOSITIVO DESDE DONDE SE PUEDEN EJECUTAR PROGRAMAS. Cada instruccin est compuesta por dos partes: el cdigo de operacin por medio del cual se dice que hacer (operacin a realizar) y adems 0 o hasta dos operandos que generalmente contienen una direccin (quien expresa con quien se har la operacin.) Qu hace PAGINA 12 DE 71 Cdigo de operacin

Sistemas Operativos

Prof. Alberto Rozenfarb

Instruccin Con quien lo hace operandos (contienen direcciones de MP)

Cdigo Cual habilidad

operando/s Direccin de memoria (0,1,o 2 direcciones)

CICLOS PARA LA EJECUCION DE CADA INSTRUCCION.


Ejecutar un programa, consiste en el tratamiento ordenado de sus instrucciones La ejecucin de cada instruccin pasa por varias etapas o ciclos.

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

Prof. Alberto Rozenfarb

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

4650 Call Proc2 4655 Return fin Return

PAGINA 14 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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.

Problemas inherentes a la Multiprogramacin


Al introducirse la posibilidad de multiprogramacin, se presento la situacin de que el procesador solo poda atender una nica instruccin perteneciente a uno de los programas vigentes. La coexistencia de varios programas ubicados en memoria y en condiciones de ser ejecutados, no poda ser aprovechada pues solo uno de ellos poda avanzar en un instante determinado. A ello haba que agregar el hecho de que siendo el S.O. un programa que ocupa memoria (de all su nombre de residente) tambin compita por el uso de procesador. La aparicin de la 3a generacin de computadoras, incorporo un dispositivo llamado canal o bus, especializado en la comunicacin (transferencia de datos en ambos sentidos, entre un dispositivo y la memoria). Permiti descargar parte de las complejas tareas a la CPU, derivando o delegando trabajos en este dispositivo especializado. Habitualmente (monoprogramacin) el procesador esperara el resultado de la operacin de E/S por parte del dispositivo para seguir su trabajo con el programa, desaprovechando la potencialidad de la CPU. El canal o bus, permiti que a la espera del evento, el procesador, pudiera atender a otro de los programas ya cargados en memoria. En estas condiciones, se producira un trabajo en paralelo: PAGINA 15 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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.

Atencin de una interrupcin:


Cabe la pregunta: a quien sigue atendiendo, en el caso de que haya varias interrupciones de diferentes programas? Aqu aparece el tema de prioridades: la CPU decide dar control al programa con mayor prioridad entre los que tienen una interrupcin informada. Un principio clsico por el cual se asignan prioridades a los programas es por su dependencia de muchas operaciones de E/S (programas administrativos que dependen mucho de los datos, en grandes volmenes) o su dependencia de mucho uso de procesador (programas de clculo, aplicaciones matemticas). Siendo que los dispositivos son lentos y el incentivo econmico de distribuir equilibradamente sus recursos, un criterio seria darle prioridad a aquellos programas que tienen mucha E/S. De esta manera habra muchos momentos en que no son necesarios ciclos del procesador, pues el pedido de E/S se est procesando por el dispositivo y controlado por el bus. Si la CPU se dedicara a procesar los programas de mucho calculo, estaramos dedicando la CPU sin posibilidad de que los restantes procesos aprovechen los tiempos de la CPU. El administrador del sistema operativo y los programadores pueden consensuar las prioridades. Cuando el programa finaliza normalmente, tambin se produce una interrupcin, pues el procesador tiene que liberar los recursos atrapados hasta ahora por el programa que termina, para entregrselo a otro. Tambin se generaliza esta denominacin, tanto al pedido de E/S, a la finalizacin de dicho proceso y tambin cuando el programa termina, correcta o incorrectamente. TODO EMPIEZA Y TODO TERMINA CON UNA INTERUPCION

Resumen paso a paso


El procesador est trabajando sobre una instruccin de E/S del programa A Ordena al bus el cumplimiento de dicha orden Cambio de contexto del programa A (*)

PAGINA 17 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

Ejemplo del funcionamiento de una memoria Cache


Supongamos contar con una cache de primer nivel conteniendo 1000 palabras con un tiempo de acceso de 0.1 mseg. Supongamos contar con una memoria con capacidad de 100.000 palabras y un acceso de 1 mseg. SECUENCIA: Se busca una palabra en el nivel cache Si dicha palabra esta, se produce un HIT. Caso contrario se das un MISS. En caso de MISS se busca la palabra en la memoria, se la copia a la cache y el proceso se reencausa. Supongamos que estadsticamente, hay un HITT del 95%, es decir, que hay un HIT en el 95% de los accesos. Calculo de la duracin promedio. (0.95 * 0,1 mseg) es lo que se tarde en el 95% de los casos (0.05 * (0.1 mseg + 1 mseg) es lo que se tarde en un MISS. Hay que acceder a la Memoria y cargar la Cache para luego accederla. En el 5% restantes de casos (MISS). Luego (0.95 * 0,1mseg) + (0.05(*1.1mseg) = 0,095 + 0.055 = 0.15

Tcnicas Controladoras De Entradas/Salidas De Datos


Existen tres procedimientos para controlar las entradas y salidas de datos ordenadas por los programas

1) Entrada Salida programada:


La CPU testea si el dispositivo esta libre Emite rdenes en cada uno de estos procesos. Trae o lleva informacin al dispositivo. En consecuencia, activa, controla y transfiere por lo que invierte mucho de su tiempo. Las muchas preguntas que hace verificando adems, si los datos son confiables y si el dispositivo est en funcionamiento degradan su performance. La CPU prcticamente lleva el control de todo el proceso.

2) Entrada Salida por Interrupciones:


Es el mecanismo por el cual los dispositivos piden o liberan recursos de la CPU (ya sea memoria, tiempo etc.). Todo programa genera una interrupcin al finalizar. Para indicar al Bus que es el dispositivo encargado del control de e/s, que puede continuar con la ejecucin de otra instruccin y que la cpu le ceda recursos.

PAGINA 21 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

3) E/S por D.M.A ( Acceso directo a memoria):


Puede estar tanto en el bus o en la unidad de entra-salida del dispositivo. El DMA es un dispositivo que conecta directamente con la memoria, no pasa por la cpu. Aprovecha el mismo ciclo de ejecucin de la cpu (toma un ciclo y atrasa la cpu un ciclo) para llenar el buffer con gran cantidad de informacin y cuando termina la tarea genera una interrupcin. La cpu le tiene que informar al DMA si los datos de e/s, a que dispositivo va. Le tiene que informar la cantidad de Bytes que va a transferir la direccin de memoria a partir de la cual tiene que almacenar la informacin.

Tpico diagrama de bloques del DMA

Contador de datos

Lineas de datos

Registros de datos

Lineas de direcciones

Registros de dirrecciones

Solicitud DMA Reconocimiento de DMA Interrupcin Lectura Escritura

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

Prof. Alberto Rozenfarb

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

Bus Unico, DMA-E/S integrado

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

Prof. Alberto Rozenfarb

Bus del sistema

Procesa dor

DMA Bus de E/S

Memoria

E/S

E /S

Proteccin de Recursos Compartidos:


El concepto de proteccin se vincula con recursos compartidos: memoria, impresora, disco, etc. Una proteccin se presenta cuando al analizar la direccin contenida en cada operando que apunta a la memoria principal. Se debe analizar si esta dentro del rango asignado al programa (por el S.O) y que esa direccin no est siendo utilizada por otro. Con el concepto de multiprogramacin son varios los programas cargados en memoria y por ende es necesaria la proteccin de ese recurso para los diferentes programas que compiten por l. Uno de los recursos ms protegido es la memoria ocupada por el Sistema Operativo. Cuando se ejecutan estas instrucciones, solo el sistema operativo puede participar. Este modo de proceso se llama modo Supervisor o Kernel o Privilegiado. Uno de los datos que mantiene el PSW es si un recurso es asignado en modo protegido, privilegiado o supervisor. La otra modalidad (modo usuario), es la ejecucin de un programa de usuario. Tambin se protege que un programa no avance sobre los datos de otro. Servicios que brinda un Sistema Operativo. - Resumido de Operating Systems de William Stallings
Un sistema operativo brinda servicios en las siguientes reas:

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

Prof. Alberto Rozenfarb

ACCESO A DISPOSITIVOS DE E/S


Encapsulan el comportamiento de los dispositivos, y permiten al operador que enve sencillas rdenes de E o de S casi independientemente del dispositivo. La implementacin de estas rdenes est inserta en sus respectivos drivers, generalmente provistos por el mismo fabricante del dispositivo.

ACCESO CONTROLADO A LOS ARCHIVOS


El S.O. debe incluir, para el caso de los archivos, la estructura de datos y su organizacin, adems de la E/S propiamente dicha. En caso de mltiples usuarios, debe proveer mecanismos de proteccin de acceso a los mismos.

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.

DETECCION DE ERRORES Y RESPUESTA


Durante la ejecucin de un programa pueden ocurrir mltiples errores. Pueden ser: errores internos o externo: error de memoria falla o funcionamiento incorrecto de un dispositivo overflow aritmtico acceso prohibido de memoria En cada caso debe el sistema informar sobre el tipo de error ocurrido y causar el menor impacto posible sobre el resto de transacciones. La respuesta puede abarcar un rango de situaciones: terminar con el programa que causo el error intentar nuevamente la operacin fallida reportar el error y seguir.

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.

DISEO JERRQUICO GENRICO DE UN SISTEMA OPERATIVO: Nivel Contenido


1 2 Consistente en circuitos electrnicos: celdas de memoria, registros de uso general, registros de uso especifico, puertas lgicas. El S.O. opera sobre ellos, borrando registros o leyendo el contenido de una direccin de memoria. Conjunto de instrucciones del procesador. Son las instrucciones del lenguaje de maquina: suma, resta carga guardar. Son el grupo de habilidades elementales con forma de

PAGINA 25 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

Necesidad de definir procesos


La evolucin y el conocimiento obtenidos por contar con sistemas operativos Batch, con multiprogramacin y Time Sharing, permiti soar con una evolucin imperiosa: llegar a concretar sistemas Operativos que permitiese transacciones en tiempo real, vinculando a mltiples usuarios concurrentes al mismo sistema. Esta idea implico estudiar los desafos de una coordinacin eficiente de recursos, evitar bloqueos de recursos (deadlock o abrazo mortal) y posibilitar el acceso a usuarios concurrentes. Esto daba lugar al nacimiento de varias unidades de ejecucin, incluso dentro de un mismo programa. As naci la necesidad de dar una entidad a cada uno de estos pedidos de ejecucin y se los denomino procesos. Por ejemplo, un usuario de una PC trabaje simultneamente en dos archivos Word: el operador dispar dos veces el icono correspondiente o est trabajando con dos archivos separados: son dos procesos, aunque compartan el mismo programa.

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

Prof. Alberto Rozenfarb

PCB (Process Control Block)


El proceso nace, cuando un programa es invocado para ejecutarse. El Sistema Operativo asigna un identificador y un lugar en memoria llamado PCB (Process Control Block). Este espacio es de tamao igual para todos los procesos. Esto da lugar a un tratamiento ms eficiente. Toda estructura de informacin de tamao variable no se incluye en la PCB: se la vincula con un pointer contenido en la PCB. En l se guardan diferentes datos: el RPI, PSW, prioridad, estado, pointer al stack, direccionamiento al prximo elemento en la cola en la que est ubicado el proceso, asignacin de memoria (registro base y limite), direccin a la lista de dispositivos y registro del uso de recursos para la contabilidad. La contabilidad deja un registro de los tiempos y recursos empleados para cada sector de la empresa. Esto sirve al propsito de auditora y control de uso de la computadora. Hay empresas en las cuales se realiza un cargo mensual a cada sector, en funcin al uso de recursos.

ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK

Identificacin de Procesos
Identificacin de un proceso comn Identificacin de un proceso generado por un padre Identificacin de usuario

Informacin del estado del procesador


Registros visibles del usuario. Son los registros de CPU. Hay entre 8/32 pero en los RISC pueden haber 100. Registros de control y estado. Programa counter (RPI) cdigos de condicin de la previa instruccin informacin de estado (privilegiado/usuario, permite/no permite interrupciones) Stack Pointers

Informacin de control de procesos


Planificacin e Informacin de estado: Es informacin necesaria para el S.O. para sus funciones de planificador. Estado de proceso: Running, Ready, Blocked, etc.) Prioridad: uno o ms campos que indiquen la prioridad del proceso Informacin para la programacin: tiempo que ya lleva operando, tiempo transcurrido desde la ltima interrupcin Evento que debe ocurrir antes de continuar Estructuracin de datos. Un evento esta linkeado a una cola (por ej. esperando un determinado evento). Puede definirse la vinculacin padre-hijo entre procesos Proceso de Intercomunicacin. Puede haber necesidad de intercomunicacin, entre dos procesos independientes, en formas de seales o mensajes. Estos pueden guardarse en el PCB.

PAGINA 29 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

Diagrama general de estados (estructura de dos estados):


a) Entra un programa y el S.O inicializa la PCB. Mientras la PCB es creada, el proceso est en estado NEW b) Una vez asignada la memoria requerida, el proceso pasa a ser elegible para su ejecucin, en estado READY c) Una vez que la CPU comienza a tratar sus instrucciones, conmuta a estado Running d) Cuando hay una peticin de E/S de datos del programa o una pausa requerida por el S.O. pasa a estar en estado de ready para que el dispatcher elija a otro proceso. e) Al completarse la E/S o concretarse un Time out el dispatcher le da nuevamente el control y as se conmuta a estado de Running. A medida que un evoluciona va cambiando de estado y esto se registra en la PCB correspondiente

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

Prof. Alberto Rozenfarb

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.

Multithread: Solo algunos Sistemas Operativos permiten esta posibilidad consistente en


permitir a un proceso disparar algunos subprocesos, dependientes del mismo. Es decir, que un proceso tiene una o varias unidades de proceso (la de cada una de sus hilos). Se trata de tareas que pueden desarrollarse en paralelo: orden de impresin, recepcin de un paquete de datos de internet, etc. Incluso algunos SO permite la intercomunicacin entre estos hijos entre dichos subprocesos paralelos.

Motivos de finalizacin de un proceso:


1) Finalizacin normal, llegando a ejecutar su ltima instruccin, generando una interrupcin. 2) Lmite de tiempo asignado al proceso: Time out. 3) El programa requiere ms memoria de la que tiene. 4) El programa se fue del lmite de memoria de la que tiene asignada (Proteccin), mala asignacin de memoria para el proceso, o llamado a una pgina que no est cargada en memoria. 5) Proteccin de archivos. 6) Error aritmtico (divisin por 0). 7) Falla de entrada y salida (despus de un cierto nmero de intentos). 8) Una interrupcin invalida (RI) 9) Una interrupcin privilegiada (las del Sistema Operativo). 10)Uso de un dato no inicializado. 11)interrupcin del operador (motivado en un deadlock abrazo mortal). 12)Cuando finaliza un proceso padre, finalizan todos sus hijos.

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

Prof. Alberto Rozenfarb

Admitio

ne w

Admitio Dispatc her release Running Exit

Ready/ suspen d

Ready

T.Out Ocurrio evento Susp Blocked/ Suspend ed Blocked Activo Ocurrio evento Espera evento

Blocked/ Suspend ed

Esquema completo de los estados posibles de un proce y sus motivos de transicin

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

Prof. Alberto Rozenfarb

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).

Transiciones De Estados De Un Proceso


1. Bloqueado a bloqueado-suspendido: si entra un nuevo proceso de mayor prioridad a todos los existentes, exige que otro proceso libere su memoria ocupada para cedrsela. Es un criterio generalizado elegir un proceso bloqueado, pues en ese momento no est usan tiempo de CPU. Esto puede suceder an cuando hay procesos ready disponibles, cuando el SO cumple con la alta prioridad del proceso entrante. 2. Bloqueado-suspendido a ready-suspendido: un proceso en estado bloqueado y suspendido deja de estar suspendido cuando ocurre el suceso que estaba esperando y por el cual estaba bloqueado. 3. Ready suspendido a ready: cuando no hay procesos ready en la memoria principal, el SO tendr que traer uno para continuar la ejecucin. Adems si un proceso que est en estado ready y suspendido tiene una prioridad mayor que el que est en estado ready, puede decidirse tomar el de mayor prioridad en vez de minimizar el intercambio. 4. Ready a ready-suspendido: puede ser necesario suspender un proceso ready si sta es la nica forma de liberar un bloque grande de memoria principal o porque se elige un proceso ready de baja prioridad en vez de un proceso bloqueado de ms alta prioridad. 5. Nuevo a ready-suspendido, y nuevo a ready : cuando se crea un nuevo proceso se lo puede aadir a la cola de ready o a la cola de ready y suspendido. La transicin de nuevo a ready y suspendido se hace cuando hay poco espacio en memoria principal para el proceso, pero el SO gana tiempo y va construyendo su PCB. 6. Bloqueado-suspendido a bloqueado: se libero memoria y el SO puede suponer que pronto ocurrir el suceso por el que el proceso est bloqueado y en consecuencia lo vuelve a cargar en memoria 7. Running a ready-suspendido: generalmente un proceso en ejecucin pasa al estado ready cuando culmina su fraccin de tiempo asignado, aunque si se est expulsando al proceso es porque hay un proceso de prioridad mayor en la lista de bloqueados y suspendidos que se acaba de desbloquear, de esta manera si el proceso en ejecucin se lo pasa a la cola de ready y suspendidos se libera espacio de la memoria principal. 8. Varios a exit: normalmente los procesos terminan mientras estn ejecutndose, ya sea porque se completaron o por alguna causa de error. Sin embargo un proceso puede ser finalizado por el proceso que lo creo o bien finalizar cuando termina el proceso padre, esto permite que un proceso situado en cualquier estado pase al de terminado. 9. Running a Blocked: Mientras estaba en ejecucin, aparece una sentencia de E/S o espera una instruccin privilegiada, pasa a Espera o Blocked para que dicho evento esperado, se cumpla.

PAGINA 34 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

Suspensin (que genera swapping)


Un proceso swappeado pasa a estar suspendido. Un swapping se entiende como el desalojo de un programa de la memoria que ocupaba y su preservacin en el disco (tambin se conoce con el mismo nombre al proceso inverso, en donde el programa previamente suspendido es reintegrado a la memoria principal, para proseguir con su ejecucin). Hay varias razones para la suspensin de un proceso y su correspondiente swapping: 1. Intercambio: el SO necesita liberar memoria principal para cargar un proceso que est ready para ejecutarse y de mayor prioridad al del actual. 2. Otra razn del SO: el SO puede suspender un proceso de fondo, de utilidad o cualquier proceso que se sospecha sea el causante de un problema. 3. Solicitud de un usuario: un usuario puede querer suspender la ejecucin de un programa con fines de depuracin o en conexin con el uso de un recurso. 4. Solicitud del proceso padre: un proceso padre puede querer suspender la ejecucin de un descendiente para examinar o modificar el proceso suspendido o para coordinar la actividad de varios descendientes.

Reingreso de un programa a proceso


Hiptesis: hay un programa suspendido; Hay un programa en estado ready Hay un programa bloqueado/suspendido Hay lugar en la memoria suficiente para cualquier proceso Si se carga el bloqueado/suspendido se corre el riesgo que siga bloqueado y no se pueda ejecutar. Habra que comparar la prioridad existente entre el Ready y el Suspendido. A igual prioridad caben dos criterios: se recarga el suspendido, para seguir su procesamiento aunque se gasta tiempo en la carga del programa a memoria. El segundo criterio es darle lugar a un proceso ya comenzado.

Descripcin esquemtica de procesos

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

Prof. Alberto Rozenfarb

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.

Implementacin de las colas


Las colas se implementan en las PCB. All hay un campo que vincula a la posicin de memoria de la prxima PCB en el orden de la cola. Cada vez que se incorpora un nuevo proceso, se procede a acomodar estos pointers. Particularmente interesante, es la implementacin de la cola en estado READY. Hay dos implementaciones posibles: a) cola unica, con dos punteros (al principio y final de la cola) El ordenamiento es por prioridades y entre iguales, por orden de llegada. Cuando ingresa un nuevo proceso en dicha cola se debe ubicar el ultimo proceso con igual prioridad al nuevo, y ubicarlo a continuacin, modificando los punteros de las respectivas PCB. b) Una cola por prioridad. Se requiere un puntero inicial y final para cada cola, se usa la prioridad como puntero a la cola correspondiente y se acomodan los punteros dentro de la cola correspondiente. El Dispatcher, se ocupara en cada implementacin de buscar el siguiente programa a ejecutarse. En la segunda implementacin puede ocurrir que un programa haya ingresado con una prioridad muy baja y por ende puede morir por inanicin (starvation). Esto sucedi histricamente (por ello tiene nombre) Los sistemas operativos modernos evitan esta situacin brindando un servicio de prioridades dinmicas. El S.O. si bien conserva la prioridad original la va cambiando para que el proceso tenga oportunidad de procesarse. Un vez que alcanzo ser ejecutado el SO sigue con la administracin dinmica, bajndole esa prioridad virtual para que se intercalen otros programas. Aqu cobra una verdadera importancia el SO: toma decisiones propias y transparentes para el usuario, para mejorar su eficiencia entre todos los procesos. RUNNING =====

PCB

PCB READY ======== proceso 1 PCB proceso 1 BLOCKED ========

PCB Proceso 2 PCB proceso 2

PCB Proceso n PCB proceso n

PAGINA 36 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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.

REPRESENTACION DE UN PROCESO EN MEMORIA


IDENTIFICADOR INFORMACION DE ESTADO INFOR. DE CONTROL DEL PROCESO PROGRAMA + DATOS ESPACIO DE DIRECCIONES COMPARTIDAS P.C.B AREA PRIVADA AREA COMPARTIDA

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

Prof. Alberto Rozenfarb

Las polticas preemptivas generan ms overhead pero mejoran la respuesta y evitan monopolio.

PLANIFICACION DE CORTO PLAZO

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.

Polticas de Administracin del Procesador


Se definen diferentes criterios para administracin de pedidos de procesamiento. Lo interesante es comparar el promedio de espera para un grupo determinado de procesos para diversos mtodos. El concepto de rfaga se define como tiempo continuo de proceso requerido por un programa.

FCFS First Come First Served.


Se respeta el orden de llegada a la cola. La PCB de los procesos se vincula por un criterio FIFO. No es un criterio eficiente, pero es muy econmico en su implementacin. No hay inanicin y perjudica E/S breves. Se denomina inanicin (starvation) a la excedida permanencia de un proceso en cola de ready, sin ser elegido. 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 Llegan en orden p1 p2 p3

P1 P2 P3 --------------------------------------------------------]--------------]---------] 0 24 27 30 promedio de espera (0 + 24 + 27)/ 3 17 Si llegan p2, p3, p1

P2 P3 P1 -------]-------]--------------------------------------------------] 0 3 6 30 promedio de espera (0 + 3 + 6)/ 3 3

PAGINA 38 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

SJF Shortest Job First


Se trata de elegir, dentro de la cola de ready a los que tendrn una rfaga menor, es decir, que monopolizaran al procesador la menor cantidad de tiempo. Es un mtodo optimo, pero impracticable, ideal. Resulta imposible saber a priori cual es el tiempo de rfaga. Adems penalizara procesos largos Por lo tanto es un clculo emprico, con el que deberan compararse los restantes. Sea P1 P2 P3 P4 con un tiempo de rfaga de 6 mseg con un tiempo de rfaga de 8 mseg con un tiempo de rfaga de 7 mseg con un tiempo de rfaga de 3 mseg

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

Planificacin por prioridad


Aqu se vuelve a considerar el mismo tiempo de arribo. Pero se agrega el criterio de prioridad: un nmero menor implica una prioridad mayor. Sea P1 P2 P3 P4 P5 con un tiempo de rfaga de 10 mseg y con un tiempo de rfaga de 1 mseg y con un tiempo de rfaga de 2 mseg y con un tiempo de rfaga de 1 mseg y con un tiempo de rfaga de 5 mseg y prioridad prioridad prioridad prioridad prioridad 3 1 3 4 2

P2 P5 P1 P3 P4 ----]-------]-----------------------------]------------]------] 0 1 6 16 18 19 tiempo medio de espera (0 + 1 + 6 + 16 + 18 ) / 5 = 41/5 = 8.2 mseg

PAGINA 39 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Quantum 4 mseg P1 P2 P3 P1 P1 P1 P1 P1 P1 ------]-----]-------]---------]-------------]-------]-----]--------]-----] 0 4 7 10 14 18 22 26 30 tiempo medio de espera (0 + 4 + 7 + 6 ) / 3 = 17/3 = 5.66 mseg

Evolucin de los Sistemas Operativos


Es proceso recordar que el sentido del nacimiento y evolucin de los Sistemas Operativos es estrictamente econmico, de acuerdo al principio hednico manifestado anteriormente.

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

Cinta de papel Tarjetas para despus imprimirse Impresora no en lnea

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

Vector Interrupciones Programas que tratan las interrupciones Drivers Secuenciados de trabajos o jobs Interprete del JCL
Monitor Residente

MEMORIA

LIBRE PARA

DISPONIBLE

PROGRAMAS DEL USUARIO

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

Prof. Alberto Rozenfarb

s.o. p1

Memoria Protegida

p2

Memoria del usuario

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:

Razones para su uso


Recursos Compartidos.
Si varios sitios distintos (con diferentes capacidades) se conectan entre s, un usuario de un sitio podra aprovechar los recursos disponibles en otro. Por ejemplo, un usuario del sitio A podra estar usando una impresora lser que slo est disponible en el sitio B. Mientras tanto, un usuario del sitio B podra estar accediendo a un archivo que reside en A. En general, el uso de recursos compartidos en un sistema distribuido ofrece mecanismos para compartir archivos en sitios remotos, procesar informacin de una base de datos distribuida, imprimir archivos en sitios remotos, usar equipos especializados remotos (como un procesador de matriz de alta velocidad) y realizar otras operaciones.

PAGINA 44 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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.

Sistemas de tiempo real


Otro tipo de sistema operativo de propsito especial es el sistema operativo de tiempo real. Se usa cuando los requisitos de tiempo de respuesta de un procesador al flujo de datos son estrictos; por ello, a menudo se utilizan como dispositivos de control en aplicaciones dedicadas (uso especifico para un fin). Los sensores envan datos al computador, el cual debe analizar estos datos y posiblemente ajustar controles a fin de modificar las entradas que los sensores miden. Los sistemas que controlan experimentos cientficos, los que producen imgenes mdicas, los de control industrial y algunos sistemas de exhibicin son sistemas de tiempo real y de control de actividad de una represa. Esta clasificacin tambin incluye algunos sistemas de inyeccin de combustible para motores de automviles, controladores de aparatos domsticos y sistemas de armamentos. Un sistema operativo de tiempo real tiene restricciones de tiempo fijas bien definidas.

PAGINA 45 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

(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

Comparacin entre un Batch Multiprogramado y un Time Sharing


Objetivo principal origen de directivas al S.O. Batch Multiprogramming maximizar uso de procesador JCL incorporadas al trabajo Time Sharing minimizar tiempo respuesta comandos entrados por la terminal.

Miscelneas sobre Sistemas Operativos.


Sistema Operativo CTSS (Mit) 1963) OS 360 (1964) MULTICS (bell Laboratorios) DOS y UNIX WINDOWS NT 4.0 WINDOWS 2000 Vista Volumen 32.000 palabras de 36 bits 1.000.000 de instrucciones de maquina 20.000.000 de instrucciones de maquina compactaron mucho 16.000.000 35.000.000 50.000.000 iniciales

PAGINA 47 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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.

ESTRUCTURA DE CAPAS SIMPLES


programa de aplicacin

programa del sistema residente

controladores de dispositivos del DOS

controladores de dispositivos

PAGINA 48 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

ESTRUCTURA DE CAPAS ENCAPSULADAS (Windows NT 4.0)


Aplicacin Aplicacin Aplicacion

interfaz de programacin de apliciones (API)

subsistema

subsistema

subsistema

Ncleo del sistema

gestin de MP despacho de tareas gestin de dispositivos gestin de procesos

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)

Se plantean varias cuestiones: PAGINA 49 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

1 sola capa horizontal

Es difcil construir SO a medida Es difcil la seguridad intercalas

Cliente servidor dentro de un procesador

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

Prof. Alberto Rozenfarb

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

Equidad Eficacia Tiempo de Respuesta Tiempo de regreso Rendimiento

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

SMP MULTIPROCESAMIENTO SIMETRICO (SYMMETRIC


MULTIPROCESSING)

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

Prof. Alberto Rozenfarb

Los MIMD se dividen en funcin a como se comunican los procesadores Procesadores Paralelos SIMD MIMD

Memoria Compartida fuertemente acoplada

Memoria distribuida dbilmente acoplada

1-Maestro-Esclavo. En Maestro-Ncleo. En esclavo: usuario

CLUSTERS o multicomputador

2- SMP

Multiprocesador de memoria compartida COMUNICACIN POR MEMORIA

Cada procesador su PROPIA memoria = computador integral COMUNICACIONES POR RUTAS O REDES

CLUSTERS

Cada procesador tiene su propia memoria. Son de uso general.

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

Prof. Alberto Rozenfarb

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

Adaptador de E/S Adaptador de E/S Adaptador de E/S

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

Prof. Alberto Rozenfarb

FIABILIDAD

si hay falla del procesador === reorganizacin automtica

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

Prof. Alberto Rozenfarb

En un proceso tradicional, donde cada proceso tiene un nico hilo se da la siguiente estructura

PCB Espacio de direcciones de Usuario

Pila Usuario Pila de ncleo para llamadas y retornos

En un entorno de Multihilo se presenta el siguiente esquema


PCB del proceso
Prioridad Estado

Por cada hilo PCB PCB

Espacio de direcciones del Usuario

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

Prof. Alberto Rozenfarb

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.

OPERACIONES CON HILOS


Creacin implica la generacin de una PCB, pila, pasa a cola de ready, CRECE un proceso Nace un hilo Blocked cambio de contexto, y el procesador contina con el procesamiento de otro hilo Desbloqueo pasa a estado de ready Finalizacin: libera PCB y la pila propia del hilo

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

Prof. Alberto Rozenfarb

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

ULT Hilos a nivel de usuario


El proceso maneja los hilos. El ncleo nunca es requerido por lo que no tiene ningn control sobre ellos Estando el proceso principal en Running accede a una biblioteca especializada en Hilos y all se invoca su creacin. Por lo tanto es totalmente independiente del ncleo. Solo se requieren dos cambios de contexto: entrar a la biblioteca y otro para salir de ella, cuando los hilos fueron creados. Todo esto tiene lugar en el modo usuario por lo que evita los cambios de modo. Los hilos creados, tal como fue explicado anteriormente tienen su propio estado al igual que el mismo proceso padre Pero cuando un ULT llama al ncleo, se bloquea todo el proceso. Se pueden ejecutar en diferentes Sistemas Operativos. Multihilo ejecutado en un monoprocesador implica una multiprogramacin acelerada, pero no se pueden distribuir hilos entre procesadores

KLT HILOS A NIVEL KERNEL (NUCLEO)


En KLT Puro el proceso no absorbe la gestin de hilos. Es el Ncleo o Kernel quien se ocupa de su generacin requiriendo al efecto una ventana API para acceder a las facilidades del Ncleo. La planificacin es por hilo. El ncleo puede distribuir hilos DE UN MISMO PROCESO en distintos procesadores, con lo cual se alcanza un mximo de eficiencia y procesamiento paralelo Pero la transferencia entre hilos es muy lenta pues hay que hacer cambio de modo usuario a kernel , diferente a los que ocurra en ULT Las rutinas del ncleo pueden tambin ser multihilo como cualquier proceso pero cuando hay transferencia entre hilos hay que hacer un cambio a modo KERNEL, lo cual lo hace mas pesado. A continuacin se grafican los dos formatos de formacin y manipulacin de hilos.

PAGINA 57 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

Windows HILOS

Biblioteca HILOS Espacio del usuario P


HILO HILO HILO

NUCLEO

ULT

K LT

Puro

PAGINA 58 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

PREGUNTAS SOBRE SISTEMAS OPERATIVOS


1. 2. 3. 4. 5. 6. Describir los registros de la CPU. Indicar para por lo menos tres de ellos, su funcin y/o su utilizacin y su posible contenido. Describir las polticas de escritura que puede tener la memoria cach. Indicar ventajas y desventajas de cada una. Indicar las circunstancias que influyeron en el diseo de la memoria cach y cul es el overhead que provoca. Esquematizar y ejemplificar una operacin de lectura de memoria Qu es una interrupcin? Para qu se usa? Defina la informacin que se administra cuando una de ellas se produce (registros que intervienen, informacin que se preserva, estructuras de informacin que soportan dicha administracin. Motivos de las interrupciones. Antes de ejecutarse una determinada instruccin, el RPI o Program Counter apunta a la misma qu significa el termino apunta, es decir, que contiene el RPI? a. b) con cual nuevo contenido se actualiza? b. c) en cuanto se incrementa con cada ciclo? c. d) en toda circunstancia se incrementa con la cantidad explicada en c)? Existe algn proceso que vincule la pila de cada proceso con las interrupciones. Describa con detalle la tcnica controladora de E/S llamada D.M.A. cual es la informacin que debe manejar y analice cual es su aporte de eficiencia en relacin a los otros dos mtodos explicados: E/S programada y E/S por interrupciones. (No explique estos dos ltimos) Describa una E/S por interrupciones. Cul es el aporte si se utiliza la tcnica del D.M.A Cul es la informacin que se necesita salvar al tratar una interrupcin? Porqu? Diferenciar que es lo manejado por el software y qu es manejado por el hardware. Qu son las Rutinas de tratamiento de interrupciones? En que caso se las utiliza? Donde y cmo se las ubica? Explicar qu son las interrupciones mltiples. Pudiendo transferirse datos, agrupados en bloque o en palabras, indicar cul de ellos corresponde a la transferencia entre la UCP y la Memoria Cach y cul a la que se realiza entre la memoria cach y la MP. Justificar su respuesta. En una interrupcin, un dispositivo emite una seal para indicar al procesador el motivo de la interrupcin. Explicar en qu momento el procesador atiende esa seal y cules son los sucesos que se desarrollan a continuacin. Novele el algoritmo de planificacin de corto plazo del procesador. P.C.B. (Process Control Block) Contenidos y objetivos de uso. Describa sus principales elementos (nombre y funcin). Que significa que un proceso este suspendido? Causas probables de la suspensin. Cuales pueden hacer finalizar dicha condicin. Un proceso swapeado pasa a estar suspendido, su memoria es liberada y se carga otro proceso. El SO debe decidir entre, traer un nuevo pgm a memoria o traer otro previamente suspendido o traer otro suspendidobloqueado. Que consideraciones debe elaborar para llegar a unazxdecisin. El S.O. puede elegir entre un blocked /suspended y un ready/suspended para incorporarlo a memoria Si el primero tiene mas prioridad que todos los segundos, cual elige? Justifique La memoria cache es a. un espacio protegido de disco b. Una porcin de la memoria principal administrada por los programadores. c. otro dispositivo de almacenamiento Fundamente la existencia de la memoria cache. Describa su funcionamiento, mencionando el significado de los trminos hit y miss. Considere el concepto del principio de localizacin Si una cache puede hacerse tan grande como la memoria, porque no se la fabrica de dicho tamao? No se pide una descripcin del funcionamiento de una cache. Un compilador, forma parte del sistema operativo? Cmo se lo considera? Explique como procede el sistema operativo cuando encuentra una bifurcacin incondicional y cuando encuentra una condicional. Explicar y ejemplificar un ciclo de elaboracin de una instruccin cualquiera y la utilizacin de los registros del procesador intervinientes Cmo organizara la ejecucin de un programa sin la existencia de memoria principal. Explique el algoritmo LRU, utilizado en el proceso de una memoria cache. Que es un bus y como se lo vincula con la tercera generacin de evolucin de las computadoras. A qu sigla responden las iniciales P.S.W. para que sirve. Describa sus principales elementos (nombre y funcin). Suponga que hay procesos en estado de READY y en estado de READY/SUSPEND. y que al menos un proceso en estado de READY/SUSPEND tiene una prioridad mas alta que cualquiera de los que esta en READY. Podran definirse dos polticas extremas: siempre despachar los procesos que estn READY , para minimizar el swapping

7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

21.

22. 23. 24. 25. 26. 27. 28. 29.

PAGINA 59 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.

52. 53. 54. 55. 56. 57.

58. 59. 60.

61. 62. 63. 64.

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

Prof. Alberto Rozenfarb

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.

66. Qu es la computacin cliente servidor?


67. Plantee razones fundamentales para situar las aplicaciones en el cliente, en el servidor o dividirlas entre el cliente y el servidor 68. Qu son los clientes ligeros y pesados, cuales son las diferentes de los dos enfoques 69. Defina lo que significa un proceso. Diferencia con la definicin de un programa. 70. Describir los estados de un proceso en un modelo integral. Explicar al menos 3 transiciones de un estado al otro. 71. Qu es el middleware? 72. Compare la arquitectura de Clusters vs la SMP 73. Caractersticas que deben tener los programas reubicables y los reentrantes. 74. Facilidades o crecimientos que brinda la estructura de Microncleo en un S.O. 75. Defina el significado de cambio de contexto. Lugar donde se guarda la informacin propia de un cambio de contexto 76. si hay un proceso en estado Ready suspended y otro en ready, cul criterio puede considerar para elegir al suspendido y cual criterio para elegir al ready para pasarlo a Running. 77. En cuales estados usted podra definir colas de espera. Defina los criterios con que justifica su definicin 78. Que es un quantum en una planificacin Round Robin? Como se determina? qu cambia en la planificacin al modificarlo? 79. Es necesario ejecutar un determinado proceso. Del estado NEW, la CPU puede admitirlo al estado READY o al estado READY/SUSPEND. cuando elije uno u otro criterio? 80. Como vinculara la utilizacin del Job Control Language con el concepto del Monitor Residente, en un sistema Operativo Batch 81. Sistemas Distribuidos: diferencia conceptual y de implementacin entre un cluster de computadoras y la organizacin Maestro/Esclavo. 82. Explique el concepto de multihilo o multithreading y cul es el avance conceptual con respecto a los procesos existentes con anterioridad. 83. Explicar el algoritmo de planificacin con prioridades y de colas mltiples. Explicar las ventajas y desventajas de cada uno de ellos. 84. Un proceso esta formado por un programa codificado por un programador y los archivos externos definidos por el mismo (V F). Justifique su respuesta 85. Diferencia de enfoque entre una estructura de SO de capas simples, de capas encapsuladas y el microncleo. 86. Como se comunican las computadoras que forman un Cluster 87. Cmo se comunican los procesadores que forman un SMP. 88. Si se le pregunta por lo que debe brindar un sistema operativo explique los siguientes trminos Equidad , Eficacia 89. Si se le pregunta por lo que debera bridar un sistema operativo explique los siguientes trminos: Tiempo de Respuesta, Tiempo de regreso, Rendimiento 90. Qu es un servidor?

PAGINA 61 DE 71

Sistemas Operativos

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

Prof. Alberto Rozenfarb

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

42. Para que un proceso pase de listo a ejecucin (ready a running):

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

Prof. Alberto Rozenfarb

Significado de palabras clave


Direccin fsica Direccin virtual Estado de proceso Hilo Interrupcin Lenguaje de control de trabajos (JCL) Micronucleo Monitor Residente Procesamiento batch o por lotes Round Robin Time Sharing Proceso padre Modo privilegiado Estado suspendido Cambio de contexto Swapping PCB KLT SMP Mensaje Dispositivo orientado a bloques Dispositivo orientado a flujo de caracteres Entrada / Salida Lgica

PAGINA 71 DE 71

You might also like