SlideShare une entreprise Scribd logo
1  sur  19
Universidad Autonoma de Santo Domingo (UASD)

          Facultad de Ciencias
             Escuela de Informatica
               Sistemas Operativos
                        Clave: INF-324

                          Sesion: 01

                   Profesor: Jose Binet

                         Estudiante:

                      Oscar Sanchez

                    Amarylis Sanchez



                          Matricula:

                           BF-0076


            Blog: http://oscar-sanchez-d.blogspot.com/




                   Tema: Procesos
Indice
1.   Introducción

2. Procesos

3. Estados de un Proceso

3.1 Diagrama de Formacion de un Proceso.

3.2 Modelo de Dos Estados

3.3 Modelo de Cinco Estados

4. Procesos Supendidos (Hold)

5. Implantación de los procesos

6. Comunicación entre procesos

7. Planificación de procesos

8. Niveles de planificación

9. Planificación a largo plazo

10. Planificación a mediano plazo

11. Colas multiples

12. Procesos ligeros

13. Señales

14. Conclusion.

15. Infografia / Bibliografia
Introducción


El siguiente documento describe las características que presentan los sistemas operativos para la
administración de procesos en los sistemas mono y multiprocesadores. Se comienza con una
introducción sobre la funcionalidad de un proceso para luego entrar en los detalles de implementación
típicos de los sistemas operativos.




                                           Procesos




¿Qué es un proceso?

   Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, por el
momento dejemos esta última definición como un concepto, luego se verá en más detalle el concepto
de hilo. Una vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un
programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de cierto tipo
que contiene un programa, entradas salidas y estados.

Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos
interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en
general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son
procesos que pertenecen a distintos usuarios.
Estados de los procesos



   Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y
Bloqueado.

Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los
selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese
momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de
algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.



El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en
memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa
pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra
las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la
ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es
el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.



Un proceso es un programa en ejecución, los procesos son gestionados por el sistema operativo y están
formados 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.

Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta
de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de
planificación. Cada hilo consta de instrucciones y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer
cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por
el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser
independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en
el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en
que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la
memoria reservada para el proceso.
Diagrama de formación de un proceso
Se trata de la utilización de dos archivos, un objeto ejecutable y una biblioteca del sistema, que después
se colocan en la imagen del proceso dentro de la memoria RAM y posteriormente también se dan de
alta dentro de la tabla de procesos, Bloque de control del proceso.




Modelo 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. De esta explicación se
desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo
su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben
guardarse en algún tipo de cola mientras esperan su turno para ejecutar.
Modelo de cinco estados




Diagrama de 5 estados

El modelo anterior de 2 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 esperando la realización de la
operación de Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide
entonces al estado No ejecución en dos estados: Listo y Espera. Se agregan además un estado Nuevo y
otro Terminado.

Los cinco estados de este diagrama son los siguientes según Osëliyo:

   •   Ejecución: el proceso está actualmente en ejecución.
   •   Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador de corto
       plazo así lo disponga.
   •   Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la
       finalización de una operación de Entrada/Salida solicitada por una llamada al sistema operativo.
   •   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.

Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este modelo los
estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el
sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una
cola FIFO. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese
suceso.

Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias
colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso
que más conviene ejecutar a continuación.
Asimismo, existen varias colas en estado de espera, como mínimo una por cada periférico.


Una de las razones para implementar el estado Espera 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 que en nuestro modelo de cinco estados todos los procesos en
memoria estén esperando en el estado Espera 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 en espera. Sólo convendría traerlo cuando ya está
listo para ejecutar, esto implica que ya aconteció el suceso que estaba esperando. Para tener esta
diferenciación entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados:
Listo, Espera, Espera y suspendido y Listo y suspendido.




Procesos Suspendidos (Hold)
Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros
hasta que reciban una señal para continuar.

   •   Se usa una variable de tipo Semáforo para sincronizar los procesos.
   •   Si un proceso está esperando una señal, se suspende (Hold) hasta que la señal se envíe
       (SIGNAL).
   •   Se mantiene una cola de procesos en espera en el semáforo.
   •   La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO (First In
       First Out) también llamada FCFS (First Come First Served), Round Robin, etc.

