SlideShare a Scribd company logo
1 of 14
Download to read offline
INSTITUTO TÈCNOLOGICO SUPERIOR DE LA SIERRA NEGRA DE
                         AJALAPANA




                  MATERIA: SISTEMAS OPERATIVOS



            PROFESOR: ING. MARCO ANTONIO ISIDRO ABRIL



  TAREA: UNIDAD 2: ADMINOSTRACIÒN DE PROCESOS Y DEL PROCESADOR.



                       SEMESTRE: TERCERO



                 NOMBRE: CESAR SUAREZ GUZMAN
2.1.- CONCEPTO DE PROCESO

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 unos de estos procesos tiene su propia CPU virtual.
Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.

Estos son unos puntos más relevantes del concepto de proceso manejado en
un sistema operativo:

 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.
En este tipo de estados y de transiciones de procesos en pocas palabras esto nos dice que el
procesador se encarga de hacer y realizar para estado de proceso según como valla en
funcionamiento en sistema operativo.

Pero para que todo este procedimiento se lleve de forma adecuada, y sin ninguna interrupción es
necesario sabes el tipo de transiciones que tiene llevara estos son unos ejemplos mas comunes
dentro de ello:

La transacción 1 ocurre cuando un proceso descubre que no puede continuar.
En algunos sistemas el proceso debe ejecutar una llamada al sistema, block,
para pasar al estado bloqueado. En otros sistemas, incluido MINIX, cuando un
proceso lee de un conducto o de un archivo especial, (p.ej., una terminal) y no
hay entradas disponibles, se bloquea automáticamente.
Las transiciones 2 y 3 son causadas por el planificador de procesos, un parte
del sistema operativo, sin que el proceso se entere siquiera de ellas.

La transición 2 ocurre cuando el planificador decide que el proceso en
ejecución ya se ejecuto durante suficiente tiempo y es ahora de dejar que otros
procesos tengan algo de tiempo de CPU.

La transacción 3 ocurre cuando todos los demás procesos han disfrutado de
una porción justa y es hora de que el primer proceso reciba otra vez la CPU
para ejecutarse.

La transacción 4 ocurre cuando acontece el suceso externo que un proceso
estaba esperando (como la llegada de entrada). Sin ningún otro proceso se
esta ejecutando en ese instante, se dispara de inmediato la transacción 3 y el
proceso comienza a ejecutarse.
En caso contrario, el proceso tal vez tenga que esperar en el estado listo
durante cierto tiempo hasta que la CPU este disponible. Usando el modelo de
procesos, es mucho mas fácil visualizar lo que esta sucediendo dentro del
sistema.



2.3 PROCESOS LIGEROS (HILOS O HEBRAS)

Estos tipos de procesos esta en diferentes unidades las cuales les presento a
continuació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.

.Dentro de un proceso puede haber uno o más hilos de control cada uno con:

      Un estado de ejecución (en ejecución, listo, bloqueado)
      Un contexto de procesador, que se salva cuando no esté ejecutándose.
      Una pila de ejecución.
      Algún almacenamiento estático para variables locales.
      Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros
       hilos.

Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se
tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y
en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un
mismo proceso a varios flujos de ejecución se mantiene una única copia en memoria del
código, y no varias.

Un procesos un programa en ejecución que comparte la imagen de la memoria y otras
informaciones con otros procesos ligeros.
Es 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



ESTADOS DE LOS PROCESOS LIGEROS

Un proceso ligero puede estar ejecutando, listo o bloqueado.




PARALELISMO

Los procesos ligeros permiten paralelizar una aplicación.[3]




2.4 CONCURRENCIA Y SECUENCIABILIDAD.

La concurrencia comprende un gran número de cuestiones de diseño,
incluyendo la comunicación entre procesos, comparición y competencia por los
recursos, sincronización de la ejecución de varios procesos y asignación del
tiempo de procesador a los procesos y es fundamental para que existan
diseños como Multiprogramación, Multiproceso y Proceso distribuido
La concurrencia puede presentarse en tres contextos diferentes:
.
• Varias aplicaciones: La multiprogramación se creó para permitir que el
tiempo de procesador de la máquina fuese compartido dinámicamente entre
varios trabajos o aplicaciones activas.

• Aplicaciones estructuradas: Como ampliación de los principios del diseño
modular y la programación estructurada, algunas aplicaciones pueden
implementarse eficazmente como un conjunto de procesos concurrentes.

• Estructura del sistema operativo: Las mismas ventajas de estructuración
son aplicables a los programadores de sistemas y se ha comprobado que
algunos sistemas operativos están implementados como un conjunto de
procesos.

Existen 2 modelos de computadora en los que se pueden ejecutar procesos
concurrentes:

• Multiprogramación con un único procesador.

• Multiprocesador.

También hay diversas razones que motivan la ejecución de procesos concurrentes en
un sistema las cuales son las siguientes:

• Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez,
lo que se puede hacer es dividirla en procesos, cada uno de los cuales se
ejecuta en paralelo con los demás.

• Posibilita el uso interactivo a múltiples usuarios que trabajan de forma
simultánea.
.
• Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya
que pueden aprovechar las fases de entrada-salida de unos procesos para
realizar las fases de procesamiento de otros.

Así como existen las razones que motivan la ejecución de procesos
concurrentes, también existen sus contras:

• Inanición e interrupción de procesos
• Ocurrencia de bloqueos
• Que dos o más procesos requieran el mismo recurso (No apropiativo).


TIPOS DE PROCESOS CONCURRENTES.

Los procesos que ejecutan de forma concurrente en un sistema se pueden
clasificar como:
.
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o
cooperación de otros procesos. Un claro ejemplo de procesos independientes
son los diferentes shells que se ejecutan de forma simultánea en un sistema.

Procesos cooperantes: Son aquellos que están diseñados para trabajar
conjuntamente en alguna actividad, para lo que deben ser capaces de
comunicarse e interactuar entre ellos.
En ambos tipos de procesos (independientes y cooperantes), puede producirse
una serie de interacciones entre ellos y pueden ser de dos tipos:
.
• Interacciones motivadas porque los procesos comparten o compiten por el
acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes
compiten por el acceso a disco o para modificar una base de datos.
.
• Interacción motivada porque los procesos se comunican y sincronizan entre sí
para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios
procesos que trabajan conjuntamente para obtener un solo archivo de salida.

2.4.1 EXCLUSIÓN MUTUA DE SECCIONES CRÍTICAS.

El método más sencillo de comunicación entre los procesos de un programa
concurrente es el uso común de unas variables de datos. El problema de este sistema
es que la acción de un proceso interfiere en las acciones de otro de una forma no
adecuada. Para evitar este tipo de errores se pueden identificar aquellas regiones de
los procesos que acceden a variables compartidas y dotarlas de la posibilidad de
ejecución como si fueran una única instrucción. Se denomina sección crítica a aquellas
partes de los procesos concurrentes que no pueden ejecutarse de forma concurrente
o, que desde otro proceso se ven como si fueran una única instrucción. Esto quiere
decir que si un proceso entra a ejecutar una sección crítica en la que accede a unas
variables compartidas, entonces otro proceso no puede entrar a ejecutar una región
crítica en la que se modifique las variables compartidas con el anterior. Las secciones
críticas se pueden agrupar en clases, siendo mutuamente exclusivas las secciones
críticas de cada una. Para conseguir dicha exclusión se deben implementar protocolos
software que impidan o bloqueen el acceso a una sección crítica mientras está siendo
utilizada por un proceso.

Algunos ejemplos de algoritmos clásicos de exclusión mutua son:

      El algoritmo de Dekker.
      El algoritmo de Peterson

2.4.2 SINCRONIZACIÓN DE PROCESOS EN S.C.

Los procesos deben sincronizar sus actividades; por ejemplo, en el caso de que un
proceso no pueda progresar hasta que otro haya terminado algún tipo de actividad.

Los servicios básicos de comunicación son:

a. crear: el proceso solicita la creación del mecanismo
b. enviar o escribir: el proceso emisor envía información al proceso receptor
c. recibir o leer: el proceso receptor recibe información
d. destruir: el proceso solicita la destrucción del mecanismo de comunicación


La comunicación puede ser síncrona y asíncrona:

a. síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El
emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir.

b. asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un
almacenamiento intermedio para guardar la información enviada, hasta que el
receptor la solicite.


2.4.2.1 MECANISMO DE SEMÁFOROS.

Semáforo es un mecanismo de comunicación con el cual no se mueven datos, puesto
que solo se puede consultar y modificar su valor al tener un carácter puramente
informativo.

Los semáforos se implementan mediante una cola de tareas a la que se
añaden los procesos que están en espera del recurso. Solo se permiten tres
operaciones sobre un semáforo:
.

1. Inicializa (s: Semáforo Binario; v: integer) -- > poner el valor del semáforo s
al valor de v (0,1).

2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la
llamada y ponerla en la cola de tareas.

3. Señal (signal)(s) if cola de tareas vacía then s : = 1 else Reanudar la primera
tarea de la cola tareas.

Estas operaciones son procedimientos que se implementan como acciones
indivisibles. En sistemas con un único procesador bastará simplemente con
inhibir las interrupciones durante la ejecución de las operaciones del semáforo.
Al introducir el semáforo se crea un nuevo estado en el diagrama de
transiciones, el de espera
2.4.2.2 MECANISMO DE MONITORES.

