Amon SSOO BIII Flashcards
Componentes / Servicios de SSOO
- Gestión de procesos (planificadores)
- Gestión de memoria (técnicas de paginación, segmentación)
- Gestión de Entrada/Salida (controladores de dispositivos)
- Gestión de Archivos/Almacenamiento (sistemas de ficheros)
- Sistema de Protección (niveles de seguridad)
¿Que es POSIX?
Es una serie de normas, estándares y convenciones creadas por la comunidad de usuarios de Unix. Se utilizan con el fin de mejorar la compatibilidad entre diferentes sistemas operativos Unix y proporcionar una base para que las aplicaciones sean más portables entre distintos sistemas operativos.
Clasificación de SSOO
- Por el Nº de usuarios
- Monousuario: solo 1 usuario puede usar los recursos del sistema simultáneamente.
- Multiusuario: varios usuarios pueden usar los recursos del sistema simultáneamente. Por tanto, aunque haya
más de un usuario dado de alta en el sistema, si no pueden trabajar de forma simultánea, el SO no es
multiusuario.
- Por el Tiempo de respuesta (tiempo que tarda el usuario en obtener los resultados después de iniciar la ejecución
de un programa):- Procesamiento por lotes: el tiempo de respuesta no es importante y suele ser alto. Los procesos se ejecutan
secuencialmente unos tras otro. No existe interacción con el usuario. Ejemplo: copias de seguridad. - Tiempo compartido: el procesador divide su tiempo entre todos los procesos (usando algoritmos de
planificación como Round Robin). Ejemplo: sistemas multiusuarios interactivos (los usuarios interactúan con
el sistema). - Tiempo real: en estos SO, los procesos requieren un tiempo de respuesta muy bajo o inmediato. Ejemplos
donde esto es especialmente importante: sistema donde el tiempo de respuesta es crucial como sistemas
médicos de monitorización de pacientes, sistemas bancarios, tráfico aéreo…
- Procesamiento por lotes: el tiempo de respuesta no es importante y suele ser alto. Los procesos se ejecutan
- Por el Nº de procesos o tareas
- Monotarea: solo puede ejecutar 1 tarea a la vez.
- Multitarea o multiprogramación: puede ejecutar varios programas a la vez
- Por el Nº de procesadores
- Monoproceso / monoprocesador: el SO es capaz de gestionar solo 1 procesador, de manera que si
tuviese más sería inútil. En estos SO los procesos irán alternando su ocupación en la CPU. - Multiproceso / multiprocesador: el SO es capaz de gestionar varios procesadores, de modo que
puede usarlos simultáneamente para distribuir su carga de trabajo. Estos sistemas trabajan de dos
formas: - Asimétrica: el SO reparte las tareas, que está realizando, entre los procesadores. Determinados
procesos los ejecutará siempre un procesador, y el otro procesador sólo se utilizará para realizar
procesos de usuario. En este caso, es posible que un procesador esté siempre trabajando y el
otro, en ocasiones, sin actividad. - Simétrica: los procesos son enviados indistintamente a cualquiera de los procesadores
disponibles.
- Monoproceso / monoprocesador: el SO es capaz de gestionar solo 1 procesador, de manera que si
Qué es y cómo funciona la técnica de segmentación en SSOO
- Quepa el mayor número de procesos
- Aprovechar la memoria al máximo (no huecos libres)
- Separación entre direccionamiento físico y virtual/lógico. MMU
- Tecnicas
- Dividir el programa en segmentos variables (text, data, stack)
- Ubicar los segmentos en una zona libre y contigua
- Produce fragmentación externa à Puede haber mucha memoria libre (pequeños huecos) pero donde no entra un segmento grande (habría que defragmentar)
Que es la Multiprogramación en SSOO
Multiprogramación: Es la capacidad de tener a varios programas cargados en momoria principal. Cuando uno acabe entra otro inmediatamente
SSOO. Paginación
- Dividir el programa en bloques de tamaño fijo (página)
- Dividir la memoria en zonas de tamaño fijo (marcos/frames)
- Ubicar las páginas en marcos libres
- No produce fragmentación externa pero si interna (ej. si el ultimo marco no está relleno)
- Técnica adecuada para la gestión de memoria virtual
- La MMU nos ayuda con el TLB (cache de la Page Table) a realizar la traducción
SSOO. ¿Qué es MMU?
La unidad de gestión de memoria, unidad de administración de memoria o unidad de manejo de memoria (del inglés Memory Management Unit, MMU) es un dispositivo de hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU) o procesador.
Cuando la CPU intenta acceder a una dirección de memoria lógica, la MMU realiza una búsqueda en una memoria caché especial llamada Buffer de Traducción Adelantada (TLB, Translation Lookaside Buffer), que mantiene la parte de la tabla de páginas usada hace menos tiempo.
SSOO. Segmentacíon Paginada
La segmentación paginada es un esquema en el que cada segmento se divide en páginas. Por tanto, la dirección lógica se compone por: El número de segmento. El número de página que hay dentro del segmento
SSOO. Flat Mode
El modelo de memoria plana o modelo de memoria lineal se refiere a un paradigma de direccionamiento de memoria en el que “la memoria aparece para el programa como un único espacio de dirección contiguo”.[1] La CPU puede direccionar directamente (y linealmente) todas las ubicaciones de memoria disponibles sin tener que recurrir a ningún tipo de conmutación de bancos, segmentación de memoria o esquemas de paginación.
SSOO. Memoria Virtual
- Usar el almacenamiento para extender la memoria principal. PAra ello se descargan las páginas al disco duro y se gestiona su carga cuando hace falta.
- FIFO à El algoritmo reemplaza la página que lleva más tiempo en memoria principal
- LRU (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
- 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:
- Categoría 0: No referenciada, No modificada
- Categoría 1: No referenciada, modificada
- Categoría 2: referenciada, No modificada
- Categoría 3: referenciada, modificada
- Las mejores páginas para cambiar son las que se encuentran en la categoría 0, mientras que las peores son las de la categoría 3
SSOO. Processos
- Cuando un programa pasa a ejecución se convierte en proceso. Un mismo programa se puede mandar varias veces generando varios procesos en memoria.
- Código (Text): instrucciones del proceso.
- Datos (Data): variables globales del proceso.
- Memoria dinámica (Heap): Memoria dinámica que genera el proceso.
- Pila (Stack): utilizado para preservar el estado en la invocación anidada de
procedimientos y funciones
SSOO. Estados de los procesos
- Estados:
- 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.
- Transiciones:
- 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).
- 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.
- 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.
- 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.
SSOO. Planificación de procesos
- Planificador a largo plazo:
- Selecciona procesos de la cola de esperando ejecución y los carga a memoria
- Controla el grado de multiprogramación. Es importante que elija un conjunto equilibrado de procesos.
- Se ejecuta con poca frecuencia.
- Planificador a corto plazo / Distpacher:
- Selecciona entre los procesos preparados en memoria y les asigna la CPU.
- Se ejecuta con mucha frecuencia.
- Planificador a medio plazo:
- Decide qué proceso pasa de la memoria principal a la secundaria (memoria virtual) o viceversa.
- Planificación no apropiativa (non-preemptive):
- Algoritmos no expulsivos.
- Los procesos se ejecutan hasta que terminan o se bloquean.
- Sencillo de implementar.
- Rendimiento negativo en general.
- SJF (Shortest Job First) –> Los que menos tarden primero
- Planificación aproviativa (preemptive):
- Algoritmos expulsivos.
- Los procesos 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.
- FCFS (First Come First Server) –> FIFO, primero en llegar primero en procesar
- SRTF (Shortest Remaining Time First) –> Al que le quede menos se ejecuta primero
- Round Robin –> Quantum de tiempo, si tarda más se expulsa y se encola. Si tarda menos termina.
- Multilevel Queue –>
SSOO. Hilos de ejecución
Un hilo es una unidad básica de utilización de CPU, la cual contiene un id de hilo, su propio program counter, un conjunto de registros y una pila; se representa a nivel del SO con una estructura llamada TCB (Thread Control Block)
Los hilos comparten con otros hilos que pertenecen al mismo proceso la sección de código, la sección de datos, entre otras cosas. Si un proceso tiene múltiples hilos, puede realizar más de una tarea a la vez (esto es real cuando se posee más de una CPU o Core).
SSOO. Comunicación de procesos
- Memoria compartida –> Necesitan un mecanismo de sincronización externo. La responsabilidad de la comunicación recae en los procesos (el sistema operativo sólo proporciona llamadas para manipular dicha memoria compartida).
- Paso de mensajes –> La responsabilidad de la comunicación y sincronización recae en el Sistema Operativo que proporciona un enlace lógico entre procesos. Los procesos sólo tienen que invocar correctamente a dos llamadas básicas: send y receive (bloqueantes o no).
- Canalizaciones (tuberías) con nombre y sin nombre
NOTA: Para la sincronización podemos usar Semaforos o Monitores. Dead lock/ Interbloqueo o Abrazo mortal
NOTA: Para garantizar el acceso concurrente con exclusión mutua existen varios algoritmos: Dekker, Peterson, Eisenberg – McGuire y el de la panadería de Lamport
SSOO. Tipos de asignación de espacio
- Asignación contigua
- Asignación enlazada
- Asignación indexada
Señale la respuesta INCORRECTA sobre el kernel de un Sistema Operativo:
a) Controla todas las funciones importantes del hardware.
b) Se encarga del procesamiento paralelo de tareas (multitasking).
c) Es el núcleo del procesador.
d) Recibe peticiones de servicio de los procesos y los comunica con el hardware.
c) Es el núcleo del procesador.
En un sistema operativo, indique el scheduler que decide qué proceso entra en el procesador para su ejecución:
a) Short term scheduler.
b) Mid term scheduler.
c) Long term scheduler.
d) Main term scheduler.
c) Long term scheduler.
Concepto de multiprogramacion
Capacidad para alojar varios programas en memoria principal
NOTA: Multitarea es poder ejecutarlos concurrentemente
¿Son los segmentos elementos de longitud fija o variable?
En la segementacion (tecnica de gestion de memoria de un cierto SSOO) los segmentos son divisiones de tu programa variables (ej. segmento de codigo, segmento de datos,….y el SSOO necesita un hueco libre contiguo para alojar completo dicho segmento)
NOTA: La segmentacion produce fragmentacion externa
NOTA: En el sistema de paginación tu programa se divide en trocitos de tamaño fijo llamados “paginas”
Funcion principal de la MMU
Componente que ayuda a la CPU a TRADUCIR direcciones LOGIGAS/VIRTUALES a direcciones FISICAS
Ej. un formato “en bits” de una direccion logica (si usamos paginacion seria) ppppppppppdddddddddddddddddddddd (p=pagina d=desplazamiento dentro de la pagina)
Proceso por que pasamos de una direccion virtual a fisica en paginacion
Del formato logica ppppppppppdddddddddddddddddddddd usando los bits “p” consultamos en una estructura de datos llamada “tabla de paginas” donde está cargada esa pagina…
…una vez que sabemos ese datos, solo tenemos que sumarle el desplazamiento
¿Qué es un fallo de pagina?
Cuando queremos acceder a una pagina que no esta en memoria principal
Concepto de algoritmo de planificación apropiativo
Ej. Round Robin es un ejemplo de algoritmo apropiativo…porque expulsa de la CPU al proceso que esté en ese momento
¿Qué es el bloque de control de proceso o PCB?
Una estructura de datos que gestiona el SSOO para cada proceso y contiene metadatos como:
- PID
- Estado
- Ficheros que tiene abiertos
- Prioridad
- …
Enumere los 5 estados del ciclo de vida de un proceso
- nuevo (cuando se crea)
- preparado (el proceso ya esta en una cola esperando por la CPU)
- en ejecucion
- bloqueado (esperando un evento de E/S)
- terminado
Nombre dos algoritmos de exclusión mutua. ¿Qué objetivo tiene?
OBJETIVO: Acceder a un recurso compartido (seccion critica) sin que nos bloqueemos entre nosotros
Peterson, Dekker,…
Concepto de Thread
Serian procesos ligeros en los que se divide un proceso clasico y se pueden planificar de forma independiente
NOTA: Los hilos de un proceso comparten recursos con él