La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el
suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal
generada a propósito por el programador desde otro proceso.
Implantación de los procesos


La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una
tabla denominada tabla de control de procesos información relativa a cada proceso que se esta
ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.



La información que se almacena es la siguiente:



1) Identificación del proceso.

2) Identificación del proceso padre.

3) Información sobre el usuario y grupo.

4) Estado del procesador.

5) Información de control de proceso

6) Información del planificador.

7) Segmentos de memoria asignados.

8) Recursos asignados.




                            Comunicación entre procesos


Condiciones de competencia



   Las condiciones de competencia se dan cuando dos o más procesos intentan acceder a un mismo
recurso.
Secciones críticas



   Para solucionar las condiciones de competencia se implementó un modelo para prohibir que dos
procesos accedan al mismo recurso. El modelo en cuestión se denomina exclusión mutua.



Exclusión mutua con espera ocupada



   Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un proceso intenta
ingresar a su región crítica, verifica si esta permitida la entrada. Si no, el proceso se queda esperando
hasta obtener el permiso.



Desactivación de interrupciones



   El método más simple para evitar las condiciones de competencia es hacer que cada proceso
desactive todas sus interrupciones antes de entrar a su sección crítica y las active una vez que salio de
la misma. Este modelo como se puede observar tiene un gran problema y es que si se produce una falla
mientras que el proceso esta en la región crítica no se puede salir de la misma y el sistema operativo no
recuperaría el control.



Variables cerradura



  En éste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningún proceso
en su sección crítica) o bien 1 (indicando que la sección crítica está ocupada) entonces cada proceso
antes de ingresar a la sección crítica verifica el estado de la variable de cerradura y en caso de que la
misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se
queda verificando el estado de la misma hasta que el mismo sea 0.
El problema aquí se presenta si dos procesos verifican al mismo tiempo que la variable cerradura esta
en 0 e ingresan a la región crítica.




Alternancia estricta



   El algoritmo de alternancia estricta no bloquea el ingreso a la región crítica cuando otro proceso se
esta ejecutando. El problema de ésta solución es que cuando un proceso no esta en la sección crítica
igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que
requiera ingresar a la misma logre hacerlo.



Dormir y despertar



  El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador.




El problema del productor y el consumidor



   El problema del productor y el consumidor describe el echo de que cuando hay dos o más procesos
interactuando a través de un buffer común habiendo procesos que ponen información o datos y otros
que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no
puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del
buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se
desarrollaron métodos de comunicación/sincronización entre procesos en los cuales se impide que esto
suceda haciendo que el proceso productor "duerma" si el buffer está lleno y una vez que exista espacio
el proceso "consumidor" despierte al productor para que siga generando o viceversa.




                               Planificación de procesos
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 que se describen más abajo.



                                Niveles 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. En
secciones posteriores estudiaremos algunos algoritmos posibles. Para que el dispatcher conmute el
procesador entre dos procesos es necesario realizar un cambio de proceso.



  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 (ver estados de
       un proceso).
   •   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).

Así, si sólo se activa el dispatcher como consecuencia de los 2 primeros acontecimientos se estará
haciendo un buen uso del procesador. Este criterio es acertado en sistemas por lotes en los que los
programas no son interactivos. Sin embargo, en un sistema de tiempo compartido no es adecuado, pues
un proceso que se dedicara a realizar cálculos, y no realizara E/S, monopolizaría el uso de la CPU. En
estos sistemas hay que tener en cuenta el conjunto de todos los procesos, activándose el dispatcher con
la circunstancia tercera y, posiblemente, la cuarta. Los sistema operativos en que las dos siguientes
circunstancias no provocan la activación del dispatcher muestran preferencia por el proceso en
ejecución, si no ocurre esto se tiene más en cuenta el conjunto de todos los procesos
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,
como se ilustra en la figura 1.1, estos niveles son:

   •    Planificador de la CPU o a corto plazo.
   •    Planificador a medio plazo.

Planificador a largo plazo.




                              Planificación a largo plazo


   Este planificador está presente en algunos sistemas que admiten además de procesos interactivos
