Está en la página 1de 47

Introducción a los sistemas

operativos avanzados
Un sistema operativo es un software de sistema, es decir, un conjunto
de programas de computación destinados a realizar muchas tareas entre
las que destaca la administración eficaz de sus recursos.

Comienza a trabajar cuando en memoria se carga un programa


específico y aun antes de ello, que se ejecuta al iniciar el equipo, o al
iniciar una máquina virtual, y gestiona el hardware de la máquina desde
los niveles más básicos, brindando una interfaz con el usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de


los aparatos electrónicos que utilicen microprocesadores para funcionar,
ya que gracias a éstos podemos entender la máquina y que ésta cumpla
con sus funciones (teléfonos móviles, reproductores de DVD, autorradios,
computadoras, radios, etc.).
Funciones básicas
Los sistemas operativos, en su condición de capa software que posibilitan y
simplifica el manejo de la computadora, desempeñan una serie de funciones
básicas esenciales para la gestión del equipo. Entre las más destacables, cada una
ejercida por un componente interno (módulo en núcleos monolíticos y servidor
en micronúcleos), podemos reseñar las siguientes:

• Proporcionar más comodidad en el uso de un computador.


• Gestionar de manera eficiente los recursos del equipo, ejecutando servicios
para los procesos (programas)
• Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
• Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar
sin interferir con los servicios que ya se prestaban (evolutividad).
Funciones básicas
Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema
informático: suministro de interfaz al usuario, administración de recursos,
administración de archivos, administración de tareas y servicio de soporte y utilidades.

1. Interfaces del usuario


Es la parte del sistema operativo que permite comunicarse con él, de tal manera que
se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos
básicos de interfaces: las que se basan en comandos, las que utilizan menús y las
interfaces gráficas de usuario.

2. Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema
informático, como el CPU, memoria, dispositivos de almacenamiento secundario y
periféricos de entrada y de salida.
Funciones básicas
3. Administración de archivos
Un sistema de información contiene programas de administración de archivos que
controlan la creación, borrado y acceso de archivos de datos y de programas. También
implica mantener el registro de la ubicación física de los archivos en los discos
magnéticos y en otros dispositivos de almacenamiento secundarios.

4. Administración de tareas
Los programas de administración de tareas de un sistema operativo administran la
realización de las tareas informáticas de los usuarios finales. Los programas controlan
que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración
de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en
particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea
de mayor prioridad.
Funciones básicas
5. Servicio de soporte
Los servicios de soporte de cada sistema operativo dependerán de la implementación
particular de éste con la que estemos trabajando. Entre las más conocidas se pueden
destacar las implementaciones de Unix, desarrolladas por diferentes empresas de
software, los sistemas operativos de Apple Inc., como Mac OS X para las
computadoras de Apple Inc., los sistemas operativos de Microsoft, y las
implementaciones de software libre, como GNU/Linux o BSD producidas por
empresas, universidades, administraciones públicas, organizaciones sin fines de lucro
y/o comunidades de desarrollo.
Servicios de soporte
Estos servicios de soporte suelen consistir en:

• Actualización de versiones.
• Mejoras de seguridad.
• Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para
administrar alguna determinada función, ...).
• Controladores para manejar nuevos periféricos (este servicio debe coordinarse a
veces con el fabricante del hardware).
• Corrección de errores de software.
• Otros.

No todas las utilidades de administración o servicios forman parte del sistema


operativo, además de éste, hay otros tipos importantes de software de administración
de sistemas, como los sistemas de administración de base de datos o los programas de
administración de redes. El soporte de estos productos deberá proporcionarlo el
fabricante correspondiente (que no tiene porque ser el mismo que el del sistema
operativo).
Recursos administrado por el sistema
operativo
Programador de sistema

Desarrollar componentes software a partir de unas


especificaciones concretas, proporcionando
funciones de administración y supervisión del
sistema operativo, para la gestión de los recursos de
un sistema informático y la interacción con otros
sistemas utilizando tecnologías de desarrollo
orientadas a objetos y a componentes.
Funciones del Programador de Sistema
 Analiza , Diseña, Elabora, Mantiene e Implanta programas de baja y mediana
