Вы находитесь на странице: 1из 71

Sistemas Operativos Prof.

Alberto Rozenfarb

ARQUITECTURA Y SISTEMAS OPERATIVOS

Primer Modulo

Prof. Alberto ROZENFARB

PAGINA 1 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

INDICE
DEFINICIÓN DE SISTEMA OPERATIVO..............................................................................6
Esquema estructural...........................................................................................................6
HISTORIA...............................................................................................................................7
PRIMERA GENERACIÓN (1949/1959).............................................................................9
SEGUNDA GENERACIÓN (1959/1965)............................................................................9
TERCERA GENERACIÓN (1965/1970).............................................................................9
EVOLUCION DE LOS SISTEMAS OPERATIVOS..............................................................10
CONCEPTO DE PROGRAMA ALMACENADO..................................................................10
Algunos componentes de la CPU........................................................................................11
Descripción de los registros usados por un programa........................................................12
Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II........................................13
Descripción del procesamiento de un programa.................................................................13
Ciclo de instrucción:..........................................................................................................14
Ciclo de ejecución:............................................................................................................14
Ciclo de interrupción:........................................................................................................14
Interrupciones.......................................................................................................................15
Stack.................................................................................................................................15
Punto de Retorno..............................................................................................................15
Problemas inherentes a la Multiprogramación.................................................................16
Cambio de contexto..........................................................................................................17
Interrupción.......................................................................................................................17
Atención de una interrupción:...........................................................................................18
Resumen paso a paso......................................................................................................18
Motivos de Interrupciones................................................................................................19
Jerarquías de memoria........................................................................................................19
Principio de localización.......................................................................................................20
Memoria Cache....................................................................................................................20
Ejemplo del funcionamiento de una memoria Cache.......................................................21
Técnicas Controladoras De Entradas/Salidas De Datos.....................................................22
1) Entrada Salida programada:.......................................................................................22
2) Entrada Salida por Interrupciones:.............................................................................22
3) E/S por D.M.A ( Acceso directo a memoria):...............................................................22
Típico diagrama de bloques del DMA..............................................................................23
Protección de Recursos Compartidos:.................................................................................25
DESARROLLO DE PROGRAMAS...................................................................................25
EJECUCION DE PROGRAMAS......................................................................................25
ACCESO A DISPOSITIVOS DE E/S................................................................................26
ACCESO CONTROLADO A LOS ARCHIVOS................................................................26
ACCESO AL SISTEMA....................................................................................................26
DETECCION DE ERRORES Y RESPUESTA.................................................................26
CONTABILIDAD...............................................................................................................26
DISEÑO JERÁRQUICO GENÉRICO DE UN SISTEMA OPERATIVO:..........................26
SPOOLING.......................................................................................................................28
Multiprogramación:...............................................................................................................28
Necesidad de definir procesos.............................................................................................29
PROCESOS.........................................................................................................................29
PCB (Process Control Block)...........................................................................................30
ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK...............................30

PAGINA 2 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Identificación de Procesos................................................................................................30
Información del estado del procesador............................................................................30
Información de control de procesos.................................................................................30
ESTADOS DE UN PROCESO:............................................................................................31
Diagrama general de estados (estructura de dos estados):............................................31
Time Out...........................................................................................................................32
Motivos de finalización de un proceso:............................................................................32
EVOLUCION DE UN PROCESO:....................................................................................33
Esquema de 8 estados:................................................................................................33
Transiciones De Estados De Un Proceso....................................................................34
Suspensión (que genera swapping).............................................................................35
Reingreso de un programa a proceso..........................................................................35
Descripción esquemática de procesos.........................................................................36
Implementación de las colas.........................................................................................36
REPRESENTACION DE UN PROCESO EN MEMORIA.............................................37
PLANIFICACION DE CORTO PLAZO - DISPATCHER.........................................38
Políticas de Administración del Procesador.....................................................................38
SJF Shortest Job First................................................................................................39
Planificación por prioridad.............................................................................................40
ROUND ROBIN.............................................................................................................40
Evolución de los Sistemas Operativos.................................................................................40
Serial.................................................................................................................................40
Batch Simple.....................................................................................................................41
Batch Multiprogramado.....................................................................................................43
Razones para su uso........................................................................................................44
Recursos Compartidos.................................................................................................44
Computación más rápida..............................................................................................45
Confiabilidad.................................................................................................................45
Comunicación...............................................................................................................45
Comparación entre un Batch Multiprogramado y un Time Sharing.............................47
Misceláneas sobre Sistemas Operativos.........................................................................47
ESTRUCTURA DE CAPAS SIMPLES.........................................................................48
ESTRUCTURA DE CAPAS ENCAPSULADAS (Windows NT 4.0)..............................49
MULTIHILOS-MULTITHREADING......................................................................................54
OPERACIONES CON HILOS..........................................................................................56
BENEFICIOS:...................................................................................................................56
IMPLEMENTACION DE HILOS.......................................................................................57
ULT Hilos a nivel de usuario........................................................................................57
KLT HILOS A NIVEL KERNEL (NUCLEO)...............................................................57
PREGUNTAS SOBRE SISTEMAS OPERATIVOS............................................................59
TRABAJO PRACTICO I.......................................................................................................62
TRABAJO PRACTICO II......................................................................................................64
Significado de palabras clave..............................................................................................71

PAGINA 3 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

INTRODUCCIÓN

Con el afán de ubicar al contenido de nuestra materia vinculado al funcionamiento de un


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

Una posible visión elemental o primitiva, es la de una caja negra, de la cual no conocemos
su funcionamiento. Solo conocemos que nos permite hacer cálculos, guardar información
para una posterior elaboración, entregarnos información elaborada, es decir podemos
observar, que está compuesto por un conjunto de dispositivos cada uno con una función
específica, vinculados con una cierta lógica y conectados por un cableado, trabajando de
manera coordinada. Esa coordinación nos la da el Sistema Operativo por lo que
representa para el usuario, un cierto nivel de abstracción: este reconoce su existencia sin
conocer su estructura interna.

Los programas de aplicación desarrollados por el usuario, son un nuevo nivel de


abstracción, una solución para un problema especifico.

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

Materia prima Producto elaborado

Caja Negra

datos información

Puede definirse desde un punto de vista exterior, como maquina virtual o maquina
extendida: el usuario siente que tiene una maquina completa para él y sus necesidades.
Desde un punto de vista interior, es un administrador de recursos.

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


por su fabricante. Estas pueden ser invocadas por órdenes específicas (llamadas
instrucciones), que conforman el lenguaje de máquina. Están implantadas en el
hardware de la maquina, variando su tipo y cantidad según el modelo y el fabricante.
La mayoría de dichas habilidades, sirven para trasladar datos de un dispositivo a otro,
albergar resultados intermedios, hacer operaciones matemáticas, 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 ejecución de cualquiera de esas habilidades elementales, con el

PAGINA 4 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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


que resuelven un problema específico, se llama programa. Dicho mediador
funcionará interpretando las órdenes, trasladándola al dispositivo correspondiente para su
ejecución o cumplimiento y contando además, con mecanismos que faciliten el uso de la
computadora, el análisis del resultado de cada ejecución y la coordinación de su
funcionamiento interno.

DEFINICIÓN 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 información: el bus o canal., El disco, la cinta y
otros soportes similares de información, sirven para guardar información a lo largo del
tiempo. Los programas que habitualmente residen en disco, se cargan en memoria para
su ejecución. Allí opera el procesador, quien elabora y ejecuta cada una a una las
instrucciones integrantes del programa en ejecución.

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


la memoria, ejecución de sus programas, administración de soportes de información,
detector de errores y comunicador de los mismos al usuario, flujo de información entre
componentes, etc. Así, podríamos pensar al Sistema Operativo como una herramienta
que permite alcanzar los siguientes objetivos:
 facilitar del uso de una computadora;
 permitir la utilización eficientemente de los recursos de una computadora y
compartirlos entre diferentes usuarios;
 facilitar al usuario la ejecución de las funciones de entrada/salida de datos;

PAGINA 5 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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


testeo de sistemas e introducción de nuevas habilidades, con la menor
interferencia con lo ya desarrollado.

