SlideShare una empresa de Scribd logo
1 de 24
Proceso
San Lorenzo-Paraguay
        2013
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.
Procesos Paralelos
               
Es un proceso empleado para acelerar el tiempo de ejecución de un
programa dividiéndolo en múltiples trozos que se ejecutarán al
mismo tiempo, cada uno en su propios procesadores.
CARACTERÍSTICAS
 Posee dos o más procesadores de uso general similares y de
   capacidades comparables.
    Todos los procesadores comparten el acceso a una memoria
   global.
    También pueden utilizarse algunas memorias locales
   (privadas como la cache).
    Todos los procesadores comparten el acceso a los dispositivos
   de E/S, bien a través de los mismos canales bien a través de
   canales distintos que proporcionan caminos de acceso a los
   mismos dispositivos.
    El sistema está controlado por un sistema operativo
   integrado que permite la interacción entre los procesadores y
   sus programas en los niveles de trabajo, tarea, fichero, y datos
   elementales.
VENTAJAS Y DESVENTAJAS

Existen algunos factores que trabajan en contra de la eficiencia del
paralelismo y pueden atenuar tanto la ganancia de velocidad como
la ampliabilidad.

                                
     Costes de inicio: en una operación paralela compuesta por miles de
  proceso, el tiempo de inicio puede llegar ser mucho mayor que le
  tiempo real de procesamiento, lo que influye negativamente en la
  ganancia de velocidad.
    Interferencia: como lo procesos que se ejecutan en un proceso
  paralelo acceden con frecuencia a recursos compartidos, pueden sufrir
  un cierto retardo como consecuencia de la interferencia de cada nuevo
  proceso en la competencia, este fenómeno afecta tanto la ganancia de
  velocidad como la ampliabilidad.
    Sesgo: normalmente es difícil dividir una tarea en partes
  exactamente iguales, entonces se dice que la forma de distribución de
  los tamaños es sesgada.

El procesamiento paralelo implica una serie de dificultades a nivel
programación de software, es difícil lograr una optimización en el
aprovechamiento de los recursos de todas las CPU con el que se esté
trabajando sin que se formen cuello de botella. En muchas de las ocasiones
no es posible el trabajar con equipos multiprocesadores dado el elevado
costo que este representa, así que solo se dedica a ciertas áreas de
investigación especializada o proyectos gubernamentales o empresariales.
Interbloqueos
                  
En un entorno de multiprogramación varios procesos
pueden competir por un número finito de recursos. Un
procesos solicita recursos y, si los recursos no están
disponibles en ese momento, el proceso pasa al estado
de espera. Es posible que algunas veces, un proceso en
espera no pueda nunca cambiar de estado, porque los
recursos que ha solicitado estén ocupados por otro
proceso que a su vez esté esperando de otros recursos.
Cuando se produce una situación como esta se dice que
ha ocurrido un interbloqueo.
Caracterización de los interbloqueos
En un interbloqueo, los procesos nunca terminan de
ejecutarse y los recursos.

                            
Métodos para tratar los inter bloqueos

Podemos abordar el problema de los inter bloqueos de las
siguientes tres formas.
• Podemos emplear un protocolo para impedir o evitar los
interbloqueos, asegurando que el sistema nunca entre en
estado de interbloqueo.
• Podemos permitir que el sistema entre en estado
interbloqueo, detectarlo y realizar una recuperación.
• Podemos ignorar el problema y actuar como si nunca se
produjeran interbloqueos en el sistema.
La tercera solución es la que utilizan la mayoría de los
sistemas operativos.
Evasión de interbloqueos
Los algoritmos de prevención de interbloqueos impiden los
interbloqueos restringiendo el modo en que pueden hacerse las
solicitudes, estas restricciones aseguran que al menos una de las

                              
condiciones necesarias para que haya interbloqueo no se produzca
y, por tanto no pueda aparecer interbloqueos.
Sin embargo, esta técnica de prevención de interbloqueos tiene
algún posible efecto colateral, como son una baja tasa de
utilización de los dispositivos y un menor rendimiento del sistema.
Un posible método para evitar los interbloqueos consiste en
requerir información adicional sobre cómo van a hacer solicitados
los recursos.

