Vous êtes sur la page 1sur 70

Sistemas Operativos Prof.

Alberto Rozenfarb

ARQUITECTURA Y SISTEMAS OPERATIVOS

Primer Modulo

Prof. Alberto ROZENFARB

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

Informacin del estado del procesador............................................................................27


Informacin de control de procesos.................................................................................27
ESTADOS DE UN PROCESO:............................................................................................27
Diagrama general de estados (estructura de dos estados):............................................28
Time Out...........................................................................................................................28
Motivos de finalizacin de un proceso:............................................................................29
EVOLUCION DE UN PROCESO:....................................................................................29
Esquema de 8 estados:................................................................................................29
Transiciones De Estados De Un Proceso.....................................................................31
Suspensin (que genera swapping).............................................................................32
Reingreso de un programa a proceso..........................................................................32
Descripcin esquemtica de procesos.........................................................................32
Implementacin de las colas.........................................................................................33
REPRESENTACION DE UN PROCESO EN MEMORIA.............................................34
PLANIFICACION DE CORTO PLAZO - DISPATCHER.........................................35
Polticas de Administracin del Procesador.....................................................................35
SJF Shortest Job First................................................................................................36
Planificacin por prioridad.............................................................................................36
ROUND ROBIN.............................................................................................................37
Evolucin de los Sistemas Operativos.................................................................................37
Serial.................................................................................................................................37
Batch Simple.....................................................................................................................38
Batch Multiprogramado.....................................................................................................40
Razones para su uso........................................................................................................41
Recursos Compartidos.................................................................................................41
Computacin ms rpida..............................................................................................42
Confiabilidad.................................................................................................................42
Comunicacin...............................................................................................................42
Comparacin entre un Batch Multiprogramado y un Time Sharing..............................44
Miscelneas sobre Sistemas Operativos.........................................................................44
ESTRUCTURA DE CAPAS SIMPLES..........................................................................45
ESTRUCTURA DE CAPAS ENCAPSULADAS (Windows NT 4.0)..............................46
MULTIHILOS-MULTITHREADING.......................................................................................51
OPERACIONES CON HILOS..........................................................................................53
BENEFICIOS:...................................................................................................................53
IMPLEMENTACION DE HILOS........................................................................................54
ULT Hilos a nivel de usuario........................................................................................54
KLT HILOS A NIVEL KERNEL (NUCLEO)................................................................54
PREGUNTAS SOBRE SISTEMAS OPERATIVOS.............................................................56
TRABAJO PRACTICO I.......................................................................................................59
TRABAJO PRACTICO II......................................................................................................62
Significado de palabras clave..............................................................................................69

PAGINA 3 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

INTRODUCCIN

Con el afn de ubicar al contenido de nuestra materia vinculado al funcionamiento de un


Sistema de Computacin, sugiero posicionarse frente a dicho sistema y pensar
conceptualmente, acerca de su probable estructura y servicios que brinda.

Una posible visin elemental o primitiva, es la de una caja negra, de la cual no conocemos
su funcionamiento. Solo conocemos que nos permite hacer clculos, guardar informacin
para una posterior elaboracin, entregarnos informacin elaborada, es decir podemos
observar, que est compuesto por un conjunto de dispositivos cada uno con una funcin
especfica, vinculados con una cierta lgica y conectados por un cableado, trabajando de
manera coordinada. Esa coordinacin nos la da el Sistema Operativo por lo que
representa para el usuario, un cierto nivel de abstraccin: este reconoce su existencia sin
conocer su estructura interna.

Los programas de aplicacin desarrollados por el usuario, son un nuevo nivel de


abstraccin, una solucin para un problema especifico.

El concepto de Caja negra no tiene que ver con el dispositivo utilizado en los aviones,
cuya funcin es la de registrar ciertos eventos que ocurren en el aeroplano y/o los
dilogos entre pilotos y la base. Se vincula con el concepto siguiente: se desconoce su
funcionamiento interior. Podemos decir que est encapsulado. Sabemos que, como
toda mquina, recibe una determinada materia prima y entrega un material elaborado
llamado informacin, que el usuario recibe y podr usar apropiadamente.

Materia prima Producto elaborado

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

Como cualquier maquina, tiene ciertas habilidades o funciones, aseguradas y entregadas


por su fabricante. Estas pueden ser invocadas por rdenes especficas (llamadas
instrucciones), que conforman el lenguaje de mquina. Estn implantadas en el
hardware de la maquina, variando su tipo y cantidad segn el modelo y el fabricante.
La mayora de dichas habilidades, sirven para trasladar datos de un dispositivo a otro,
albergar resultados intermedios, hacer operaciones matemticas, comparar valores (se
hace por medio de una resta entre ambos), etc.

Para poder acceder a esas habilidades, es necesario un mecanismo intermediador que


nos permita encargar la ejecucin de cualquiera de esas habilidades elementales, con el

PAGINA 4 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

objetivo de resolver un problema determinado. Un conjunto ordenado de habilidades


que resuelven un problema especfico, se llama programa. Dicho mediador
funcionar interpretando las rdenes, trasladndola al dispositivo correspondiente para su
ejecucin o cumplimiento y contando adems, con mecanismos que faciliten el uso de la
computadora, el anlisis del resultado de cada ejecucin y la coordinacin de su
funcionamiento interno.

DEFINICIN DE SISTEMA OPERATIVO


Esquema estructural

disco cinta

cpu driver driver

Memoria driver

Toda computadora, puede reflejarse en esta estructura. Es un conjunto de dispositivos,


vinculados por un medio de transporte de informacin: el bus o canal., El disco, la cinta y
otros soportes similares de informacin, sirven para guardar informacin a lo largo del
tiempo. Los programas que habitualmente residen en disco, se cargan en memoria para
su ejecucin. All opera el procesador, quien elabora y ejecuta cada una a una las
instrucciones integrantes del programa en ejecucin.

Las componentes de una computadora, brindan al usuario diferentes servicios: manejo de


la memoria, ejecucin de sus programas, administracin de soportes de informacin,
detector de errores y comunicador de los mismos al usuario, flujo de informacin entre
componentes, etc. As, podramos pensar al Sistema Operativo como una herramienta
que permite alcanzar los siguientes objetivos:
facilitar del uso de una computadora;
permitir la utilizacin eficientemente de los recursos de una computadora y
compartirlos entre diferentes usuarios;
facilitar al usuario la ejecucin de las funciones de entrada/salida de datos;

PAGINA 5 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

brindar un horizonte de crecimiento en las funciones de desarrollo de programas,


testeo de sistemas e introduccin de nuevas habilidades, con la menor
interferencia con lo ya desarrollado.

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

HISTORIA
El desarrollo de los sistemas operativos fue evolucionando a lo largo del tiempo, paralelo a
la evolucin de las computadoras, a la necesidad de incorporar a mayor cantidad de
usuarios (por fines econmicos y satisfaccin de creciente demanda) y fundamentalmente
respondiendo al principio hednico aplicable a cualquier equipamiento o herramienta de
uso especifico:
Obtencin de mayores beneficios con el mnimo esfuerzo u obtencin del mismo
beneficio con el menor esfuerzo: ingenio y creatividad al servicio de un
aprovechamiento integral de las posibilidades que dicho equipamiento brindaba en
cada hito de su evolucin.

Es de hacer notar que este principio tiene una raz netamente econmica y ello podr
observarse a lo largo de toda su evolucin. El planteo fue siempre: cmo puede
optimizarse la utilizacin de mi herramienta en pos de una mayor rentabilidad, de un
usufructo ms ventajoso?
Aun sin ser riguroso y por razones didcticas, podemos entender y analizar la evolucin
de los sistemas operativos ubicndonos frente a lo que podramos considerar como la
ms primitiva maquina de calcular: el baco (ao 1000 aprox). Objetivo de su
construccin: maquina que ayude al hombre en trabajos repetitivos.

La mquina de PASCAL (1642), es un interesante reflejo de esta afirmacin. Era una


maquina de sumar, con discos dentados entrelazados entre s: cada vez que un disco
(representaba las unidades) completaba un giro (10 unidades) generaba el movimiento de
una posicin en el disco de su izquierda. El mismo criterio se aplicaba a los restantes
discos en la misma direccin. Su creador la utiliz ayudando a su padre (recaudador de
impuestos) a calcular la suma de las percepciones con fines de control.

PAGINA 6 DE 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.

Es muy importante la aparicin de la tarjeta perforada de Hollerith (1837) y de la maquina


que las leyera y procesara. Fue creada para apurar el conteo de los censos de EEUU. Lo
que antes se tardaba 8 aos en contabilizar un censo, pas a hacerse en dos aos. Se
pudo acceder a informacin vigente aumentando las posibilidades de anlisis y reproceso.
Nuevamente, una maquina facilito la tarea humana repetitiva y permiti el reproceso en
caso de necesidad o seguridad. La empresa IBM naci en 1924.

El verdadero empuje a esta evolucin histrica, previa aun a la existencia de lo que hoy
consideramos como sistema operativo, fue la Segunda Guerra mundial. Se requera
velocidad de procesamiento y la posibilidad de modelar visiones multidisciplinarias, para la
resolucin de problemas originados en la guerra (simulacin, clculo de trayectoria de
obuses, etc.). Nacieron as la MARK I(1944) y la ENIAC (1945). Esta ultima funcionaba
con un sistema decimal, pesaba 30 toneladas y estaba compuesto por 18000 (dieciocho
mil) vlvulas al vaco. Es necesario imaginar su funcionamiento, considerando el calor que
generaban tal cantidad de elementos y la cantidad de interrupciones por mal
funcionamiento de dichas vlvulas, quienes se quemaban frecuentemente por la
temperatura que disipaban. Su uso ms importante fue el apoyo para clculos
matemticos, principalmente trigonomtricos.

ESQUEMA EVOLUTIVO FORMAL DE LAS COMPUTADORAS.


A continuacin se comentan las conocidas evoluciones de sistemas de computacin. Se
las conoce como Generaciones, y fundamentalmente, estn vinculadas a la evolucin del
hardware que las, principalmente por la integracin de sus componentes y por la evolucin
de materiales utilizados en su construccin.
El pasaje a cada nueva generacin, se determina por cambios tecnolgicos de
envergadura y nuevos desarrollos en tcnicas de programacin que implican un gran salto
o evolucin en la explotacin de los equipos.
Muchos de estos cambios estn vinculados a la compactacin fsica de circuitos por
cambios tecnolgicos. Esto implico una disminucin del tamao de los equipos, aumentos
notables de velocidad de procesamiento y disminucin de consumo elctrico, reduccin de
partes mviles y modernizacin en intervencin humana para la construccin de partes.

PAGINA 7 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Esto implico, en cada oportunidad, construcciones mas automatizadas, reduccin de


tiempos y costos, e incremento de la fiabilidad de los circuitos.

PRIMERA GENERACIN (1949/1959)


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

SEGUNDA GENERACIN (1959/1965)


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

TERCERA GENERACIN (1965/1970)


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

CUARTA GENERACIN (1970/1990?)


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

EVOLUCION DE LOS SISTEMAS OPERATIVOS


De lo ledo hasta ahora, es necesario aislar tres conceptos:
Hardware (dispositivos y mecanismos fsicos) que conforman el equipo de computacin;
Recursos o servicios que ofrece el Hardware
Datos: conforman la materia prima que como usuarios queremos trabajar para obtener
informacin til;

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

El objetivo de esta materia, es analizar el funcionamiento interno de los sistemas


operativos en cada una de sus partes, los servicios que brindan, los problemas que
resolvieron a trabes de su evolucin y su desarrollo actual.

CONCEPTO DE PROGRAMA ALMACENADO


El propsito de repasar la historia, no es la de recordar fechas, nombres. Es conocido el
fracaso de cualquier intento de fijar esos conocimientos. Lo verdaderamente til, es
estudiar en la historia la evolucin de los conceptos intuidos y desarrollados. Su
integracin como sistema y su potenciacin al desarrollarse formas de trabajo ms
modernas, veloces y seguras, nos permitir entender las ideas concebidas, los problemas
enfrentados y las correspondientes soluciones, su importancia y vigencia y la participacin
de dichos hechos en la evolucin de los sistemas operativos.

John von Neumann (1949) defini un modelo de computacin con ciertos ingredientes,
que fueron bisagra para la concepcin moderna de lo que es una computadora:
el programa almacenado.

PAGINA 9 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

El concepto de salto condicional


Definicin de un programa como cadena lgica binaria.

Si observamos el uso de una calculadora en la resolucin de la suma de dos nmeros,