Entre el usuario (círculo más 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 evolución de las computadoras, a la necesidad de incorporar a mayor cantidad de
usuarios (por fines económicos y satisfacción de creciente demanda) y fundamentalmente
respondiendo al principio hedónico aplicable a cualquier equipamiento o herramienta de
uso especifico:
Obtención de mayores beneficios con el mínimo esfuerzo u obtención del mismo
beneficio con el menor esfuerzo: ingenio y creatividad al servicio de un
aprovechamiento integral de las posibilidades que dicho equipamiento brindaba en
cada hito de su evolución.

Es de hacer notar que este principio tiene una raíz netamente económica y ello podrá
observarse a lo largo de toda su evolución. El planteo fue siempre: ¿cómo puede
optimizarse la utilización de mi herramienta en pos de una mayor rentabilidad, de un
usufructo más ventajoso?
Aun sin ser riguroso y por razones didácticas, podemos entender y analizar la evolución
de los sistemas operativos ubicándonos frente a lo que podríamos considerar como la
más primitiva maquina de calcular: el ábaco (año 1000 aprox). Objetivo de su
construcción: maquina que ayude al hombre en trabajos repetitivos.

La máquina de PASCAL (1642), es un interesante reflejo de esta afirmación. 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 posición en el disco de su izquierda. El mismo criterio se aplicaba a los restantes
discos en la misma dirección. Su creador la utilizó ayudando a su padre (recaudador de
impuestos) a calcular la suma de las percepciones con fines de control.

PAGINA 6 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Otra percepción del principio impulsor de los sistemas operativos, fue la aparición de la
máquina de Jaquard (1801). Este señor era un tejedor de alfombras. Incentivado por el
éxito de sus diseños, intento crecer económicamente buscando dos objetivos: poder
repetir un mismo diseño, acortando los tiempos de producción. Por ello diseño un patrón
para que sus telares trabajasen automáticamente: el entretejido de los hilos longitudinales
(que ya venían cargados en el telar) con el hilo transversal que daba colores y formas, era
dirigido por cartulinas estratégicamente perforadas. Estas perforaciones guiaban la
lanzadera, parte fundamental del telar. Obtuvo automaticidad (incrementando su
productividad) y pudo repetir el proceso satisfaciendo la demanda de sus clientes. Este
criterio aun hoy sigue vigente (telas Jacquard), obviamente en maquinas con una
productividad superior.
De aquí puede anticiparse un moderno concepto de desarrollo de sistemas: la
reutilización de ciertos programas (las cartulinas).

Pueden mencionarse en esta historia, la maquina analítica de Babagge (1834). Era una
herramienta mecánica que nunca funciono pues no se pudieron construir las poleas y
soportes diseñados.

Es muy importante la aparición 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 años en contabilizar un censo, pasó a hacerse en dos años. Se
pudo acceder a información vigente aumentando las posibilidades de análisis 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 evolución histórica, previa aun a la existencia de lo que hoy
consideramos como sistema operativo, fue la Segunda Guerra mundial. Se requería
velocidad de procesamiento y la posibilidad de modelar visiones multidisciplinarias, para la
resolución de problemas originados en la guerra (simulación, cálculo de trayectoria de
obuses, etc.). Nacieron así la MARK I(1944) y la ENIAC (1945). Esta ultima funcionaba
con un sistema decimal, pesaba 30 toneladas y estaba compuesto por 18000 (dieciocho
mil) válvulas al vacío. Es necesario imaginar su funcionamiento, considerando el calor que
generaban tal cantidad de elementos y la cantidad de interrupciones por mal
funcionamiento de dichas válvulas, quienes se quemaban frecuentemente por la
temperatura que disipaban. Su uso más importante fue el apoyo para cálculos
matemáticos, principalmente trigonométricos.

Es interesante estudiar el material incluido en el siguiente sitio

http://www.wired.com/magazine/2010/07/ff_fred_brooks/

ESQUEMA EVOLUTIVO FORMAL DE LAS COMPUTADORAS.


A continuación se comentan las conocidas evoluciones de sistemas de computación. Se
las conoce como Generaciones, y fundamentalmente, están vinculadas a la evolución del
hardware que las, principalmente por la integración de sus componentes y por la evolución
de materiales utilizados en su construcción.
El pasaje a cada nueva generación, se determina por cambios tecnológicos de
envergadura y nuevos desarrollos en técnicas de programación que implican un gran salto
o evolución en la explotación de los equipos.

PAGINA 7 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Muchos de estos cambios están vinculados a la compactación física de circuitos por


cambios tecnológicos. Esto implico una disminución del tamaño de los equipos, aumentos
notables de velocidad de procesamiento y disminución de consumo eléctrico, reducción de
partes móviles y modernización en intervención humana para la construcción de partes.

Esto implico, en cada oportunidad, construcciones mas automatizadas, reducción de


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

PRIMERA GENERACIÓN (1949/1959)


Segunda Guerra Mundial. Construcción basada en válvulas al vacío y relays. Son equipos
electromecánicos, de gran tamaño, escasa capacidad y difícil mantenimiento.
Especialmente construida para cálculos trigonométricos. Los programas deben ser
ejecutados de a uno por vez (monoprogramación) 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 GENERACIÓN (1959/1965)


Se sustituyen válvulas y relays por transistores y diodos. Aparecen discos magnéticos y
las impresoras a cadenas. Nacen los lenguajes simbólicos 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 están en
línea con la maquina central. Aquí nace el primer embrión de Sistemas Operativos con el
objetivo (siempre económico) de ganar tiempo y aprovechar simultaneidad de operaciones
(paralelismo). Se comenzó a considerar la conveniencia económica de fabricar
computadoras en serie, aumentando la rentabilidad por su utilización.

TERCERA GENERACIÓN (1965/1970)


Aparición de los circuitos integrados. Aparece una gran variedad de dispositivos de
entrada / salida de todo tipo, con periféricos independientes de la C.P.U. Aparición del
bus o canal y del manejo de interrupciones, fue revolucionario dando lugar a la
multiprogramación, con Sistemas operativos orientados a esa características. Gran
impulso a sistemas operativos de tiempo real y tiempo compartido. Lenguajes de alto
nivel. Aparición de las bases de datos. Nacen computadoras que van creciendo por
familias: compatibles con un soft pero con oferta de tamaños diferentes propios para
diferentes aplicaciones.
Nace la idea de construcción de Sistemas Operativos de uso general, aplicables tanto a
maquinas de orientación científica como comercial.

CUARTA GENERACIÓN (1970/1990?)


Construcción de circuitos integrados a muy alta escala que trajo aparejada compactación
de tamaño potenciación de velocidades de proceso y volumen de almacenamiento y baja
abrupta de costos. Dominio absoluto de microprocesadores integrados en un chip.
Periféricos sofisticados para procesamiento de sonido, imagen y grafica. Inicio de los
discos ópticos con tecnología láser. Sistemas operativos orientados a redes. Lenguajes de
4ta generación.

PAGINA 8 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

EVOLUCION DE LOS SISTEMAS OPERATIVOS


De lo leído hasta ahora, es necesario aislar tres conceptos:
Hardware (dispositivos y mecanismos físicos) que conforman el equipo de computación;
Recursos o servicios que ofrece el Hardware
Datos: conforman la materia prima que como usuarios queremos trabajar para obtener
información útil;
Programas desarrollados por cada usuario para resolver un problema específico usando
las facilidades que entrega el funcionamiento del hardware.

El sistema operativo articula la integración de estos factores, encapsulando (para los ojos
del usuario) el funcionamiento del hardware, permitiendo una facilitada y eficiente
administración de los datos e información (ingreso, procesamiento y almacenamiento) y el
suministro y administración eficiente de los recursos exigidos por los programas puestos
en marcha.
Este encapsulamiento (concepto utilizado fuertemente en modelado orientado a objetos)
permite un cierto nivel de abstracción (solo se conoce su utilización, pero no su
funcionamiento: tampoco podemos modificarlo).

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 evolución y su desarrollo actual.

CONCEPTO DE PROGRAMA ALMACENADO


El propósito de repasar la historia, no es la de recordar fechas, nombres. Es conocido el
fracaso de cualquier intento de fijar esos conocimientos. Lo verdaderamente útil, es

PAGINA 9 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

estudiar en la historia la evolución de los conceptos intuidos y desarrollados. Su


integración como sistema y su potenciación al desarrollarse formas de trabajo más
modernas, veloces y seguras, nos permitirá entender las ideas concebidas, los problemas
enfrentados y las correspondientes soluciones, su importancia y vigencia y la participación
de dichos hechos en la evolución de los sistemas operativos.

John von Neumann (1949) definió un modelo de computación con ciertos ingredientes,
que fueron bisagra para la concepción moderna de lo que es una computadora:
 el programa almacenado.
 El concepto de salto condicional
 Definición de un programa como cadena lógica binaria.

Si observamos el uso de una calculadora en la resolución de la suma de dos números,


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 números. 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 utilización del mismo. Los dos sumandos varían 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 estaría en
condiciones de repetir esta operación 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 ejecución.

Esta ejecución significa que el conjunto de órdenes cargadas se ejecutara en un orden


secuencial. Pero este autor agrega un concepto adicional: propuso la incorporación de
una nueva habilidad que, cambiase dicha secuencia de ejecución del programa
condicionada por una determinada condición a verificar (por ejemplo, resultado de una
operación previa, o signo de un operando recién calculado). Se puede definir a esta
instrucción como salto condicional o ruptura condicional de secuencia. Según el
resultado de la verificación 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 específicos de la CPU.
Son utilizados por las instrucciones del lenguaje de máquina para sus cálculos y
funcionamiento.

PAGINA 10 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Descripción de los registros usados por un programa.

RPI (Registro próxima Instrucción) o PC (Programm counter). Es un registro


que contiene una dirección que apunta a la próxima instrucción que deberá ejecutarse
después de la actual. En el momento previo a la ejecución de una determinada
instrucción, el registro RPI contiene su dirección 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 código de operación. Suma el valor del RPI más la longitud
de la instrucción que va a procesar, y así se posiciona en la ubicación en memoria de la
siguiente. Con dicho valor actualiza el RPI, para la siguiente ejecución.
En caso de que la actual instrucción sea un salto a otra instrucción (condicional o
incondicional) el RPI recibirá como nuevo dato la dirección de la instrucción a la cual se
deberá bifurcar.

REGISTRO DE INSTRUCCION:
El registro de instrucción permite albergar cada instrucción tomada desde la memoria. El
sistema operativo separa el código de operación de los operándoos para luego analizar
(ver Descripción del procesamiento de un programa)

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 dirección 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 dirección donde comienza la pila que
administrara los datos del proceso y que participara en los retornos a direcciones que
originaron un determinado proceso.

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

PSW (Program Status Word) es un registro de estado: es un conjunto de bits cada uno
de los cuales tiene un significado determinado.
 Modo privilegiado ó protegido se pueden ejecutar todas las instrucciones de
máquina y todas las direcciones de memoria son accesibles.
 Modo no privilegiado o modo usuario: algunas instrucciones (privilegiadas) no se
pueden utilizar. Además inhibe el acceso a ciertas direcciones de memoria. A
estas instrucciones y/o memoria, se puede acceder a través de la versión
compilada de un programa, debido al acuerdo existente entre el desarrollador del
compilador y el fabricante del CPU utilizado.
 Prioridad para tratamiento de interrupciones. Está vinculado con la aceptación o no
de las interrupciones. Si la interrupción es de mayor prioridad a la de la CPU, es
aceptada. En caso contrario la deja en espera hasta que lo permitan las
condiciones de prioridad.

PAGINA 11 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

 Códigos de condición: graba información referida a resultados de la instrucción


ejecutada anteriormente y que podrían utilizarse como condición de ejecución de la
instrucción en curso.

Ejemplo: CONTENIDO DE LA PSW DE UNA PENTIUM II

Bits de control
AC (Alignement Check) alineación o no alineación a entorno de doble palabra
ID (Identification flag) hay procesadores que soportan (y este bit es para habilitarla o no) información del
fabricante, familia y modelo de computadora
RF (Resume Flag) Permite al programador inhibir excepciones en el debugging de modo que la
instrucción pueda ser recomenzada después de una excepción de debugger sin
causar inmediatamente otro nueva interrupción.
IOPL(I.O. privilege level) Si pone en ON, implica que se genere una excepción en todos los accesos a
dispositivos de E/S durante el modo de operación privilegiado.
DF (Direction Flag) Determina cuando incrementar los registros SI DI ESI o EDI cuando se procesan
instrucciones de strings.
IF (Interrupt enable Flag) En ON el procesador reconoce interrupciones externas.
TF (Trap Flag) En ON, genera una interrupción después de cada instrucción (para debugging)
Bits de modo de operación
NT (Nested task flag) Indica si la tarea actual, esta anidada dentro de otra en modo protegido.
VM (Virtual Mode 8086) Permite operar simulando un procesador 8086-mas antiguo)
VIP (Virtual Interrupt Pending) usado en modalidad 8086 para indicar si una o varias interrupciones están esperando
servicio
Códigos de condición.
AF (Auxiliary carry flag) representa si hubo carry en una operación de medios bytes en una operación logia o
aritmética con el registro AL
CF (Cary Flag) Indica un carry del bit izquierdo después de una operación aritmética. También
puede modificarse por un corrimiento de bits.
OF (Ocverflow Flag) Indica overflow aritmético después de una suma o resta
PF (Parity Flag) Paridad del resultado de una operación aritmética (1  par 0  impar)
SF (Sign Flag) Indica signo del resultado de una operación matemática o lógica
ZF 8Zero Flag) Indica si fue 0 el resultado de una operación matemática o lógica.

Descripción del procesamiento de un programa


Programa: Conjunto de ordenes de ejecución a habilidades elementales para resolver un
problema o algoritmo. El ordenamiento de ejecución es de naturaleza secuencial.
Existen instrucciones especiales de bifurcación o quiebre de dicha secuencia. Hay de
naturaleza condicional o incondicional. Estas bifurcaciones permiten la posibilidad de
repetición 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
“dirección de memoria” y que permite identificarlo en forma biunívoca.
LA MEMORIA ES EL UNICO DISPOSITIVO DESDE DONDE SE PUEDEN EJECUTAR
PROGRAMAS.

Cada instrucción está compuesta por dos partes: el código de operación por medio del
cual se dice que hacer (operación a realizar) y además 0 o hasta dos operandos que
generalmente contienen una dirección (quien expresa con quien se hará la operación”.)

Qué hace Código de operación

PAGINA 12 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Instrucción

Con quien lo hace operandos (contienen direcciones de MP)

Código operando/s

Cual habilidad Dirección 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 ejecución de cada instrucción pasa por varias etapas o ciclos.

Ciclo de instrucción:
El procesador consulta al RPI. Su contenido apunta al lugar de memoria donde se
encuentra la próxima instrucción a procesarse.

Toma la instrucción direccionada y la copia al Registro de Instrucción. Su contenido se


analiza por separado: primero el código de operación y luego el o los operandos.
Antes de analizar la instrucción leída, el RPI se actualiza. Se le suma el tamaño de la
instrucción que se va a analizar. De este modo, el RPI servirá para posicionarse en la
siguiente instrucción para el próximo ciclo.

Si la instrucción a analizar se trata de una bifurcación, la nueva dirección de bifurcación es


