You are on page 1of 15

INSTITUTO TECNOLÓGICO DE OAXACA.

Materia: SISTEMAS OPERATIVOS.- Profesor: Ing. Claribel Benítez Quecha.

UNIDAD 1.-

1.1.2 Noción de Sistema Operativo (S.O.).-

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.

Funciones de los S.O..-


* Aceptar los trabajos y conservarlos hasta su finalización.
* Interpretar el lenguaje de control.
* Detectar errores y actuar de modo apropiado en caso de que se produzcan.
* Controlar las operaciones de E/S.
* Controlar las interrupciones.
* Planificar la ejecución de tareas.
* Asignación de recursos.
* Entregar (o retirar) recursos a (o de) las tareas.
* Proteger contra el acceso indebido de los programas a la memoria.
* Soportar la carga del multiacceso.
* Proporcionar al operador un sencillo manejo de todo el sistema.
* Disponer de un sistema de contabilidad del uso de los recursos.

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.

Los recursos clave que un S.O. administra son:


* Los procesadores.
* El almacenamiento.
* Los dispositivos de entrada/salida.
* Los datos.

El S.O. es una interfaz con:


* Los operadores del computador.
* Los programadores de aplicaciones.
* Los programadores de sistemas.
* El personal administrativo.
* Los programas.
* El Hardware.
* Los usuarios.

1.1.3 Noción de Plataforma.-


Una plataforma es una base sólida, consistente, segura y adecuada para desarrollar e impulsar todo
tipo de actividades.

1.1.4 Sistema Monousuario.-


Son los sistemas de un solo usuario. En este tipo de sistema, los recursos del sistema informático
pueden estar dedicados a un solo programa hasta que éste termine. Sin embargo, esto no impide que un
solo usuario pueda realizar varias tareas a la vez.

1.1.5 Sistema Multiusuario.-


Se denominan así los sistemas operativos que soportan múltiples usuarios a la vez. Estos sistemas
proporcionan facilidades para entornos de usuarios individuales, requieren validación de usuario para
seguridad de protección y proporcionan contabilidad de uso de los recursos por usuario. Los sistemas
operativos de multiprogramación soportan generalmente múltiples usuarios. En general, éste tipo de
sistemas se caracterizan por una multitud de programas activos simultáneamente que compiten por los
recursos del sistema, tales como procesador, memoria y dispositivos de E/S. Los sistemas operativos de este
tipo vigilan el estado de todos los programas activos y de todos los recursos del sistema. Cuando se
producen cambios importantes de estado, o cuando es invocado explícitamente, el sistema operativo se
activa para asignar recursos y proporcionar ciertos servicios de su repertorio.

Los sistemas de tiempo compartido son populares representantes de los sistemas


multiprogramados, multiusuario. Uno de los objetivos esenciales de los sistemas multiusuario en general, y
de los de tiempo compartido en particular, es el de proporcionar un buen tiempo de respuesta de terminal.
Dando la ilusión a cada usuario de disponer de una máquina para sí mismo, los sistemas de tiempo
compartido intentan con frecuencia lograr una compartición equitativa de los recursos comunes.

Como en la mayoría de los entornos multiusuario, la asignación y desasignación de dispositivos


debe ser efectuada de manera que preserve la integridad del sistema y proporcione un buen rendimiento.
Dada la posibilidad de intentos concurrentes y posiblemente conflictivos de acceder a archivos, la
gestión de archivos en un sistema de tiempo compartido debe proporcionar protección y control de acceso.
Así como la gestión de E/S debe ser suficientemente sofisticada para tratar con múltiples usuarios y
dispositivos.

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.

1.1.7 Multitasking (Multitarea).-


Un sistema operativo multitarea, se distingue por su capacidad para soportar la ejecución
concurrente de dos o más procesos activos. La multitarea se implementa generalmente manteniendo y los
datos de varios procesos simultáneamente en memoria, y multiplexando el procesador y los dispositivos de
E/S entre ellos. La multitarea suele asociarse con soporte hardware y software para protección de memoria
con el fin de evitar que procesos erróneos corrompan el espacio de direcciones y el comportamiento de
otros procesos residentes.
La multitarea también es conocida como multiprogramación. Los beneficios potenciales de la
ejecución concurrente de programas incluyen el aumento del rendimiento, de la utilización de los recursos y
de la velocidad de respuesta de un sistema informático.
La potencia de los procesos concurrentes se halla en que se pueden especificar las secuencias de
código que pueden ser ejecutadas concurrentemente, permitiendo con ello al sistema operativo explotar el
posible paralelismo de un entorno dado.
Sin embargo, la programación concurrente incrementa claramente la complejidad de la
implementación. El diseño con múltiples procesos requiere más depuración que el diseño secuencial debido
a las complejidades de sincronización inexistentes en el código secuencial.