vemos que utilizamos las siguientes funciones elementales de dicho instrumento:
1. Ingresar el primer valor
2. digitar el signo +
3. ingresar el segundo valor
4. digitar el signo =
5. el sistema muestra el resultado

Supongamos necesitar nuevamente sumar otros dos nmeros. Debemos repetir


exactamente las mismas habilidades para aplicarlas a los nuevos dos datos. Y esto vale
para cualquier nueva oportunidad de igual necesidad.

Podemos distinguir en este programa la existencia de pasos constantes y variables, a lo


largo de cada utilizacin del mismo. Los dos sumandos varan con cada oportunidad; los
pasos 2, 4 y 5 se repiten. El principio de menor esfuerzo indujo a pensar: si la estructura
repetitiva de este programa pudiese ser almacenada en memoria, el usuario estara en
condiciones de repetir esta operacin ingresando solo los sumandos (parte variable). Este
concepto llamado programa almacenado fue aportado por el modelo de Von Neumann.
En lugar de ejecutar las rdenes del programa conforme iban ingresando, propone la
carga completa del programa en memoria, para luego poner en marcha su ejecucin.

Esta ejecucin significa que el conjunto de rdenes cargadas se ejecutara en un orden


secuencial. Pero este autor agrega un concepto adicional: propuso la incorporacin de
una nueva habilidad que, cambiase dicha secuencia de ejecucin del programa
condicionada por una determinada condicin a verificar (por ejemplo, resultado de una
operacin previa, o signo de un operando recin calculado). Se puede definir a esta
instruccin como salto condicional o ruptura condicional de secuencia. Segn el
resultado de la verificacin se ejecuta una parte del programa u otra.

Algunos componentes de la CPU.


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

Descripcin de los registros usados por un programa.

RPI (Registro prxima Instruccin) o PC (Programm counter). Es un registro


que contiene una direccin que apunta a la prxima instruccin que deber ejecutarse
despus de la actual. En el momento previo a la ejecucin de una determinada
instruccin, el registro RPI contiene su direccin en memoria. Una vez que la copia al RI
calcula su longitud en bytes, que depender de la cantidad de operandos que tenga. Ello
lo averigua por el valor de su cdigo de operacin. Suma el valor del RPI ms la longitud

PAGINA 10 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

de la instruccin que va a procesar, y as se posiciona en la ubicacin en memoria de la


siguiente. Con dicho valor actualiza el RPI, para la siguiente ejecucin.
En caso de que la actual instruccin sea un salto a otra instruccin (condicional o
incondicional) el RPI recibir como nuevo dato la direccin de la instruccin a la cual se
deber bifurcar.

REGISTRO DE INSTRUCCION:
El registro de instruccin permite albergar cada instruccin tomada desde la memoria. El
sistema operativo separa el cdigo de operacin de los operndoos para luego analizar
(ver Descripcin del procesamiento de un programa)

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


particionado fijo de memoria.

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


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

BASE POINTER Es un puntero, que contiene la direccin donde comienza la pila que
administrara los datos del proceso y que participara en los retornos a direcciones que
originaron un determinado proceso.

REGISTROS DE USO GENERAL Son los registros de CPU que albergan datos o
direcciones como resultado de la ejecucin de las instrucciones u rdenes que integran el
programa en uso.

PSW (Program Status Word) es un registro de estado: es un conjunto de bits cada uno
de los cuales tiene un significado determinado.
Modo privilegiado protegido se pueden ejecutar todas las instrucciones de
mquina y todas las direcciones de memoria son accesibles.
Modo no privilegiado o modo usuario: algunas instrucciones (privilegiadas) no se
pueden utilizar. Adems inhibe el acceso a ciertas direcciones de memoria. A estas
instrucciones y/o memoria, se puede acceder a travs de la versin compilada de
un programa, debido al acuerdo existente entre el desarrollador del compilador y el
fabricante del CPU utilizado.
Prioridad para tratamiento de interrupciones. Est vinculado con la aceptacin o no
de las interrupciones. Si la interrupcin es de mayor prioridad a la de la CPU, es
aceptada. En caso contrario la deja en espera hasta que lo permitan las
condiciones de prioridad.
Cdigos de condicin: graba informacin referida a resultados de la instruccin
ejecutada anteriormente y que podran utilizarse como condicin de ejecucin de la
instruccin en curso.

Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II

Bits de control
AC (Alignement Check) 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

RF (Resume Flag) Permite al programador inhibir excepciones en el debugging de modo que la


instruccin pueda ser recomenzada despus de una excepcin de debugger sin
causar inmediatamente otro nueva interrupcin.
IOPL(I.O. privilege level) Si pone en ON, implica que se genere una excepcin en todos los accesos a
dispositivos de E/S durante el modo de operacin privilegiado.
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 interrupcin despus de cada instruccin (para debugging)
Bits de modo de operacin
NT (Nested task flag) Indica si la tarea actual, esta anidada dentro de otra en modo protegido.
VM (Virtual Mode 8086) Permite operar simulando un procesador 8086-mas antiguo)
VIP (Virtual Interrupt Pending) usado en modalidad 8086 para indicar si una o varias interrupciones estn esperando
servicio
Cdigos de condicin.
AF (Auxiliary carry flag) representa si hubo carry en una operacin de medios bytes en una operacin logia o
aritmtica con el registro AL
CF (Cary Flag) Indica un carry del bit izquierdo despus de una operacin aritmtica. Tambin
puede modificarse por un corrimiento de bits.
OF (Ocverflow Flag) Indica overflow aritmtico despus de una suma o resta
PF (Parity Flag) Paridad del resultado de una operacin aritmtica (1 par 0 impar)
SF (Sign Flag) Indica signo del resultado de una operacin matemtica o lgica
ZF 8Zero Flag) Indica si fue 0 el resultado de una operacin matemtica o lgica.

Descripcin del procesamiento de un programa


Programa: Conjunto de ordenes de ejecucin a habilidades elementales para resolver un
problema o algoritmo. El ordenamiento de ejecucin es de naturaleza secuencial.
Existen instrucciones especiales de bifurcacin o quiebre de dicha secuencia. Hay de
naturaleza condicional o incondicional. Estas bifurcaciones permiten la posibilidad de
repeticin de un ciclo de programa, tantas veces como sea necesario.

Estas habilidades ingresan en la memoria, para poder ser ejecutadas: la memoria es un


gran vector de posiciones, donde cada elemento se corresponde con un numero llamado
direccin de memoria y que permite identificarlo en forma biunvoca.
LA MEMORIA ES EL UNICO DISPOSITIVO DESDE DONDE SE PUEDEN EJECUTAR
PROGRAMAS.

Cada instruccin est compuesta por dos partes: el cdigo de operacin por medio del
cual se dice que hacer (operacin a realizar) y adems 0 o hasta dos operandos que
generalmente contienen una direccin (quien expresa con quien se har la operacin.)

Qu hace Cdigo de operacin


Instruccin

Con quien lo hace operandos (contienen direcciones de MP)

Cdigo operando/s

PAGINA 12 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Cual habilidad Direccin de memoria (0,1,o 2 direcciones)

CICLOS PARA LA EJECUCION DE CADA INSTRUCCION.


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

Ciclo de instruccin:
El procesador consulta al RPI. Su contenido apunta al lugar de memoria donde se
encuentra la prxima instruccin a procesarse.

Toma la instruccin direccionada y la copia al Registro de Instruccin. Su contenido se


analiza por separado: primero el cdigo de operacin y luego el o los operandos.
Antes de analizar la instruccin leda, el RPI se actualiza. Se le suma el tamao de la
instruccin que se va a analizar. De este modo, el RPI servir para posicionarse en la
siguiente instruccin para el prximo ciclo.

Si la instruccin a analizar se trata de una bifurcacin, la nueva direccin de bifurcacin es


cargada en el RPI y el ciclo contina.
A continuacin se analiza si el cdigo de operacin es vlido (si pertenece a alguna de las
habilidades antes mencionadas). En caso negativo, se para el proceso.
Luego, se controla si las direcciones de memoria contenidas en los operandos son
vlidas, es decir, que estn dentro del rango de la memoria principal asignada al programa
y no corresponda al rango de memoria utilizado por el sistema operativo residente en
memoria.

Ciclo de ejecucin:
Si los anlisis anteriores fueron correctos la instruccin es ejecutada por la Unidad
Aritmtica y Lgica (UAL) usando, si fuesen necesarios los registros de uso general antes
definidos.