Monitores son estructuras de datos utilizadas en lenguajes de programación
para sincronizar dos o más procesos o hilos de ejecución que usan recursos
compartidos.

COMPONENTES
.
Un monitor tiene cuatro componentes: inicialización, datos privados,
procedimientos del monitor y cola de entrada.

Inicialización: contiene el código a ser ejecutado cuando el monitor es creado

Datos privados: contiene los procedimientos privados, que sólo pueden ser
usados desde dentro del monitor y no son visibles desde fuera

Procedimientos del monitor: son los procedimientos que pueden ser
llamados desde fuera del monitor.

Cola de entrada: contiene a los threads que han llamado a algún
procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos
aún.


2.4.3.- INTERBLOQUEO (DEADLOCK)

Es un conjunto de procesos se encuentra en estado de interbloqueo cuando cada
uno de ellos espera un suceso que solo puede originar otro proceso del mismo
conjunto.
RECURSOS

Un sistema se compone de un numero finito de recursos que se distribuyen
entre varios tipos:

      Físicos: Ciclo de cpu, espacio en memoria, dispositivos de e/s
       (impresoras, unidades de cinta, etc.)
      Lógicos: Ficheros, tablas del sistemas, etc.


Por lo general, una computadora tiene distintos recursos que pueden ser
otorgados. Algunos recursos podrán tener varias instancias idénticas, como es
el caso de tres unidades de cinta. Si se tienen disponibles varias copias de un
recurso, cualquiera de ellas se pude utilizar para satisfacer cualquier solicitud
del recurso. Un recurso es cualquier cosa que solo puede ser utilizada por un
único proceso en un instante dado.
Los recursos son de dos tipos:

      Apropiable
      No apropiables



2.4.3.1.-PREVENCION DE UN INTERBLOQUEO

La estrategia básica de la prevención del interbloqueo consiste, a grandes
rasgos, en diseñar su sistema de manera que esté excluida, a priori, la
posibilidad de interbloqueo.

Los métodos para prevenir el interbloqueo son de dos tipos:

- Los métodos indirectos que consisten en impedir la aparición de alguna de las
tres condiciones necesarias para que se del interbloqueo.

- Los métodos directos que consisten en evitar la aparición del círculo vicioso
de espera.


2.4.3-2.- DETECCIÓN DEL INTERBLOQUEO

Las estrategias de prevención de interbloqueo son muy conservadoras;
resuelven el problema limitando el acceso a recursos e imponiendo
restricciones sobre los procesos. En cambio, las estrategias de detección de
interbloqueo, no limitan el acceso a recursos ni restringen las acciones del
proceso. Con la detección del interbloqueo, se concederán los recursos que los
procesos necesiten siempre que sea posible. Periódicamente, el S. O. ejecuta
un algoritmo que permite detectar la condición de circulo vicioso de espera.

ALGORITMO DE DETECCIÓN DE INTERBLOQUEO
Una comprobación para interbloqueo puede hacerse con igual o menor
frecuencia que cada solicitud de recursos, dependiendo de qué tan probable es
que ocurra un interbloqueo. Comprobar cada solicitud de recursos tiene dos
ventajas: Conduce a la detección temprana y el algoritmo es simple, de manera
relativa porque se basa en cambios crecientes al estado del sistema. Además,
las comprobaciones frecuentes consumen un tiempo considerable de
procesador.


2.4.3.3.- RECUPERACIÓN DE INTERBLOQUEO

En este tipo ahí 2 tipos de recuperación de interbloqueo

RECUPERACIÓN MANUAL


Está forma de recuperación consiste en avisarle al administrador o al operador
del sistema que se ha presentado un interbloqueo, y será el administrador el
que solucione dicho problema de la manera más conveniente posible, de modo
que su decisión no afecte demasiado a al usuario del proceso en conflicto, y
sobre todo que no afecte a los demás usuarios del sistema.

ABORTAR LOS PROCESOS

Para eliminar interbloqueos abortando un proceso, tenemos dos métodos; en
ambos, el sistema recupera todos los recursos asignados a los procesos
terminados.

1) Abortar todos los procesos interbloqueados. Esta es una de las soluciones
más comunes, adoptada por Sistemas Operativos. Este método romperá
definitivamente el ciclo de interbloqueo pero con un costo muy elevado, ya que
estos procesos efectuaron cálculos durante mucho tiempo y habrá que
descartar los resultados de estos cálculos parciales, para quizá tener que
volver a calcularlos más tarde.