Detección de interbloqueos.
Si un sistema no emplea ni algoritmos de prevención ni de evasión
de interbloqueos, entonces puede producirse una situación de
interbloqueo en el sistema. En este caso el sistema debe
proporcionar:
• Un algoritmo que Examine el estado del sistema para determinar
si se ha producido un interbloqueo.
• Un algoritmo para recuperarse del interbloqueo.
Modelos de Procesos
            
El sistema operativo para permitir la
multiprogramación y la concurrencia requiere de un
modelo de procesos que ofrezca el soporte necesario
para proveerla.

Multiprogramación:
 La cpu alterna de programa en programa, en un
esquema de seudoparalelismo (Paralelismo virtual), es
decir que la cpu ejecuta en cierto instante un solo
programa, intercambiando muy rápidamente entre uno
y otro.
Paralelismo real de hardware:
Cuando se ejecutan las instrucciones de un programa con
                         
más de un procesador. El modelo de procesos sirve para
aumentar el paralelismo en la ejecución. Está compuesto
básicamente por PCB (Process Control Block), Tabla de
Procesos, Estados y transiciones de los procesos.
 El paralelismo real de hardware se da en las siguientes
situaciones:
 En ejecución de instrucciones de programa con más de un
    procesador de instrucciones en uso simultáneamente.
 Con la superposición de ejecución de instrucciones de
    programa con la ejecución de una o más operaciones de
    entrada / salida.
El objetivo es aumentar el paralelismo en la ejecución.
Jerarquía entre procesos
                           de una forma de
Los Sistemas Operativos deben disponer
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
 Los procesos pueden bloquearse en su ejecución porque:
_Desde el punto de vista lógico no puede continuar porque
espera datos que aún no están disponibles.
_El Sistema Operativo asignó la cpu a otro proceso.
La secuencia de creación de procesos genera un árbol
de procesos. Para referirse a las relaciones entre los
procesos de la jerarquía se emplean los términos de
padre, hermano o abuelo. Cuando el proceso A solicita
                          
al sistema operativo que cree el proceso B, se dice que A
es padre de B y que B es hijo de A. Bajo esta óptica, la
jerarquía de procesos puede considerarse como un
árbol genealógico. Algunos sistemas operativos, como
Unix, mantienen de forma explícita esta estructura
jerárquica de procesos – un proceso sabe quién es su
padre -, mientras que otros sistemas operativos como el
Windows NT no la mantienen.
 Los estados que puede tener un proceso son:
En ejecución: utiliza la cpu en el instante dado.
Listo: ejecutable, se detiene en forma temporal para que
se ejecute otro proceso. 
Bloqueado: no se puede ejecutar debido a la ocurrencia
de algún evento externo.
 Son posibles cuatro transiciones entre estos estados.
Estados del SO
                 
Modelos de dos estados:
El modelo de estados más simple es el de dos estados.
En este modelo, un proceso puede estar ejecutándose o
no. Cuando se crea un nuevo proceso, se pone en
estado de No ejecución. En algún momento el proceso
que se está ejecutando pasará al estado No ejecución y
otro proceso se elegirá de la lista de procesos listos para
ejecutar para ponerlo en estado Ejecución.
Modelo de tres estados:




                                 
Para poder manejar convenientemente una administración de
procesador es necesario contar con un cierto juego de datos. Ese juego
de datos será una tabla (BCP o en inglés PCB) en la cual se reflejará en
qué estado se encuentra el proceso, por ejemplo, si está ejecutando o
no. Los procesos, básicamente, se van a encontrar en este caso, en tres
estados:
- Ejecutando.
- Listos para la ejecución.
- Bloqueados por alguna razón.

Sobre la base de estos estados se construye lo que se denomina
Diagrama de Transición de Estado (DTE). Estar en la cola de Listos
significa que el único recurso que a ese proceso le está haciendo falta
es el recurso procesador. O sea, una vez seleccionado de esta cola pasa
al estado de Ejecución. Se tiene una transición al estado de Bloqueados
cada vez que el proceso pida algún recurso. Una vez que ese
requerimiento ha sido satisfecho, el proceso pasará al estado de Listo
porque ya no necesita otra cosa más que el recurso procesador.
Modelo de cinco estados:
El modelo anterior de dos estados funcionaría
bien con una cola FIFO y planificación por
turno rotatorio para los procesos que no están
                       