trabajos por lotes. Usualmente , se les asigna una prioridad baja a los trabajos por lotes, utilizándose
estos para mantener ocupados a los recursos del sistema durante períodos de baja actividad de los
procesos interactivos. Normalmente, los trabajos por lotes realizan tareas rutinarias como el cálculo de
nóminas; en este tipo de tareas el programador puede estimar su gasto en recursos, indicándoselo al
sistema. Esto facilita el funcionamiento del planificador a largo plazo.



   El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU una
mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la CPU) o la E/S.
Así, por ejemplo, cuando la utilización de la CPU es baja, el planificador puede admitir más trabajos
para aumentar el número de procesos listos y, con ello, la probabilidad de tener algún trabajo útil en
espera de que se le asigne la CPU. A la inversa, cuando la utilización de la CPU llega a ser alta, y el
tiempo de respuesta comienza a reflejarlo, el planificador a largo plazo puede optar por reducir la
frecuencia de admisión de trabajos.

Normalmente, se invoca al planificador a largo plazo siempre que un proceso termina. La frecuencia de
invocación depende, pues, de la carga del sistema, pero generalmente es mucho menor que la de los
otros dos planificadores. Esta baja frecuencia de uso hace que este planificador pueda permitirse
utilizar algoritmos complejos, basados en las estimaciones de los nuevos trabajos.
Planificación a Medio Plazo


    En los sistemas de multiprogramación y tiempo compartido varios procesos residen en la
memoria principal. El tamaño limitado de ésta hace que el número de procesos que residen en ella sea
finito. Puede ocurrir que todos los procesos en memoria estén bloqueados, desperdiciándose así la
CPU. En algunos sistemas se intercambian procesos enteros (swap) entre memoria principal y memoria
secundaria (normalmente discos), con esto se aumenta el número de procesos, y, por tanto, la
probabilidad de una mayor utilización de la CPU.

El planificador a medio plazo es el encargado de regir las transiciones de procesos entre memoria
principal y secundaria, actúa intentando maximizar la utilización de los recursos. Por ejemplo,
transfiriendo siempre a memoria secundaria procesos bloqueados, o transfiriendo a memoria principal
procesos bloqueados únicamente por no tener memoria.




                                              Expulsión



  Es la característica por el cual el sistema operativo puede o no expulsar del estado de ejecución a un
proceso dado. En este sentido entonces tenemos la planificación apropiativa en la cual el sistema
operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación no
apropiativa en la cual una vez que el proceso esta en ejecución el sistema operativo no puede sacarlo de
ese estado.



                                    Objetivos de la planificación



Los objetivos de la planificación de proceso son:

   •   Equidad, todos los procesos deben poder ejecutarse
   •   Eficacia, mantener ocupada la CPU un 100% del tiempo
   •   Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
   •   Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener
       sus resultados
   •   Rendimiento, maximizar el número de tareas procesadas por hora.
Algoritmos de planificación



  Los algoritmos de planificación son los que definen que política se va a seguir para que un proceso
pase al estado de ejecución.



                                    Planificación Round-Robin



   En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en
el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de
procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los
procesos reciban ese quantum de procesamiento.

                                    Planificación por prioridad



  En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso
de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados




                                      Colas múltiples


   Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se
tienen que ejecutar.

Primero el trabajo más corto



   Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento or lotes en
los cuales se puede saber cual es el tiempo de duración de la ejecución de cada proceso y entonces se
puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que
los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre
uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga
procesamiento.



                                      Planificación garantizada
En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le
asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el
planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que
están utilizando el procesador para cumplir con la ecuación previa.




                                       Procesos ligeros


Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos
últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios
o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además
puede cada hilo tener su información privada.

Dentro de la información propia tenemos:

   •   Contador de programa
   •   Pila
   •   Registros.
   •   Estado del proceso ligero.
   •   Dentro de la información compartida tenemos:
   •   Variables globales.
   •   Archivos abiertos
   •   Señales
   •   Semáforos.
   •   Contabilidad.

                                              Señales


   Las señales son el mecanismo de comunicación que se establece entre los procesos. Para comparar se
