Está en la página 1de 12

UNIVERSIDAD ALEJANDRO DE HUMBOLDT

VICERRECTORADO ACADMICO
FACULTAD DE INGENIERA
CTEDRA: SISTEMAS OPERATIVOS I
SECCIN: DCN401IIVI

RECONOCER A LA ADMINISTRACIN DE PROCESOS COMO UNIDAD


FUNDAMENTAL DE UN SISTEMA OPERATIVO

Alumno:
Elio Tamma CI V19399474

Caracas, Septiembre 2015

Administracin de procesos como unidad fundamental en un sistema


operativo
El sistema operativo debe asignar recursos a los procesos, permitir el
intercambio de informacin entre los mismos, proteger los recursos de un
proceso del resto y facilitar la sincronizacin de procesos. Para alcanzar
estos objetivos, el sistema operativo mantiene una estructura de datos
para cada proceso que describe su estado y los recursos que posee y que
permite al sistema operativo imponer un control sobre los procesos (PCB
Bloque de Control de Proceso). En un monoprocesador multiprogramado,
debe intercalarse en el tiempo, la ejecucin de mltiples procesos. En un
multiprocesador, no slo puede intercalarse la ejecucin sino que los
procesos se pueden ejecutar simultneamente. Ambos, intercalacin y
ejecucin simultnea, son formas de concurrencia y llevan a una multitud
de problemas complejos, tanto para el programador de aplicaciones como
para el sistema operativo. El sistema operativo debe llevar a cabo la
funcin de planificar y ofrecer mecanismos para compartir y sincronizar
procesos.

Concurrencia de procesos
La concurrencia de procesos se refiere a las situaciones en las que dos o ms procesos puedan
coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran
coordinarse en su ejecucin. Para evitar dicha coincidencia, el sistema operativo ofrece
mecanismos de arbitraje que permiten coordinar la ejecucin de los procesos.

El problema del productor y consumidor


Un ejemplo de un problema de concurrencia sera el siguiente: Dados dos procesos A (productor) y
B (consumidor), suponiendo que ambos se ejecutan indefinidamente en el tiempo, el proceso A
debe recibir tiempo de ejecucin antes que B, tras esto, el proceso B debe recibir su oportunidad de
ejecucin, dando paso de nuevo al proceso A y as sucesivamente, siguiendo un esquema de
alternancia estricta.

proceso A |--

--

--

|
proceso B |

--

--

--

|_____________
Hay que recordar que el planificador de procesos, al desconocer la naturaleza de los procesos y sus
objetivos, no dispone de informacin suficiente para garantizar la secuencia de ejecucin descrita
en el ejemplo anterior. Por tanto, suponiendo que ambos procesos se encuentran en estado
preparado, podra seleccionar al proceso B para pasar a estado activo antes de seleccionar al
proceso A, situacin que no es deseada.
El planificador de procesos, emplea criterios de planificacin que no tienen en consideracin el
objetivo de los procesos. Se puede afirmar entonces que el planificador de
procesos desconoce cul es el propsito de los procesos, nicamente puede observar su
comportamiento, es decir, si presentan un comportamiento ms o menos interactivo.
Por tanto, el programador, a la hora de modelar los procesos, debe emplear mecanismos de
arbitraje que ofrece el sistema operativo y que permiten resolver el problema de concurrencia que
se plantee.

Mecanismos de arbitraje
Los mecanismos de arbitraje que ofrece el sistema operativo son bsicamente dos:

Mecanismos de sincronizacin: el sistema operativo ofrece mecanismos que permiten a los


procesos coordinar su ejecucin para conseguir el objetivo sin que sucedan situaciones no
deseadas, como por ejemplo que dos o ms procesos coincidan simultneamente en el acceso a un
cierto recurso que no se puede compartir.

Mecanismos de mensajera: el sistema operativo ofrece mecanismos de comunicacin entre


procesos mediante mensajes. El intercambio de mensajes entre procesos permite coordinarlos.

Programacin concurrente
El trmino programacin concurrente se emplea con frecuencia para referirse a un conjunto de
programas que funcionan en cooperacin.
Hay tres formas de interaccin entre procesos cooperativos:

Concurrencia: Hay un recurso comn, si varios procesos modificaran la misma informacin a la vez ,
cada uno podra destruir parte del trabajo de los dems. Si lo hacen uno tras otro, en serie, se
obtendr el resultado correcto.

Sincronizacin: El Sistema Operativo se encarga de enviarle seales a los procesos para coordinar
su evolucin y conseguir que progrese armnicamente.

Comunicacin: El S.O. transmite mensajes entre los procesos, que se usan para intercambiar,
enviar o recibir informacin.
Se le llama programacin concurrente ya que la concurrencia fue la primera forma de iterar
recursos entre procesos cooperativos.

Seccin crtica

Una seccin crtica se trata de una seccin del cdigo que puede ser ejecutada por un nico
proceso o hilo simultneamente. Un ejemplo de seccin crtica es la seccin de cdigo en la que se
accede a un recurso compartido. Para evitar el acceso simultaneo a la seccin crtica se emplean
mecanismos que garantizan la exclusin mutua.
La exclusin mutua se debe realizar de forma coordinada y eficiente, para ello se requiere:

No ms de un proceso por seccin crtica y recurso compartido.

El mismo proceso no puede usar el mismo recurso compartido indefinidamente.

Todo proceso debe entrar antes o despus a usar el recurso.

Si el recurso est sin uso, cualquiera que lo requiera dispondr de l inmediatamente.

Si hay varios esperando usar el recurso y ste se libera, uno de los que estaba esperando lo usar
durante un tiempo determinado.
Para llevar sto a cabo se necesita un protocolo que indique cuando el recurso est libre y cuando
est siendo ocupado.

Mecanismos de sincronizacin de procesos


Sincronizacin: Se refiere a la coordinacin para llevar a cabo el trabajo de un grupo de
procesos cooperantes asegurando el acceso a recursos compartidos. Previene y/o corrige
errores debidos a estos accesos. Para que los procesos puedan sincronizarse debe disponerse
de servicios que permitan bloquear o suspender la ejecucin de un proceso.
Algoritmos:
Espera Activa: Establecen la espera de entrada a la RC con un ciclo que ser roto en el
momento en que se cumpla una condicin. El proceso no queda bloqueado y el sistema se
sobrecarga.
Espera con mutex: Usa una variable switch con dos operaciones atmicas:
lock: bloqueo. Si el switch ya est bloqueado por otro proceso, el proceso que realiza la
operacin esperar. En caso contrario se bloquea el mutex sin poner en espera al proceso.
unlock: Desbloquea el switch. Si existen procesos esperando, activar a uno de ellos que ser
el nuevo proceso que adquiera el switch. La operacin unlock sobre un mutex debe ejecutarla
el proceso que adquiri con anterioridad el mutex mediante lock. (Ejemplo de cabina
telefnica) 3 Alternancia.- Usa una variable de turnos (lista de espera)
Espera no activa.- Establecen la espera para entrar a una RC bloqueando el proceso.
Semforos: Variable entera usada como contador de peticiones de entrada a RC
compartida por todos los procesos, gestiona el trfico de procesos. Cuando un proceso intenta
entrar en una RC mientras otro accede a los recursos compartidos, se bloquear igual que
cuando un proceso accede a un recurso ocupado. Se usa en sistemas con memoria compartida.
Se le puede asignar un valor inicial 1 y slo se puede acceder utilizando dos operaciones
atmicas: wait (-1) y signal (+1). El algoritmo de uso es el siguiente: Si el semforo es menor
o igual que cero, cualquier operacin wait que se realice sobre el semforo bloquear al
proceso. Si el semforo es positivo, cualquier proceso que ejecute una operacin wait no se
bloquear. El valor que tiene que tomar el semforo inicialmente es 1, de esta forma solo se
permite a un nico proceso acceder a la seccin crtica. Si el valor inicial del semforo fuera,