en ejecución, si los procesos estuvieran siempre
listos para ejecutar. En la realidad, los procesos
utilizan datos para operar con ellos, y puede
suceder que no se encuentren listos, o que se
deba esperar algún suceso antes de continuar,
como una operación de Entrada/Salida. Es por
esto que se necesita un estado donde los
procesos permanezcan bloqueados esperando
hasta que puedan proseguir. Se divide entonces
al estado No ejecución en dos estados: Listo y
Bloqueado. Se agregan además un estado
Nuevo y otro Terminado.

Los cinco estados de este diagrama son los siguientes:
   Ejecución: el proceso está actualmente en ejecución.
   Listo: el proceso está listo para ser ejecutado, sólo está esperando
que el planificador así lo disponga.
   Bloqueado: el proceso no puede ejecutar hasta que no se
produzca cierto suceso, como una operación de Entrada/Salida.
   Nuevo: El proceso recién fue creado y todavía no fue admitido
por el sistema operativo. En general los procesos que se encuentran
en este estado todavía no fueron cargados en la memoria principal.
   Terminado: El proceso fue expulsado del grupo de procesos
ejecutables, ya sea porque terminó o por algún fallo, como un error
de protección, aritmético, etc.
Modelos de siete estados:
Procesos suspendidos Una de las razones para implementar
el estado Bloqueado era poder hacer que los procesos se
puedan mantener esperando algún suceso, por ejemplo una

                           
Entrada/Salida. Sin embargo, al ser mucho más lentas estas
operaciones, puede suceder en nuestro modelo de cinco
estados que todos los procesos en memoria estén esperando
en el estado Bloqueado y que no haya más memoria
disponible para nuevos procesos. Podría conseguirse más
memoria, aunque es probable que esto sólo permita procesos
más grandes y no necesariamente nuevos procesos. Además
hay un costo asociado a la memoria y de cualquier forma es
probable que se llegaría al mismo estado con el tiempo. Otra
solución es el intercambio. El intercambio se lleva a cabo
moviendo una parte de un proceso o un proceso completo
desde la memoria principal al disco, quedando en el estado
Suspendido. Después del intercambio, se puede aceptar un
nuevo proceso o traer a memoria un proceso suspendido
anteriormente.
El problema que se presenta ahora es que puede ser que si se
decide traer a memoria un proceso que está en el estado
Suspendido, el mismo todavía se encuentre bloqueado. Sólo
convendría traerlo cuando ya está listo para ejecutar, esto implica
                               
que ya aconteció el suceso que estaba esperando cuando se
bloqueó. Para tener esta diferenciación entre procesos
suspendidos, ya sean listos como bloqueados, se utilizan cuatro
estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y
suspendido.
Planificación del Proceso
            
Objetivos de la Planificación de procesos

La Planificación de procesos tiene como principales objetivos la
equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el
rendimiento.

  Equidad: Todos los procesos deben ser atendidos.
  Eficacia: El procesador debe estar ocupado el 100% del tiempo.
  Tiempo de respuesta: El tiempo empleado en dar respuesta a las
solicitudes del usuario debe ser el menor posible.
  Tiempo de regreso: Reducir al mínimo el tiempo de espera de los
resultados esperados por los usuarios por lotes.
  Rendimiento: Maximizar el número de tareas que se procesan por
cada hora.
La Planificación hace referencia a un conjunto políticas
y mecanismos incorporados al sistema operativo que
gobiernan el orden en que deben ser ejecutados los
                          
trabajos que deben cumplimentarse por el sistema
operativo. El Objetivo de la planificación es optimizar el
rendimiento del sistema. Nombraremos tres grandes
grupos relacionado con la filosofía del sistema:
Planificación en sistemas con un Procesador ,
Multiprocesador y Tiempo real; identificando en cada
caso sus componentes, sus finalidades y funciones.
La planificación del procesador se clasifica según la
escala relativa de tiempo en que es realizada .
Se define como el tiempo que transcurre desde el
momento en que un Programa es remitido hasta que es
totalmente completado por el mismo. T R = T S + T E .
Criterios útiles para planificar
              procesos
                           
 Tiempo ocioso o en espera

 Previsibilidad, plazos o tiempos de respuesta requerido

 Equidad, prioridades y privilegios

 Trabajo pendiente o tareas por realizar

 Exigencias de E/S

 Productividad, utilización y carga del CPU y E/S