Ciclo de interrupcin:
Bajo el concepto de multiprogramacin, toda instruccin pasa por un ciclo inicial de
interrupcin, donde la CPU pregunta al Bus (dispositivo encargado de realizar el manejo
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

se va a otro subprograma especfico. Hay que crear las condiciones de retornar al


programa original. Para ello hay que reproducir las condiciones existentes (los valores de
todos los registros, por ejemplo), tal como si el programa nunca se hubiese detenido a
esperar la operacin de E/S.

Las operaciones con un stack son:


PUSH, agregar informacin a la cabeza de la pila;
POP tomar informacin de la cabeza de la pila.
Para definir una estructura de pila, se consideran los siguientes elementos:
Base Pointer: puntero que contiene la direccin de memoria donde comienza la pila
Stack Pointer: puntero a la direccin ltimamente cargada de la pila
Length: tamao del stack.

Si el stack pointer coincide con el Base pointer es porque la pila est vaca. Se incrementa
en la cantidad de informacin a guardar el stack.
Si en cada oportunidad se agrega o quita la misma informacin solo se guarda en el stack
la direccin de memoria que contiene los datos. El agregar y quitar debern respetar el
orden y cantidad de los datos.

Punto de Retorno
Programa Principal Programa Proc1 Programa Proc2
Posicion inicial 4000 Posicion Inicial Posicion Inicial
4500 4800
4000 4500 4800
4600 Call Proc2
4100 Call Proc1

4650 Call Proc2


4655 Return

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

A su vez, Proc1 puede llamar a Proc2 y as sucesivamente. Cada subprograma finaliza


con la instruccin Return, que indica volver al punto en que dicho subprograma fue
convocado. Esta direccin de memoria se llama punto de retorno y la instruccin Return
funciona as: toma la direccin del stack y actualiza el RPI.
Dado que puede existir un encadenamiento de llamados, debe preverse la vuelta inversa.
Para ello se utiliza la estructura de un stack.

El programa principal ejecuta la instruccin call Proc1 ubicada en la direccin 4100. El RPI
apunta a la direccin de la siguiente instruccin: supongamos 4104. Es el primer valor que
se agrega (push) al stack.
El RPI se llena con la direccin 4500. All sigue el proceso hasta llegar a la 4650, con un
call Proc2. Se agrega al stack el punto de retorno 4604 y el RPI se actualiza con 4600.
Sigue el procesamiento de las instrucciones del Proc2. Cuando llega el Return
correspondiente, el sistema operativo hace POP del stack tomando el valor superior
(4604) actualizando el RPI y siguiendo su trabajo. Al llegar a la instruccin call proc2
ubicada en 4600 se vuelve a proceder como est arriba explicado. Vuelve a alimentarse el
stack con 4654. Ante el siguiente Return se vuelve a 4654 y cuando llega el Return de
Proc1 se toma el elemento superior del stack (4104) para proseguir hasta terminar.

Problemas inherentes a la Multiprogramacin


Al introducirse la posibilidad de multiprogramacin, se presento la situacin de que el
procesador solo poda atender una nica instruccin perteneciente a uno de los
programas vigentes. La coexistencia de varios programas ubicados en memoria y en
condiciones de ser ejecutados, no poda ser aprovechada pues solo uno de ellos poda
avanzar en un instante determinado.
A ello haba que agregar el hecho de que siendo el S.O. un programa que ocupa memoria
(de all su nombre de residente) tambin compita por el uso de procesador.

La aparicin de la 3a generacin de computadoras, incorporo un dispositivo llamado


canal o bus, especializado en la comunicacin (transferencia de datos en ambos
sentidos, entre un dispositivo y la memoria).
Permiti descargar parte de las complejas tareas a la CPU, derivando o delegando
trabajos en este dispositivo especializado. Habitualmente (monoprogramacin) el
procesador esperara el resultado de la operacin de E/S por parte del dispositivo para
seguir su trabajo con el programa, desaprovechando la potencialidad de la CPU.
El canal o bus, permiti que a la espera del evento, el procesador, pudiera atender a otro
de los programas ya cargados en memoria. En estas condiciones, se producira un trabajo
en paralelo:
El bus se encarga de comunicar la orden al dispositivo por medio del driver especfico
mientras el procesador elabora instrucciones de otro programa.

El aprovechamiento cobra ms importancia, debida a la franca diferencia de velocidad


entre cualquier dispositivo y la CPU (obviamente en favor de esta ltima).

Cambio de contexto
En el momento en que el programa en ejecucin procesa una instruccin que pide una
E/S, se pone en marcha el mecanismo llamado cambio de contexto.
El procesador se ocupara de otro programa en memoria, aprovechando que no puede
hacer nada con el actual hasta que no se cumpla la E/S pedida.

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.

En la memoria correspondiente al sistema Operativo existe un vector de interrupciones.


Es una lista de dos columnas: la primera, tiene todos los cdigos de interrupcin
previstos, mientras que la segunda tiene una direccin de memoria donde se guarda un
subprograma que trata especficamente cada interrupcin. Estos programas son definidos
por el fabricante del Sistema Operativo.
Se produce un nuevo cambio de contexto y se procesan dichas instrucciones. Esto se
llama resolver la interrupcin. Seguramente, una de estas instrucciones es poner en
aviso al programa originario, del resultado de la operacin, para que el determine como
continuar.

Cuando el procesador decida la continuacin del proceso del programa para el cual se
proceso la interrupcin, se producir un cambio de contexto inverso, restaurando las
condiciones existentes en el momento de que se lo dejo de procesar.
Entre estos datos figura el punto de retorno, direccin de la instruccin inmediatamente
posterior a la que genero el pedido de E/S.
Aqu cobra sentido el contenido de RPI (Reg. Prxima Instruccin). Tambin interesa el
estado del resultado de la ltima operacin, previa a la interrupcin. Tambin la PSW,
registros de cpu, etc.

LA PILA NO GUARDA INSTRUCCIONES DEL PROGRAMA CORRESPONDIENTE.


EL PROGRAMA PERMANECE EN MEMORIA. SOLO GUARDA DIRECCIONES DE
RETORNO.

PAGINA 16 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

La Administracin de todo este proceso la hace el Sistema Operativo, no el procesador. El


procesador solo sirve para controlar y ejecutar las instrucciones que se le presentan: en
nuestro caso, la de un programa del sistema operativo.

Atencin de una interrupcin:


Cabe la pregunta: a quien sigue atendiendo, en el caso de que haya varias
interrupciones de diferentes programas? Aqu aparece el tema de prioridades: la CPU
decide dar control al programa con mayor prioridad entre los que tienen una
interrupcin informada.

Un principio clsico por el cual se asignan prioridades a los programas es


por su dependencia de muchas operaciones de E/S (programas administrativos que
dependen mucho de los datos, en grandes volmenes) o su dependencia de mucho uso
de procesador (programas de clculo, aplicaciones matemticas).
Siendo que los dispositivos son lentos y el incentivo econmico de distribuir
equilibradamente sus recursos, un criterio seria darle prioridad a aquellos programas que
tienen mucha E/S. De esta manera habra muchos momentos en que no son necesarios
ciclos del procesador, pues el pedido de E/S se est procesando por el dispositivo y
controlado por el bus.
Si la CPU se dedicara a procesar los programas de mucho clculo, estaramos dedicando
la CPU sin posibilidad de que los restantes procesos aprovechen los tiempos de la CPU.

El administrador del sistema operativo y los programadores pueden consensuar las


prioridades.

Cuando el programa finaliza normalmente, tambin se produce una interrupcin, pues el


procesador tiene que liberar los recursos atrapados hasta ahora por el programa que
termina, para entregrselo a otro. Tambin se generaliza esta denominacin, tanto al
pedido de E/S, a la finalizacin de dicho proceso y tambin cuando el programa termina,
correcta o incorrectamente.

TODO TERMINA CON UNA INTERUPCION

Resumen paso a paso


El procesador est trabajando sobre una instruccin de E/S del programa A
Ordena al bus el cumplimiento de dicha orden
Cambio de contexto del programa A (*)
Cambio de contexto para poder seguir procesando el programa B mientras se est
ejecutando la orden de E/S del programa A
El dispositivo finaliza su tarea y emite una interrupcin
El procesador termina con su actual instruccin, perteneciente al programa B
Se notifica de que hay una interrupcin pendiente.
Hace cambio de contexto de la informacin del programa B
Trae del stack la info de contexto correspondiente a la rutina de tratamiento de la
interrupcin.
La direccin inicial de este programa est definida en el llamado Vector de interrupciones,
lista que contiene el cdigo de interrupcin y una direccin a la rutina de su tratamiento,
que vienen con el sistema operativo.

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

Punto a) Registros CPU


Cache
Memoria principal Voltiles
Disco electrnico

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.

Se pueden observar las siguientes relaciones:


Cuanto ms rpido es el dispositivo mayor es el costo por bit de informacin.
A mayor capacidad por dispositivo, menor costo por bit.
A mayor capacidad del dispositivo, menor tiempo de acceso

Principio de localizacin
Hay un principio inherente a muchas opciones incorporadas a los sistemas operativos,
originado en la observacin y en la definicin e implementacin de ciertos conceptos.
Debido al principio de Von Neumann el ordenamiento de ejecucin de un programa es
secuencial. Debido a ello, es alta la probabilidad de que a la ejecucin de una instruccin
determinada, le siga la ejecucin de la instruccin fsicamente contigua.

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.

Aunque resulte obvio, es interesante resaltar que la diferencia de velocidad entre


dispositivos sea tal, que resulta difcil su vinculacin.
Si los dispositivos fueran vagones de un ferrocarril, resulta obvio que la velocidad final de
la formacin depender fuertemente, del vagn ms lento o ms trabado.
Es por ello, que para mitigar este desacople, se crean dispositivos intermediarios entre
uno rpido y otro lento, pero que puedan vincularse rtmicamente.

Es el caso de la memoria principal y el procesador. Este ltimo, es por lejos, el dispositivo


ms veloz de todo sistema computacional. En consecuencia, el procesamiento de una
instruccin se medir de acuerdo a la velocidad de la memoria (mucha ms lenta que la
del procesador) y el procesador no podr desplegar toda su potencia.
Para procesar una instruccin el procesador procede (como fue explicado) a ejecutar dos
accesos a memoria: acceder a la instruccin y analizarla, y otro en momento de su
ejecucin.

Es en estas condiciones que se crea un dispositivo que intermedie entre ambos: el cache.
Es construido con un material muy caro (por ello la memoria no se construye totalmente
del material del cache) y tiene una velocidad ms cercana a la del procesador.
Lo que se intenta hacer es evitar (en lo posible) acceder dos veces a la memoria: el primer
acceso se intenta en la cache, donde su supone que previamente, fueron cargadas un
grupo de instrucciones, copiadas desde su posicin original en la memoria.
EN ESTO RESIDE EL AUMENTO DE VELOCIDAD DEL PROCESO: EVITANDO UNO
DE LOS DOS ACCESOS A MEMORIA.

Por el principio de localizacin, se supone que habr un procesamiento secuencial entre


dicho grupo de instrucciones. Por lo tanto, con la alimentacin de dicho grupo, el
procesador tendr suficiente material de trabajo en la cache hasta que se justifique la
copia de otro tramo del programa a la misma

CPU CACHE MEMORIA

Transfiere Transfiere
una un bloque
instruccin de
instruccion
es

PAGINA 19 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Cuando se trabaja con Multiprogramacin (ejecucin de varios programas


simultneamente) la cache se divide en porciones asignadas cada una a cada programa
en ejecucin.
De modo que cada programa en ejecucin tiene un grupo de sus instrucciones tanto en
memoria (donde reside todo el programa) como en la cache.
Cuando un programa debe procesar una instruccin y la encuentra en la cache se dice
que hubo un HIT (xito en encontrar la instruccin y el ahorro del correspondiente acceso
a memoria). Por el contrario, si la instruccin a procesar (valor del RPI) no est en cache
es un MISS (falta). Entonces (considerando el principio de localizacin) se trae un nuevo
bloque de instrucciones de memoria, donde reside la instruccin buscada y hasta el
tamao del bloque asignado a cada proceso.

Este nuevo bloque reemplaza en la cache, al bloque que hace ms tiempo que no se
procesa: criterio llamado LRU (Least recently used el que hace ms tiempo que no se
usa). Al actualizar la cache, se vuelve al ciclo anterior y seguramente habr un HIT.

Lgicamente, que este proceso generara una distraccin de la CPU actualizando la


cache. Pero esta situacin, es infinitamente menos costosa que el doble acceso a la
memoria de todas las instrucciones procesadas, desde el ltimo MISS.

Cabe una cuestin importante: si en el procesamiento de un tramo de instrucciones se


modifico algn dato, se presenta la situacin de que la cache (que representa la memoria)
y la memoria no coinciden: se modifico un dato en la cache pero la memoria no se
actualizo. Caben aqu dos polticas:

a) la memoria se actualiza inmediatamente que la cache cambio (write through);


b) se espera al prximo MISS (write back) para analizar dos situaciones
a. no hubo cambios. Se trae el siguiente bloque a la cache, directamente
b. hubo cambios. Por lo tanto, primero se graba en memoria la informacin de
la cache y recin se lee un nuevo bloque de la cache.

Hay dos factores adicionales para ajustar la eficiencia de la cache:


Tamao de la cache. Cuanto ms grande ms instrucciones pueden cargarse
Tamao de cada bloque: cuanto ms grande, menos transferencias sern
necesarias, pero el principio de localizacin ya no se cumplir tan estrictamente

Ejemplo del funcionamiento de una memoria Cache


Supongamos contar con una cache de primer nivel conteniendo 1000 palabras con un
tiempo de acceso de 0.1 mseg.
Supongamos contar con una memoria con capacidad de 100.000 palabras y un acceso de
1 mseg.

SECUENCIA:
Se busca una palabra en el nivel cache
Si dicha palabra esta, se produce un HIT. Caso contrario se das un MISS.
En caso de MISS se busca la palabra en la memoria, se la copia a la cache y el proceso
se reencausa.

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.

(0.95 * 0,1 mseg) es lo que se tarde en el 95% de los casos


(0.05 * (0.1 mseg + 1 mseg) es lo que se tarde en un MISS. Hay que acceder a la
Memoria y cargar la Cache para luego accederla. En el 5% restantes de casos (MISS).

Luego (0.95 * 0,1mseg) + (0.05(*1.1mseg) = 0,095 + 0.055 = 0.15

Tcnicas Controladoras De Entradas/Salidas De Datos


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

1) Entrada Salida programada:


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

2) Entrada Salida por Interrupciones:


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

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


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

PAGINA 21 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Tpico diagrama de bloques del DMA

Contador
de datos

Lineas de datos Registros


de datos

Registros de
dirrecciones
Lineas de direcciones

Solicitud DMA Logica de


control
Reconocimiento de DMA

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.

Funcionamiento: cuando el procesador quiere leer o escribir un bloque de datos enva un


mandato al DMA especificndole:
Si es de E/S, cantidad de datos a transmitir, direcciones del disco y la memoria.
El procesador sigue con otra tarea.
El modulo DMA transfiere el bloque completo, palabra a palabra. Directamente con la
memoria sin pasar por el procesador.
Cuando finaliza la transmisin enva una interrupcin. Por lo tanto el procesador interviene
en dos partes: inicia la transmisin y atiende una interrupcin. (Al inicio y a la finalizacin).
Tres mecnicas:
1. Todos los mdulos de E/S comparten un mismo bus. El D MA acta como un
procesador subordinado, usa E/S programada para intercambio de datos entre un
modulo de E/S y la memoria usando el DMA. Mecanismo ineficiente, pues cada

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

Procesa DMA DMA Memoria


dor
E/S

E/S E /S

Bus Unico, DMA-E/S integrado

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

Bus del sistema

Procesa DMA Memoria


dor
Bus de E/S

E/S E /S

PAGINA 23 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Proteccin de Recursos Compartidos:


El concepto de proteccin se vincula con recursos compartidos: memoria, impresora,
disco, etc. Una proteccin se presenta cuando al analizar la direccin contenida en cada
operando que apunta a la memoria principal. Se debe analizar si esta dentro del rango
asignado al programa (por el S.O) y que esa direccin no est siendo utilizada por otro.

Con el concepto de multiprogramacin son varios los programas cargados en memoria y


por ende es necesaria la proteccin de ese recurso para los diferentes programas que
compiten por l.

Uno de los recursos ms protegido es la memoria ocupada por el Sistema Operativo.


Cuando se ejecutan estas instrucciones, solo el sistema operativo puede participar. Este
modo de proceso se llama modo Supervisor o Kernel o Privilegiado. Uno de los datos que
mantiene el PSW es si un recurso es asignado en modo protegido, privilegiado o
supervisor.
La otra modalidad (modo usuario), es la ejecucin de un programa de usuario. Tambin se
protege que un programa no avance sobre los datos de otro.

