Documente Academic
Documente Profesional
Documente Cultură
Introduccin
1.0 Sistema Operativo
Es una coleccin organizada de extensiones software del hardware, consistente en rutinas
de control que hacen funcionar un computador y proporcionan un entorno para la
ejecucin de los programas.
Es un paquete de programas que administra los recursos del sistema de computacin. Los
recursos pueden ser fsicos, lgicos o abstractos.
Acta como interfaz entre el usuario y el hardware. No se encuentra completamente en
memoria, solo las funciones mas utilizadas.
Los programas en ejecucin se apoyan en las facilidades proporcionadas por el SO para
obtener acceso a los recursos del sistema informtico.
Los usuarios pueden interactuar con el SO directamente por medio de rdenes del SO.
Un SO acta como gestor de los recursos del sistema informtico, lleva el control sobre el
estado de cada recurso y decide quin obtiene un recurso, durante cunto tiempo y
cundo.
Slo forman parte del SO aquellas funciones administradoras de recursos. Es decir se ve al
SO exclusivamente como un administrador de recursos, dejando para aquellos sistemas
que no comparten recursos la categora de Monitor o Supervisor.
1.1 Qu es un SO?
Un sistema informtico puede dividirse en cuatro componente:
El hardware (CPU, memoria y dispositivos E/S) proporciona los recursos de computacin
bsicos.
Los programas de aplicacin definen la forma en que esos recursos se emplean para
resolver los problemas informticos de los usuarios.
Los usuarios, pueden ser muchos y distintos e intentan resolver problemas diferentes; por
consiguiente, es posible que haya diferentes programas de aplicacin.
El SO, controla y coordina el uso del hardware entre los diversos programas de aplicacin
de los distintos usuarios.
Como hardware no es fcil de utilizar, se desarrollan programas de aplicacin que requieren
ciertas operaciones comunes.
El SO es el programa que se ejecuta todo el tiempo en el computador (conocido
usualmente como ncleo), siendo programas de aplicacin todos los dems.
Un SO puede procesar su carga de trabajos de forma:
Forma serie: los recursos del sistema informtico estn dedicados a un solo programa
hasta que termine
76
Forma concurrente: los recursos del sistema informtico son reasignados dinmicamente
entre una coleccin de programas activos en diferentes etapas de ejecucin, los
denominados sistemas de multiprogramacin.
El problema de los sistemas con cinta era que el lector de tarjeta no poda escribir en un extremo
de la cinta mientras la CPU lea del otro. Toda la cinta se tena que escribir antes de rebobinarla y
leerla.
El problema es la velocidad de los dispositivos mecnicos de E/S, que son ms lentos que los
dispositivos electrnicos:
La lentitud de los dispositivos de E/S provoca que la CPU con frecuencia se encuentre esperando
E/S. El problema es que, mientras se lleva a cabo una operacin de E/S, la CPU est inactiva,
76
esperando que termine la E/S, y mientras la CPU est trabajando, los dispositivos de E/S estn
inactivos.
Una solucin comn:
Sustituir los lectores de tarjetas y las impresoras de lneas con las ms rpidas unidades de cinta
magntica. Las tarjetas primero se copian a una cinta magntica y cuando se llena lo suficiente,
se desmonta y se lleva al computador. Cuando se requera una tarjeta como entrada para un
programa, se lea el registro equivalente desde la cinta. En forma anloga, la salida se escriba en
la cinta y el contenido de sta se imprima ms tarde.
Los lectores de tarjetas y las impresoras de lneas se operaban fuera de lnea (off line);
no lo haca el computador central.
Para el procesamiento fuera de lnea se utilizaban dos mtodos:
1. Se desarrollaron dispositivos de propsito especial que enviaban la salida a la cinta
magntica o tomaban la entrada de ella, directamente. Contaban con hardware adicional
diseado especficamente para esa tarea.
2. Se dedicaba un pequeo computador a la tarea de copiar en cinta y de ella; este pequeo
computador era un satlite del computador principal. El procesamiento satlite fue uno de
los primeros casos de sistemas informticos mltiples que trabajan en conjunto para
mejorar el rendimiento, no era necesario modificar los programas de aplicacin para pasar
de una operacin de e/s directa a una fuera de lnea.
Hay que modificar el manejador del dispositivo. Cuando el programa necesita una tarjeta
de entrada, llama a la misma rutina de sistema que antes, sin embargo, ahora el cdigo
para la rutina no es el manejador del lector de tarjetas, sino una llamada al manejador de
la cinta magntica.
La capacidad para ejecutar un programa con diferentes dispositivos de E/S se llama
independencia de dispositivos, y se obtiene cuando el SO es capaz de determinar el
dispositivo que realmente usa un programa cuando solicita E/S.
Los programas se escriben para usar los dispositivos lgicos de E/S. Las tarjetas de control indican
la correspondencia entre los dispositivos lgicos y los fsicos.
Con la posibilidad de usar varios sistemas lector-cinta y cinta-impresora con una misma CPU, se
puede producir suficiente cinta para mantener activa a la CPU.
Hay un mayor retardo para iniciar la ejecucin de un trabajo determinado.
76
Los registros fsicos son definidos por la naturaleza de los dispositivos de E/S y los
registros lgicos son definidos por los programas de aplicacin.
La conversin entre registros lgicos y fsicos se realiza por Software.
generalmente contendr varios registros lgicos de menor tamao.
Un registro fsico
1. Cuando la CPU est lista para comenzar a trabajar con ellos, se ordena al dispositivo que
inicie de inmediato la siguiente lectura. En ese momento tanto la CPU como el dispositivo
se encuentran ocupados.
2. Cuando la CPU est lista para el siguiente elemento de datos (registro), el dispositivo de
entrada habr terminado de leerlo, la CPU puede entonces comenzar el procesamiento de
los datos recin ledos, mientras el dispositivo de entrada comienza a leer los datos
siguientes.
Tenemos un acceso directo a memoria, cuando la CPU necesita datos los busca en el
Buffer de entrada y despus los imprime en el buffer de salida.
Si la CPU termina antes deber esperar y en el peor de los casos, la espera no sera mayor
que si no existiera el buffer.
Si el dispositivo de entrada termina antes, entonces deber esperar o podr proseguir con
la lectura del siguiente registro. Los buffers en general tienen el tamao suficiente para
almacenar varios registros.
Las llamadas de subrutinas al manejador de dispositivo efectuadas por los programas de
aplicacin provocan una transferencia de o hacia un buffer del sistema.
TRABAJO LIMITADO POR LA E/S: Si la CPU es siempre ms rpida, encontrar el buffer de
entrada vaco y tendr que esperar al dispositivo de entrada. Para la salida, la CPU puede
proseguir a toda velocidad hasta que, finalmente, se llene el buffer de salida y la CPU deber
esperar al dispositivo de salida.
TRABAJO LIMITADO POR LA CPU: los buffers de entrada siempre estn llenos y los dispositivos
de salida siempre vacos; la CPU no puede mantener el ritmo de los dispositivos de E/S.
Controladores de dispositivos:
Cada uno de los controladores de dispositivos se encarga de un tipo especfico de
dispositivo.
Un controlador de dispositivo cuenta con almacenamiento local en buffer y un conjunto de
registros de propsito especial.
El controlador del dispositivo es el responsable de transferir los datos entre el perifrico
que controla y su buffer local.
1.5.2 Spooling
76
El objetivo del Spooling es la independencia de los programas respecto de los dispositivos lentos.
Como la cabeza del disco se mueve de un rea del disco a otra, ste puede cambiar rpidamente
el rea utilizada por el lector de tarjetas para almacenar nuevas tarjetas a la posicin requerida
por la CPU para leer la siguiente.
Las tarjetas se leen directamente del lector de tarjetas al disco.
Forma de trabajo:
La ubicacin del contenido de las tarjetas se anota en una tabla que mantiene el SO.
Cuando se ejecuta un trabajo, el SO satisface las solicitudes de entrada del lector de
tarjetas, leyendo del disco.
Cuando el trabajo solicita a la impresora que imprima una lnea, sta se copia a un buffer
del sistema y se escribe en el disco.
Con el Spooling, se utiliza el disco como un buffer de gran tamao.
Da inicio al concepto de multiprogramacin.
Ventajas:
Hace simultnea la E/S de un trabajo con el clculo de otro trabajo.
La CPU puede hacer simultneos los clculos de un trabajo con la E/S de otros.
Mejora el rendimiento
Se necesitan tablas y espacio en disco.
Un depsito de trabajo en el disco permite al SO seleccionar cul ser el siguiente trabajo
por ejecutar, para as incrementar la utilizacin de la CPU.
Desventajas:
El tourn-around-time aumenta ya que al tiempo original del programa se agrega el tiempo
de ejecucin de la rutina y el tiempo de grabacin en el dispositivo rpido.
Aumenta el troughput que es el nmero de trabajos que atraviesan el sistema por unidad
de tiempo.
76
76
76
76
76
Una vez que la E/S se ha iniciado, es posible seguir dos cursos de accin:
La E/S se inicia y al terminar, se devuelve el control al programa usuario (el caso ms
simple).
Ventaja: Como mximo hay una solicitud de E/S pendiente en cada ocasin entonces el SO
sabe exactamente cual es el dispositivo que interrumpe.
Devolver el control al programa de usuario sin esperar que la E/S termine.
Se requiere entonces una llamada al sistema (una solicitud al SO) para permitir al usuario
que espere la terminacin de la E/S.
La espera de la terminacin de la E/S puede lograrse de 2 maneras:
Con una instruccin especial de espera (wait) que mantiene inactiva a la CPU hasta la
siguiente interrupcin
Con un ciclo de espera: Ciclo- jmp. Ciclo muy cerrado que contina hasta que ocurre una
interrupcin, lo cual transfiere el control a otra parte del SO.
El SO usa una tabla que contiene una entrada por cada dispositivo de E/S: la tabla de estado de
dispositivos. Cada entrada de la tabla indica el tipo de dispositivo, as como su direccin y su
estado.
Si el dispositivo est ocupado con una solicitud, el tipo de solicitud y otros parmetros se anotarn
en la entrada de la tabla correspondiente al dispositivo. Adems de la tabla de dispositivos de E/S,
un SO puede contar con una lista de solicitudes para cada dispositivo.
Manejo con interrupcin de E/S:
1. Un dispositivo de E/S interrumpe cuando requiere servicio.
2. El SO determina cul fue el dispositivo de E/S que caus la interrupcin y acude, usando un
ndice, a la tabla de dispositivos de E/S para determinar el estado del dispositivo y
modificar la entrada de la tabla para reflejar la aparicin de la interrupcin.
3. Finalmente se devuelve el control desde la interrupcin de E/S.
(a) Si el programa estaba esperando a que terminara esta solicitud ahora podemos
devolverle el control.
(b) Si el programa no estaba esperando regresamos a lo que estbamos haciendo antes de
la interrupcin.
76
76
76
Un rea de memoria protegida, donde se encuentran todas las direcciones de memoria que
el programa no puede referenciar y es donde se almacenan las rutinas del SO y el resto de
los programas usuarios concurrentes.
76
76
76
3.1.7 Redes
Es un sistema distribuido es un conjunto de procesadores que no comparten memoria ni
reloj, pues cada uno tiene su propia memoria.
Los procesos se comunican entre s a travs de diversos medios, como canales de alta
velocidad o lneas telefnicas.
Permite al usuario el acceso a recursos que mantiene el sistema, haciendo posible aumentar la velocidad de los clculos, ampliar la disponibilidad de los datos y mejorar la
confiabilidad.
Los SOs generalizan el acceso a la red como una forma de acceso a archivos, con los
detalles de la red contemplados en el manejador de la interfaz de la red.
76
76
Algunos pueden tener un cdigo de asignacin especial, mientras otros pueden poseer un
cdigo de solicitud y liberacin ms general.
Contabilidad: Deseamos llevar un control de cules usuarios utilizan cuntos recursos del
computador y de qu tipo. Estas anotaciones pueden tener fines contables o simplemente
para recopilar estadsticas de uso.
Proteccin: Cuando varios trabajos independientes se ejecutan al mismo tiempo, no
debera ser posible que un trabajo interfiera con los dems, ni con el SO. La proteccin
implica revisar la validez de todos los parmetros que se pasan en las llamadas al sistema
y asegurar que todo el acceso a los recursos del sistema est controlado.
(b) El programa tambin puede colocar o meter en la pila los parmetros, de donde
los saca el SO.
Las llamadas al sistema se pueden agrupar en cinco grandes categoras:
Control de procesos
finalizar, abortar
cargar, ejecutar
crear proceso, terminar proceso
obtener atributos de proceso, establecer atributos de proceso
esperar un tiempo
esperar suceso, sealar suceso
asignar y liberar memoria
Manipulacin de archivos
crear archivos, eliminar archivos
76
abrir, cerrar
leer, escribir, reposicionar
obtener atributos de archivos, establecer atributos de archivos
Manipulacin de dispositivos
solicitar dispositivo, liberar dispositivo
leer, escribir, reposicionar
obtener atributos de dispositivos, establecer atributos de dispositivos
unir o separar dispositivos lgicamente
Mantenimiento de informacin
obtener hora o fecha, establecer hora o fecha
obtener datos del sistema, establecer datos del sistema
obtener o establecer atributos de proceso, archivo o dispositivo
Comunicaciones
crear, eliminar conexin para comunicacin
enviar, recibir mensajes
transferir informacin de estado
unir o separar dispositivos remotos
76
3.3.5 Comunicacin
Modelo de paso de mensajes:
La informacin se intercambia a travs de un medio de comunicacin entre procesos que
ofrece el SO.
Antes de que la comunicacin pueda tener lugar, se debe abrir una conexin y conocer el
nombre del otro comunicador.
76
En una red, cada computador tiene el nombre del anfitrin y cada proceso tiene un nombre
de proceso.
Hay llamadas al sistema obtener identificacin del anfitrin y obtener identificacin del
proceso.
Los identificadores se transmiten a las llamadas abrir conexin y cerrar conexin.
El proceso receptor generalmente tiene que otorgar su permiso para que se lleve a cabo la
comunicacin con una llamada aceptar conexin.
La fuente de la comunicacin es conocida como cliente, y el demonio que recibe es
conocido como servidor.
Se intercambian mensajes mediante llamadas al sistema leer mensaje y escribir mensaje.
La llamada cerrar conexin termina la comunicacin.
El paso de mensajes es til cuando hay que intercambiar pequeas cantidades
de datos.
76
o Problemas:
(a)SO debe ofrecer un mecanismo para transmitir parmetros del intrprete a los
programas de sistema, ya que el cdigo para ejecutar un mandato se encuentra en
un programa de sistema separado.
(b) Es ms lento cargar un programa y ejecutarlo que simplemente saltar a otra seccin
del cdigo dentro del programa actual.
(c)La interpretacin de los parmetros queda en manos del autor del programa de
sistema.
76
Las capas se seleccionan de manera que cada una utilice funciones (operaciones) y
servicios nicamente de las capas inferiores.
Simplifica mucho la depuracin y verificacin del sistema.
Cada capa se implanta utilizando nicamente las operaciones que proporcionan las capas
inferiores.
Cada capa oculta la existencia de ciertas estructuras de datos, operaciones y hardware a
los niveles superiores.
La mayor dificultad con el enfoque por capas es definir los niveles: como una capa slo
puede utilizar las capas inferiores, es necesaria una planificacin cuidadosa
varias
mquinas
virtuales,
lo
que
las
hace
Suponga que la mquina fsica tiene tres manejadores de disco pero quiere dar servicio a
siete mquinas virtuales; es obvio que no puede asignar una unidad de disco a cada una.
La solucin es proporcionar discos virtuales, idnticos en todos los aspectos excepto en el
tamao. En el SO VM se les denomina minidiscos.
Ventajas:
Se da proteccin completa a los distintos recursos del sistema.
Los recursos no se pueden compartir directamente; para compartirlos se han implantado
dos estrategias:
o
Se puede definir una red de mquinas virtuales y cada una puede enviar
informacin a travs de la red virtual de comunicaciones.
76
La E/S virtual podra requerir menos tiempo (por encontrarse en el Spooling) o ms (por ser
interpretada).
El diseo del sistema se ver considerablemente afectado por la seleccin del hardware y
el tipo de sistema.
Puede ser mucho ms difcil especificar los requisitos, los cuales pueden dividirse
bsicamente en dos grande grupos: objetivos del usuario y objetivos del sistema.
3.7.3 Implantacin
Ventajas:
El cdigo se puede escribir ms rpido, es ms compacto y bastante fcil de comprender y
depurar.
Es ms fcil transportar (llevar a otro hardware) un SO si est escrito en lenguaje de alto
nivel.
Despus de escribir el sistema y mientras funciona correctamente, se puede identificar las
rutinas que provocan cuellos de botella y sustituirlas con sus equivalencias en lenguaje
ensamblador.
Se puede calcular y mostrar en tiempo real las mediciones del rendimiento lo cual puede
permitir que los operadores se familiaricen con el comportamiento del sistema y lo
modifiquen en tiempo real.
Desventajas:
Reduccin en la velocidad.
Aumento en los requisitos de almacenamiento.
Un compilador puede producir un cdigo tan bueno como el de un programador normal de
lenguaje ensamblador.
El administrador de memoria y el planificador de la CPU son quiz las rutinas ms crticas para
conseguir una buena productividad.
76
Diseo de SO:
Debe ser cmodo, fcil de usar y de aprender.
Separacin de polticas (que se har) y mecanismos (cmo hacerlo).
Implantacin: antes los sistemas se escriban en Assembler, hoy en da pueden ser escritos en
lenguajes de alto nivel. Ventajas: Se escribe ms rpido, fcil de entender y depurar.
Generacin del sistema para ejecutarse en una determinada mquina
o
Que CPU
Cuanta memoria
Que dispositivos
Parmetros generales
Con esta informacin puedo modificar el original y compilarlo, o utilizar un sistema dirigido por
tablas
76
Tiempo
Tiempo
Tiempo
Tiempo
Tiempo
de
de
de
de
de
demanda
seleccin
compilacin
combinacin
activacin
Tiempo de procesamiento
Tiempo de post-procesamiento
76
76
TIPOS DE COMPILACIONES:
Compilacin absoluta: particiones fijas: Con una memoria dividida as permite la ejecucin
de N programas a la vez pero el inconveniente es la compilacin absoluta porque un
programa solo puede ser ejecutado en la misma.
Compilacin relativa: Se incorpora un redireccionador de direcciones para pasar a una
compilacin relativa restando o sumando a las direcciones cuando quiero ejecutar un
programa compilado en otra particin. Ahora las particiones no son definitivas.
Eliminacin de la fragmentacin fsica: Para no realizar una fragmentacin fsica, se
realizan particiones lgicas. De esta manera se va ocupando solo el lugar necesario.
Cuando un programa finaliza y deja un espacio libre este se puede administrar. Como no
siempre los espacios libres se van a ir llegando completamente se va a ir creando una
fragmentacin interna, que se fue solucionando redireccionando los programas.
Optimizacin: Se fragmentan los programas y en memoria se tiene que tener un
PROGRAMA RAIZ y uno de los fragmentos. Si en la memoria entra el programa raz y el mas
grande de los fragmentos el programa correra. Esto lleva mucho tiempo.
4.1.6 Evolucin
4.1.6.1 Tiempo Simple
Se fusionan prcticamente todos los tiempos de pre-procesamiento en el
compilador.
Los servicios del tiempo de demanda son satisfechos por un operador o por un programa
monitor residente que llama al compilador o a un programa del usuario segn lo
especificado en el control-stream.
76
4.1.6.3 Carga
Fusionaba inicialmente los tiempos de seleccin y activacin.
Se convoca ahora al cargador (o Loader) para que cargue el programa objeto en memoria.
El programa es asignado en memoria y los dispositivos y programas precompilados son
enlazados (link-editados) al programa a ser cargado.
Incluye la asignacin de memoria y la carga junto con el programa, de las rutinas de
manejo de dispositivos de E/S.
El Loader tiene la capacidad de cargar el programa en cualquier conjunto de ubicaciones
contiguas de memoria de dimensiones apropiadas: Reasignacin de Memoria.
El compilador genera ahora programas reasignables (compilacin relativa) y asignacin
simblica de perifricos.
En la etapa final de la carga, el Loader ubica el programa en memoria principal y le
transfiere el control.
La existencia del Loader requiere un conjunto de tablas representando los recursos
disponibles del sistema (en archivo) y un conjunto de bloques de control (en el mbito
de procesamiento) representando la asociacin de nombres simblicos de archivos con
nombres de dispositivos reales que los contienen.
4.1.6.4 Link-edicin
Tiempo independiente, precediendo al tiempo de activacin.
Una serie de programas usuario podan ser combinados independientemente de la
asignacin y activacin.
Ahora nicamente el resultado de la combinacin (o link-edicin) es sometido al tiempo de
activacin.
4.1.6.5 Asignadores
76
4.1.6.6 Conclusiones
Las rutinas para el manejo de las E/S , stas pueden ser incorporadas (o brindadas) al programa
en:
El tiempo de compilacin: La biblioteca es propiedad del compilador y este se encarga de
incorporar al programa usuario las funciones que este necesita para su corrida.
El tiempo de activacin: Disminuye el espacio requerido para guardar programas en el
almacenamiento secundario e incrementa el tiempo necesario para cargar el programa en
memoria.
El tiempo de combinacin: la biblioteca es del combinador quien se encarga de adicionarle
al programa las funciones correspondientes. Incrementa la necesidad de almacenamiento
secundario y disminuye el tiempo empleado para la carga del programa.
El tiempo de procesamiento La biblioteca reside en memoria, formando parte del SO y las
funciones estn disponibles para que los programas las convoquen cuando las necesiten.
Disminuye el espacio necesario para almacenamiento de programas, se reduce el tiempo
para cargar el programa y decrece la cantidad de memoria que ste necesita; a costa de
una sobrecarga en el mbito de procesamiento.
As mismo la memoria puede ser asignada a un programa en:
El tiempo de compilacin: En los sistemas de tiempo simple con compilacin absoluta.
El tiempo de activacin: En los sistemas de multiprogramacin bsica con compilacin
relativa.
El tiempo de procesamiento: En los sistemas de multiprogramacin avanzada con
memoria virtual.
76
4.1.9 Subsistemas
Ciertos servicios del tiempo de pre-procesamiento pueden combinarse dentro de subconjuntos, de
capacidades conceptualmente distintas, por ejemplo subsistemas.
Cualquier conjunto de servicios de pre-procesamiento puede ser organizado para formar un
subsistema.
Un subsistema puede presentar un conjunto mejorado de interfaces del tiempo de
procesamiento.
Es un nico conjunto de servicios macro-enriquecidos empaquetados para facilitar la
corrida de programas que requieren de ellos sin molestar a aquellos programas que no los
necesitan.
76
4.2.3.2 Aging
Se va aumentando la prioridad de un programa con el transcurso del tiempo, o bien en
funcin del nmero de negativas recibidas ante la solicitud de un recurso.
Puede definirse un umbral de prioridades que cuando es alcanzado impedir al sistema que
siga asignando recursos hasta que el demandante de requerimiento que super el umbral
sea completado.
76
4.3.2 Recurso
Abstraccin definida por el SO quien otorga una serie de atributos referentes a la forma de
acceso al mismo y a su representacin fsica en el sistema.
Un conjunto de recursos del software, sujetos a la administracin del SO, pueden ser
definidos en un sistema de computacin como objetos a los cuales se debe controlar el
acceso.
La funcin del SO es definir una mquina abstracta, compuesta por recursos abstractos que son
convenientemente manejados por los procesos para proteger la utilizacin de los mismos, para
asegurar un uso coherente y para imponer polticas de explotacin.
4.3.3 Poltica
Dado un conjunto de recursos, el uso de los mismos debe ser fijado por una poltica.
Una poltica es el enunciado de los objetivos de una empresa en lo que hace a la operacin
satisfactoria de un sistema de informacin.
El SO presenta una interface que permite, mediante sentencias, establecer la
importancia que debe darse a una determinada clase de trabajos y establecer cmo
sern tratados los distintos programas que compiten por los recursos del sistema.
Motivaciones:
Motivos econmicos para compartir memoria y CPU que decrecen;
Motivos econmicos para compartir la informacin, los cuales crecen;
Mecanismos fundamentales de acceso y asignacin mantienen su importancia.
Objetivos:
Minimizar el flow-time promedio (tiempo que tarda un programa en atravesar la mquina
desde la demanda hasta la obtencin de los resultados).
Minimizar el nmero de respuestas tardas.
Minimizar el tiempo mximo de las respuestas tardas.
Maximizar la utilizacin del hardware.
Maximizar la utilizacin del hardware pero con la restriccin de que ninguna respuesta sea
superior a un cierto tiempo lmite.
Brindar servicios de la clase A en un cierto porcentaje, de la clase B en otro porcentaje,
etc.
En general un SO brinda todos algunos de los siguientes servicios:
Una interface para administrar las polticas de explotacin del sistema.
Una interface que permite a un profesional en sistemas ajustar la performance del equipo.
Una interface que posibilita describir la importancia relativa de un trabajo en particular en
trminos de su pertenencia a un determinado grupo o clase, a un determinado plazo de
finalizacin, o a una prioridad relativa.
Una interface para describir las caractersticas del consumo de recursos de un determinado
proceso.
76
Inconvenientes:
En las interfaces de los SOs no existe una clara diferenciacin entre definicin de poltica y
operacin, pues no se distinguen ntidamente los roles de administracin y operacin del
equipo.
Necesidad de formular la poltica de administracin en trminos de parmetros que slo
pueden ser comprendidos por profesionales.
76
Los recursos que pueden ser administrados de esta forma son slo los recursos
reasignables, o sea aquellos que pueden ser dados a y quitados de un proceso,
sin causar efectos en su lgica.
Costo relativo: Costo de los mecanismos de asignacin versus el costo por la subutilizacin del
equipo.
Utilizacin Real: Intervalo de tiempo en que el recurso es usado efectivamente (intervalo de
tiempo que un programa se sirve del recurso).
Utilizacin Nominal: Perodo de tiempo desde que un recurso es asignado hasta su desasignacin.
Deadlock: Es un estado en el que existe la posibilidad de que un proceso sea mantenido
indefinidamente en el mbito de procesamiento, por no encontrarse disponible un determinado
recurso que necesita.
76
permita soportar una mayor carga de trabajos que la que soportara sin los mdulos de
administracin.
76
5.1 Clasificacin
1. Toma como parmetro el hardware subyacente:
Gran equipo:
o
Es deseable que soporten diversas formas de acceso y que brinden servicios de alto
nivel.
Es una estructura compleja, posiblemente con varios procesadores, con una amplia
variedad y cantidad de dispositivos.
Maquina pequea:
2.
Se limita el tipo de acceso que puede hacerse al sistema, permitir slo el acceso
desde una terminal para el desarrollo de programas y la ejecucin de pequeos
programas como esperados.
3.
4.
5.
76
Se consideran las relaciones entre el tamao del hardware, los tipos de accesos y el sistema
usado:
TAMAO
MAQUINA
ACCESO
APLICACION
ON
LINE
BATC
H
PEQUE
A
GRAN
DE
SI
SI
SI
SI
PROCESAM.
TRANSACCIONES
SI
NO
SI
SI
BASES DE DATOS
SI
SI
SI
SI
COMPUTADORAS
PERSONALES
SI
NO
SI
SI
SI
NO
SI
SI
FACILIDADES
PROGRAMACION
DE
SISTEMAS DE PRODUCCION
5.2.1 Clasificacin
Adquisicin de datos.
Por medio de sensores adecuados deben leerse datos de un proceso externo y almacenarse
convenientemente para un uso posterior. Los datos deben ser adquiridos y almacenados en
tiempo real.
Sistemas de control a lazo abierto.
El sistema de computacin adquiere los datos del proceso externo, los procesa
convenientemente y los muestra a un operador humano.
Sistemas de control a lazo cerrado.
El sistema de computacin adquiere los datos del proceso externo, evala las desviaciones
respecto de los objetivos buscados y emite por s mismo (sin intervencin humana) los
comandos correctivos adecuados.
5.2.2 Caractersticas
La actividad de procesamiento es disparada por eventos aleatorios externos.
Suele usarse como dispositivo de control en una aplicacin dedicada.
Mnima intervencin
desperfectos)
humana
(modificacion
de
parametros,
violacion
de
limites,
76
76
5.2.3 Software
Hay un conjunto de caractersticas comunes al software de todos los sistemas de tiempo real:
El software posee una estructura de las conocidas como event driven o queve driven, es
decir que el sistema selecciona los programas a procesar como resultado de una seal
externa de determinada caracterstica.
El corazn es un mdulo llamado Queve manager que recibe o solicita las seales del
proceso externo, las analiza y hace ejecutar un programa que procesa esa seal.
La administracin del procesador es estructurada en forma relativamente simple.
Se les permite a los programas correr hasta su finalizacin o durante un lapso de tiempo
prefijado, dependiendo del diseo del sistema.
No se intenta el balance en la utilizacin de los canales, CPU o memoria, en funcin de los
factores de consumo de tales recursos.
Normalmente la aplicacin tiene el control del equipo, se desprende de la CPU al finalizar
su ejecucin o al cabo del tiempo prefijado por el queve manager, mdulo que cumple con
las funciones de monitor.
Los programas de aplicacin estn ms cercanos a los dispositivos por lo tanto comparten
la responsabilidad de la integridad del sistema y de su coordinacin.
La programacin y el desarrollo del sistema estn separados de la fase operacional del
mismo.
Cross-compiler y Cross-assemblers son programas que ejecutados en una mquina generan
cdigo para otra. Una generalizacin de estos programas es el Meta-assembler que puede
generar cdigos para cualquier arquitectura que le sea previamente descripta.
Toda la informacin est en lnea y todos los programas de procesamiento tambin, en
estado de ejecucin o muy prximo a ejecutarse.
El mantenimiento de los estados de control y las instrucciones privilegiadas representa una
sobrecarga para el sistema.
Un SO de tiempo real tpico realiza una rigurosa particin de la memoria en particiones:
Foreground: para tareas de mayor prioridad; son numerosas de modo de poder soportar el
concepto de programas procesadores organizados en un gran nmero de tareas
Bakground: para tareas de menor prioridad; es utilizado frecuentemente para soportar
compiladores, editores y utilitarios orientados al desarrollo de programas.
Una tarea es por definicin una unidad de programa que puede ser cargada en una particin y
ejecutada en la misma.
Las particiones se definen durante la generacin del SO.
76
Independencia de perifricos
Encapsulamiento de la mquina por medio de su SO y el paquete de software.
5.4.2 IBSYS-IBJOB
Admite lenguajes Fortran, Cobol y Map(Macro Assembly Program).
Introdujo funciones del monitor residente para soporte de E/S.
Tablas de asignaciones de perifricos manipuladas por el operador mediante tarjetas de
control del IBSYS (paso importante hacia la independencia de dispositivos)
Asignacin esttica de memoria y perifricos y al mismo tiempo.
Compilacin relativa
Programas linkeditados
1) IBSYS es residente y contiene:
Funciones residentes para soporte de E/S (o sea que maneja las E/S)
Posibilidad de almacenamiento
2) IBJOB contena:
76
3. cuando ese trabajo tiene que esperar, la CPU cambia a otro, etc.
Mientras haya otro trabajo por ejecutar, la CPU nunca estar inactiva.
Para que pueda haber varios programas listos para ejecutarse, el sistema debe conservarlos todos
en la memoria al mismo tiempo. Cuando se consigue esto, se necesita alguna forma de
administracin de memoria, el sistema debe elegir uno de ellos, esta decisin se denomina
planificacin de la CPU.
Ventajas:
Aumenta la utilizacin de la CPU organizando los trabajos para que sta siempre tenga algo
que ejecutar.
La aparicin y/o mejoramiento de los conceptos de interrupcin
Instrucciones privilegiadas y mecanismos de proteccin
Existencia de una cola interna de trabajos.
76
Poseen asignacin de archivos y perifricos a los programas, vlidos durante toda la vida
activa de los programas (desde el comienzo a la finalizacin de la ejecucin - asignacin
esttica)
Desventajas:
En realidad la preparticin tiende a producir una considerable subutilizacin de la memoria.
Aumento en los costos de programacin y la disminucin de la productividad de los
programadores, ya que el desarrollo de una aplicacin debe encararse teniendo en cuenta
el tamao de la particin en la que se ejecutar.
Una distorsin en la estructura del programa ya que la distribucin de funciones en el
programa no conforma un flujo armnico acorde a la lgica de la aplicacin, sino en funcin
del tamao de la particin
Un incremento en la dificultad de programacin que redunda en una mayor subutilizacin
del
Ventajas:
Posibilidad de redefinir las particiones desde la consola del operador
Ensamblado y compilacin de programas reasignables.
Asignacin simblica de dispositivos a travs de sentencias de control ya sea por clase o
por tipo.
Facilidad de organizar los programas en una estructura de tareas (tasks) permitiendo que
un programa ejecutado en una determinada particin solicite que comience la ejecucin
asincrnica de programas en la misma particin y provea los mecanismos de sincronizacin
entre ellos.
Memoria virtual, asociada a los mecanismos de paginacin y segmentacin que permiti la
construccin de programas con tamaos mayores a la capacidad de la memoria principal.
Desarrollo de mecanismos de soportes avanzados de administracin con facilidades para
centralizar el spooling.
Un programador o un usuario, utiliza una terminal On-line para desarrollar sentencia de
control necesarias para la ejecucin de su programa, finalizado esto, a travs de un
comando (submit) enva estas a la cola de trabajos en espera de ejecucin.
76
varias
acciones
breves,
con
resultados
Usa la planificacin de la CPU y la multiprogramacin para dar a cada usuario, que tiene su
programa en memoria, una pequea porcin de la computadora.
Como el sistema pasa rpidamente de un usuario al siguiente cada uno tiene la sensacin
de que cuenta con su propia computadora.
Requiere: Administracin de memoria, proteccin y administracin de CPU, administracin
de disco.
El tiempo de respuesta debe ser breve, a lo sumo de unos cuantos segundos.
Se crearon para ofrecer un uso interactivo de los sistemas informticos a un costo
razonable.
Utiliza la planificacin de la CPU y la multiprogramacin para proporcionar a cada usuario
una pequea porcin de un computador de tiempo compartido.
Para que los usuarios tengan un acceso cmodo a los datos y al cdigo, deben disponer de
un sistema de archivos en lnea.
Un sistema informtico interactivo ofrece una comunicacin en lnea entre el usuario y el sistema .
1. El SO termina de ejecutar un mandato.
2. Busca el siguiente enunciado de control en el teclado del usuario.
76
Posibilidades:
Un lenguaje de comandos extendido y adaptado, creando diferencias sintcticas para los
usuarios especializados.
La facilidad de llamar para la ejecucin a cualquier programa desde la terminal
El pasaje de argumentos de un comando a otro
La definicin de reglas que permitan a un conjunto de usuarios compartir archivos,
controlando el acceso a travs de una identificacin de grupo
La definicin de operaciones como no atendidas para cualquier programa.
76
5.9 Multipropsito
Podemos definir un sistema multipropsito como aquel que posee el atributo de que
cualquier mtodo de acceso y uso (subsistemas) son soportados de la misma forma y
con igual eficiencia que en el sistema en que fueron desarrollados.
Generalmente estos sistemas poseen caractersticas comunes como:
- Administracin dinmica de recursos
- Soporte de memoria virtual
- Permiten distintas formas de acceso.
2. Acceso local en modo Batch, este acceso elimin la interface humana. La demanda de
servicios de realiza enviando en control stream a procesar, los trabajos se ejecutan en
secuencia de entrada aunque es posible que el SO resecuencie el comienzo de los trabajos.
3. Acceso remoto en modo Batch, este acceso extiende el SO al usuario y elimina al operador,
la extensin supera las dimensiones fsicas del centro de cmputos. Cuando se somete una
demanda, un elemento del SO se torna activo y la coloca en una cola de espera.
76
recibir una validacin lnea por lnea de las mismas. Cuando un trabajo est listo, enva su
control stream al mbito de procesamiento, a partir de ese momento pierde todo control
sobre el trabajo y solo retorna al contacto con el mismo cuando recibe los resultados.
76
6 Procesos
Un proceso es un programa en ejecucin, y en general necesitar ciertos recursos para
cumplir su tarea. Estos recursos se asignan al proceso en el momento de crearlo o mientras
se est ejecutando.
Un proceso es la unidad de trabajo dentro de un sistema, el cual consiste en un conjunto de
procesos: los procesos del sistema operativo ejecutan cdigo de sistema y los procesos de
los usuarios ejecutan cdigo de los usuarios.
Un proceso puede considerarse como un trabajo en Batch o un programa en Tiempo
compartido.
Es posible proporcionar llamadas al sistema que permitan a los procesos crear subprocesos
que se ejecutan concurrentemente.
Un proceso necesita determinados recursos para cumplir con su tarea que se proporcionan
al crear el proceso, o se le asignan mientras se ejecuta.
En el momento de su creacin, pueden transferirse algunos datos iniciales (entrada).
Un programa no es un proceso, es una entidad pasiva; mientras que un proceso
es una entidad activa con un contador de programa que especifica la siguiente
instruccin que debe ejecutarse..
La ejecucin de un proceso debe efectuarse secuencialmente.
Cada sistema consiste en un conjunto de procesos, algunos de los cuales son procesos del
SO y los dems son procesos de usuario. Todos estos procesos pueden ejecutarse en forma
concurrente, multiplexando la CPU entre ellos.
El sistema operativo es responsable de:
La creacin y eliminacin de procesos.
La planificacin de procesos.
Suministro de los mecanismos para la sincronizacin, comunicacin y manejo de bloqueos
mutuos entre procesos.
76
76
Cuando un proceso crea un subproceso, ste puede obtener sus recursos directamente del
sistema operativo o estar restringido a un subconjunto de los recursos del proceso padre, el
cual debe dividir sus recursos entre sus hijos, o bien compartir algunos (como archivos o
memoria) entre varios de sus hijos.
Se pueden pasar datos iniciales (entrada) del proceso padre al hijo.
Cuando un proceso crea otro nuevo, hay dos alternativas habituales de la posible forma de
ejecucin:
El padre contina su ejecucin concurrentemente con sus hijos.
El padre espera a que todos sus hijos hayan terminado.
Terminacin de procesos
Un proceso termina cuando concluye la ejecucin de su ltimo enunciado y solicita al
sistema operativo que elimine el proceso.
En ese momento, el proceso puede devolver datos (salida) a su proceso padre.
Un proceso puede provocar la terminacin de otro a travs de la llamada apropiada al
sistema.
Un padre puede terminar la ejecucin de alguno de sus hijos por varias razones:
El hijo ha excedido el uso de alguno de los recursos que se le han asignado: el padre
necesita un mecanismo para inspeccionar el estado de sus hijos.
Terminacin en cascada: en sistemas que no permiten que un hijo exista si su padre ha terminado.
Es iniciada por el SO.
76
6.2.3 Hilos
Un hilo es una unidad bsica de utilizacin de la CPU y tiene poco estado no
compartido.
El entorno en el cual se ejecuta un hilo se llama tarea.
Un proceso tradicional (pesado) equivale a una tarea con un hilo.
El costo de conmutacin de la CPU entre hilos del mismo grupo y el de creacin de hilos se
reducen en comparacin con el cambio de contexto entre procesos pesados.
Pueden ser:
Sincrnicos: un hilo del mismo grupo slo puede ejecutarse si el hilo en ejecucin libera el
control.
Asncronos: hay que emplear un mecanismo de bloqueo explcito, como en los sistemas
donde varios procesos comparten datos.
1.
Los
2. Se colocan en una cola de trabajos formada por todos los procesos que residen en el
almacenamiento secundario esperando la asignacin de la memoria principal.
3. Un proceso nuevo se coloca inicialmente en la cola de procesos listos.
4. Una vez que se asigna la CPU al proceso y se ejecuta, puede ocurrir uno de estos sucesos:
o
El proceso puede emitir una solicitud de E/S y colocarse en una cola de dispositivo.
76
El proceso podra ser extrado de la CPU por la fuerza, como resultado de una
interrupcin, y colocarse de nuevo en la cola de procesos listos.
Caractersticas:
Los procesos que residen en la memoria principal y que estn listos y esperando su
ejecucin se mantienen en una lista llamada cola de procesos listos.
Un encabezado de la cola de procesos listos contendr apuntadores al primer y ltimo PCB
de la lista. Cada PCB tiene un campo apuntador que indica el siguiente proceso en la cola
de procesos listos.
La lista de procesos que espera a un dispositivo de E/S determinado se denomina cola del
dispositivo, y cada dispositivo tiene su propia cola.
Representacin de diagramas de colas:
Cada rectngulo representa una cola y hay dos tipos de colas: la cola de procesos listos y
un conjunto de colas de dispositivo.
Los crculos representan los recursos que dan servicio a las colas.
Las flechas indican el flujo de los procesos en el sistema.
6.3.2 Planificadores
En el transcurso de su vida, un
proceso
transita
entre
las
distintas colas de planificacin, y
el sistema operativo de alguna
manera
debe
seleccionar
procesos de estas colas. Esta
actividad
de
seleccin
es
realizada por el planificador
correspondiente.
76
En sistemas de tiempo compartido: es posible que no exista el OAN o que su funcin sea minima.
En un sistema por lotes: con frecuencia se presentan ms procesos que los que se pueden
ejecutar de inmediato; estos procesos se envan a un Spooler en un dispositivo de
almacenamiento masivo donde se conservan para su posterior ejecucin. El OAN selecciona
procesos de este depsito y los carga en memoria para su ejecucin.
Un proceso limitado por E/S es aquel que emplea ms tiempo en realizar E/S que efectuar clculos.
Un proceso limitado por la CPU es el que genera solicitudes de E/S con poca frecuencia, invirtiendo
la mayor parte del tiempo en efectuar clculo que los procesos limitados por E/S.
76
76
76
1. Cuando un proceso cambia del estado de ejecucin a estado de espera (por ejemplo,
solicitud de E/S, peticin de esperar la terminacin de uno de los procesos hijo).
2. Cuando un proceso cambia del estado de ejecucin al estado listo (por ejemplo, cuando
ocurre una interrupcin).
3. Cuando un proceso cambia del estado de espera al estado listo (por ejemplo, al
completarse la E/S).
4. Cuando termina un proceso.
Para los casos 1 y 4 no hay opcin en trminos de planificacin: se debe seleccionar un nuevo
proceso para su ejecucin (si existe en la cola de procesos listos). Sin embargo, esto no se aplica a
los casos 2 y 3.
Cuando la planificacin tiene lugar nicamente en las situaciones 1 y 4, decimos que el
esquema de planificacin es no apropiativo; de lo contrario decimos que es apropiativo.
En la planificacin no apropiativa, una vez que la CPU se ha asignado a un proceso,
ste la conserva hasta que la libera, ya sea por terminar o por cambiar al estado de
espera.
76
Utilizacin de la CPU (CPU utilization). Queremos que la CPU se mantenga tan ocupada
como sea posible. En un sistema real debe fluctuar entre el 40% (para un sistema con poca
carga) y un 90 % (para un sistema con gran carga de trabajo).
Productividad (Throughput). Una medida del trabajo es el nmero de procesos que se
completan por unidad de tiempo, llamada productividad.
Tiempo de retorno (Turnaround time). Cunto tiempo tarda en ejecutarse un proceso. El
intervalo entre el momento de demandarlos hasta el momento en que termina es el tiempo
de retorno, es decir, la suma de los perodos transcurridos esperando entrar en la memoria,
esperando en la cola de procesos listos, ejecutndose en la CPU y efectuando E/S. Se
encuentra limitad por la velocidad del dispositivo de salida.
Tiempo de espera (Waiting time). El algoritmo afecta nicamente a la cantidad de tiempo
que el proceso espera en la cola de procesos listos, de modo que en vez de tener en cuenta
el tiempo de retorno, podemos considerar slo el tiempo de espera para cada proceso.
Tiempo de respuesta (Response time). Con frecuencia un proceso puede producir alguna
salida en los primeros instantes y continuar calculando nuevos resultados mientras se
presentan al usuario los resultados anteriores. El tiempo de respuesta es la cantidad de
tiempo para comenzar a responder.
76
Es ms habitual que = , por lo que la historia reciente y antigua se ponderan de igual manera.
Puesto que tanto a como (1 - ) son menores o iguales a 1, cada trmino sucesivo tiene menor
peso que su predecesor.
76
Bloqueo indefinido o inanicin. Un proceso que est listo para ejecutarse pero no obtiene la
CPU puede considerarse como bloqueado, en espera de la CPU. Un algoritmo para la planificacin
por prioridades puede dejar a un proceso de baja prioridad esperando indefinidamente a la CPU.
Por lo general suceder una de estas dos cosas: o el programa finalmente se ejecuta o el sistema
de computacin falla y pierde todos los procesos de baja prioridad.
Una solucin es el envejecimiento (aging), tcnica por la cual aumenta gradualmente la prioridad
de los procesos que esperan durante mucho tiempo en el sistema.
76
76
El mtodo utilizado para determinar cundo promover un proceso a una cola de mayor
prioridad
El mtodo utilizado para determinar cundo degradar un proceso a una cola de menor
prioridad
El mtodo utilizado para determinar a cul col entrar un proceso cuando necesite servicio
76
Por lo tanto se utiliza como poltica del Dispatcher la regla de residencia enunciada como
el ms corto primero, que consiste clasificar los programas segn su consumo de E/S y
otorgarle la CPU al programa que correr el menor tiempo antes de solicitar una operacin
de E/S. De esta manera se le da prioridad a los programas cuyos recursos crticos son los
canales, maximizando el ratio de dispatching, lo que deriva en una maximizacin del
throughput.
Si el programa utiliza totalmente es tiempo mximo (quantum) sin solicitar una operacin
de E/S, es pasado a la siguiente subcola.
Esta regla asume el concepto de la regla heurstica, segn la cual: un programa que ha
demandado gran cantidad de recursos de canal, lo seguir haciendo en el futuro.
La relacin entre dispatching y asignacin de canales, afecta en forma directa las tcticas de
dispatching. Consideremos dos casos:
Supongamos una mquina de muchos canales en que se debern correr en forma concurrente
la mayor cantidad posible de programas, entonces se debern asignar todos los archivos de un
programa a un nico canal; sto imposibilita que un programa superponga sus operaciones de
E/S, pero elimina el uso compartido de canales entre programas y por lo tanto elimina la
formacin de colas de espera y esto permitir predecir fcilmente la performance de un
determinado programa.
Veamos ahora el caso contrario. Supongamos una mquina con un algoritmo de asignacin de
canales que tienda a distribuir la asignacin de archivos de un determinado programa entre los
distintos canales, el efecto del algoritmo del dispatching se distorsionar.; esta distribucin
presentar una fuerte tendencia a la comparticin de canales entre programas.
Supongamos que en un momento dado el sistema detecta que la mezcla proporciona una baja
utilizacin de la CPU, la solucin sera agregar a la mezcla un programa cuyo recurso crtico sea la
CPU.
El resultado de introducir este programa en la mezcla puede ser contrario al esperado, el ratio de
la CPU puede bajar an mas pues el tiempo ocioso de CPU se deba a que el Dispatcher no
encontraba trabajos listos para correr debido al tiempo que transcurre entre la demanda de una
E/S y su efectiva cumplimentacin; entonces el programa agregado a la mezcla aumenta
ligeramente la carga de E/S.
Para dicho programa su tiempo de espera para las E/S es el propio ms el de todos los programas
anteriores, por lo tanto se incrementa el tiempo de espera para los otros programas y el tiempo
que transcurre para que un programa este listo aumenta y por lo tanto baja el ratio de utilizacin
de la CPU en lugar de aumentar.
La utilizacin de subcolas tiende a facilitar el logro del equilibrio entre dispatching y
asignacin, asegurando que el programa que solicita una operacin de E/S ms rpido
(pronto) tenga el control de la CPU siendo la regla de residencia en una subcola para
este caso: el tiempo mximo que puede correr un programa antes de solicitar una
operacin de E/S.
6.5.6.4 Prioridades
Un aumento de la prioridad de un PRG representa una menor utilizacin de los canales. Por
ejemplo: un PRG de baja prioridad recibe la CPU por un lapso de tiempo, otro PRG de mayor
prioridad y de la misma subcola, tendr el uso de la CPU por un lapso mas prolongado para correr
sin ser penalizado (pasado a la subcola siguiente). Por no requerir una operacin de E/S en el
quantum, es pasado a la subcola siguiente, por lo tanto se disminuye la utilizacin de los canales.
76
Si los procesadores son diferentes, las opciones son relativamente limitadas. Cada
procesador tiene su propia cola y su propio algoritmo de planificacin. Los procesos
estn tipificados intrnsecamente por su estructura, y deben ejecutarse en un
procesador determinado; los procesos se restringen a ciertos procesadores y cada
procesador puede planificarse a s mismo.
Debemos asegurar que dos procesadores no elijan el mismo proceso, y que no se pierdan
procesos de la cola. La otra estrategia evita este problema estableciendo un procesador como
planificador para los dems, creando as una estructura amo-esclavo, esto es, el
multiprocesamiento asimtrico.
Modelos de colas. Describe al sistema como una red de servidores, cada uno de los cuales
tiene una cola de procesos en espera (la CPU y los dispositivos tienen sus propias colas). Si
se conocen las tasas de llegada y de servicio, se puede calcular la utilizacin, la longitud
promedio de la cola, el tiempo promedio de espera, etc. A esta rea de estudio se la llama
anlisis de redes de colas. Puede ser bastante til, pero como son nicamente una
aproximacin de un sistema real puede cuestionarse la exactitud de los resultados.
76
6.8.1 Antecedentes
Los procesos productor-consumidor son habituales en los SO.
Un proceso productor genera informacin que ser utilizada por el proceso consumidor.
Para que los procesos productores y consumidores puedan ejecutarse concurrentemente,
debemos crear un depsito (pool) de buffers que pueda llenar el productor y vaciar el
consumidor.
Se deben sincronizar el productor y el consumidor, para que este ltimo no trate de
consumir algo que an no se ha producido.
El caso del productor-consumidor con buffer ilimitado no establece lmites en el nmero
de buffers: el consumidor puede tener que esperar nuevos elementos, pero el productor
puede producirlos porque siempre hay buffers vacos.
El caso del productor-consumidor con buffer limitado supone que hay un nmero fijo de
buffers: el consumidor debe esperar si todos los buffers estn vacos y el productor deber
esperar si estn todos llenos.
2.
Progreso. Si ningn proceso se est ejecutando en su seccin crtica y hay otros procesos que
desean entrar en las suyas, entonces slo aquellos procesos que no se estn ejecutando en su
seccin restante pueden participar en la decisin de cul ser el siguiente en entrar en la
seccin crtica, y esta seleccin no puede postergarse indefinidamente.
76
3.
Espera limitada. Debe haber un lmite en el nmero de veces que se permite que los dems
procesos entren en su seccin crtica despus de que un proceso haya efectuado una solicitud
para entrar en la suya y antes de que se conceda esa solicitud.
Las soluciones no se basan en ninguna suposicin relacionada con las instrucciones del hardware
ni en el nmero de procesadores que permite el hardware.
6.8.4 Semforos
Un semforo es una variable entera a la que, salvo por la asignacin de valores iniciales, slo
puede accederse mediante dos operaciones atmicas comunes: espera (wait) y seal (signal).
Cuando un proceso modifica el valor del semforo, ningn otro proceso puede modificar
simultneamente ese mismo valor. Adems, en el caso de la espera (S), la evaluacin del valor
entero de S (S =< 0) y su posible modificacin (S := S - 1), tambin deben ejecutarse sin
interrupcin.
6.8.4.1 Utilizacin
Los semforos pueden utilizarse al tratar el problema de la seccin crtica para n procesos; estos n
procesos comparten un semforo comn, mutex (que representa a la exclusin mutua), con un
valor inicial 1.
6.8.4.2 Implementacin
La principal desventaja de la definicin de semforos es que todas requieren una espera activa.
Mientras un proceso se encuentra en su seccin crtica, cualquier otro proceso que intente entrar
en esta seccin deber ejecutar un ciclo continuo en la seccin de entrada. Esto, obviamente, es
un problema en un sistema multiprogramado real, donde varios procesos comparten una sola CPU.
La espera activa desperdicia ciclos de CPU que otros procesos podran usar productivamente. A
este tipo de semforo se le llama cerradura giratoria. La ventaja que tienen es que no es necesario
efectuar un cambio de contexto.
El aspecto crucial de los semforos es que ejecutan atmicamente. Debemos garantizar que dos
procesos no puedan ejecutar operaciones espera y seal al mismo tiempo en el mismo semforo.
76
Bloqueo mutuo: cuando cada uno de los procesos del conjunto est esperando un suceso
que nicamente puede ser provocado por otro proceso del conjunto.
Bloqueo indefinido o inanicin, en que los procesos pueden esperar indefinidamente dentro
del semforo. El bloqueo indefinido se puede presentar si aadimos y eliminamos procesos
de la lista asociada con un semforo en orden LIFO.
6.8.5.1 Nominacin
Los procesos que desean comunicarse deben tener una manera de referirse unos a otros. Pueden
utilizar la comunicacin directa o la comunicacin indirecta, que analizaremos a continuacin.
76
Comunicacin directa
Cada proceso que desea enviar o recibir un mensaje debe nombrar explcitamente al receptor o
emisor.
En este esquema, las operaciones primitivas enviar y recibir se definen de la manera sgte:
enviar (P, mensaje). Enviar un mensaje al proceso P.
recibir (Q, mensaje). Recibir un mensaje del proceso Q.
Un enlace de comunicacin en este esquema posee las siguientes propiedades:
Se establece un enlace automticamente entre cada par de procesos que quieren
comunicarse.
Los procesos slo necesitan conocer la identidad del otro para comunicarse.
Un enlace est asociado exactamente a dos procesos.
Entre cada par de procesos en comunicacin hay exactamente un enlace.
El enlace es bidireccional.
Una variante de este esquema emplea la asimetra en el direccionamiento:
enviar (P, mensaje). Enviar un mensaje al proceso P.
recibir (id, mensaje). Recibir un mensaje de cualquier proceso. A id se le asigna elnombre
del proceso con el cual se ha establecido la comunicacin.
Comunicacin indirecta
Los mensajes se envan y reciben usando buzones (mailbox). Un buzn puede considerarse de
manera abstracta como un objeto en el que los procesos pueden colocar mensajes y del cual se
pueden extraer los mensajes. Cada buzn tiene una identificacin nica. Dos procesos nicamente
pueden comunicarse si comparten un buzn.
enviar (A, mensaje). Enviar un mensaje al buzn A.
recibir (A, mensaje). Recibir un mensaje del buzn A.
En este esquema, un enlace de comunicacin tiene las propiedades siguientes:
Se establece un enlace entre un par de procesos slo si comparten un buzn.
Un enlace puede asociarse a ms de dos procesos.
Entre cada par de procesos en comunicacin puede haber varios enlaces diferentes,
correspondiendo cada uno a un buzn.
Un enlace puede ser unidireccional o bidireccional.
Si el buzn pertenece a un proceso entonces hacemos una distincin entre el dueo y el usuario
del buzn. Cuando termina un proceso dueo de un buzn, ste desaparece.
Hay varias maneras de designar al dueo y a los usuarios de un buzn en concreto. Una
posibilidad es permitir que un proceso declare variables de tipo buzn. El proceso que declara un
buzn es su dueo. Cualquier otro proceso que conozca el nombre de este buzn podr utilizarlo.
Por otra parte, un buzn que pertenece al sistema operativo tiene existencia propia, es
independiente y no est unido a un proceso en particular.
76
76
Mensajes perdidos
Existen tres mtodos para tratar esta situacin:
1. El SO es responsable de detectar el suceso y reenviar el mensaje.
2. El proceso emisor es responsable de detectar este suceso y retransmitir el mensaje, si as
lo desea.
3. El SO es responsable de detectar el suceso y notificar al proceso emisor que ha perdido el
mensaje.
Mensajes alterados
El mensaje puede llegar a su destino, pero alterarse por el camino (por ejemplo, por ruidos en el
canal de comunicaciones). Esta situacin es similar a la de un mensaje perdido. El sistema
operativo retransmitir el mensaje original o notificar este suceso al proceso. Para detectar este
tipo de error generalmente se utiliza la suma de verificacin (paridad o CRC).
76
7. Administracin de memoria
La memoria es un gran arreglo de palabras o bytes, cada uno con su propia direccin.
La interaccin se logra por medio de una secuencia de lecturas o escrituras a direcciones
especificas de memoria.
La UCP busca informacin de la memoria o la almacena en ella.
Es parte capital del sistema. Los algoritmos de administracin de memoria tienen un
requisito bsico: todo el proceso debe encontrarse en memoria fsica antes de que pueda
ejecutarse.
Un ciclo tpico para la ejecucin de una instruccin:
Primero buscar una instruccin de la memoria.
Luego la instruccin se descodifica y puede provocar que se busquen operandos de la
memoria
Despus de aplicar la instruccin a los operandos, los resultados pueden guardarse en
memoria.
Observe que la unidad de memoria solo ve un flujo de direcciones de memoria;
7.1.1 Enlace de direcciones
Para ejecutar un proceso, ste debe cargarse en memoria.
El proceso reside en disco como archivo binario ejecutable.
El conjunto de procesos en disco que esperan entrar en la memoria para ejecutarse
integran la cola de entrada.
El procedimiento normal consiste en seleccionar uno de los procesos de la cola de entrada
y cargarlo en memoria.
Provoca la relocalizacin de direcciones o el enlace de referencias externas a puntos de
entrada, segn sea necesario.
Cuando el programa termina y su espacio en memoria se declara disponible.
Un programa de usuario pasar por varias antes de ejecutarse:
1. Un compilador normalmente enlazar estas direcciones simblicas con direcciones
relocalizables.
2. El editor de enlaces o el cargador enlazara
direcciones relocalizables con direcciones absolutas
estas
76
El compilador deber generar cdigo relocalizable. Se posterga el enlace final hasta el momento
de la carga.
Si cambia la direccin de inicio, slo tenemos que cargar de nuevo el cdigo del usuario para
incorporar el valor modificado.
Ejecucin:
Si durante la ejecucin el proceso puede moverse de un segmento de memoria a otro. Se debe
tener hardware especial para que este esquema funcione.
Cuando una rutina tiene que llamar a otra, la rutina llamadora primero comprueba si se
ha cargado la otra.
7.1.4 Superposiciones
Para que un proceso pueda ser mayor que la cantidad de memoria que se le
asigna.
La idea es conservar en memoria slo aquellas instrucciones y datos que se requieren en
un momento determinado.
Cuando se necesitan otras instrucciones, se cargan en el espacio que antes ocupaban las
que ya no se requieren.
Los cdigos de las superposiciones A y B se conservan en disco como imgenes de
memoria absoluta, y el manejador de la superposicin los lee segn se requiera.
Para construir las superposiciones se necesitan algoritmos especiales de relocalizacin y
enlace.
76
7.2 Intercambios
Un proceso puede intercambiarse temporalmente, saliendo de la memoria a un
almacenamiento secundario, y regresando luego a la memoria para continuar su ejecucin.
En algoritmos basados en prioridades: Si llega un proceso de mayor prioridad y desea
ejecutarse, el administrador de memoria puede intercambiarlo con un proceso de menor
prioridad para as cargar y ejecutar el de mayor prioridad. Cuando ste termina puede
devolver el proceso de menor prioridad y continuar su ejecucin.
Normalmente un proceso que sale de un intercambio regresar al mismo espacio de
memoria que antes ocupaba.
Mtodo de enlace de direcciones.
Si el enlace se emplea durante el ensamble o la carga, el proceso no puede moverse a
otras localidades.
Si el enlace se emplea durante la ejecucin, entonces es posible intercambiar un proceso
colocndolo en un espacio de memoria distinto.
El tiempo de cambio de contexto es bastante alto.
El tiempo de transferencia total es directamente proporcional a la cantidad de memoria que
se intercambia.
Seria importante saber con precisin cunta memoria est usando un proceso de usuario y
podramos intercambiar slo lo que se utiliza, reduciendo el tiempo de intercambio.
El sistema mantiene una cola de procesos listos que consiste en todos los procesos
cuya imagen de memoria se encuentra en el almacenamiento auxiliar o en memoria y
estn listos para ejecutarse.
Cuando el planificador de la UCP decide ejecutar un proceso:
1. El planificador de la UCP llama al despachador.
2. El Dispatcher comprueba si el siguiente proceso de la cola esta en memoria.
3. Si no esta, y no se cuenta con una regin de memoria libre, el despachador intercambia un
proceso en memoria con el proceso deseado.
Existen otras restricciones para los intercambios.
76
76
Cargar el proceso de usuario en la memoria alta, descendiendo hacia el valor del registro
base. Todo el espacio no utilizado se encuentra en la parte media, por lo que, el proceso de
usuario o el SO pueden extenderse a la memoria no utilizada.
Postergar el enlace de direcciones hasta la ejecucin lo que requiere un apoyo de hardware
ligeramente distinto. Al registro base ahora se le llama registro de relocalizacin. El valor
del registro base se suma a cada direccin generada por un proceso de usuario en el
momento de enviarla a memoria.
Observaciones:
Observe que un programa de usuario nunca ve las direcciones fsicas reales. El programa
de usuario trata con direcciones lgicas.
El hardware de correspondencia de memoria convierte las direcciones lgicas en
direcciones fsicas.
Un cambio en la localidad de inicio slo requiere un cambio en el registro base y la
transferencia de toda la memoria del usuario a las localidades correctas respecto al nuevo
valor base.
Puede requerir que se copie una gran cantidad de memoria, pero permite cambiar la base
en cualquier momento.
Observe tambin que ahora tenemos dos tipos distintos de direcciones:
76
76
7.4.3 Compactacin
Una solucin para el problema de la fragmentacin externa es la compactacin, se utiliza
para desfragmentar la memoria y obtener el mximo lugar vaco.
El objetivo consiste en desplazar el contenido de la memoria para colocar junta toda la
memoria libre en un solo bloque de gran tamao.
La compactacin no siempre es posible. Al mover procesos, para que estos procesos
puedan ejecutarse en sus nuevas posiciones, hay que relocalizar todas las direcciones
internas.
Si la relocalizacin es esttica y se efecta durante el ensamblado o la carga, la
compactacin no puede realizarse.
La compactacin slo es posible si la relocalizacin es dinmica y se efecta en el
momento de la ejecucin. Slo requiere mover el programa y los datos, y luego cambiar el
registro base para reflejar la nueva direccin base.
El algoritmo de compactacin ms sencillo consiste en mover todos los procesos
hacia un extremo de la memoria; todos los huecos se mueven en la direccin
contraria produciendo un gran hueco de memoria disponible. Es Bastante
costoso.
Si la cola contuviera slo un proceso podramos satisfacer esa solicitud en particular
moviendo el proceso a otro lugar. Esta solucin no crea un solo hueco de gran tamao, si
crea uno de tamao suficiente para atender la solicitud inmediata.
Se puede combinar el intercambio con la compactacin para liberar memoria y luego
compactar, obviamente si la relocalizacin es esttica cuando el proceso se reintegre a
memoria deber volver a su particin original. Cundo el proceso se descarga, se libera su
memoria y quiz se reutilice para algn otro proceso. Cuando el proceso tiene que
reincorporarse por intercambio, pueden aparecer varios problemas.
o
Una estrategia para la compactacin consiste en descargar los procesos que hay
que mover, y reincorporarlos a localidades de memoria diferentes.
El sistema tiene dos pares de registros base y limite. La memoria se divide por la
mitad usando el bit de direccin de orden superior.
Otra manera de lograr esto es separar un programa en dos partes: cdigo y datos:
76
El par de registros base y lmite para las instrucciones es, automticamente, de slo
lectura.
7.6 Paginacin
Como la memoria asignada a un proceso concreto debe ser contigua, no puede utilizarse esta
memoria dispersa. Este problema tiene dos soluciones generales: la compactacin y la
paginacin.
La paginacin permite que la memoria de un proceso no sea contigua, y que a un
proceso se le asigne memoria fsica donde quiera que sta est disponible.
Evita el gran problema de acomodar trozos de memoria de tamao variable en el
almacenamiento auxiliar.
Los problemas de fragmentacin son tambin frecuentes con el almacenamiento auxiliar,
excepto que el acceso es mucho ms lento, por lo que la compactacin es imposible.
Para paginar se necesitan 4 tablas: 3 en software y 1 en hardware.
o
76
Nmero de pgina: ndice en una tabla de pginas, que contiene la direccin base para cada
pgina de la memoria fsica.
Direccin base: se combina con el desplazamiento en la pgina para definir la direccin de
memoria fsica que se enva a la unidad de memoria.
Observaciones:
Una pgina slo existe cuando el programa est cargado en memoria, o sea cuando el
programa pasa a ser proceso.
En multiprogramacin bsica, la tabla de pginas contiene a todas las pginas.
En multiprogramacin avanzada slo las que estn en memoria principal; ya que hay
memoria virtual y sta tiene su propia tabla de pginas (ubicada en memoria principal), la
cual indica dnde se encuentran las pginas guardadas en el disco.
76
76
7.6.5 Proteccin
La proteccin de memoria en un entorno paginado se logra por medio de bits de proteccin
asociados a cada marco.
Estos bits se conservan en la tabla de pginas.
Un bit puede definir si una pgina es de slo lectura o de lectura y escritura.
Un intento de escribir en una pgina de slo lectura ocasiona una trampa de hardware para
el SO.
Esta estrategia de proteccin puede ampliarse fcilmente para ofrecer un nivel de
proteccin ms fino.
En estos casos sera un derroche crear una tabla de pginas con registros para cada pgina
del intervalo de direcciones. La mayor parte de esta tabla no se utilizara, pero ocupara un
valioso espacio en memoria.
7.7 Segmentacin
Un aspecto importante de la administracin de memoria (que desapareci con la paginacin) es la
separacin de la perspectiva del usuario y la memoria fsica real.
76
7.7.2 Hardware:
El usuario se puede referir a los objetos de un programa utilizando direcciones
bidimensionales.
La memoria fsica real sigue siendo, por supuesto, una secuencia unidimensional de
palabras.
Debemos definir una forma de implantar la correspondencia entre direcciones
bidimensionales definidas por el usuario y direcciones fsicas unidimensionales. Esta
correspondencia se logra por medio de una tabla de segmentos.
Una direccin lgica consiste en dos partes (s,d):
o
Un nmero de segmentos, s
76
7.7.5 Fragmentacin
El OAN debe encontrar y asignar memoria para todos los segmentos de un programa de
usuario.
La asignacin de memoria es un problema de asignacin dinmica del almacenamiento,
que generalmente se resuelve con el algoritmo del primer ajuste o del mejor ajuste. La
segmentacin puede entonces ocasionar fragmentacin externa.
Como la segmentacin es, por naturaleza, un algoritmo de relocalizacin dinmica, cuando
lo deseemos podemos compactar la memoria.
Si el planificador de la CPU debe esperar por culpa de un proceso, debido a algn problema
de asignacin de memoria, puede omitirlo o no al recorrer la cola de la CPU en busca de un
proceso ms pequeo, de menor prioridad, para ejecutarlo.
En un extremo, podemos definir que cada proceso sea un segmento. Se reduce al esquema
de las particiones de tamao variable.
76
En el otro extremo, cada palabra puede colocarse en su propio segmento, donde se elimina
por completo la fragmentacin externa; Pero cada palabra necesitara un registro base
para su relocalizacin, duplicando la utilizacin de memoria.
Generalmente, si el tamao promedio de los segmentos es pequeo, la fragmentacin
externa tambin ser pequea.
7.7.6 Observaciones:
Un segmento es una unidad lgica de informacin que puede incluir tanto cdigo como
datos, en cambio una pgina es algo fsico.
En segmentacin se especifica una direccin mediante un nombre (numero) de segmento y
desplazamiento, en cambio en paginacin el usuario especifica una sola direccin que el
hardware separa para producir un numero de pgina y desplazamiento, todo invisible al
usuario (programador)
Tanto la segmentacin como la paginacin llevan a la comparticin de cdigo.
La segmentacin posibilita el direccionamiento relativo dentro del espacio lgico.
76
8 - Memoria Virtual
La memoria virtual es una tcnica que permite la ejecucin de procesos que
pueden no estar completamente en memoria.
La principal ventaja es que los programas pueden ser mayores que la memoria
fsica.
Abstrae la memoria principal para formar un arreglo uniforme muy grande de
almacenamiento, separando la memoria lgica que contempla el usuario de la
memoria fsica.
8.1 Motivacin
Requisito bsico: todo el espacio de direcciones lgicas de un proceso debe encontrarse
en memoria fsica antes de que el proceso se pueda ejecutar.
Esta restriccin limita el tamao de un programa al tamao de la memoria fsica.
La capacidad de ejecutar un programa que se encuentra parcialmente en memoria tendra
varias ventajas:
o
76
76
Si alguno de los bloques (fuente o destino) sobrepasa un lmite de pgina, puede ocurrir
una falla de pgina despus de haber efectuado parte de la transferencia.
Si los bloques fuente y destino se superponen es probable que se modifique el bloque
fuente, por lo que no podramos reiniciar la instruccin.
Este problema se resuelve de dos maneras, dependiendo del modelo.
o
El micro cdigo calcula y trata de acceder a ambos extremos de los dos bloques. Si
va a ocurrir una falla de pgina, suceder en esta etapa, antes de modificar algo.
76
Esta estrategia asegura que slo se lean las pginas necesarias del sistema de
archivos.
Si un proceso de 10 pginas slo emplea la mitad de ellas, entonces la paginacin por demanda
ahorra la E/S necesaria para cargar 5 pginas que nunca se usarn. Si aumentamos nuestro nivel
de multiprogramacin, estamos sobreasignando la memoria.
76
Si ocurre una falla de pgina: El hardware genera una trampa para el SO. El SO consulta sus tablas
internas para ver si se trata de una falla de pgina o de un acceso ilegal a la memoria.
El SO determina en qu lugar del disco reside la pgina deseada, pero luego descubre que no
quedan marcos libres en la lista; se est usando toda la memoria.
El SO tiene varias opciones, como abortar el proceso del usuario. Sin embargo, la paginacin por
demanda es algo que el SO hace para mejorar la utilizacin y la productividad del sistema de
computacin. Podemos descargar un proceso liberando todos sus marcos y reduciendo el nivel de
multiprogramacin.
El remplazo de pginas adopta la estrategia siguiente:
Si no hay ningn marco libre, encontramos uno que no se est utilizando en ese
momento y lo liberamos.
Ahora se modifica la rutina de servicio de la falla de pgina para incluir el remplazo de pgina:
1. Encontrar la ubicacin en disco de la pgina deseada.
2. Buscar un marco libre:
- Si hay un marco libre, utilizarlo.
- De lo contrario, utilizar un algoritmo de remplazo de pgina a fin de seleccionar un
marco vctima.
- Escribir la pgina vctima en disco; ajustar las tablas de marcos y pginas.
3. Leer la pgina deseada en el (nuevo) marco libre; modificar las tablas de pginas y marcos.
4. Reanudar el proceso de usuario.
Desventaja:
Si no quedan marcos libres, se requieren dos transferencias de pginas (una de entrada y una de
salida). Esta situacin duplica el tiempo de servicio de la falla de pgina y en consecuencia
aumenta el TAE.
Solucin:
El hardware pone a 1 el bit de modificacin para una pgina cuando en ella se escribe una palabra
o un byte, indicando que ha sido modificada.
Si el bit est activo, sabemos que la pgina ha sido modificada desde que se ley de disco.
En este caso, debemos escribir la pgina en disco.
Si el bit de modificacin no est activo, la pgina no ha sido modificada desde que se ley
en memoria. Por tanto, si la copia de la pgina en disco no ha sido sobrescrita podemos
evitar la escritura en disco de esta pgina, pues ya se encuentra all.
76
76
Pila: mantener una pila de nmeros de pgina. Cuando se hace referencia a una
pgina, se saca de la pila y se coloca en la parte superior. En la parte superior de la
pila siempre se encuentra la pgina ms recientemente usada, y en la parte inferior,
la menos recientemente usada. Puesto que las entradas deben sacarse de la mitad
de la pila, puede implantarse mejor con una lista doblemente ligada.
76
Cuando se requiere un marco, el apuntador avanza hasta encontrar una pgina con bit de
referencia en 0; conforme avanza, borra los bits de referencia.
Si todos los bits estn activos, el remplazo de segunda oportunidad se convierte en un
remplazo FIFO.
Algoritmo LFU (menos frecuentemente utilizada)
Mantiene un contador del nmero de referencias que se han hecho para cada pgina.
Se remplaza la pgina con el menor recuento.
Este algoritmo tiene problemas cuando una pgina se usa mucho en la fase inicial de un
proceso, pero despus ya no se utiliza.
Una solucin consiste en utilizar un recuento promedio.
Algoritmo MFU (mas frecuentemente utilizada)
Se basa en el argumento de que la pgina con el menor recuento probablemente acaba de
llegar y an tiene que usarse.
Algoritmos adicionales
Si consideramos el bit de referencia y el bit de modificacin como un par ordenado,
tenemos las 4 clases siguientes:
o
76
a = v / V x m
Debemos ajustar los a para que sean enteros, mayores al nmero mnimo requerido por el
conjunto de instrucciones, y que sumados no excedan de m.
Tanto en la asignacin equitativa como en la proporcional, la asignacin para cada proceso
puede variar de acuerdo con el nivel de multiprogramacin.
Si aumenta el nivel de multiprogramacin, cada proceso puede perder algunos marcos
para proporcionar al nuevo proceso la memoria necesaria.
Se trata de igual manera a un proceso de alta prioridad y a uno de baja prioridad.
8.7 Hiperpaginacin
Si el nmero de marcos asignados a un proceso de baja prioridad desciende por debajo del
nmero mnimo requerido por la arquitectura del computador, debemos suspender la ejecucin de
ese proceso.
Luego debemos descargar sus pginas restantes, liberando todos los marcos asignados. Esta
medida introduce un nivel de intercambios de la planificacin a mediano plazo de la CPU.
Cualquier proceso que no tiene marcos suficientes:
b) Como todas sus pginas estn activas, debe remplazar una pgina que casi de
inmediato se volver a necesitar.
c) Pronto vuelve a fallar, y una y otra vez ms. El proceso sigue generando fallas,
remplazando pginas por las cuales fallar y se reincorporara en seguida.
76
ms
el
nivel
comienza
de
la
76
Cada proceso utiliza las pginas de su rea activa, por lo que el proceso i necesita TAA
marcos.
Si la demanda total es mayor que el nmero total de marcos disponibles ( > m) se
producir la hiperpaginacin, ya que algunos procesos no tendrn marcos suficientes.
El SO supervisa el rea activa de cada proceso y le asigna marcos suficientes para
proporcionarle el tamao del rea activa. Si aumenta la suma de los tamaos de las reas
activas, excediendo el nmero total de marcos disponibles, el SO selecciona un proceso y lo
suspende.
La estrategia del rea activa evita la hiperpaginacin manteniendo a la vez el
nivel de multiprogramacin lo ms alto posible.
Una pgina se encuentra en el rea activa si existe una referencia a ella en
cualquier lugar de la ventana del rea activa.
El remplazo local:
o
76
8.8.2 Prepaginacin
En un sistema de paginacin por demanda hay un gran nmero de fallas de pgina que
ocurren al iniciar un proceso.
La Prepaginacin es un intento para evitar este alto nivel de paginacin inicial.
La estrategia consiste en traer a memoria al mismo tiempo todas las pginas que
se necesitarn.
Suponga que las pginas estn prepaginadas y una fraccin de estas s pginas
realmente se usan (0 >= <=1). La pregunta es si el costo de las .s fallas de pgina que
se evitan es mayor o menor al costo de la Prepaginacin de (1 - )s pginas innecesarias.
Si a es cercana a 0, pierde la Prepaginacin; si a es cercana a 1, la Prepaginacin gana.
76
El cargador puede evitar la colocacin de rutinas que crucen los lmites de pgina,
manteniendo toda una rutina dentro de la misma pgina.
Esta es una variante del problema de empaquetamiento en investigacin
operativa: tratar de empaquetar los segmentos de carga de tamao variable en pginas
de tamao fijo para minimizar las referencias entre pginas.
76
Tabla de pginas:
Si se encuentra un valor igual, digamos en la entrada i, entonces se genera la direccin
fsica: <i, desplazamiento>.
Si no hay coincidencia, entonces ocurre una falla de pgina, indicando que se ha generado
una direccin ilegal o que la pgina en cuestin no se encuentra en memoria.
Al conservar informacin sobre qu pgina de memoria virtual se almacena en cada marco
fsico, las tablas de pginas invertidas reducen la cantidad de memoria fsica
necesaria para almacenar esta informacin.
No contiene informacin completa sobre la memoria virtual, para lo que habra que
mantener tablas de paginas externas que se descargan y reincorporan cuando ocurre una
falla de pagina, es decir segn se necesiten.
Aumenta el tiempo necesario para buscar en la tabla cuando hay una referencia
a una pgina.
Como la tabla de pginas invertida est ordenada por direccin fsica, pero las bsquedas
se efectan por direcciones virtuales, habra que recorrer toda la tabla para
encontrar una coincidencia.
Solucin: Usar una tabla de dispersin para limitar la bsqueda a una, o unas cuantas, de
las entradas de la tabla. Una referencia a memoria virtual requiere por lo menos dos
lecturas en memoria real:
La tabla de pginas.
Para mejorar el rendimiento, usamos registros asociativos de memoria para contener las
entradas localizadas recientemente. Primero se busca en estos registros, antes de
consultar la tabla de dispersin.
Tambin ocasiona problemas la implantacin de memoria compartida en sistemas
que emplean tablas de pginas invertidas. No puede emplearse este mtodo comn, ya
que se dispone slo de una entrada para la pgina virtual por cada pgina fsica, por lo que
una pgina fsica no puede tener dos (o ms) direcciones virtuales compartidas.
76
76
9.2.1.2.- Direccionamiento
Sistemas de referencia:
CHS Cylinder Head Sector: utiliza una direccin compuesta por tres coordenadas: cilindro,
cabeza y sector
Direccionamiento Lgico de Bloques (LBA Logical Block Addressing): Los sectores del
disco son tratados por el SO como un nmero unidimensional de bloques, donde cada
bloque es un sector.
Zone Bit Recording (ZBR): agrupa las pistas en zonas, de acuerdo a su distancia al centro
del disco. Cada una de estas zonas se disea con cantidades de sectores por pista
diferentes, creciendo la misma hacia las pistas exteriores.
Para convertir entre los sistemas de referencia: LBA = ((c x HPC) + h) x SPT + s -1
c: nmero de cilindro [0...N]
h: nmero de cabeza [0...N]
s: nmero de sector [1...N]
76
La parte lgica:
Controlador del disco:
Realiza la interaccin lgica con el resto
del sistema informtico, recibiendo
instrucciones del mismo a travs del bus
de datos, y comandando a las partes
electromecnicas.
76
o
o
Serial
o
o
o
o
76
76
ejecutar
nuevamente el programa. El costo de estas repeticiones es alto, para
evitarlas, el usuario normalmente asignar ms espacio del necesario,
con el desperdicio que ello representa.
76
Cada entrada del directorio tiene un puntero al primer bloque del archivo en el
disco.
Crear un archivo: se crea una nueva entrada en el directorio del dispositivo. Se
asigna un valor inicial nulo para representar un archivo vaco, y tambin se
asigna cero al campo de tamao.
Una escritura a un archivo quita el primer bloque disponible de la lista de
espacio libre y escribe en l; luego se enlaza el nuevo bloque al final del
archivo.
Para leer un archivo, basta con leer los bloques siguiendo los punteros.
Con este tipo de asignacin no es necesario declarar el tamao del
archivo durante su creacin.
No tenemos fragmentacin externa.
Inconvenientes:
Slo puede aplicarse eficazmente al acceso secuencial, ya que para encontrar
un bloque tenemos que comenzar desde el principio del archivo y seguir los
punteros hasta encontrar el bloque en cuestin.
El espacio requerido por el puntero nos quita espacio para los datos,
requiriendo entonces cada archivo un poco ms de espacio.
La fiabilidad: Un error en el software del SO o un problema en el hardware,
puede provocar que se elija un puntero incorrecto, enlazando el archivo a la
lista de espacio libre o a otro archivo.
Una solucin consiste en usar listas doblemente ligadas o almacenar en cada
bloque el nombre del archivo y el nmero de bloque relativo.
Una variante:
Es la tabla de asignacin de archivos (FAT):
Tiene una entrada para cada bloque del disco y est indexada por nmero de
bloque.
El directorio contiene el nmero del primer bloque del archivo y la entrada
obtenida con ese nmero guarda el nmero del siguiente bloque.
Esta cadena contina hasta el ltimo bloque.
Para asignar un nuevo bloque a un archivo, slo hay que localizar la primera
entrada de la tabla con valor cero y sustituir el valor anterior de fin de archivo
con la direccin del nuevo bloque, despus se remplaza el cero por el valor de
fin de archivo.
76
9.3.4.3.- Agrupamiento
Almacenar en el primer bloque las direcciones de n bloques libres.
76
9.3.4.4.- Recuento
Consiste en aprovechar que varios bloques contiguos se pueden asignar o
liberar simultneamente, especialmente en asignacin contigua.
As podemos tener la direccin del primer bloque libre y los n bloques libres
contiguos que le siguen.
Cada entrada de la lista de espacio libre consiste en una direccin en disco y un
recuento.
Acceso directo
Por lo tanto, algunos sistemas permiten el acceso directo a los archivos con la
asignacin contigua y el acceso secuencial con la enlazada.
o
La asignacin indexada:
o
76
la
solicitud
de
acceso
de
menor
tiempo
de
76
9.5.2.- RAID
RAID hace referencia a un sistema de almacenamiento que utiliza mltiples
discos rgidos entre los que distribuye o replica los datos.
Dependiendo de su configuracin, un arreglo de discos puede presentar beneficios:
Integridad
Tolerancia a fallos
Rendimiento
Capacidad
RAID combina varios discos rgidos en una sola unidad lgica y el sistema
operativo ve uno solo.
9.5.3.- Implementaciones
La distribucin de datos en varios discos puede ser gestionada por hardware dedicado
o por software.
Con la implementacin por software:
o
76
9.5.3.1.- RAID 0
Un RAID 0 distribuye los datos equitativamente entre dos o ms discos sin
informacin de paridad que proporcione redundancia: no es redundante.
Una buena implementacin de un RAID 0 dividir las operaciones de lectura y
escritura en bloques de igual tamao y los distribuir equitativamente entre los
dos discos.
Es posible crear un RAID 0 con ms de dos discos, si bien la fiabilidad del
conjunto ser igual a la fiabilidad media de cada disco dividido el nmero de
discos del conjunto.
Cuando uno de ellos falla se pierde una parte muy importante de los datos.
Con un RAID 0, si todos los sectores accedidos estn en el mismo disco,
entonces el tiempo de bsqueda ser el de dicho disco.
Si los sectores a acceder estn distribuidos equitativamente entre los discos,
entonces el tiempo de bsqueda aparente estar entre el ms rpido y el ms
lento de los discos del conjunto.
Si los discos giran sincrnicamente, lo que resultara tiempos de bsqueda slo
ligeramente superiores al de un nico disco.
La velocidad de transferencia del conjunto ser la suma de la de todos los
discos, limitada slo por la velocidad de la adaptadora RAID.
9.5.3.2.- RAID 1
Crea una copia exacta (o espejo) de un conjunto de datos en dos o ms discos.
Un conjunto RAID 1 slo puede ser tan grande como el ms pequeo de sus
discos.
Un RAID 1 clsico consiste en dos discos en espejo.
Incrementa exponencialmente la fiabilidad: para que el conjunto falle es
necesario que lo hagan todos sus discos.
Dado que todos los datos estn en dos o ms discos, el rendimiento de lectura
se incrementa.
El tiempo medio de lectura se reduce, ya que los sectores a buscar pueden
dividirse entre los discos, bajando el tiempo de bsqueda y subiendo la tasa de
transferencia.
76
9.5.3.3.- RAID 5
Usa divisin de datos a nivel de bloques distribuyendo la informacin de
paridad entre todos los discos miembros del conjunto.
Bajo coste de redundancia.
Cada vez que un bloque de datos se escribe en un RAID 5, se genera un bloque
de paridad dentro de la misma divisin (stripe).
Un bloque se compone a menudo de muchos sectores consecutivos de disco.
Una serie de bloques recibe el nombre colectivo de divisin (stripe).
Si otro bloque, o alguna porcin de un bloque, es escrita en esa misma divisin,
el bloque de paridad es recalculada y vuelta a escribir.
Los bloques de paridad no se leen en las operaciones de lectura de datos, pero
se leen cuando la lectura de un sector de datos provoca un error de CRC4.
Si falla un disco del conjunto, los bloques de paridad de los restantes discos son
combinados matemticamente con los bloques de datos de los restantes discos
para reconstruir los datos del disco que ha fallado al vuelo.
El RAID 5 requiere al menos tres unidades de disco para ser implementado.
El fallo de un segundo disco provoca la prdida completa de los datos.
El nmero mximo de discos en un grupo de redundancia RAID 5 es
tericamente ilimitado, pero en la prctica es comn limitar el nmero de
unidades.
A medida que el nmero de discos en un conjunto RAID 5 crece, el MTBF puede
ser ms bajo que el de un nico disco.
76
10 - Sistemas de Archivos
10.1 Archivo
Un archivo es un conjunto de informacin relacionada cuyo significado ha sido definido por su
creador.
El formato de la informacin puede ser libre (como los archivos de texto) o rgido. Tiene un
nombre, informacin y elementos adicionales llamados atributos.
110
Al asignar el espacio en disco en bloques, se puede desperdiciar una porcin del ltimo bloque de
cada archivo que representa la fragmentacin interna. A mayor tamao del bloque mayor ser la
fragmentacin interna.
110
de
dispositivo
de
direccionamiento
de
110
110
110
110
11.1.3.2 Ejemplos
Consideremos el modelo estndar de modo dual si el proceso se ejecuta en modo usuario slo
puede invocar instrucciones no privilegiadas, as que slo puede ejecutarse dentro de su espacio
de memoria predefinido. Estos dos modos protegen al sistema operativo. En un Sistema Operativo
multiprogramado, no basta con dos dominios de proteccin, ya que los usuarios tambin quieren
que se les proteja de otros usuarios. por tanto, se requiere un esquema ms complicado.
110
Los usuarios normalmente deciden el contenido de las entradas de la matriz de acceso. Cuando un
usuario crea un objeto nuevo Oj, se aade la columna Oj a la matriz de acceso con las entradas
iniciales apropiadas, a gusto del creador. El usuario podra decidir colocar algunos derechos en
algunas entradas de la columna j y otros derechos en otras entradas, segn sus necesidades.
La matriz de acceso proporciona un mecanismo apropiado para definir e implementar un control
estricto de la asociacin tanto esttica como dinmica entre procesos y dominios. Podemos
controlar la conmutacin de dominios incluyendo dominios entre los objetos de la matriz de
acceso.
Los procesos debern poder cambiar de un dominio a otro. Se permite la conmutacin del dominio
Di al dominio Dj si y slo si el derecho de acceso conmutar pertenece acceso(i,j): Matriz de
acceso con dominios como objetos.
La capacidad para copiar un derecho de acceso de un dominio (fila) de la matriz de acceso a otro
se denota con un asterisco (*) aadido al derecho de acceso. El derecho de copiar permite copiar
el derecho de acceso slo dentro de la columna (esto es, el objeto) para la cual se define el
derecho.
Este esquema tiene dos variantes:
1. Se copia un derecho de acceso(i,j) a acceso(k,j); luego, se elimina de acceso(i,j); esta
accin es una transferencia de un derecho, ms que una copia.
2. La propagacin del derecho de copiar podra estar limitada, es decir, cuando el derecho R*
se copia de acceso(i,j) a acceso(k,j), slo se crea el derecho R (no R*). Un proceso que se
ejecute en el dominio Dk no podr copiar el derecho R.
Mecanismos para modificar entradas de una columna:
El derecho de copiar: permite a un proceso copiar algunos derechos de una entrada de una
columna a otra entrada de la misma columna.
El derecho de dueo: mecanismo para aadir nuevos derechos y quitar algunos derechos. Si
acceso(i,j) incluye el derecho de dueo, un proceso que se ejecuta en el dominio Di puede agregar
y quitar cualquier derecho en cualquier entrada de la columna j.
Mecanismo para modificar las entradas de una fila.
El derecho control slo aplica a los objetos dominio. Si acceso(i,j) incluye el derecho control, un
proceso que se ejecuta en el dominio Di puede quitar cualquier derecho de acceso de la fila j.
El problema de garantizar que ninguna informacin que inicialmente est contenida en
un objeto pueda migrar fuera de su entorno de ejecucin se denomina problema de
confinacin.
110
110
11.1.5.5 Comparacin
La mayor parte de los sistemas usan una combinacin de listas de acceso y capacidades. Cuando
un proceso intenta acceder a un objeto por primera vez, se examina la lista de acceso. Si se niega
el acceso, ocurre una condicin de excepcin; si no, se crea una capacidad y se conecta al objeto.
Las referencias subsecuentes usan la capacidad para demostrar rpidamente que se autoriz el
acceso. Despus del ltimo acceso la capacidad se destruye.
110
110
11.2 Seguridad
La seguridad que es una medida de la confianza que tenemos en que se preservar la integridad
de un sistema y de sus datos. La seguridad es un tema mucho ms amplio que la proteccin y lo
abarcaremos en otro captulo.
La seguridad no slo requiere un sistema de proteccin apropiado, sino tambin considerar el
entorno externo en el que el sistema opera.
110
Phishing: con este tipo de ataque, un correo electrnico o pgina web de aspecto
autentico llevan a engao a un usuario para que introduzca informacin
confidencial.
110
3. Escribir un fragmento simple de cdigo en el siguiente espacio de la pila, que incluye los
comandos que el atacante quiera ejecutar, como por ejemplo arrancar un programa shell.
11.2.2.5 Virus
110
Los virus son auto-replicantes y estn diseados para "infectar" otros programas. Un virus es el
fragmento de cdigo integrado dentro de un programa legtimo.
Los virus constituyen un problema especialmente grave para los usuarios de mquina de tipo PC.
Los virus suelen propagarse a travs de correo electrnico. Otra forma comn de transmisin de
virus utiliza los archivos Microsoft Office.
Cmo funcionan los virus?
Una vez que un virus alcance una mquina objetivo, un programa conocido como lanzador de
virus inserta el virus en el sistema. El lanzador de virus es usualmente un caballo de Troya, que se
ejecuta por otras razones pero cuya principal actividad consiste en instalar el virus. Una vez
instalado, el virus puede hacer una de varias cosas. Existen literalmente miles de virus.
Categoras:
Archivo / Paracito: infecta un sistema insertndose a un archivo y modificando el inicio
del programa para que la ejecucin salte al cdigo del virus. Despus de ejecutarse, el
virus devuelve el control al programa para que no pueda detectarse que el virus se ha
ejecutado.
Arranque / de Memoria: infecta el sector de arranque del sistema, ejecutndose cada
vez que el sistema se arranca y antes de que se cargue el sistema operativo.
Macro: estn escritos en un lenguaje de alto nivel. Estos virus se activan cuando se inicia
un programa capaz de ejecutar la macro.
Cdigo fuente: busca cdigo fuente y lo modifica para incluir el virus y ayudar a su
distribucin.
Polimorfico: cambia cada vez que se instala, para evitar su deteccin por parte del
software antivirus. Los cambios no afectan a la funcionalidad del virus, sino que slo
modifican la signatura del virus.
Cifrado: incluye cdigo de descripcin junto con el virus cifrado, de nuevo para evitar la
deteccin. El virus se descifra primero y luego se ejecuta.
Encubierto: trata de evitar la deteccin modificando partes del sistema que podran ser
usadas para detectarlo.
Tnel: trata de evitar la deteccin por los programas antivirus instalndose asimismo en la
cadena de rutinas de tratamiento de interrupciones.
Multiparte: son capaces de infectar mltiples partes de un sistema.
Acorazado: resultan difciles de desentraar y de comprender por parte de los
investigadores que desarrollan programas antivirus. Tambin pueden estar comprimidos
para evitar la deteccin.
Generalmente, los virus son el tipo de ataque de seguridad ms daino;
11.2.3.1 Gusanos
110
Un gusano es un proceso que usa el mecanismo de engendrar para dar al traste con el desempeo
del sistema. El gusano engendra copias de s mismo, ocupando recursos del sistema y tal vez
impidiendo a todos los dems procesos usar el sistema. En las redes de computadores los gusanos
son especialmente potentes, ya que pueden reproducirse entre los sistemas y paralizar toda la
red.
Un estudiante solt un programa gusano en uno o ms anfitriones conectados a Internet. El
gusano rpidamente se extendi a grandes distancias; unas cuantas horas despus de su
liberacin, el gusano haba consumido recursos de sistema hasta el punto de hacer caer las
mquinas infectadas.
El gusano consista en dos programas, un programa garfio (tambin llamado autoarranque o
vector) y el programa principal. El garfio, llamado l1.c, consista en 99 lneas de cdigo en C que
se compilaba y ejecutaba en cada mquina a la que obtena acceso. Una vez establecido en el
sistema atacado, el garfio se conectaba con la mquina en la que se haba originado y cargaba
una copia del gusano principal el sistema enganchado.
Una vez instalado, el gusano principal realizaba intentos sistemticos por descubrir contraseas
de usuarios. A continuacin, el gusano buscaba archivos de datos rsh en esas cuentas recin
violadas. Cualesquiera entradas de rsh halladas se intentaban y, como se describi antes, el
gusano poda entonces obtener acceso a cuentas de usuarios en sistema remotos.
110
11.2.4.1 Cifrado
El cifrado es un medio de restringir los posibles receptores de un mensaje. Un algoritmo de cifrado
permite al emisor de un mensaje garantizar que slo pueda leer el mensaje una computadora que
posea una cierta clave.
El intercambio de claves puede tener lugar directamente entre las dos partes o a travs de una
tercera parte de confianza.
Un algoritmo de cifrado consta de los siguientes componentes:
Un conjunto K de claves.
Un conjunto M de mensajes.
Un conjunto C de mensajes de texto cifrado
Una funcin E: K (M Q. Es decir, para cada k e K, E(k) es una funcin para generar
mensajes de texto cifrado a partir de los mensajes de texto en claro. Tanto E como E(k)
para cualquier k deben ser funciones computables de manera eficiente.
Una funcin D: K (C - M). Es decir, para cada k e K, D(k) es una funcin para generar
mensajes de texto en claro a partir de los mensajes de texto cifrado. Tanto D como D(k)
para cualquier k deben ser funciones eficientemente computables.
Un algoritmo de cifrado debe proporcionar esta propiedad esencial: dado un mensaje
de texto cifrado c e C, una computadora puede calcular m tal que E(k)(m) = c slo si
posee D(k). As, una computadora que posea D(k) puede descifrar los mensajes de
texto cifrado para obtener los mensajes de texto en claro que se usaron para
producirlos, pero una computadora que no posea D(k) no puede descifrar esos
mensajes cifrados.
11.2.4.1.1 Cifrado simtrico
En un algoritmo de cifrado simtrico, se utiliza la misma clave para cifrar y para descifrar, es
decir, E(k) puede deducirse a, partir de D(k) y viceversa. Por tanto, es necesario proteger el
secreta de. E(k) con el mismo grado que el de D(k).
110
Tenemos una clave publica, una privada y un algoritmos de cifrado. El uso de un mecanismo de
cifrado asimtrico comienza con la publicacin de la clave pblica del destino. Para la
comunicacin bidireccional, el origen debe tambin publicar su clave pblica. Esa "publicacin"
puede ser tan simple como entregar una copia electrnica de la clave, o puede tratarse de un
mecanismo ms complejo. La clave privada (o "clave secreta'') debe ser guardada celosamente,
ya que cualquiera que disponga que esa clave podr descifrar cualquier mensaje creado a partir
de la correspondiente clave pblica.
Para una computadora, resulta mucho ms rpido codificar y decodificar un texto
cifrado empleando los algoritmos simtricos usuales que utilizando algoritmos
asimtricos.
11.2.4.1.3 Autenticacin
El proceso de restringir el conjunto de potenciales emisores de un mensaje se denomina
autenticacin. La autenticacin es, por tanto, complementaria al cifrado. De hecho, algunas veces
sus funciones se solapan. La autenticacin tambin resulta til para demostrar que un mensaje no
ha sido modificado.
Un algoritmo de autenticacin consta de los siguientes componentes:
Un conjunto K de claves. ^
Un conjunto M de mensajes.
Un conjunto A de autenticadores.
Una funcin S : K - (M > A). Es decir, para cada k e K, S(k) es una funcin para generar
autenticadores a partir de los mensajes. Tanto S como S(k) para cualquier k deben ser
funciones computacionalmente eficientes.
Una funcin V : K > (M x A {true, f alse}). Es decir, para cada ke K, V(k) es una funcin
para verificar autenticadores de los mensajes. Tanto V como V(k) para cualquier k deben
ser funciones eficientemente computables.
La propiedad crtica que un algoritmo de autenticacin debe poseer es esta: para un mensaje m,
una computadora puede generar un autenticador a e A tal que V(k)(m, a) = true slo si posee
S(k). As, una computadora que posea S(k) podr generar autenticadores para los mensajes de
modo que cualquier otra computadora que posea V(k) pueda verificarlo. Sin embargo, una
computadora que no tenga S(k) no podr generar autenticadores para los mensajes que puedan
verificarse utilizando V(k).
11.2.4.1.4 Distribucin de claves
Estas son las razones por las que se han hecho esfuerzos para crear algoritmos de clave
asimtrica. No slo las claves se pueden intercambiar en pblico, sino que un determinado usuario
slo necesita una clave privada.
Lamentablemente, incluso la distribucin de claves pblicas requiere que se tenga cierto cuidado.
110
11.2.5.1 Contraseas
La estrategia ms comn para validar la identidad de un usuario es el empleo de contraseas.
Cuando el usuario se identifica con un identificador de usuario o nombre de cuenta, se le pide la
contrasea. Si la contrasea que el usuario proporciona coincide con la que est almacenada en el
sistema, ste supone que el usuario est autorizado.
Las contraseas se pueden considerar como un caso especial de las llaves o las capacidades.
110
Para evitar los problemas del husmeo de contraseas y las miradas por encima del hombro, un
sistema podra usar un juego de contraseas apareadas. Cuando se inicia una sesin, el sistema
selecciona al azar y presenta una parte de un par de contraseas; el usuario deber proporcionar
la otra parte. En este sistema, se presenta un reto al usuario y ste debe responder con la
respuesta correcta a ese reto.
11.2.5.5 Biomtrica
Los lectores palmares o de manos se usan habitualmente para dotar de seguridad a los accesos
fsicos, como por ejemplo, el acceso a un centro de datos. Estos lectores establecen la
correspondencia entre los parmetros almacenados y los que se obtienen mediante los lectores de
manos. Los parmetros pueden incluir un mapa de temperaturas, as como la longitud del dedo, la
anchura del mismo y los patrones de las lneas.
Los lectores de huellas digitales son muy precisos y su relacin coste-efectividad es buena, por lo
que en el futuro sern de uso comn. Estos dispositivos leen los patrones de las lneas del dedo y
los convierten en una secuencia de nmeros. Varios usuarios pueden tener almacenados sus
perfiles y el escner puede establecer la diferencia entre ellos.
110
110
Windows XP
XP proviene de eXPeriencia.
Dispone de varias versiones para
distintos entornos informticos.
Primer SO de Windows orientado al
consumidor que se construye con
un ncleo y arquitectura de
Windows NT en versiones de 32 y
64 bits.
Mejoras
en
rendimiento.
estabilidad
de
Gestin
de
Estabilidad: hace referencia a las capacidades de la maquina de soportar la carga sin tener
alteraciones.
Desempeo: se refiere a la relacin trabajo/tiempo.
GNU Linux
Estabilidad y
Desempeo:
Windows XP
Primeras versiones con deficiencias
en cuanto a la estabilidad que se
han logrado mejorar.
Para asegurar la estabilidad es
necesario llevar a cabo tareas de
mantenimiento.
Hasta cierta medida se puede
optimizar el sistema segn el fin
para el que se usa.
Licenciamiento y precio: Hace referencia al cuerdo que se firma entre las dos partes: productor
y usuario. Se encuentra muy ligado al precio.
GNU Linux
Licenciamient
o y precio:
Windows XP
Varias
alternativas
licenciamiento.
de
126
Libertades bsicas:
1. Libertad 0: libertad de ejecutar el
programa
para
cualquier
propsito.
2. Libertad 1: libertad de estudiar
como trabaja el programa, y
cambiarlo para que haga lo que
usted quiera.
3. Libertad 2: libertad de distribuir
copias.
4. Libertad 3: libertad de distribuir
copias
de
sus
versiones
modificadas.
Distintas versiones
diferentes.
con
precios
GNU Linux
Facilidad de
uso
Windows XP
interfaces
Interfaz primaria:
grafica).
GUI
(interfaz
grafico
el
126
Soporte: ayuda que la compaa o persona pueda prestar en caso de fallos o incluso ayuda para
otro tipo de problema.
GNU Linux
Soporte
Windows XP
para
de
soporte
GNU Linux
Portabilidad
Windows XP
La Portabilidad viene dad por la
Capa de abstraccin del hardware
(HAL).
HAL: capa de software que
esconde las diferencias del hard
de los niveles superiores del SO
para garantizar la portabilidad.
Todos
los
componentes
de
Windows acceden al hard a travs
del HAL.
Hay mltiples HAL disponibles
para diferentes plataformas.
126
GNU Linux
Requerimient
os
de
hardware
Windows XP
Procesador:
Se necesita233 MHz o mas.
Se recomienda: 300 MHz.
Memoria:
Se recomienda RAM de 128 MB o
ms.
Mnimo: RAM de 64 MB.
Disco duro:
Necesario: 1,5 GB disponibles.
Arquitectura: Se deber tener en cuenta cmo se realizarn las llamadas al sistema, cmo se
gestionar la memoria, cmo se realizar la abstraccin del hardware, entre otras caractersticas.
Uno de los puntos fundamentales en el diseo de esta arquitectura de servicios, es el tipo de
ncleo que se va a utilizar en el sistema operativo.
Ncleo Monoltico
Un ncleo monoltico es un tipo de ncleo o kernel de un sistema operativo, como los que utilizan
Unix, Linux y FreeBSD. Estos sistemas tienen un ncleo grande y complejo, que engloba todos los
servicios del sistema. Est programado de forma no modular, y tiene un rendimiento mayor que
un microncleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la
recompilacin del ncleo y el reinicio del sistema para aplicar los nuevos cambios.
Un sistema operativo con ncleo monoltico concentra todas las funcionalidades posibles dentro
de un gran programa. El mismo puede tener un tamao considerable, y deber ser recompilado
por completo al aadir una nueva funcionalidad.
126
Microncleo
Microncleo es un tipo de ncleo de un sistema operativo que provee un conjunto de primitivas o
llamadas al sistema mnimas, para implementar servicios bsicos como espacios de direcciones,
comunicacin entre procesos y planificacin bsica.
Las principales ventajas de su utilizacin son la reduccin de la complejidad, la descentralizacin
de los fallos y la facilitacin para crear y depurar controladores de dispositivos.
Sus principales dificultades son la complejidad en la sincronizacin de todos los mdulos que
componen el microncleo y su acceso a la memoria y la Integracin con las aplicaciones.
Ncleo Hbrido
Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial,
en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en
espacio de usuario. Es un microncleo NO modificado.
El ncleo hbrido implica que el ncleo en cuestin usa conceptos de arquitectura o mecanismos
tanto del diseo monoltico como del microncleo, especficamente el paso de mensajes y la
migracin de cdigo no esencial hacia el espacio de usuario, pero manteniendo cierto cdigo no
esencial en el propio ncleo por razones de rendimiento.
GNU Linux
Arquitectura
Arquitectura del
subsistemas:
SO
con
Windows XP
cuatro
Aplicaciones de usuario.
Ncleo Linux.
Modo usuario.
Modo ncleo.
Cada
subsistema
puede
comunicarse con los subsistemas de
las capas adyacentes.
Dependencia entre subsistemas de
arriba hacia abajo.
Ncleo
compuesto
modulos.
por
cinco
estos
Microncleo:
proporc
sincronizacin
multiprocesador, hilos y envio
y
planificacin
de
interrupciones,
gestin
de
interrupciones y envio de
excepciones.
Controladores
en
modo
ncleo: para permitirle a los
programas
de
usuario
interactuar con los dispositivos
del hardware.
Capa
de
abstraccin
de
hardware (HAL): diseado para
ocultar las diferencias de
hardware
y
por
tanto
proporciona una plataforma
de
126
Comunicacin
(IPC).
entre
procesos
consistente en
aplicaciones
ejecutarse.
la
cual las
pueden
GNU Linux
Sistemas de
archivos
Estticos.
Dinmicos
Compartidos
Restringidos
Windows XP
El directorio raz se identifica con
la letra de la unidad seguida de
":\".
Las carpetas contenedoras de
archivos (o subdirectorios) se
simbolizan con un nombre y luego
"\".
Los
archivos
se
denominan
mediante un nombre y luego un
punto y la extensin.
Hay al menos un directorio raz por
cada unidad fsica.
Podemos
encontrar
sistemas de archivos.
varios
Gestin de procesos
GNU/Linux
126
Para ser compatible con otros sistemas UNIX, Linux debe utilizar un modelo de proceso similar a
los de las otras versiones de UNIX. Sin embargo, Linux opera de manera diferente a UNIX en
algunos aspectos clave.
El principio bsico de la gestin de procesos UNIX consiste en separar dos operaciones: la creacin
de un proceso y la ejecucin de un nuevo programa. Un nuevo proceso se crea con la llamada al
sistema fork() y un nuevo programa se ejecuta despus de una llamada a exec().
Este modelo presenta la ventaja de su gran simplicidad.
En Linux, podemos descomponer este contexto en una serie de secciones especficas. Las
propiedades de los procesos pueden clasificarse en tres grupos: identidad del proceso, entorno y
contexto.
Identidad de un proceso
La identidad del proceso est compuesta principalmente de los siguientes elementos:
ID de proceso (PID).
Credenciales.
Personalidad.
Entorno de un proceso
El entorno de un proceso se hereda de su proceso padre y est compuesto por dos vectores: el
vector de argumentos y el vector de entorno.
Contexto de un proceso
El contexto de un proceso es el estado del programa en ejecucin en un momento determinado,
as que est variando constantemente. El contexto de un proceso incluye las siguientes partes:
Contexto de planificacin
Contabilidad de recursos.
Tabla de archivos.
Contexto del sistema de archivos.
Tabla de rutina de tratamiento de seales.
Contexto de memoria virtual.
Procesos y hebras
Linux no distingue entre procesos e hilos. De hecho, Linux utiliza generalmente el trmino tarea
para referirse a un flujo de control dentro de un programa. Cuando se invoca clone(), se le pasa un
conjunto de indicadores para determinar el grado de comparticin que debe haber entre las tareas
padre e hija.
La falta de distincin entre procesos y hebras es posible porque Linux no almacena el contexto
completo de un proceso dentro de la estructura principal de datos del proceso; en lugar de ello,
almacena el contexto dentro de subcontextos independientes. La estructura de datos del proceso
simplemente contiene punteros a estas otras estructuras, por lo que cualquier nmero de
procesos puede compartir fcilmente un subcontexto apuntando al mismo subcontexto segn sea
necesario.
Planificacin
Linux tiene dos algoritmos separados de planificacin de procesos. Uno de ellos es un algoritmo de
tiempo compartido para la planificacin apropiativa y equitativa entre mltiples procesos; el otro
126
est diseado para tareas de tiempo real, en la que las prioridades absolutas son ms importantes
que la equidad.
El planificador de Linux es un algoritmo apropiativo basado en prioridades, con dos rangos de
prioridad separados: un rango de tiempo real, que va de 0 hasta 99, y un rango de valores nice,
que va de 100 a 140. Estos dos rangos se ponen en correspondencia con un esquema de
prioridades global en el que los valores numricamente inferiores indican las prioridades ms
altas.
Linux asigna a las tareas de mayor prioridad unos quantums de tiempo ms largos, y viceversa.
Cuando una tarea ha agotado su cuanto de tiempo, se la considera caducada y no es elegible de
nuevo para ejecucin hasta que todas las restantes tareas hayan agotado tambin su quantum de
tiempo. El kernel mantiene una lista de todas las tareas ejecutables en una estructura de datos
denominada cola de ejecucin (runqueue).
La planificacin en tiempo real de Linux es todava ms simple. Linux implementa las dos clases
de planificacin de tiempo real requeridas por POSIX.1b: la planificacin FCFS (first-come, firstserved) y la planificacin por turnos (RoundRobin).
Apropiatividad
La forma en que el kernel planifica sus propias operaciones es fundamentalmente distinta de la
forma en que planifica los procesos. Una solicitud para ejecucin en modo kernel puede producirse
de dos formas. Un programa en ejecucin puede solicitar un servicio del sistema operativo, bien
explcitamente mediante una llamada al sistema, o bien implcitamente.
El problema que se le plantea al kernel es que todas estas tareas pueden tratar de acceder a las
mismas estructuras internas de datos.
Antes de la versin 2.6, Linux era un kernel no apropiativo, lo que quiere decir que un proceso que
se estuviera ejecutando en modo kernel no poda ser desalojado, ni siquiera si pasaba a estar
disponible para ejecucin otro proceso de mayor prioridad. Con la versin 2.6, el kernel de Linux
se ha hecho completamente apropiativo, de modo que ahora una tarea puede ser desalojada
cuando se est ejecutando en el kernel.
MS Windows XP
La gestin de procesos en MS Windows XP se produce a distintos niveles, a nivel de microncleo y
a nivel de executive.
Microncleo
La mayor parte del microncleo nunca es descargada de memoria por el mecanismo de
paginacin y su ejecucin nunca puede ser desalojada. Sus principales responsabilidades son la
planificacin de hebras, la implementacin de primitivas de sincronizacin, la gestin de
temporizadores, las interrupciones software (llamadas a procedimientos asncronas y diferidas) y
el despacho de excepciones.
Windows XP utiliza procesos y hebras para estructurar el cdigo ejecutable. Los procesos tienen un
espacio de direcciones de memoria virtual y una serie de informaciones que se utilizan para
inicializar cada hebra. Cada proceso tiene una o ms hebras, cada una de las cuales es una unidad
ejecutable que el kernel se encarga de despachar.
Los seis posibles estados de las hebras son: preparada, lista, en ejecucin, en espera, en
transicin y terminada.
Las prioridades se dividen en dos clases: clase variable y clase de tiempo real.
Cuando se agota el cuanto de tiempo de una hebra, la interrupcin del reloj efecta una llamada a
procedimiento diferida (DPC, deferred procedure call) al procesador en la que se sealiza el final
del cuanto, con el fin de volver a planificar el procesador. Si la hebra desalojada pertenece a la
clase de prioridad variable, su prioridad se reduce. La prioridad no puede nunca reducirse por
126
debajo de la prioridad base. Cuando una hebra de prioridad variable finaliza una operacin de
espera, el despachador aumenta su prioridad.
Executive
Proporciona un conjunto de servicios utilizado por todos los subsistemas de entorno. Para
gestionar las entidades de modo kernel, Windows XP utiliza un conjunto genrico de interfaces que
son manipuladas por los programas en modo usuario. Windows XP denomina a estas entidades
objetos, y el componente del programa ejecutivo que los manipula es el gestor de objetos. Cada
proceso tiene una tabla de objetos que contiene entradas utilizadas para controlar los objetos
usados por el proceso.
El gestor de objetos mantiene el espacio interno de nombres de Windows XP. El gestor de objetos
proporciona interfaces para definir tanto tipos de objetos como instancias de objetos, traduciendo
los nombres a objetos, manteniendo el espacio de nombres abstracto y encargndose de gestionar
la creacin y eliminacin de objetos.
Los nombres pueden ser permanentes o temporales. Un nombre permanente representa una
entidad y un nombre temporal slo existe mientras un proceso posea un descriptor de dicho
objeto.
El administrador de procesos que se encuentra incluido en el Executive, provee servicios para
crear, eliminar y usar procesos, hebras y tareas. No tiene conocimiento sobre relaciones de
parentesco padre/hijo sobre los procesos o jerarquas de procesos.
Cada proceso contiene uno o ms hilos o hebras. Los procesos en s mismos pueden ser agrupados
en unidades ms grandes denominadas objetos tarea. El uso de objetos tarea permite la aplicacin
de lmites en el uso de CPU, tamao del entorno de trabajo y afinidad de procesador en mltiples
procesos en una misma entidad.
El gestor de procesos tambin implementa la entrega y puesta en cola de llamadas a
procedimiento asncronas (APC, asynchronous procedure call) a las hebras. Las APC son utilizadas
por el sistema para iniciar la ejecucin de las hebras, para completar la E/S, para terminar las
hebras procesos y para asociar depuradores.
El soporte de depuracin en el gestor de procesos incluye la capacidad de suspender y reanudar
hebras y de crear hebras que comiencen en modo suspendido.
126