Tipos de Planificadores
           
PLANIFICADOR A CORTO PLAZO
Este planificador decide que procesos toman el control
de la CPU. El PCP asigna el procesador entre el
conjunto de procesos preparados residentes en
memoria. Su principal objetivo es maximizar el
rendimiento del sistema de acuerdo a con el conjunto
de criterios elegidos. Al estar a cargo de la transición de
estado preparado a ejecución, el PCP deberá ser
invocado cuando se realice una operación de
conmutación de procesos para seleccionar
PLANIFICADOR A MEDIO PLAZO El PMP
Tiene por misión traer procesos suspendidos a la memoria
principal. Este planificador controla la transición de procesos
                            
en situación de suspendidos a situación de preparados. El
PMP permanecerla inactivo mientras se mantenga la
condición que dio lugar a la suspensión del proceso, sin
embargo, una vez desaparecida dicha condición el PMP
intenta asignar al proceso la cantidad de memoria principal
que requiera y volver a dejarlo en situación de preparado.
Para funcionar adecuadamente, el PMP debe disponer de
información respecto a las necesidades de memoria de los
procesos suspendidos, lo cual no es complicado de llevar a la
practica ya que el tamaño real del proceso puede ser
calculado en el momento de suspenderlo almacenándose en
el BCP. Este planificador será invocado cuando quede
espacio libre en memoria por la terminación de un proceso o
cuando el suministro de procesos preparados quede por
debajo de un limite especificado.
Algoritmos de Planificación
                              
 FCFS, FIFO: Por orden de arribo (first-come, first-served)

     SPN, SRT: Primero el trabajo más corto o con menor tiempo
    restante (shortest process next, shortest remaining time)

     RR: Por turno rotatorio usando quantums, i.e. interrupciones
    periódicas de reloj (Round-robin scheduling)

     FB: Realimentación Multinivel, maneja prioridades dinámicas
    con múltiples colas penalizando a los procesos más viejos
    (Feedback)

Más contenido relacionado

La actualidad más candente

Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesosCariEli
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativoschikscorpion_23
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativosrichardstalin
 
Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesossiamu_evap
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidadBenja villasente
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesosECCI
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidadJHOVANI189612GAZGA
 

La actualidad más candente (20)

Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Windows
WindowsWindows
Windows
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesos
 
Unidad2
Unidad2Unidad2
Unidad2
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Proceso Informatico
Proceso InformaticoProceso Informatico
Proceso Informatico
 
Operaciones Sobre Procesos
Operaciones Sobre ProcesosOperaciones Sobre Procesos
Operaciones Sobre Procesos
 
Procesos e hilos- Parte 1
Procesos e hilos- Parte 1Procesos e hilos- Parte 1
Procesos e hilos- Parte 1
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
Tipos de procesos
Tipos de procesosTipos de procesos
Tipos de procesos
 
Grupo1
Grupo1Grupo1
Grupo1
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativos
 
Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesos
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidad
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidad
 

Similar a Sistema operativo

Manejo de procesos y procesador
Manejo de procesos y procesadorManejo de procesos y procesador
Manejo de procesos y procesadorMichael Vanegas
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Gabriel Loría Solís
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesadorMiguel Joshua Godinez Barbosa
 
Introducción a los procesos alfa ii
Introducción a los procesos alfa iiIntroducción a los procesos alfa ii
Introducción a los procesos alfa iiAlejandro Ordoñez
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesosrcarrerah
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoTEUJARA
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angelcarlos-1
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angelangel-12
 
U n i d a d 2 sist oper
U n i d a d    2 sist operU n i d a d    2 sist oper
U n i d a d 2 sist operfloresitalagu
 
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...ruben ferrer
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosCarolina Cols
 

Similar a Sistema operativo (20)

S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Procesos
ProcesosProcesos
Procesos
 
Manejo de procesos y procesador
Manejo de procesos y procesadorManejo de procesos y procesador
Manejo de procesos y procesador
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
 