puede decir que las señales son a los procesos lo que las interrupciones son al procesador. Cuando un
proceso recibe una señal detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta en
el mismo proceso y luego una vez finalizado sigue la ejecución en el punto que había bifurcado
anteriormente.



  Las señales se pueden originar en un proceso o bien en el sistema operativo. Las señales se pueden
enviar entre procesos, solo los que tengan el mismo uid, o bien el sistema operativo puede enviarle una
señal a un proceso, por ejemplo excepciones de ejecución.
Conclusion


Ya conocimos que es un proceso, ya sabemos quien controla los procesos de nuestro computador pero
también podemos decir que:
     o Loprocesos son creados y destruidos por el sistema operativo, así como también este se debe
     hacer cargo de la comunicación entre procesos.

     o   El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación.

     o  El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de
     recursos a cada proceso.

     o  Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener
     varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál
     es el proceso que más conviene ejecutar a continuación.

     o  La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En
     este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida,
     sino una señal generada a propósito por el programador desde otro proceso.
Webgrafía


http://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml



http://wwwdi.ujaen.es/~lina/TemasSO/PLANIFICACIONDEPROCESOS/1NivelesdePlanificacio
n.htm

Contenu connexe

Tendances

GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativosDeivis Romero
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoTEUJARA
 
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
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesospainni
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosKim Sorel Rush
 

Tendances (16)

GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativos
 
Tipos de procesos
Tipos de procesosTipos de procesos
Tipos de procesos
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
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
 
Procesos
ProcesosProcesos
Procesos
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
Proceso Informatico
Proceso InformaticoProceso Informatico
Proceso Informatico
 
Estados de un proceso sistemas operativos-
Estados de un proceso  sistemas operativos-Estados de un proceso  sistemas operativos-
Estados de un proceso sistemas operativos-
 

En vedette

inf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciainf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciaOscarSanchezD
 
inf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciainf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciaOscarSanchezD
 
INF 324 01 2009 02 07 Procesos
INF 324 01 2009 02 07 ProcesosINF 324 01 2009 02 07 Procesos
INF 324 01 2009 02 07 ProcesosOscarSanchezD
 
Inf 324 01 07 Procesos
Inf 324 01 07 ProcesosInf 324 01 07 Procesos
Inf 324 01 07 ProcesosOscarSanchezD
 
inf_324_01_p05_7_inteligencia
inf_324_01_p05_7_inteligenciainf_324_01_p05_7_inteligencia
inf_324_01_p05_7_inteligenciaOscarSanchezD
 
How to Battle Bad Reviews
How to Battle Bad ReviewsHow to Battle Bad Reviews
How to Battle Bad ReviewsGlassdoor
 
Activism x Technology
Activism x TechnologyActivism x Technology
Activism x TechnologyWebVisions
 

En vedette (8)

inf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciainf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligencia
 
inf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciainf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligencia
 
INF 324 01 2009 02 07 Procesos
INF 324 01 2009 02 07 ProcesosINF 324 01 2009 02 07 Procesos
INF 324 01 2009 02 07 Procesos
 
Inf 324 01 07 Procesos
Inf 324 01 07 ProcesosInf 324 01 07 Procesos
Inf 324 01 07 Procesos
 
inf_324_01_p05_7_inteligencia
inf_324_01_p05_7_inteligenciainf_324_01_p05_7_inteligencia
inf_324_01_p05_7_inteligencia
 
Procesos e hilos- Parte 1
Procesos e hilos- Parte 1Procesos e hilos- Parte 1
Procesos e hilos- Parte 1
 
How to Battle Bad Reviews
How to Battle Bad ReviewsHow to Battle Bad Reviews
How to Battle Bad Reviews
 
Activism x Technology
Activism x TechnologyActivism x Technology
Activism x Technology
 

Similaire à Inf 324 01 07 Procesos

GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSomarhcc
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesosrcarrerah
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesosLlabajo Baez
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidadBenja villasente
 
Servicios de los Sistemas Operativos para la Gestion de Procesos
Servicios de los Sistemas Operativos para la Gestion de ProcesosServicios de los Sistemas Operativos para la Gestion de Procesos
Servicios de los Sistemas Operativos para la Gestion de ProcesosAmandita_Jiss
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidadJHOVANI189612GAZGA
 