por ejemplo, 2, entonces dos procesos podran ejecutar la llamada wait sin bloquearse y por
tanto se permitira que ambos ejecutaran de forma simultnea dentro de la seccin crtica
Monitores.- En los mtodos anteriores el programador debe proporcionar de
modo explcito el modo de sincronizacin. El monitor termina con esto, pero debe ser
soportado por el lenguaje correspondiente. Encapsula el cdigo relativo a un recurso
compartido en un solo mdulo, as todos los accesos estarn forzados a usar dichas funciones:
mantenimiento ms simple, menos errores de programa. Los monitores son estructuras de
datos utilizadas en lenguajes de programacin para sincronizar dos o ms procesos o hilos de
ejecucin que usan recursos compartidos. En el estudio y uso de los semforos se puede ver
que las llamadas a las funciones necesarias para utilizarlos quedan repartidas en el cdigo del
programa, haciendo difcil corregir errores y asegurar el buen funcionamiento de los
algoritmos. Para evitar estos inconvenientes se desarrollaron los monitores. El concepto de
monitor fue definido por primera vez por Charles Antony Richard Hoare en un artculo del
ao 1974. La estructura de los monitores se ha implementado en varios lenguajes de
programacin, incluido Pascal concurrente, Modula-2, Modula-3 y Java, y como biblioteca de
programas.
Componentes.o Inicializacin: contiene el cdigo a ser ejecutado cuando el monitor es creado
o Datos privados: contiene los procedimientos privados, que slo pueden ser usados
desde dentro del monitor y no son visibles desde fuera
o Procedimientos del monitor: son los procedimientos que pueden ser llamados desde
fuera del monitor.
o Cola de entrada: contiene a los threads que han llamado a algn procedimiento del
monitor pero no han podido adquirir permiso para ejecutarlos an.
Exclusin mutua en un monitor
Los monitores estn pensados para ser usados en entornos multiproceso o multihilo, y
por lo tanto muchos procesos o threads pueden llamar a la vez a un procedimiento del
monitor. Los monitores garantizan que en cualquier momento, a lo sumo un thread puede
estarse ejecutando dentro de un monitor. Ejecutar dentro de un monitor significa que slo un
thread estar en estado de ejecucin mientras dura la llamada a un procedimiento del monitor.
El monitor hace cumplir la exclusin mutua implcitamente, de modo que slo un
procedimiento est siendo ejecutado a la vez. De esta forma, si un thread llama a un
procedimiento mientras otro thread est dentro del monitor, se bloquear y esperar en la cola
de entrada hasta que el monitor quede nuevamente libre. Para que resulten tiles en un
entorno de concurrencia, los monitores deben incluir algn tipo de forma de sincronizacin.
Por ejemplo, supngase un thread que est dentro del monitor y necesita que se cumpla una
condicin para poder continuar la ejecucin. En ese caso, se debe contar con un mecanismo
de bloqueo del thread, a la vez que se debe liberar el monitor para ser usado por otro hilo. Ms
tarde, cuando la condicin permita al thread bloqueado continuar ejecutando, debe poder
ingresar en el monitor en el mismo lugar donde fue suspendido. Para esto los monitores
poseen variables de condicin que son accesibles slo desde adentro.

Mecanismos para prevenir, detectar y corregir una situacin. Inanicin


Interbloqueo (DeadLock).
En un conjunto de procesos, cada uno est esperando un evento que slo otro proceso del
conjunto puede causar. Puesto que todos los procesos estn esperando, ninguno de ellos puede
causar ninguno de los eventos que podran despertar a cualquiera de los dems miembros del
conjunto, y todos los procesos continan esperando indefinidamente
RECURSOS.- elemento que un programa o proceso puede usar en la computadora donde se
ejecuta, y puede ser usado por un solo proceso en un momento dado.
Tipos
Reutilizables.- El que puede ser usado con seguridad por un proceso y no se agota con
el uso, son liberados para que otros los reusen: CPU, canales de E/S, memoria y estructuras de
datos archivos, bases de datos y semforos.
Consumibles.- El que puede ser creado (producido) y destruido (consumido). No hay
lmite en la cantidad. Un proceso productor que no est bloqueado puede liberar cualquier
nmero de recursos consumibles. Cuando un proceso adquiere un recurso, ste deja de existir:
seales, mensajes, e informacin en buffers.
Operaciones
Solicitud
Uso
Liberacin
Condiciones para que se d un interbloqueo (deben estar todas)
1. Condicin de exclusin mutua. Cada recurso est asignado nicamente a un
solo proceso o est disponible.
2. Condicin de retener y esperar. Los procesos que actualmente tienen
recursos que les fueron otorgados previamente pueden solicitar nuevos
recursos.
3. Condicin de no expropiacin. No es posible quitarle por la fuerza a un
proceso los recursos que le fueron otorgados previamente. El proceso que los
tiene debe liberarlos
4. Condicin de espera circular. Debe haber una cadena circular de dos o ms
procesos, cada uno de los cuales est esperando un recurso retenido por el
siguiente miembro de la cadena. Adems: Nmero finito de recursos y
procesos. Un proceso puede pedir tantos recursos como necesite siempre que
no exceda los existentes
Prevencin

