Subido por Jose Maria Uc May

Resumen del primer parcial

Anuncio
UNIVERSIDAD AUTONOMA
DE CAMPECHE
RESUMEN DEL PRIMER PARCIAL
SISTEMAS OPERATIVOS
NOMBRE DEL MAESTRO:
HERIBE F URIBE SANTIAGO
NOMBRE DEL ALUMNO:
JOSE MARIA ANDRES UC MAY
INGENIERIA EN SISTEMAS COMPUTACIONALES
Contenido
INTRODUCCION A LOS SISTEMAS OPERATIVOS................................................................. 3
1.1-DEFINICION Y CONCEPTO ......................................................................................................... 3
1.2-FUNCIONES Y CARACTERISTICAS .............................................................................................. 3
1.3-EVOLUCION HISTORICA............................................................................................................. 4
1.4CLASIFICACION ........................................................................................................................... 4
1.5-ESTRUCTURA: NIVELES O ESTRATO DE DISEÑO ........................................................................ 5
1.6-NUCLEO ..................................................................................................................................... 7
ADMINISTRACION DE PROCESOS Y DEL PROCESADOR .................................................. 8
2.1- CONCEPTO DE PROCESO .......................................................................................................... 8
2.2- ESTADOS Y TRANSICIONES DE LOS PROCESOS ........................................................................ 9
2.3- PROCESOS LIGEROS: HILOS O HEBRAS ................................................................................... 10
2.4- CONCURRENCIA Y SENCUENCIALIDAD................................................................................... 11
2.5- NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACION ........................................................... 12
2.6- TECNICAS DE ADMINISTRACION DEL PLANIFICADOR ............................................................ 13
INTRODUCCION A LOS SISTEMAS
OPERATIVOS
1.1-DEFINICION Y CONCEPTO
Programa informático que se inicia al encender el ordenador para coordinar su
funcionamiento y permitir la comunicación eficaz de la máquina con el usuario.
Un Sistema Operativo es un conjunto de programas que controlan los programas
de los usuarios (cargándolos, ejecutándolos, etc.) y los dispositivos de
entrada/salida (repartiéndolos entre varios usuarios), y que tiene por objeto facilitar
el uso de la computadora y conseguir que ésta se utilice eficientemente.
1.2-FUNCIONES Y CARACTERISTICAS
El sistema operativo es el único programa que interactúa directamente con el
hardware de la computadora. Sus funciones primarias son:
Abstracción Los programas no deben tener que preocuparse de los detalles de
acceso a hardware, o de la configuración particular de una computadora.
El sistema operativo se encarga de proporcionar una serie de abstracciones para
que los programadores puedan enfocarse en resolver las necesidades particulares
de sus usuarios. Un ejemplo de tales abstracciones es que la información está
organizada en archivos y directorios (en uno o muchos dispositivos de
almacenamiento).
Administración de recursos Un sistema de cómputo puede tener a su disposición
una gran cantidad de recursos (memoria, espacio de almacenamiento, tiempo de
procesamiento, etc.), y los diferentes procesos que se ejecuten en él compiten por
ellos. Al gestionar toda la asignación de recursos, el sistema operativo puede
implementar políticas que los asignen de forma efectiva y acorde a las
necesidades establecidas para dicho sistema.
Aislamiento En un sistema multiusuario y multitarea cada proceso y cada usuario
no tendrá que preocuparse por otros que estén usando el mismo sistema —
Idealmente, su experiencia será la misma que si el sistema estuviera
exclusivamente dedicado a su atención (aunque fuera un sistema menos
poderoso).
Para implementar correctamente las funciones de aislamiento hace falta que el
sistema operativo utilice hardware específico para dicha protección.
1.3-EVOLUCION HISTORICA
1a. Etapa (1945-1955): Bulbos y conexiones.
2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.
3ra Etapa (1965-1980): Circuitos integrados y multiprogramación
4ta Etapa (1980-Actualidad): Computadoras personales
Los comienzos de DOS, los comienzos de la informática
LA GESTACIÓN
Unix como base de sistemas operativos
Macintosh, el primero con interfaz gráfica de usuario
Actualidad de los Sistemas Operativos
1.4CLASIFICACION
Esto no sólo permitirá comprender por qué fueron apareciendo determinadas
características y patrones de diseño que se siguen empleando décadas más tarde,
sino (como resulta particularmente bien ejemplificado en el discurso de recepción
del premio Turing de Fernando Corbató, Acerca de la construcción de sistemas
que fallarán.
- PROCESOS DE LOTES (BATCH PROCESSING)
Se conoce como sistema por lotes (en inglés batch processing), o modo batch, a
la ejecución de un programa sin el control o supervisión directa del usuario que se
denomina. Este tipo de programas se caracterizan porque su ejecución no precisa
ningún tipo de interacción con el usuario.
Generalmente, este tipo de ejecución se utiliza en tareas repetitivas sobre grandes
conjuntos de información, ya que sería tedioso y propenso a errores realizarlo
manualmente. Un ejemplo sería el renderizado de los fotogramas de una película.
-SISTEMAS EN LOTES CON DISPOSITIVOS DE CARGA (SPOOL)
un mecanismo de entrada/salida que permitía que una computadora de propósito
específico, mucho más económica y limitada, leyera las tarjetas y las fuera
convirtiendo a cinta magnética, un medio mucho más rápido, teniéndola lista para
que la computadora central la cargara cuando terminara con el trabajo anterior.
Del mismo modo, la computadora central guardaba sus resultados en cinta para
que equipos especializados la leyeran e imprimieran para el usuario solicitante.
-SISTEMAS MULTIPROGRAMADOS
La programación multitareas o los sistemas multiprogramados buscaban
maximizar el tiempo de uso efectivo del procesador ejecutando varios procesos al
mismo tiempo.
El hardware requerido cambió fuertemente. Si bien se esperaba que cada usuario
fuera responsable con el uso de recursos, resultó necesario que apareciera la
infraestructura de protección de recursos: un proceso no debe sobrescribir el
espacio de memoria de otro (ni el código, ni los datos), mucho menos el espacio
del monitor. Esta protección se encuentra en la Unidad de Manejo de Memoria
(MMU), presente en todas las computadoras de uso genérico desde los años
noventa.
-SISTEMAS DE TIEMPO COMPARTIDO
En primer término, la tarea de programación y depuración del código se simplificó
fuertemente al poder hacer el programador directamente cambios y someter el
programa a la ejecución inmediata.
Multitarea cooperativa o no apropiativa (Cooperative multitasking). La imple
mentaron los sistemas multiprogramados: cada proceso tenía control del CPU
hasta que éste hacía una llamada al sistema (o indicara su disposición a cooperar
por medio de la llamada yield: ceder el paso). Un cálculo largo no era interrumpido
por el sistema operativo, en consecuencia, un error de programador podía
congelar la computadora completa.
1.5-ESTRUCTURA: NIVELES O ESTRATO DE DISEÑO
Sistemas monolíticos
En estos sistemas operativos se escriben como un conjunto de procedimientos,
cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo
necesite. Cuando se emplea esta técnica, cada procedimiento del sistema tiene
una interfaz bien definida en términos de parámetros y resultados, y cada una
tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo útil
que la primera necesite.
Sistemas en estratos
Estos sistemas operativos se organizan como una jerarquía de estratos, cada uno
construido arriba del que está debajo de él. El primer sistema construido en esta
forma fuel el sistema THE que se fabricó en Technische Hogeschool Eindhoven de
Holanda por E. W Dijkstra (1968) y sus alumnos. El sistema THE era un sistema
de lote para una computadora alemana, la Electrológica X8, que tenía 32K de
palabras de 27 bits ( los bits eran costosos en aquellos días)
Estructura por microkernel
Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras
que la interfaz del us uario es controlada por el entorno (shell). Por ejemplo, la
parte más importante del DOS es un programa con el nombre "COMMAND.COM"
Este programa tiene dos partes. El kernel, que se mantiene en memoria en todo
momento, contiene el código máquina de bajo nivel para manejar la administración
de hardware para otros programas que necesitan estos servicios, y para la
segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos.
Estructura cliente – servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de
mover el código a capas superiores y eliminar la mayor parte posible del sistema
operativo para mantener un núcleo mínimo. El punto de vista usual es el de
implantar la mayoría de las funciones del sistema operativo en los procesos del
usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo,
un proceso del usuario (denominado proceso cliente) envía la solicitud a un
proceso servidor, que realiza entonces el trabajo y regresa la respuesta. En este
modelo, que se muestra en la figura 4, lo único que hace el núcleo es controlar la
comunicación entre los clientes y los servidores. Al separar el sistema operativo en
partes, cada una de ellas controla una faceta del sistema, como el servicio a
archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada
parte es pequeña y controlable. Además como todos los servidores se ejecutan
como procesos en modo usuario y no en modo núcleo, no tienen acceso directo al
hardware. En consecuencia si hay un error en el servidor de archivos, éste puede
fallar, pero esto no afectará en general a toda la máquina.
Máquina Virtual
Se trata de un tipo de sistemas operativos que presentan una interface a cada
proceso, mostrando una máquina que parece idéntica a la máquina real
subyacente. Estos sistemas operativos separan dos conceptos que suelen estar
unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El
objetivo de los sistemas operativos de máquina virtual es el de integrar distintos
sistemas operativos dando la sensación de ser varias máquinas diferentes.
1.6-NUCLEO
Todas las operaciones en las que participan procesos son controladas por la parte
del sistema operativo denominada núcleo (nucleus, core o kernel, en inglés). El
núcleo normalmente representa sólo una pequeña parte de lo que por lo general
se piensa que es todo el sistema operativo, pero es tal vez el código que más se
utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal,
mientras que otras partes del sistema operativo son cargadas en la memoria
principal sólo cuando se necesitan.
Los núcleos se diseñan para realizar "el mínimo" posible de procesamiento en
cada interrupción y dejar que el resto lo realice el proceso apropiado del sistema,
que puede operar mientras el núcleo se habilita para atender otras interrupciones.
El Kernel consiste en la parte principal del codigo del sistema operativo, el cual se
encargan de controlar y administrar los servicios y peticiones de recursos y de
hardware con respecto a uno o varios procesos, en otras palabras, el kernel es el
corazon del sistema operativo.
Cada sistema operativo tiene un tipo distinto de kernel: asi los Unix mas
tradicionales como FreeBSD usan un kernel " monolitico" en el que esta todo
compilado dentro, otros usan los llamados "microkernels" como el Darwin, Hurd e
incluso Windows (krnl32.dll). GNU/Linux usa un kernel "modular" (vmlinuz); un
nucleo bastante grande comparado con un microkernel, pero que es capaz de
delegar funciones en los llamados " modulos" , partes independientes del nucleo
que pueden ser incorporadas dinamicamente si hacen falta y luego descargadas si
molestan. Asi se pueden cargar "drivers" para hardware, firewall o funciones
especiales de red (ppp, rdsi, etc) cuando se necesiten y cuando por ejemplo, se
cierre la conexion a internet, liberar la memoria que usaba ese modulo.
El núcleo de un sistema operativo normalmente contiene el código necesario para
realizar las siguientes funciones:
•
•
•
•
•
•
•
•
•
•
•
Manejo de interrupciones.
Creación y destrucción de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensión y reanudación de procesos.
Sincronización de procesos.
Comunicación entre procesos.
Manipulación de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
Apoyo para asignación y liberación de memoria.
Apoyo para el sistema de archivos.
•
•
•
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.
Núcleo o Kernel y niveles de un Sistema Operativo.
El Kernel consiste en la parte principal del código del sistema operativo, el cual se
encargan de controlar y administrar los servicios y peticiones de recursos y de
hardware con respecto a uno o varios procesos, este se divide en 5 capas:
•
•
•
•
•
Nivel 1. Gestión de Memoria: que proporciona las facilidades de bajo nivel
para la gestión de memoria secundaria necesaria para la ejecución de
procesos.
Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para
cada uno de los procesos, creando interrupciones de hardware cuando no
son respetadas.
Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los
dispositivos de E/S requeridos por procesos.
Nivel 4. Información o Aplicación o Interprete de Lenguajes: Facilita la
comunicación con los lenguajes y el sistema operativo para aceptar las
ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando
un programa el software de este nivel crea el ambiente de trabajo e invoca
a los procesos correspondientes.
Nivel 5. Control de Archivos: Proporciona la facilidad para el
almacenamiento a largo plazo y manipulación de archivos con nombre, va
asignando espacio y acceso de datos en memoria.
ADMINISTRACION DE PROCESOS Y DEL
PROCESADOR
2.1- CONCEPTO DE PROCESO
Un proceso no es más que un programa en ejecución, e incluye los valores
actuales del contador de programa, los registros y las variables. Conceptualmente
cada uno de estos procesos tienen su propia CPU virtual. Desde luego, en la
realidad la verdadera CPU conmuta de un proceso a otro.
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.
2.2- ESTADOS Y TRANSICIONES DE LOS PROCESOS
Nuevo Se solicitó al sistema operativo la creación de un proceso, y sus recursos y estructuras están
siendo creadas. Listo Está listo para iniciar o continuar su ejecución pero el sistema no le ha
asignado un procesador. En ejecución El proceso está siendo ejecutado en este momento. Sus
instrucciones están siendo procesadas en algún procesador.
Bloqueado En espera de algún evento para poder continuar su ejecución (aun si hubiera un
procesador disponible, no podría avanzar).pcb Zombie El proceso ha finalizado su ejecución, pero
el sistema operativo debe realizar ciertas operaciones de limpieza para poder eliminarlo de la lista.
Terminado El proceso terminó de ejecutarse; sus estructuras están a la espera de ser limpiadas por
el sistema operativo.
Un proceso puede encontrarse en estado de ejecución, bloqueado o listo (que
también se llama ejecutable). De estos estados de los procesos se derivan las
siguientes transiciones y estados:
Transición: El paso de un estado a otro.
1. El proceso se bloquea en la entrada.
2. El planificador elige otro proceso.
3. El planificador elige este proceso.
4. La entrada se vuelve disponible.
Estados:
1. Ejecución (que en realidad hace uso del CPU en ese instante).
2. Bloqueado (incapaz de correr hasta que suceda algún evento externo.
3. Listo (ejecutable; se detiene temporalmente para permitir que se
ejecute otro
proceso).
En estos tres estados son posibles cuatro transiciones:
1. Ocurre cuando un proceso descubre que no puede continuar. En algún sistema
el proceso debe ejecutar una llamada al sistema, BLOCK, para entrar en estado
bloqueado.
2 y 3. Son ocasionadas por el planificador del proceso, que es parte del sistema
operativo sin que el proceso llegue a saber de ella.
2. Ocurre cuando el planificador decide que el proceso en ejecución ya ha corrido
el tiempo suficiente y es tiempo de permitir que otro proceso tome tiempo de CPU.
3. Ocurre cuando todos los procesos han utilizado su parte del tiempo y es hora de
que el primer proceso vuelva a correr.
4. Ocurre cuando aparece el evento externo que estaba esperando un proceso
(como el arribo de alguna entrada). Si ningún otro proceso corre en ese instante,
la transición 3 se activará de inmediato y el proceso iniciara su ejecución, de lo
contrario tendrá que esperar, en estado listo.
2.3- PROCESOS LIGEROS: HILOS O HEBRAS
El concepto de proceso engloba dos conceptos separados y potencialmente
independientes: uno relativo a la propiedad de recursos y otro que hace referencia
a la ejecución.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y,
de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o
ficheros.
Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución
(una traza) a través de uno o más programas. Esta ejecución se entremezcla con
la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución,
listo, etc) y una prioridad de expedición u origen. La unidad planificada y expedida
por el sistema operativo es el proceso.
En la mayoría de los sistemas operativos, estas dos características son, de hecho,
la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas
como tales por el sistema operativo. Esta distinción ha conducido en los sistemas
operativos actuales a desarrollar la construcción conocida como thread, cuyas
traducciones más frecuentes son hilo, hebra y proceso ligero. Si se tiene esta
división de características, la unidad de asignación de la CPU se conoce como
hilo, mientras que a la unidad que posee recursos se le llama proceso.
Un proceso ligero (thread o hebra) es un programa en ejecución que comparte la
imagen de la memoria y otras informaciones con otros procesos ligeros.
Los procesos ligeros son una unidad básica de utilización de la CPU consistente
en un juego de registros y un espacio de pila. Comparte el código, los datos y los
recursos con sus hebras pares
Una tarea (o proceso pesado) está formada ahora por una o más hebras
Una hebra sólo puede pertenecer a una tarea
CARACTERISTICAS
Se comparten recursos. La compartición de la memoria permite a las hebras pares
comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO.
La conmutación de contexto es más rápida gracias al extenso compartir de
recursos
No hay protección entre las hebras. Una hebra puede escribir en la pila de otra
hebra del mismo proceso
Un proceso ligero puede estar ejecutando, listo o bloqueado
* en ejecución
* expulsión
* activo
* planificación
* bloqueado
* suspensión
* activación
2.4- CONCURRENCIA Y SENCUENCIALIDAD
Es la existencia de varias actividades ejecutándose simultáneamente, y necesitan
sincronizarse para actuar conjuntamente. Se trata, en este caso, de un concepto
lógico, ya que sólo hace referencia a las actividades, sin importar el número de
procesadores presentes.
Para que dos actividades, sean concurrentes, es necesario que tengan relación
entre sí, como puede ser la cooperación en un trabajo determinado o el uso de
información compartida.
Los procesos del sistema pueden ejecutarse concurrentemente, puede haber
múltiples tareas en el CPU con varios procesos. Existen varias razones para
permitir la ejecución concurrente:
Compartir recursos físicos: Ya que los recursos del hardware de la computadora
son limitados, nos podemos ver obligados a compartirlos en un entorno
multiusuario.
Compartir recursos lógicos: Puesto que varios usuarios pueden interesarse en el
mismo elemento de información (por ejemplo un archivo compartido), debemos
proporcionar un entorno que permita el acceso concurrente a estos tipos de
recursos.
Acelerar los cálculos: Si queremos que una tarea se ejecute con mayor rapidez,
debemos dividirla en subtareas, cada una de las cuales se ejecutara, en paralelo
con las demás.
Modularidad: Podremos construir el sistema en forma modular, dividiendo las
funciones del sistema en procesos separados.
Comodidad: Un usuario puede tener que ejecutar varias tareas a la vez, por
ejemplo puede editar, imprimir y compilar en paralelo.
Los archivos secuenciales son un tipo de archivo en los que la información puede
leerse y escribirse empezando desde el principio del archivo.
Debemos tomar en consideración algunas características que deben tener los
archivos secuenciales:
1. La escritura de nuevos datos siempre se hace al final del archivo.
2. Para leer una zona concreta del archivo hay que avanzar siempre, si la zona
está antes de la zona actual de lectura, será necesario "rebobinar" el archivo.
3. Los ficheros sólo se pueden abrir para lectura o para escritura, nunca de los dos
modos a la vez.
2.5- NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACION
La planificación es el proceso por el cual el sistema operativo selecciona que
proceso ejecutar. La selección del proceso se basa en alguno de los algoritmos de
planificación.
La planificación de la CPU, en el sentido de conmutarla entre los distintos
procesos, es una de las funciones del sistema operativo. Este despacho es llevado
a cabo por un pequeño programa llamado planificador a corto plazo o dispatcher
(despachador). La misión del dispatcher consiste en asignar la CPU a uno de los
procesos ejecutables del sistema, para ello sigue un determinado algoritmo.
Los acontecimientos que pueden provocar la llamada al dispatcher dependen del
sistema (son un subconjunto de las interrupciones), pero son alguno de estos:
El proceso en ejecución acaba su ejecución o no puede seguir ejecutándose (por
una E/S, operación WAIT, etc).
Un elemento del sistema operativo ordena el bloqueo del proceso en ejecución
El proceso en ejecución agota su cuantum o cuanto de estancia en la CPU.
Un proceso pasa a estado listo.
•
•
•
Planificación largo plazo
Planificación medio plazo
Planificación corto plazo
Los objetivos del planificador se resumen en:
a) Reparto equitativo del tiempo de procesador
b) Eficiencia en el uso del procesador
c) Menor tiempo de respuesta en uso interactivo
d) Cumplir plazos de ejecución de los sistemas de tiempo real
En particular, una disciplina de planificación debe:
Ser equitativa: debe intentar hacer una planificación justa, esto es, se debe tratar a
todos los procesos de la misma forma y no aplazar indefinidamente ningún
proceso. La mejor forma de evitarlo es emplear alguna técnica de envejecimiento;
es decir, mientras un proceso espera un recurso, su prioridad debe crecer.
Ser eficiente: debe maximizar el uso de los recursos tales como intentar que la
ocupación de la CPU sea máxima. Al mismo tiempo se debe intentar reducir el
gasto extra por considerar que es trabajo no productivo. Normalmente el idear
algoritmos eficientes supone invertir recursos en gestión del propio sistema.
Lograr un tiempo bueno de respuesta, es decir, que los usuarios interactivos
reciban respuesta en tiempos aceptables.
Lograr un tiempo de proceso global predecible. Esto quiere decir que un proceso
debe ejecutarse aproximadamente en el mismo tiempo y casi al mismo costo con
independencia de la carga del sistema.
Elevar al máximo la productividad o el rendimiento, esto es, maximizar el número
de trabajos procesados por unidad de tiempo. Eso supone, por un lado, dar
preferencia a los procesos que ocupan recursos decisivos y, por otro, favorecer a
los procesos que muestran un comportamiento deseable. En el primer caso
conseguimos liberar el recurso cuanto antes para que esté disponible para un
proceso de mayor prioridad. Con el segundo criterio escogemos a los procesos
que no consumen muchos recursos dejándole al sistema mayor capacidad de
actuación.
2.6- TECNICAS DE ADMINISTRACION DEL PLANIFICADOR
Planificación Primero en llegar - Primero en Salir (FIFO).
Los procedimientos son despachados de acuerdo con el orden de llegada a la cola
de listos. Una vez que un proceso tiene el CPU, se ejecuta hasta su terminación.
Esta planificación es No apropiativa; es justa en el sentido formal, pero algo injusta
porque los grandes procesos hacen esperar a trabajos pequeños y, los trabajos
sin importancia hacen esperar a los trabajos importantes.
La Planificación FIFO ofrece una varianza en tiempo de respuesta relativamente
pequeña y es, por tanto, más predecible que otros esquemas; no es un esquema
útil en la planificación de procesos interactivos porque no garantiza buenos
tiempos de respuesta.También se puede implementar mediante la utilización de
una lista. Se reemplazan las páginas de la cabeza y se agregan al final.
Planificación por Prioridad al más corto (SJF, Short Job First).
La disciplina del trabajo más corto primero es NO apropiativa y en ella el trabajo o
proceso con tiempo estimado de ejecución hasta terminación más corto, es el
siguiente en ser ejecutado. El SJF reduce el tiempo de espera de los procesos, sin
embargo, tiene una varianza mayor (es decir, es menos predecible) que en FIFO,
sobre todo para los trabajos largos.
SJF favorece a los procesos cortos a costa de los procesos largos. Además,
selecciona los trabajos que serán atendidos y que dejarán el sistema lo antes
posible. Esto último traduce en listas de espera cortas. El SJF es NO apropiativo
por lo que resulta de poca utilidad en ambientes de tiempo
Planificación por Prioridad al Tiempo Restante más Corto
(SRTF, Short Remaining Time First).
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.
Planificación del tiempo restante más corto primero (SRT).
La SRT es apropiativa, en ella el proceso con el tiempo estimado de ejecución
menor para llegar a su terminación es el siguiente en ser ejecutado, incluyendo las
nuevas llegadas. En la disciplina SJF, una vez que el trabajo comienza su
ejecución sigue hasta que termina. En SRT, un proceso en ejecución puede ser
apropiado por un nuevo proceso con n tiempo estimado de ejecución menor.
La SRT tiene una sobrecarga mayor que la SJF. Debe mantener un registro del
tiempo de servicio transcurrido del trabajo en ejecución y debe controlar las
apropiaciones ocasionales.
Planificación Round Robin (RR)
El esquema Round robin es efectivo en un ambiente de tiempo compartido en el
cual el sistema necesita garantizar un tiempo de respuesta razonable para los
usuarios interactivos. La sobre carga de la apropiación se mantiene baja mediante
eficientes mecanismos de cambio de contexto y proporcionado suficiente memoria
para que los procesos residan en ella al mismo tiempo.
Existe una variante de este esquema llamada selfish round robin (SRR). En este
esquema los procesos que entran al sistema se colocan primero en una lista de
espera hasta que su prioridad alcanza el nivel de proceso para la lista de activos.
Mientras un proceso está en la lista de espera, su prioridad aumenta en una
relación a; cuando un proceso entra a la lista de activos su prioridad se incrementa
en una relación b.
Descargar