Servicios que brinda un Sistema Operativo. - Resumido de Operating Systems de William Stallings
Un sistema operativo brinda servicios en las siguientes reas:

DESARROLLO DE PROGRAMAS
Aunque no se consideran estrictamente pertenecientes al S.O. de cualquier maquina, hay una
serie de programas que facilitan las tareas del usuario/programados: editores, debuggers,
compiladores, controladores de uso debido de memoria. etc. Esto entra dentro de las funciones del
S.O. de facilitar al usuario en el uso de recursos del sistema de computacin.

EJECUCION DE PROGRAMAS
Incluye tareas para la ejecucin de programas, carga del mismo en memoria, preparacin de la
informacin de procesos (PCB), preparacin de la entrada y salida de datos, preparacin de los
dispositivos. Con este planteo, podemos definir inicialmente a un sistema operativo como un
conjunto de programas que permite y controla la ejecucin de programas de aplicacin
(desarrollados por los programadores) y funciona como interfase o intermediario entre estos
programas y el hardware integrado por la computadora donde los programas se ejecutan.

ACCESO A DISPOSITIVOS DE E/S


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

ACCESO CONTROLADO A LOS ARCHIVOS


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

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.

DETECCION DE ERRORES Y RESPUESTA


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

CONTABILIDAD
El creciente involucramiento del uso de una computadora en todas las reas de una empresa,
asociado al costo de su mantenimiento y de la incorporacin de nuevos dispositivos y software, as
como el de especialistas, dio lugar a la necesidad de controlar dichas inversiones y
particularmente del uso de sus recursos. Un buen sistema operativo colecciona informacin sobre
el uso de sus recursos y los acumula para su posterior anlisis. Muchas veces se utiliza esta
informacin con fines de auditora y facturacin intersectorial.

DISEO JERRQUICO GENRICO DE UN SISTEMA OPERATIVO:

Nivel Contenido
1 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

6 Dispositivos de memoria secundaria. Posicionamiento en una zona especifica del disco,


transferencia de informacin solicitada, reserva y liberacin de espacio. Tiene que ver con
manejo de cdigos de retorno de cada operacin fsica de Entrada Salida
7 Creacin del direccionamiento lgico para uso de los procesos, expandiendo la memoria a
almacenamiento secundario. Administracin dinmica de memoria, en cuanto al
movimiento de intercambio de informacin entre disco y memoria.

de 5 a 7 el S.O. se ocupo de recursos para un procesador nico. A partir del 8 se ocupa de objetos
externos (perifricos o redes) que pueden compartirse entre uno o varios computadores

8 Comunicacin entre procesos. Pipe, canal lgico de comunicacin entre procesos


9 Administracin de archivos en memoria secundaria. Tiene que ver con la administracin
lgica (no fsica-sectores, pistas, etc) que se vio en nivel 6.
10 Provee acceso a dispositivos externos. Impresoras, display y teclados
11 Directorios. Vinculacin entre nombres lgicos y fsicos de objetos. Administracin de
derechos de acceso. Este es un problema clsico en computacin. El objetivo econmico
de acercar ms usuarios, dio lugar a la creacin de la entidad del nombramiento simblico
de variables, dispositivos, nombres de archivos, etc. Pero los procesos reales suceden bajo
una denominacin fsica, primitiva de esos recursos. Por ello en este nivel se implementa la
asociacin de estas dos metodologas de nombramiento de recursos. Es la funcin del
Sistema Operativo, de hacer amigable al usuario el uso de un sistema.
12 Administracin profunda de procesos. Registracin de la informacin de estados en la
PCB, formacin de las colas, facilidades para la ejecucin del dispatcher, creacin de
procesos y en general control de los mismos.
Es importante destacar la administracin de datos en disco, segn las diferentes visiones
de los niveles 6 y 9. Cada transferencia fsica a/desde disco se hace apuntando a la
mnima unidad de informacin direccionable en disco: el sector. Este es una unidad fsica
del dispositivo y puede contener varios registros lgicos. Pero la visin del programador es
por registro lgico, e implementada en el nivel 9. Ante la apertura de un archivo, el S.O.
emite una orden de lectura apuntando al primer sector y trayndolo en forma completa
(Nivel 6). Pero el nivel 9 administra esa info, y entrega de un registro lgico por cada
pedido de lectura del programa. Recin cuando termino de aportar todos los registros
lgicos trados en la ltima lectura, recin hace una segunda lectura fsica al dispositivo.
La cantidad de registros lgicos por registro fsico (sector en el disco o bloque en la unidad
de cintas) se llama factor de bloqueo. Es decir, que se arrobaran n-1 lecturas fsicas en
caso de haber un factor de bloqueo de n.
13 Provee la interfase entre el usuario y el Sistema Operativo. Es el clsico shell o ncleo que
interpreta los comandos al S.O (Job Control Lenguage). Es la capa ms externa de un
sistema Operativo

SPOOLING

Con la aparicin del disco magntico, se pudo pensar en mecanismos para tratar una
permanente obsesin de los fabricantes de equipos y/o sistemas operativos: aprovechar
los tiempos, generar la posibilidad de ms usuarios simultneos, abaratar costos o
generalizar ms procesos simultneamente. (Repetimos la motivacin econmica para
todos los avances y evoluciones de temas vinculados con Sistemas Operativos).

Uno de estos conceptos es el spooling (simulteneous peripheral on line operation).


El spooling permiti a la CPU superponer (para poder hacerlas simultaneas y aprovechar
los tiempos) las operaciones de entrada o salida de varios trabajos. Se trata de un nivel
sofisticado de administracin de una cola de trabajos, tanto de entrada como de salida.

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.

Necesidad de definir procesos


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

PROCESOS
Un proceso es un programa en ejecucin, en actividad. Desde que el programa
(residente en disco) es convocado para su ejecucin y hasta su finalizacin, pasa por
diferentes estadios: el tiempo transcurrido entre esos extremos se llama ciclo de vida del
proceso. Durante este ciclo de vida, el sistema agrega datos al programa, y lo trata con la
ejecucin de instrucciones propias.

Los Procesos se estudian dentro del concepto de multiprogramacin. El concepto de


proceso tiene origen en los problemas vinculados con la administracin de recursos que el
S.O. brinda en la medida que estos lo demanden. Se incluyen cuestiones de coordinacin
de dichos recursos ante la existencia de usuarios concurrentes (Time .Sharing) o de
proteccin de los recursos compartidos: memoria, archivos, instrucciones privilegiadas,
etc.

Contenido estructural de un proceso:

Instrucciones del programa


Proceso Datos propios (contadores, acumuladores, variables)
Contexto (formado por los datos y las instrucciones que el S.O.
genera para la administracin del programa, a lo largo del ciclo de
vida del proceso.

Simultaneidad de uso de un programa:


Es una posible condicin de un programa, por la que distintos usuarios lo pueden usar al
mismo tiempo en diferentes puntos de utilizacin del mismo total o parcialmente. El
programa puede abrirse varias veces pero solo una copia del mismo ocupa memoria Ej:
Word de Microsoft. Es decir son procesos asociados al mismo programa y se consideran
secuencias de ejecucin distintas o procesos diferentes. La nica condicin, es que el
programa sea reentrante, es decir, que no permita ser modificado por ninguno de los
usuarios simultneos, de modo que cada uno de ellos cuente siempre con la misma
versin y contenido del programa.

PCB (Process Control Block)


El proceso nace, cuando un programa es invocado para ejecutarse.
El Sistema Operativo asigna un identificador y un lugar en memoria llamado PCB (Process
Control Block). Este espacio es de tamao igual para todos los procesos.
Esto da lugar a un tratamiento ms eficiente. Toda estructura de informacin de tamao
variable no se incluye en la PCB: se la vincula con un pointer contenido en la PCB.

PAGINA 28 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

En l se guardan diferentes datos: el RPI, PSW, prioridad, estado, pointer al stack,


direccionamiento al prximo elemento en la cola en la que est ubicado el proceso,
asignacin de memoria (registro base y limite), direccin a la lista de dispositivos y registro
del uso de recursos para la contabilidad. La contabilidad deja un registro de los tiempos y
recursos empleados para cada sector de la empresa. Esto sirve al propsito de auditora y
control de uso de la computadora. Hay empresas en las cuales se realiza un cargo
mensual a cada sector, en funcin al uso de recursos.

ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK

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

Informacin del estado del procesador


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

Informacin de control de procesos


Planificacin e Informacin de estado: Es informacin necesaria para el S.O. para sus
funciones de planificador.
Estado de proceso: Running, Ready, Blocked, etc.)
Prioridad: uno o ms campos que indiquen la prioridad del proceso
Informacin para la programacin: tiempo que ya lleva operando, tiempo
transcurrido desde la ltima interrupcin
Evento que debe ocurrir antes de continuar

Estructuracin de datos. Un evento esta linkeado a una cola (por ej. esperando un
determinado evento). Puede definirse la vinculacin padre-hijo entre procesos
Proceso de Intercomunicacin. Puede haber necesidad de intercomunicacin, entre
dos procesos independientes, en formas de seales o mensajes. Estos pueden
guardarse en el PCB.
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:

El estado new nace cuando el programa es convocado para su ejecucin. El sistema


operativo forma la PCB en memoria, la inicializa (le pone sus valores iniciales) y le asigna
un numero nico de proceso.
Se dice que el estado NoRunning o listo o Ready si, estando en New se le asigna
memoria donde ser cargado para su ejecucin o cuando el proceso suspende su
ejecucin. En estado de listo, el proceso est en condiciones de ser nuevamente elegido
para su procesamiento. La PCB permanece en memoria, acompaando el ciclo de vida
del proceso
Pueden haber diferentes motivos para pasar al estado listo: un pedido de entrada/salida,
se termino el tiempo mximo asignado a cada proceso (time out: se explica ms
adelante).
Se dice que est en estado de Running o ejecucin cuando se est ejecutando alguna
de sus instrucciones.

Diagrama general de estados (estructura de dos estados):

a) Entra un programa y el S.O inicializa la PCB. Mientras la PCB es creada, el proceso


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

A medida que un evoluciona va cambiando de estado y esto se registra en la PCB


correspondiente

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.

VIDA Y MUERTE DE UN PROCESO:

Motivos de inicio de un proceso:


1) Cuando entra un nuevo trabajo o programa
2) Cuando un usuario se loggea en time sharing
3) Un proceso puede disparar a otro (en un entorno multithread, relacin padre hijo,
cuando finaliza el padre tambin lo hace el hijo). El proceso que inicia la ejecucin de otro
se llama padre, el nacimiento de un hijo se registra en el Process Control Block del padre
y como proceso independiente, el Sistema Operativo crea la PCB propia.

Multithread: Solo algunos Sistemas Operativos permiten esta posibilidad consistente en


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

Motivos de finalizacin de un proceso:


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

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

Blocked/ Blocked Blocked/


Suspend Activo Suspend
ed ed

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

Un proceso esta Ready cuando es admitido por el CPU, se le asigna un rango de


memoria. El dispatcher le pasa el control al proceso para ser ejecutado.

Un proceso es bloqueado cuando espera un evento (e/s), cuando tiene una interrupcin
privilegiada, cuando espera que un hijo termine su proceso. En este estado hay distintas
colas de almacenamiento: por eventos y por dispositivo.

Un proceso es suspendido cuando el S.O. lo desaloja de la memoria principal por otro de


mayor prioridad. Este es el proceso de swapping. La PCB sigue en memoria y tiene el
dato de la direccin de disco donde se genero la copia previa al desalojo del proceso

Un programa est en New cuando pide ser ejecutado y aun no fue cargado en memoria.
Se construye e inicializa su PCB. Para pasar a ready el SO fija la cantidad de memoria

PAGINA 32 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

disponible y se fija cuantos procesos se estn realizando y as poder regular el balanceo


entre los procesos.

Un programa finaliza por los motivos vistos en Motivos de finalizacin de un proceso: Al


finalizar el programa, el proceso aun sigue vigente, registrando datos provenientes de la
utilizacin de recursos hechos por el mismo y acumulados en la PCB. Esto servir para
ser utilizado para la contabilidad de recursos, distribuyndolos por centro de costo usuario.

Es muy importante analizar que el estado Blocked/Suspended tiene dos motivaciones:


Espera una E/S
Esta suspendido
Ambos eventos son totalmente INDEPENDIENTES. Tuvieron que ocurrir en determinada
secuencia: primero el blockeo y luego la suspensin. La inversa es imposible pues no se
puede procesar una instruccin de E/S estando el programa fuera de memoria.
Por lo tanto a un proceso en esas condiciones le pueden ocurrir dos eventos a su tiempo:
producirse el evento esperado (deja de estar bloqueado pero sigue suspendido), se
recarga a memoria (pero sigue bloqueado).