Cuestionario procesos
Cuestionario procesos Cuestionario procesos
Cuestionario procesos Gabriel Garcia
 

Similaire à Inf 324 01 07 Procesos (20)

Procesos
ProcesosProcesos
Procesos
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Sistemas operativos - 6to SSI
Sistemas operativos - 6to SSISistemas operativos - 6to SSI
Sistemas operativos - 6to SSI
 
Unidad2
Unidad2Unidad2
Unidad2
 
Leccion3 sisop
Leccion3 sisopLeccion3 sisop
Leccion3 sisop
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidad
 
Servicios de los Sistemas Operativos para la Gestion de Procesos
Servicios de los Sistemas Operativos para la Gestion de ProcesosServicios de los Sistemas Operativos para la Gestion de Procesos
Servicios de los Sistemas Operativos para la Gestion de Procesos
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidad
 
Clases procesos
Clases procesosClases procesos
Clases procesos
 
Rossie y yo
Rossie y yoRossie y yo
Rossie y yo
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Cuestionario procesos
Cuestionario procesos Cuestionario procesos
Cuestionario procesos
 

Inf 324 01 07 Procesos

  • 1. Universidad Autonoma de Santo Domingo (UASD) Facultad de Ciencias Escuela de Informatica Sistemas Operativos Clave: INF-324 Sesion: 01 Profesor: Jose Binet Estudiante: Oscar Sanchez Amarylis Sanchez Matricula: BF-0076 Blog: http://oscar-sanchez-d.blogspot.com/ Tema: Procesos
  • 2. Indice 1. Introducción 2. Procesos 3. Estados de un Proceso 3.1 Diagrama de Formacion de un Proceso. 3.2 Modelo de Dos Estados 3.3 Modelo de Cinco Estados 4. Procesos Supendidos (Hold) 5. Implantación de los procesos 6. Comunicación entre procesos 7. Planificación de procesos 8. Niveles de planificación 9. Planificación a largo plazo 10. Planificación a mediano plazo 11. Colas multiples 12. Procesos ligeros 13. Señales 14. Conclusion. 15. Infografia / Bibliografia
  • 3.
  • 4. Introducción El siguiente documento describe las características que presentan los sistemas operativos para la administración de procesos en los sistemas mono y multiprocesadores. Se comienza con una introducción sobre la funcionalidad de un proceso para luego entrar en los detalles de implementación típicos de los sistemas operativos. Procesos ¿Qué es un proceso? Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, por el momento dejemos esta última definición como un concepto, luego se verá en más detalle el concepto de hilo. Una vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados. Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.
  • 5. Estados de los procesos Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado. Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S. El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso. Un proceso es un programa en ejecución, los procesos son gestionados por el sistema operativo y están formados 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. Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.
  • 6. Diagrama de formación de un proceso Se trata de la utilización de dos archivos, un objeto ejecutable y una biblioteca del sistema, que después se colocan en la imagen del proceso dentro de la memoria RAM y posteriormente también se dan de alta dentro de la tabla de procesos, Bloque de control del proceso. Modelo 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. De esta explicación se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar.
  • 7. Modelo de cinco estados Diagrama de 5 estados El modelo anterior de 2 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 esperando la realización de la operación de Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Espera. Se agregan además un estado Nuevo y otro Terminado. Los cinco estados de este diagrama son los siguientes según Osëliyo: • Ejecución: el proceso está actualmente en ejecución. • Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador de corto plazo así lo disponga. • Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalización de una operación de Entrada/Salida solicitada por una llamada al sistema operativo. • 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. Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este modelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación.
  • 8. Asimismo, existen varias colas en estado de espera, como mínimo una por cada periférico. Una de las razones para implementar el estado Espera 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 que en nuestro modelo de cinco estados todos los procesos en memoria estén esperando en el estado Espera 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 en espera. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el suceso que estaba esperando. Para tener esta diferenciación entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados: Listo, Espera, Espera y suspendido y Listo y suspendido. Procesos Suspendidos (Hold) Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta que reciban una señal para continuar. • Se usa una variable de tipo Semáforo para sincronizar los procesos. • Si un proceso está esperando una señal, se suspende (Hold) hasta que la señal se envíe (SIGNAL). • Se mantiene una cola de procesos en espera en el semáforo. • La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO (First In First Out) también llamada FCFS (First Come First Served), Round Robin, etc. La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.
  • 9. Implantación de los procesos La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso. La información que se almacena es la siguiente: 1) Identificación del proceso. 2) Identificación del proceso padre. 3) Información sobre el usuario y grupo. 4) Estado del procesador. 5) Información de control de proceso 6) Información del planificador. 7) Segmentos de memoria asignados. 8) Recursos asignados. Comunicación entre procesos Condiciones de competencia Las condiciones de competencia se dan cuando dos o más procesos intentan acceder a un mismo recurso.
  • 10. Secciones críticas Para solucionar las condiciones de competencia se implementó un modelo para prohibir que dos procesos accedan al mismo recurso. El modelo en cuestión se denomina exclusión mutua. Exclusión mutua con espera ocupada Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un proceso intenta ingresar a su región crítica, verifica si esta permitida la entrada. Si no, el proceso se queda esperando hasta obtener el permiso. Desactivación de interrupciones El método más simple para evitar las condiciones de competencia es hacer que cada proceso desactive todas sus interrupciones antes de entrar a su sección crítica y las active una vez que salio de la misma. Este modelo como se puede observar tiene un gran problema y es que si se produce una falla mientras que el proceso esta en la región crítica no se puede salir de la misma y el sistema operativo no recuperaría el control. Variables cerradura En éste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningún proceso en su sección crítica) o bien 1 (indicando que la sección crítica está ocupada) entonces cada proceso antes de ingresar a la sección crítica verifica el estado de la variable de cerradura y en caso de que la misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda verificando el estado de la misma hasta que el mismo sea 0.
  • 11. El problema aquí se presenta si dos procesos verifican al mismo tiempo que la variable cerradura esta en 0 e ingresan a la región crítica. Alternancia estricta El algoritmo de alternancia estricta no bloquea el ingreso a la región crítica cuando otro proceso se esta ejecutando. El problema de ésta solución es que cuando un proceso no esta en la sección crítica igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que requiera ingresar a la misma logre hacerlo. Dormir y despertar El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador. El problema del productor y el consumidor El problema del productor y el consumidor describe el echo de que cuando hay dos o más procesos interactuando a través de un buffer común habiendo procesos que ponen información o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se desarrollaron métodos de comunicación/sincronización entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor "duerma" si el buffer está lleno y una vez que exista espacio el proceso "consumidor" despierte al productor para que siga generando o viceversa. Planificación de procesos
  • 12. 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 que se describen más abajo. Niveles 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. En secciones posteriores estudiaremos algunos algoritmos posibles. Para que el dispatcher conmute el procesador entre dos procesos es necesario realizar un cambio de proceso. 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 (ver estados de un proceso). • 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). Así, si sólo se activa el dispatcher como consecuencia de los 2 primeros acontecimientos se estará haciendo un buen uso del procesador. Este criterio es acertado en sistemas por lotes en los que los programas no son interactivos. Sin embargo, en un sistema de tiempo compartido no es adecuado, pues un proceso que se dedicara a realizar cálculos, y no realizara E/S, monopolizaría el uso de la CPU. En estos sistemas hay que tener en cuenta el conjunto de todos los procesos, activándose el dispatcher con la circunstancia tercera y, posiblemente, la cuarta. Los sistema operativos en que las dos siguientes circunstancias no provocan la activación del dispatcher muestran preferencia por el proceso en ejecución, si no ocurre esto se tiene más en cuenta el conjunto de todos los procesos
  • 13. 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.
  • 14. El scheduling está muy relacionado con la gestión de los recursos. Existen tres niveles de scheduling, como se ilustra en la figura 1.1, estos niveles son: • Planificador de la CPU o a corto plazo. • Planificador a medio plazo. Planificador a largo plazo. Planificación a largo plazo Este planificador está presente en algunos sistemas que admiten además de procesos interactivos trabajos por lotes. Usualmente , se les asigna una prioridad baja a los trabajos por lotes, utilizándose estos para mantener ocupados a los recursos del sistema durante períodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por lotes realizan tareas rutinarias como el cálculo de nóminas; en este tipo de tareas el programador puede estimar su gasto en recursos, indicándoselo al sistema. Esto facilita el funcionamiento del planificador a largo plazo. El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la CPU) o la E/S. Así, por ejemplo, cuando la utilización de la CPU es baja, el planificador puede admitir más trabajos para aumentar el número de procesos listos y, con ello, la probabilidad de tener algún trabajo útil en espera de que se le asigne la CPU. A la inversa, cuando la utilización de la CPU llega a ser alta, y el tiempo de respuesta comienza a reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia de admisión de trabajos. Normalmente, se invoca al planificador a largo plazo siempre que un proceso termina. La frecuencia de invocación depende, pues, de la carga del sistema, pero generalmente es mucho menor que la de los otros dos planificadores. Esta baja frecuencia de uso hace que este planificador pueda permitirse utilizar algoritmos complejos, basados en las estimaciones de los nuevos trabajos.
  • 15. Planificación a Medio Plazo En los sistemas de multiprogramación y tiempo compartido varios procesos residen en la memoria principal. El tamaño limitado de ésta hace que el número de procesos que residen en ella sea finito. Puede ocurrir que todos los procesos en memoria estén bloqueados, desperdiciándose así la CPU. En algunos sistemas se intercambian procesos enteros (swap) entre memoria principal y memoria secundaria (normalmente discos), con esto se aumenta el número de procesos, y, por tanto, la probabilidad de una mayor utilización de la CPU. El planificador a medio plazo es el encargado de regir las transiciones de procesos entre memoria principal y secundaria, actúa intentando maximizar la utilización de los recursos. Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados, o transfiriendo a memoria principal procesos bloqueados únicamente por no tener memoria. Expulsión Es la característica por el cual el sistema operativo puede o no expulsar del estado de ejecución a un proceso dado. En este sentido entonces tenemos la planificación apropiativa en la cual el sistema operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación no apropiativa en la cual una vez que el proceso esta en ejecución el sistema operativo no puede sacarlo de ese estado. Objetivos de la planificación Los objetivos de la planificación de proceso son: • Equidad, todos los procesos deben poder ejecutarse • Eficacia, mantener ocupada la CPU un 100% del tiempo • Tiempo de respuesta, minimizar el tiempo de respuesta al usuario • Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados • Rendimiento, maximizar el número de tareas procesadas por hora.
  • 16. Algoritmos de planificación Los algoritmos de planificación son los que definen que política se va a seguir para que un proceso pase al estado de ejecución. Planificación Round-Robin En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento. Planificación por prioridad En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados Colas múltiples Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar. Primero el trabajo más corto Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento or lotes en los cuales se puede saber cual es el tiempo de duración de la ejecución de cada proceso y entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga procesamiento. Planificación garantizada
  • 17. En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que están utilizando el procesador para cumplir con la ecuación previa. Procesos ligeros Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada. Dentro de la información propia tenemos: • Contador de programa • Pila • Registros. • Estado del proceso ligero. • Dentro de la información compartida tenemos: • Variables globales. • Archivos abiertos • Señales • Semáforos. • Contabilidad. Señales Las señales son el mecanismo de comunicación que se establece entre los procesos. Para comparar se puede decir que las señales son a los procesos lo que las interrupciones son al procesador. Cuando un proceso recibe una señal detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta en el mismo proceso y luego una vez finalizado sigue la ejecución en el punto que había bifurcado anteriormente. Las señales se pueden originar en un proceso o bien en el sistema operativo. Las señales se pueden enviar entre procesos, solo los que tengan el mismo uid, o bien el sistema operativo puede enviarle una señal a un proceso, por ejemplo excepciones de ejecución.
  • 18. Conclusion Ya conocimos que es un proceso, ya sabemos quien controla los procesos de nuestro computador pero también podemos decir que: o Loprocesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos. o El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación. o El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso. o Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación. o La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.