Académique Documents
Professionnel Documents
Culture Documents
Alberto Rozenfarb
Primer Modulo
PAGINA 1 DE 70
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................................................................8
CONCEPTO DE PROGRAMA ALMACENADO.....................................................................9
Algunos componentes de la CPU........................................................................................10
Descripcin de los registros usados por un programa........................................................10
Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II........................................11
Descripcin del procesamiento de un programa.................................................................12
Ciclo de instruccin:..........................................................................................................13
Ciclo de ejecucin:............................................................................................................13
Ciclo de interrupcin:........................................................................................................13
Interrupciones.......................................................................................................................13
Stack.................................................................................................................................13
Punto de Retorno..............................................................................................................14
Problemas inherentes a la Multiprogramacin.................................................................15
Cambio de contexto..........................................................................................................15
Interrupcin.......................................................................................................................16
Atencin de una interrupcin:...........................................................................................17
Resumen paso a paso......................................................................................................17
Motivos de Interrupciones................................................................................................18
Jerarquas de memoria........................................................................................................18
Principio de localizacin.......................................................................................................18
Memoria Cache....................................................................................................................19
Ejemplo del funcionamiento de una memoria Cache.......................................................20
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):................................................................21
Proteccin de Recursos Compartidos:.................................................................................21
DESARROLLO DE PROGRAMAS...................................................................................22
EJECUCION DE PROGRAMAS......................................................................................22
ACCESO A DISPOSITIVOS DE E/S................................................................................22
ACCESO CONTROLADO A LOS ARCHIVOS.................................................................22
ACCESO AL SISTEMA.....................................................................................................22
DETECCION DE ERRORES Y RESPUESTA..................................................................23
CONTABILIDAD................................................................................................................23
DISEO JERRQUICO GENRICO DE UN SISTEMA OPERATIVO:...........................23
SPOOLING.......................................................................................................................24
Multiprogramacin:...............................................................................................................25
Necesidad de definir procesos.............................................................................................25
PROCESOS.........................................................................................................................25
PCB (Process Control Block)...........................................................................................26
ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK................................27
Identificacin de Procesos................................................................................................27
PAGINA 2 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 3 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
INTRODUCCIN
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.
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.
Caja Negra
datos 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.
PAGINA 4 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
disco cinta
Memoria driver
PAGINA 5 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
PAGINA 6 DE 70
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.
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.
PAGINA 7 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 8 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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).
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.
PAGINA 9 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 10 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
REGISTRO DE INSTRUCCION:
El registro de instruccin permite albergar cada instruccin tomada desde la memoria. El
sistema operativo separa el cdigo de operacin de los operndoos para luego analizar
(ver Descripcin del procesamiento de un programa)
BASE POINTER Es un puntero, que contiene la direccin donde comienza la pila que
administrara los datos del proceso y que participara en los retornos a direcciones que
originaron un determinado proceso.
REGISTROS DE USO GENERAL Son los registros de CPU que albergan datos o
direcciones como resultado de la ejecucin de las instrucciones u rdenes que integran el
programa en uso.
PSW (Program Status Word) es un registro de estado: es un conjunto de bits cada uno
de los cuales tiene un significado determinado.
Modo privilegiado protegido se pueden ejecutar todas las instrucciones de
mquina y todas las direcciones de memoria son accesibles.
Modo no privilegiado o modo usuario: algunas instrucciones (privilegiadas) no se
pueden utilizar. Adems inhibe el acceso a ciertas direcciones de memoria. A estas
instrucciones y/o memoria, se puede acceder a travs de la versin compilada de
un programa, debido al acuerdo existente entre el desarrollador del compilador y el
fabricante del CPU utilizado.
Prioridad para tratamiento de interrupciones. Est vinculado con la aceptacin o no
de las interrupciones. Si la interrupcin es de mayor prioridad a la de la CPU, es
aceptada. En caso contrario la deja en espera hasta que lo permitan las
condiciones de prioridad.
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.
Bits de control
AC (Alignement Check) alineacin o no alineacin a entorno de doble palabra
ID (Identification flag) hay procesadores que soportan (y este bit es para habilitarla o no) informacin del
fabricante, familia y modelo de computadora
PAGINA 11 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.)
Cdigo operando/s
PAGINA 12 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Ciclo de instruccin:
El procesador consulta al RPI. Su contenido apunta al lugar de memoria donde se
encuentra la prxima instruccin a procesarse.
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
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
PAGINA 13 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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 Programa Proc1 Programa Proc2
Posicion inicial 4000 Posicion Inicial Posicion Inicial
4500 4800
4000 4500 4800
4600 Call Proc2
4100 Call Proc1
fin Return
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.
PAGINA 14 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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.
PAGINA 15 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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.
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.
PAGINA 16 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 17 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Restaura valores dejados en el stack por el cambio de contexto inverso al ocurrido en (*),
para volver a las condiciones de ejecucin del programa A
El programa A sigue su procesamiento.
Motivos de Interrupciones.
Reloj (timer) que produce el time out
Entrada/Salida finalizacin normal o con el problema ocurrido, de una
operacin de E/S
Falla de algn dispositivo (fuente de poder, memoria, etc)
Programa (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).
Disco magntico
CD (disco ptico) No voltiles
DVD
Punto b) Cintas magnticas
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.
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.
PAGINA 18 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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.
Transfiere Transfiere
una un bloque
instruccin de
instruccion
es
PAGINA 19 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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.
PAGINA 20 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
PAGINA 21 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Contador
de datos
Registros de
dirrecciones
Lineas de direcciones
Interrupcion
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.
PAGINA 22 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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 logica del
DMA puede ser parte del modulo de E/S o puede controlar uno o mas modulos de E/S
integrndolos
E/S E /S
3. 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
configuracn 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
modulos del DMA y la E/S tienen lugar fuera del bus del sistema
E/S E /S
PAGINA 23 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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 70
Sistemas Operativos Prof. Alberto Rozenfarb
ACCESO AL SISTEMA
En caso de ser un sistema pblico y compartido, proveer mecanismos de control de acceso
global y particular de determinados recursos. Debe proveer proteccin de usuarios y accesos
indebidos o no autorizados y evitar conflictos por retencin de recursos.
CONTABILIDAD
El creciente involucramiento del uso de una computadora en todas las reas de una empresa,
asociado al costo de su mantenimiento y de la incorporacin de nuevos dispositivos y software, as
como el de especialistas, dio lugar a la necesidad de controlar dichas inversiones y
particularmente del uso de sus recursos. Un buen sistema operativo colecciona informacin sobre
el uso de sus recursos y los acumula para su posterior anlisis. Muchas veces se utiliza esta
informacin con fines de auditora y facturacin intersectorial.
Nivel Contenido
1 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.
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
instrucciones. El resultado de toda compilacin estar conformado por instrucciones
pertenecientes a este grupo.
3 Llamado a subrutina y retorno, manejo de stack (pop y push). Esquema clsico para
registrar los cambios de contexto en el caso de interrupciones.
4 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 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.
PAGINA 25 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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
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).
PAGINA 26 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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.
PAGINA 28 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Identificacin de Procesos
Identificacin de un proceso comn
Identificacin de un proceso generado por un padre
Identificacin de usuario
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.
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.
PAGINA 29 DE 70
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 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
PAGINA 31 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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
interrupcin.
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
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 interrupcin
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
PAGINA 32 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 33 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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 70
Sistemas Operativos Prof. Alberto Rozenfarb
Memoria P1 P2 Pn
Virtual
recursos
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 70
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.
PLANIFICACION DE PROCESOS
Dentro del tratamiento de procesos, se ejecutan en modo kernel las siguientes funciones:
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.
PAGINA 36 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 37 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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
P4 P1 P3 P2
-------]-------]---------------------------]-----------------------]
0 3 9 16 24
tiempo medio de espera (3 + 16 + 9 + 0) / 4 = 28/4 = 7 mseg
PAGINA 38 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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
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 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)
PAGINA 39 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
PAGINA 40 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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)
PAGINA 41 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Vector Interrupciones
Drivers
Monitor
Secuenciados de trabajos o jobs Residente
MEMORIA LIBRE
DISPONIBLE PARA
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.
PAGINA 42 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
p1
p2 Memoria del
usuario
p3
Sistemas Distribuidos
PAGINA 43 DE 70
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.
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 44 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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.
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
(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
PAGINA 45 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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 70
Sistemas Operativos Prof. Alberto Rozenfarb
bugs permanentes: es muy comn utilizar al usuario como tester de un producto que,
por su naturaleza debera 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 mdulos inferiores, conectados con el hardware, trabajan a niveles de billonsimas de
segundo. Las superiores, trabajan a nivel del usuario, mucho ms lento.
programa de aplicacin
controladores de dispositivos
del DOS
controladores de dispositivos
PAGINA 47 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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
Intercambiador de mensajes
Concede acceso al HW
Solo deja pasar mensajes permitidos (mejor defensa ante virus)
PAGINA 48 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
O
Usuarios-Modo Procesos cliente
D usu
O
Server. De
Sist. De ficheros ficheros
U
Comunicacin Server de
C entre procesos procesos y
seguridad
L
Gestin de E/S y
E dispositivos MV
O
MV Todo modo
usuario
HARDWARE HARDWARE
PERMITE
PAGINA 49 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Resumen
Finalmente, los SO deberan poder garantizar
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.
PAGINA 50 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Procesadores
Paralelos
SIMD MIMD
1-Maestro-Esclavo. En
Maestro-Ncleo. En esclavo: CLUSTERS o multicomputador
usuario
2- SMP
1 - MAESTRO ESCLAVO
PAGINA 51 DE 70
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 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.
PAGINA 52 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
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
PAGINA 53 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Espacio de Pila de
direcciones ncleo 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
Ncleo Ncleo
t
e
n
PAGINA 54 DE 70
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
Los Hilos pueden pasar por estos estados propios. Running Ready Blocked.
BENEFICIOS:
PROCESO EN PARALELO. Similar a MULTIPROGRAMACION
Al compartir espacio de direcciones y archivos todos los hilos pueden accederlos. Se hace
necesario tomar ciertos recaudos para que no se corrompan. Por ejemplo, si dos hilos
quieren simultneamente modificar elementos de una lista. La sincronizacin que debe
hacerse exige cierto OVERHEAD
PAGINA 55 DE 70
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 ncleo, se bloquea todo el proceso.
Se pueden ejecutar en diferentes Sistemas Operativos.
PAGINA 56 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
Windows
HILOS
Biblioteca
HILOS
Espacio del
usuario
NUCLEO P
ULT K LT Puro
PAGINA 57 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 58 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
incluso forzando swapping aun cuando el swapping no sea necesario. Sugiera una poltica 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 instruccin (estructura), su uso, su ocupacin de memoria.
33. Funciones bsicas 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 monoprogramacin, multiprogramacin 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
informacin 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 multiprogramacin.
43. Explicar la tcnica de spooling. Motivo por el cual se desarroll. En qu mejor el rendimiento
44. Cul es el principal problema que resuelve la multiprogramacin? 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 jerrquica de un sistema operativo. Cul es la diferencia con la estructura monoltica.
Explique la estructura por capas, como cliente-servidor.
47. Explique modo de usuario, modo de monitor. Explique porque la distincin entre ambos permite un tratamiento
de seguridad o proteccin
48. 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.
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? 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.
51. 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)
52. que es un driver? Ud. la considerara como parte del sistema operativo?
53. Un editor, forma parte del sistema operativo? Cmo lo considera usted?
54. Cual es el concepto de proteccin, en un S.O. y para cuales recursos se aplica.
55. 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
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 planificacin del procesador que involucran el tiempo de ejecucin de los procesos
como factor decisivo.
59. Que significa que un algoritmo de planificacin sea apropiativo o no apropiativo?. Clasificar los distintos
algoritmos segn 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 monoprogramacin
b) en un entorno de multiprogramacin
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 eleccin 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
transicin Running ===== blocked/suspended,
64. 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 59 DE 70
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 60 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
TRABAJO PRACTICO I
Multiple Choice (Verdadero o Falso)
26)Las prioridades pueden ser estticas o dinmicas segn sean asignadas por el
sistema operativo o por el propietario del proceso
PAGINA 61 DE 70
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 62 DE 70
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 63 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 64 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 65 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 66 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 67 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 68 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
c. Es un lenguaje de programacin
d. Ninguna de las anteriores
41. Un 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. Ninguna de las anteriores
42. El PCB
a. Es una estructura de datos del SO que le permite gestionar los procesos
b. Se agrega al cdigo de un proceso cuando entra en ejecucin
c. Contiene los datos con que se est ejecutando el programa
d. Ninguna de las anteriores
43. Para que un proceso pase de listo a ejecucin:
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
44. 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
PAGINA 69 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb
PAGINA 70 DE 70