complejidad.
 Documenta los programas de computación de acuerdo con las normas
establecidas.
 Recolecta información del usuario sobre sus necesidades.
 Asiste a usuarios finales en el uso de los programas.
 Diseña pruebas de validación para los programas.
 Ejecuta pruebas de validación para los programas.
 Realiza respaldo de la información bajo su responsabilidad.
 Documenta los trabajos realizados.
 Participa en reuniones técnicas.
 Cumple con las normas, lineamientos y estándares establecidos por la unidad
para el desarrollo de programas de computación.
 Cumple con las normas y procedimientos en materia de seguridad integral,
establecidos por la organización.
 Mantiene en orden equipo y sitio de trabajo, reportando cualquier anomalía.
 Elabora informes periódicos de las actividades realizadas.
Funciones del Administrador de
Sistema
 Mantener el ambiente de desarrollo tanto de hardware, como de software.
 Realizar copias de respaldo.
 Montar repositorio de las herramientas utilizadas en el proyecto.
 Administrar cuentas de usuarios (instalación y mantenimiento de cuentas).
 Comprobar que los periféricos funcionan correctamente.
 En caso de fallo de hardware, designar los horarios de reparación.
 Monitorear el rendimiento del sistema.
 Crear sistemas de ficheros.
 Instalar el software.
 Crear la política de copias de seguridad y recuperación.
 Monitorear la comunicación de la red.
 Actualizar los sistemas, según sean accesibles nuevas versiones de Sistemas
Operativos y software aplicativo.
 Aplicar las políticas para el uso del sistema informático y de red.
El concepto de proceso
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto
formado por:
• Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
• Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU
para dicho programa.
• Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
• Otra información que permite al sistema operativo su planificación.

El concepto central de cualquier Sistema Operativo es el de proceso:


una abstracción de un programa en ejecución también llamada tarea.

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones
aceptadas:
• Un programa que se está ejecutando.
• Una actividad asincrónica.
• El emplazamiento del control de un procedimiento que está siendo ejecutado.
• Aquello que se manifiesta por la existencia en el Sistema Operativo de un bloque de control de
proceso.
• Aquella entidad a la cual son asignados los procesadores.
• La unidad despachable.
Caracteristicas del Modelo de procesos
• Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios
procesos secuenciales o procesos.
• Un proceso incluye al programa en ejecución y a los valores activos del contador,
registros y variables del mismo.
• Conceptualmente cada proceso tiene su propia CPU virtual.
• Si la CPU alterna entre los procesos, la velocidad a la que ejecuta un proceso no será
uniforme, por lo que es necesario aclarar lo siguiente:
o Que los procesos no deben programarse con hipótesis implícitas acerca del
tiempo.
o Que normalmente la mayoría de los procesos no son afectados por la
multiprogramación subyacente de la CPU o las velocidades relativas de
procesos distintos.
• Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada,
salida y estado.
• Un solo procesador puede ser compartido entre varios procesos con cierto
“algoritmo de planificación”, el cual determina cuándo detener el trabajo en un
proceso y dar servicio a otro distinto.
Multiprogramación de cuatro
programas
Jerarquías de procesos
En cuanto a las jerarquías de procesos es necesario señalar que los Sistemas
Operativos deben disponer de una forma de crear y destruir procesos cuando se
requiera durante la operación, teniendo además presente que los procesos pueden
generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse
ejecución en paralelo.

Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
• Cada proceso es una entidad independiente pero frecuentemente debe interactuar
con otros procesos
Estados de procesos
• Los procesos pueden bloquearse en su ejecución porque:
o Desde el punto de vista lógico no puede continuar porque espera datos
que aún no están disponibles.
o El Sistema Operativo asignó la CPU a otro proceso.
• Los estados que puede tener un proceso son:
o En ejecución: utiliza la CPU en el instante dado.
o Listo: ejecutable, se detiene en forma temporal para que se ejecute otro
proceso.
o Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento
externo.
• Son posibles cuatro transiciones entre estos estados.
Estados de procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo
varias las circunstancias que pueden hacer que el mismo cambie de estado.

