Hilos, Mps, Microkernel Flashcards
(43 cards)
multiprocesamiento simétrico (SMP)
Debido a que los núcleos de un procesador multinúcleo son exactamente iguales, a esto se le denomina así.
A estos “procesadores con más de un procesador” se les conoció como:
“procesador multinúcleo”
Son capaces de ejecutar diversos procesos de forma simultánea y, además, comparten una misma memoria para el cumplimiento de sus funciones
Sistemas Multiprocesamiento
Los hilos de ejecuciónson son conocidos como:
procesos ligeros (LWP, Lightweight processes).
Un SMP es un computador con las siguientes características
-Tiene dos o más procesadores similares de capacidades comparables.
-Los procesadores comparten la memoria principal y la E/S
- Todos los procesadores comparten los dispositivos de E/S, pero pueden hacerlo bien a través de los mismos canales, o bien a través de otros caminos de acceso al mismo dispositivo.
- Todos los procesadores pueden desempeñar las mismas funciones
- El sistema está controlado por un sistema operativo que posibilita la interacción entre los procesadores y sus programas.
Ventajas potenciales de un SMP respecto a una arquitectura monoprocesador:
-Prestaciones: proporcionará mejores prestaciones que uno con un sólo procesador del mismo tipo.
- Disponibilidad
- Crecimiento incremental
- Escalado
Un hilo (thread o proceso de peso liviano) es:
una unidad básica de utilización de CPU, consiste de: contador de programa, conjunto de registros, espacio de pila
Hilos a nivel e usuario:
son implementados en alguna librería. Estos hilos se gestionan
sin soporte del SO, el cual solo reconoce un hilo de ejecución.
Hilos a nivel de kernel:
el SO es quien crea, planifica y gestiona los hilos. Se
reconocen tantos hilos como se hayan creado.
Manipulación de datos que requiere la garantía de que se ejecutará como una sola unidad de ejecución, o fallará completamente, sin resultados o estados parciales observables por otros procesos o el entorno
Operación atómica
El área de código que requiere ser protegida de accesos simultáneos donde se realiza la modificación de datos compartidos.
Sección (o región) crítica
Categoría de errores de programación que involucra a dos procesos que fallan al comunicarse su estado mutuo, llevando a resultados inconsistentes
Condición de carrera (Race condition)
Recurso compartido
Un recurso al que se puede tener acceso desde más de un proceso
Uso de Bandera
mediante una variable de bandera se indica si hay un proceso en la región crítica,
Es un mecanismo que asegura que cierta región del código será ejecutada como si fuera atómica.
Mantiene en espera a cualquier hilo o proceso que quiera entrar a la sección crítica protegida por el ___________, reteniéndolo antes de entrar a ésta hasta que el proceso que la está ejecutando salga de ella.
mutex o candado (lock).
Es una construcción de programación que actúa como una señal o un contador para controlar el acceso a un recurso compartido. Es una variable de tipo entero que indica cuántas unidades del recurso están disponibles
Semáforo
Cuando hay concurrencia, además de asegurar la atomicidad de ciertas operaciones, es necesario evitar dos problemas que son consecuencia natural de la existencia de la asignación de recursos de forma exclusiva:
Bloqueo mutúo e inanición
Paso de mensajes
Permite a los procesos intercambiar mensajes, el sistema operativo debe proporcionar al menos dos llamadas al sistema similares a:
send( message ) y receive( &message )
Comando de linux que produce una instantánea de todos los procesos en ejecución.
El comando ps
Su tarea consiste en llevar un registro de las partes de memoria que se estén utilizando y las que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco.
Administrador de memoria
Funciones de administrador de memoria
Control de que partes de la memoria están utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria Virtual)
Tipo de asignación de memoria en a que un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es más compleja pero más eficiente
“asignación no contigua”
Asignación de memoria en la que cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento
“asignación contigua”
algoritmo de reemplazo de páginas de Linux
se basa en el algoritmo del reloj, que, en caso de ser el sencillo, se asocia un bit de uso y un bit de modificación a cada página de la memoria principal. Utiliza una variable edad que, cada vez que se accede a la página, se incrementa la variable y recorre periódicamente la reserva de páginas globales y disminuye la variable de edad de cada página cuando rota por todas las páginas de la memoria principal.