Introducción a los procesos alfa ii
Introducción a los procesos alfa iiIntroducción a los procesos alfa ii
Introducción a los procesos alfa ii
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Administración de procesosby dan
Administración  de  procesosby danAdministración  de  procesosby dan
Administración de procesosby dan
 
Sistemas operativos - 6to SSI
Sistemas operativos - 6to SSISistemas operativos - 6to SSI
Sistemas operativos - 6to SSI
 
Procesos
ProcesosProcesos
Procesos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angel
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angel
 
U n i d a d 2 sist oper
U n i d a d    2 sist operU n i d a d    2 sist oper
U n i d a d 2 sist oper
 
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
 
Expo So
Expo SoExpo So
Expo So
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 

Sistema operativo

  • 2. 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.
  • 3. Procesos Paralelos  Es un proceso empleado para acelerar el tiempo de ejecución de un programa dividiéndolo en múltiples trozos que se ejecutarán al mismo tiempo, cada uno en su propios procesadores. CARACTERÍSTICAS  Posee dos o más procesadores de uso general similares y de capacidades comparables.  Todos los procesadores comparten el acceso a una memoria global.  También pueden utilizarse algunas memorias locales (privadas como la cache).  Todos los procesadores comparten el acceso a los dispositivos de E/S, bien a través de los mismos canales bien a través de canales distintos que proporcionan caminos de acceso a los mismos dispositivos.  El sistema está controlado por un sistema operativo integrado que permite la interacción entre los procesadores y sus programas en los niveles de trabajo, tarea, fichero, y datos elementales.
  • 4. VENTAJAS Y DESVENTAJAS Existen algunos factores que trabajan en contra de la eficiencia del paralelismo y pueden atenuar tanto la ganancia de velocidad como la ampliabilidad.   Costes de inicio: en una operación paralela compuesta por miles de proceso, el tiempo de inicio puede llegar ser mucho mayor que le tiempo real de procesamiento, lo que influye negativamente en la ganancia de velocidad.  Interferencia: como lo procesos que se ejecutan en un proceso paralelo acceden con frecuencia a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de la interferencia de cada nuevo proceso en la competencia, este fenómeno afecta tanto la ganancia de velocidad como la ampliabilidad.  Sesgo: normalmente es difícil dividir una tarea en partes exactamente iguales, entonces se dice que la forma de distribución de los tamaños es sesgada. El procesamiento paralelo implica una serie de dificultades a nivel programación de software, es difícil lograr una optimización en el aprovechamiento de los recursos de todas las CPU con el que se esté trabajando sin que se formen cuello de botella. En muchas de las ocasiones no es posible el trabajar con equipos multiprocesadores dado el elevado costo que este representa, así que solo se dedica a ciertas áreas de investigación especializada o proyectos gubernamentales o empresariales.
  • 5. Interbloqueos  En un entorno de multiprogramación varios procesos pueden competir por un número finito de recursos. Un procesos solicita recursos y, si los recursos no están disponibles en ese momento, el proceso pasa al estado de espera. Es posible que algunas veces, un proceso en espera no pueda nunca cambiar de estado, porque los recursos que ha solicitado estén ocupados por otro proceso que a su vez esté esperando de otros recursos. Cuando se produce una situación como esta se dice que ha ocurrido un interbloqueo.
  • 6. Caracterización de los interbloqueos En un interbloqueo, los procesos nunca terminan de ejecutarse y los recursos.  Métodos para tratar los inter bloqueos Podemos abordar el problema de los inter bloqueos de las siguientes tres formas. • Podemos emplear un protocolo para impedir o evitar los interbloqueos, asegurando que el sistema nunca entre en estado de interbloqueo. • Podemos permitir que el sistema entre en estado interbloqueo, detectarlo y realizar una recuperación. • Podemos ignorar el problema y actuar como si nunca se produjeran interbloqueos en el sistema. La tercera solución es la que utilizan la mayoría de los sistemas operativos.
  • 7. Evasión de interbloqueos Los algoritmos de prevención de interbloqueos impiden los interbloqueos restringiendo el modo en que pueden hacerse las solicitudes, estas restricciones aseguran que al menos una de las  condiciones necesarias para que haya interbloqueo no se produzca y, por tanto no pueda aparecer interbloqueos. Sin embargo, esta técnica de prevención de interbloqueos tiene algún posible efecto colateral, como son una baja tasa de utilización de los dispositivos y un menor rendimiento del sistema. Un posible método para evitar los interbloqueos consiste en requerir información adicional sobre cómo van a hacer solicitados los recursos. Detección de interbloqueos. Si un sistema no emplea ni algoritmos de prevención ni de evasión de interbloqueos, entonces puede producirse una situación de interbloqueo en el sistema. En este caso el sistema debe proporcionar: • Un algoritmo que Examine el estado del sistema para determinar si se ha producido un interbloqueo. • Un algoritmo para recuperarse del interbloqueo.
  • 8. Modelos de Procesos  El sistema operativo para permitir la multiprogramación y la concurrencia requiere de un modelo de procesos que ofrezca el soporte necesario para proveerla. Multiprogramación: La cpu alterna de programa en programa, en un esquema de seudoparalelismo (Paralelismo virtual), es decir que la cpu ejecuta en cierto instante un solo programa, intercambiando muy rápidamente entre uno y otro.
  • 9. Paralelismo real de hardware: Cuando se ejecutan las instrucciones de un programa con  más de un procesador. El modelo de procesos sirve para aumentar el paralelismo en la ejecución. Está compuesto básicamente por PCB (Process Control Block), Tabla de Procesos, Estados y transiciones de los procesos. El paralelismo real de hardware se da en las siguientes situaciones:  En ejecución de instrucciones de programa con más de un procesador de instrucciones en uso simultáneamente.  Con la superposición de ejecución de instrucciones de programa con la ejecución de una o más operaciones de entrada / salida. El objetivo es aumentar el paralelismo en la ejecución.
  • 10. Jerarquía entre procesos  de una forma de Los Sistemas Operativos deben disponer 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  Los procesos pueden bloquearse en su ejecución porque: _Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles. _El Sistema Operativo asignó la cpu a otro proceso.
  • 11. La secuencia de creación de procesos genera un árbol de procesos. Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hermano o abuelo. Cuando el proceso A solicita  al sistema operativo que cree el proceso B, se dice que A es padre de B y que B es hijo de A. Bajo esta óptica, la jerarquía de procesos puede considerarse como un árbol genealógico. Algunos sistemas operativos, como Unix, mantienen de forma explícita esta estructura jerárquica de procesos – un proceso sabe quién es su padre -, mientras que otros sistemas operativos como el Windows NT no la mantienen.
  • 12.  Los estados que puede tener un proceso son: En ejecución: utiliza la cpu en el instante dado. Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.  Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.  Son posibles cuatro transiciones entre estos estados.
  • 13. Estados del SO  Modelos de dos estados: El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución.
  • 14. Modelo de tres estados:  Para poder manejar convenientemente una administración de procesador es necesario contar con un cierto juego de datos. Ese juego de datos será una tabla (BCP o en inglés PCB) en la cual se reflejará en qué estado se encuentra el proceso, por ejemplo, si está ejecutando o no. Los procesos, básicamente, se van a encontrar en este caso, en tres estados: - Ejecutando. - Listos para la ejecución. - Bloqueados por alguna razón. Sobre la base de estos estados se construye lo que se denomina Diagrama de Transición de Estado (DTE). Estar en la cola de Listos significa que el único recurso que a ese proceso le está haciendo falta es el recurso procesador. O sea, una vez seleccionado de esta cola pasa al estado de Ejecución. Se tiene una transición al estado de Bloqueados cada vez que el proceso pida algún recurso. Una vez que ese requerimiento ha sido satisfecho, el proceso pasará al estado de Listo porque ya no necesita otra cosa más que el recurso procesador.
  • 15. Modelo de cinco estados: El modelo anterior de dos estados funcionaría bien con una cola FIFO y planificación por turno rotatorio para los procesos que no están  en ejecución, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Bloqueado. Se agregan además un estado Nuevo y otro Terminado.
  • 16.  Los cinco estados de este diagrama son los siguientes: Ejecución: el proceso está actualmente en ejecución. Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga. Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida. Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.
  • 17. Modelos de siete estados: Procesos suspendidos Una de las razones para implementar el estado Bloqueado era poder hacer que los procesos se puedan mantener esperando algún suceso, por ejemplo una  Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones, puede suceder en nuestro modelo de cinco estados que todos los procesos en memoria estén esperando en el estado Bloqueado y que no haya más memoria disponible para nuevos procesos. Podría conseguirse más memoria, aunque es probable que esto sólo permita procesos más grandes y no necesariamente nuevos procesos. Además hay un costo asociado a la memoria y de cualquier forma es probable que se llegaría al mismo estado con el tiempo. Otra solución es el intercambio. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente.
  • 18. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que está en el estado Suspendido, el mismo todavía se encuentre bloqueado. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica  que ya aconteció el suceso que estaba esperando cuando se bloqueó. Para tener esta diferenciación entre procesos suspendidos, ya sean listos como bloqueados, se utilizan cuatro estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y suspendido.
  • 19. Planificación del Proceso  Objetivos de la Planificación de procesos La Planificación de procesos tiene como principales objetivos la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento. Equidad: Todos los procesos deben ser atendidos. Eficacia: El procesador debe estar ocupado el 100% del tiempo. Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes del usuario debe ser el menor posible. Tiempo de regreso: Reducir al mínimo el tiempo de espera de los resultados esperados por los usuarios por lotes. Rendimiento: Maximizar el número de tareas que se procesan por cada hora.
  • 20. La Planificación hace referencia a un conjunto políticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que deben ser ejecutados los  trabajos que deben cumplimentarse por el sistema operativo. El Objetivo de la planificación es optimizar el rendimiento del sistema. Nombraremos tres grandes grupos relacionado con la filosofía del sistema: Planificación en sistemas con un Procesador , Multiprocesador y Tiempo real; identificando en cada caso sus componentes, sus finalidades y funciones. La planificación del procesador se clasifica según la escala relativa de tiempo en que es realizada . Se define como el tiempo que transcurre desde el momento en que un Programa es remitido hasta que es totalmente completado por el mismo. T R = T S + T E .
  • 21. Criterios útiles para planificar procesos   Tiempo ocioso o en espera  Previsibilidad, plazos o tiempos de respuesta requerido  Equidad, prioridades y privilegios  Trabajo pendiente o tareas por realizar  Exigencias de E/S  Productividad, utilización y carga del CPU y E/S
  • 22. Tipos de Planificadores  PLANIFICADOR A CORTO PLAZO Este planificador decide que procesos toman el control de la CPU. El PCP asigna el procesador entre el conjunto de procesos preparados residentes en memoria. Su principal objetivo es maximizar el rendimiento del sistema de acuerdo a con el conjunto de criterios elegidos. Al estar a cargo de la transición de estado preparado a ejecución, el PCP deberá ser invocado cuando se realice una operación de conmutación de procesos para seleccionar
  • 23. PLANIFICADOR A MEDIO PLAZO El PMP Tiene por misión traer procesos suspendidos a la memoria principal. Este planificador controla la transición de procesos  en situación de suspendidos a situación de preparados. El PMP permanecerla inactivo mientras se mantenga la condición que dio lugar a la suspensión del proceso, sin embargo, una vez desaparecida dicha condición el PMP intenta asignar al proceso la cantidad de memoria principal que requiera y volver a dejarlo en situación de preparado. Para funcionar adecuadamente, el PMP debe disponer de información respecto a las necesidades de memoria de los procesos suspendidos, lo cual no es complicado de llevar a la practica ya que el tamaño real del proceso puede ser calculado en el momento de suspenderlo almacenándose en el BCP. Este planificador será invocado cuando quede espacio libre en memoria por la terminación de un proceso o cuando el suministro de procesos preparados quede por debajo de un limite especificado.
  • 24. Algoritmos de Planificación   FCFS, FIFO: Por orden de arribo (first-come, first-served)  SPN, SRT: Primero el trabajo más corto o con menor tiempo restante (shortest process next, shortest remaining time)  RR: Por turno rotatorio usando quantums, i.e. interrupciones periódicas de reloj (Round-robin scheduling)  FB: Realimentación Multinivel, maneja prioridades dinámicas con múltiples colas penalizando a los procesos más viejos (Feedback)