SlideShare ist ein Scribd-Unternehmen logo
1 von 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. Aún no termine la totalidad del documento pero
lo quiero publicar en Internet para obtener feedback por parte de los lectores interesados en el
mismo.
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.
Referencias
*658.403
B947s
BURCH, JOHN G.
SISTEMAS DE INFORMACION. TEORIA Y PRAC.
LIMUSA
*621.3819183
S426P
SCOTT, GEORGE M.
PRINCIPIOS DE SISTEMAS DE INFORMACIÓN
ED. MCGRAWHILL,1989
Webgrafía
http://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml
http://wwwdi.ujaen.es/~lina/TemasSO/PLANIFICACIONDEPROCESOS/1NivelesdePlanifica
cion.htm

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativosDeivis Romero
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
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
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesospainni
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoTEUJARA
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidadBenja villasente
 

Was ist angesagt? (16)

Tipos de procesos
Tipos de procesosTipos de procesos
Tipos de procesos
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Unidad2
Unidad2Unidad2
Unidad2
 
Procesos de los sistemas operativos
Procesos de los sistemas operativosProcesos de los sistemas operativos
Procesos de los sistemas operativos
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
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
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Proceso Informatico
Proceso InformaticoProceso Informatico
Proceso Informatico
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Estados de un proceso sistemas operativos-
Estados de un proceso  sistemas operativos-Estados de un proceso  sistemas operativos-
Estados de un proceso sistemas operativos-
 
Procesos
ProcesosProcesos
Procesos
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidad
 

Andere mochten auch

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 p05 7 inteligencia
inf 324 01 p05 7 inteligenciainf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligenciaOscarSanchezD
 
Inf 324 01 07 Procesos
Inf 324 01 07 ProcesosInf 324 01 07 Procesos
Inf 324 01 07 ProcesosOscarSanchezD
 
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
 
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
 

Andere mochten auch (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 p05 7 inteligencia
inf 324 01 p05 7 inteligenciainf 324 01 p05 7 inteligencia
inf 324 01 p05 7 inteligencia
 
Inf 324 01 07 Procesos
Inf 324 01 07 ProcesosInf 324 01 07 Procesos
Inf 324 01 07 Procesos
 
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
 
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
 

Ähnlich wie 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
 
Estados y Transiciones
Estados y TransicionesEstados y Transiciones
Estados y TransicionesLuis Guerrero
 
PROCESO
 PROCESO PROCESO
PROCESOsharli
 
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
 
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
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
ExpocontrolcalidadLenin Lucano
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidadJHOVANI189612GAZGA
 
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
 
Planificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas OperativosPlanificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas OperativosCarina Hurtado
 

Ähnlich wie INF-324 01 07 Procesos (20)

Procesos
ProcesosProcesos
Procesos
 
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
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Sistemas operativos - 6to SSI
Sistemas operativos - 6to SSISistemas operativos - 6to SSI
Sistemas operativos - 6to SSI
 
Leccion3 sisop
Leccion3 sisopLeccion3 sisop
Leccion3 sisop
 
Rossie y yo
Rossie y yoRossie y yo
Rossie y yo
 
Estados y Transiciones
Estados y TransicionesEstados y Transiciones
Estados y Transiciones
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
PROCESO
 PROCESO PROCESO
PROCESO
 
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
 
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
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
Expocontrolcalidad
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidad
 
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
 
Planificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas OperativosPlanificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas Operativos
 

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/
  • 2. 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
  • 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. Aún no termine la totalidad del documento pero lo quiero publicar en Internet para obtener feedback por parte de los lectores interesados en el mismo. 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.
  • 6. 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.
  • 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. Asimismo, existen varias colas en estado de espera, como mínimo una por cada periférico.
  • 8. 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
  • 9. 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. 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
  • 11. 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
  • 12. 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. 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.
  • 14. • 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
  • 15. 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.
  • 16. 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.
  • 17. 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.
  • 18. 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. Referencias *658.403 B947s BURCH, JOHN G. SISTEMAS DE INFORMACION. TEORIA Y PRAC. LIMUSA *621.3819183 S426P SCOTT, GEORGE M. PRINCIPIOS DE SISTEMAS DE INFORMACIÓN ED. MCGRAWHILL,1989