Bloque2-Tema4-TeoriaSO Flashcards
Definicion sistema operativo.
Un sistema operativo es un conjunto de programas integrados que tienen como objetivo
aprovechar el hardware de una computadora y utilizarlo en forma segura y eficiente. Para lograrlo,
se pueden resumir las siguientes funciones básicas:
- Gestionar los recursos de hardware de la computadora (procesador, memoria y periféricos
- Ser una interfaz entre el usuario y la computadora.
- Ser la plataforma para los programas de aplicación del usuario.
Componentes /servicios de un sistema operativo.
- 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)
Clasificacion de sistemas operativos 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.
Clasificacion de sistemas operativos 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…
Clasificacion de los sistemas operativos en base al 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.
Clasificacion de los sistemas operativos en base al 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.
Que es la unidad de gestion de memoria (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 o procesador.
Que es la segmentacion?
- 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
De que se compone la tabla de segmentos para la segmentacion?
Numero de segmento
y en la propia tabla:
-Base Adress-> donde empieza
-Limit-> Hasta donde llega
Que es la paginacion?
*Dividir el programa en bloques de tamaño fijo (página)
* Dividir la memoria en zonas de tamaño fijo (marcos)
* Ubicar las páginas en marcos libres
* No produce fragmentación externa pero si interna (ej. si el ultimo marco no está
relleno) (Una partición asignada y no ocupada totalmente por el proceso.)
* 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
Que es la memoria virtual?
- La memoria virtual permite ejecutar procesos que requieren más memoria que la disponible en el sistema, manteniendo en memoria principal solo aquella memoria que el proceso esté utilizando y el resto en el disco.
- Cuando una página solicitada no se encuentra en memoria principal se produce un “Fallo de pagina”. El “Fallo de página” genera un trap a nivel del SO, que activa una rutina de atención que carga la página en memoria principal. Se produce Hiperpaginación cuando hay un excesivo número de intercambios con el almacenamiento secundario.
- Si la memoría está llena se ejecuta un algoritmo de reemplazo para tener en memoría principal las páginas más “importantes” y en disco (swap) las demás
Que es la hiperpaginacion?
Cuando hay un excesivo número de intercambios con el almacenamiento secundario.
Que es el algoritmo FIFO?
El algoritmo reemplaza la página que lleva más tiempo en memoria principal
Que es el algoritmo 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
Que es el algoritmo 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.
Que es un proceso?
Un proceso es un programa en ejecución que necesita estar cargado en memoria y disponer de
recursos (CPU, memoria, archivos, dispositivos de E/S) para cumplir su objetivo. Se trata de una
entidad activa.
Que secciones/segmentos constituyen un proceso 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
Que es la tabla de procesos?
Cuando un proceso se ejecuta, el SO le asigna un espacio de direcciones de memoria (que
contiene las instrucciones, los datos y la pila que es una estructura para almacenar y recuperar
datos del proceso) y lo añade a la tabla de procesos.
El SO guarda en la tabla de procesos por cada proceso una estructura de datos llamada Bloque
de Control de Proceso (PCB) que almacena la siguiente información
- Identificación de proceso: del proceso en sí (PID), del proceso padre (PPID) y de usuario.
- Información de estado del proceso: preparado, en ejecución, bloqueado, ….
- Prioridad del proceso.
- Dirección de memoria donde se ha cargado el proceso
- Otros: recursos utilizados, valores de los registros del procesador, propietarios, permisos.
Estados de un proceso?
- 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.
Hay dos mas para el esquema con 5 estados que son:
-Preparado/Suspendido (Se active de suspende desde preparado)
-Bloqueado/Suspendido (Se activa se suspende desde bloqueado)
Mirar imagen bloque 2 tema 4
Posibles transiciones de un proceso?
- 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).
Que es la lista de procesos del sistema (job queue)
Es 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
Que es la cola de procesos listos (ready queue)?
Esta cola se compondrá de los procesos que estén en estado listo/preparado.
La estructura de esta cola dependerá de la estrategia
de planificación utilizada
Que es la 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
Es la listado de bloqueados.
Que es el cambio de contexto? (Context switch)
Consisten en quitarle la CPU al proceso “en ejecución” y asignársela a otro
estado “preparado”.