Transiciones De Estados De Un Proceso

1. Bloqueado a bloqueado-suspendido: si entra un nuevo proceso de mayor prioridad a todos


los existentes, exige que otro proceso libere su memoria ocupada para cedrsela. Es un
criterio generalizado elegir un proceso bloqueado, pues en ese momento no est usan tiempo
de CPU. Esto puede suceder an cuando hay procesos ready disponibles, cuando el SO
cumple con la alta prioridad del proceso entrante.

2. Bloqueado-suspendido a ready-suspendido: un proceso en estado bloqueado y suspendido


deja de estar suspendido cuando ocurre el suceso que estaba esperando y por el cual estaba
bloqueado.

3. Ready suspendido a ready: cuando no hay procesos ready en la memoria principal, el SO


tendr que traer uno para continuar la ejecucin. Adems si un proceso que est en estado
ready y suspendido tiene una prioridad mayor que el que est en estado ready, puede
decidirse tomar el de mayor prioridad en vez de minimizar el intercambio.

4. Ready a ready-suspendido: puede ser necesario suspender un proceso ready si sta es la


nica forma de liberar un bloque grande de memoria principal o porque se elige un proceso
ready de baja prioridad en vez de un proceso bloqueado de ms alta prioridad.

5. Nuevo a ready-suspendido, y nuevo a ready: cuando se crea un nuevo proceso se lo puede


aadir a la cola de ready o a la cola de ready y suspendido.
La transicin de nuevo a ready y suspendido se hace cuando hay poco espacio en memoria
principal para el proceso, pero el SO gana tiempo y va construyendo su PCB.

6. Bloqueado-suspendido a bloqueado: se libero memoria y el SO puede suponer que pronto


ocurrir el suceso por el que el proceso est bloqueado y en consecuencia lo vuelve a cargar
en memoria

7. Running a ready-suspendido: generalmente un proceso en ejecucin pasa al estado ready


cuando culmina su fraccin de tiempo asignado, aunque si se est expulsando al proceso es

PAGINA 33 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

porque hay un proceso de prioridad mayor en la lista de bloqueados y suspendidos que se


acaba de desbloquear, de esta manera si el proceso en ejecucin se lo pasa a la cola de ready
y suspendidos se libera espacio de la memoria principal.

8. Varios a exit: normalmente los procesos terminan mientras estn ejecutndose, ya sea
porque se completaron o por alguna causa de error. Sin embargo un proceso puede ser
finalizado por el proceso que lo creo o bien finalizar cuando termina el proceso padre, esto
permite que un proceso situado en cualquier estado pase al de terminado.

9. Running a Blocked: Mientras estaba en ejecucin, aparece una sentencia de E/S o espera
una instruccin privilegiada, pasa a Espera o Blocked para que dicho evento esperado, se
cumpla.

Suspensin (que genera swapping)


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

Reingreso de un programa a proceso


Hiptesis: hay un programa suspendido;
Hay un programa en estado ready
Hay un programa bloqueado/suspendido
Hay lugar en la memoria suficiente para cualquier proceso

Si se carga el bloqueado/suspendido se corre el riesgo que siga bloqueado y no se pueda ejecutar.


Habra que comparar la prioridad existente entre el Ready y el Suspendido. A igual prioridad caben
dos criterios: se recarga el suspendido, para seguir su procesamiento aunque se gasta tiempo en la
carga del programa a memoria. El segundo criterio es darle lugar a un proceso ya comenzado.

Descripcin esquemtica de procesos

PAGINA 34 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Memoria P1 P2 Pn
Virtual

recursos

Procesador E/S E/S E/S Memoria

Utilizacin de recursos en un instante dado. Una lnea con punta indica el uso del recurso.
Una lnea sin punta indica que el recurso al que apunta, no se est utilizando.
El proceso 1 est en ejecucin
El proceso 2 est bloqueado
El proceso n est suspendido

El sistema operativo se ve en la necesidad de manejar informacin sobre el uso de los


recursos. Por lo tanto maneja tablas y los datos propios de las PCB de cada proceso.
Particularmente, interesa el manejo de colas: hay una cola en el estado Ready. A veces
esta cola se puede organizar por prioridades y dentro de una misma prioridad, por orden
de llegada.
Tambin el estado blocked se organiza por dispositivo, para hacer ms eficiente al
tratamiento de una interrupcin determinada: se busca en la cola del dispositivo que
provoco la interrupcin.
Tambin puede definirse una cola para suspendidos, donde al igual que en Ready se
respeta la prioridad y luego el orden de llegada.

Implementacin de las colas


Las colas se implementan en las PCB. All hay un campo que vincula a la posicin de
memoria de la prxima PCB en el orden de la cola. Cada vez que se incorpora un nuevo
proceso, se procede a acomodar estos pointers.
Particularmente interesante, es la implementacin de la cola en estado READY. Hay dos
implementaciones posibles:
a) cola unica, con dos punteros (al principio y final de la cola) El ordenamiento es por
prioridades y entre iguales, por orden de llegada. Cuando ingresa un nuevo
proceso en dicha cola se debe ubicar el ultimo proceso con igual prioridad al nuevo,
y ubicarlo a continuacin, modificando los punteros de las respectivas PCB.
b) Una cola por prioridad. Se requiere un puntero inicial y final para cada cola, se usa
la prioridad como puntero a la cola correspondiente y se acomodan los punteros
dentro de la cola correspondiente.
El Dispatcher, se ocupara en cada implementacin de buscar el siguiente programa a
ejecutarse.
En la segunda implementacin puede ocurrir que un programa haya ingresado con una
prioridad muy baja y por ende puede morir por inanicin (starvation). Esto sucedi
histricamente (por ello tiene nombre) Los sistemas operativos modernos evitan esta

PAGINA 35 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

situacin brindando un servicio de prioridades dinmicas. El S.O. si bien conserva la


prioridad original la va cambiando para que el proceso tenga oportunidad de procesarse.
Un vez que alcanzo ser ejecutado el SO sigue con la administracin dinmica, bajndole
esa prioridad virtual para que se intercalen otros programas.
Aqu cobra una verdadera importancia el SO: toma decisiones propias y transparentes
para el usuario, para mejorar su eficiencia entre todos los procesos.

RUNNING ===== PCB

PCB PCB PCB


READY ======== proceso 1 Proceso 2 Proceso n

PCB PCB PCB


BLOCKED ========proceso 1 proceso 2 proceso n

Las PCB se transforman en algo tan importante, que es necesario construir una
ESTRUCTURA DE LISTAS para contener toda la informacin necesaria. Para facilitar su
manejo, se usa la ID provista por el Sistema Operativo como ndice.

REPRESENTACION DE UN PROCESO EN MEMORIA


IDENTIFICADOR
INFORMACION DE ESTADO P.C.B
INFOR. DE CONTROL DEL PROCESO

PROGRAMA + DATOS AREA PRIVADA

ESPACIO DE DIRECCIONES AREA COMPARTIDA


COMPARTIDAS

PLANIFICACION DE PROCESOS

Dentro del tratamiento de procesos, se ejecutan en modo kernel las siguientes funciones:

creacin y finalizacin de procesos


criterios de seleccin y switcheo entre procesos
administracin de PCB
Administracin de memoria
Administracin buffers y manejo de canales y dispositivos
Adm. de interrupciones, contabilidad, etc.

Entre los diferentes recursos que maneja, es la seleccin del programa para su ejecucin.
Este criterio se llama planificacin de procesos y el objetivo es optimizar el uso del
procesador.

PAGINA 36 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Existen tres niveles de planificacin:


Planificador de largo plazo: de new a ready/suspended, de new a ready
Planificador medio de ready/suspended a ready de blocked suspended a
blocked tiene que ver con el swapping, sacar de memoria un programa y
guardarlo en disco hasta la prxima recarga
Planificador corto plazo de ready a running, se selecciona para la inmediata
ejecucion dentro de los disponibles.

En esta estructuracin, subyacen dos criterios:


uno orientado al usuario para obtener una respuesta rpida. Es bueno para los
sistemas en lnea o para monousuario
La segunda es orientada al sistema para una mayor eficiencia, y menor tiempo para
completar procesos. Es bueno para procesos batch.

Un proceso puede ser elegido por prioridad,


tiempos de espera
tiempos de ejecucin

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


monopolio.

PLANIFICACION DE CORTO PLAZO - DISPATCHER


El Dispatcher, es un programa del S.O. que hace cumplir las funciones de la planificacin
de corto plazo. Se implementa administrando las colas del estado listo para optimizar el
funcionamiento general del sistema.
Interviene cuando se suspende un proceso y debe decir cual elige para esta oportunidad.
Motivos: reloj por time out
interrupcin de E/S planificacin expropiativa
llamado al S.O.
Criterios complementarios:
NO Expropiativos: Cuando debe elegir un proceso para su pase a Running permite que
el actual siga su ejecucion hasta terminar o en que pide una E/S
Expropiativos La interrupcin de ejecucin del programa actual es abrupta
y es reemplazado por el proceso elegido.

Polticas de Administracin del Procesador


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

FCFS First Come First Served.


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

PAGINA 37 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Sea P1 con un tiempo de rfaga de 24 mseg


P2 con un tiempo de rfaga de 3 mseg
P3 con un tiempo de rfaga de 3 mseg
Llegan en orden p1 p2 p3

P1 P2 P3
--------------------------------------------------------]--------------]---------]
0 24 27 30
promedio de espera (0 + 24 + 27)/ 3 17

Si llegan p2, p3, p1

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

SJF Shortest Job First


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

Sea P1 con un tiempo de rfaga de 6 mseg


P2 con un tiempo de rfaga de 8 mseg
P3 con un tiempo de rfaga de 7 mseg
P4 con un tiempo de rfaga de 3 mseg

P4 P1 P3 P2
-------]-------]---------------------------]-----------------------]
0 3 9 16 24
tiempo medio de espera (3 + 16 + 9 + 0) / 4 = 28/4 = 7 mseg

Para el siguiente ejercicio, incorporamos un criterio adicional: el momento de llegada del


proceso. Hasta ahora se supona que todos los candidatos arribaron al mismo tiempo.

Sea P1 con un tiempo de rfaga de 8 mseg tiempo de llegada 0


P2 con un tiempo de rfaga de 4 mseg tiempo de llegada 1
P3 con un tiempo de rfaga de 9 mseg tiempo de llegada 2
P4 con un tiempo de rfaga de 5 mseg tiempo de llegada 3
P1 P2 P4 P1 P3
----]-------]---------------]------------]-----------------------]
0 1 5 10 17 26
tiempo medio de espera ((10-1) + (1-1) + (17-2) + (5-3) ) / 4 = 26/4 = 6.5 mseg

PAGINA 38 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Planificacin por prioridad

Aqu se vuelve a considerar el mismo tiempo de arribo. Pero se agrega el criterio de


prioridad: un nmero menor implica una prioridad mayor.

Sea P1 con un tiempo de rfaga de 10 mseg y prioridad 3


P2 con un tiempo de rfaga de 1 mseg y prioridad 1
P3 con un tiempo de rfaga de 2 mseg y prioridad 3
P4 con un tiempo de rfaga de 1 mseg y prioridad 4
P5 con un tiempo de rfaga de 5 mseg y prioridad 2

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

ROUND ROBIN

Es el criterio aplicado al SO Tiempo Compartido o Round Robin. En forma circular se va


entregando tanto tiempo de procesador como indica el quantum. Si la rfaga pendiente es
menor al quantum, lgicamente se usa tanto tiempo de procesador como haga falta.

Sea P1 con un tiempo de rfaga de 24 mseg


P2 con un tiempo de rfaga de 3 mseg
P3 con un tiempo de rfaga de 3 mseg

Quantum 4 mseg

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

Evolucin de los Sistemas Operativos


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

Serial
En los aos 1950, los sistemas Operativos no existan. El operador interactuaba
directamente con el HW, trabajando desde la consola, que en muchos casos era un
teclado y una impresora donde se iban imprimiendo el ingreso para proceso de un
programa y el resultado general de su ejecucin: finalizado , o con un determinado error.
Un modo habitual de uso, era que el programador hacia reserva de un tiempo
determinado para obtener en forma dedicada la maquina. El usuario deba hacerse cargo
de su costo aunque no utilizase todo el periodo reservado. (Block time)

PAGINA 39 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

tarjetas consola Cinta de papel


Tarjetas para despus
imprimirse
Impresora no en lnea
Codigo maquina