cargada en el RPI y el ciclo continúa.
A continuación se analiza si el código de operación es válido (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
válidas, es decir, que estén 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 ejecución:
Si los análisis anteriores fueron correctos la instrucción es ejecutada por la Unidad
Aritmética y Lógica (UAL) usando, si fuesen necesarios los registros de uso general antes
definidos.

Ciclo de interrupción:
Bajo el concepto de multiprogramación, toda instrucción pasa por un ciclo inicial de
interrupción, donde la CPU pregunta al Bus (dispositivo encargado de realizar el manejo

PAGINA 13 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

de entradas y salidas de datos), si hay una interrupción pendiente de ser atendida. En


caso de haberla, la CPU atiende la interrupción (luego se explicara). En caso contrario,
sigue procesando la instrucción a la que apunta el RPI.

Interrupciones
Stack
La función de la pila o stack es la de acumular información con la metodología LIFO. El
uso más importante de esta estructura es documentar las condiciones de retorno en la
ejecución de un programa, cuando por alguna razón, se interrumpe su procesamiento y
se va a otro subprograma específico. Hay que crear las condiciones de retornar al
programa original. Para ello hay que reproducir las condiciones existentes (los valores de
todos los registros, por ejemplo), tal como si el programa nunca se hubiese detenido a
esperar la operación de E/S.

Las operaciones con un stack son:


PUSH, agregar información a la cabeza de la pila;
POP tomar información de la cabeza de la pila.
Para definir una estructura de pila, se consideran los siguientes elementos:
Base Pointer: puntero que contiene la dirección de memoria donde comienza la pila
Stack Pointer: puntero a la dirección últimamente cargada de la pila
Length: tamaño del stack.

Si el stack pointer coincide con el Base pointer es porque la pila está vacía. Se incrementa
en la cantidad de información a guardar el stack.
Si en cada oportunidad se agrega o quita la misma información solo se guarda en el stack
la dirección de memoria que contiene los datos. El agregar y quitar deberán respetar el
orden y cantidad de los datos.

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

4650 Call Proc2


4655 Return

fin Return

PAGINA 14 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Una utilización muy interesante de la estructura stack, es en el caso del punto de retorno.
Supongamos estar posicionados en el programa llamado principal. El mismo está
cargado en memoria, a partir de la dirección 4000.
En la dirección 4100 hay un llamado a un subprograma Proc1, cargado a partir de la
dirección 4500.
Se llama subprograma a un conjunto de instrucciones insertadas dentro de un
determinado programa principal del cual es parte, y que resuelve un cálculo que puede
repetirse varias veces, a lo largo del ciclo de vida del programa principal.
Debemos reconocer el principio de reutilización, necesidad de incorporar una única vez
dicho subprograma y llamarlo desde diferentes lugares.

A su vez, Proc1 puede llamar a Proc2 y así sucesivamente. Cada subprograma finaliza
con la instrucción Return, que indica volver al punto en que dicho subprograma fue
convocado. Esta dirección de memoria se llama punto de retorno y la instrucción Return
funciona así: toma la dirección del stack y actualiza el RPI.
Dado que puede existir un encadenamiento de llamados, debe preverse la vuelta inversa.
Para ello se utiliza la estructura de un stack.

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

Problemas inherentes a la Multiprogramación


Al introducirse la posibilidad de multiprogramación, se presento la situación de que el
procesador solo podía atender una única instrucción perteneciente a uno de los
programas vigentes. La coexistencia de varios programas ubicados en memoria y en
condiciones de ser ejecutados, no podía ser aprovechada pues solo uno de ellos podía
avanzar en un instante determinado.
A ello había que agregar el hecho de que siendo el S.O. un programa que ocupa memoria
(de allí su nombre de residente) también compita por el uso de procesador.

La aparición de la 3a generación de computadoras, incorporo un dispositivo llamado


canal o bus, especializado en la comunicación (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 (monoprogramación) el
procesador esperaría el resultado de la operación 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 produciría un trabajo
en paralelo:

PAGINA 15 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

El bus se encarga de comunicar la orden al dispositivo por medio del driver específico
mientras el procesador elabora instrucciones de otro programa.

El aprovechamiento cobra más 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 ejecución procesa una instrucción que pide una
E/S, se pone en marcha el mecanismo llamado cambio de contexto.
El procesador se ocupara de otro programa en memoria, aprovechando que no puede
hacer nada con el actual hasta que no se cumpla la E/S pedida.
Naturalmente, deben crearse las condiciones de que vuelva a ser procesado EN LAS
MISMAS CIRCUNSTANCIAS Y DATOS EXISTENTES, EN EL MOMENTO DE LA
SUSPENSION TRANSITORIA DEL PROCESO.
Por otro lado en todo sistema de computación hay un solo juego de registros específicos y
de uso general. Cada programa entonces, debe preservar los valores que estos registros
tenían, al momento en que el procesador decidió ocuparse de otro programa. Es una
especie de radiografía tomada en el momento del corte, que servirá para ser retomado,
tomando los valores de los registros guardados y restaurarlos en cada uno de ello. El
programa podrá en algún momento continuar, COMO SI NUNCA HUBIESE SIDO
SUSPENDIDO.
Este resguardo de información se llama Cambio de Contexto.
El procesador carga la información de todos los registros en uso en la PCB,
particularmente el RPI cuyo contenido apunta a la instrucción próxima a ejecutarse,
después de la concreción de la E/S. Cada programa tiene su propio stack, construido en
memoria principal y la PCB cuenta con un puntero a dicha pila.

Interrupción
Cuando el bus termina de realizar la operación previamente encomendada, genera una
interrupción, “avisando” al sistema operativo que su trabajo terminó indicando, además, en
qué condiciones terminó.
La CPU es informada de todo este movimiento pues controla el flujo de procesos,
específicamente en su ciclo de interrupción.
Generada la interrupción, el sistema toma conocimiento de la misma y analiza el código
devuelto. Este código identifica la finalización de la operación pedida y las condiciones de
finalización: , o con un determinado error.

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


Es una lista de dos columnas: la primera, tiene todos los códigos de interrupción
previstos, mientras que la segunda tiene una dirección de memoria donde se guarda un
subprograma que trata específicamente cada interrupción. 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 interrupción”. Seguramente, una de estas instrucciones es poner en
aviso al programa originario, del resultado de la operación, para que el determine como
continuar.

Cuando el procesador decida la continuación del proceso del programa para el cual se
proceso la interrupción, se producirá un cambio de contexto inverso, restaurando las
condiciones existentes en el momento de que se lo dejo de procesar.

PAGINA 16 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Entre estos datos figura el punto de retorno, dirección de la instrucción inmediatamente


posterior a la que genero el pedido de E/S.
Aquí cobra sentido el contenido de RPI (Reg. Próxima Instrucción). También interesa el
estado del resultado de la última operación, previa a la interrupción. También la PSW,
registros de cpu, etc.

LA PILA NO GUARDA INSTRUCCIONES DEL PROGRAMA CORRESPONDIENTE.


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

La Administración 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.

Atención de una interrupción:


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
interrupción informada.

Un principio clásico 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 volúmenes) o su dependencia de mucho uso
de procesador (programas de cálculo, aplicaciones matemáticas).
Siendo que los dispositivos son lentos y el incentivo económico de distribuir
equilibradamente sus recursos, un criterio seria darle prioridad a aquellos programas que
tienen mucha E/S. De esta manera habría muchos momentos en que no son necesarios
ciclos del procesador, pues el pedido de E/S se está procesando por el dispositivo y
controlado por el bus.
Si la CPU se dedicara a procesar los programas de mucho calculo, estaríamos 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, también se produce una interrupción, pues el


procesador tiene que liberar los recursos atrapados hasta ahora por el programa que
termina, para entregárselo a otro. También se generaliza esta denominación, tanto al
pedido de E/S, a la finalización de dicho proceso y también cuando el programa termina,
correcta o incorrectamente.

TODO EMPIEZA Y TODO TERMINA CON UNA INTERUPCION

Resumen paso a paso


El procesador está trabajando sobre una instrucción 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
PAGINA 17 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

 El dispositivo finaliza su tarea y emite una interrupción


 El procesador termina con su actual instrucción, perteneciente al programa B
 Se notifica de que hay una interrupción pendiente.
 Hace cambio de contexto de la información del programa B
Trae del stack la info de contexto correspondiente a la rutina de tratamiento de la
interrupción.
La dirección inicial de este programa está definida en el llamado Vector de interrupciones,
lista que contiene el código de interrupción y una dirección a la rutina de su tratamiento,
que vienen con el sistema operativo.
Restaura valores dejados en el stack por el cambio de contexto ocurrido en (*), para volver
a las condiciones de ejecución del programa A
El programa A sigue su procesamiento.

Motivos de Interrupciones.
Reloj (timer) que produce el time out
Entrada/Salida finalización normal o con el problema ocurrido, de una
operación de E/S
Falla de algún dispositivo (fuente de poder, memoria, etc)
Programa (división por 0, instrucción ilegal, fuera de la memoria
permitida o disponible, etc.)

Jerarquías de memoria.
Memoria es un nombre genérico, referido a dispositivos que se usan para guardar
información, algunas en forma permanente y algunos en forma volátil.
Pueden establecerse diferentes ordenamiento: de arriba hacia abajo, por velocidad mayor,
por mayor costo por bit (de abajo hacia arriba), menor tiempo de acceso a cada unidad de
información (de arriba hacia abajo).

Punto a) Registros CPU


Cache
Memoria principal Volátiles
Disco electrónico

Disco magnético
CD (disco óptico) No volátiles
DVD
Punto b) Cintas magnéticas

Punto a): Mayor costo por bit almacenado, menor capacidad de información, menor
tiempo de acceso y mayor frecuencia de acceso.

Punto b): Mayor capacidad de información, menor costo por bit empleado, mayor tiempo
de acceso, menor frecuencia de acceso.

Se pueden observar las siguientes relaciones:


Cuanto más rápido es el dispositivo mayor es el costo por bit de información.
A mayor capacidad por dispositivo, menor costo por bit.
A mayor capacidad del dispositivo, menor tiempo de acceso

PAGINA 18 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Principio de localización
Hay un principio inherente a muchas opciones incorporadas a los sistemas operativos,
originado en la observación y en la definición e implementación de ciertos conceptos.
Debido al principio de Von Neumann el ordenamiento de ejecución de un programa es
secuencial. Debido a ello, es alta la probabilidad de que a la ejecución de una instrucción
determinada, le siga la ejecución de la instrucción físicamente contigua.
Las excepciones están dadas cuando el procesador se encuentra con una instrucción de
bifurcación. Este principio, también se aplica al tratamiento de la información guardada en
un determinado dispositivo.

Memoria Cache
En este ítem, integraremos los dos conceptos anteriores y además se introducirá el
conocimiento acerca de un dispositivo fundamental en la evolución de los Sistemas
Operativos e importante para su comprensión.

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


dispositivos sea tal, que resulta difícil su vinculación.
Si los dispositivos fueran vagones de un ferrocarril, resulta obvio que la velocidad final de
la formación dependerá fuertemente, del vagón más lento o más trabado.
Es por ello, que para mitigar este desacople, se crean dispositivos intermediarios entre
uno rápido y otro lento, pero que puedan vincularse rítmicamente.

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


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

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

Por el principio de localización, se supone que habrá un procesamiento secuencial entre


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

PAGINA 19 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

CPU CACHE MEMORIA

Transfiere Transfiere
una un bloque
instrucción de
instruccion
es(ejecución de varios programas
Cuando se trabaja con Multiprogramación
simultáneamente) la cache se divide en porciones asignadas cada una a cada programa
en ejecución.
De modo que cada programa en ejecución tiene un grupo de sus instrucciones tanto en
memoria (donde reside todo el programa) como en la cache.
Cuando un programa debe procesar una instrucción y la encuentra en la cache se dice
que hubo un HIT (éxito en encontrar la instrucción y el ahorro del correspondiente acceso
a memoria). Por el contrario, si la instrucción a procesar (valor del RPI) no está en cache
es un MISS (falta). Entonces (considerando el principio de localización) se trae un nuevo
bloque de instrucciones de memoria, donde reside la instrucción buscada y hasta el
tamaño del bloque asignado a cada proceso.

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

Lógicamente, que este proceso generara una “distracción” de la CPU actualizando la


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

Cabe una cuestión importante: si en el procesamiento de un tramo de instrucciones se


modifico algún dato, se presenta la situación 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 políticas:

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


b) se espera al próximo 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 información de
la cache y recién se lee un nuevo bloque de la cache.

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


Tamaño de la cache. Cuanto más grande más instrucciones pueden cargarse
Tamaño de cada bloque: cuanto más grande, menos transferencias serán
necesarias, pero el principio de localización 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.

PAGINA 20 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Supongamos contar con una memoria con capacidad de 100.000 palabras y un acceso de
1 mseg.

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

Supongamos que estadísticamente, hay un HITT del 95%, es decir, que hay un HIT en el
95% de los accesos.
Calculo de la duración promedio.

