Parcial 1 Flashcards
Abstraccion
Acto mental en el que se aisla conceptualmente una propiedad o funcion concreta de un objeto, y se piensa que es, ignorando otras propiedades del objeto en cuestion. Me abstarigo de la implementacion.
Caracteristica reactiva de sistemas concurrentes
Sistema reactivo es aquel que reacciona permanentemente a cambios del ambiente y otros procesos.Suele no requerirse que terminen. Suelen no computar resultados.
Deadlock
Dos o mas procesos (o hilos) esperan mutuamente el avance del otro (o incluso el mismo hilo espera que avance el mismo).
Estados de un proceso
New: Proceso siendo creado.
Running: Proceso se esta ejecutando.
Waiting: Proceso esta esperando que se cumpla algun otro evento.
Ready: Proceso esta pronto para ejecutar, esperando por CPU.
Terminated: Proceso ha terminado.
Exclusión Mutua
Propiedad para controlar concurrencia, requisito de que un hilo en ejecución nunca entre en su sección crítica al mismo tiempo que otro hilo la esta ejecutando.
Interleaving
Intercalacion entre las acciones atomicas que componen un proceso concurrente, es decir entre las acciones atomicas que ejecutan los hilos.
Livelock
Dos o mas procesos no pueden avanzar en su ejecucion porque continuamente responden a los cambios en el estado de otros procesos. Los procesos se ejecutan simultaneamente sin realizar trabajo util, respondiendo a cambios de otros procesos. Esta es la diferencia con un deadlock, porque en este caso los procesos no estan en waiting, mientras que en deadlock los procesos estan en waiting.
Proceso
Unidad de actividad que se caracteriza por la ejecucion de una secuencia de instrucciones, un estado actual y un conjunto de recursos del sistema asociados.
Proceso vs programa
Un proceso es una actividad de cierto tipo que contiene un programa, entradas/salidas y estados.
Es una unidad de actividad que se caracteriza por la ejecución de
una secuencia de instrucciones, un estado actual, y un conjunto
de recursos del sistema asociados
Sistemas críticos
Sistemas cuyas fallas pueden ocasionar daños de gran importancia.
Starvation (inanición)
Uno o mas procesos (o hilos) quedan esperando indefinidamente un mensaje o liberacion de un recurso.
Limitaciones del testing
El testing puede confirmar la presencia de errores pero
nunca garantizar su ausencia.
Control de procesos
Registro especial BCP (bloque de control de proceso) donde el OS agrupa toda la info que necesita conocer respecto a un proceso particular.
Info del control de procesos
Identificador del proceso (Process Identificator -PID-, de sus siglas en Inglés).
•Estado del proceso. Por ej. listo, en espera, bloqueado.
•Contador de Programa: Dirección de la próxima instrucción a ejecutar.
•Valores de registro de CPU. Se utilizan también en el cambio de contexto.
•Espacio de direcciones de memoria.
•Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.
•Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
•Estadísticas del proceso.
•Datos del propietario (owner).
•Permisos asignados.
•Signals pendientes de ser servidos. (Almacenados en un mapa de bits)
Hilo
Permiten realizar varias tareas a la vez (concurrentemente). Distintos hilos comparten recursos entre si, como el espacio de memoria, archivos abiertos, etc.
Estos recursos que comparten los hilos son en conjunto conocidos como proceso.
Hilos vs procesos
Procesos son indep, llevan bastante info de estados, e interactuan solo por mecanismos del sistema. Cambiar de un proceso a otro es “costoso” ya que el sistema genera un tiempo desperdiciado para cambiar de proceso. El nucleo o kernel debe intervenir en la comunicacion entre procesos.
Los hilos en cambio comparten sus recursos de forma directa. Como pertenecen a un mismo proceso, cambiar de un hilo a otro es practicamente instantaneo. Son “baratos”. Su comunicacion no requiere invocar al nucleo.
Estados de un hilo
New: Hilo creado pero no inicializado. Le falta el start.
Running: Hilo en ejecución.
Blocked: Hilo blockeado, esperando por algun recurso para continuar.
Waiting: Similar al bloqueo, el hilo espera por la liberacion de un recurso para despertarse.
Terminated: Hilo terminó su ejecución.
Que tiene un hilo
- Estado.
- Contexto del procesador.
* Punto en el que estamos ejecutando, la instrucción.
* Se usa para reanudar un hilo que fue interrumpido con, para poder continuar la ejecución del hilo. - Pila de ejecución, donde se irá metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).
- Espacio de almacenamiento estático donde almacenará las variables.
- Acceso a los recursos de la tarea,
Multiprogramación, Multiprocesamiento y procesamiento distribuido
Multiprogramacion:Gestion de varios procesos dentro de un sistema mono-procesador. No se logra procesamiento en paralelo y se produce sobrecarga en el intercambio de procesos, pero se eficientiza el utso del procesador en general.
Multiprocesamiento: Gestión de varios procesos dentro de un sistema multi-procesador.
Procesamiento distribuido: Gestion de varios procesos, ejecutandose en sistemas de computadores multiples y distribuidos.
Donde se puede presentar concurrencia?
Multiples aplicaciones
Apicaciones estructuradas: conjunto de hilos concurrentes
Estructura del sistema operativo: conjunto de procesos e hilos manejan el SO.
Tipos de interaccion entre procesos
Tres casos:
procesos no tienen conocimiento de los demas
procesos tienen conocimiento indirecto de los demas
procesos tienen conocimiento directo de los demas
Competencia entre procesos por los recursos
Los procesos concurrentes entran en conflicto cuando
compiten por el uso del mismo recurso.
La ejecución de un proceso puede influir en el comportamiento
de los procesos que compiten.
Al haber procesos en competencia, surge la necesidad de la exclusion mutua, es decir que solo un procesos pueda acceder a una seccion critica en un momento dado.
Sin embargo, hacer cumplir la exclusion mutua puede llevar a interbloqueos.
Seccion critica
Parte de un programa que accede a un recurso critico, es decir un recurso no compartible, por lo que si se accediera en simultáneo por más de un hilo llevaría a problemas de concurrencia y por lo tanto fallas en la ejecucion.
Requisitos para exclusión mutua
Solo un hilo tiene permiso para entrar a seccion critica por vez.
Hilo (proceso) no puede solicitar acceso a seccion critica para luego demorarse indefinidamente.
No se debe suponer sobre velocidad relativa de los procesos o numero de procesadores.
Posibilidades al ejecutar primitiva SEND de un proceso
Proceso emisor se bloquea hasta que recibe el mensaje o no se bloquea.
Posibilidades al ejecutar primitiva RECEIVE en un proceso
Si previamente se envio un mensaje, este se recibe y continua la ejecucion.
Si esto no sucede, entonces el proceso se bloquea hasta que llegue un mensaje o continua, abandonando intento de recepcion.
Tipos de combinaciones de procesos
1) Envio y recepcion bloqueantes
2) Envio no bloqueante, recepcion bloqueante
3) Envio no bloqueante, recepcion no bloqueante
Programacion paralela
Muchas instrucciones se ejecutan en simultaneo. Para problemas grandes, a menudo se pueden dividir en varios mas pequeños, que se resuelven en simultaneo.