2) Abortar un proceso en cada ocasión hasta eliminar el ciclo de interbloqueo.
El orden en que se seleccionan los procesos para abortarlos debe basarse en
algún criterio de costo mínimo. Después de cada aborto, debe solicitarse de
nuevo el algoritmo de detección, para ver si todavía existe el interbloqueo. Este
método cae en mucho tiempo de procesamiento adicional.


2.5 NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIÓN

NIVELES DE PLANIFICACIÓN
.
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.

Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos
tiempo ocupa la CPU un programa del sistema operativo, y, por tanto, se
dedica más tiempo a los procesos del usuario (un cambio de proceso lleva
bastante tiempo).
Se puede definir el scheduling -algunas veces traducido como -planificación-
como el conjunto de políticas y mecanismos construidos dentro del sistema
operativo que gobiernan la forma de conseguir que los procesos a ejecutar
lleguen a ejecutarse.

El scheduling está asociado a las cuestiones de:

      Cuándo introducir un nuevo proceso en el Sistema.
      Determinar el orden de ejecución de los procesos del sistema.

El scheduling está muy relacionado con la gestión de los recursos. Existen tres
niveles de scheduling, estos niveles son:

      Planificador de la CPU o a corto plazo.
      Planificador a medio plazo.
      Planificador a largo plazo.

PLANIFICACIÓN A LARGO PLAZO

PLANIFICACIÓN A MEDIANO PLAZO

PLANIFICACIÓN A CORTO PLAZO
2.6 TÉCNICAS DE ADMINISTRACIÓN DEL PLANIFICADOR


Las disciplinas de planificación pueden ser:

• Expropiativas
• No Expropiativas

Se denomina planificador al software del sistema operativo encargado de
asignar los recursos de un sistema entre los procesos que los solicitan.
Siempre que haya tomar una decisión, el planificador debe decidir cuál de los
procesos que compiten por la posesión de un determinado recursos lo recibirá.

a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización.
Aunque puede parecer lógico intentar mantener este parámetro próximo al
100%, con un valor tan elevado otros aspectos importantes de medida del
comportamiento del sistema pueden verse deteriorados, como por ejemplo el
tiempo medio de espera.

b) Rendimiento: Es una medida del número de procesos completados por
unidad de tiempo. Por ejemplo 10 procesos por segundo.

c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre
desde que un proceso se crea o presenta hasta que completa por el sistema.

d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le
concede el procesador. Puede resultar una medida mas adecuada de la
eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en
ejecutarse el mismo.

e) Tiempo de respuesta a un evento: Se denomina así el intervalo de tiempo
que transcurre desde que se señala un evento hasta que se ejecuta la primera
instrucción de la rutina de servicio de dicho evento. El criterio de selección de
un algoritmo se suele basar en la maximización o minimización de una función
de los parámetros anteriores.



2.6.1. FIFO

Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la
cual se ejecutan cada uno de los procesos hasta su finalización
secuencialmente. Es tremendamente ineficiente.

Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que
llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se
bloquea voluntariamente.
Los FIFOs se usan comúnmente en circuitos de electrónica para almacenaje y
hacer control de flujo. Hablando de hardware forma un FIFO consiste
básicamente en una conjunto de punteros de lectura/escritura, almacenamiento
y lógica de control. El almacenamiento puede ser SRAM, flip-flops, latches o
cualquier otra forma adecuada de almacenamiento. Para FIFOs de un tamaño
importante se usa usualmente una SRAM de doble puerto, donde uno de los
puertos se usa para la escritura y el otro par a la lectura.


2.6.2 SJF

Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto,
sólo es útil para entornos batch. Su característica es que cuando se activa el
planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de
prioridad entre ráfagas.

Supongamos que en un momento dado existen tres ráfagas listos R1, R2 y R3,
sus tiempos de ejecución respectivos son 24, 3 y 3 ms. El proceso al que
pertenece la ráfaga R1 es la que lleva más tiempo ejecutable, seguido del
proceso al que pertenece R2 y del de R3.

• FIFO F = (24 + 27 + 30) / 3 = 27 ms.
• SJF F = (3 + 6 + 30) / 3 = 13 ms.


2.6.3 RR

Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado
cuantum o cuánto. Si el proceso agota su cuantum de tiempo, se elige a otro
proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de
agotar su cuantum también se alterna el uso de la CPU.



2.6.4 Queves Multi-level