(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

Técnicas 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 información al dispositivo.
En consecuencia, activa, controla y transfiere por lo que invierte mucho de
su tiempo.
Las muchas preguntas que hace verificando además, si los datos son
confiables y si el dispositivo está en funcionamiento degradan su
performance. La CPU prácticamente 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 interrupción al finalizar. Para indicar al Bus que es el
dispositivo encargado del control de e/s, que puede continuar con la ejecución de otra
instrucción 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.

PAGINA 21 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Aprovecha el mismo ciclo de ejecución de la cpu (toma un ciclo y atrasa la cpu un ciclo)
para llenar el buffer con gran cantidad de información y cuando termina la tarea genera
una interrupción.
La cpu le tiene que informar al DMA si los datos de e/s, a que dispositivo va.
Le tiene que informar la cantidad de Bytes que va a transferir la dirección de memoria a
partir de la cual tiene que almacenar la información.

Típico 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

Interrupción

Lectura
Escritura

El DMA es capaz de imitar al procesador, tomando el control del bus. Los necesita hacer
para transferir los datos desde y hacia la memoria usando el bus del sistema.
Funcionamiento: cuando el procesador quiere leer o escribir un bloque de datos envía un
mandato al DMA especificándole:
Si es de E/S, cantidad de datos a transmitir, direcciones del disco y la memoria.
El procesador sigue con otra tarea.

PAGINA 22 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

El modulo DMA transfiere el bloque completo, palabra a palabra. Directamente con la


memoria sin pasar por el procesador.
Cuando finaliza la transmisión envía una interrupción. Por lo tanto el procesador interviene
en dos partes: inicia la transmisión y atiende una interrupción. (Al inicio y a la finalización).
Tres mecánicas:

1. Todos los módulos de E/S comparten un mismo bus. El D MA actúa como un


procesador subordinado, usa E/S programada para intercambio de datos entre un
modulo de E/S y la memoria usando el DMA. Mecanismo ineficiente, pues cada
transferencia de una palabra insume dos ciclos del bus (petición 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 función de E/S y el DMA que no incluye al bus. La
lógica del DMA puede ser parte del modulo de E/S o puede controlar uno o mas
módulos de E/S integrándolos

Procesa DMA DMA Memoria


dor
E/S

E/S E /S

Bus Unico, DMA-E/S integrado

1. Los módulos de E/S pueden conectarse al DMA utilizando un bus específico de E/S.
Esto reduce a una única interfaz de E/S en el módulo DMA y proporciona una
configuración expandible, El Bus del sistema dsolo se usa para intercambiar datos con
la memoria y señales de control con el procesador. El intercambio de datos entre los
módulos del DMA y la E/S tienen lugar fuera del bus del sistema

PAGINA 23 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Bus del sistema

Procesa DMA Memoria


dor
Bus de E/S

E/S E /S

Protección de Recursos Compartidos:


El concepto de protección se vincula con recursos compartidos: memoria, impresora,
disco, etc. Una protección se presenta cuando al analizar la dirección 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 dirección no esté siendo utilizada por otro.

Con el concepto de multiprogramación son varios los programas cargados en memoria y


por ende es necesaria la protección de ese recurso para los diferentes programas que
compiten por él.

Uno de los recursos más protegido es la memoria ocupada por el Sistema Operativo.
Cuando se ejecutan estas instrucciones, solo el sistema operativo puede participar. Este
modo de proceso se llama modo Supervisor o Kernel o Privilegiado. Uno de los datos que
mantiene el PSW es si un recurso es asignado en modo protegido, privilegiado o
supervisor.
La otra modalidad (modo usuario), es la ejecución de un programa de usuario. También se
protege que un programa no avance sobre los datos de otro.

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

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

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

PAGINA 24 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

ACCESO A DISPOSITIVOS DE E/S


Encapsulan el comportamiento de los dispositivos, y permiten al operador que envíe sencillas
órdenes de E o de S casi independientemente del dispositivo. La implementación 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 organización, además
de la E/S propiamente dicha. En caso de múltiples usuarios, debe proveer mecanismos de
protección de acceso a los mismos.

ACCESO AL SISTEMA
En caso de ser un sistema público y compartido, proveerá mecanismos de control de acceso
global y particular de determinados recursos. Debe proveer protección de usuarios y accesos
indebidos o no autorizados y evitar conflictos por retención de recursos.

DETECCION DE ERRORES Y RESPUESTA


Durante la ejecución de un programa pueden ocurrir múltiples errores.
Pueden ser:
 errores internos o externo:
 error de memoria
 falla o funcionamiento incorrecto de un dispositivo
 overflow aritmético
 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 operación 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 incorporación de nuevos dispositivos y software, así
como el de especialistas, dio lugar a la necesidad de controlar dichas inversiones y
particularmente del uso de sus recursos. Un buen sistema operativo colecciona información sobre
el uso de sus recursos y los acumula para su posterior análisis. Muchas veces se utiliza esta
información con fines de auditoría y facturación intersectorial.

DISEÑO JERÁRQUICO GENÉRICO DE UN SISTEMA OPERATIVO:

Nivel Contenido
1 Consistente en circuitos electrónicos: celdas de memoria, registros de uso general,
registros de uso especifico, puertas lógicas. El S.O. opera sobre ellos, borrando registros o
leyendo el contenido de una dirección de memoria.
2 Conjunto de instrucciones del procesador. Son las instrucciones del lenguaje de maquina:
suma, resta carga guardar. Son el grupo de habilidades elementales con forma de

PAGINA 25 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

instrucciones. El resultado de toda compilación estará conformado por instrucciones


pertenecientes a este grupo.
3 Llamado a subrutina y retorno, manejo de stack (pop y push). Esquema clásico 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 definición de sus
funciones y obviamente de su naturaleza.

5 Noción de procesos y sus estados. Manejo de primitivas. Switcheo entre dos procesos.
Métodos de sincronización para procesos cooperativos, cuando se requiere algún tipo de
coordinación.
6 Dispositivos de memoria secundaria. Posicionamiento en una zona especifica del disco,
transferencia de información solicitada, reserva y liberación de espacio. Tiene que ver con
manejo de códigos de retorno de cada operación física de Entrada Salida
7 Creación del direccionamiento lógico para uso de los procesos, expandiendo la memoria a
almacenamiento secundario. Administración dinámica de memoria, en cuanto al
movimiento de intercambio de información entre disco y memoria.

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

8 Comunicación entre procesos. Pipe, canal lógico de comunicación entre procesos


9 Administración de archivos en memoria secundaria. Tiene que ver con la administración
lógica (no física-sectores, pistas, etc) que se vio en nivel 6.
10 Provee acceso a dispositivos externos. Impresoras, display y teclados
11 Directorios. Vinculación entre nombres lógicos y físicos de objetos. Administración de
derechos de acceso. Este es un problema clásico en computación. El objetivo económico
de acercar más usuarios, dio lugar a la creación de la entidad del nombramiento simbólico
de variables, dispositivos, nombres de archivos, etc. Pero los procesos reales suceden bajo
una denominación física, primitiva de esos recursos. Por ello en este nivel se implementa la
asociación de estas dos metodologías de nombramiento de recursos. Es la función del
Sistema Operativo, de hacer amigable al usuario el uso de un sistema.
12 Administración profunda de procesos. Registración de la información de estados en la
PCB, formación de las colas, facilidades para la ejecución del dispatcher, creación de
procesos y en general control de los mismos.
Es importante destacar la administración de datos en disco, según las diferentes visiones
de los niveles 6 y 9. Cada transferencia física a/desde disco se hace apuntando a la
mínima unidad de información direccionable en disco: el sector. Este es una unidad física
del dispositivo y puede contener varios registros lógicos. Pero la visión del programador es
por registro lógico, 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 trayéndolo en forma completa
(Nivel 6). Pero el nivel 9 administra esa info, y entrega de un registro lógico por cada
pedido de lectura del programa. Recién cuando termino de aportar todos los registros
lógicos traídos en la última lectura, recién hace una segunda lectura física al dispositivo.
La cantidad de registros lógicos por registro físico (sector en el disco o bloque en la unidad
de cintas) se llama factor de bloqueo. Es decir, que se arrobaran n-1 lecturas físicas en
caso de haber un factor de bloqueo de n.
13 Provee la interfase entre el usuario y el Sistema Operativo. Es el clásico shell o núcleo que
interpreta los comandos al S.O (Job Control Lenguage). Es la capa más externa de un
sistema Operativo

PAGINA 26 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

SPOOLING

Con la aparición del disco magnético, se pudo pensar en mecanismos para tratar una
permanente obsesión de los fabricantes de equipos y/o sistemas operativos: aprovechar
los tiempos, generar la posibilidad de más usuarios simultáneos, abaratar costos o
generalizar más procesos simultáneamente. (Repetimos la motivación económica para
todos los avances y evoluciones de temas vinculados con Sistemas Operativos).

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 administración de una cola de trabajos, tanto de entrada como de salida.

En el spooler de entrada, se trata de cargar los trabajos en forma masiva (por la cantidad
de trabajos), para ser administrados como una cola. Esto permitiría la aplicación de
conceptos como el de prioridad, características similares de trabajos. Puede retenerse un
trabajo debido a una dependencia de resultados de un proceso previo, para que pueda
administrarse su lanzamiento según la conveniencia del centro de cómputos.
En el spooler de salida, el aprovechamiento es muy importante. Se aplica para la
administración de los listados generados simultáneamente por varios programas.
Se pudo lograr la siguiente funcionalidad:
Retener la salida de un listado, cuando por motivo de volumen deba recibir la autorización
del programador
Retener la salida de un listado, cuando faltan formularios especiales para el mismo.
Permitir “ver” por dentro del listado, para verificar su corrección antes de iniciarlo.
Permitir comenzar la impresión aun antes de haber finalizado el programa que lo está
generando
Indicar que se impriman varias copias de un listado, sin repetir el proceso de generarla.
Eliminar un listado de la cola
Administrar prioridad de listados, etc.

Multiprogramación:
Inicialmente, cuando un programa derivaba una orden de E/S a un dispositivo, el mismo
se quedaba esperando hasta la finalización de dicha orden. La diferencia abismal de
velocidades mostraba a una CPU (única y costosa) de débil utilización, desaprovechada.
Con la aparición del concepto de canal o bus de E/S, el procesador pudo derivarle este
trabajo. Por lo que, mientras el programa en ejecución deriva una operación de E/S al
bus, la CPU puede ocuparse de otro programa residente en Memoria. Esto permitirá una
superposición de tareas, con un importante aprovechamiento del uso del dispositivo más
importante de toda computadora: la CPU. A fin de mejorar el desempeño global del
sistema, los desarrolladores introdujeron el concepto de multiprogramación. Con la
multiprogramación varios trabajos se mantienen en la memoria al mismo tiempo; la CPU
conmuta de un trabajo a otro para mejorar el aprovechamiento del procesador.
Consiste en la posibilidad de activación de varios programas “simultáneamente”. Se trata
de aprovechar el tiempo útil de la CPU.

PAGINA 27 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Necesidad de definir procesos


La evolución y el conocimiento obtenidos por contar con sistemas operativos Batch, con
multiprogramación y Time Sharing, permitió soñar con una evolución imperiosa: llegar a
concretar sistemas Operativos que permitiese transacciones en tiempo real, vinculando a
múltiples usuarios concurrentes al mismo sistema. Esta idea implico estudiar los desafíos
de una coordinación 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 ejecución, incluso dentro de un
mismo programa. Así nació la necesidad de dar una entidad a cada uno de estos pedidos
de ejecución y se los denomino procesos. Por ejemplo, un usuario de una PC trabaje
simultáneamente en dos archivos Word: el operador disparó dos veces el icono
correspondiente o está trabajando con dos archivos separados: son dos procesos, aunque
compartan el mismo programa.

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

Los Procesos se estudian dentro del concepto de multiprogramación. El concepto de


proceso tiene origen en los problemas vinculados con la administración de recursos que el
S.O. brinda en la medida que estos lo demanden. Se incluyen cuestiones de coordinación
de dichos recursos ante la existencia de usuarios concurrentes (Time .Sharing) o de
protección 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 administración del programa, a lo largo del ciclo de
vida del proceso.

Simultaneidad de uso de un programa:


Es una posible condición de un programa, por la que distintos usuarios lo pueden usar al
mismo tiempo en diferentes puntos de utilización 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 ejecución distintas o procesos diferentes. La única condición, es que el
programa sea reentrante, es decir, que no permita ser modificado por ninguno de los
usuarios simultáneos, de modo que cada uno de ellos cuente siempre con la misma
versión y contenido del programa.

PAGINA 28 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

PCB (Process Control Block)


El proceso nace, cuando un programa es invocado para ejecutarse.
El Sistema Operativo asigna un identificador y un lugar en memoria llamado PCB (Process
Control Block). Este espacio es de tamaño igual para todos los procesos.
Esto da lugar a un tratamiento más eficiente. Toda estructura de información de tamaño
variable no se incluye en la PCB: se la vincula con un pointer contenido en la PCB.
En él se guardan diferentes datos: el RPI, PSW, prioridad, estado, pointer al stack,
direccionamiento al próximo elemento en la cola en la que está ubicado el proceso,
asignación de memoria (registro base y limite), dirección 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 propósito de auditoría y
control de uso de la computadora. Hay empresas en las cuales se realiza un cargo
mensual a cada sector, en función al uso de recursos.

ELEMENTOS TIPICOS DE UN PROCESS CONTROL BLOCK

Identificación de Procesos
Identificación de un proceso común
Identificación de un proceso generado por un padre
Identificación de usuario

Información 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)
códigos de condición de la previa instrucción
información de estado (privilegiado/usuario, permite/no
permite interrupciones)
Stack Pointers

Información de control de procesos


Planificación e Información de estado: Es información necesaria para el S.O. para sus
funciones de planificador.
Estado de proceso: Running, Ready, Blocked, etc.)
Prioridad: uno o más campos que indiquen la prioridad del proceso
Información para la programación: tiempo que ya lleva operando, tiempo
transcurrido desde la última interrupción
Evento que debe ocurrir antes de continuar

 Estructuración de datos. Un evento esta linkeado a una cola (por ej. esperando un
determinado evento). Puede definirse la vinculación padre-hijo entre procesos
 Proceso de Intercomunicación. Puede haber necesidad de intercomunicación, entre
dos procesos independientes, en formas de señales o mensajes. Estos pueden
guardarse en el PCB.

PAGINA 29 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

 Proceso Privilegiado. Un proceso puede tener privilegios de memoria o de cierto tipo


de instrucciones a utilizar (privilegiadas)
 Administración de memoria: puede contener pointers a segmentos o páginas de
memoria asignados al evento, según la metodología de paginación utilizada.
 Propiedad de recursos y su utilización. Registración de los archivos utilizados por el
proceso. Registros de auditoría del uso del procesador para cada proceso. Esta
información puede ser utilizada por el organizador de procesos.

contenido de una PCB

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 ejecución. 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 ejecución o cuando el proceso suspende su
ejecución. En estado de listo, el proceso está en condiciones de ser nuevamente elegido
para su procesamiento. La PCB permanece en memoria, acompañando el ciclo de vida
del proceso
Pueden haber diferentes motivos para pasar al estado listo: un pedido de entrada/salida,
se termino el tiempo máximo asignado a cada proceso (time out: se explica más
adelante).
Se dice que está en estado de Running o ejecución cuando se está ejecutando alguna
de sus instrucciones.

PAGINA 30 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Diagrama general de estados (estructura de dos estados):

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


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

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


correspondiente

Time Out
En todo Sistema Operativo existen una serie de parámetros o valores llamados quantum.
Sirven para customizar o particularizar algunas características del mismo, acorde a lo que
sus usuarios prefieran.
Aquí aparece el primero. En cada sistema operativo se asigna un tiempo máximo para
una ejecución continua de un proceso. Esto se define para que un programa orientado a
proceso (uso continuo de CPU – procesos de índole matemática o de mucho calculo) no
se apropie o monopolice la CPU a expensas de otros.

Dispatcher
Es un programa del Sistema Operativo que elige al proceso que estando en estado de
Ready, corresponde pasarlo a estado de Running.

VIDA Y MUERTE DE UN PROCESO:

Motivos de inicio de un proceso:


1) Cuando entra un nuevo trabajo o programa
PAGINA 31 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

2) Cuando un usuario se loggea en time sharing


3) Un proceso puede disparar a otro (en un entorno multithread, relación padre – hijo,
cuando finaliza el padre también lo hace el hijo). El proceso que inicia la ejecución 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 impresión,
recepción de un paquete de datos de internet, etc. Incluso algunos SO permite la
intercomunicación entre estos “hijos” entre dichos subprocesos paralelos.

Motivos de finalización de un proceso:


1) Finalización normal, llegando a ejecutar su última instrucción, generando una
interrupción.
2) Límite de tiempo asignado al proceso: Time out.
3) El programa requiere más memoria de la que tiene.
4) El programa se fue del límite de memoria de la que tiene asignada (Protección), mala
asignación de memoria para el proceso, o llamado a una página que no está cargada
en memoria.
5) Protección de archivos.
6) Error aritmético (división por 0).
7) Falla de entrada y salida (después de un cierto número de intentos).
8) Una interrupción invalida (RI)
9) Una interrupción privilegiada (las del Sistema Operativo).
10)Uso de un dato no inicializado.
11)interrupción del operador (motivado en un deadlock ó abrazo mortal).
12)Cuando finaliza un proceso padre, finalizan todos sus hijos.

EVOLUCION DE UN PROCESO:
Esquema de 8 estados:
1) Running : El programa se está ejecutando
2) ready: El programa solo espera memoria para ser
ejecutado
3) Bloqueado: El programa espera un entrada o salida
4) Suspendido: El programa fue desalojado de memoria
5) new: El programa ha solicitado su entrada para ser
procesado
6) exit. : El programa ha finalizado y se genera una
interrupción.
7) Bloqueado suspendido El programa estaba bloqueado y fue
desalojado de MP (swapping)
8) LISTO-suspendido El programa pide ser ejecutado, se crea su PCB
pero no hay memoria asignable

PAGINA 32 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

ne
Admitio
w Admitio

Dispatc
her release
Ready/
suspen Ready Running Exit
d

T.Out
Ocurrio Ocurrio
evento evento Espera
evento
Susp

Blocked/ Blocked Blocked/


Suspend Activo Suspend
ed ed

Esquema completo de los estados posibles de un proce y sus motivos de transición

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 interrupción
privilegiada, cuando espera que un hijo termine su proceso. En este estado hay distintas
colas de almacenamiento: por eventos y por dispositivo.