A grandes rasgos, se debe disear un sistema de manera que est excluida, a priori, la
posibilidad de interbloqueo. Los mtodos para prevenir el interbloqueo son de dos tipos.
Indirectos.- Consisten en impedir la aparicin de alguna de las tres primeras condiciones
necesarias
Directos.- Consisten en evitar la aparicin de la condicin 4.
Exclusin Mutua.- En general, no puede anularse. Si el acceso a un recurso necesita exclusin
mutua, el sistema operativo debe soportar la exclusin mutua.
Retencin y Espera.- Se previene exigiendo que todos los procesos soliciten todos los
recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los
recursos puedan concederse simultneamente. Es ineficiente porque:
Un proceso puede estar detenido durante mucho tiempo, esperando que se concedan
todas sus solicitudes de recursos, cuando de hecho podra haber avanzado con slo algunos de
los recursos.
Los recursos asignados a un proceso pueden permanecer sin usarse durante mucho
tiempo, tiempo durante el cual se priva del acceso a otros procesos.
No expropiacin.- Se previene:
1 Si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso
deber liberar sus recursos anteriores y solicitarlos de nuevo, cuando sea necesario, junto con
el recurso adicional.
2 Si un proceso solicita un recurso que actualmente est retenido por otro proceso, el sistema
operativo puede expulsar al segundo proceso y exigirle que libere sus recursos. Este ltimo
esquema evitar el interbloqueo slo si no hay dos procesos que posean la misma prioridad, es
prctico slo cuando se aplica a recursos cuyo estado puede salvarse y restaurarse ms tarde
de una forma fcil, como es el caso de un procesador.
Crculo Vicioso de Espera.- Puede prevenirse definiendo una ordenacin lineal de los tipos de
recursos. Si a un proceso se le han asignado recursos de tipo R, entonces slo podr realizar
peticiones posteriores sobre los recursos de los tipos siguientes a R en la ordenacin. Para
comprobar el funcionamiento de esta estrategia, se asocia un ndice a cada tipo de recurso. En
tal caso, el recurso R1, antecede a R2, en la ordenacin si i < j. Suponga que dos procesos A y
B se interbloquean, porque A ha adquirido R1, y solicitado R2, mientras que B ha adquirido
R2; y solicitado R1. Esta situacin es imposible porque implica que < j y j < i. Puede ser
ineficiente, retardando procesos y denegando accesos a recursos innecesariamente.
Deteccin y Recuperacin
La deteccin no limita ni restringe como la prevencin. Se concedern recursos que los
procesos necesiten cuando sea posible. El sistema operativo ejecuta un algoritmo que permite
detectar la condicin de espera circular: Cuando un recurso se solicita o libera, se determina si
contiene algn ciclo. Si se encuentra uno, se termina uno de los procesos del ciclo. Si esto no
rompe el bloqueo mutuo, se termina otro proceso, continuando as hasta romper el ciclo.
Ventajas de verificacin frecuente:

Pronta deteccin
Desventajas: Consume un tiempo de procesador considerable.
Formas de recuperacin:
1. Abandonar todos los procesos bloqueados. Esta es una de las soluciones ms comunes
adoptadas en un sistema operativo.
2. Retroceder cada proceso interbloqueado hasta algn punto de control definido previamente
y volver a ejecutar todos los procesos. Puede repetirse el interbloqueo original e implica
mecanismos de retroceso y reinicio
3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber interbloqueo.
Seleccionando procesos segn algn criterio. Despus de abandonar cada proceso, se debe
ejecutar de nuevo el algoritmo de deteccin para ver si todava existe interbloqueo.
4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. Seleccionando
procesos segn un criterio y ejecutando el algoritmo de deteccin despus de cada
apropiacin. Un proceso que pierde un recurso por apropiacin debe retroceder hasta un
momento anterior a la adquisicin de ese recurso.
Criterios de seleccin.
Escoger el proceso con:
La menor cantidad de tiempo de procesador consumido
El mayor tiempo restante estimado
El menor nmero total de recursos asignados
La prioridad ms baja
Algunas de estas cantidades son ms fciles de medir que otras. Adems de las medidas de
prioridad, no existe otra indicacin del "costo" para el usuario frente al costo para el sistema
en conjunto.
Mecanismos para evitarlo
El interbloqueo se evita analizando con detenimiento cada peticin de recurso para ver si se
puede satisfacer sin peligro, hay algn algoritmo que siempre pueda evitar el interbloqueo
tomando la decisin correcta en todos los casos? SI, pero slo si se cuenta con informacin
por adelantado. (Algoritmo del banquero)
Estado seguro.- Un estado es seguro si existe una secuencia de otros estados que conduzca a
una situacin en la que todos los clientes obtienen prstamos hasta sus lmites de crdito
(todos los procesos obtienen todos sus recursos y finalizan).
Algoritmo del banquero para recursos mltiples.- Este modelo es difcil de aplicar al caso
general de un nmero arbitrario de procesos y un nmero arbitrario de clases de recursos,
cada una con mltiples ejemplares (p. Ej., 2 cd-rom, 3 unidades de cinta, etc.). No obstante, el
algoritmo del banquero puede generalizarse para este fin:

La
matriz
izquierda
muestra
cuntos

ejemplares de cada recurso se han asignado actualmente a cada uno de los cinco procesos. La
derecha muestra cuntos recursos necesita cada proceso para poder finalizar. Los procesos
deben expresar sus necesidades de recursos totales antes de ejecutarse, a fin de que el sistema
pueda calcular la matriz de la derecha en cada paso. Los vectores muestran los recursos
existentes: E, los entregados: P y los disponibles: A. Por E podemos ver que el sistema tiene 6
unidades de cinta, 3 graficadores, 4 impresoras y 2 unidades CD-ROM. De stos, 5 cintas, 3
graficadores, 2 impresoras y 2 CD-ROM estn asignados. Esto puede verse sumando las 4
columnas de recursos en la matriz izquierda. El vector de recursos disponibles A es la
diferencia entre lo que el sistema tiene y lo que se est usando.
Algoritmo para verificar si un estado es seguro o no.
1. Busque un rengln R, cuyas peticiones de recursos no se hayan otorgado y sean en todos
los casos menores o iguales que A. Si no existe tal rengln, el sistema tarde o temprano
llegar a un bloqueo mutuo porque ningn proceso podr ejecutarse hasta finalizar.
2. Suponga que el proceso de la fila elegida solicita todos los recursos que necesita (lo cual se
garantiza que es posible) y finaliza. Marque ese proceso como terminado y agregue todos sus
recursos al vector A.
3. Repita los pasos 1 y 2 hasta que todos los procesos se marquen como terminados, en cuyo
caso el estado inicial era seguro, o hasta que ocurra un bloqueo mutuo, en cuyo caso no lo era.
Si hay varios procesos que pueden escogerse en el paso 1, no importa cul se seleccione: la
reserva de recursos aumentar o, en el peor de los casos, seguir igual.

Descripcin de polticas de planificacin de trabajos y procesos

Conjunto de polticas y mecanismos incorporados al sistema operativo, a travs de


