B2-T4_ Sistemas Operativos Flashcards
¿Qué es POSIX?
POSIX (Portable Operating System Interface, y UNIX) es una norma escrita por la IEEE. Dicha norma define una interfaz estándar entre el sistema operativo y los programas de utilidades comunes para conseguir la portabilidad de las aplicaciones a nivel de código fuente.
¿Qué diferencia hay entre multitarea y multiprogramación?
Multitarea, hay varios procesos ejecutándose concurrentemente.
La multiprogramación es la capacidad de cargar varios programas en memoria principal para que se puedan ejecutar secuencialmente.
¿Qué es un sistema operativo Monolítico?
Sistemas operativos que se caracterizan por implementar en el núcleo los cuatro componentes fundamentales del sistema operativo,
1. planificación de procesos
2. la administración de la memoria principal
3. la administración de ficheros
4. gestión de los dispositivos de entrada/salida
Fragmentación externa:
En la memoria del sistema la fragmentación se produce cuando los procesos asignados han ocupado posiciones no contiguas de memoria dejando demasiados bloques libres de pequeño tamaño, en los que no “caben” nuevos procesos.
¿Qué es la tabla de segmentos?
Cuando los programas se almacenan en la memoria con segmentos de tamaño variable la tabla donde se traducen direcciones lógicas a direcciones físicas de memoria. Se compone de la dirección de inicio del paquete de memoria y de su longitud.
¿Qué es la paginación?
Dividir el programa en bloques de tamaño fijo (páginas), dividir la memoria en zonas de tamaño fijo (marcos) ubicar las páginas en marcos libres. El último marco no se ocupa del todo porque el último trozo de programa es más pequeño que el marco y deja un espacio libre en la memoria. Esta pérdida de espacio en un marco es lo que se llama fragmentación interna.
¿En que consiste el algoritmo de remplazo FIFO para sustitución de bloques en memoria principal?
El algoritmo reemplaza la página que lleva más tiempo en memoria principal
¿En que consiste el algoritmo de remplazo LRU para sustitución de bloques en memoria principal?
(Least Recently Used) Este algoritmo asocia a cada página el tiempo en que fue referenciada. La página elegida por el algoritmo
de reemplazo será la que fue accedida hace más tiempo
¿En que consiste el algoritmo de remplazo NRU para sustitución de bloques en memoria principal?
NRU (Not Recently Used) En este algoritmo a las páginas se les asigna un bit de referencia y otro de modificación. El bit de referencia se enciende cada vez que se lee la página, mientras que el de modificación solo se enciende cada vez que se escribe. Cada cierto tiempo el bit de referencia es apagado. Cuando una página debe ser reemplazada, el sistema operativo divide las páginas en cuatro categorías:
0: No referenciada, No modificada Categoría
1: No referenciada, modificada Categoría
2: referenciada, No modificada Categoría
3: referenciada, modificada
¿Cuáles son los estados de un proceso en la ejecución del so?
- Nuevo: Cuando el proceso es creado.
- En Ejecución: El proceso tiene asignado un procesador y está ejecutando sus instrucciones.
- Bloqueado: El proceso está esperando por un evento (que se complete un pedido de E/S o una señal).
- Preparado: El proceso está listo para ejecutar, solo necesita del recurso procesador.
- Terminado: El proceso finalizó su ejecución.
¿Cómo son las transiciones de los procesos?
- Nuevo -> Preparado: el SO está preparado para admitir un proceso más.
- Preparado -> Ejecución: el planificador escoge un proceso para la ejecución.
- Ejecución -> Preparado: el proceso en ejecución es interrumpido y expulsado del procesador porque ya ha
consumido su tiempo asignado o porque otro proceso de mayor prioridad está esperando. - Ejecución -> Bloqueado: el proceso abandona voluntariamente la CPU y espera a un evento externo.
- Bloqueado -> Preparado: finaliza el evento que estaba esperando el proceso y pasa al estado preparado.
- Ejecución -> Terminado: el proceso termina su ejecución (terminación normal).
- Preparado/Bloqueado -> Terminado: el proceso es eliminado (terminación anormal).
¿Qué es lista de procesos del sistema (job queue)?
Esta será una lista especial, porque los procesos que están en ella no esperan por nada en particular, sino que es la lista de todos los procesos del sistema. Al crearse un nuevo proceso se agrega el PCB a esta lista. Cuando el proceso termina su ejecución es borrado.
¿Qué es Cola de procesos listos (ready queue)?
Esta cola se compondrá de los procesos que estén en estado listo. La estructura de esta cola dependerá de la estrategia de planificación utilizada. Son los procesos “preparados”
¿Qué es Cola de espera de dispositivos (device queue)?
Los procesos que esperan por un dispositivo de E/S
particular son agrupados en una lista específica al dispositivo. Cada dispositivo de E/S tendrá su cola de espera, por lo que existirán varias device queue. Son los proceoss bloqueados.
¿Qué es el problema de la “inanición” en la gestión de hilos o procesos?
Un proceso/hilo espera indefinidamente paraentrar a la sección crítica.
¿Qué es el problema de interbloqueo en la gestión de hilos?
Interbloqueo: es una situación de reciprocidad en elacceso a recursos múltiples.
Un conjunto de procesos está interbloqueado cuando cada proceso está esperando por un recurso que está siendo usado por otro proceso del conjunto.
¿Con que protocolos se pueden evitar los problemas de intebloqueo, inanición y en el acceso concurrente con exclusión mutua de hilos o procesos al procesador?
- Dekker
- Peterson
- Eisenberg
- McGuire
- El de la panadería de Lamport
¿Qué algoritmos de planificación hay a corto plazo?
- Planificación no apropiativa (non-preemptive):
- Algoritmos no expulsivos.
- Los procesos se ejecutan hasta queterminan o se bloquean.
- Sencillo de implementar.
- Rendimiento negativo en general.
- Planificación aproviativa (preemptive):
- Algoritmos expulsivos
- Lo sprocesos pueden ser expulsados de la CPU.
- Mayor coste de implementación. Necesitan soporte hardware adicional (relojes)
- Mejora el servicio y evita monopolización de la CPU.
Algoritmos de planificación de ejecución de procesos:
- FCFS (First Come First Served) = Primero llegado Primero servido
2.- SJF (Shortest Job First) =Trabajo más corto primero
3.- SRTF (Shortest Remaining Time First) =Tiempo restante más corto primero
4- Planificación por prioridades –
5.- Round Robin
6.- Multilevel Queue
De los 3 tipos de asignación de espacio en disco duro (Asignación Indexada, Enlazada y Contigua), explica la Contigua:
Cada directorio contiene a los nombres de archivos y la dirección del bloque inicial de cada archivo, así como el tamaño total de los mismos. Por ejemplo, si un archivo comienza en el sector 17 y mide 10 bloques, cuando el archivo sea accedido, el brazo se moverá inicialmente al bloque 17 y de ahí hasta el 27. Si el archivo es borrado y luego creado otro más pequeño, quedarán huecos inútiles entre archivos útiles, lo cual se llama fragmentación externa.
De los 3 tipos de asignación de espacio en disco duro (Asignación Indexada, Enlazada y Contigua), explica la Enlazada:
Con este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la dirección del bloque inicial que compone al archivo. Cuando un archivo es leído, el brazo va a esa dirección inicial y encuentra los datos iniciales junto con la dirección del siguiente bloque y así sucesivamente. Con este criterio no es necesario que los bloques estén contiguos y no existe la fragmentación externa, pero en cada “eslabón” de la cadena se desperdicia espacio con las direcciones mismas. En otras palabras, lo que se crea en el disco es una lista ligada. Un sistema de asignación como este es el FAT.
De los 3 tipos de asignación de espacio en disco duro (Asignación Indexada, Enlazada y Contigua), explica la Indexada:
En este esquema se guarda en el directorio un bloque de índices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de manera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos: uno al bloque de índices y otro a la dirección deseada. Este es un esquema excelente para archivos grandes pero no para pequeños, porque la relación entre bloques destinados para índices respecto a los asignados para datos es incosteable. El inodo de Linux de este tipo de sistemas.
Cualquier dato o instrucción para ser ejecutado hay que cogerlos del Disco Duro y ubicarlos en la RAM para que la CPU los ejecute.
¿Cuáles son los 3 puntos a tener en cuenta para este proceso HDD -> RAM?
a) Que quepan el mayor número de procesos.
b) Aprovechar la memoria al máximo (no huecos libres).
c) Separación entre direccionamiento físico y lógico para no saturar los recursos hardware.
*MMU: (Unidad de Gestión de Memoria) es una parte de la circuitería de la CPU que se encarga de que exista esta separación físico/lógica.
NOTA: al ubicar el programa en memoria hay que segmentarlo (CS, SS o DS).
Al ubicar el programa en la memoria RAM hay que segmentarlo.
Define este proceso:
1º Dividir el programa en segmentos variables: text (segmentos de código), data, stack, … en los diferentes registros:
CS: segmento de Código.
SS: segmento de Stack (pila).
DS: segmento de Datos.
2º Ubicar dichos segmentos en una zona libre y contigua de la memoria.
NOTA: esta segmentación produce Fragmentación EXTERNA cuando el trozo del segmento es más pequeño el hueco de la memoria.
Esto relentiza la lectura de la misma, así que habría que DESFRAGMENTAR para obtener huecos continuos.