Un 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 dirección de disco donde se genero la copia previa al desalojo del proceso

Un programa está en New cuando pide ser ejecutado y aun no fue cargado en memoria.
Se construye e inicializa su PCB. Para pasar a ready el SO fija la cantidad de memoria
disponible y se fija cuantos procesos se están realizando y así poder regular el balanceo
entre los procesos.

Un programa finaliza por los motivos vistos en Motivos de finalización de un proceso: Al


finalizar el programa, el proceso aun sigue vigente, registrando datos provenientes de la
utilización de recursos hechos por el mismo y acumulados en la PCB. Esto servirá para
ser utilizado para la contabilidad de recursos, distribuyéndolos 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 suspensión. La inversa es imposible pues no se
puede procesar una instrucción de E/S estando el programa fuera de memoria.

PAGINA 33 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Por lo tanto a un proceso en esas condiciones le pueden ocurrir dos eventos a su tiempo:
producirse el evento esperado (deja de estar bloqueado pero sigue suspendido), se
recarga a memoria (pero sigue bloqueado).

Transiciones De Estados De Un Proceso

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


los existentes, exige que otro proceso libere su memoria ocupada para cedérsela. Es un
criterio generalizado elegir un proceso bloqueado, pues en ese momento no está usan tiempo
de CPU. Esto puede suceder aún 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 ejecución. Además 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 más alta prioridad.

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


añadir a la cola de ready o a la cola de ready y suspendido.
La transición 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 ejecución pasa al estado ready


cuando culmina su fracción de tiempo asignado, aunque si se está expulsando al proceso es
porque hay un proceso de prioridad mayor en la lista de bloqueados y suspendidos que se
acaba de desbloquear, de esta manera si el proceso en ejecución 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 están ejecutándose, ya sea
porque se completaron o por alguna causa de error. Sin embargo un proceso puede ser
finalizado por el proceso que lo creo o bien finalizar cuando termina el proceso padre, esto
permite que un proceso situado en cualquier estado pase al de terminado.

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

PAGINA 34 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Suspensión (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 preservación en el disco (también 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 ejecución). Hay varias razones para la suspensión 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 razón 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 ejecución de un programa con
fines de depuración o en conexión con el uso de un recurso.
4. Solicitud del proceso padre: un proceso padre puede querer suspender la ejecución de un
descendiente para examinar o modificar el proceso suspendido o para coordinar la actividad
de varios descendientes.

Reingreso de un programa a proceso


Hipótesis: 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.


Habría 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.

Descripción esquemática de procesos

Memori P1 P2 Pn
a Virtual

recursos

Procesador E/S E/S E/S Memoria

Utilización de recursos en un instante dado. Una línea con punta indica el uso del recurso.
Una línea sin punta indica que el recurso al que apunta, no se está utilizando.
El proceso 1 está en ejecución
El proceso 2 está bloqueado
El proceso n está suspendido

PAGINA 35 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

El sistema operativo se ve en la necesidad de manejar información 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.
También el estado blocked se organiza por dispositivo, para hacer más eficiente al
tratamiento de una interrupción determinada: se busca en la cola del dispositivo que
provoco la interrupción.
También puede definirse una cola para suspendidos, donde al igual que en Ready se
respeta la prioridad y luego el orden de llegada.

Implementación de las colas


Las colas se implementan en las PCB. Allí hay un campo que vincula a la posición de
memoria de la próxima 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 implementación 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 continuación, 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 implementación de buscar el siguiente programa a
ejecutarse.
En la segunda implementación puede ocurrir que un programa haya ingresado con una
prioridad muy baja y por ende puede “morir” por inanición (starvation). Esto sucedió
históricamente (por ello tiene nombre) Los sistemas operativos modernos evitan esta
situación brindando un servicio de prioridades dinámicas. 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 administración dinámica, bajándole
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

PAGINA 36 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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

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:

 creación y finalización de procesos


 criterios de selección y switcheo entre procesos
 administración de PCB
 Administración de memoria
 Administración buffers y manejo de canales y dispositivos
 Adm. de interrupciones, contabilidad, etc.
 
Entre los diferentes recursos que maneja, es la selección del programa para su ejecución.
Este criterio se llama planificación de procesos y el objetivo es optimizar el uso del
procesador.

 
Existen tres niveles de planificación:
Planificador de largo plazo: de new a ready/suspended, de new a ready
Planificador medio de ready/suspended a ready de blocked suspended a
blocked tiene que ver con el swapping, sacar de memoria un programa y
guardarlo en disco hasta la próxima recarga
Planificador corto plazo de ready a running, se selecciona para la inmediata
ejecucion dentro de los disponibles.
 
En esta estructuración, subyacen dos criterios:
 uno orientado al usuario para obtener una respuesta rápida. Es bueno para los
sistemas en línea o para monousuario
 La segunda es orientada al sistema para una mayor eficiencia, y menor tiempo para
completar procesos. Es bueno para procesos batch.
 
Un proceso puede ser elegido por prioridad,
tiempos de espera
tiempos de ejecución

PAGINA 37 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Las políticas preemptivas generan más overhead pero mejoran la respuesta y evitan
monopolio.

PLANIFICACION DE CORTO PLAZO - DISPATCHER


El Dispatcher, es un programa del S.O. que hace cumplir las funciones de la planificación
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
interrupción de E/S planificación 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 interrupción de ejecución del programa actual es abrupta
y es reemplazado por el proceso elegido.

Políticas de Administración del Procesador


Se definen diferentes criterios para administración de pedidos de procesamiento. Lo
interesante es comparar el promedio de espera para un grupo determinado de procesos
para diversos métodos. El concepto de ráfaga 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 económico en su implementación. No hay
inanición y perjudica E/S breves. Se denomina inanición (starvation) a la excedida
permanencia de un proceso en cola de ready, sin ser elegido.

Sea P1 con un tiempo de ráfaga de 24 mseg


P2 con un tiempo de ráfaga de 3 mseg
P3 con un tiempo de ráfaga de 3 mseg
 Llegan en orden p1 p2 p3

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

 Si llegan p2, p3, p1

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

PAGINA 38 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

SJF Shortest Job First


Se trata de elegir, dentro de la cola de ready a los que tendrán una ráfaga menor, es decir,
que monopolizaran al procesador la menor cantidad de tiempo. Es un método optimo,
pero impracticable, ideal. Resulta imposible saber a priori cual es el tiempo de ráfaga.
Además penalizaría procesos largos Por lo tanto es un cálculo empírico, con el que
deberían compararse los restantes.

Sea P1 con un tiempo de ráfaga de 6 mseg


P2 con un tiempo de ráfaga de 8 mseg
P3 con un tiempo de ráfaga de 7 mseg
P4 con un tiempo de ráfaga 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 suponía que todos los candidatos arribaron al mismo tiempo.

Sea P1 con un tiempo de ráfaga de 8 mseg tiempo de llegada 0


P2 con un tiempo de ráfaga de 4 mseg tiempo de llegada 1
P3 con un tiempo de ráfaga de 9 mseg tiempo de llegada 2
P4 con un tiempo de ráfaga 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

Planificación por prioridad

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


prioridad: un número menor implica una prioridad mayor.

Sea P1 con un tiempo de ráfaga de 10 mseg y prioridad 3


P2 con un tiempo de ráfaga de 1 mseg y prioridad 1
P3 con un tiempo de ráfaga de 2 mseg y prioridad 3
P4 con un tiempo de ráfaga de 1 mseg y prioridad 4
P5 con un tiempo de ráfaga 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

PAGINA 39 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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 ráfaga pendiente es
menor al quantum, lógicamente se usa tanto tiempo de procesador como haga falta.

Sea P1 con un tiempo de ráfaga de 24 mseg


P2 con un tiempo de ráfaga de 3 mseg
P3 con un tiempo de ráfaga 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

Evolución de los Sistemas Operativos


Es proceso recordar que el sentido del nacimiento y evolución de los Sistemas Operativos
es estrictamente económico, de acuerdo al principio hedónico manifestado anteriormente.

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

tarjetas consola Cinta de papel


Tarjetas para después
imprimirse
Impresora no en línea
Codigo maquina

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


estuviese en línea obligaba a que la operación no sea inmediata, y al gasto en recursos
intermedios: perforación de tarjetas para más adelante, ser impresas.
El concepto de serial, surge pues el operador, después de cada programa finalizado,
debía operar para cargar el siguiente.

Nacen lectoras más potentes, cintas magnéticas e impresoras en línea. En línea, significa
que la orden de imprimir se cumplía inmediatamente, pues el dispositivo estaba integrado
a la computadora.

Se crean los ensambladores, enlazadores, bibliotecas de funciones de uso común


nuevamente el concepto de REUSO) y fundamentalmente la aparición del concepto de
driver. (Nuevamente reuso).

PAGINA 40 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Aparecen los compiladores como FORTRAN, COBOL.

Aparece una situación que puede describirse por estos hitos:


 Mucho trabajo de preparación
o Carga de compilador en cinta
o Salida del código objeto en cinta
o Cambio de carretes.
o Organización de programas escritos en el mismo lenguaje, para conservar
los compiladores en sus cintas.
 Maquinas carísimas
 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 función del operador, que alejo al programador del equipo.
Obviamente el operador especializado aportaba la sistematización de sus tareas
cubriendo (aunque sea parcialmente) la ineficiencia natural de la situación.

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

La idea es proveer algún flujo continuo a esta tarea, de modo que a la finalización de un
programa pudiese seguir automáticamente el siguiente programa.
Se trato de definir un secuenciador automático. Para ello se creó un programa llamado
MONITOR: su característica es que daba lugar al primer sistema Operativo de programa
almacenado y era de residencia permanente en memoria. Por ello al Monitor también se lo
llama Residente.

El Residente necesitaba conocer el principio y finalización de cada programa y la


definición del uso de recursos a utilizar y finalmente indicar la finalización de cada
programa para que aparezcan los datos y así poder automatizar la ejecución de los
procesos.

Para ello se diseño un lenguaje especifico del Sistema Operativo: JCL (Job Control
Language) que permitió la intercepción de los comandos específicos y se especializo en
decodificarlos y ejecutarlos o sea, proceder en base a la aparición de tarjetas
pertenecientes a dicho lenguaje. Esto permitió una revolución de eficiencia y disminución
de los tiempos muertos.
ATENCION: NO ES UN LENGUAJE DE PROGRAMACION. SOLO ERAN COMANDOS
AL SISTEMA OPERATIVO.
Esa continuidad en el tratamiento de programas, permitió cargar varios programas juntos
(uno detrás de otro) en la lectora. Este conjunto se llamo lote de programas. Y a la
forma de trabajar se la llamo procesamiento por lotes o batch.

PAGINA 41 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Solo había monoprogramación. Por ello se llama Sistema Operativo Batch Simple. El
JCL nacido para procesos batch, seguramente puede ser reconocido en las sentencias de
extensión bat que se usan en DOS y en la opción Ejecutar de Windows, por ejemplo.
(bat viene de la palabra batch)

En esta secuencia de programa, se minimizaba la interacción del operador, dado que


había un flujo continuo de procesamiento. El monitor residente dio lugar al procesamiento
secuenciado automático de los programas.

Las tarjetas del JCL contenían 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 ejecución del programa
// END indicativo de última sentencia fuente o fin de datos

Una programación típica de un programa era:


// Job Programa
// Fortran
Instrucciones escritas en fortran
/* indica fin de instrucciones Fortran
// Load cárguese el programa Fortran
// Run ejecución del programa Fortran
datos
/* fin de datos
// END fin del programa
Con esta creación la memoria quedaba estructurada así:
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

PAGINA 42 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Batch Multiprogramado
Mejoro el secuenciamiento de procesos, pero AUN CON MUCHOS tiempos muertos.
Aparece el disco magnético, y con él la posibilidad de acceso aleatorio y no secuencial
(cinta)

Con el DMA o el mecanismo de E/S por interrupciones se aprovecharon mejor los tiempos
del procesador. Pero esto implico el agregado de dos dificultades adicionales:
crecimiento de los requerimientos de memoria
El procesador debe administrar conceptos nuevos como la planificación/prioridades
La protección no solo de memoria: de archivos, de impresora, para compartirlos entre
varios usuarios.

Esquema de memoria, con un Monitor residente

s.o. Memoria Protegida

p1

p2 Memoria del
usuario

p3

Sistemas Distribuidos

Una tendencia reciente en los sistemas de computación es distribuir el cómputo


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 través de diversas líneas de
comunicación, como buses de alta velocidad o líneas telefónicas. Solemos decir que tales
sistemas están débilmente acoplados o distribuidos.

Los procesadores de un sistema distribuido pueden tener diferentes tamaños y


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

PAGINA 43 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Razones para su uso


Recursos Compartidos.
Si varios sitios distintos (con diferentes capacidades) se conectan entre sí, un usuario de
un sitio podría aprovechar los recursos disponibles en otro. Por ejemplo, un usuario del
sitio A podría estar usando una impresora láser que sólo está disponible en el sitio B.
Mientras tanto, un usuario del sitio B podría 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 información 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.

Computación más rápida.


Si un cálculo dado se puede dividir en varios subcálculos susceptibles de ejecución
concurrente (paralelo), un sistema distribuido podría permitirnos distribuir el cálculo entre
los distintos sitios, y ejecutarlo de forma concurrente. Además, si un sitio en particular
actualmente está sobrecargado de trabajos, algunos de ellos podrían transferirse a otros
sitios cuya carga sea más ligera. Esta transferencia de trabajos se llama carga
compartida.

Confiabilidad.
Si un sitio de un sistema distribuido falla, los sitios restantes podrían seguir funcionando.
Si el sistema se compone de varias instalaciones autónomas grandes (es decir,
computadoras de propósito general) el fallo de uno no deberá afectar a los demás. Por
otro lado, si el sistema se distribuye en varias máquinas pequeñas, cada una de las cuales
se encarga de alguna función crucial del sistema (como la E/S de caracteres de las
terminales, o el sistema de archivos), un solo fallo podría detener todo el sistema. Es una
especialización.
En general, si existe suficiente redundancia (datos demás para poder reconstruirlos en
caso de falla de algún dispositivo) en el sistema (tanto de hardware como de datos), este
puede continuar con su operación, incluso si algunos de sus sitios han fallado.

Comunicación.
Hay muchos casos en los que los programas necesitan intercambiar datos con otros
programas del mismo sistema. Los sistemas de ventanas son un ejemplo, ya que a
menudo comparten datos o transfieren datos entre presentaciones. Si muchos sitios están
conectados a través de una red de comunicaciones los procesos de diferentes sitios
tienen la oportunidad de intercambiar información. Los usuarios podrían iniciar
transferencias de archivos o comunicarse entre sí por correo electrónico. Un usuario
puede enviar correo a otro en el mismo sitio o en uno distinto.

Sistemas de tiempo real

PAGINA 44 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Otro tipo de sistema operativo de propósito 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 envían datos al computador, el cual debe analizar estos datos y
posiblemente ajustar controles a fin de modificar las entradas que los sensores miden.
Los sistemas que controlan experimentos científicos, los que producen imágenes
médicas, los de control industrial y algunos sistemas de exhibición son sistemas de tiempo
real y de control de actividad de una represa. Esta clasificación también incluye algunos
sistemas de inyección de combustible para motores de automóviles, controladores de
aparatos domésticos y sistemas de armamentos. Un sistema operativo de tiempo real
tiene restricciones de tiempo fijas bien definidas.

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 después de
haber chocado con el automóvil que está  construyendo. Se considera que un sistema de
tiempo real está funcionando correctamente sólo 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 rápidamente,
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 críticas se terminaran a tiempo.

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

También está  ausente la mayor parte de las funciones avanzadas de los sistemas
operativos, ya que tienden a separar al usuario aún más del hardware, y tal separación
causa incertidumbre acerca del tiempo que una operación tarda. Por ejemplo, los
sistemas de tiempo real casi nunca tienen memoria virtual (que estudiaremos más
adelante). Por ello, los sistemas de tiempo real duros son incompatibles con el
funcionamiento de los sistemas de tiempo compartido, y no pueden combinarse con ellos.

Un tipo menos restrictivo de sistema de tiempo real es el de tipo real blando, en el que una
tarea de tiempo real crítica goza de prioridad respecto a otras tareas, y conserva esa prioridad
hasta que se lleva a cabo.
Al igual que en los sistemas de tiempo real duros, es preciso limitar los retardos del
núcleo.
El tiempo real blando es una meta alcanzable que puede combinarse con otros tipos de
sistemas. No obstante, los sistemas de tiempo real blandos tienen una utilidad más
limitada que los duros. En vista de que no apoyan el cumplimento estricto de plazos, es

PAGINA 45 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

riesgoso utilizarlos en control industrial y robótica, aunque hay varias áreas en las que
pueden ser útiles, como multimedia, realidad virtual y proyectos científicos avanzados
como la exploración submarina y planetaria.

Ejemplo: Ktetsibios de Alejandría (250 a.c.) construyó la primer máquina auto controlada:
un reloj de agua con un regulador que mantenía el flujo de agua circulando por él, con un
ritmo constante y predecible. Esta invención cambió la definición de lo que un artefacto
podía hacer. Anteriormente. solamente seres vivo podían modificar su comportamiento
como respuesta a cambios en su entorno.

Time Sharing

En un tiempo en que un equipo de computación era tan caro, pocas eran las
organizaciones que pudieran contar con dicho equipamiento. Pero el interés económico
(anunciado en el primero de estos apuntes) hizo pensar a los fabricantes de computadora,
en algún mecanismo que facilitara el acercamiento de usuarios necesidades de las
funciones de cálculo. Por ello se creó el S.O. de Tiempo compartido o Time Sharing.
Varios usuarios podían acercarse y utilizar la computadora

Los tiempos y recursos de la CPU se dividen entre todos los usuarios loggeados en cada
instante. Se le proporcionaba a cada cliente un tiempo fijo, en forma rotativa.
Este tiempo es fijado y modificado por el administrador del sistema operativo y se
denomina “Time Slice”. Es otro quantum, referido al tiempo dedicado por la CPU a cada
usuario.

Los usuarios de aquel entonces, eran generalmente científicos o calculistas, que


necesitaban probar sus formulas o sus modelos matemáticos. Eran programas orientados
a cálculos y requerían mucho tiempo de ingreso de instrucciones y datos.
Por lo tanto, el uso del teclado era intensivo en relación 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 sensación de que tenía una dedicación 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 podían introducir comandos
para corrección inmediata y servía para respuestas cortas.
Un ejemplo de TS es el Sistema CTSS primitivo (aunque permitía 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

Comparación 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.

PAGINA 46 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Misceláneas 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 47 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Los desarrollos de S.O. implican la consideración de tres problemas:

 son despachados tardíamente: entre la detección de necesidades y la implementación


de las soluciones, hay un tiempo largo en el cual surgen nuevos desafíos;

 bugs permanentes: es muy común utilizar al usuario como tester de un producto que,
por su naturaleza debería asegurar tu calidad y correcto funcionamiento

 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 módulos inferiores, conectados con el hardware, trabajan a niveles de billonésimas de
segundo. Las superiores, trabajan a nivel del usuario, mucho más lento.

ESTRUCTURA DE CAPAS SIMPLES

programa de aplicación

programa del sistema residente

controladores de dispositivos
del DOS

controladores de dispositivos

PAGINA 48 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

ESTRUCTURA DE CAPAS ENCAPSULADAS (Windows NT 4.0)


Aplicación Aplicación Aplicacion

interfaz de programación de apliciones (API)

subsistema subsistema subsistema

Núcleo del sistema gestión de MP


despacho de tareas
gestión de dispositivos
gestión de procesos

controladores de dispositivos

MICRONUCLEO

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

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

La interacción dentro del Micronúcleo es vía MENSAJES.

Definición MICRONUCLEO: base del núcleo que permite expansiones


futuras

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

Se plantean varias cuestiones:

PAGINA 49 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Cuán pequeño debe ser el núcleo para llamarse Micronúcleo?


Como abstraer sus funciones del HW?
¿las funciones son del núcleo?
¿las ejecutamos en el núcleo o en el espacio del usuario?
¿se mantiene la codificación del SO existente o se reprograma?

Esquema de evolución actual de la estructura de un Sistema Operativo.

de estructura POR CAPAS a estructura HORIZONTAL

Interactúan entre ellos vía


mensajes con protección
M MODO USUARIO

O
Usuarios-Modo Procesos cliente
D usu

O
Server. De
Sist. De ficheros ficheros

U
Comunicación Server de
C entre procesos procesos y
seguridad
L
Gestión de E/S y
E dispositivos MV

O
MV Todo modo
usuario

Gestión de 1 sola capa


primitivas de Micronucleo:MO horizontal
procesos DO NUCLEO

HARDWARE HARDWARE

Es difícil construir SO a medida Cliente servidor dentro


Es difícil la seguridad intercalas de un procesador

PERMITE

Interfaz Uniforme a través de mensajes de petición


Extensibilidad se pueden agregar nuevos servicios y no requieren construir uno
nuevo
Núcleo 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 métodos de interacción

PAGINA 50 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

MICRONUCLEO. SOLO DEBERIA INCLUIR FUNCIONES QUE DEPENDAN


DIRECTAMENTE DEL HW y las funciones para mantener los servicios en MODO
USUARIO
En el MICRONUCLEO se mantienen:
 Memoria virtual a bajo nivel, lógica de paginación
 Comunicación entre procesos
 Detector de interrupciones
 Manejo de interrupciones enviando mensajes

Resumen
Finalmente, los SO deberían poder garantizar

Equidad Garantizar que cada proceso obtenga su proporción 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 evolución de los
procesadores, se llegó a la conclusión de que ya no sería posible aumentar abruptamente
la velocidad de proceso. Por lo tanto se investigó la posibilidad de hacer procesamiento en
paralelo (similar idea al RAID). La simultaneidad de tareas permitió satisfacer mayores y
más exigentes necesidades de procesamiento.

Ordenamiento de procesos paralelos


FLUNN propone categorías 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 51 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Los MIMD se dividen en


función a como se
comunican los procesadores

Procesadores
Paralelos

SIMD MIMD

Memoria Compartida fuertemente


acoplada Memoria distribuida débilmente
acoplada

1-Maestro-Esclavo. En
Maestro-Núcleo. En esclavo: CLUSTERS o multicomputador
usuario

2- SMP

Multiprocesador de memoria Cada procesador su PROPIA


compartida memoria = computador integral
COMUNICACIÓN POR MEMORIA COMUNICACIONES POR RUTAS
O REDES

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

1 - MAESTRO ESCLAVO

MAESTRO: el núcleo esta en un procesador determinado, responsable de la planificación


de procesos. Se comunica con los restantes a través 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 Multiprogramación. Si se cae el maestro, se cae toda la estructura.


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

PAGINA 52 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

2–SMP SYMMETRIC MULTIPROCESSOR

El núcleo se puede ejecutar en cualquier procesador.


Cada procesador tiene su propia planificación de procesos e hilos.
Es más difícil controlar la distribución de tareas de SO entre procesadores.
La complejidad está en la comunicación entre procesadores, diseño del SO y estructuras
de interconexión.

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 más velocidad pero hay que tener cuidado con los
CAMBIOS. Debe haber coherencia entre caches para que un cambio que quedo registrado
en la cache, sea tomado de allí.

COMUNICACIÓN: Memoria Compartida o Mensajes. Hay problemas de


sincronización.

PARA EL USUARIO: Es un UNICO PROCESADOR con Multiprogramación. Puede


desarrollar aplicaciones con múltiples procesos con múltiples hilos c/u

CUIDADOS rutinas del núcleo deben ser reentrantes


PLANIFICACION se pueden ejecutar hilos del mismo proceso en diferentes
procesadores
SINCRONIZACION exclusión mutua. Evita el deadlock
GESTION DE MP se comparten páginas

PAGINA 53 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

FIABILIDAD si hay falla del procesador === reorganización automática

MULTIHILOS-MULTITHREADING
Hasta ahora un proceso tenía una unidad conceptual de propiedad de recursos y una
unidad conceptual de ejecución o planificación.
imagen
Direcciones virtuales
Datos
Pila
PCB
Archivos,
El SO los provee y da
dispositivos
protección entre
otros procesos

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

2) Cada proceso tiene además una unidad de Ejecución / Planificación intercalado con
programas del SO que lo hacen ejecutar. El SO hace pasaje de estado de usuario a
supervisor y planifica la ejecución de los procesos por prioridad y por orden de llegada

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

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


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

PAGINA 54 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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


estructura

PCB Pila Usuario

Espacio de Pila de
direcciones núcleo 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
Núcleo Núcleo
t
e
n

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


ocupada por el mismo pero hay además:
Una pila por hilo, una PCB por hilo con toda la información 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 demás. 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 ejecución relacionada


y mucho más eficiente que varios procesos.

PAGINA 55 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

BENEFICIOS:
 se crea más rápido 1 hilo que un proceso,
 lleva menos tiempo la finalización de un hilo,
 mejora la comunicación entre hilos pues no necesita al núcleo como intermediario
como en otros sistemas operativos donde los programas se comunican
 Comparten memoria
 Se puede realizar procesamiento paralelo e independiente

Ejemplos de aplicación de multihilo


 En Primer Plano se manejan los menúes 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 algún proceso
simultáneamente

En un soporte multihilo, la planificación y la activación 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
finalización de un proceso obliga a la finalización de todos sus hilos.

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

OPERACIONES CON HILOS


Creación implica la generación de una PCB, pila, pasa a cola de ready, CRECE un
proceso Nace un hilo
Blocked cambio de contexto, y el procesador continúa con el procesamiento de otro hilo
Desbloqueo pasa a estado de ready
Finalización: 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 simultáneamente modificar elementos de una lista. La sincronización que debe
hacerse exige cierto OVERHEAD

Con la introducción del concepto de multihilo podríamos definir al Multiprocesamiento como


la ejecución de varios procesos con varios hilos cada uno

PAGINA 56 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

IMPLEMENTACION DE HILOS

Hay dos modalidades para la implementación 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 núcleo nunca es requerido por lo que no tiene ningún
control sobre ellos
Estando el proceso principal en Running accede a una biblioteca especializada en Hilos y
allí se invoca su creación. Por lo tanto es totalmente independiente del núcleo. 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 núcleo, se bloquea todo el proceso.
Se pueden ejecutar en diferentes Sistemas Operativos.

Multihilo ejecutado en un monoprocesador implica una multiprogramación acelerada, pero


no se pueden distribuir hilos entre procesadores

KLT HILOS A NIVEL KERNEL (NUCLEO)

En KLT Puro el proceso no absorbe la gestión de hilos. Es el Núcleo o Kernel quien se


ocupa de su generación requiriendo al efecto una ventana API para acceder a las
facilidades del Núcleo.
La planificación es por hilo.
El núcleo puede distribuir hilos DE UN MISMO PROCESO en distintos procesadores, con
lo cual se alcanza un máximo 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 ocurría en ULT
Las rutinas del núcleo pueden también 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 continuación se grafican los dos formatos de formación y manipulación de hilos.

PAGINA 57 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Windows
HILOS

Biblioteca
HILOS
Espacio del
usuario

HILO HILO HILO

NUCLEO P

ULT K LT Puro

PAGINA 58 DE 71
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 función y/o su utilización y su
posible contenido.
2. Describir las políticas de escritura que puede tener la memoria caché. Indicar ventajas y desventajas de cada
una.
3. Indicar las circunstancias que influyeron en el diseño de la memoria caché y cuál es el overhead que provoca.
Esquematizar y ejemplificar una operación de lectura de memoria
4. ¿Qué es una interrupción? ¿Para qué se usa? Defina la información que se administra cuando una de ellas se
produce (registros que intervienen, información que se preserva, estructuras de información que soportan dicha
administración.
5. Motivos de las interrupciones.
6. Antes de ejecutarse una determinada instrucción, 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 algún proceso que vincule la pila de cada proceso con las interrupciones.
8. Describa con detalle la técnica controladora de E/S llamada D.M.A. cual es la información que debe manejar y
analice cual es su aporte de eficiencia en relación a los otros dos métodos explicados: E/S programada y E/S
por interrupciones. (No explique estos dos últimos)
9. Describa una E/S por interrupciones. Cuál es el aporte si se utiliza la técnica del D.M.A
10. Cuál es la información que se necesita salvar al tratar una interrupción? 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 cómo se las ubica?
12. Explicar qué son las interrupciones múltiples.
13. Pudiendo transferirse datos, agrupados en bloque o en palabras, indicar cuál de ellos corresponde a la
transferencia entre la UCP y la Memoria Caché y cuál a la que se realiza entre la memoria caché y la MP.
Justificar su respuesta.
14. En una interrupción, un dispositivo emite una señal para indicar al procesador el motivo de la interrupción.
Explicar en qué momento el procesador atiende esa señal y cuáles son los sucesos que se desarrollan a
continuación.
15. Novele el algoritmo de planificación de corto plazo del procesador.
16. P.C.B. (Process Control Block) Contenidos y objetivos de uso. Describa sus principales elementos (nombre y
función).
17. Que significa que un proceso este suspendido? Causas probables de la suspensión. Cuales pueden hacer
finalizar dicha condición.
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 unazxdecisión.
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 porción 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
términos “hit” y “miss”. Considere el concepto del principio de localización Si una cache puede hacerse tan
grande como la memoria, porque no se la fabrica de dicho tamaño? No se pide una descripción del
funcionamiento de una cache.
22. Un compilador, forma parte del sistema operativo? Cómo se lo considera?
23. Explique como procede el sistema operativo cuando encuentra una bifurcación incondicional y cuando
encuentra una condicional.
24. Explicar y ejemplificar un ciclo de elaboración de una instrucción cualquiera y la utilización de los registros del
procesador intervinientes
25. Cómo organizaría la ejecución 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 generación de evolución de las computadoras.
28. A qué sigla responden las iniciales P.S.W. para que sirve. Describa sus principales elementos (nombre y
función).
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. Podrían definirse dos políticas extremas:
siempre despachar los procesos que están READY , para minimizar el swapping

PAGINA 59 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

incluso forzando swapping aun cuando el swapping no sea necesario. Sugiera una política intermedia para
balancear performance.
30. Un proceso pasa del estado “ejecutando” a “bloqueado” por time out. V o F. Justifique.
31. En los procesos, explicar las transiciones de Running a Ready y de Blocked a Ready.
32. Explique las partes constitutivas de una instrucción (estructura), su uso, su ocupación de memoria.
33. Funciones básicas de un sistema operativo, objetivos y servicios que brinda
34. Describir un sistema de procesamiento serial.
35. Explique brevemente que es un sistema operativo batch o por lotes. En un sistema de tipo interactivo se corren
principalmente procesos batch. (V o F). Justifique la respuesta.
36. Explicar los conceptos de monoprogramación, multiprogramación y multiprocesamiento
37. Explicar los distintos tipos de estructuras que pueden tener los sistemas operativos
38. Describir el recorrido de una orden dada al Sistema Operativo
39. Describir en forma novelada el funcionamiento de un SO por Time Sharing, describiendo las estructuras de
información que utiliza.
40. Explicar la diferencia entre un sistema operativo con multiprocesamiento y un sistema distribuido
41. que es un sistema operativo en tiempo real, cuando es útil usarlo?
42. Que aprovechamientos se intentaron implementar al definir multiprogramación.
43. Explicar la técnica de spooling. Motivo por el cual se desarrolló. En qué mejoró el rendimiento
44. Cuál es el principal problema que resuelve la multiprogramación? Aporte un mismo ejemplo contando con MP y
sin contar con ella.
45. Cuales son las perspectivas de un Sistema Operativo desde el punto de vista del usuario, desde el punto de
vista de la industria, desde el punto de vista de la eficiencia de procesamiento.
46. Explicar la estructura jerárquica de un sistema operativo. Cuál es la diferencia con la estructura monolítica.
Explique la estructura por capas, como cliente-servidor.
47. Explique modo de usuario, modo de monitor. Explique porque la distinción entre ambos permite un tratamiento
de seguridad o protección
48. Una computadora esta conformada básicamente, por 4 elementos: Procesador, Memoria Principal, módulos de
E/S, bus del sistema. Describa como se vinculan estos elementos, desde el punto de vista de un sistema
operativo.
49. Un S.O. de tipo batch es aquel en el que el usuario puede “navegar” por el programa que está corriendo. V o F.
Justifique la respuesta.
50. Que es un spooler? Descripción breve y precisa. Cuantos tipos de spooler conoce? Considere
particularmente un spooler de impresión. Explique las posibilidades de administración de listados que brinda.
Beneficios que aporta.
51. ¿En que circunstancias le convendría mas a un usuario utilizar un sistema de tiempo compartido en lugar de
un computador personal o una estación de trabajo monousuario? El interés de esta pregunta reside en que se
puedan rescatar las condiciones de ambos esquemas de proceso asumiendo que uno pudiese optar por una u
otra (se reconoce que no son temporalmente comparables)
52. que es un driver? Ud. la consideraría como parte del sistema operativo?
53. Un editor, forma parte del sistema operativo? Cómo lo considera usted?
54. Cual es el concepto de protección, en un S.O. y para cuales recursos se aplica.
55. Cuales de las siguientes instrucciones deberían ser privilegiadas: leer el reloj, borrar la memoria, desactivar las
interrupciones cambiar de modo de usuario de usuario a monitor
56. Defina las propiedades esenciales de los siguientes tipos de sistemas operativos:
Por lotes; batch; Interactivos; tiempo compartido; De tiempo real; Distribuidos
57. Cuales de los siguientes cambios de estado pueden ocurrir en forma directa:
a. Exit a Running (V/F)
b. Running a ready-suspended (V/F)
c. Running a new (V/F)
d. Running a blocked-suspended (V/F)
e. Blocked-suspended a ready (V/F)
58. Explicar los algoritmos de planificación del procesador que involucran el tiempo de ejecución de los procesos
como factor decisivo.
59. Que significa que un algoritmo de planificación sea apropiativo o no apropiativo?. Clasificar los distintos
algoritmos según sean apropiativos o no apropiativos.
60. Grafique el comportamiento de una computadora ante la necesidad de una solicitud de entrada o salida de
datos
a) en un entorno de monoprogramación
b) en un entorno de multiprogramación
61. Que es el Job Control Language (lenguaje de comandos)? ¡Para que se lo utiliza?
62. Describa las tareas previas que la CPU debe realizar para que el proceso este en condiciones de ser ejecutado
y justifique la elección de pasarlo directamente a READY/SUSPEND y no a READY.
63. Describa si hay un evento único o varios encadenados (y su orden de ocurrencia) para que pueda ocurrir la
transición Running ===== blocked/suspended,
64. Un determinado programa PEPE esta en el estado BLOCKED/SUSPENDED. Hay una cola no vacía de
procesos READY/SUSPENDED. Justifique la razón por la cual el S.O. habilite al PEPE para su ejecución.
¿qué significa “habilitar” al programa para su ejecución, dado el estado en que se encuentra?

PAGINA 60 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

65. Describa el método Round-Robin, utilizado en un sistema Operativo por Time Sharing. Cuáles problema
resolvió su aparición. Proponga incorporar algún mecanismo para optimizar su funcionamiento y dar mejores
servicios a sus usuarios.
66. Qué es la computación cliente servidor?
67. Plantee razones fundamentales para situar las aplicaciones en el cliente, en el servidor o dividirlas entre el
cliente y el servidor
68. Qué son los clientes ligeros y pesados, cuales son las diferentes de los dos enfoques
69. Defina lo que significa un proceso. Diferencia con la definición de un programa.
70. Describir los estados de un proceso en un modelo integral. Explicar al menos 3 transiciones de un estado al
otro.
71. Qué es el middleware?
72. Compare la arquitectura de Clusters vs la SMP
73. Características que deben tener los programas reubicables y los reentrantes.
74. Facilidades o crecimientos que brinda la estructura de Micronúcleo en un S.O.
75. Defina el significado de cambio de contexto. Lugar donde se guarda la información propia de un cambio de
contexto
76. si hay un proceso en estado Ready suspended y otro en ready, cuál criterio puede considerar para elegir al
suspendido y cual criterio para elegir al ready para pasarlo a Running.
77. En cuales estados usted podría definir colas de espera. Defina los criterios con que justifica su definición
78. Que es un quantum en una planificación Round Robin? Como se determina? ¿qué cambia en la planificación al
modificarlo?
79. Es necesario ejecutar un determinado proceso. Del estado NEW, la CPU puede admitirlo al estado READY o al
estado READY/SUSPEND. ¿cuando elije uno u otro criterio?
80. Como vincularía la utilización del Job Control Language con el concepto del Monitor Residente, en un sistema
Operativo Batch
81. Sistemas Distribuidos: diferencia conceptual y de implementación entre un cluster de computadoras y la
organización Maestro/Esclavo.
82. Explique el concepto de multihilo o multithreading y cuál es el avance conceptual con respecto a los procesos
existentes con anterioridad.
83. Explicar el algoritmo de planificación con prioridades y de colas múltiples. Explicar las ventajas y desventajas
de cada uno de ellos.
84. Un proceso esta formado por un programa codificado por un programador y los archivos externos definidos
por el mismo (V ó F). Justifique su respuesta
85. Diferencia de enfoque entre una estructura de SO de capas simples, de capas encapsuladas y el micronúcleo.
86. Como se comunican las computadoras que forman un Cluster
87. Cómo se comunican los procesadores que forman un SMP.
88. Si se le pregunta por lo que debe brindar un sistema operativo explique los siguientes términos
Equidad , Eficacia
89. Si se le pregunta por lo que debería bridar un sistema operativo explique los siguientes términos: Tiempo de
Respuesta, Tiempo de regreso, Rendimiento
90. ¿Qué es un servidor?

PAGINA 61 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

TRABAJO PRACTICO I
Multiple Choice (Verdadero o Falso)

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


que uno activo está en disco rígido.
2) El PCB es un conjunto de datos que necesita el sistema operativo para poder
administrar un proceso
3) Un proceso en estado de ejecución (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 ejecución de los
procesos que no requieren conversación con los usuarios
6) Un proceso suspendido no esta disponible para la ejecución, puesto que se
suspende siempre que se esta a la espera de algún suceso por él pedido
7) Una bifurcación incondicional implica la modificación del RPI en el ciclo de
instrucción
8) Una habilidad elemental de un procesador es la orden que emite el programador
en su programa
9) El Rpi contiene la instrucción próxima a ejecutarse
10) EL PSW contiene bits que muestran los resultados del programa
11) Una interrupción significa que el programa en running deja de estarlo y pasa a
ready por decisión autónoma del proceso
12) Una interrupción consta exclusivamente de guardar la información de los registros
en la PCB correspondiente
13) La organización 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 políticas para actualizar la memoria cada vez que se produce una
modificación en el programa cargado en memoria
19) En KLT el núcleo del SO se ocupa de proveer un nuevo hilo al proceso
solicitante
20) En ULT el núcleo del SO se ocupa de proveer un nuevo hilo al proceso solicitante
21) En SMP cada procesador administra su propia porción de memoria
22) Un cluster de computadoras permite administrar a cada procesador su propia
memoria principal
23) En una organización Maestro/esclavo, cada procesador administra funciones
específicas 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 estáticas o dinámicas según sean asignadas por el
sistema operativo o por el propietario del proceso

PAGINA 62 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

27)Las prioridades pueden asignadas por el sistema operativo o por el propietario del
proceso independientemente que sean estáticas o dinámicas.
28)
29)Un proceso en estado inactivo se encuentra alojado en memoria principal, mientras
que uno activo estará en memoria secundaria (disco rígido)
30)Un proceso por lotes (batch) consiste en ir solicitando la ejecución de procesos que
no requieren conversación con el usuario.
31)El PCB ( Bloque de Control de Procesos), es un conjunto de datos de cada
proceso, que tiene como objetivo convertirlo en programa ejecutable
32)El PCB ( Bloque de Control de Procesos) , es un conjunto de datos de cada
proceso, que tiene como objetivo el registro de esos datos para permitir la
interrupción de su ejecución y la localización de esa información por parte del
sistema operativo.
33)Un proceso puede estar activo o inactivo durante su “vida” dentro de un sistema,
el sistema operativo debe informar siempre al usuario cuál es el estado en que se
encuentra su proceso.
34)Un proceso puede estar activo o inactivo durante su “vida” dentro de un sistema,
esta situación es transparente al usuario.
35)Un proceso en estado de ejecución tiene el control del procesador, mientras que
uno bloqueado, se diferencia del anterior únicamente porque no lo tiene
36)Un proceso en estado de ejecución tiene el control del procesador, mientras que
uno listo, se diferencia del anterior justamente porque no lo tiene nmg el proceso
no controla al procesador
37)Un proceso pasa a estado de bloqueado cuando otro proceso le saca el control del
procesador
38)Un proceso pasa a estado de bloqueado cuando queda a la espera de que suceda
algo que necesita para seguir con su ejecución
39)Son varias las causas por las que se crea un proceso, entre ellas la conexión de un
nuevo usuario en un sistema tipo batch o desde otro proceso, en este último caso
el nuevo proceso será un hijo del anterior
40)Son varias las causas por las que se crea un proceso, entre ellas la conexión de un
nuevo usuario en un sistema interactivo, o a partir de otro proceso, en este último
caso el nuevo proceso será un hijo del anterior
41)Un proceso suspendido no está disponible para su ejecución, puesto que se
suspende siempre que está a la espera de algún suceso
42)Un proceso bloqueado no está disponible para su ejecución, espere un suceso o
no, porque debe ser llevado a memoria para poder ejecutarse
43)Un proceso en estado activo se encuentra alojado en memoria principal, mientras
que uno inactivo estará en memoria secundaria (disco rígido).
44)El Swapping (intercambio) se produce cuando un proceso está bloqueado:
45)El Planificador a corto plazo se encargará de crear y terminar procesos, mientras
que el de largo plazo gestionará los procesos suspendidos
46)El Planificador a largo plazo se encargará de crear y terminar procesos, mientras
que el de medio plazo gestionará los procesos suspendidos
47)Un programa ejecutable está formado por un proceso y sus datos, ubicado en un
determinado entorno
48) Un proceso está formado por un programa ejecutable y sus datos, que se ejecuta
en un determinado entorno yo agregaria algunas cosas mas

PAGINA 63 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

TRABAJO PRACTICO II
Multiple Choice (pueden haber 0 a n respuestas correctas o incorrectas)

1. Lenguaje de máquina
a. Conjunto de órdenes que el programador solicita ejecutar
b. Conjunto de habilidades elementales con que cuenta cada maquina
c. Instrucciones de un programa
d. Ordenes de un sistema operativo que no impliquen cortes en la
secuencia de ejecución
e. Ninguna de las anteriores
2. Servicios de un Sistema Operativo
a. Usos específicos tipificados de los recursos que brinda el hardware
b. Conjunto de facilidades que brinda un sistema operativo
c. Administración de los registros de procesador
d. Procesamiento de las instrucciones de un programa de usuario
e. Ninguna de las anteriores
3. Programa almacenado
a. Programa del sistema operativo almacenado en memoria para su
ejecución
b. Programa del usuario almacenado en disco
c. Programa del usuario almacenado en memoria
d. Ejecución de instrucciones especificas del sistema operativo
e. Ninguna de las anteriores
4. RPI
a. Es una parte de la memoria principal
b. Es un registro perteneciente a la CPU
c. Guarda la instrucción próxima a ejecutarse
d. Guarda un puntero a la memoria de la instrucción que se esta analizando
e. Guarda un puntero a la memoria de la instrucción siguiente a la que se
esta analizando
f. Algunas de las anteriores
5. Stack Pointer
a. Es un puntero relacionado solo con la pila de del sistema operativo
b. Es un puntero relacionado solo con la pila de cada programa
c. Es un puntero que indica el inicio del programa para acceder a sus
instrucciones
d. Es un registro que indica la longitud de las diferentes pilas
e. Alguna de las anteriores
f. Ninguna de las anteriores
6. Registros de uso general
a. Partes de la CPU donde se guardan solamente punteros
b. Tramos de memoria donde se guardan los datos definidos por cada
programa
c. Partes de la CPU que se utilizan como memorias para guardar
instrucciones de los programas de usuario
d. Partes de la CPU que se utilizan como memorias para guardar datos del
SO
e. Partes de la CPU que se utilizan como memorias para guardar
direcciones de memoria

PAGINA 64 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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


de memoria y/o resultados de cálculos
7. P.S.W.
a. Equivalente al dispositivo llamado canal o bus.
b. Es un registro de uso general
c. Es un registro de uso especifico
d. Contiene una serie de bits (flags, banderas) cuyos valores son
modificados por cada instrucción ejecutada
e. Es consultada por las instrucciones de salto incondicional
f. Es consultada por las instrucciones de salto condicional
8. Código de operación
a. Es el signo del resultado de cada operación matemática
b. Es un conjunto de 0 o n direcciones codificables en cada instrucción
c. Es un conjunto de dos bytes que indican la acción que debe implementar
cada instrucción de un programa de usuario
d. Ninguna de las anteriores
9. Operandos
a. Es un dato que acompaña a cada instrucción de maquina
b. Son exclusivamente direcciones que acompañan a cada instrucción de
maquina
c. Son partes de toda instrucción de maquina que contienen datos o
direcciones a memoria principal
d. Es cierta solo la ultima respuesta
10. Ciclo de instrucción
a. Es una de las cinco partes en que se divide el procesamiento de una
instrucción
b. En él se calcula el nuevo valor del RPI
c. En él se analiza el código de operación
d. En él se analiza cada uno de los operandos
e. Es el ciclo donde se ejecuta cada instrucción
f. Todas las anteriores
11. Interrupción
a. Es una comunicación de la CPU a un dispositivo indicando que el
programa no puede seguir
b. Es una comunicación al SO de que se produjo un error de hardware y el
programa no puede continuar
c. Es una comunicación entre un registro de uso general a la CPU
indicando que el resultado de una operación excede el tamaño del
registro
d. Es una comunicación al SO de que se produjo una dirección inválida y el
programa no puede continuar
e. Es una comunicación de un dispositivo a la CPU avisando que se ha
cumplimentado un pedido de E/S para dicho dispositivo
f. Es una comunicación 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 ejecución
b. Solamente hay una para el Sistema Operativo
c. Hay una sola pila por cada sistema operativo

PAGINA 65 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

13. Cambio de contexto


a. El SO deja de procesar un programa para pasar a otro
b. Proceso que permite continuar con el procesamiento de un programa
después 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 típico como resultado de una interrupción
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 dirección 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 localización
a.
b. Posición 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 instrucción 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 rápido 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. Implementación de E/S de información que evita trabajo al procesador
e. Solo la ultima respuesta es cierta
18. DMA:
a. Es un módulo que recibe información desde el procesador y que le
permite encargarse de las operaciones de E/S
b. Es un módulo que permite independizar el procesador de las operaciones
de E/S
c. Es una cache de transmisión de información
d. Ninguna de las anteriores
19. Spooler
a. Implementación de una cola servicios

PAGINA 66 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

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


salida (para la administración de la impresora)
c. Permitió la administración de múltiples funciones de impresión contando
con un único dispositivo en un entorno multiusuario
d. Todas las anteriores
20. Proceso:
a. Es un código con datos que se está ejecutando y con un determinado
entorno
b. Es un programa ejecutable
c. Es la ejecución de un programa
d. Es la copia en memoria de un programa guardado en disco
e. Es un programa en ejecución
f. Ninguna de las anteriores
g. Es un programa activo

21. Dispatcher
a. Programa que cada usuario ejecuta previamente a su programa
b. Programa del sistema operativo
c. Ordena la cola de programas en estado ready
d. Ninguna de las anteriores
22. Cuando finaliza un proceso
a. Solo se libera la memoria por el ocupada
b. Se borra su PCB
c. Se guardan los datos de su PCB en disco
d. Solo se libera el espacio de memoria ocupado por la PCB
e. Se procesan los datos contables
23. Estado Blocked/Suspended
a. Es un estado al que se llego por dos eventos: pedido de E/S y
suspensión
b. A dicho estado se llegó desde el estado running
c. A dicho estado se llego desde el estado suspended del proceso
d. A dicho estado se llegó desde el estado blocked
e. Todas las anteriores son falsas
24. Suspensión
a. Un proceso es suspendido cuando se lo incorpora a memoria principal
b. Un proceso es suspendido cuando se lo excluye parcialmente de
memoria principal
c. Un proceso es suspendido cuando se lo excluye completamente de
memoria principal
d. Implica la copia del programa a disco para su posterior reincorporación
e. Implica el proceso de swapping
25. Cola de procesos en estado blocked
a. Se ordenan por tiempo de llegada (definición de cola)
b. Se ordenan por tiempo de llegada (definición de cola) y por dispositivo
c. Se ordenan por dispositivo para una búsqueda mas rápida
d. Todas las anteriores
26. Batch
a. Se refiere a lotes de programas
b. Tipo de SO nacido para automatizar la ejecución secuencial de
programas

PAGINA 67 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

c. Tipo de SO nacido para evitar la intervención del usuario


d. Incorporo el concepto de monitor residente
e. Todas las anteriores
27. SO residente
a. Se refiere a que siempre hay una copia en disco
b. Se refiere a la aparición del tipo de SO Batch
c. SO con la modalidad de estar permanentemente cargado en memoria
d. SO que controlaba el flujo de ejecución de los programas mediante la
incorporación del JCL
28. SO en tiempo real
a. Sirve para el manejo de maquinas herramientas
b. No trabaja con interrupciones y cambios de contexto para acelerar su
respuesta
c. Generalmente gira alrededor del control de dispositivos
d. Generalmente tiene prefijados los puntos op direcciones a los que
ingresa la información del entrono
29. Time Sharing
a. El procesador divide su tiempo entre los procesos presentes
b. El procesador entrega a cada proceso una misma cantidad de tiempo
c. El programador siente que tiene una maquina completa a su disposición
d. Cada tramo de tiempo entregado a cada procesose llama time slice
e. Todas las anteriores
f. Ninguna de las anteriores
30. Micronúcleo
a. Es la más 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 sostén básico para una estructura de un SO por servicios
31. Servidor
a. Es un sistema operativo estructurado en servicios especializados
b. Es una computadora
c. Es un servicio especializado que ofrece un SO alojado, probablemente,
en una maquina especializada.
d. Permite la estructuración 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 multiplicación de recursos
32. SMP
a. Es un modelo de procesador surgido cerca de 1980
b. Es una estructura de procesamiento distribuido
c. Son varios procesadores, cada cual con su propia memoria
d. Son varios procesadores compartiendo la memoria
e. Son varios procesadores donde uno de ellos cumple funciones del
sistema operativo
f. Tiene un SO equilibrado, pues cuando falla uno las funciones del SO que
tenía hasta ahora se redistribuyen
33. Maestro/Esclavo
a. Es una estructura de procesamiento distribuido
b. Son varios procesadores, cada cual con su propia memoria
c. Es un modelo de procesador surgido cerca de 1950
d. Son varios procesadores compartiendo la memoria

PAGINA 68 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

e. Son varios procesadores donde uno de ellos cumple funciones del


sistema operativo
f. Tiene un SO equilibrado, pues cuando falla uno las funciones del SO que
tenía hasta ahora se redistribuyen
34. Multithread-Multihilo
a. Innovación que permite un aumento en la velocidad del procesador
b. Innovación que permite procesamiento en paralelo
c. Innovación que permite que cada proceso tenga varias unidades de
ejecución
d. Entre los hilos de un proceso no hay comunicación alguna pues son
entes independientes.
e. Los hilos se manejan entre si por prioridades
35. Las Interrupciones:
a. Son mecanismos que permiten detener la ejecución normal de un
proceso
b. Pueden ser provocadas por fallos de memoria
c. Se tratan por software a partir de una serie de acciones de la Rutina de
Tratamiento correspondiente
d. Ninguna de las anteriores
36. Al atenderse una interrupción:
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 específicos
c. Ninguna de las anteriores

37. Un sistema Operativo jerárquico está compuesto por:


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

38. El núcleo o kernel del Sistema Operativo:


a. Es el nivel que se ocupa de las funciones referentes a las operaciones
sobre la UCP y la planificación de los procesos, entre otras cosas.
b. Es el nivel que maneja la transferencia de datos entre la memoria y el
almacenamiento secundario
c. Es la interfaz entre el usuario y el sistema Operativo
d. Ninguna de las anteriores
39. El Intérprete de comandos:
a. En un sistema Operativo jerárquico es la interfase entre el usuario y los
otras niveles del SO
b. En un sistema monolítico es el nivel del SO que se encarga de la
creación y terminación de los procesos
c. Es un lenguaje de programación

PAGINA 69 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

d. Ninguna de las anteriores

40. P.C.B.
a. Es un registro de uso general
b. Es un tramo de memoria
c. Existe una sola para el SO
d. Existen tantas como procesos se están ejecutando
e. Las PCB´s de los programas de usuario varían de tamaño
41. El P.C.B.
a. Es una estructura de datos del SO que le permite gestionar los procesos
b. Se agrega al código de un proceso cuando entra en ejecución
c. Contiene los datos con que se está ejecutando el programa
d. Ninguna de las anteriores
42. Para que un proceso pase de listo a ejecución (ready a running):
a. Entre otras cosas se carga en el RPI la dirección de la instrucción
correspondiente que se debe ejecutar de ese proceso
b. El planificador a largo plazo lo selecciona de la cola de “listos”
c. El planificador a corto plazo aplica un algoritmo de selección para elegirlo
entre los procesos “vivos” en el sistema
d. Ninguna de las anteriores
43. Los algoritmos de planificación son apropiativos:
a. Cuando se pueden apropiar del procesador desplazando al proceso que
lo ocupa en dicho momento
b. Cuando un proceso se “apropia” del procesador y no lo abandona hasta
que termina o se bloquea
c. Cuando distribuyen el uso del procesador apropiadamente entre los
procesos vigentes en el sistema
d. Ninguna de las anteriores

44. Los algoritmos del planificador son No apropiativos:


a. Si permiten terminar de procesarse al proceso en estado running
b. Si 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 70 DE 71
Sistemas Operativos Prof. Alberto Rozenfarb

Significado de palabras clave


Dirección física
Dirección virtual
Estado de proceso
Hilo
Interrupción
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 Lógica

PAGINA 71 DE 71

Вам также может понравиться