Debido a ello se puede establecer una “Lista de Listos” para los procesos “listos” y una
“Lista de Bloqueados” para los “bloqueados”.

La “Lista de Listos” se mantiene en orden prioritario y la “Lista de Bloqueados” está


desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los
eventos que están esperando.

Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en


la última parte de la “Lista de Listos”.

La asignación de la CPU al primer proceso de la “Lista de Listos” se denomina


“Despacho”, que es ejecutado por una entidad del Sistema Operativo llamada
“Despachador”.
Estados de procesos
El “Bloqueo” es la única transición de estado iniciada por el propio proceso del
usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al
proceso.

La manifestación de un proceso en un Sistema Operativo es un “Bloque de Control de


Proceso” (PCB) con información que incluye:

• Estado actual del proceso.


• Identificación única del proceso.
• Prioridad del proceso.
• Apuntadores para localizar la memoria del proceso.
• Apuntadores para asignar recursos.
• Área para preservar registros.

Cuando el Sistema Operativo cambia la atención de la 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 la CPU.
Estados de procesos
Los sistemas que administran los procesos deben poder crear, destruir, suspender,
reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.

La “creación” de un proceso significa:


• 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 del proceso.
• Asignar los recursos iníciales del proceso.

Un proceso puede “crear un nuevo proceso”, en cuyo caso el proceso creador se denomina
“proceso padre” y el proceso creado “proceso hijo” y se obtiene una “estructura jerárquica
de procesos”.

La “destrucción” de un proceso implica:

• Borrarlo del sistema.


• Devolver sus recursos al sistema.
• Purgarlo de todas las listas o tablas del sistema.
• Borrar su bloque de control de procesos.
Estados de procesos
Un proceso “suspendido” no puede proseguir hasta que otro proceso lo reanude.

Reanudar (reactivar) un proceso implica reiniciarlo en el punto donde fue suspendido.

La “destrucción” de un proceso puede o no significar la destrucción de los procesos


hijos, según el Sistema Operativo.

Generalmente se denomina “Tabla de Procesos” al conjunto de información de control


sobre los distintos procesos.
Funciones y componentes del núcleo
El núcleo (también conocido en español con el anglicismo kernel, de la raíz germánica
Kern) es la parte fundamental de un sistema operativo. Es el software responsable de
facilitar a los distintos programas acceso seguro al hardware de la computadora o en
forma más básica, es el encargado de gestionar recursos, a través de servicios de
llamada al sistema.

Como hay muchos programas y el acceso al hardware es limitado, el núcleo también


se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y
durante cuánto tiempo, lo que se conoce como multiplexado.

Acceder al hardware directamente puede ser realmente complejo, por lo que los
núcleos suelen implementar una serie de abstracciones del hardware. Esto permite
esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware
subyacente, lo que facilita su uso para el programador.
Funciones y componentes del núcleo
Esquema básico de la interacción entre un Núcleo, el resto del Software
(los programas de aplicación, las bases de datos, etc.) y el Hardware.
Funciones y componentes del núcleo
El “núcleo” del Sistema Operativo controla todas las operaciones que implican
procesos y representa solo una pequeña porción del código de todo el Sistema
Operativo pero es de amplio uso.

Generalmente permanece en el almacenamiento primario.

El proceso de interrupciones se incluye en el núcleo ya que debe ser rápido


(especialmente en sistemas multiusuario), para optimizar el uso de los recursos del
sistema y proveer tiempos de respuesta aceptables a los usuarios interactivos.

El núcleo inhabilita las interrupciones mientras responde a una interrupción. Las


interrupciones son habilitadas de nuevo después de completar el proceso de una
interrupción.
Funciones y componentes del núcleo
El núcleo del Sistema Operativo generalmente realiza las siguientes funciones:

• Manipulación de interrupciones.
• Creación y destrucción de procesos.
• Cambio de estados de procesos.
• Despacho.
• Suspensión y reanudación de procesos.
• Sincronización de procesos.
• Comunicación entre procesos.
• Manipulación de bloques de control de proceso.
• Soporte de las actividades de Entrada / Salida.
• Soporte de la asignación y des asignación de almacenamiento.
• Soporte del sistema de archivos.
• Soporte de un mecanismo de llamada / regreso al procedimiento.
• Soporte de ciertas funciones contables (estadísticas) del sistema.
Funciones y componentes del núcleo
Una visión típica de la arquitectura de computadores como una serie de capas de
abstracción: hardware, firmware, lenguaje de máquina, núcleo, software de sistema y
aplicaciones.
Funciones y componentes del núcleo
En informática, el núcleo de un sistema operativo, es el programa informático que se
asegura de:

• La comunicación entre los programas informáticos y el hardware.


• Gestión de los distintos programas informáticos (tareas) de una máquina.
• Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)

La mayoría de los sistemas operativos se construyen en torno al concepto de núcleo. La


existencia de un núcleo, es decir, de un único programa responsable de la comunicación
entre el hardware y el programa informático, resulta de compromisos complejos
referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores.

El núcleo tiene grandes poderes sobre la utilización de los recursos materiales (hardware),
en particular, de la memoria.
Tipos de núcleo
No necesariamente se necesita un núcleo para usar una computadora. Los programas
pueden cargarse y ejecutarse directamente en una computadora «vacía», siempre que sus
autores quieran desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda
del sistema operativo.

Ésta era la forma normal de usar muchas de las primeras computadoras: para usar
distintos programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el
tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños
programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de
sólo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de
lo que llegarían a ser los primeros núcleos de sistema operativo.
Tipos de núcleo
Hay cuatro grandes tipos de núcleos:

• Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente


potentes y variadas.

• Los micro núcleos (en inglés microkernel) proporcionan un pequeño conjunto de


abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para
ofrecer mayor funcionalidad.

• Los núcleos híbridos (micro núcleos modificados) son muy parecidos a los micro núcleos
puros, excepto porque incluyen código adicional en el espacio de núcleo para que se
ejecute más rápidamente.

• Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que
proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.
Algoritmos de planificación del procesador
Planificación de Procesos
Cuando más de un proceso es ejecutable desde el punto de vista lógico, el Sistema
Operativo debe decidir cuál de ellos debe ejecutarse en primer término.

El Planificador es la porción del Sistema Operativo que decide y el Algoritmo de


Planificación es el utilizado.

Los principales “criterios” respecto de un buen algoritmo de planificación son la equidad,


la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento.
Criterios de un buen algoritmo de planificación

Criterios Descripción
Equidad Garantizar que cada proceso obtiene su
proporción justa de la CPU.
Eficacia Mantener ocupada la CPU el ciento por
ciento del tiempo.
Tiempo de respuestas Minimizar el tiempo de respuesta para
los usuarios interactivos.
Tiempo de regreso Minimizar el tiempo que deben esperar
los usuarios por lotes (batch) para
obtener sus resultados.
Rendimiento Maximizar el número de tareas
procesadas por hora.
Criterios de un buen algoritmo de planificación
Algunas de estas metas son contradictorias, por ejemplo, minimizar el tiempo de
respuesta para los usuarios interactivos significaría no ejecutar las tareas batch.

Cada proceso es único e impredecible, es decir que pueden requerir intensivamente


operaciones de Entrada / Salida o intensivamente CPU; el planificador del Sistema
Operativo no tiene la certeza de cuánto tiempo transcurrirá hasta que un proceso se
bloquee, ya sea por una operación de Entrada / Salida o por otra razón.

Para evitar que un proceso se apropie de la CPU un tiempo excesivo, los equipos poseen
un dispositivo que provoca una interrupción en forma periódica, por ejemplo 60 hz, o sea
sesenta veces por segundo.

