Академический Документы
Профессиональный Документы
Культура Документы
Alberto Rozenfarb
Primer Modulo
PAGINA 1 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
INDICE
DEFINICIÓN DE SISTEMA OPERATIVO..............................................................................6
Esquema estructural...........................................................................................................6
HISTORIA...............................................................................................................................7
PRIMERA GENERACIÓN (1949/1959).............................................................................9
SEGUNDA GENERACIÓN (1959/1965)............................................................................9
TERCERA GENERACIÓN (1965/1970).............................................................................9
EVOLUCION DE LOS SISTEMAS OPERATIVOS..............................................................10
CONCEPTO DE PROGRAMA ALMACENADO..................................................................10
Algunos componentes de la CPU........................................................................................11
Descripción de los registros usados por un programa........................................................12
Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II........................................13
Descripción del procesamiento de un programa.................................................................13
Ciclo de instrucción:..........................................................................................................14
Ciclo de ejecución:............................................................................................................14
Ciclo de interrupción:........................................................................................................14
Interrupciones.......................................................................................................................15
Stack.................................................................................................................................15
Punto de Retorno..............................................................................................................15
Problemas inherentes a la Multiprogramación.................................................................16
Cambio de contexto..........................................................................................................17
Interrupción.......................................................................................................................17
Atención de una interrupción:...........................................................................................18
Resumen paso a paso......................................................................................................18
Motivos de Interrupciones................................................................................................19
Jerarquías de memoria........................................................................................................19
Principio de localización.......................................................................................................20
Memoria Cache....................................................................................................................20
Ejemplo del funcionamiento de una memoria Cache.......................................................21
Técnicas Controladoras De Entradas/Salidas De Datos.....................................................22
1) Entrada Salida programada:.......................................................................................22
2) Entrada Salida por Interrupciones:.............................................................................22
3) E/S por D.M.A ( Acceso directo a memoria):...............................................................22
Típico diagrama de bloques del DMA..............................................................................23
Protección de Recursos Compartidos:.................................................................................25
DESARROLLO DE PROGRAMAS...................................................................................25
EJECUCION DE PROGRAMAS......................................................................................25
ACCESO A DISPOSITIVOS DE E/S................................................................................26
ACCESO CONTROLADO A LOS ARCHIVOS................................................................26
ACCESO AL SISTEMA....................................................................................................26
DETECCION DE ERRORES Y RESPUESTA.................................................................26
CONTABILIDAD...............................................................................................................26
DISEÑO JERÁRQUICO GENÉRICO DE UN SISTEMA OPERATIVO:..........................26
SPOOLING.......................................................................................................................28
Multiprogramación:...............................................................................................................28
Necesidad de definir procesos.............................................................................................29
PROCESOS.........................................................................................................................29
PCB (Process Control Block)...........................................................................................30
ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK...............................30
PAGINA 2 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Identificación de Procesos................................................................................................30
Información del estado del procesador............................................................................30
Información de control de procesos.................................................................................30
ESTADOS DE UN PROCESO:............................................................................................31
Diagrama general de estados (estructura de dos estados):............................................31
Time Out...........................................................................................................................32
Motivos de finalización de un proceso:............................................................................32
EVOLUCION DE UN PROCESO:....................................................................................33
Esquema de 8 estados:................................................................................................33
Transiciones De Estados De Un Proceso....................................................................34
Suspensión (que genera swapping).............................................................................35
Reingreso de un programa a proceso..........................................................................35
Descripción esquemática de procesos.........................................................................36
Implementación de las colas.........................................................................................36
REPRESENTACION DE UN PROCESO EN MEMORIA.............................................37
PLANIFICACION DE CORTO PLAZO - DISPATCHER.........................................38
Políticas de Administración del Procesador.....................................................................38
SJF Shortest Job First................................................................................................39
Planificación por prioridad.............................................................................................40
ROUND ROBIN.............................................................................................................40
Evolución de los Sistemas Operativos.................................................................................40
Serial.................................................................................................................................40
Batch Simple.....................................................................................................................41
Batch Multiprogramado.....................................................................................................43
Razones para su uso........................................................................................................44
Recursos Compartidos.................................................................................................44
Computación más rápida..............................................................................................45
Confiabilidad.................................................................................................................45
Comunicación...............................................................................................................45
Comparación entre un Batch Multiprogramado y un Time Sharing.............................47
Misceláneas 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
INTRODUCCIÓN
Una posible visión elemental o primitiva, es la de una caja negra, de la cual no conocemos
su funcionamiento. Solo conocemos que nos permite hacer cálculos, guardar información
para una posterior elaboración, entregarnos información elaborada, es decir podemos
observar, que está compuesto por un conjunto de dispositivos cada uno con una función
específica, vinculados con una cierta lógica y conectados por un cableado, trabajando de
manera coordinada. Esa coordinación nos la da el Sistema Operativo por lo que
representa para el usuario, un cierto nivel de abstracción: este reconoce su existencia sin
conocer su estructura interna.
El concepto de Caja negra no tiene que ver con el dispositivo utilizado en los aviones,
cuya función es la de registrar ciertos eventos que ocurren en el aeroplano y/o los
diálogos 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 máquina, recibe una determinada materia prima y entrega un material elaborado
llamado información, que el usuario recibe y podrá usar apropiadamente.
Caja Negra
datos información
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.
PAGINA 4 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
disco cinta
Memoria driver
PAGINA 5 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
HISTORIA
El desarrollo de los sistemas operativos fue evolucionando a lo largo del tiempo, paralelo a
la evolución de las computadoras, a la necesidad de incorporar a mayor cantidad de
usuarios (por fines económicos y satisfacción de creciente demanda) y fundamentalmente
respondiendo al principio hedónico aplicable a cualquier equipamiento o herramienta de
uso especifico:
Obtención de mayores beneficios con el mínimo esfuerzo u obtención 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 evolución.
Es de hacer notar que este principio tiene una raíz netamente económica y ello podrá
observarse a lo largo de toda su evolución. El planteo fue siempre: ¿cómo puede
optimizarse la utilización de mi herramienta en pos de una mayor rentabilidad, de un
usufructo más ventajoso?
Aun sin ser riguroso y por razones didácticas, podemos entender y analizar la evolución
de los sistemas operativos ubicándonos frente a lo que podríamos considerar como la
más primitiva maquina de calcular: el ábaco (año 1000 aprox). Objetivo de su
construcción: maquina que ayude al hombre en trabajos repetitivos.
PAGINA 6 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Otra percepción del principio impulsor de los sistemas operativos, fue la aparición de la
máquina de Jaquard (1801). Este señor era un tejedor de alfombras. Incentivado por el
éxito de sus diseños, intento crecer económicamente buscando dos objetivos: poder
repetir un mismo diseño, acortando los tiempos de producción. Por ello diseño un patrón
para que sus telares trabajasen automáticamente: el entretejido de los hilos longitudinales
(que ya venían cargados en el telar) con el hilo transversal que daba colores y formas, era
dirigido por cartulinas estratégicamente 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
reutilización de ciertos programas (las cartulinas).
Pueden mencionarse en esta historia, la maquina analítica de Babagge (1834). Era una
herramienta mecánica que nunca funciono pues no se pudieron construir las poleas y
soportes diseñados.
El verdadero empuje a esta evolución histórica, previa aun a la existencia de lo que hoy
consideramos como sistema operativo, fue la Segunda Guerra mundial. Se requería
velocidad de procesamiento y la posibilidad de modelar visiones multidisciplinarias, para la
resolución de problemas originados en la guerra (simulación, cálculo 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) válvulas al vacío. Es necesario imaginar su funcionamiento, considerando el calor que
generaban tal cantidad de elementos y la cantidad de interrupciones por mal
funcionamiento de dichas válvulas, quienes se quemaban frecuentemente por la
temperatura que disipaban. Su uso más importante fue el apoyo para cálculos
matemáticos, principalmente trigonométricos.
http://www.wired.com/magazine/2010/07/ff_fred_brooks/
PAGINA 7 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 8 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
El sistema operativo articula la integración de estos factores, encapsulando (para los ojos
del usuario) el funcionamiento del hardware, permitiendo una facilitada y eficiente
administración de los datos e información (ingreso, procesamiento y almacenamiento) y el
suministro y administración 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 abstracción (solo se conoce su utilización, pero no su
funcionamiento: tampoco podemos modificarlo).
PAGINA 9 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
John von Neumann (1949) definió un modelo de computación con ciertos ingredientes,
que fueron bisagra para la concepción moderna de lo que es una computadora:
el programa almacenado.
El concepto de salto condicional
Definición de un programa como cadena lógica binaria.
PAGINA 10 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
REGISTRO DE INSTRUCCION:
El registro de instrucción permite albergar cada instrucción tomada desde la memoria. El
sistema operativo separa el código de operación de los operándoos para luego analizar
(ver Descripción del procesamiento de un programa)
BASE POINTER Es un puntero, que contiene la dirección 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 ejecución 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
máquina y todas las direcciones de memoria son accesibles.
Modo no privilegiado o modo usuario: algunas instrucciones (privilegiadas) no se
pueden utilizar. Además inhibe el acceso a ciertas direcciones de memoria. A
estas instrucciones y/o memoria, se puede acceder a través de la versión
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 aceptación o no
de las interrupciones. Si la interrupción 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
Bits de control
AC (Alignement Check) alineación o no alineación a entorno de doble palabra
ID (Identification flag) hay procesadores que soportan (y este bit es para habilitarla o no) información del
fabricante, familia y modelo de computadora
RF (Resume Flag) Permite al programador inhibir excepciones en el debugging de modo que la
instrucción pueda ser recomenzada después de una excepción de debugger sin
causar inmediatamente otro nueva interrupción.
IOPL(I.O. privilege level) Si pone en ON, implica que se genere una excepción en todos los accesos a
dispositivos de E/S durante el modo de operación privilegiado.
DF (Direction Flag) Determina cuando incrementar los registros SI DI ESI o EDI cuando se procesan
instrucciones de strings.
IF (Interrupt enable Flag) En ON el procesador reconoce interrupciones externas.
TF (Trap Flag) En ON, genera una interrupción después de cada instrucción (para debugging)
Bits de modo de operación
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 están esperando
servicio
Códigos de condición.
AF (Auxiliary carry flag) representa si hubo carry en una operación de medios bytes en una operación logia o
aritmética con el registro AL
CF (Cary Flag) Indica un carry del bit izquierdo después de una operación aritmética. También
puede modificarse por un corrimiento de bits.
OF (Ocverflow Flag) Indica overflow aritmético después de una suma o resta
PF (Parity Flag) Paridad del resultado de una operación aritmética (1 par 0 impar)
SF (Sign Flag) Indica signo del resultado de una operación matemática o lógica
ZF 8Zero Flag) Indica si fue 0 el resultado de una operación matemática o lógica.
Cada instrucción está compuesta por dos partes: el código de operación por medio del
cual se dice que hacer (operación a realizar) y además 0 o hasta dos operandos que
generalmente contienen una dirección (quien expresa con quien se hará la operación”.)
PAGINA 12 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Instrucción
Código operando/s
Ciclo de instrucción:
El procesador consulta al RPI. Su contenido apunta al lugar de memoria donde se
encuentra la próxima instrucción a procesarse.
Ciclo de ejecución:
Si los análisis anteriores fueron correctos la instrucción es ejecutada por la Unidad
Aritmética y Lógica (UAL) usando, si fuesen necesarios los registros de uso general antes
definidos.
Ciclo de interrupción:
Bajo el concepto de multiprogramación, toda instrucción pasa por un ciclo inicial de
interrupción, donde la CPU pregunta al Bus (dispositivo encargado de realizar el manejo
PAGINA 13 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Interrupciones
Stack
La función de la pila o stack es la de acumular información con la metodología LIFO. El
uso más importante de esta estructura es documentar las condiciones de retorno en la
ejecución de un programa, cuando por alguna razón, se interrumpe su procesamiento y
se va a otro subprograma específico. 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 operación de E/S.
Si el stack pointer coincide con el Base pointer es porque la pila está vacía. Se incrementa
en la cantidad de información a guardar el stack.
Si en cada oportunidad se agrega o quita la misma información solo se guarda en el stack
la dirección de memoria que contiene los datos. El agregar y quitar deberán respetar el
orden y cantidad de los datos.
Punto de Retorno
Programa Principal Programa Proc1 Programa Proc2
Posicion inicial 4000 Posicion Inicial Posicion Inicial
4500 4800
4000 4500 4800
4600 Call Proc2
4100 Call Proc1
fin Return
PAGINA 14 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Una utilización 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 dirección 4000.
En la dirección 4100 hay un llamado a un subprograma Proc1, cargado a partir de la
dirección 4500.
Se llama subprograma a un conjunto de instrucciones insertadas dentro de un
determinado programa principal del cual es parte, y que resuelve un cálculo que puede
repetirse varias veces, a lo largo del ciclo de vida del programa principal.
Debemos reconocer el principio de reutilización, 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 instrucción Return, que indica volver al punto en que dicho subprograma fue
convocado. Esta dirección de memoria se llama punto de retorno y la instrucción Return
funciona así: toma la dirección 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 instrucción call Proc1 ubicada en la dirección 4100. El RPI
apunta a la dirección de la siguiente instrucción: supongamos 4104. Es el primer valor que
se agrega (push) al stack.
El RPI se llena con la dirección 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 instrucción 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.
PAGINA 15 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
El bus se encarga de comunicar la orden al dispositivo por medio del driver específico
mientras el procesador elabora instrucciones de otro programa.
Cambio de contexto
En el momento en que el programa en ejecución procesa una instrucción 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 computación hay un solo juego de registros específicos y
de uso general. Cada programa entonces, debe preservar los valores que estos registros
tenían, al momento en que el procesador decidió ocuparse de otro programa. Es una
especie de radiografía 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 algún momento continuar, COMO SI NUNCA HUBIESE SIDO
SUSPENDIDO.
Este resguardo de información se llama Cambio de Contexto.
El procesador carga la información de todos los registros en uso en la PCB,
particularmente el RPI cuyo contenido apunta a la instrucción próxima a ejecutarse,
después de la concreción de la E/S. Cada programa tiene su propio stack, construido en
memoria principal y la PCB cuenta con un puntero a dicha pila.
Interrupción
Cuando el bus termina de realizar la operación previamente encomendada, genera una
interrupción, “avisando” al sistema operativo que su trabajo terminó indicando, además, en
qué condiciones terminó.
La CPU es informada de todo este movimiento pues controla el flujo de procesos,
específicamente en su ciclo de interrupción.
Generada la interrupción, el sistema toma conocimiento de la misma y analiza el código
devuelto. Este código identifica la finalización de la operación pedida y las condiciones de
finalización: , o con un determinado error.
Cuando el procesador decida la continuación del proceso del programa para el cual se
proceso la interrupción, 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
Motivos de Interrupciones.
Reloj (timer) que produce el time out
Entrada/Salida finalización normal o con el problema ocurrido, de una
operación de E/S
Falla de algún dispositivo (fuente de poder, memoria, etc)
Programa (división por 0, instrucción ilegal, fuera de la memoria
permitida o disponible, etc.)
Jerarquías de memoria.
Memoria es un nombre genérico, referido a dispositivos que se usan para guardar
información, algunas en forma permanente y algunos en forma volátil.
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
información (de arriba hacia abajo).
Disco magnético
CD (disco óptico) No volátiles
DVD
Punto b) Cintas magnéticas
Punto a): Mayor costo por bit almacenado, menor capacidad de información, menor
tiempo de acceso y mayor frecuencia de acceso.
Punto b): Mayor capacidad de información, menor costo por bit empleado, mayor tiempo
de acceso, menor frecuencia de acceso.
PAGINA 18 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Principio de localización
Hay un principio inherente a muchas opciones incorporadas a los sistemas operativos,
originado en la observación y en la definición e implementación de ciertos conceptos.
Debido al principio de Von Neumann el ordenamiento de ejecución de un programa es
secuencial. Debido a ello, es alta la probabilidad de que a la ejecución de una instrucción
determinada, le siga la ejecución de la instrucción físicamente contigua.
Las excepciones están dadas cuando el procesador se encuentra con una instrucción de
bifurcación. Este principio, también se aplica al tratamiento de la información guardada en
un determinado dispositivo.
Memoria Cache
En este ítem, integraremos los dos conceptos anteriores y además se introducirá el
conocimiento acerca de un dispositivo fundamental en la evolución de los Sistemas
Operativos e importante para su comprensión.
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 más 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 posición original en la memoria.
EN ESTO RESIDE EL AUMENTO DE VELOCIDAD DEL PROCESO: EVITANDO UNO
DE LOS DOS ACCESOS A MEMORIA.
PAGINA 19 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Transfiere Transfiere
una un bloque
instrucción de
instruccion
es(ejecución de varios programas
Cuando se trabaja con Multiprogramación
simultáneamente) la cache se divide en porciones asignadas cada una a cada programa
en ejecución.
De modo que cada programa en ejecución tiene un grupo de sus instrucciones tanto en
memoria (donde reside todo el programa) como en la cache.
Cuando un programa debe procesar una instrucción y la encuentra en la cache se dice
que hubo un HIT (éxito en encontrar la instrucción y el ahorro del correspondiente acceso
a memoria). Por el contrario, si la instrucción a procesar (valor del RPI) no está en cache
es un MISS (falta). Entonces (considerando el principio de localización) se trae un nuevo
bloque de instrucciones de memoria, donde reside la instrucción buscada y hasta el
tamaño del bloque asignado a cada proceso.
Este nuevo bloque reemplaza en la cache, al bloque que hace más tiempo que no se
procesa: criterio llamado LRU (Least recently used – el que hace más tiempo que no se
usa). Al actualizar la cache, se vuelve al ciclo anterior y seguramente habrá un HIT.
PAGINA 20 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
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 estadísticamente, hay un HITT del 95%, es decir, que hay un HIT en el
95% de los accesos.
Calculo de la duración promedio.
PAGINA 21 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Aprovecha el mismo ciclo de ejecución de la cpu (toma un ciclo y atrasa la cpu un ciclo)
para llenar el buffer con gran cantidad de información y cuando termina la tarea genera
una interrupción.
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 dirección de memoria a
partir de la cual tiene que almacenar la información.
Contador
de datos
Registros de
dirrecciones
Lineas de direcciones
Interrupción
Lectura
Escritura
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 envía un
mandato al DMA especificándole:
Si es de E/S, cantidad de datos a transmitir, direcciones del disco y la memoria.
El procesador sigue con otra tarea.
PAGINA 22 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
E/S E /S
1. Los módulos de E/S pueden conectarse al DMA utilizando un bus específico de E/S.
Esto reduce a una única interfaz de E/S en el módulo DMA y proporciona una
configuración expandible, El Bus del sistema dsolo se usa para intercambiar datos con
la memoria y señales de control con el procesador. El intercambio de datos entre los
módulos del DMA y la E/S tienen lugar fuera del bus del sistema
PAGINA 23 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
E/S E /S
Uno de los recursos más 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 ejecución de un programa de usuario. También 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 computación.
EJECUCION DE PROGRAMAS
Incluye tareas para la ejecución de programas, carga del mismo en memoria, preparación de la
información de procesos (PCB), preparación de la entrada y salida de datos, preparación de los
dispositivos. Con este planteo, podemos definir inicialmente a un sistema operativo como un
conjunto de programas que permite y controla la ejecución de programas de aplicación
(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 AL SISTEMA
En caso de ser un sistema público y compartido, proveerá mecanismos de control de acceso
global y particular de determinados recursos. Debe proveer protección de usuarios y accesos
indebidos o no autorizados y evitar conflictos por retención de recursos.
CONTABILIDAD
El creciente involucramiento del uso de una computadora en todas las áreas de una empresa,
asociado al costo de su mantenimiento y de la incorporación 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 información sobre
el uso de sus recursos y los acumula para su posterior análisis. Muchas veces se utiliza esta
información con fines de auditoría y facturación intersectorial.
Nivel Contenido
1 Consistente en circuitos electrónicos: celdas de memoria, registros de uso general,
registros de uso especifico, puertas lógicas. El S.O. opera sobre ellos, borrando registros o
leyendo el contenido de una dirección de memoria.
2 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
De 1 a 4 no son parte del Sistema Operativo. Sin embargo son la base para la definición de sus
funciones y obviamente de su naturaleza.
5 Noción de procesos y sus estados. Manejo de primitivas. Switcheo entre dos procesos.
Métodos de sincronización para procesos cooperativos, cuando se requiere algún tipo de
coordinación.
6 Dispositivos de memoria secundaria. Posicionamiento en una zona especifica del disco,
transferencia de información solicitada, reserva y liberación de espacio. Tiene que ver con
manejo de códigos de retorno de cada operación física de Entrada Salida
7 Creación del direccionamiento lógico para uso de los procesos, expandiendo la memoria a
almacenamiento secundario. Administración dinámica de memoria, en cuanto al
movimiento de intercambio de información 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 (periféricos o redes) que pueden compartirse entre uno o varios computadores
PAGINA 26 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
SPOOLING
Con la aparición del disco magnético, se pudo pensar en mecanismos para tratar una
permanente obsesión de los fabricantes de equipos y/o sistemas operativos: aprovechar
los tiempos, generar la posibilidad de más usuarios simultáneos, abaratar costos o
generalizar más procesos simultáneamente. (Repetimos la motivación económica para
todos los avances y evoluciones de temas vinculados con Sistemas Operativos).
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 permitiría la aplicación de
conceptos como el de prioridad, características similares de trabajos. Puede retenerse un
trabajo debido a una dependencia de resultados de un proceso previo, para que pueda
administrarse su lanzamiento según la conveniencia del centro de cómputos.
En el spooler de salida, el aprovechamiento es muy importante. Se aplica para la
administración de los listados generados simultáneamente por varios programas.
Se pudo lograr la siguiente funcionalidad:
Retener la salida de un listado, cuando por motivo de volumen deba recibir la autorización
del programador
Retener la salida de un listado, cuando faltan formularios especiales para el mismo.
Permitir “ver” por dentro del listado, para verificar su corrección antes de iniciarlo.
Permitir comenzar la impresión 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.
Multiprogramación:
Inicialmente, cuando un programa derivaba una orden de E/S a un dispositivo, el mismo
se quedaba esperando hasta la finalización de dicha orden. La diferencia abismal de
velocidades mostraba a una CPU (única y costosa) de débil utilización, desaprovechada.
Con la aparición del concepto de canal o bus de E/S, el procesador pudo derivarle este
trabajo. Por lo que, mientras el programa en ejecución deriva una operación de E/S al
bus, la CPU puede ocuparse de otro programa residente en Memoria. Esto permitirá una
superposición de tareas, con un importante aprovechamiento del uso del dispositivo más
importante de toda computadora: la CPU. A fin de mejorar el desempeño global del
sistema, los desarrolladores introdujeron el concepto de multiprogramación. Con la
multiprogramación 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 activación de varios programas “simultáneamente”. Se trata
de aprovechar el tiempo útil de la CPU.
PAGINA 27 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PROCESOS
Un proceso es un programa en ejecución, en actividad. Desde que el programa
(residente en disco) es convocado para su ejecución y hasta su finalización, 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
ejecución de instrucciones propias.
PAGINA 28 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Identificación de Procesos
Identificación de un proceso común
Identificación de un proceso generado por un padre
Identificación de usuario
Estructuración de datos. Un evento esta linkeado a una cola (por ej. esperando un
determinado evento). Puede definirse la vinculación padre-hijo entre procesos
Proceso de Intercomunicación. Puede haber necesidad de intercomunicación, entre
dos procesos independientes, en formas de señales o mensajes. Estos pueden
guardarse en el PCB.
PAGINA 29 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
ESTADOS DE UN PROCESO:
Se identifican varios estados de un proceso a lo largo de su ciclo de vida:
PAGINA 30 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Time Out
En todo Sistema Operativo existen una serie de parámetros o valores llamados quantum.
Sirven para customizar o particularizar algunas características del mismo, acorde a lo que
sus usuarios prefieran.
Aquí aparece el primero. En cada sistema operativo se asigna un tiempo máximo para
una ejecución continua de un proceso. Esto se define para que un programa orientado a
proceso (uso continuo de CPU – procesos de índole matemática 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.
EVOLUCION DE UN PROCESO:
Esquema de 8 estados:
1) Running : El programa se está ejecutando
2) ready: El programa solo espera memoria para ser
ejecutado
3) Bloqueado: El programa espera un entrada o salida
4) Suspendido: El programa fue desalojado de memoria
5) new: El programa ha solicitado su entrada para ser
procesado
6) exit. : El programa ha finalizado y se genera una
interrupción.
7) Bloqueado suspendido El programa estaba bloqueado y fue
desalojado de MP (swapping)
8) LISTO-suspendido El programa pide ser ejecutado, se crea su PCB
pero no hay memoria asignable
PAGINA 32 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
ne
Admitio
w Admitio
Dispatc
her release
Ready/
suspen Ready Running Exit
d
T.Out
Ocurrio Ocurrio
evento evento Espera
evento
Susp
Un proceso es bloqueado cuando espera un evento (e/s), cuando tiene una interrupción
privilegiada, cuando espera que un hijo termine su proceso. En este estado hay distintas
colas de almacenamiento: por eventos y por dispositivo.
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 están realizando y así poder regular el balanceo
entre los procesos.
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).
8. Varios a exit: normalmente los procesos terminan mientras están ejecutándose, 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 ejecución, aparece una sentencia de E/S o espera
una instrucción privilegiada, pasa a Espera o Blocked para que dicho evento esperado, se
cumpla.
PAGINA 34 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Memori P1 P2 Pn
a Virtual
recursos
Utilización de recursos en un instante dado. Una línea con punta indica el uso del recurso.
Una línea sin punta indica que el recurso al que apunta, no se está utilizando.
El proceso 1 está en ejecución
El proceso 2 está bloqueado
El proceso n está suspendido
PAGINA 35 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
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 información necesaria. Para facilitar su
manejo, se usa la ID provista por el Sistema Operativo como índice.
PLANIFICACION DE PROCESOS
Dentro del tratamiento de procesos, se ejecutan en modo kernel las siguientes funciones:
Existen tres niveles de planificación:
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 próxima recarga
Planificador corto plazo de ready a running, se selecciona para la inmediata
ejecucion dentro de los disponibles.
En esta estructuración, subyacen dos criterios:
uno orientado al usuario para obtener una respuesta rápida. Es bueno para los
sistemas en línea 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 ejecución
PAGINA 37 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Las políticas preemptivas generan más overhead pero mejoran la respuesta y evitan
monopolio.
P1 P2 P3
--------------------------------------------------------]--------------]---------]
0 24 27 30
promedio de espera (0 + 24 + 27)/ 3 17
P2 P3 P1
-------]-------]--------------------------------------------------]
0 3 6 30
promedio de espera (0 + 3 + 6)/ 3 3
PAGINA 38 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
P4 P1 P3 P2
-------]-------]---------------------------]-----------------------]
0 3 9 16 24
tiempo medio de espera (3 + 16 + 9 + 0) / 4 = 28/4 = 7 mseg
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
ROUND ROBIN
PAGINA 39 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
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
Serial
En los años 1950, los sistemas Operativos no existían. 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 ejecución: 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 debía hacerse cargo
de su costo aunque no utilizase todo el periodo reservado. (Block time)
Nacen lectoras más potentes, cintas magnéticas e impresoras en línea. En línea, significa
que la orden de imprimir se cumplía inmediatamente, pues el dispositivo estaba integrado
a la computadora.
PAGINA 40 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Batch Simple
Promediando los años 50 IBM saco un equipo 704/7090-7094 con un sistema operativo
innovativo. La idea provino NUEVAMENTE, de la observación 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 algún flujo continuo a esta tarea, de modo que a la finalización de un
programa pudiese seguir automáticamente el siguiente programa.
Se trato de definir un secuenciador automático. Para ello se creó un programa llamado
MONITOR: su característica es que daba lugar al primer sistema Operativo de programa
almacenado y era de residencia permanente en memoria. Por ello al Monitor también se lo
llama Residente.
Para ello se diseño un lenguaje especifico del Sistema Operativo: JCL (Job Control
Language) que permitió la intercepción de los comandos específicos y se especializo en
decodificarlos y ejecutarlos o sea, proceder en base a la aparición de tarjetas
pertenecientes a dicho lenguaje. Esto permitió una revolución de eficiencia y disminución
de los tiempos muertos.
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 detrás 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.
PAGINA 41 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Solo había monoprogramación. Por ello se llama Sistema Operativo Batch Simple. El
JCL nacido para procesos batch, seguramente puede ser reconocido en las sentencias de
extensión bat que se usan en DOS y en la opción Ejecutar de Windows, por ejemplo.
(bat viene de la palabra batch)
Drivers
Monitor
Secuenciados de trabajos o jobs Residente
MEMORIA LIBRE
DISPONIBLE PARA
PROGRAMAS DEL
USUARIO
PAGINA 42 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Batch Multiprogramado
Mejoro el secuenciamiento de procesos, pero AUN CON MUCHOS tiempos muertos.
Aparece el disco magnético, 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 planificación/prioridades
La protección no solo de memoria: de archivos, de impresora, para compartirlos entre
varios usuarios.
p1
p2 Memoria del
usuario
p3
Sistemas Distribuidos
PAGINA 43 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Confiabilidad.
Si un sitio de un sistema distribuido falla, los sitios restantes podrían seguir funcionando.
Si el sistema se compone de varias instalaciones autónomas grandes (es decir,
computadoras de propósito general) el fallo de uno no deberá afectar a los demás. Por
otro lado, si el sistema se distribuye en varias máquinas pequeñas, cada una de las cuales
se encarga de alguna función crucial del sistema (como la E/S de caracteres de las
terminales, o el sistema de archivos), un solo fallo podría detener todo el sistema. Es una
especialización.
En general, si existe suficiente redundancia (datos demás para poder reconstruirlos en
caso de falla de algún dispositivo) en el sistema (tanto de hardware como de datos), este
puede continuar con su operación, incluso si algunos de sus sitios han fallado.
Comunicación.
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 están
conectados a través de una red de comunicaciones los procesos de diferentes sitios
tienen la oportunidad de intercambiar información. Los usuarios podrían iniciar
transferencias de archivos o comunicarse entre sí por correo electrónico. Un usuario
puede enviar correo a otro en el mismo sitio o en uno distinto.
PAGINA 44 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Los sensores envían 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 científicos, los que producen imágenes
médicas, los de control industrial y algunos sistemas de exhibición son sistemas de tiempo
real y de control de actividad de una represa. Esta clasificación también incluye algunos
sistemas de inyección de combustible para motores de automóviles, controladores de
aparatos domésticos y sistemas de armamentos. Un sistema operativo de tiempo real
tiene restricciones de tiempo fijas bien definidas.
Hay dos tipos de sistemas de tiempo real. Un sistema de tiempo real duro garantiza que
las tareas críticas se terminaran a tiempo.
Este objetivo requiere que los retardos del sistema estén limitados, desde la obtención 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
están 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 sólo de lectura (ROM, read-only memory). La ROM
se encuentra en dispositivos de almacenamiento no volátil que conservan su contenido
aun en caso de fallar el suministro de electricidad; casi todos los demás tipos de memoria
son volátiles.
También está ausente la mayor parte de las funciones avanzadas de los sistemas
operativos, ya que tienden a separar al usuario aún más del hardware, y tal separación
causa incertidumbre acerca del tiempo que una operación tarda. Por ejemplo, los
sistemas de tiempo real casi nunca tienen memoria virtual (que estudiaremos más
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 crítica 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
núcleo.
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 más
limitada que los duros. En vista de que no apoyan el cumplimento estricto de plazos, es
PAGINA 45 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
riesgoso utilizarlos en control industrial y robótica, aunque hay varias áreas en las que
pueden ser útiles, como multimedia, realidad virtual y proyectos científicos avanzados
como la exploración submarina y planetaria.
Ejemplo: Ktetsibios de Alejandría (250 a.c.) construyó la primer máquina auto controlada:
un reloj de agua con un regulador que mantenía el flujo de agua circulando por él, con un
ritmo constante y predecible. Esta invención cambió la definición de lo que un artefacto
podía hacer. Anteriormente. solamente seres vivo podían modificar su comportamiento
como respuesta a cambios en su entorno.
Time Sharing
En un tiempo en que un equipo de computación era tan caro, pocas eran las
organizaciones que pudieran contar con dicho equipamiento. Pero el interés económico
(anunciado en el primero de estos apuntes) hizo pensar a los fabricantes de computadora,
en algún mecanismo que facilitara el acercamiento de usuarios necesidades de las
funciones de cálculo. Por ello se creó el S.O. de Tiempo compartido o Time Sharing.
Varios usuarios podían 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.
PAGINA 46 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 47 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
bugs permanentes: es muy común utilizar al usuario como tester de un producto que,
por su naturaleza debería asegurar tu calidad y correcto funcionamiento
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 módulos inferiores, conectados con el hardware, trabajan a niveles de billonésimas de
segundo. Las superiores, trabajan a nivel del usuario, mucho más lento.
programa de aplicación
controladores de dispositivos
del DOS
controladores de dispositivos
PAGINA 48 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
controladores de dispositivos
MICRONUCLEO
Pongamos en el núcleo SOLO las funciones esenciales. Dicha parte del SO pasa a
llamarse: micronucleo
Los otros servicios van fuera del Micronúcleo y funcionan en modo Usuario.
De allí surgen los servicios y el concepto de SERVIDORES para diferentes procesos
Intercambiador de mensajes
Concede acceso al HW
Solo deja pasar mensajes permitidos (mejor defensa ante virus)
PAGINA 49 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
O
Usuarios-Modo Procesos cliente
D usu
O
Server. De
Sist. De ficheros ficheros
U
Comunicación Server de
C entre procesos procesos y
seguridad
L
Gestión de E/S y
E dispositivos MV
O
MV Todo modo
usuario
HARDWARE HARDWARE
PERMITE
PAGINA 50 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Resumen
Finalmente, los SO deberían poder garantizar
Ante la pronunciada baja del costo del Hardware y la paralela evolución de los
procesadores, se llegó a la conclusión de que ya no sería 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
más exigentes necesidades de procesamiento.
PAGINA 51 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Procesadores
Paralelos
SIMD MIMD
1-Maestro-Esclavo. En
Maestro-Núcleo. En esclavo: CLUSTERS o multicomputador
usuario
2- SMP
1 - MAESTRO ESCLAVO
PAGINA 52 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
CACHE CACHE
Cache Cache
de disco de disco
B U S Compartido
Adaptador de E/S
Adaptador de E/S
Una cache por procesador. Da mucha más 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í.
PAGINA 53 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
MULTIHILOS-MULTITHREADING
Hasta ahora un proceso tenía una unidad conceptual de propiedad de recursos y una
unidad conceptual de ejecución o planificación.
imagen
Direcciones virtuales
Datos
Pila
PCB
Archivos,
El SO los provee y da
dispositivos
protección 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 vinculación
con sus archivos. Este conjunto de recursos es propiedad del proceso y el sistema
operativo da protección a estos recursos compartidos.
2) Cada proceso tiene además una unidad de Ejecución / Planificación intercalado con
programas del SO que lo hacen ejecutar. El SO hace pasaje de estado de usuario a
supervisor y planifica la ejecución de los procesos por prioridad y por orden de llegada
Con la introducción del concepto de MULTIHILO, se pasa a otro paradigma a partir del
cual cada proceso puede tener varios hilos de ejecución. Cada hilo es una unidad activa o
thread o proceso ligero.
Cada hilo tendrá:
un estado de ejecución (ready, blocked, running, etc)
Una PCB
Una pila de ejecución
Espacio de almacenamiento para variables locales
Acceso a la memoria compartida con los otros hilos de un mismo proceso
PAGINA 54 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Espacio de Pila de
direcciones núcleo para
de Usuario llamadas y
retornos
En un entorno de Multihilo se presenta el siguiente esquema
Pila Pila
c Usuario Usuario
o
Espacio de m
direcciones p
del Usuario a
Pila Pila
r
Núcleo Núcleo
t
e
n
PAGINA 55 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
BENEFICIOS:
se crea más rápido 1 hilo que un proceso,
lleva menos tiempo la finalización de un hilo,
mejora la comunicación entre hilos pues no necesita al núcleo como intermediario
como en otros sistemas operativos donde los programas se comunican
Comparten memoria
Se puede realizar procesamiento paralelo e independiente
Los Hilos pueden pasar por estos estados propios. Running Ready Blocked.
BENEFICIOS:
PROCESO EN PARALELO. Similar a MULTIPROGRAMACION
Al compartir espacio de direcciones y archivos todos los hilos pueden accederlos. Se hace
necesario tomar ciertos recaudos para que no se corrompan. Por ejemplo, si dos hilos
quieren simultáneamente modificar elementos de una lista. La sincronización que debe
hacerse exige cierto OVERHEAD
PAGINA 56 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
IMPLEMENTACION DE HILOS
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 núcleo, se bloquea todo el proceso.
Se pueden ejecutar en diferentes Sistemas Operativos.
PAGINA 57 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
Windows
HILOS
Biblioteca
HILOS
Espacio del
usuario
NUCLEO P
ULT K LT Puro
PAGINA 58 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 59 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
incluso forzando swapping aun cuando el swapping no sea necesario. Sugiera una política intermedia para
balancear performance.
30. Un proceso pasa del estado “ejecutando” a “bloqueado” por time out. V o F. Justifique.
31. En los procesos, explicar las transiciones de Running a Ready y de Blocked a Ready.
32. Explique las partes constitutivas de una instrucción (estructura), su uso, su ocupación de memoria.
33. Funciones básicas de un sistema operativo, objetivos y servicios que brinda
34. Describir un sistema de procesamiento serial.
35. 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.
36. Explicar los conceptos de monoprogramación, multiprogramación y multiprocesamiento
37. Explicar los distintos tipos de estructuras que pueden tener los sistemas operativos
38. Describir el recorrido de una orden dada al Sistema Operativo
39. Describir en forma novelada el funcionamiento de un SO por Time Sharing, describiendo las estructuras de
información que utiliza.
40. Explicar la diferencia entre un sistema operativo con multiprocesamiento y un sistema distribuido
41. que es un sistema operativo en tiempo real, cuando es útil usarlo?
42. Que aprovechamientos se intentaron implementar al definir multiprogramación.
43. Explicar la técnica de spooling. Motivo por el cual se desarrolló. En qué mejoró el rendimiento
44. Cuál es el principal problema que resuelve la multiprogramación? Aporte un mismo ejemplo contando con MP y
sin contar con ella.
45. 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.
46. Explicar la estructura jerárquica de un sistema operativo. Cuál es la diferencia con la estructura monolítica.
Explique la estructura por capas, como cliente-servidor.
47. Explique modo de usuario, modo de monitor. Explique porque la distinción entre ambos permite un tratamiento
de seguridad o protección
48. Una computadora esta conformada básicamente, por 4 elementos: Procesador, Memoria Principal, módulos de
E/S, bus del sistema. Describa como se vinculan estos elementos, desde el punto de vista de un sistema
operativo.
49. 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.
50. Que es un spooler? Descripción breve y precisa. Cuantos tipos de spooler conoce? Considere
particularmente un spooler de impresión. Explique las posibilidades de administración de listados que brinda.
Beneficios que aporta.
51. ¿En que circunstancias le convendría mas a un usuario utilizar un sistema de tiempo compartido en lugar de
un computador personal o una estación de trabajo monousuario? El interés 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)
52. que es un driver? Ud. la consideraría como parte del sistema operativo?
53. Un editor, forma parte del sistema operativo? Cómo lo considera usted?
54. Cual es el concepto de protección, en un S.O. y para cuales recursos se aplica.
55. Cuales de las siguientes instrucciones deberían ser privilegiadas: leer el reloj, borrar la memoria, desactivar las
interrupciones cambiar de modo de usuario de usuario a monitor
56. Defina las propiedades esenciales de los siguientes tipos de sistemas operativos:
Por lotes; batch; Interactivos; tiempo compartido; De tiempo real; Distribuidos
57. 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)
58. Explicar los algoritmos de planificación del procesador que involucran el tiempo de ejecución de los procesos
como factor decisivo.
59. Que significa que un algoritmo de planificación sea apropiativo o no apropiativo?. Clasificar los distintos
algoritmos según sean apropiativos o no apropiativos.
60. Grafique el comportamiento de una computadora ante la necesidad de una solicitud de entrada o salida de
datos
a) en un entorno de monoprogramación
b) en un entorno de multiprogramación
61. Que es el Job Control Language (lenguaje de comandos)? ¡Para que se lo utiliza?
62. Describa las tareas previas que la CPU debe realizar para que el proceso este en condiciones de ser ejecutado
y justifique la elección de pasarlo directamente a READY/SUSPEND y no a READY.
63. Describa si hay un evento único o varios encadenados (y su orden de ocurrencia) para que pueda ocurrir la
transición Running ===== blocked/suspended,
64. Un determinado programa PEPE esta en el estado BLOCKED/SUSPENDED. Hay una cola no vacía de
procesos READY/SUSPENDED. Justifique la razón por la cual el S.O. habilite al PEPE para su ejecución.
¿qué significa “habilitar” al programa para su ejecución, dado el estado en que se encuentra?
PAGINA 60 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
65. Describa el método Round-Robin, utilizado en un sistema Operativo por Time Sharing. Cuáles problema
resolvió su aparición. Proponga incorporar algún mecanismo para optimizar su funcionamiento y dar mejores
servicios a sus usuarios.
66. Qué es la computación 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 definición 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. Características que deben tener los programas reubicables y los reentrantes.
74. Facilidades o crecimientos que brinda la estructura de Micronúcleo en un S.O.
75. Defina el significado de cambio de contexto. Lugar donde se guarda la información propia de un cambio de
contexto
76. si hay un proceso en estado Ready suspended y otro en ready, cuál criterio puede considerar para elegir al
suspendido y cual criterio para elegir al ready para pasarlo a Running.
77. En cuales estados usted podría definir colas de espera. Defina los criterios con que justifica su definición
78. Que es un quantum en una planificación Round Robin? Como se determina? ¿qué cambia en la planificación 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 vincularía la utilización del Job Control Language con el concepto del Monitor Residente, en un sistema
Operativo Batch
81. Sistemas Distribuidos: diferencia conceptual y de implementación entre un cluster de computadoras y la
organización Maestro/Esclavo.
82. Explique el concepto de multihilo o multithreading y cuál es el avance conceptual con respecto a los procesos
existentes con anterioridad.
83. Explicar el algoritmo de planificación con prioridades y de colas múltiples. 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 micronúcleo.
86. Como se comunican las computadoras que forman un Cluster
87. Cómo se comunican los procesadores que forman un SMP.
88. Si se le pregunta por lo que debe brindar un sistema operativo explique los siguientes términos
Equidad , Eficacia
89. Si se le pregunta por lo que debería bridar un sistema operativo explique los siguientes términos: 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)
26)Las prioridades pueden ser estáticas o dinámicas según 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 estáticas o dinámicas.
28)
29)Un proceso en estado inactivo se encuentra alojado en memoria principal, mientras
que uno activo estará en memoria secundaria (disco rígido)
30)Un proceso por lotes (batch) consiste en ir solicitando la ejecución de procesos que
no requieren conversación 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
interrupción de su ejecución y la localización de esa información 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 cuál 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 situación es transparente al usuario.
35)Un proceso en estado de ejecución tiene el control del procesador, mientras que
uno bloqueado, se diferencia del anterior únicamente porque no lo tiene
36)Un proceso en estado de ejecución 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 ejecución
39)Son varias las causas por las que se crea un proceso, entre ellas la conexión 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 conexión 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 ejecución, puesto que se
suspende siempre que está a la espera de algún suceso
42)Un proceso bloqueado no está disponible para su ejecución, 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 rígido).
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 máquina
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 ejecución
e. Ninguna de las anteriores
2. Servicios de un Sistema Operativo
a. Usos específicos tipificados de los recursos que brinda el hardware
b. Conjunto de facilidades que brinda un sistema operativo
c. Administración 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
ejecución
b. Programa del usuario almacenado en disco
c. Programa del usuario almacenado en memoria
d. Ejecución 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 instrucción próxima a ejecutarse
d. Guarda un puntero a la memoria de la instrucción que se esta analizando
e. Guarda un puntero a la memoria de la instrucción 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
PAGINA 65 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 66 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
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
suspensión
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. Suspensión
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 reincorporación
e. Implica el proceso de swapping
25. Cola de procesos en estado blocked
a. Se ordenan por tiempo de llegada (definición de cola)
b. Se ordenan por tiempo de llegada (definición de cola) y por dispositivo
c. Se ordenan por dispositivo para una búsqueda mas rápida
d. Todas las anteriores
26. Batch
a. Se refiere a lotes de programas
b. Tipo de SO nacido para automatizar la ejecución secuencial de
programas
PAGINA 67 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 68 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 69 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
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 están ejecutando
e. Las PCB´s de los programas de usuario varían de tamaño
41. El P.C.B.
a. Es una estructura de datos del SO que le permite gestionar los procesos
b. Se agrega al código de un proceso cuando entra en ejecución
c. Contiene los datos con que se está ejecutando el programa
d. Ninguna de las anteriores
42. Para que un proceso pase de listo a ejecución (ready a running):
a. Entre otras cosas se carga en el RPI la dirección de la instrucción
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 selección para elegirlo
entre los procesos “vivos” en el sistema
d. Ninguna de las anteriores
43. Los algoritmos de planificación 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
PAGINA 70 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 71 DE 71