Beruflich Dokumente
Kultur Dokumente
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
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, ???
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
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
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?
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.
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.
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
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.
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
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