En cada interrupción del reloj el Sistema Operativo decide si el proceso que se está
ejecutando continúa o si el proceso agotó su tiempo de CPU y debe suspenderse y ceder la
CPU a otro proceso.
Planificación del procesador
Los principales conceptos relacionados con Planificación del Procesador son el siguiente:

• Planificación apropiativa: es la estrategia de permitir que procesos ejecutables (desde el


punto de vista lógico) sean suspendidos temporalmente.

• Planificación no apropiativa: es la estrategia de permitir la ejecución de un proceso hasta


terminar.

• Planificación del procesador: determinar cuándo deben asignarse los procesadores y a


qué procesos, lo cual es responsabilidad del Sistema Operativo.
Niveles de planificación del procesador
Se consideran tres niveles importantes de planificación, los que se detallan a continuación:

• Planificación de alto nivel:


o También se denomina Planificación de trabajos.
o Determina a qué trabajos se les va a permitir competir activamente por los
recursos del sistema, lo cual se denomina Planificación de admisión.

• Planificación de nivel intermedio:


o Determina a qué procesos se les puede permitir competir por la CPU.
o Responde a fluctuaciones a corto plazo en la carga del sistema y efectúa
“suspensiones” y “activaciones” (“reanudaciones”) de procesos.
o Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema.

• Planificación de bajo nivel:


o Determina a qué proceso listo se le asigna la CPU cuando esta queda
disponible y asigna la CPU al mismo, es decir que “despacha” la CPU al proceso.
o La efectúa el Despachador del Sistema Operativo, el que opera muchas veces
por segundo y reside siempre en el almacenamiento primario.
Niveles de planificación del procesador
Tipos de planificación
Planificación a Plazo Fijo
Ciertos trabajos se planifican para ser terminados en un tiempo específico o plazo fijo. Es
una planificación compleja debido a los siguientes factores:

• El usuario debe suministrar anticipadamente una lista precisa de recursos necesarios


para el proceso, pero generalmente no se dispone de dicha información.

• La ejecución del trabajo de plazo fijo no debe producir una grave degradación del
servicio a otros usuarios.

• El sistema debe planificar cuidadosamente sus necesidades de recursos hasta el plazo


fijo, lo que se puede complicar con las demandas de recursos de nuevos procesos que
ingresen al sistema.

• La concurrencia de varios procesos de plazo fijo (activos a la vez) puede requerir


métodos sofisticados de optimización.

• La administración intensiva de recursos puede generar una considerable sobrecarga


adicional.
Tipos de planificación
Planificación Garantizada

Se establecen compromisos de desempeño con el proceso del usuario, por ejemplo, si


existen “n” procesos en el sistema, el proceso del usuario recibirá cerca del “1 / n” de la
potencia de la CPU.

El sistema debe tener un registro del tiempo de CPU que cada proceso ha tenido desde su
entrada al sistema y del tiempo transcurrido desde esa entrada.

Con los datos anteriores y el registro de procesos en curso de ejecución, el sistema calcula
y determina qué procesos están más alejados por defecto de la relación “1 / n” prometida
y prioriza los procesos que han recibido menos CPU de la prometida.
Tipos de planificación
Planificación del Primero en Entrar Primero en Salir (FIFO)

Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola
de listos.

Una vez que el proceso obtiene la CPU, se ejecuta hasta terminar, ya que es una disciplina
“no apropiativa”.

Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no
importantes hagan esperar a procesos importantes.

Es más predecible que otros esquemas.

No puede garantizar buenos tiempos de respuesta interactivos.

Suele utilizarse integrado a otros esquemas, por ejemplo, de la siguiente manera:


• Los procesos se despachan con algún esquema de prioridad.
• Los procesos con igual prioridad se despachan “FIFO”.
Tipos de planificación
Planificación de Asignación en Rueda (RR: Round Robin)

Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de


CPU, llamada “división de tiempo” o “cuanto”.

Si un proceso no termina antes de expirar su tiempo de CPU ocurren las siguientes