El programador era el operador de su propio programa. El hecho de que la impresora no


estuviese en lnea obligaba a que la operacin no sea inmediata, y al gasto en recursos
intermedios: perforacin de tarjetas para ms adelante, ser impresas.
El concepto de serial, surge pues el operador, despus de cada programa finalizado,
deba operar para cargar el siguiente.

Nacen lectoras ms potentes, cintas magnticas e impresoras en lnea. En lnea, significa


que la orden de imprimir se cumpla inmediatamente, pues el dispositivo estaba integrado
a la computadora.

Se crean los ensambladores, enlazadores, bibliotecas de funciones de uso comn


nuevamente el concepto de REUSO) y fundamentalmente la aparicin del concepto de
driver. (Nuevamente reuso).

Aparecen los compiladores como FORTRAN, COBOL.

Aparece una situacin que puede describirse por estos hitos:


Mucho trabajo de preparacin
o Carga de compilador en cinta
o Salida del cdigo objeto en cinta
o Cambio de carretes.
o Organizacin de programas escritos en el mismo lenguaje, para conservar
los compiladores en sus cintas.
Maquinas carsimas
Mucho tiempo ocioso, dependiendo de las tareas del operador
Muchos baches de tiempo en el llamado block time.
El atraso de un programador daba lugar al atraso en los siguientes.
Ineficiencia del uso de los recursos
Nacimiento de la funcin del operador, que alejo al programador del equipo.
Obviamente el operador especializado aportaba la sistematizacin de sus tareas
cubriendo (aunque sea parcialmente) la ineficiencia natural de la situacin.

Batch Simple
Promediando los aos 50 IBM saco un equipo 704/7090-7094 con un sistema operativo
innovativo. La idea provino NUEVAMENTE, de la observacin de que el trabajo del
operador era de ndole repetitiva. Por lo tanto, se intento sistematizar esta actividad. Se
trato de evitar de que el operador tuviese que ocuparse de cada programa en forma
individual: cargarse, retirar resultados, guardar el programa (escrito en tarjetas) en la
casilla de cada programador.

La idea es proveer algn flujo continuo a esta tarea, de modo que a la finalizacin de un
programa pudiese seguir automticamente el siguiente programa.

PAGINA 40 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Se trato de definir un secuenciador automtico. Para ello se cre un programa llamado


MONITOR: su caracterstica es que daba lugar al primer sistema Operativo de programa
almacenado y era de residencia permanente en memoria. Por ello al Monitor tambin se lo
llama Residente.

El Residente necesitaba conocer el principio y finalizacin de cada programa y la


definicin del uso de recursos a utilizar y finalmente indicar la finalizacin de cada
programa para que aparezcan los datos y as poder automatizar la ejecucin de los
procesos.

Para ello se diseo un lenguaje especifico del Sistema Operativo: JCL (Job Control
Language) que permiti la intercepcin de los comandos especficos y se especializo en
decodificarlos y ejecutarlos o sea, proceder en base a la aparicin de tarjetas
pertenecientes a dicho lenguaje. Esto permiti una revolucin de eficiencia y disminucin
de los tiempos muertos.
ATENCION: NO ES UN LENGUAJE DE PROGRAMACION. SOLO ERAN COMANDOS
AL SISTEMA OPERATIVO.
Esa continuidad en el tratamiento de programas, permiti cargar varios programas juntos
(uno detrs de otro) en la lectora. Este conjunto se llamo lote de programas. Y a la forma
de trabajar se la llamo procesamiento por lotes o batch.
Solo haba monoprogramacin. Por ello se llama Sistema Operativo Batch Simple. El
JCL nacido para procesos batch, seguramente puede ser reconocido en las sentencias de
extensin bat que se usan en DOS y en la opcin Ejecutar de Windows, por ejemplo.
(bat viene de la palabra batch)

En esta secuencia de programa, se minimizaba la interaccin del operador, dado que


haba un flujo continuo de procesamiento. El monitor residente dio lugar al procesamiento
secuenciado automtico de los programas.

Las tarjetas del JCL contenan diversos:


//JOB era el anuncio de la carga de un programa, con un nombre e incluso una prioridad;
// FORTRAN para decir que se va a compilar un programa escrito en Cobol;
// LOAD era indicativo de la carga de un programa en memoria
// RUN orden de ejecucin del programa
// END indicativo de ltima sentencia fuente o fin de datos

Una programacin tpica de un programa era:


// Job Programa
// Fortran
Instrucciones escritas en fortran
/* indica fin de instrucciones Fortran
// Load crguese el programa Fortran
// Run ejecucin del programa Fortran
datos
/* fin de datos
// END fin del programa
Con esta creacin la memoria quedaba estructurada as:

PAGINA 41 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Vector Interrupciones

Programas que tratan las interrupciones

Drivers
Monitor
Secuenciados de trabajos o jobs Residente

Interprete del JCL

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.

Esquema de memoria, con un Monitor residente

PAGINA 42 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

s.o. Memoria Protegida

p1

p2 Memoria del
usuario

p3

Sistemas Distribuidos

Una tendencia reciente en los sistemas de computacin es distribuir el cmputo


entre varios procesadores.
En contraste con los sistemas fuertemente acoplados, los procesadores no
comparten la memoria ni el reloj. En vez de ello, cada procesador tiene su propia memoria
local. Los procesadores se comunican entre s a travs de diversas lneas de
comunicacin, como buses de alta velocidad o lneas telefnicas. Solemos decir que tales
sistemas estn dbilmente acoplados o distribuidos.

Los procesadores de un sistema distribuido pueden tener diferentes tamaos y


funciones; pueden incluir microprocesadores pequeos, estaciones de trabajo,
minicomputadoras y sistemas de computacin grandes de propsito general. Tales
procesadores reciben varios nombres distintos, como sitios, nodos, computadoras, etc.,
dependiendo del contexto en el que se mencionan.
Hay diversas razones para construir sistemas distribuidos, siendo las principales:

Razones para su uso


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

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

Sistemas de tiempo real

Otro tipo de sistema operativo de propsito especial es el sistema operativo de tiempo


real. Se usa cuando los requisitos de tiempo de respuesta de un procesador al flujo de
datos son estrictos; por ello, a menudo se utilizan como dispositivos de control en
aplicaciones dedicadas (uso especifico para un fin).

Los sensores envan datos al computador, el cual debe analizar estos datos y
posiblemente ajustar controles a fin de modificar las entradas que los sensores miden.
Los sistemas que controlan experimentos cientficos, los que producen imgenes
mdicas, los de control industrial y algunos sistemas de exhibicin son sistemas de tiempo
real y de control de actividad de una represa. Esta clasificacin tambin incluye algunos
sistemas de inyeccin de combustible para motores de automviles, controladores de
aparatos domsticos y sistemas de armamentos. Un sistema operativo de tiempo real
tiene restricciones de tiempo fijas bien definidas.

PAGINA 44 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

El procesamiento debe efectuarse dentro de los intervalos definidos, o el sistema fallar.


Por ejemplo, no es conveniente ordenar a un brazo robot que se detenga despus de
haber chocado con el automvil que est construyendo. Se considera que un sistema de
tiempo real est funcionando correctamente slo si produce el resultado correcto dentro
de los intervalos de tiempo estipulados. Podemos contrastar este requisito con un sistema
de tiempo compartido, en el que es deseable (pero no obligatorio) responder rpidamente,
o con un sistema por lotes, en el que tal vez no haya restricciones de tiempo.

Hay dos tipos de sistemas de tiempo real. Un sistema de tiempo real duro garantiza que
las tareas crticas se terminaran a tiempo.

Este objetivo requiere que los retardos del sistema estn limitados, desde la obtencin de
datos almacenados hasta el tiempo que el sistema operativo tarda en atender cada
solicitud que se le presenta. Tales restricciones de tiempo determinan los recursos que
estn disponibles en este tipo de sistemas. El almacenamiento secundario de cualquier
ndole suele estar limitado o ausente, y los datos se almacenan de preferencia en
memoria de corto plazo o en memoria slo de lectura (ROM, read-only memory). La ROM
se encuentra en dispositivos de almacenamiento no voltil que conservan su contenido
aun en caso de fallar el suministro de electricidad; casi todos los dems tipos de memoria
son voltiles.

Tambin est ausente la mayor parte de las funciones avanzadas de los sistemas
operativos, ya que tienden a separar al usuario an ms del hardware, y tal separacin
causa incertidumbre acerca del tiempo que una operacin tarda. Por ejemplo, los
sistemas de tiempo real casi nunca tienen memoria virtual (que estudiaremos ms
adelante). Por ello, los sistemas de tiempo real duros son incompatibles con el
funcionamiento de los sistemas de tiempo compartido, y no pueden combinarse con ellos.

Un tipo menos restrictivo de sistema de tiempo real es el de tipo real blando, en el que una
tarea de tiempo real crtica goza de prioridad respecto a otras tareas, y conserva esa prioridad
hasta que se lleva a cabo.
Al igual que en los sistemas de tiempo real duros, es preciso limitar los retardos del
ncleo.
El tiempo real blando es una meta alcanzable que puede combinarse con otros tipos de
sistemas. No obstante, los sistemas de tiempo real blandos tienen una utilidad ms
limitada que los duros. En vista de que no apoyan el cumplimento estricto de plazos, es
riesgoso utilizarlos en control industrial y robtica, aunque hay varias reas en las que
pueden ser tiles, como multimedia, realidad virtual y proyectos cientficos avanzados
como la exploracin submarina y planetaria.

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.

Los usuarios de aquel entonces, eran generalmente cientficos o calculistas, que


necesitaban probar sus formulas o sus modelos matemticos. Eran programas orientados
a clculos y requeran mucho tiempo de ingreso de instrucciones y datos.
Por lo tanto, el uso del teclado era intensivo en relacin al tiempo total de procesador.
Obviamente, el teclado es en dispositivo lento, dependiente exclusivamente de la
velocidad del operador. Por otro lado, la velocidad del procesador hacia que el usuario
tuviese la sensacin de que tena una dedicacin completa del equipo y permanente
contacto con la cpu.
El mecanismo de distribuir en forma circular a todos los usuarios sin un criterio
determinado de prioridad, se llama Round Robin. El criterio era tan importante, que fue
aplicado en otros aspectos de los Sistemas Operativos. Se podan introducir comandos
para correccin inmediata y serva para respuestas cortas.
Un ejemplo de TS es el Sistema CTSS primitivo (aunque permita hasta 32 usuarios).
Cada programa cargaba en punto de carga 0. Cuando se cargaba nuevo, aprovechaba si
quedaba parte sin tapar de una carga anterior, NO HABIA REUBICACION

Comparacin entre un Batch Multiprogramado y un Time Sharing

Batch Multiprogramming Time Sharing


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

Miscelneas sobre Sistemas Operativos.

Sistema Operativo Volumen


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

PAGINA 46 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Los desarrollos de S.O. implican la consideracin de tres problemas:

son despachados tardamente: entre la deteccin de necesidades y la implementacin


de las soluciones, hay un tiempo largo en el cual surgen nuevos desafos;

bugs permanentes: es muy comn utilizar al usuario como tester de un producto que,
por su naturaleza debera asegurar tu calidad y correcto funcionamiento

performance real inferior a la prometida y lo que es peor, inferior a la necesaria

UN BUEN SISTEMA OPERATIVO, debe ser construido por capas, con encapsulamiento
(concepto del paradigma de objetos) de su funcionamiento, y con la posibilidad de
crecimiento en volumen de tareas a despachar, y en complejidad.

Cada nivel provee primitivas a sus capas superiores. De modo que cualquier cambio en
las inferiores, no trasciende.
Los mdulos inferiores, conectados con el hardware, trabajan a niveles de billonsimas de
segundo. Las superiores, trabajan a nivel del usuario, mucho ms lento.

ESTRUCTURA DE CAPAS SIMPLES

programa de aplicacin

programa del sistema residente

controladores de dispositivos
del DOS

controladores de dispositivos

PAGINA 47 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

ESTRUCTURA DE CAPAS ENCAPSULADAS (Windows NT 4.0)


Aplicacin Aplicacin Aplicacion

interfaz de programacin de apliciones (API)

subsistema subsistema subsistema

Ncleo del sistema gestin de MP


despacho de tareas
gestin de dispositivos
gestin de procesos

controladores de dispositivos

MICRONUCLEO

Pongamos en el ncleo SOLO las funciones esenciales. Dicha parte del SO pasa a
llamarse: micronucleo

Los otros servicios van fuera del Microncleo y funcionan en modo Usuario.
De all surgen los servicios y el concepto de SERVIDORES para diferentes procesos

La interaccin dentro del Microncleo es va MENSAJES.

Definicin MICRONUCLEO: base del ncleo que permite expansiones


futuras

Intercambiador de mensajes
Concede acceso al HW
Solo deja pasar mensajes permitidos (mejor defensa ante virus)

Se plantean varias cuestiones:

PAGINA 48 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Cun pequeo debe ser el ncleo para llamarse Microncleo?


Como abstraer sus funciones del HW?
las funciones son del ncleo?
las ejecutamos en el ncleo o en el espacio del usuario?
se mantiene la codificacin del SO existente o se reprograma?

Esquema de evolucin actual de la estructura de un Sistema Operativo.

de estructura POR CAPAS a estructura HORIZONTAL

Interactan entre ellos va


mensajes con proteccin
M MODO USUARIO

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

Gestin de 1 sola capa


primitivas de Micronucleo:MO horizontal
procesos DO NUCLEO

HARDWARE HARDWARE

Es difcil construir SO a medida Cliente servidor dentro


Es difcil la seguridad intercalas de un procesador

PERMITE

Interfaz Uniforme a travs de mensajes de peticin


Extensibilidad se pueden agregar nuevos servicios y no requieren construir uno
nuevo
Ncleo Muchos servicios como diferentes organizaciones de archivos
Flexibilidad rehacer un servicio. Se pueden ofrecer opcionales (SO a
medida)
Portabilidad cambiar un procesador con bajo impacto
Fiabilidad solo debe conocer API y mtodos de interaccin

PAGINA 49 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

MICRONUCLEO. SOLO DEBERIA INCLUIR FUNCIONES QUE DEPENDAN


DIRECTAMENTE DEL HW y las funciones para mantener los servicios en MODO
USUARIO
En el MICRONUCLEO se mantienen:
Memoria virtual a bajo nivel, lgica de paginacin
Comunicacin entre procesos
Detector de interrupciones
Manejo de interrupciones enviando mensajes

Resumen
Finalmente, los SO deberan poder garantizar

Equidad Garantizar que cada proceso obtenga su proporcin justa de CPU


Eficacia Mantener ocupada la CPU el 100% de su tiempo
Tiempo de
Respuesta Minimizar el tiempo de respuesta para los usuarios interactivos
Tiempo de
regreso Minimizar el tiempo de espera para usuarios batch
Rendimiento Maximizar el numero de tareas procesadas

SMP MULTIPROCESAMIENTO SIMETRICO (SYMMETRIC


MULTIPROCESSING)

Ante la pronunciada baja del costo del Hardware y la paralela evolucin de los
procesadores, se lleg a la conclusin de que ya no sera posible aumentar abruptamente
la velocidad de proceso. Por lo tanto se investig la posibilidad de hacer procesamiento en
paralelo (similar idea al RAID). La simultaneidad de tareas permiti satisfacer mayores y
ms exigentes necesidades de procesamiento.

Ordenamiento de procesos paralelos


FLUNN propone categoras de sistemas de procesadores
Single Instruction Single Data Stream 1 procesador 1 instruc 1 dato en 1 sola MP
S I M D 1 grupo inst- vs grupos datos en vs procesadores:
PROCESADORES vectoriales/matriciales
M I M D vs. procesadores vs secuencias instruc. vs datos

PAGINA 50 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Los MIMD se dividen en


funcin a como se
comunican los procesadores

Procesadores
Paralelos

SIMD MIMD

Memoria Compartida fuertemente


acoplada Memoria distribuida dbilmente
acoplada

1-Maestro-Esclavo. En
Maestro-Ncleo. En esclavo: CLUSTERS o multicomputador
usuario

2- SMP

Multiprocesador de memoria Cada procesador su PROPIA


compartida memoria = computador integral
COMUNICACIN POR MEMORIA COMUNICACIONES POR RUTAS
O REDES

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

1 - MAESTRO ESCLAVO

MAESTRO: el ncleo esta en un procesador determinado, responsable de la planificacin


de procesos. Se comunica con los restantes a travs de la memoria. Tiene control sobre la
memoria y recursos E/S

ESCLAVO Programas de usuario. Si necesita un hilo, se lo pide al maestro.

Es casi Multiprogramacin. Si se cae el maestro, se cae toda la estructura.


Esto genera mucho overhead para el Maestro con la consiguiente baja en rendimiento y lo
transforma en un cuello de botella.
La estructura es simple pues TODO PASA POR EL MAESTRO Y TODO LO RESUELVE
EL MAESTRO

PAGINA 51 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

2SMP SYMMETRIC MULTIPROCESSOR

El ncleo se puede ejecutar en cualquier procesador.


Cada procesador tiene su propia planificacin de procesos e hilos.
Es ms difcil controlar la distribucin de tareas de SO entre procesadores.
La complejidad est en la comunicacin entre procesadores, diseo del SO y estructuras
de interconexin.

Procesador Procesador registros SMP


UCL UAL

CACHE CACHE

Cache Cache
de disco de disco
B U S Compartido

MP compartida Adaptador de E/S

Adaptador de E/S

Adaptador de E/S

BUS UNICO MDEMORIA COMPARTIDA

Una cache por procesador. Da mucha ms velocidad pero hay que tener cuidado con los
CAMBIOS. Debe haber coherencia entre caches para que un cambio que quedo registrado
en la cache, sea tomado de all.

COMUNICACIN: Memoria Compartida o Mensajes. Hay problemas de


sincronizacin.

PARA EL USUARIO: Es un UNICO PROCESADOR con Multiprogramacin. Puede


desarrollar aplicaciones con mltiples procesos con mltiples hilos c/u

CUIDADOS rutinas del ncleo deben ser reentrantes


PLANIFICACION se pueden ejecutar hilos del mismo proceso en diferentes
procesadores
SINCRONIZACION exclusin mutua. Evita el deadlock
GESTION DE MP se comparten pginas

PAGINA 52 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

FIABILIDAD si hay falla del procesador === reorganizacin automtica

MULTIHILOS-MULTITHREADING
Hasta ahora un proceso tena una unidad conceptual de propiedad de recursos y una
unidad conceptual de ejecucin o planificacin.
imagen
Direcciones virtuales
Datos
Pila
PCB
Archivos,
El SO los provee y da
dispositivos
proteccin entre
otros procesos

1) La imagen de un proceso est compuesta por las direcciones de memoria ocupada por
sus instrucciones y sus datos, su PCB, la pila asociada a cada proceso y la vinculacin
con sus archivos. Este conjunto de recursos es propiedad del proceso y el sistema
operativo da proteccin a estos recursos compartidos.

2) Cada proceso tiene adems una unidad de Ejecucin / Planificacin intercalado con
programas del SO que lo hacen ejecutar. El SO hace pasaje de estado de usuario a
supervisor y planifica la ejecucin de los procesos por prioridad y por orden de llegada

Con la introduccin del concepto de MULTIHILO, se pasa a otro paradigma a partir del
cual cada proceso puede tener varios hilos de ejecucin. Cada hilo es una unidad activa o
thread o proceso ligero.
Cada hilo tendr:
un estado de ejecucin (ready, blocked, running, etc)
Una PCB
Una pila de ejecucin
Espacio de almacenamiento para variables locales
Acceso a la memoria compartida con los otros hilos de un mismo proceso

Para el procesamiento de las instrucciones se pueden definir 4 modalidades.


a) 1 Proceso 1 Hilo Tradicional DOS
b) varios procesos 1 hilo por proceso Unix
c) 1 proceso vs Hilos JAVA
d) vs. procesos vs hilos por proceso SOLARIS, OS/2

PAGINA 53 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

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


estructura

PCB Pila Usuario

Espacio de Pila de
direcciones ncleo para
de Usuario llamadas y
retornos
En un entorno de Multihilo se presenta el siguiente esquema

Por cada hilo


PCB del Prioridad
Estado
proceso
PCB PCB

Pila Pila
c Usuario Usuario
o
Espacio de m
direcciones p
del Usuario a
Pila Pila
r
Ncleo Ncleo
t
e
n

En Multihilo sigue habiendo una PCB para el proceso y un espacio de direcciones


ocupada por el mismo pero hay adems:
Una pila por hilo, una PCB por hilo con toda la informacin que contiene la misma.
Todos los hilos comparten los recursos del proceso padre y todos tienen acceso a los
mismos datos. Por lo que si un hilo cambia un dato, es visible para los dems. Lo mismo
ocurre ante la apertura de un archivo, pues todos sus hilos hermanos ven al archivo

Por lo tanto un proceso implica la existencia de varias unidades de ejecucin relacionada


y mucho ms eficiente que varios procesos.

PAGINA 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

Ejemplos de aplicacin de multihilo


En Primer Plano se manejan los menes de Excel mientras que en Background se
actualizan datos de otra planilla Excel
Un hilo puede editar un texto mientras otro hace un backup
Un hilo puede hacer una lectura de un archivo mientras otro hace algn proceso
simultneamente

En un soporte multihilo, la planificacin y la activacin se hacen a nivel de hilos. Sin


embargo hay actividades que se dan a nivel de proceso afectando a todos los hilos: sus
pender un proceso es privarlo de un recurso compartido con sus hilos. Al igual que la
finalizacin de un proceso obliga a la finalizacin de todos sus hilos.

Los Hilos pueden pasar por estos estados propios. Running Ready Blocked.

OPERACIONES CON HILOS


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

BENEFICIOS:
PROCESO EN PARALELO. Similar a MULTIPROGRAMACION

Al compartir espacio de direcciones y archivos todos los hilos pueden accederlos. Se hace
necesario tomar ciertos recaudos para que no se corrompan. Por ejemplo, si dos hilos
quieren simultneamente modificar elementos de una lista. La sincronizacin que debe
hacerse exige cierto OVERHEAD

Con la introduccin del concepto de multihilo podramos definir al Multiprocesamiento como


la ejecucin de varios procesos con varios hilos cada uno

PAGINA 55 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

IMPLEMENTACION DE HILOS

Hay dos modalidades para la implementacin de Hilos

a) Hilos de usuario: ULT (User Level Thread)

b) Hilos a nivel de kernel: KLT (KERNEL LEVEL THREAD) o (KERNEL


SUPPORTED THREAD) o LEIGHTWEIGHT PROCESSES

ULT Hilos a nivel de usuario


El proceso maneja los hilos. El ncleo nunca es requerido por lo que no tiene ningn
control sobre ellos
Estando el proceso principal en Running accede a una biblioteca especializada en Hilos y
all se invoca su creacin. Por lo tanto es totalmente independiente del ncleo. Solo se
requieren dos cambios de contexto: entrar a la biblioteca y otro para salir de ella,
cuando los hilos fueron creados. Todo esto tiene lugar en el modo usuario por lo que
evita los cambios de modo.

Los hilos creados, tal como fue explicado anteriormente tienen su propio estado al igual
que el mismo proceso padre
Pero cuando un ULT llama al ncleo, se bloquea todo el proceso.
Se pueden ejecutar en diferentes Sistemas Operativos.

Multihilo ejecutado en un monoprocesador implica una multiprogramacin acelerada, pero


no se pueden distribuir hilos entre procesadores

KLT HILOS A NIVEL KERNEL (NUCLEO)

En KLT Puro el proceso no absorbe la gestin de hilos. Es el Ncleo o Kernel quien se


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

PAGINA 56 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Windows
HILOS

Biblioteca
HILOS
Espacio del
usuario

HILO HILO HILO

NUCLEO P

ULT K LT Puro

PAGINA 57 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

PREGUNTAS SOBRE SISTEMAS OPERATIVOS


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

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)

1) Un proceso en estado inactivo se encuentra alojado en memoria principal, mientras


que uno activo est en disco rgido.
2) El PCB es un conjunto de datos que necesita el sistema operativo para poder
administrar un proceso
3) Un proceso en estado de ejecucin (running) tiene el uso del procesador mientras
que uno bloqueado (blocked) se diferencia nicamente del anterior porque no lo
tiene.
4) El swapping se produce siempre que un proceso que debe ser ejecutado no
encuentra memoria disponible
5) Un proceso por lotes (batch) consiste en ir solicitando la ejecucin de los
procesos que no requieren conversacin con los usuarios
6) Un proceso suspendido no esta disponible para la ejecucin, puesto que se
suspende siempre que se esta a la espera de algn suceso por l pedido
7) Una bifurcacin incondicional implica la modificacin del RPI en el ciclo de
instruccin
8) Una habilidad elemental de un procesador es la orden que emite el programador
en su programa
9) El Rpi contiene la instruccin prxima a ejecutarse
10) EL PSW contiene bits que muestran los resultados del programa
11) Una interrupcin significa que el programa en running deja de estarlo y pasa a
ready por decisin autnoma del proceso
12) Una interrupcin consta exclusivamente de guardar la informacin de los registros
en la PCB correspondiente
13) La organizacin SMP es una forma de administrar un cluster de procesadores
14) Hay un stack por cada programa de usuario
15) El stack contiene instrucciones del programa al que pertenece.
16) La cache aumenta la velocidad del procesador
17) La cache evita un acceso a memoria
18) Hay dos polticas para actualizar la memoria cada vez que se produce una
modificacin en el programa cargado en memoria
19) En KLT el ncleo del SO se ocupa de proveer un nuevo hilo al proceso solicitante
20) En ULT el ncleo del SO se ocupa de proveer un nuevo hilo al proceso solicitante
21) En SMP cada procesador administra su propia porcin de memoria
22) Un cluster de computadoras permite administrar a cada procesador su propia
memoria principal
23) En una organizacin Maestro/esclavo, cada procesador administra funciones
especficas del SO
24) El mecanismo de Round Robin en un sistema operativo de Time Sharing le da a
cada usuario el tiempo de la cpu dividido la cantidad de usuarios logeados
25) El concepto de lote en un sistema operativo Batch (que significa lote) se refiere
a que cada programa se cargaba en la lectora de tarjetas y se consideraba un lote
de tarjetas

26)Las prioridades pueden ser estticas o dinmicas segn sean asignadas por el
sistema operativo o por el propietario del proceso

PAGINA 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

f. Partes de la CPU que se usan como memorias para guardar direcciones


de memoria y/o resultados de clculos
7. PSW
a. Equivalente al dispositivo llamado canal o bus.
b. Es un registro de uso general
c. Es un registro de uso especifico
d. Contiene una serie de bits (flags, banderas) cuyos valores son
modificados por cada instruccin ejecutada
e. Es consultada por las instrucciones de salto incondicional
f. Es consultada por las instrucciones de salto condicional
8. Cdigo de operacin
a. Es el signo del resultado de cada operacin matemtica
b. Es un conjunto de 0 o n direcciones codificables en cada instruccin
c. Es un conjunto de dos bytes que indican la accin que debe implementar
cada instruccin de un programa de usuario
d. Ninguna de las anteriores
9. Operandos
a. Es un dato que acompaa a cada instruccin de maquina
b. Son exclusivamente direcciones que acompaan a cada instruccin de
maquina
c. Son partes de toda instruccin de maquina que contienen datos o
direcciones a memoria principal
d. Es cierta solo la ultima respuesta
10. Ciclo de instruccin
a. Es una de las cinco partes en que se divide el procesamiento de una
instruccin
b. En l se calcula el nuevo valor del RPI
c. En l se analiza el cdigo de operacin
d. En l se analiza cada uno de los operandos
e. Es el ciclo donde se ejecuta cada instruccin
f. Todas las anteriores
11. Interrupcin
a. Es una comunicacin de la CPU a un dispositivo indicando que el
programa no puede seguir
b. Es una comunicacin al SO de que se produjo un error de hardware y el
programa no puede continuar
c. Es una comunicacin entre un registro de uso general a la CPU
indicando que el resultado de una operacin excede el tamao del
registro
d. Es una comunicacin al SO de que se produjo una direccin invlida y el
programa no puede continuar
e. Es una comunicacin de un dispositivo a la CPU avisando que se ha
cumplimentado un pedido de E/S para dicho dispositivo
f. Es una comunicacin al SO de que se produjo un time out
g. Algunas de las anteriores son ciertas
12. STACK PILA
a. Solamente hay una por cada programa de usuario en ejecucin
b. Solamente hay una para el Sistema Operativo
c. Hay una sola pila por cada sistema operativo

PAGINA 64 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

13. Cambio de contexto


a. El SO deja de procesar un programa para pasar a otro
b. Proceso que permite continuar con el procesamiento de un programa
despus que el procesador se ocupo de procesar otro que estaba en
memoria
c. Se manifiesta tomando el ltimo valor contenido en la PILA de cada
programa y pasar a procesar a partir de ella
d. Es preservar los valores de los registros en la pila de cada programa
e. Es preservar los valores de todos los registros en la PCB de cada
programa
f. Proceso tpico como resultado de una interrupcin
14. Vector de interrupciones
a. Es un vector con direcciones de programas
b. Es un vector cargado en memoria
c. Es un vector con una entrada por cada una de las interrupciones posibles
y una direccin de memoria por cada uno de ellos
d. Los programas a los que se refiere la respuesta a. se refieren a los
generados por los programadores
e. Todas las anteriores
f. El vector reside permanentemente en memoria
g. Ninguna de las anteriores
15. Principio de localizacin
a.
b. Posicin inicial de memoria de cada programa del usuario
c. Uno de los principios de Von Neumann
d. Resultado de los principios de Von Neumann
e. Probabilidad de que luego de una instruccin se ejecute la adyacente
f. Todas las respuestas son ciertas
16. CACHE
a. Software que reemplaza las funciones de la memoria principal
b. Hardware que reemplaza las funciones de la Memoria Principal
c. Hardware que cumple las funciones de la Memoria principal
d. Hardware que permite ahorrar accesos a memoria principal
e. Todas las anteriores
17. DMA
a. Disco adicional mas rpido que el que viene con cada equipo
b. Software que acelera la transferencia de datos
c. Hardware que comunica directamente el disco con memoria principal
d. Implementacin de E/S de informacin que evita trabajo al procesador
e. Solo la ultima respuesta es cierta
18. El DMA:
a. Es un mdulo que recibe informacin desde el procesador y que le
permite encargarse de las operaciones de E/S
b. Es un mdulo que permite independizar el procesador de las operaciones
de E/S
c. Es una cache de transmisin de informacin
d. Ninguna de las anteriores
19. Spooler
a. Implementacin de una cola servicios

PAGINA 65 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

b. Se construyeron spooler de entrada (para la carga de trabajos) y otro de


salida (para la administracin de la impresora)
c. Permiti la administracin de mltiples funciones de impresin contando
con un nico dispositivo en un entorno multiusuario
d. Todas las anteriores
20. Proceso
a. Es un programa activo
b. Es un programa en ejecucin
c. Es un programa mas su entorno
d. Todas las anteriores
e. Es la copia en memoria de un programa guardado en disco
21. P.C.B.
a. Es un registro de uso general
b. Es un tramo de memoria
c. Existe una sola para el SO
d. Existen tantas como procesos se estn ejecutando
e. Las PCBs de los programas de usuario varan de tamao
22. 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
23. 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
24. Estado Blocked/Suspended
a. Es un estado al que se llego por dos eventos: pedido de E/S y
suspensin
b. A dicho estado se lleg desde el estado running
c. A dicho estado se llego desde el estado suspended del proceso
d. A dicho estado se lleg desde el estado blocked
e. Todas las anteriores son falsas
25. Suspensin
a. Un proceso es suspendido cuando se lo incorpora a memoria principal
b. Un proceso es suspendido cuando se lo excluye parcialmente de
memoria principal
c. Un proceso es suspendido cuando se lo excluye completamente de
memoria principal
d. Implica la copia del programa a disco para su posterior reincorporacin
e. Implica el proceso de swapping
26. Cola de procesos en estado blocked
a. Se ordenan por tiempo de llegada (definicin de cola)
b. Se ordenan por tiempo de llegada (definicin de cola) y por dispositivo
c. Se ordenan por dispositivo para una bsqueda mas rpida
d. Todas las anteriores
27. Batch
a. Se refiere a lotes de programas

PAGINA 66 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

b. Tipo de SO nacido para automatizar la ejecucin secuencial de


programas
c. Tipo de SO nacido para evitar la intervencin del usuario
d. Incorporo el concepto de monitor residente
e. Todas las anteriores
28. SO residente
a. Se refiere a que siempre hay una copia en disco
b. Se refiere a la aparicin del tipo de SO Batch
c. SO con la modalidad de estar permanentemente cargado en memoria
d. SO que controlaba el flujo de ejecucin de los programas mediante la
incorporacin del JCL
29. SO en tiempo real
a. Sirve para el manejo de maquinas herramientas
b. No trabaja con interrupciones y cambios de contexto para acelerar su
respuesta
c. Generalmente gira alrededor del control de dispositivos
d. Generalmente tiene prefijados los puntos op direcciones a los que
ingresa la informacin del entrono
30. Time Sharing
a. El procesador divide su tiempo entre los procesos presentes
b. El procesador entrega a cada proceso una misma cantidad de tiempo
c. El programador siente que tiene una maquina completa a su disposicin
d. Cada tramo de tiempo entregado a cada procesose llama time slice
e. Todas las anteriores
f. Ninguna de las anteriores
31. Microncleo
a. Es la ms inferior de las capas de una estructura de un SO por capas
b. Es el conjunto de las funciones mas elementales de un sistema operativo
c. Es el sostn bsico para una estructura de un SO por servicios
32. Servidor
a. Es un sistema operativo estructurado en servicios especializados
b. Es una computadora
c. Es un servicio especializado que ofrece un SO alojado, probablemente,
en una maquina especializada.
d. Permite la estructuracin inteligente de un SO poniendo nfasis en el HW
o SW necesario para que cada servicio pueda llegar a todos los usuarios
con la menor multiplicacin de recursos
33. SMP
a. Es un modelo de procesador surgido cerca de 1980
b. Es una estructura de procesamiento distribuido
c. Son varios procesadores, cada cual con su propia memoria
d. Son varios procesadores compartiendo la memoria
e. Son varios procesadores donde uno de ellos cumple funciones del
sistema operativo
f. Tiene un SO equilibrado, pues cuando falla uno las funciones del SO que
tena hasta ahora se redistribuyen
34. Maestro/Esclavo
a. Es una estructura de procesamiento distribuido
b. Son varios procesadores, cada cual con su propia memoria
c. Es un modelo de procesador surgido cerca de 1950

PAGINA 67 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

d. Son varios procesadores compartiendo la memoria


e. Son varios procesadores donde uno de ellos cumple funciones del
sistema operativo
f. Tiene un SO equilibrado, pues cuando falla uno las funciones del SO que
tena hasta ahora se redistribuyen
35. Multithread-Multihilo
a. Innovacin que permite un aumento en la velocidad del procesador
b. Innovacin que permite procesamiento en paralelo
c. Innovacin que permite que cada proceso tenga varias unidades de
ejecucin
d. Entre los hilos de un proceso no hay comunicacin alguna pues son
entes independientes.
e. Los hilos se manejan entre si por prioridades
36. Las Interrupciones:
a. Son mecanismos que permiten detener la ejecucin normal de un
proceso
b. Pueden ser provocadas por fallos de memoria
c. Se tratan por software a partir de una serie de acciones de la Rutina de
Tratamiento correspondiente
d. Ninguna de las anteriores
37. Al atenderse una interrupcin:
a. Se producen una serie de acciones del hardware, entre ellas el preservar
el RPI y la PSW del proceso que se interrumpe en la pila del sistema,
seguidas de acciones del Software, entre ellas restaurar los valores
anteriores para volver al control al programa interrumpido.
b. Se ponen en zero todos los registros de uso general y los especficos
c. Ninguna de las anteriores

38. Un sistema Operativo jerrquico est compuesto por:


a. Niveles. Cada uno de ellos resuelve una serie de funciones y tienen una
clara interfaz entre niveles contiguos.
b. Niveles determinados por la importancia de los servicios que presta cada
uno de ellos
c. Rutinas entrelazadas llamadas niveles, que resuelven los servicios del
sistema operativo.
d. Ninguna de las anteriores

39. El ncleo o kernel del Sistema Operativo:


a. Es el nivel que se ocupa de las funciones referentes a las operaciones
sobre la UCP y la planificacin de los procesos, entre otras cosas.
b. Es el nivel que maneja la transferencia de datos entre la memoria y el
almacenamiento secundario
c. Es la interfaz entre el usuario y el sistema Operativo
d. Ninguna de las anteriores
40. El Intrprete de comandos:
a. En un sistema Operativo jerrquico es la interfase entre el usuario y los
otras niveles del SO
b. En un sistema monoltico es el nivel del SO que se encarga de la
creacin y terminacin de los procesos

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

45. Los algoritmos del planificador son No apropiativos:


a. Permiten terminar de procesarse al proceso en estado running
b. Comparte ciclos de memoria con el proceso en estado running
c. Inhabilitan el bit de interrupciones en el PSW
d. Ninguna de las anteriores

PAGINA 69 DE 70
Sistemas Operativos Prof. Alberto Rozenfarb

Significado de palabras clave


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

PAGINA 70 DE 70