un mdulo denominado planificador, que debe decidir cul de los procesos en
condiciones de ser ejecutado conviene ser despachado primero y qu orden de
ejecucin debe seguirse. Esto debe realizarse sin perder de vista su principal
objetivo que consiste en el mximo aprovechamiento del sistema, lo que implica
proveer un buen servicio a los procesos existentes en un momento dado.
La Planificacin de procesos tiene como principales objetivos la equidad, la eficacia,
el tiempo de respuesta, el tiempo de regreso y el rendimiento.
Equidad: Todos los procesos deben ser atendidos.
Eficacia: El procesador debe estar ocupado el 100% del tiempo.
Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes del
usuario debe ser el menor posible.
Tiempo de regreso: Reducir al mnimo el tiempo de espera de los resultados
esperados por los usuarios por lotes.
Rendimiento: Maximizar el nmero de tareas que se procesan por cada hora.

Algoritmos de Planificacin
Primero en llegar primero en ser servido
Conocido como FCFS (First Come First Served). Este algoritmo emplea una cola de
procesos, asignando un lugar a cada proceso por el orden de llegada. Cuando el
proceso llega es puesto en su lugar en la cola despus del que lleg antes que l y
se pone en estado de listo. Cuando un proceso comienza a ejecutarse no se
interrumpe su ejecucin hasta que termina de hacerlo.

Prioridad al ms corto
Su nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecucin
cambiar de estado voluntariamente, o sea, no tendr un tiempo de ejecucin

determinado para el proceso. A cada proceso se le asigna el tiempo que usar


cuando vuelva a estar en ejecucin, y se ir ejecutando el que tenga un menor
tiempo asignado. Si se da el caso de que dos procesos tengan igual valor en ese
aspecto emplea el algoritmo FCFS.

Round Robin
A cada proceso se le asigna un tiempo determinado para su ejecucin, el mismo
tiempo para todos. En caso de que un proceso no pueda ser ejecutado
completamente en ese tiempo se continuar su ejecucin despus de que todos los
procesos restantes sean ejecutados durante el tiempo establecido. Este es un
algoritmo basado en FCFS que trata la cola de procesos que se encuentran en
estado de listos como una cola circular.

Planificacin por prioridad


En este tipo de planificacin a cada proceso se le asigna una prioridad siguiendo un
criterio determinado, y de acuerdo con esa prioridad ser el orden en que se atienda
cada proceso.

Planificacin garantizada
Para realizar esta planificacin el sistema tiene en cuenta el nmero de usuarios que
deben ser atendidos. Para un nmero "n" de usuarios se asignar a cada uno un
tiempo de ejecucin igual a 1/n.

Planificacin de Colas Mltiples


El nombre se deriva de MQS (Multilevel Queue Schedulling). En este algoritmo la
cola de procesos que se encuentran en estado de listos es dividida en un nmero
determinado de colas ms pequeas. Los procesos son clasificados mediante un

criterio para determinar en qu cola ser colocado cada uno cuando quede en
estado de listo. Cada cola puede manejar un algoritmo de planificacin diferente a
las dems.

Tiempos
En la Planificacin de procesos se tiene en cuenta diferentes tiempos que pueden
ser calculados, como son el "Tiempo de espera medio", el "Tiempo de retorno del
proceso" y el "Tiempo de retorno medio".

Tiempo de espera medio


Es el promedio de tiempos en que los procesos estn en estado de listos. En
algoritmos FCFS este tiempo suele ser bastante largo. En algoritmos SJF para los
procesos largos este tiempo suele ser muy grande, pues se estarn ejecutando
constantemente los procesos ms cortos y los ms largos se encontrarn
constantemente en espera, por lo que pueden entrar en inanicin. En Planificacin
por prioridad los procesos de prioridad baja podran no ejecutarse nunca. Para dar
solucin a este problema el envejecimiento de un programa eleva su prioridad.

Tiempo de retorno del proceso


Es el tiempo que transcurre desde la creacin de un proceso hasta que termina la
ejecucin del programa que le dio lugar.

Tiempo de retorno medio


Es la suma de los tiempos de retorno de cada uno de los procesos dividida entre la
cantidad de procesos.

También podría gustarte