acciones:
1. La CPU es apropiada.
2. La CPU es otorgada al siguiente proceso en espera.
3. El proceso apropiado es situado al final de la lista de listos.

Es efectiva en ambientes de tiempo compartido.


La sobrecarga de la apropiación se mantiene baja mediante mecanismos eficientes de
intercambio de contexto y con suficiente memoria principal para los procesos.
Tipos de planificación
Planificación del Trabajo Más Corto Primero (SJF)

Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo


compartido.
El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es
el siguiente en ejecutarse.
Los tiempos promedio de espera son menores que con “FIFO”.
Los tiempos de espera son menos predecibles que en “FIFO”.
Favorece a los procesos cortos en detrimento de los largos.
Tiende a reducir el número de procesos en espera y el número de procesos que esperan
detrás de procesos largos.
Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que
generalmente se desconoce.
Se pueden estimar los tiempos en base a series de valores anteriores.
Tipos de planificación
Planificación del Tiempo Restante Más Corto (SRT)

Es la contraparte apropiativa del SJF.


Es útil en sistemas de tiempo compartido.
El proceso con el tiempo estimado de ejecución menor para Vanalizar es el siguiente en ser
ejecutado.
Un proceso en ejecución puede ser apropiado por un nuevo proceso con un tiempo estimado
de ejecución menor.
Tiene mayor sobrecarga que la planificación SJF.
Debe mantener un registro del tiempo de servicio transcurrido del proceso en ejecución, lo que
aumenta la sobrecarga.
Los trabajos largos tienen un promedio y una varianza de los tiempos de espera aún mayor que
en SJF.

La apropiación de un proceso a punto de terminar por otro de menor duración recién llegado
podría significar un mayor tiempo de cambio de contexto (administración del procesador) que
el tiempo de finalización del primero.

Al diseñarse los Sistemas Operativos se debe considerar cuidadosamente la sobrecarga de los


mecanismos de administración de recursos comparándola con los beneficios esperados.
Tipos de planificación
Planificación el Siguiente con Relación de Respuesta Máxima (HRN)
Corrige algunas de las debilidades del SJF, tales como el exceso de perjuicio hacia los
procesos (trabajos) largos y el exceso de favoritismo hacia los nuevos trabajos cortos.

Es una disciplina no apropiativa.


La prioridad de cada proceso está en función no sólo del tiempo de servicio del trabajo,
sino que también influye la cantidad de tiempo que el trabajo ha estado esperando ser
servido.

Cuando un proceso ha obtenido la CPU, corre hasta terminar.


Las prioridades, que son dinámicas, se calculan según la siguiente fórmula, donde pr es la
“prioridad”, te es el “tiempo de espera” y ts es el “tiempo de servicio”:
Tipos de planificación
Planificación por Prioridad

Considera factores externos al proceso.


Las ideas centrales son que cada proceso tiene asociada una prioridad y que el proceso
ejecutable con máxima prioridad es el que tiene el permiso de ejecución.

Los procesos de alta prioridad podrían ejecutar indefinidamente, ya que el planificador del
sistema puede disminuir la prioridad del proceso en ejecución en cada interrupción del
reloj.

Las prioridades también pueden ser asignadas dinámicamente por el sistema para lograr
ciertas metas relacionadas con el procesador o la Entrada / Salida.

Los procesos limitados por la Entrada / Salida (requerimientos intensivos de Entrada /


Salida) ocupan mucho de su tiempo en espera de operaciones de Entrada / Salida, por lo
tanto:
Tipos de planificación
• Deben tener prioridad para usar la CPU y efectuar la siguiente petición de Entrada / Salida, ya
que se ejecutará (la operación de Entrada / Salida) en paralelo con otro proceso que utilice la
CPU.
• Si deben esperar mucho tiempo a la CPU estarán ocupando memoria por un tiempo
innecesario.

Un algoritmo sencillo consiste en establecer que la prioridad sea “1 / f”, donde “f” es la fracción
del último cuanto utilizado por el proceso.

Un proceso que utilice 2 mseg (dos milisegundos) de su cuanto de 100 mseg (cien milisegundos)
tendrá prioridad 50 (cincuenta).

