Professional Documents
Culture Documents
UNIDAD 1.-
Podemos definir al Sistema Operativo como la serie de programas, dispuestos ya sea en el software
o en la memoria fija (microcódigo), que hacen al hardware utilizable. El hardware provee “poder
computacional básico”. Los sistemas operativos ponen este poder convenientemente a disposición del
usuario.
También administran con cuidado el hardware para que logre una buena ejecución.
Características de un S.O..-
* Definir la “interfaz del usuario”.
* Permitir a los usuarios compartir los datos entre ellos.
* Un S.O. debe permitir la concurrencia de procesos, solapándose el tiempo de E/S con el de cálculo
y ocupando la memoria con varios programas.
* La posibilidad de compartir recursos y la planificación de los mismos entre los distintos usuarios, a
muy distintos niveles, debe ser solucionada por el S.O.
* Es básico que cualquier proceso pueda ejecutarse en el momento que se solicite, con tal de que
haya suficientes recursos libres para él.
* El primer objetivo es la eficiencia del sistema. Esta eficiencia se mide sobre muy diversas
magnitudes, como son:
+ Tiempo medio que ocupa cada trabajo: tiende a reducirse.
+ Tiempo con la CPU no utilizada: tiende a reducirse.
+ Tiempo de respuesta en sistemas multiacceso: tiende a reducirse.
+ Utilización de recursos en general, tales como: CPU, dispositivos de E/S, etc.. Tiende a
aumentarse.
+ Plazo entre dos asignaciones de CPU a un mismo programa: tiende a reducirse.
* Una característica importante es la fiabilidad. El S.O. no debe tener errores y debe prever todas las
posibles situaciones (recuperación de errores).
* Se desea que el S.O. sea de tamaño pequeño.
1.1.6 Multisesión.-
Los sistemas operativos de éste tipo, permiten acceso simultáneo a un sistema informático desde
dos o más terminales. En general, la operación multiacceso no implica necesariamente multiprogramación.
Un ejemplo es el proporcionado por algunos sistemas dedicados para procesamiento de transacciones, tales
como los sistemas de reservas aéreas, que soportan centenares de terminales.
Procesos.-
Un proceso es una secuencia temporal de ejecuciones de instrucciones que corresponde a la
ejecución de un programa secuencial.
Un usuario entrega su trabajo a la computadora. El trabajo del usuario está compuesto de varios
programas; por tanto, la primera misión del gestionador de trabajos, es dividir el trabajo entregado en
programas. El programador ha de entrar algún tipo de contraseña en el comienzo de cada programa. Una
vez identificados los programas, entra en ejecución el gestionador de procesos que divide cada programa en
procesos, como el proceso de CPU, el de E/S, etc. Los procesos de CPU, si no caben en memoria principal,
se dividen en otros procesos más pequeños, los cuales se identifica, por ejemplo, con los subprogramas
definidos por el usuario. Y así, sucesivamente, se puede ir reduciendo el tamaño de los procesos. Algunos
autores utilizan indistintamente el término proceso y el de tarea.
Archivos.-
Un archivo es una colección de unidades de información (registros) relacionadas. La gestión de
archivo se refiere al almacenaje y recuperación de la información confiada al sistema, de forma semejante a
una biblioteca.
Las funciones básicas de la gestión de archivos son:
1.- Llevar control de la información dentro del sistema mediante varias tablas,. La tabla principal
representa el directorio de archivos. Estas tablas contienen el nombre, localización y derechos de acceso de
toda la información dentro del sistema.
2.- Decidir la política para determinar cómo y dónde se reserva la información y quien tiene acceso
a ella.
3.- Escoger el periférico que contiene la información. Encontrar la información deseada, hacer
posible el acceso del proceso a esa información y determinar los derechos propios de acceso.
4.- Designar el recurso. Si el usuario ha hecho las operaciones correspondientes y no va a hacer
más, se puede actualizar el archivo original de esa información para el uso posible de otros procesos.
Los módulos de gestión de archivos se conocen, a veces, como sistema de archivos. Cada nivel del
sistema de archivos sigue las técnicas de programación estructurada, es decir, sólo depende de los niveles
inferiores y sólo hace llamadas hacia abajo.
Se pretende que el sistema de archivos proporcione la gestión conveniente, tanto de información
permanente como temporal. El programador queda liberado en sus programas de cosas tales como la
asignación de espacio para su información, formatos de almacenaje físico y accesos de E/S. Un objetivo del
sistema de archivos es permitir al programador preocuparse solamente por la estructura lógica de su
programa y por las operaciones realizadas en el proceso de su información. Los sistemas de archivos
también pueden permitir compartir la información entre los usuarios y proteger la información del acceso
no autorizado.
Llamadas de Sistema.-
Los programadores de aplicaciones y sistemas suelen invocar servicios del sistema operativo desde
sus programas por medio de llamadas al sistema, lo que a veces se denomina interfaces de programación de
aplicaciones (API, application-programming interfaces). Las órdenes de sistema emitidas por los usuarios
del lenguaje de órdenes suelen ser traducidas y se ejecutan como una serie de llamadas al sistema. Además
de proporcionar la mayor parte de la funcionalidad disponible a los usuarios del lenguaje de órdenes, las
llamadas al sistema permiten generalmente un control más detallado sobre las operaciones del sistema y un
acceso más directo a las facilidades hardware, especialmente al sistema de entrada/salida.
Excepto por algunas de las operaciones de apertura de sesión y de las funciones de gestión del
sistema, las llamadas al sistema representan generalmente un superconjunto de las funciones disponibles al
nivel de órdenes.
Las llamadas al sistema para ejecución y control de programas incluyen generalmente un conjunto
completo de los servicios disponibles mediante el lenguaje de órdenes, tales como EJECUTAR, ABORTAR
y planificar con respecto al tiempo. Además, los usuarios de llamadas al sistema pueden SUSPENDER uno
o más programas hasta que ocurra una condición específica, REANUDAR programas previamente
suspendidos y definir o modificar varios atributos de tiempo de ejecución de los programas. Suelen existir
también algunas facilidades, con frecuencia extensas en sistemas de tiempo real, para comunicación y
sincronización entre programas.
Las llamadas al sistema para gestión de recursos proporcionan servicios para asignación, reserva y
reclamación de los recursos del sistema.
El Shell.-
Los usuarios de UNIX invocan órdenes interactuando con un interprete del lenguaje de órdenes
llamado shell. Además de interpretar las peticiones de usuario y de invocar los servicios de sistema
correspondientes, el shell es también un lenguaje de programación adecuado para la construcción de
archivos de órdenes elaborados, llamados guiones shell. El shell está descrito como un proceso de usuario,
en vez de estar incorporado al núcleo. Cuando un usuario inicia una sesión, el sistema invoca una copia del
shell para manejar las interacciones con el usuario asociado. Aunque el shell es la interfaz estándar del
sistema es posible invocar cualquier otro proceso especificado por el usuario para que ocupe el lugar del
shell como interfaz del sistema para cada usuario particular.
Si describimos al shell en su papel de intérprete del lenguaje de órdenes, podemos decir que
soporta redirección de E/S, cauces y ejecución concurrente de programas de usuario.
Resumiendo, podemos decir que el shell es el mecanismo del sistema UNIX para la comunicación
entre los usuarios y el sistema. Es u n interprete de mandatos que lee las líneas tecleadas por el usuario y
causa la ejecución de las características del sistema solicitadas. El shell no tiene residencia permanente en
la memoria principal como el núcleo, puede intercambiarse cuando sea necesario. Es un programa de
aplicación y a menudo se escriben shells personalizados.
II SISTEMA DE COMPUTO.-
Computadora
a) Mayor Complejidad
Computadora
b) Nivel Procesador
Registros Registro
c) Nivel registro
El tiempo de acceso
al almacenamiento decrece
Almacenamiento
cache La UCP puede hacer
referencia directa a los
La velocidad de acceso al programa y a los datos
almacenamiento aumenta Almacenamiento
primario
PROCESOS.-
ESTADOS DE PROCESO.-
Durante su existencia, un proceso pasa por una serie de estados discretos. Varias circunstancias
pueden hacer que un proceso cambie de estado.
Se dice que un proceso se esta ejecutando (en estado de ejecución), si tiene en ese momento la
CPU. Un proceso se dice que está listo (en estado de listo), cuando podría usar una CPU, si hubiera una
disponible. Se dice que proceso está bloqueado (estado de bloqueado), si espera que ocurra algo (como la
terminación de una entrada/salida) para ponerse en marcha. Hay más estados de proceso, pero éstos son los
más importantes.
Si consideramos un sistema de una CPU por simplicidad (aun cuando es sencillo llevar el ejemplo al
multiprocesamiento). En este ejemplo, sólo puede haber corriendo un solo proceso, pero puede haber varios
procesos listos y varios más bloqueados. Por tanto, existe una lista de listos, y una lista de bloqueados.
La lista de listos se mantiene en orden prioritario, para que el siguiente proceso que reciba el CPU
sea el primer proceso de la lista. La lista de bloqueados está desordenada –los procesos no se desbloquean
(o sea no quedan listos) en orden prioritario; en lugar de ésto los procesos se desbloquean en el orden en que
tienen lugar los eventos que están esperando.
Por ejemplo, un proceso que estaba en la cola de listos, y le tocó por estar en la cabeza de la lista,
que lo atienda el CPU, pasa a estar en estado de ejecución, pero si dentro de sus intrucciones tiene una
llamada a un proceso de impresión y la impresora está ocupada, deja por si mismo el estado de ejecución y
pasa al estado de bloqueado. De esta forma pasa a ser parte de la lista de bloqueados, pero aquí no importa
el orden en que llegó, si la impresora que requiere se desocupa después de que otros procesos que llegaron
mas tarde que él a la lista de bloqueados, hasta ese momento se desbloqueara y pasará nuevamente a la cola
de listos.
Mientras el proceso tenga el CPU se dice que está en ejecución. Para prevenir que cualquier
proceso monopolice el sistema, ya sea de manera accidental o maliciosamente, el sistema operativo ajusta
un reloj de interrupción del hardware para permitir al usuario ejecutar su proceso durante un intervalo de
tiempo específico o cuanto (quantum). Si el proceso no abandona voluntariamente el CPU antes de que
expire el intervalo, el reloj genera una interrupción, haciendo que el sistema operativo recupere el control.
El sistema operativo, entonces, hace que el proceso que anteriormente se hallaba en estado de ejecución
pase al de listo, y hace que el primer proceso de la lista de listos pase al estado en ejecución. Esta transición
de estado se indica como:
Y
Despacho(nombre del proceso); listo ---- en ejecución
Si un proceso que se encuentra en estado de ejecución inicia una operación de entrada/salida antes
de que termine su cuanto, el proceso voluntariamente abandona la CPU (es decir, el proceso se bloquea a sí
mismo hasta la terminación de la operación de entrada/salida). Esta transición de estado es:
La única otra transición posible en este modelo de tres estados ocurre cuando acaba una operación
de entrada/salida (o alguna otra causa por la que esté esperando el proceso). El proceso cambia del estado
bloqueado al estado listo. La transición es:
Debemos observar que la única transición de estado iniciada por el propio proceso del usuario es el
bloqueo; las otras tres transiciones son iniciadas por entidades ajenas al proceso.
TRANSICIONES DE ESTADO DE PROCESO
En ejecución
despacho Bloqueo
Tiempo
excedido
Listo Bloqueado
Despertar
El PCB es un almacenamiento central de información que permite al sistema operativo localizar toda la
información clave sobre el proceso. Cuando el sistema operativo cambia la atención del CPU entre los
procesos, utiliza las áreas de preservación del PCB para mantener la información que necesita para
reiniciar el proceso cuando consiga de nuevo el CPU.
De tal manera, que el PCB es la entidad que define un proceso al sistema operativo.
Los sistemas que administran los procesos deben ser capaces de realizar ciertas operaciones sobre los
procesos. Estos incluyen:
• Crear un proceso.
• Destruir un proceso.
• Suspender un proceso.
• Reanudar un proceso.
• Cambiar la prioridad de un proceso.
• Bloquear un proceso.
• Despertar un proceso.
• Despachar un proceso.
La creación de un proceso implica varias operaciones, incluyendo:
- Tipos de Planificadores: En general, existen tres tipos diferentes de planificadores que pueden
coexistir en un sistema operativo complejo: planificadores a largo plazo, a medio plazo y a
corto plazo.
Planificador a medio plazo Cola de suspendidos
y retirados
Planificador a largo plazo
Cola de Suspendidos
El planificador a largo plazo, cuando está presente, trabaja con la cola de lotes y selecciona el siguiente
trabajo de lotes a ejecutar. Los lotes están generalmente reservados a programas de baja prioridad y de
uso intensivo de recursos (tiempo de procesador, memoria, dispositivos especiales de E/S), que pueden
ser utilizados como rellenos para mantener los recursos de memoria ocupados durante periodos de baja
actividad de los trabajos interactivos. Los trabajos de lotes contienen todos los datos y órdenes
necesarios para su ejecución. Contienen también generalmente estimaciones asignadas por el
programador o por el sistema con respecto a sus necesidades de recursos, tales como tamaño de
memoria, tiempo de ejecución esperado y necesidades de dispositivos. El conocimiento sobre el
comportamiento anticipado del trabajo facilita la tarea del planificador a largo plazo.
El objetivo primordial del planificador a largo plazo es proporcionar una mezcla equilibrada de
trabajos, tales como limitados por el procesador y limitados por la E/S, al planificador a corto plazo.
Por ejemplo, cuando la utilización del procesador es baja, el planificador puede admitir más trabajos
para incrementar el número de procesos que se hallen en la cola de preparados, y con ello la
probabilidad de disponer de alguna operación útil que espere asignación del procesador. Por el
contrario, cuando el factor de utilización resulte alto y así lo refleje el deterioro del tiempo de
respuesta, el planificador a largo plazo puede optar por reducir la frecuencia de admisión de los
trabajos por lotes. Además, el planificador a largo plazo es invocado generalmente cada vez que un
trabajo completado abandona el sistema. La frecuencia de invocación del planificador a largo plazo es
por tanto dependiente del sistema y de la carga de trabajo; pero generalmente es mucho más baja que
para los otros dos tipos de planificadores. Por lo anterior este tipo de planificador incorpora algoritmos
relativamente complejos y computacionalmente intensivos para admitir trabajos al sistema.
En términos del diagrama de transición de estado de procesos, el planificador a largo plazo está
básicamente al cargo de las transiciones de inactivo a preparado. Los procesos preparados se colocan
en la cola de preparados (o listos) para ser considerados por el planificador a corto plazo.
Después de ejecutarse durante un tiempo, un proceso en ejecución puede resultar suspendido al efectuar
una petición de E/S o al emitir una llamada al sistema. Dado que los procesos suspendidos no pueden
progresar hacia su terminación hasta que la condición de suspensión sea eliminada, a veces es
beneficioso retirarlos de memoria principal para dejar sitio a otros proceso.
El planificador medio plazo tiene la misión de manejar los procesos retirados, y tiene bien poco
que hacer mientras un proceso permanezca suspendido. Sin embargo, una vez desaparecida la
condición de suspensión de un proceso, el planificador a medio plazo, intenta asignarle la cantidad
necesaria de memoria principal, incorporarlo a memoria y volverlo a dejar preparado. Para funcionar
adecuadamente, el planificador a medio plazo debe disponer de información respecto a las necesidades
de memoria de los procesos retirados, lo cual no suele ser difícil de llevar a la práctica, ya que el
tamaño real del proceso puede ser contabilizado en el momento de la retirada y almacenado
posteriormente el bloque de control del proceso afectado.
En términos del diagrama de transiciones de estado, el planificador a medio plazo controla las
transiciones de suspendido a preparado de los procesos retirados. Este planificador puede ser invocado
cuando quede espacio libre de memoria por efecto de la terminaciónde un proceso o cuando el
suministro de procesos preparados caiga por debajo de un ñlímite especificado.
En la práctica, el planificador a corto plazo es invocado cad que un suceso (interno o externo) hace
que se modifique el estado global del sistema. Algunos de los sucesos que provocan replanificación en
virtud de su capacidad de modificar el estado global del sistema son:
En general, cada vez que ocurre uno de estos sucesos, el sistema operativo invoca al planificador a
corto plazo para determinar si debería planificarse otro proceso para ejecución.
El planificador a largo plazo no se encuentra normalmente en sistemas sin soporte para lotes, y el
planificador a medio plazo sólo es necesario cuando se utiliza intercambio de memoria en el sistema
operativo subyacente. La carga de trabajo para el planificador a corto plazo la preparan los
planificadores a largo y medio plazo. Si éstos no proporcionan una mezcla equilibrada de procesos
limitados por cálculo y limitados por E/S, no es probable que el planificador a corto plazo rinda bien
sin importar cuán sofisticado pueda ser por sí mismo.
Entre las medidas de rendimiento y los criterios de optimización más habituales que los
planificadores pueden utilizar en su intento de maximizar el rendimiento del sistema se incluyen:
1.- Utilización del procesador.
2.- Productividad.
3.- Tiempo de retorno.
4.- Tiempo de espera.
5.- Tiempo de respuesta.
1.- la utilización del procesadores la fracción de tiempo promedio durante la cual el procesador
está ocupado. Estar ocupado se refiere generalmente a que el procesador no está inactivo, e incluye
tanto el tiempo empleado ejecutando programas de usuario como ejecutando el sistema operativo.
3.- El tiempo de retorno, R, se define como el tiempo que transcurre desde el momento en que un
programa o trabajo es remitido hasta que es completado por un sistema. Es el tiempo
consumidodentro del sistema, y puede ser expresado como la suma del teimpo de servicio (tiempo
de ejecución) y el tiempo de espera del trabajo.
4.- Tiempo de espera, E, es el tiempo que un proceso o trabajo consume esperando la asignación de
recursos debido a la competencia con otros en un sistema de multiprogramación. En otras palabras,
el tiempo de espera es la penalidad impuesta por compratir recursos con otros procesos. El teimpo
de espera puede expresarse como el tiempo de retorno menos el tiempo de ejecución efectivo:
E(x) = R(x) –x
Donde x es el tiempo de servikcio, E(x) es el tiempo de espera del trabajo que requiere x unidades
de servicio y R(x) es el tiempo de retorno del trabajo.
5.- El tiempo de respuesta en sistemas interactivos se define como el tiempo que transcurre desde
el momento en que se introduce el último carácter de una línea de orden que desencadena la
ejecución de un programa o una transacción hasta que aparece el primer resultado en el terminal.
Generalmente se le denomina tiempo de respuesta de terminal. En sistemas de tiempo real, por otra
parte, el tiempo de respuesta es esencialmente latencia. Se define como el tiempo que transcurre
desde el momento en que un suceso (interno o externo) es señalado hasta que se ejecuta la primera
instrucción de su correspondiente rutina de servicio. A este tiempo se le suele denominar tiempo de
respuesta a suceso.
- Algoritmos de Planificación.-
En general, las disciplinas de planificación pueden ser expropiativas o no expropiativas. En lotes,
la no expropiación implica que, una vez planificado, un trabajo seleccionado sigue ejecutándose
hasta su terminación. Para la planificación a corto plazo, la no expropiación implica que el proceso
en ejecución retiene la propiedad de los recursos asignados, incluido el procesador, hasta que
voluntariamente ceda control al sistema operativo. En otras palabras, el proceso en ejecución no se
ve obligado a ceder la propiedad del procesador cuando un proceso de prioridad mayor pase a estar
preparado para ejecución. Sin embargo, vcuando el proceso en ejecución quede suspendido como
resultado de su propia acción, digamos, por esperar la terminación de una operación de E/S, otro
proceso preparado puede ser planificado.
Con planificación expropiativa, por otra parte, un proceso en ejecución puede ser
sustituido por un proceso de mayor prioridad en cualquier instante. La planificación expropiativa
responde generalmente mejor a las evoluciones de los procesos, pero impone un mayor recargo ya
que cada replanificaciónsupone una conmutación de proceso completa.
1.- Planificación FCFS (Firts-Come, Firts-Served).-
La disciplina de planificación más sencilla es con mucho la FCFS o primero en llehgar,
primero en ser atendido. La carga de trabajo se procesa simplemente en orden de llegada, sin
expropiaciones. La implementación del planificador FCFS es bastante directas,y su ejecución da
lugar a pocos recargos.
Por no tener en consideración el estado del sistema ni las necesidades de recursos de las
entidades de olanificación individuales , la planificación FCFS puede dar lugar a pobres
rendimientos. Como consecuencia de la no expropiación, la utilización de componentes y la tasa
de productividad del sistema puede ser bastante baja. Como no existe discriminación en base al
servicio solicitado, los trabajos cortos pueden sufrir considerables retrasos en los tiempos de
retorno y de espera cuando hay uno o más trabajos largos en el sistema. Por ejemplo, consideremos
un sistema con dos trabajos, T1 y T2, siendo los tiempos de ejecución totales de 20 y 2 unidades de
tiempo respectivamente,. Si llegan seguidos uno del otroen el orden T1-T2, los tiempos de retorno
son 20 y 22 unidades de tiempo, respectivamente (T2 debe esperar a que T1 termine), obteniéndose
un promedio de 21 unidades de tiempo. Los tiempos de espera correspondientes son 0 y 20
unidades, resultando un promedio de 10 unidades de tiempo. Sin embargo, si los dos mismos
trabajos llegan en el orden opuesto, T2-T1, el tiempo de retorno medio cae a 11 unidades, y el
tiempo medio de espera es de sólo 1 unidad de tiempo. Este sencillo ejemplo demuestracómo los
trabajos cortos pueden verse afectados por los trabajos largos en los sistemas FCFS, además de la
potencialvariabilidad de los tiempos de retorno y espera de una pasada a otra.
SRTN es una disciplina de planificación probadamente óptima en cuanto que minimiza el tiempo
medio de espera de una carga de trabajo determinada. La planificación SRTN se efectúa de una manera
consistente y predecible, favoreciendo los atrabajos cortos. Añadiendo la expropiación, una planificación
SRTN puede acomodar trabajos cortos que lleguen después de comenzar un trabajo . El tratamientoi
preferencial de los trabajos cortos en SRTN tiende a aumentar los tiempos de espera de los trabajos largos
en comparación con la planificación FCFS, pero esto suele ser aceptable.
La planificación por reparto de tiempo logra una compartición equitativa de los recursos del
sistema. Los procesos cortos pueden ser ejecutados dentro de una única cuota de tiempo y por tanto exhiben
buenos tiempos de respuesta. Los procesos largos pueden requerir varias cuotas y por tanto ser forzados a
circular a través de la cola de preparados unas cuantas veces antes de terminar. Con la planificación RR, el
tiempo de respuesta de los procesos largos es directamente proporcional a sus necesidades de recurso.
Procesamiento en Paralelo.-
A medida que disminuyen tanto el tamaño como el precio del hardware de los computadores se va
produciendo una tendencia hacia el multiprocesamiento y la masificación del paralelismo. Si
ciertas operaciones pueden ser ejecutadas en paralelo de forma lógica, entonces las computadoras
las ejecutarán físicamente en paralelo, aunque en el nivel de paralelismo se den miles o, tal vez,
millones de actividades concurrentes.
Es difícil determinar cuáles actividades pueden ejecutarse o no en paralelo. Los programas
en paralelo son mucho más difíciles de depurar que los programas secuenciales.
Los procesos asincrónicos deben interactuar ocasionalmente entre sí, y esas interacciones
pueden ser complejas.
Parbegin
Proposición1;
Proposición2;
.
.
proposición n;
parend
Aquí se ejecutan de una en una cada una de las nueve operaciones en una secuencia determinada
por las reglas de un sistema de precedencia de operador.
En un sistema que soporte procesamiento en paralelo, la expresión puede evaluarse de la siguiente
manera:
1 parbegin
temp1:=-b
temp2:=b**2
temp3:=4*a
temp4:=2*a
parend
2 temp5:=temp3*c
3 temp5:=temp2-temp5
4 temp5:=temp5**.5
5 temp5:=temp1+temp5
6 x:=temp5/temp4