1.1.8 Sistema Operativo de Red.


El sistema operativo es el programa a través del cual los demás programas usan los recursos de la
red.
En los sistemas entre pares, las estaciones trabajan bajo DOS y el sistema operativo es un residente
que funciona como una extensión del mismo; el residente es de mayor tamaño si la estación funciona
también como anfitrión. Casi siempre, los sistemas operativos entre pares se basan en DOS 3.1 (o superior)
y NETBIOS.
En los sistemas basados en servidores, la situación es distinta en el servidor que en las estaciones.
El sistema operativo del servidor puede ser especial (caso del NetWare) o trabajar como una extensión de
otro sistema operativo (por ej.: el LAN Manager trabaja bajo OS/2). Generalmente el servidor no trabaja
bajo DOS ya que el DOS no es ni multiusuario ni multiproceso y está limitado a manejar 640K de RAM.
Esto es consecuencia de no usar al 80286 (o superiores) en modo protegido. Las estaciones trabajan en
forma similar a los sistemas entre pares con la salvedad de que no pueden ofrecer recursos para compartir.
Lo importante es que desde las estaciones el server se vea igual que un disco local bajo DOS. En el caso de
sistemas mezclados (PCs con otros tipos de máquinas),
cada máquina debe correr su propio sistema operativo y, además, ver al server como si fuera parte
de ella.

1.1.9 Sistema Operativo Distribuido.-


Un sistema operativo distribuido es una colección de sistemas informáticos autónomos capaces de
comunicación y cooperación mediante interconexiones hardware y software. Históricamente, los sistemas
computadores distribuidos evolucionaron a partir de las redes de computadores en las que un número de
equipos en gran medida independientes están conectados mediante enlaces y protocolos de comunicación.
Un sistema operativo distribuido gobierna la operación de un sistema informático distribuido y
proporciona una abstracción de máquina virtual a sus usuarios. El objetivo clave de un sistema operativo
distribuido es la transparencia. Idealmente, la distribución de componentes y recursos debería quedar oculta
a los usuarios y a los programas de aplicación a menos que éstos demanden explícitamente lo contrario.

1.1.10 Sistemas Abiertos.-


Los sistemas computacionales basados en interfaces estándares tales como OSI son nombrados
Sistemas Abiertos.
Un sistema abierto estándar es una especificación de interface para la cual cualquier vendedor
puede construir productos.
Existen 2 puntos importantes: primero, las especificaciones simplemente definen una interface;
segundo, las especificaciones son útiles para cualquier vendedor y envuelve un proceso consensado que es
abierto para la industria entera.
El término “abierto” también aplica a 2 diferentes aspectos del ambiente de las
telecomunicaciones: los requerimientos que permiten que múltiples vendedores tengan igual acceso a las
redes; y las plataformas open systems basadas en estándares, que son usados en la construcción de
aplicaciones para computadoras para los nuevos ambientes de telecomunicaciones abiertos.
Una de las metas de los ambientes open systems es un conjunto de estándares y especificaciones
públicas diseñadas para proveer software portable e interoperable.
La interoperabilidad se refiere a la capacidad de las aplicaciones para correr en diferentes
computadoras para intercambiar información y operar cooperativamente usando esta información.
Portabilidad se refiere a la capacidad del software para correr en diferentes tipos de hardware.

1.1.12 Conceptos de Sistema Operativo: Procesos, Archivos, Llamadas de Sistema, Shell.

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.

Fig.1.- Niveles Típicos de un Sistema de Archivos