Un proceso que se ejecutó 50 mseg antes del bloqueo tendrá prioridad 2.


Un proceso que utilizó todo el cuanto tendrá prioridad 1.

Frecuentemente los procesos se agrupan en “Clases de Prioridad”, en cuyo caso se utiliza la


Planificación con Prioridades entre las clases y con Round Robin (RR) dentro de cada clase. Si las
prioridades no se reajustan en algún momento, los procesos de las clases de prioridad mínima
podrían demorarse indefinidamente.
Colas de Retroalimentación de Niveles Múltiples
Proporcionan una estructura para lograr los siguientes objetivos:

• Favorecer trabajos cortos.


• Favorecer trabajos limitados por la Entrada / Salida para optimizar el uso de los
dispositivos de Entrada / Salida.
• Determinar la naturaleza de un trabajo lo más rápido posible y planificar el trabajo
(proceso) en consecuencia.

Un nuevo proceso entra en la red de línea de espera al final de la cola superior.


Se mueve por esta cola “FIFO” hasta obtener la CPU.

Si el trabajo termina o abandona la CPU para esperar por la terminación de una operación
de Entrada / Salida o la terminación de algún otro suceso, el trabajo abandona la red de
línea de espera.

Si su cuanto expira antes de abandonar la CPU voluntariamente, el proceso se coloca en la


parte trasera de la cola del siguiente nivel inferior.
Colas de Retroalimentación de Niveles Múltiples
El trabajo recibe servicio al llegar a la cabeza de esta cola si la primera está vacía.
Mientras el proceso continúe consumiendo totalmente su cuanto en cada nivel, continuará
moviéndose hacia el final de las colas inferiores.

Generalmente hay una cola en la parte más profunda a través de la cual el proceso circula en
asignación de rueda hasta que termina.
Existen esquemas en los que el cuanto otorgado al proceso aumenta a medida que el proceso
se mueve hacia las colas de los niveles inferiores, en tal caso, cuanto más tiempo haya estado el
proceso en la red de línea de espera, mayor será su cuanto cada vez que obtiene la CPU y no
podrá obtener la CPU muy a menudo debido a la mayor prioridad de los procesos de las colas
superiores.

Un proceso situado en una cola dada no podrá ser ejecutado hasta que las colas de los niveles
superiores estén vacías. Un proceso en ejecución es apropiado por un proceso que llegue a una
cola superior.

Es un mecanismo adaptable, es decir que se adapta a cargas variables.


A los efectos de una revisión gráfica de lo enunciado precedentemente.
Política vs. Mecanismo de planificación
Puede ocurrir que haya procesos con muchos procesos hijos ejecutándose bajo su control,
por ejemplo, un proceso en un DBMS con procesos hijos atendiendo funciones específicas,
tales como, análisis de interrogantes, acceso a discos, etc.

Es posible que el proceso principal (padre) pueda identificar la importancia (o criticidad)


de sus procesos hijos, pero los planificadores analizados no aceptan datos de los procesos
de usuario relativos a decisiones de planificación.

La solución es separar el mecanismo de planificación de la política de planificación, para


ello se parametriza el algoritmo de planificación y los parámetros pueden ser
determinados por medio de procesos del usuario; así el mecanismo está en el núcleo del
Sistema Operativo pero la política queda establecida por un proceso del usuario.
Planificación de dos niveles
Los esquemas analizados hasta ahora suponen que todos los procesos ejecutables están
en la memoria principal.

Si la memoria principal es insuficiente, ocurrirá lo siguiente:

• Habrá procesos ejecutables que se mantengan en disco.


• Habrá importantes implicaciones para la planificación, tales como las siguientes:
o El tiempo de alternancia entre procesos para traer y procesar un proceso del
disco es considerablemente mayor que el tiempo para un proceso que ya está
en la memoria principal.
o Es más eficiente el intercambio de los procesos con un planificador de dos
niveles.
Planificación de dos niveles

También podría gustarte