Gestión de Memoria y Dispositivos de Entrada/Salida (E/S) en Sistemas Operativos
Tipos de Procesos según la Gestión y Ubicación en Memoria
Procesos residentes: Son aquellos procesos que una vez cargados en memoria permanecen en ella hasta que se apaga el ordenador.
Procesos reentrantes: Son procesos que, si no se están ejecutando, dejan la memoria libre para otros procesos.
Procesos reubicables: Son los procesos que una vez se cargan en memoria RAM para ser ejecutados pueden variar su posición debido a que el espacio que ocupan puede ser necesario por otros procesos.
Procesos reutilizables: Son programas que pueden ser utilizados por varios programas o usuarios para aprovechar la memoria.
Administración de la Memoria en el Sistema Operativo
La parte del SO que administra la memoria se llama gestor de memoria, cuya misión principal es la asignación de memoria principal a los procesos que la soliciten.
Pasos en el Arranque de la Máquina
Para llevar a cabo el arranque de la máquina, los ordenadores se apoyan en memorias tipo ROM que almacenan algunos drivers básicos de acceso al disco y teclado y la rutina de inicio del sistema.
Los pasos seguidos en el arranque son los siguientes:
- La CPU ejecuta la rutina de inicio del sistema:
- Test del HW (POST – Power On Self Test). Si detecta errores, genera pitidos.
- Llama y carga IPL (Initial Program Loader) o cargador inicial del SO.
- IPL carga en RAM las pistas 0 y 1 del disco (sector de arranque de la máquina). Este contiene la dirección del cargador de primera etapa del SO, lo que permitirá seleccionar el SO que queremos iniciar, en caso de que haya más de uno.
- Seleccionado, se ejecuta el cargador de segunda etapa del SO que carga en RAM (normalmente en la zona baja de la memoria) y arranca el SO completo.
- El SO toma el control.
Buffers
Medición del Rendimiento de la Memoria Virtual en Windows
Para medir el rendimiento de la memoria virtual utilizaremos Herramientas administrativas | Rendimiento.
Memoria Virtual: Concepto y Técnicas
La información que se utiliza frecuentemente se almacena en memoria principal y la que no se utiliza tan a menudo se almacena en el disco duro.
La memoria virtual se apoya en el swapping, utiliza la paginación, la segmentación y la segmentación paginada para ejecutar los procesos cargados parcialmente.
Ventajas de un Sistema Operativo con Memoria Virtual
Ventajas de la Memoria Virtual S.O:
- Aumentar el número de procesos residentes en memoria y que realmente se utilizan con frecuencia: al no cargarse los programas enteros, caben más programas en RAM.
- Permitir de forma transparente la ejecución de procesos no cargados completamente en memoria principal, permitiendo ejecutar programas mayores que el tamaño real de la memoria.
Segmentación Paginada
Paginación y segmentación son técnicas diferentes, cada una tiene sus ventajas e inconvenientes. Esta nueva política de asignación de memoria combina ambas para obtener las ventajas de las dos.
- Paginación: No permite controlar los accesos no permitidos.
- Segmentación: La segmentación presenta fragmentación externa.
Paginación
En la paginación se divide la memoria principal en bloques de igual tamaño (entre 512b y 8Kb), llamados marcos de página o frames. A su vez, los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas.
Segmentación
Esta técnica se puede considerar una combinación de las dos anteriores. Es similar a la asignación de la memoria en particiones variables, ya que cargar un proceso con N segmentos en memoria consiste en buscar N huecos disponibles.
Permite alcanzar los siguientes objetivos:
- La Modularidad de programas: cada bloque del programa puede ser modificado sin afectar por ello al resto del programa.
- La Protección de segmentos: se puede proteger cada segmento contra accesos no autorizados e incluso marcar algunos como de sólo lectura para que no puedan verse modificados.
- Varios procesos pueden compartir el mismo segmento.
Gestión de Dispositivos de Entrada / Salida (E/S)
Los periféricos están formados normalmente por componentes mecánicos y componentes electrónicos (controladoras HW).
Clasificación de los Dispositivos de E/S
Los dispositivos de E/S pueden clasificarse de muchas formas.
Según su Función
- Dispositivos de almacenamiento: Forman la memoria auxiliar o secundaria del ordenador y permiten almacenar grandes cantidades de datos de forma persistente.
- Dispositivos de interfaz: Permiten comunicar al usuario con el ordenador.
- Dispositivos de transmisión: Permiten intercomunicar distintos ordenadores entre sí o distintas partes de un mismo ordenador.
Software E/S. Drivers
Un driver, también llamado manejador de dispositivo, es el SW (programa informático) que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz estándar para usarlo.
Tipos de E/S
E/S Controlada por Programa
En la E/S controlada por programa es el procesador el encargado de realizar la operación de E/S.
E/S Controlada por Interrupciones
En la E/S controlada por interrupciones, el procesador lanza las órdenes de E/S cargando los registros del controlador, luego le envía los datos a transferir y continúa con la ejecución de otro proceso.
Planificación E/S
El orden en el que se producen las peticiones de E/S habitualmente no será el más adecuado para que el rendimiento del sistema sea óptimo.
Buffers
El buffer es una zona de la memoria principal que sirve para almacenar los datos, tanto de entrada como de salida, que se transfieren entre un dispositivo y una aplicación.
Spool
En el spool se utiliza el disco como un buffer de E/S en el que se vuelcan los datos de muchos usuarios que van a un periférico que solo se puede utilizar de manera exclusiva por un proceso a la vez.
- La CPU vuelca los datos en el disco.
- Si el periférico no está disponible, los datos se van almacenando en una cola para cuando puedan ser atendidos por el periférico.
- Si el periférico está disponible, se realiza la transferencia disco periférico, sin la intervención constante de la CPU.
Gestión de Archivos
La gestión de archivos se encarga de proporcionar un almacenamiento a largo plazo, tanto de los datos como de los programas que los manipulan, independiente del dispositivo físico donde se encuentren.
Administración de archivos: Debe ofrecer diferentes funciones para la manipulación de los archivos y directorios.
- Administración del almacenamiento secundario: Debe asignar espacio en los dispositivos de almacenamiento secundario a los archivos.
- Mecanismos de integridad: Debe proporcionar mecanismos para que la información almacenada en un archivo no desaparezca.
- Métodos de acceso: Una vez creado el archivo en un dispositivo de almacenamiento secundario, debe permitir el acceso a los datos almacenados en él.
Tipos y Estructuras de Archivos
Todo fichero es una secuencia de Bytes, pero cada archivo, en función de su utilidad, tiene una estructura interna concreta. Es lo que se denomina el tipo del fichero.
Los dos SO más populares en el mercado utilizan técnicas diferentes en este aspecto. Los SO Windows incluyen el tipo de archivo en el nombre con una extensión, lo que permite al sistema determinar las operaciones que puede realizarse con ese archivo o las aplicaciones asociadas para manipularlo.
En Linux no se definen tipos de archivos, estos se consideran como una secuencia de bytes, siendo las aplicaciones que manipulen dicho archivo las encargadas de reconocer la estructura del mismo. Unix sólo interpreta unos pocos tipos de archivos:
- Los ejecutables para que el SO pueda ejecutar programas
- Los directorios (una colección de ficheros)
- Los archivos de dispositivos (usados para acceder a los dispositivos del sistema como discos duros, disqueteras, modem, etc.)
- El resto son los denominados archivos regulares y corresponden a los que tiene información de los usuarios.
Los interfaces de las últimas…
Operaciones con Archivos
- CREATE (crear): Consiste en buscar si ya existe ese archivo y si no existe, se busca espacio en disco y se inserta una nueva entrada en el directorio con el…
- OPEN (abrir): Para poder manipular un fichero primero hay que abrirlo.
- CLOSE (Cerrar): La operación cerrar termina todas las operaciones pendientes sobre el archivo.
- APPEND (Añadir): Esta operación abre el fichero y sitúa el puntero al final del fichero.
- DELETE (Borrar): Elimina un archivo y liberar el espacio en almacenamiento secundario que ocupa.
- COPYFILE (Copiar): Duplica la información de un archivo con un nombre diferente.
- RENAME (Renombrar): Cambia el nombre de un archivo.
Directorio de un Solo Nivel
Todos los ficheros están contenidos en un único directorio.
Directorio de Dos Niveles
Con el modelo anterior, usuarios diferentes debían comprobar si el nombre elegido para su archivo estaba libre. Este problema se solventa si para cada usuario se crea un directorio, de esta forma conseguimos que varios usuarios puedan tener archivos con el mismo nombre.
Directorio con Estructura de Árbol
En esta estructura cada directorio puede contener archivos y/o otros (sub)directorios.
Planificación de los Accesos a Disco
- El tiempo de búsqueda: tiempo que tarda la cabeza en situarse en la pista que contiene el bloque a leer.
- El tiempo de latencia: tiempo que tarda en situarse debajo de la cabeza lectora el bloque que se desea leer una vez situada la cabeza en la pista.
- El tiempo de transferencia: tiempo que tarda en transferirse la información al buffer.
Cachés de Disco
La caché es una colección de bloques que pertenecen desde el punto de vista lógico al disco, pero que se mantienen en la memoria por razones de rendimiento.
Sistemas de Archivos
Un sistema de archivos es una estructura que permite tanto el almacenamiento de información en una partición como su modificación y recuperación.
FAT
Almacena en una tabla (FAT) la ubicación física de cada uno de los ficheros en el disco.
NTFS
Se incorporan en los Sistemas Operativos Windows NT 3.51, Windows NT 4.0, Windows Server 2000, Windows XP y Windows Server 2003.
La diferencia entre NTFS y FAT32 viene motivada fundamentalmente por la seguridad de archivos y usuarios.
Sistemas de Ficheros de Linux
Desde hace mucho tiempo, el sistema de ficheros estándar en Linux es el ext. Existen varias versiones: ext2, ext3 y ext4. El ext2 está basado en i-nodos (asignación indexada). Cada i-nodo mantiene la meta-información del fichero y los punteros a los bloques con los datos «reales».