________________________________________________________________
SISTEMA DE ARCHIVO SIMBÓLICO
________________________________________________________
SISTEMA DE ARCHIVO BÁSICO
___________________________________________________
PROTECCIÓN
_____________________________________________
SISTEMA DE ARCHIVO LÓGICO
______________________________________
SISTEMA DE ARCHIVO FÍSICO
_______________________________
ESTRATEGIAS DE DISPOSITIVO
_______________________________________________________________________________________
SISTEMA DE ARCHIVOS

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

1.2.1. Partes Principales.-


Hardware.-
- El CPU.
- Los dispositivos Periféricos.
- Los Buses.
Software.-
- Software de Sistema
- Software de Aplicación.
Usuarios.-
- Expertos.
- Usuarios de aplicación.

1.2.2. El Microprocesador: Nivel de Bloques y Nivel Semiconductor.-

Computadora

a) Mayor Complejidad

Computadora

Unidad de procesamiento Memoria


central (CPU) principal
E/S E/S E/S

b) Nivel Procesador

Unidad de Procesamiento Central (CPU)

Unidad Aritmético-Lógica Unidad de


(ALU/UAL) Control

Registros Registro

c) Nivel registro

En la figura a) la computadora completa se considera como un sistema de un componente,


representado por un diagrama de bloques compuesto por un único bloque. Este es el nivel de complejidad
superior.

La figura b) muestra la computadora como un sistema de cinco componentes. Los componentes re


conocidos a este nivel son: la unidad de procesamiento central (CPU), que es el componente responsable
de la ejecución de las instrucciones; la memoria principal, usada para almacenar instrucciones que están a la
espera de ejecutarse, y los dispositivos de E/S.
En la figura c) una de las unidades anteriores, la CPU, es, además, descompuesta en un sistema que
contiene: unos dispositivos de memoria temporal denominados registros; una unidad de control y un
circuito de procesamiento de datos, denominado unidad aritmético-lógica o ALU, que efectúa la mayoría
de las operaciones especificadas por las intrucciones de la computadora.

1.2.4. Almacenamiento de Información.-

Fig 2. Organización Jerárquica del Almacenamiento

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

El costo de almacenamiento La UCP sólo podrá hacer


por bit aumenta. referencia a los programas
Almacenamiento y datos después de haber
secundario sido trasladados al alma-
La capacidad de almacena- iento primario.
miento decrece.

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.

TRANSICIONES DE ESTADO DE PROCESO.-

Cuando un trabajo es admitido en el sistema, se crea un proceso equivalente, y es insertado en la


ultima parte de la lista de listos. El proceso se va moviendo gradualmente hacia la cabeza de esta relación a
medida que se completan los procesos anteriores. Cuando el proceso llega a la cabeza de la lista, y cuando
el CPU se encuentre disponible, el proceso recibe el CPU, y se dice que existe una transición de estado, del
estado listo al estado en ejecución. La asignación de la CPU al proceso de la lista de listos es llamado
despacho, y es e ejecutado por la entidad del sistema llamado despachador (dispatcher). Esta transición se
indica de la siguiente manera:

Despacho(nombre del proceso): listo ----- en ejecución.

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:

Tiempo excedido(nombre del proceso):en ejecución ---- listo

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:

Bloqueo(nombre del proceso): en ejecución --- bloqueado

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:

Despertar(nombre del proceso): bloqueado ------ > listo

Con esto podemos definir cuatro posibles transiciones de estado:

Despacho(nombre del proceso); listo ---- en ejecución


Tiempo excedido(nombre del proceso):en ejecución ---- listo
Bloqueo(nombre del proceso): en ejecución --- bloqueado
Despertar(nombre del proceso): bloqueado ------ > listo

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 BLOQUE DE CONTROL DE PROCESO.-

La manifestación de un proceso en un sistema operativo es un bloque de control de proceso (PCB).


El PCB es una estructura de datos que contiene cierta información importante acerca del proceso,
incluyendo:

Estado actual del proceso


• Identificación única del proceso
• Prioridad del proceso.
• Apuntadores para localizar la memoria del proceso (donde está almacenado).
• Apuntadores para asignar recursos (los que vaya a requerir el proceso: ram, impresoras, etc.)
• Area para preservar registros (status del proceso).

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.

OPERACIONES SOBRE PROCESOS.-

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:

• dar nombre al proceso.


