Sie sind auf Seite 1von 30

SO Procesos

Qu es un proceso?
Una abstraccin de un programa en ejecucin Ejemplos:
Programas de usuario Lectura de disco Impresin Etc.

Modelo de proceso
Todos los programas se ejecutan en secuencia
Resguardar para cada uno: contador, registros internos y variables

Cada proceso tiene una CPU VIRTUAL Multiprogramacin: simula un pseudoparalelismo

Modelos
Modelo conceptual de 43 Procesos secuenciales independientes

A B C

Procesos D C B A Tiempos

D Multiprogramacin De 4 programas

Programas vs procesos?
Similitudes y diferencias Uso del tiempo
Igual Diferente Aleatorio, ???

Asignacin equitativa o diferenciada?

Ejemplo, lo compartimos?

Conclusin

Jerarqua
Un proceso padre puede originar/concebir otros procesos hijos Un proceso hijo le hereda de su padre la posibilidad de generar otros procesos hijos Mientras un hijo se ejecuta, tambin lo hace su padre
Nota: As como se crean procesos, tambin se destruyen

Estado de un proceso
En ejecucin: utiliza el CPU en un instante dado Listo: se detiene en forma temporal para que se ejecute otro proceso, a la espera de CPU disponible. Bloqueado: no se puede ejecutar debido a la ocurrencia de algn evento externo, aunque el CPU este disponible.
Inherente al programa Tcnico del SO

Estados de un proceso: MEF

Planificador de procesos

Un proceso puede estar en el estado de ejecutndose, bloqueado o listo. Las transiciones entre estados son las que detallamos con 1,2,3 y 4.

Planificador

El nivel inferior del sistema operativo con estructura de procesos controla las interrupciones y realiza la planificacin. El resto del sistema consta de procesos secuenciales. La capa mas baja de un sistema operativo con estructura de procesos, maneja las interrupciones y la planificacin. Por encima de esa capa estn los procesos secuenciales.

Implantacin de procesos
Como hay mas de un proceso, es necesario tener una tabla de procesos. Tabla de procesos:
Estado del proceso Contador de programa y apuntadores al stack de memoria Estado de archivos abiertos Informacin de registro y planificacin Etc

Ejemplo de tabla de procesos

Preguntas
Qu sucede cuando un proceso es interrumpido por otro, con la tabla de procesos? Es necesario mantener datos globales y datos locales a cada proceso? Quien hace el trabajo de alternar entre procesos?

Se comunican los procesos?

Surgen problemas de comunicacin?

Comunicacin de procesos
Condiciones de competencia Secciones criticas Exclusin mutua Dormir y despertar Semforos Y otros mas: Contadores de eventos, Monitores, Transferencia de mensajes, Equivalencia de primitivas.

Comunicaciones entre procesos-IPC


Condiciones de competencia (CC): Cuando existe un lugar comn (Ej: memoria) y visible para los procesos y ambos escriben en la misma direccin. Secciones crticas (SC): es una solucin a las condiciones de competencia, basado en la EXCLUSION MUTUA. Prohibir que mas de un proceso lea/escriba en un lugar compartido a la vez.

EXCLUSIN MUTUA - EM
Logramos la EM con
Desactivacin de interrupciones: cuando un proceso entra en SC, desactiva TODAS las interrupciones. Solucin de hardware. Variables cerradura: una variable compartida que indica si hay algn proceso en la SC. Solucin de software. Soluciona la CC? Alternancia estricta, Peterson y TSL: son por software y con mnima intervencin del hardware.

Dormir y despertar (DD)


Buscan optimizar el tiempo del CPU, ya que en las soluciones anteriores, la ESPERA OCUPADA ESPERA OCUPADA: cuando un proceso desea entrar a su seccin crtica, verifica si esta permitida la entrada. Si no, el proceso queda esperando hasta obtener el proceso. Sleep: se enva a dormir un proceso hasta que otro lo despierte. Wakeup: indica que proceso debe despertar

Ej. DD: Productor/consumidor o almacn ilimitado

Semforos
Es una variable que toma dos estados Ningn otro proceso puede tener acceso al semforo hasta que la operacin termine o se bloquee. Llamamos esto ATOMICIDAD ABSOLUTA

Problemas de comunicacin ?
Cena de los filsofos y Barbero dormiln

Cena de los filsofos

Cinco filsofos se sientan alrededor de una mesa y pasan su vida cenando y pensando. Cada filsofo tiene un plato de fideos y un tenedor a la izquierda de su plato. Para comer los fideos son necesarios dos tenedores y cada filsofo slo puede tomar los que estn a su izquierda y derecha. Si cualquier filsofo coge un tenedor y el otro est ocupado, se quedar esperando, con el tenedor en la mano, hasta que pueda coger el otro tenedor, para luego empezar a comer. Si dos filsofos adyacentes intentan tomar el mismo tenedor a una vez, se produce una condicin de carrera: ambos compiten por tomar el mismo tenedor, y uno de ellos se queda sin comer. Si todos los filsofos cogen el tenedor que est a su derecha al mismo tiempo, entonces todos se quedarn esperando eternamente, porque alguien debe liberar el tenedor que les falta. Nadie lo har porque todos se encuentran en la misma situacin (esperando que alguno deje sus tenedores). Entonces los filsofos se morirn de hambre. Este bloqueo mutuo se denomina interbloqueo o deadlock. El problema consiste en encontrar un algoritmo que permita que los filsofos nunca se mueran de hambre.

Barbero o peluquero dormiln

El problema consiste en una barbera en la que trabaja un barbero que tiene un nico silln de barbero y varias sillas para esperar. Cuando no hay clientes, el barbero se sienta en una silla y se duerme. Cuando llega un nuevo cliente, ste o bien despierta al barbero o si el barbero est afeitando a otro cliente se sienta en una silla (o se va si todas las sillas estn ocupadas por clientes esperando). El problema consiste en realizar la actividad del barbero sin que ocurran condiciones de carrera. La solucin implica el uso de semforos y objetos de exclusin mutua para proteger la seccin crtica. Condicin de carrera: error que se produce cuando no se han construido adecuadamente para su ejecucin simultnea con otros procesos.

Cdigo en C del BB

Planificacin de procesos (PP)


Cuando mas de un proceso es ejecutable, el SO debe decidir cual ejecutar primero. El planificador es un proceso esencial de SO y tiene su algoritmo correspondiente, algunos de ellos son:
Round robin Prioridad Colas mltiples Primero el trabajo mas corto Planificacin garantizada Poltica vs mecanismo Planificacin de dos niveles

PP: Consideraciones generales del algoritmo de planificacin


Equidad: garantizar que cada proceso obtiene su proporcin justa de la CPU Eficacia: Mantener ocupada la CPU al 100% del tiempo Tiempo de respuesta: minimizar el tiempo que deben esperar los usuarios por lotes para obtener resultados Rendimiento: maximizar el numero de tareas procesadas por hora

PP: Complicaciones
Cada proceso es nico e impredecible No se sabe cuando un proceso se bloquear

PP: Soluciones
Cada determinado lapso, ejecutar un interrupcin en forma peridica. Planificacin apropiativa: estrategia que permite que procesos ejecutables sean temporalmente suspendidos Planificacin no apropiativa o de ejecucin hasta terminar

Dudas y consultas

Actividad de aprendizaje

Das könnte Ihnen auch gefallen