Un algoritmo de planificación multinivel partición, la cola de listos en colas
separadas. Se asignan en forma permanente los trabajos a una cola,
generalmente, basándose en alguna propiedad del mismo (requerimientos de
memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Por ejemplo,
la cola interactiva podría planificarse usando RR y la batch FIFO.

Ningún trabajo en una cola de baja prioridad puede ejecutarse si las colas con
mayor prioridad no están vacías. Si algún trabajo entra en una cola de mayor
prioridad, el trabajo de otras colas es interrumpido.


2.6.5 Multi-Level Feedback Queves
En colas multinivel realimentadas los trabajos pueden moverse dentro de
distintas colas. La idea es separar procesos con distintos tipos de
interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, será
movido a una cola con menor prioridad.

En forma similar, si un proceso espera demasiado tiempo en una cola de baja
prioridad, lo moveremos a una cola de mayor prioridad.

En general un planificador de este tipo esta definido por los siguientes
parámetros:

1. El número de colas.

2. El tipo de algoritmo de planificación de cada cola.

3. Un método de determinación de cuando mover un trabajo a una cola de
mayor prioridad.

4. Un método de determinación de cuando mover un trabajo a una cola de
menor prioridad.

5. Un método de determinación de a qué cola se enviará un trabajo cuando
necesita servicio.

More Related Content

What's hot

Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y gruposJACKELIN SORALUZ
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosFernando Morales
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicasdanielchecar
 
Sistemas operativos multimedia
Sistemas operativos multimediaSistemas operativos multimedia
Sistemas operativos multimediaDavid Gutierrez
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.Carlos Solano
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativosAndy Lopez
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Jerarquia de la memoria
Jerarquia de la memoria Jerarquia de la memoria
Jerarquia de la memoria Fabian Rojas
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidosJC Alca Arequi
 
Cena de Filósofos
Cena de FilósofosCena de Filósofos
Cena de FilósofosMiguel Cruz
 

What's hot (20)

Thread
ThreadThread
Thread
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativos
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Ensayo ciclo De Instrucción
Ensayo ciclo De InstrucciónEnsayo ciclo De Instrucción
Ensayo ciclo De Instrucción
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
Transacciones
TransaccionesTransacciones
Transacciones
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Sistemas operativos multimedia
Sistemas operativos multimediaSistemas operativos multimedia
Sistemas operativos multimedia
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
gestión de memoria, requisitos
gestión de memoria, requisitosgestión de memoria, requisitos
gestión de memoria, requisitos
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Jerarquia de la memoria
Jerarquia de la memoria Jerarquia de la memoria
Jerarquia de la memoria
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Cena de Filósofos
Cena de FilósofosCena de Filósofos
Cena de Filósofos
 

Similar to 104842258 unidad-2-administracion-de-procesos-del-procesador

Similar to 104842258 unidad-2-administracion-de-procesos-del-procesador (20)

S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
:)Resumen
:)Resumen:)Resumen
:)Resumen
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad2
Unidad2Unidad2
Unidad2
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
Grupo1
Grupo1Grupo1
Grupo1
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Procesos de un sistema operativo
Procesos de un sistema operativoProcesos de un sistema operativo
Procesos de un sistema operativo
 
Trabajo de sistemas operativos
Trabajo de sistemas operativosTrabajo de sistemas operativos
Trabajo de sistemas operativos
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Proceso
ProcesoProceso
Proceso
 
Sistema operativo dalma
Sistema operativo dalmaSistema operativo dalma
Sistema operativo dalma
 
Sistema operativo dalma
Sistema operativo dalmaSistema operativo dalma
Sistema operativo dalma
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 