• Insertar un proceso en la lista del sistema de procesos conocidos.
• Determinar la prioridad inicial del proceso.
• Crear el bloque de control de proceso.
• Asignar los recursos iniciales del proceso.

2.1.2 PROCESOS SECUENCIALES.-

La planificación hace referencia a un conjunto de políticas y mecanismos incorporados al sistema


operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por
el sistema informático. Un planificador es un módulo del SO que selecciona el sgte. trabajo que
hay que admitir en el sistema y el siguiente proceso que hay que ejecutar. El objetivo primario de
la planificación es optimizar el rendimiento del sistema de acuerdo con los criterios considerados
más importantes por los diseñadores del sistema.

- 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

Lote de ---- Cola de Lotes Cola de Preparados CPU Terminación


Trabajos
Programas
Interactivos

Cola de Suspendidos

a) Planificador a largo plazo.-

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.

b) Planificador a medio 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.

C) Planificador a Corto Plazo.-

El planificador a corto plazo asigna el procesador entre el conjunto de procesos preparados


residentes en memoria. Su principla objetivo es maximizar el rendimiento del sistema de acuerdo con el
conjunto de criterios elegidos. Al estar a cargo de las transiciones de estado de preparados (listos) a
ejecución, el planificador a corto plazo debe ser invocado en cad conmutación de proceso para seleccionar
el siguiente proceso a ejecutar.

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:

• Tics de reloj (interrupciones basadas en el tiempo)


• Interrupciones y terminaciones de E/S.
• La mayoría de las llamadas operacionales al SO .
• El envío y recepción de señales.
• La activación de programas interactivos.

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.

- Criterios de Planificación y Rendimiento.-

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.

El planificador también debe tratar de aportar imparcialidad, predecibilidady


repetibilidad, de modo que cargas de trabajo similares exhiban comportamientos similares.

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.

2.- La productividad se refiere a la cantidad de trabajo completada en una unidad de tiempo. Un


modo de expresar la productividad es dpor medio del número de trabajos de usuario ejecutados en
una unidad de tiempo. Mientras mayor sea este número, más trabajo aparentemente está siendo
ejecutado por el sistema.

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.

2.- Planificación SRTN (Shortest Remaining Time Next).-


La planificación SRTN (a continuación el de menor tiempo restante) es una disciplina en
la que la siguiente entidad de planificación, trabajo o proceso, se selecciona sobre la base del menor tiempo
de ejecución restante. La planifiaicación SRTN puede ser implementada en su variedad expropiativa o no
expropiativa. La versión no expropiativa de SRTN se denomina “primero el trabajo más corto”(SJF,
shortest job first). En cualquier caso, cad vez que se invoca al planificador SRTN, éste busca en la
correspondiente cola (de lotes o de preparados) el trabajo o proceso con el menor tiempo de ejecución
restante. La dieferncia entre los dos casos se encuentra en las condiciones que conducen a la inocación del
planificador y, en consecuencia, en su frecuencia de ejecución. Sin expropiación, el planificador es
invocado cada vez que se completa un trabajo o que el proceso en ejecución cede el control al SO. En la
versión expropiativa, cada vez que ocurre un suceso que hace que un nuevo proceso esté preparado, se
invoca al planificador para que compare el tiempo de ejecución restante del proceso actualmente en
ejecución con el tiempo necesario para completar la siguiente ráfaga de procesador del procesador del
proceso recién llegado. Dependiendo del resultado, el proceso en ejecución puede continuar o puede ser
expropiado y sustituido por el proceso con tiempo restante más corto. Si es expropiado, el proceso en
ejecución se une a la cola de preparados.

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.

3.- Planificación por reparto del tiempo (RR, Round Robin).-


En entornos interactivos, tal como en sistemas de tiempo compartido, el requisito principal es
proporcionar tiempos de respuesta razonablemente buenos y, en genera, compartir los recursos del sistema
equitativamente entre todos los usuarios. Obviamente, sólo las disciplinas expropiativas pueden ser
consideradas en tales entornos, y una de las más populares es la de reparto del tiempo, también conocida
como por turnos. Básicamente, el tiempo del procesador se divide en cuotas o quantos que son asignados a
los peticionarios. Ningún proceso puede ejecutarse durante más de una cuota de tiempo cuando hay otros
esperando en la cola de preparados. Si un proceso necesita más tiempo para completarse después de agotar
su cuota de tiempo, se coloca al final de la lista de preparados para esperar a una asignación siguiente.

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.

4.- Planificación MLQ (Multiple-Level Queue).-


Este tipo de planificación se utiliza en un sistema mixto, en el que hay sucesos críticos en el
tiempo, una multitud de usuarios interactivos y algunos trabajos no interactivos muy largos. Por ejemplo un
centro de cómputo universitario, en donde hay una variedad de dispositivos y terminales, usuarios
interactivos, y trabajos por lotes. Una posibilidad es combinar varias disciplinas de planificación. Por
ejemplo, los procesos del sistema operativo y las interrupciones de dispositivos pueden ser sometidos a
planificación guiada por sucesos, los programas interactivos a planificación por reparto del tiempo y los
trabajos de lotes a FCFS o SRTN.
Un modo de implementar planificaciones complejas es clasificar la carga de trabajo de acuerdo con
sus características y mantener colas de procesos separadas servidas por diferentes planificadores. A esto se
le llama planificación dde colas multinivel. Una posible división de la carga de trabajo sería: procesos de
sistema, programas interactivos y trabajos de lotes. Esto daría lugar a tres colas de preparados, como se
muestra en la figura. Un proceso puede ser asignado a una cola específica en base a sus atributos, que
pueden ser suministrados por el usuario o por el sistema. Cada cola podría estar atendida entonces por la
disciplina de planificación más adecuada al tipo de carga que contiene.

Planificación guiada por eventos


Procesos del sistema
Cola de prioridad alta
Planificación por reparto
Del tiempo
Procesos Interactivos Cola de prioridad media UC
P

Procesos generados Planificación FCFS


Por lotes Cola de prioridad baja

2.1.3 Procesos Concurrentes.-


Los procesos son concurrentes si existen al mismo tiempo. Los procesos concurrentes pueden
funcionar con total ind3ependencia unos de otros, o pueden ser asincrónicos, lo cual significa que
requieren una sincronización y cooperación ocasionales.

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.

Estructura para indicar el paralelismo: parbegin/parend.-


Son muchas las construcciones de lenguajes de programación para indicar paralelismo que
han aparecido en la literatura. Estas implican pares de proposiciones como las siguientes:
a) Una proposición indicando que la ejecución secuencial debe ser dividida entre varias
secuencias de ejecución en paralelo (trayectoria de control).
b) Una proposición indicando que ciertas secuencias de ejecución en paralelo están a punto de
producirse y se reanudará la ejecución secuencial.
Estas proposiciones ocurren en pares y suelen denominarse parbegin/parend (para comenzar o
finalizar una ejecución en paralelo), o cobegin/coend (para comenzar o finalizar una ejecución
concurrente). Su forma general es la siguiente:

Parbegin
Proposición1;
Proposición2;
.
.
proposición n;
parend

Esto determina que la trayectoria de control simple se divida en n trayectorias separadas


de control, una por cada proposición de la construcción parbegin/parend. Estas pueden ser
proposiciones simples, llamadas a procedimeintos, bloques de proposiciones secuenciales
delineados por begin/end, o combinaciones de éstos. Cada una de las trayectorias de control
individuales acaba por alcanzar y terminar al parend. Cuando todas las trayectorias de control
paralelas llegan al final, se reanuda una trayectoria de control simple y el sistema prosigue más allá
del parend.
Por ejemplo, dada la siguiente ecuación para el cálculo de una raíz de la ecuación
cuadrática:
X:=(-b+(b**2-4*a*c)**.5)/(2*a)

Esta asignación puede ser evaluada en un procesador secuencial de la manera siguiente:


1 b**2
2 4*a
3 (4*a)*c
4 (b**2)-(4*a*c)
5 (b**2-4*a*c)**5
6 –b
7 (-b)+(b**2-4*a*c)**.5)
8 2*a
9 (-b+(b**2-4*a*c)**.5)/(2*a)

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

Aquí se evalúan en paralelo las cuatro operaciones contenidas dentro de la construcción


parbegin/parend; las cinco operaciones restantes deben ser ejecutadas de forma secuencial. Al
ejecutar los cálculos en paralelo se reduce en gran medida el tiempo real de ejecución.

You might also like