104842258 unidad-2-administracion-de-procesos-del-procesador

  • 1. INSTITUTO TÈCNOLOGICO SUPERIOR DE LA SIERRA NEGRA DE AJALAPANA MATERIA: SISTEMAS OPERATIVOS PROFESOR: ING. MARCO ANTONIO ISIDRO ABRIL TAREA: UNIDAD 2: ADMINOSTRACIÒN DE PROCESOS Y DEL PROCESADOR. SEMESTRE: TERCERO NOMBRE: CESAR SUAREZ GUZMAN
  • 2. 2.1.- CONCEPTO DE PROCESO 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 unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Estos son unos puntos más relevantes del concepto de proceso manejado en un sistema operativo:  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. En este tipo de estados y de transiciones de procesos en pocas palabras esto nos dice que el procesador se encarga de hacer y realizar para estado de proceso según como valla en funcionamiento en sistema operativo. Pero para que todo este procedimiento se lleve de forma adecuada, y sin ninguna interrupción es necesario sabes el tipo de transiciones que tiene llevara estos son unos ejemplos mas comunes dentro de ello: La transacción 1 ocurre cuando un proceso descubre que no puede continuar. En algunos sistemas el proceso debe ejecutar una llamada al sistema, block, para pasar al estado bloqueado. En otros sistemas, incluido MINIX, cuando un proceso lee de un conducto o de un archivo especial, (p.ej., una terminal) y no hay entradas disponibles, se bloquea automáticamente. Las transiciones 2 y 3 son causadas por el planificador de procesos, un parte del sistema operativo, sin que el proceso se entere siquiera de ellas. La transición 2 ocurre cuando el planificador decide que el proceso en ejecución ya se ejecuto durante suficiente tiempo y es ahora de dejar que otros procesos tengan algo de tiempo de CPU. La transacción 3 ocurre cuando todos los demás procesos han disfrutado de una porción justa y es hora de que el primer proceso reciba otra vez la CPU para ejecutarse. La transacción 4 ocurre cuando acontece el suceso externo que un proceso estaba esperando (como la llegada de entrada). Sin ningún otro proceso se esta ejecutando en ese instante, se dispara de inmediato la transacción 3 y el proceso comienza a ejecutarse.
  • 3. En caso contrario, el proceso tal vez tenga que esperar en el estado listo durante cierto tiempo hasta que la CPU este disponible. Usando el modelo de procesos, es mucho mas fácil visualizar lo que esta sucediendo dentro del sistema. 2.3 PROCESOS LIGEROS (HILOS O HEBRAS) Estos tipos de procesos esta en diferentes unidades las cuales les presento a continuació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. .Dentro de un proceso puede haber uno o más hilos de control cada uno con:  Un estado de ejecución (en ejecución, listo, bloqueado)  Un contexto de procesador, que se salva cuando no esté ejecutándose.  Una pila de ejecución.  Algún almacenamiento estático para variables locales.  Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos. Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de ejecución se mantiene una única copia en memoria del código, y no varias. Un procesos un programa en ejecución que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.
  • 4. Es 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 ESTADOS DE LOS PROCESOS LIGEROS Un proceso ligero puede estar ejecutando, listo o bloqueado. PARALELISMO Los procesos ligeros permiten paralelizar una aplicación.[3] 2.4 CONCURRENCIA Y SECUENCIABILIDAD. La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, comparición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos y es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso distribuido
  • 5. La concurrencia puede presentarse en tres contextos diferentes: . • Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas. • Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. • Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos. Existen 2 modelos de computadora en los que se pueden ejecutar procesos concurrentes: • Multiprogramación con un único procesador. • Multiprocesador. También hay diversas razones que motivan la ejecución de procesos concurrentes en un sistema las cuales son las siguientes: • Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los demás. • Posibilita el uso interactivo a múltiples usuarios que trabajan de forma simultánea. . • Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros. Así como existen las razones que motivan la ejecución de procesos concurrentes, también existen sus contras: • Inanición e interrupción de procesos • Ocurrencia de bloqueos • Que dos o más procesos requieran el mismo recurso (No apropiativo). TIPOS DE PROCESOS CONCURRENTES. Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como: .
  • 6. Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema. Procesos cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos: . • Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos. . • Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida. 2.4.1 EXCLUSIÓN MUTUA DE SECCIONES CRÍTICAS. El método más sencillo de comunicación entre los procesos de un programa concurrente es el uso común de unas variables de datos. El problema de este sistema es que la acción de un proceso interfiere en las acciones de otro de una forma no adecuada. Para evitar este tipo de errores se pueden identificar aquellas regiones de los procesos que acceden a variables compartidas y dotarlas de la posibilidad de ejecución como si fueran una única instrucción. Se denomina sección crítica a aquellas partes de los procesos concurrentes que no pueden ejecutarse de forma concurrente o, que desde otro proceso se ven como si fueran una única instrucción. Esto quiere decir que si un proceso entra a ejecutar una sección crítica en la que accede a unas variables compartidas, entonces otro proceso no puede entrar a ejecutar una región crítica en la que se modifique las variables compartidas con el anterior. Las secciones críticas se pueden agrupar en clases, siendo mutuamente exclusivas las secciones críticas de cada una. Para conseguir dicha exclusión se deben implementar protocolos software que impidan o bloqueen el acceso a una sección crítica mientras está siendo utilizada por un proceso. Algunos ejemplos de algoritmos clásicos de exclusión mutua son:  El algoritmo de Dekker.  El algoritmo de Peterson 2.4.2 SINCRONIZACIÓN DE PROCESOS EN S.C. Los procesos deben sincronizar sus actividades; por ejemplo, en el caso de que un proceso no pueda progresar hasta que otro haya terminado algún tipo de actividad. Los servicios básicos de comunicación son: a. crear: el proceso solicita la creación del mecanismo b. enviar o escribir: el proceso emisor envía información al proceso receptor
  • 7. c. recibir o leer: el proceso receptor recibe información d. destruir: el proceso solicita la destrucción del mecanismo de comunicación La comunicación puede ser síncrona y asíncrona: a. síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir. b. asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento intermedio para guardar la información enviada, hasta que el receptor la solicite. 2.4.2.1 MECANISMO DE SEMÁFOROS. Semáforo es un mecanismo de comunicación con el cual no se mueven datos, puesto que solo se puede consultar y modificar su valor al tener un carácter puramente informativo. Los semáforos se implementan mediante una cola de tareas a la que se añaden los procesos que están en espera del recurso. Solo se permiten tres operaciones sobre un semáforo: . 1. Inicializa (s: Semáforo Binario; v: integer) -- > poner el valor del semáforo s al valor de v (0,1). 2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la llamada y ponerla en la cola de tareas. 3. Señal (signal)(s) if cola de tareas vacía then s : = 1 else Reanudar la primera tarea de la cola tareas. Estas operaciones son procedimientos que se implementan como acciones indivisibles. En sistemas con un único procesador bastará simplemente con inhibir las interrupciones durante la ejecución de las operaciones del semáforo. Al introducir el semáforo se crea un nuevo estado en el diagrama de transiciones, el de espera
  • 8. 2.4.2.2 MECANISMO DE MONITORES. Monitores son estructuras de datos utilizadas en lenguajes de programación para sincronizar dos o más procesos o hilos de ejecución que usan recursos compartidos. COMPONENTES . Un monitor tiene cuatro componentes: inicialización, datos privados, procedimientos del monitor y cola de entrada. Inicialización: contiene el código a ser ejecutado cuando el monitor es creado Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera Procedimientos del monitor: son los procedimientos que pueden ser llamados desde fuera del monitor. Cola de entrada: contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún. 2.4.3.- INTERBLOQUEO (DEADLOCK) Es un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que solo puede originar otro proceso del mismo conjunto.
  • 9. RECURSOS Un sistema se compone de un numero finito de recursos que se distribuyen entre varios tipos:  Físicos: Ciclo de cpu, espacio en memoria, dispositivos de e/s (impresoras, unidades de cinta, etc.)  Lógicos: Ficheros, tablas del sistemas, etc. Por lo general, una computadora tiene distintos recursos que pueden ser otorgados. Algunos recursos podrán tener varias instancias idénticas, como es el caso de tres unidades de cinta. Si se tienen disponibles varias copias de un recurso, cualquiera de ellas se pude utilizar para satisfacer cualquier solicitud del recurso. Un recurso es cualquier cosa que solo puede ser utilizada por un único proceso en un instante dado. Los recursos son de dos tipos:  Apropiable  No apropiables 2.4.3.1.-PREVENCION DE UN INTERBLOQUEO La estrategia básica de la prevención del interbloqueo consiste, a grandes rasgos, en diseñar su sistema de manera que esté excluida, a priori, la posibilidad de interbloqueo. Los métodos para prevenir el interbloqueo son de dos tipos: - Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones necesarias para que se del interbloqueo. - Los métodos directos que consisten en evitar la aparición del círculo vicioso de espera. 2.4.3-2.- DETECCIÓN DEL INTERBLOQUEO Las estrategias de prevención de interbloqueo son muy conservadoras; resuelven el problema limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las estrategias de detección de interbloqueo, no limitan el acceso a recursos ni restringen las acciones del proceso. Con la detección del interbloqueo, se concederán los recursos que los procesos necesiten siempre que sea posible. Periódicamente, el S. O. ejecuta un algoritmo que permite detectar la condición de circulo vicioso de espera. ALGORITMO DE DETECCIÓN DE INTERBLOQUEO
  • 10. Una comprobación para interbloqueo puede hacerse con igual o menor frecuencia que cada solicitud de recursos, dependiendo de qué tan probable es que ocurra un interbloqueo. Comprobar cada solicitud de recursos tiene dos ventajas: Conduce a la detección temprana y el algoritmo es simple, de manera relativa porque se basa en cambios crecientes al estado del sistema. Además, las comprobaciones frecuentes consumen un tiempo considerable de procesador. 2.4.3.3.- RECUPERACIÓN DE INTERBLOQUEO En este tipo ahí 2 tipos de recuperación de interbloqueo RECUPERACIÓN MANUAL Está forma de recuperación consiste en avisarle al administrador o al operador del sistema que se ha presentado un interbloqueo, y será el administrador el que solucione dicho problema de la manera más conveniente posible, de modo que su decisión no afecte demasiado a al usuario del proceso en conflicto, y sobre todo que no afecte a los demás usuarios del sistema. ABORTAR LOS PROCESOS Para eliminar interbloqueos abortando un proceso, tenemos dos métodos; en ambos, el sistema recupera todos los recursos asignados a los procesos terminados. 1) Abortar todos los procesos interbloqueados. Esta es una de las soluciones más comunes, adoptada por Sistemas Operativos. Este método romperá definitivamente el ciclo de interbloqueo pero con un costo muy elevado, ya que estos procesos efectuaron cálculos durante mucho tiempo y habrá que descartar los resultados de estos cálculos parciales, para quizá tener que volver a calcularlos más tarde. 2) Abortar un proceso en cada ocasión hasta eliminar el ciclo de interbloqueo. El orden en que se seleccionan los procesos para abortarlos debe basarse en algún criterio de costo mínimo. Después de cada aborto, debe solicitarse de nuevo el algoritmo de detección, para ver si todavía existe el interbloqueo. Este método cae en mucho tiempo de procesamiento adicional. 2.5 NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIÓN NIVELES DE PLANIFICACIÓN . 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.
  • 11. 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. Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos tiempo ocupa la CPU un programa del sistema operativo, y, por tanto, se dedica más tiempo a los procesos del usuario (un cambio de proceso lleva bastante tiempo). Se puede definir el scheduling -algunas veces traducido como -planificación- como el conjunto de políticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse. El scheduling está asociado a las cuestiones de:  Cuándo introducir un nuevo proceso en el Sistema.  Determinar el orden de ejecución de los procesos del sistema. El scheduling está muy relacionado con la gestión de los recursos. Existen tres niveles de scheduling, estos niveles son:  Planificador de la CPU o a corto plazo.  Planificador a medio plazo.  Planificador a largo plazo. PLANIFICACIÓN A LARGO PLAZO PLANIFICACIÓN A MEDIANO PLAZO PLANIFICACIÓN A CORTO PLAZO
  • 12. 2.6 TÉCNICAS DE ADMINISTRACIÓN DEL PLANIFICADOR Las disciplinas de planificación pueden ser: • Expropiativas • No Expropiativas Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya tomar una decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de un determinado recursos lo recibirá. a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización. Aunque puede parecer lógico intentar mantener este parámetro próximo al 100%, con un valor tan elevado otros aspectos importantes de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera. b) Rendimiento: Es una medida del número de procesos completados por unidad de tiempo. Por ejemplo 10 procesos por segundo. c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que completa por el sistema. d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida mas adecuada de la eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en ejecutarse el mismo. e) Tiempo de respuesta a un evento: Se denomina así el intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina de servicio de dicho evento. El criterio de selección de un algoritmo se suele basar en la maximización o minimización de una función de los parámetros anteriores. 2.6.1. FIFO Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la cual se ejecutan cada uno de los procesos hasta su finalización secuencialmente. Es tremendamente ineficiente. Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.
  • 13. Los FIFOs se usan comúnmente en circuitos de electrónica para almacenaje y hacer control de flujo. Hablando de hardware forma un FIFO consiste básicamente en una conjunto de punteros de lectura/escritura, almacenamiento y lógica de control. El almacenamiento puede ser SRAM, flip-flops, latches o cualquier otra forma adecuada de almacenamiento. Para FIFOs de un tamaño importante se usa usualmente una SRAM de doble puerto, donde uno de los puertos se usa para la escritura y el otro par a la lectura. 2.6.2 SJF Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto, sólo es útil para entornos batch. Su característica es que cuando se activa el planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de prioridad entre ráfagas. Supongamos que en un momento dado existen tres ráfagas listos R1, R2 y R3, sus tiempos de ejecución respectivos son 24, 3 y 3 ms. El proceso al que pertenece la ráfaga R1 es la que lleva más tiempo ejecutable, seguido del proceso al que pertenece R2 y del de R3. • FIFO F = (24 + 27 + 30) / 3 = 27 ms. • SJF F = (3 + 6 + 30) / 3 = 13 ms. 2.6.3 RR Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuánto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU. 2.6.4 Queves Multi-level Un algoritmo de planificación multinivel partición, la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una cola, generalmente, basándose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Por ejemplo, la cola interactiva podría planificarse usando RR y la batch FIFO. Ningún trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no están vacías. Si algún trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido. 2.6.5 Multi-Level Feedback Queves
  • 14. En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. La idea es separar procesos con distintos tipos de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, será movido a una cola con menor prioridad. En forma similar, si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad. En general un planificador de este tipo esta definido por los siguientes parámetros: 1. El número de colas. 2. El tipo de algoritmo de planificación de cada cola. 3. Un método de determinación de cuando mover un trabajo a una cola de mayor prioridad. 4. Un método de determinación de cuando mover un trabajo a una cola de menor prioridad. 5. Un método de determinación de a qué cola se enviará un trabajo cuando necesita servicio.