Logo Studenta

Resumen_ARQ-_ARCHIVOS-_ADM_DE_ARCHIVOS_-MEMORIA

¡Este material tiene más páginas!

Vista previa del material en texto

1
Resumen ARQUITECTURA Y SISTEMAS OPERATIVOS
ADMINISTRACIÓN DEL SISTEMA DE ARCHIVOS
Unidad n` 3: ARCHIVOS
Un archivo es una unidad básica de almacenamiento de información en un sistema informático. Es una colección organizada de datos que se guarda en un medio de almacenamiento, como un disco duro, una memoria USB o un servidor en la nube. Los archivos pueden contener diferentes tipos de datos, como texto, imágenes, videos, música, documentos, programas, entre otros.
Cada archivo tiene un nombre único que lo identifica dentro del sistema de archivos. El nombre del archivo, junto con su extensión (como .txt, .jpg, .docx), ayuda a identificar el tipo de archivo y qué aplicación o programa puede abrirlo correctamente.
Los archivos también tienen atributos asociados, como su tamaño (en bytes), fecha de creación, fecha de modificación, permisos de acceso y propietario. Estos atributos proporcionan información adicional sobre el archivo y controlan cómo se puede acceder y manipular.
Los archivos se organizan en estructuras de directorios o carpetas, que a su vez pueden contener subdirectorios y archivos adicionales. Esta estructura jerárquica de directorios permite una organización lógica y eficiente de los archivos dentro del sistema de archivos.
Cuando se accede a un archivo, se pueden realizar varias operaciones, como abrirlo para leer o modificar su contenido, cerrarlo una vez que se haya terminado de usar, renombrarlo para cambiar su nombre, copiarlo para crear una copia adicional, moverlo de un directorio a otro, y eliminarlo para eliminarlo del sistema de archivos
1- Nomenclatura: En la administración de archivos, la nomenclatura se refiere al nombre dado a un archivo para identificarlo. Es importante seguir reglas y convenciones para nombrar archivos de manera que sean descriptivos y fáciles de reconocer. Por ejemplo, se puede utilizar un nombre relacionado con el contenido del archivo, seguido de una extensión que indique su tipo de archivo.
2- Estructura: La estructura de un archivo se refiere a cómo se organizan y almacenan los datos dentro del archivo. Puede variar dependiendo del tipo de archivo. Por ejemplo, los archivos de texto suelen estar estructurados en líneas y párrafos, mientras que los archivos binarios tienen una estructura más compleja basada en bytes y estructuras de datos específicas.
3- Tipos de archivos: Existen diferentes tipos de archivos, como documentos de texto, imágenes, videos, audio, hojas de cálculo, presentaciones, entre otros. Cada tipo de archivo tiene su propia estructura y está diseñado para almacenar y representar un tipo específico de información.
4- Accesos, atributos y operaciones: Los archivos tienen atributos y propiedades que definen sus características y cómo se pueden acceder a ellos. Los atributos incluyen información como el tamaño del archivo, la fecha de creación o modificación, los permisos de acceso y el propietario. Los archivos también tienen operaciones asociadas, como abrir, cerrar, leer, escribir, renombrar o eliminar.
DIRECTORIOS:
Los directorios, también conocidos como carpetas, son estructuras de organización utilizadas en sistemas de archivos para agrupar y almacenar archivos de manera jerárquica. Aquí tienes una explicación de sus características principales:
1- Jerarquía: Los directorios se organizan en una estructura jerárquica, similar a un árbol, donde existe un directorio principal o raíz y otros directorios pueden estar contenidos dentro de él. Esto permite crear una estructura de directorios en niveles, facilitando la organización y localización de los archivos.
2- Rutas: Los directorios se identifican mediante rutas que indican su ubicación en la jerarquía. Una ruta puede ser absoluta, comenzando desde la raíz del sistema de archivos, o relativa, en relación con el directorio actual. Por ejemplo, una ruta absoluta podría ser "/Usuarios/Usuario/Documentos" y una ruta relativa podría ser "../Fotos", que indica que el directorio "Fotos" está un nivel arriba en la jerarquía.
3- Operaciones: Los directorios admiten diversas operaciones, entre las que se incluyen:
· Creación: Se pueden crear nuevos directorios para organizar los archivos. Esto se logra utilizando comandos o funciones específicas en el sistema operativo o mediante el uso de aplicaciones de administración de archivos.
· Navegación: Es posible navegar a través de los directorios para acceder a los archivos contenidos en ellos. Esto se puede hacer utilizando comandos o interfaces gráficas proporcionadas por el sistema operativo.
· Copia y movimiento: Los directorios se pueden copiar o mover para reorganizar la estructura de archivos. Esto permite la gestión y reubicación de archivos en diferentes ubicaciones dentro de la jerarquía.
· Eliminación: Los directorios se pueden eliminar para eliminar toda la estructura de archivos que contienen. Es importante tener precaución al eliminar directorios, ya que también se eliminan todos los archivos y subdirectorios contenidos en ellos.
PROBLEMÁTICA:
1- Espacio de direcciones limitado: Los sistemas de archivos tienen un espacio de almacenamiento limitado para almacenar archivos. Esto significa que es necesario utilizar este espacio de manera eficiente para almacenar una gran cantidad de información. Se requiere una gestión adecuada del espacio disponible para evitar la saturación y permitir el almacenamiento de nuevos archivos.
2- Persistencia: La persistencia se refiere a la capacidad de que la información almacenada en el sistema de archivos sobreviva a la terminación del proceso que la utilizó. Es decir, los archivos deben mantenerse en el sistema de almacenamiento a largo plazo y estar disponibles para su acceso posterior. Esto implica garantizar que los archivos no se pierdan o se corrompan, incluso después de reiniciar el sistema o cerrar una aplicación.
3- Concurrencia: La concurrencia se refiere a la capacidad de permitir que múltiples procesos o usuarios accedan a la información almacenada en el sistema de archivos al mismo tiempo. 
Esto implica la implementación de mecanismos que permitan un acceso simultáneo a los archivos sin corromper los datos. Es importante asegurar que las operaciones de lectura y escritura realizadas por diferentes procesos se gestionen adecuadamente y no generen inconsistencias o conflictos.
La administración del sistema de archivos se enfrenta a desafíos como la gestión eficiente del espacio de almacenamiento limitado, la garantía de persistencia de los archivos y la implementación de mecanismos que permitan el acceso concurrente a la información sin generar conflictos. Estos desafíos son importantes para asegurar un sistema de archivos confiable y funcional.
Requerimientos
1. Debe ser posible almacenar una cantidad muy grande de información.
2. La información debe sobrevivir a la terminación del proceso que la utilice.
3. Múltiples procesos debe ser capaces de acceder a la información concurrentemente.
La ABSTRACCIÓN es un concepto fundamental en la informática que permite simplificar y ocultar los detalles complejos de un sistema, proporcionando una capa de representación más fácil de entender y utilizar. 
· Abstracción de Proceso: En el contexto de los sistemas operativos, un proceso es una instancia en ejecución de un programa. La abstracción de proceso permite ocultar los detalles internos del funcionamiento de un programa y proporciona una representación simplificada que incluye recursos asignados (como memoria y CPU), estado de ejecución, identificación y comunicación con otros procesos. Esto permite a los programadores y usuarios interactuar con los procesos de manera más simple y controlada, sin necesidad de conocer todos los detalles de su implementación subyacente.
· Abstracción de Memoria: La abstracción de memoria oculta los detalles complejos del hardware de memoria y proporciona una representación simplificada del espacio de memoria disponible para los programas. Permite a los programadores trabajar con direcciones de memoria lógicas y acceder a la memoriasin tener que preocuparse por la gestión de la memoria física o los detalles de cómo se asigna y organiza la memoria en el hardware. Esto facilita el desarrollo de aplicaciones y permite una gestión más eficiente y segura de la memoria por parte del sistema operativo.
· Abstracción de Archivo: La abstracción de archivo permite a los usuarios y aplicaciones interactuar con los datos almacenados en dispositivos de almacenamiento, como discos duros, mediante una interfaz más sencilla y coherente. Proporciona operaciones estándar, como lectura, escritura, apertura, cierre y búsqueda de archivos, sin necesidad de conocer los detalles técnicos de cómo se almacenan los datos en el dispositivo. Los archivos se presentan como unidades lógicas de datos organizados en una estructura jerárquica (directorios) y se puede acceder a ellos utilizando su nombre y ubicación en el sistema de archivos.
La abstracción de proceso, memoria y archivo en la informática permite simplificar y ocultar los detalles complejos de los programas en ejecución, la gestión de la memoria y el almacenamiento de datos. Estas abstracciones proporcionan interfaces y representaciones más fáciles de entender y utilizar, lo que facilita el desarrollo de aplicaciones y la interacción con los recursos del sistema.
• Archivos: Son unidades lógicas de información creada por los procesos. Estructuran, denominan, abren, utilizan, protegen, implementan y administran.
La parte del sistema operativo que gestiona los archivos se conoce como Sistema de Archivos. El Sistema de Archivos es una parte fundamental del sistema operativo que proporciona una interfaz y un conjunto de servicios para administrar el almacenamiento y la organización de los archivos en un dispositivo de almacenamiento, como un disco duro.
VISTA DEL USUARIO:
Desde la perspectiva del usuario, un archivo se considera como una unidad lógica de almacenamiento que contiene información relacionada. Aquí tienes una explicación sobre cómo se constituye un archivo, cómo se denominan y protegen, y las operaciones permitidas con ellos:
· Constitución de un archivo: Un archivo se constituye mediante la creación de una estructura de datos que almacena información específica. Puede contener diferentes tipos de datos, como texto, imágenes, audio, video, entre otros. Los archivos se crean mediante aplicaciones o comandos específicos del sistema operativo, donde se proporciona un nombre y se selecciona el formato adecuado para almacenar los datos.
· Denominación de archivos: Los archivos se denominan con un nombre único que los identifica en el sistema de archivos. Los nombres de archivo suelen seguir ciertas reglas y convenciones del sistema operativo, como la longitud máxima del nombre, el uso de caracteres permitidos y la distinción entre mayúsculas y minúsculas. Los nombres de archivo pueden incluir extensiones que indican el tipo de archivo y su formato, como ".txt" para archivos de texto o ".jpg" para imágenes en formato JPEG.
· Protección de archivos: Los archivos pueden protegerse mediante mecanismos de seguridad y permisos de acceso. El sistema operativo permite establecer permisos para cada archivo, determinando quién puede acceder a ellos y qué operaciones pueden realizar. Los permisos comunes incluyen lectura, escritura y ejecución. También es posible aplicar contraseñas o cifrado a los archivos para proteger su contenido y limitar el acceso no autorizado.
· Operaciones con archivos: Los usuarios pueden realizar varias operaciones con archivos, dependiendo de los permisos otorgados y las capacidades del sistema operativo. Algunas operaciones comunes incluyen:
· Creación: Permite crear un nuevo archivo y asignarle un nombre.
· Lectura: Permite leer el contenido de un archivo sin modificarlo.
· Escritura: Permite modificar o añadir información a un archivo existente.
· Eliminación: Permite eliminar un archivo del sistema de archivos.
· Copia: Permite crear una copia de un archivo existente.
· Movimiento: Permite cambiar la ubicación de un archivo dentro del sistema de archivos.
· Cambio de permisos: Permite modificar los permisos de acceso a un archivo.
· Búsqueda: Permite buscar archivos en el sistema de archivos utilizando criterios específicos, como nombre, fecha de creación o extensión.
VISTA DEL SISTEA OPERATIVO:
Desde la perspectiva del sistema operativo, la administración de archivos implica la implementación de diferentes estructuras y técnicas para gestionar eficientemente los archivos en el sistema de almacenamiento.:
· Listas ligadas: Una lista ligada es una estructura de datos que permite almacenar y organizar los archivos. En este enfoque, cada archivo tiene un puntero que apunta al siguiente archivo en la lista. Esto facilita la inserción y eliminación de archivos, ya que solo se necesitan ajustar los punteros correspondientes. Sin embargo, el acceso aleatorio a los archivos puede ser más lento, ya que se debe seguir la lista secuencialmente para llegar a un archivo específico.
· Mapa de bits: Un mapa de bits es una representación de bits que se utiliza para indicar qué bloques o sectores de almacenamiento están ocupados o libres en el sistema de archivos. Cada bit en el mapa de bits representa el estado de un bloque de almacenamiento. Un bit de valor 1 indica que el bloque está ocupado, mientras que un bit de valor 0 indica que el bloque está libre. Esta técnica es eficiente para el acceso aleatorio a los archivos, ya que se puede determinar rápidamente la disponibilidad de un bloque específico. Sin embargo, puede requerir una mayor cantidad de espacio de almacenamiento para almacenar el mapa de bits completo.
· Tabla de asignación de archivos (FAT): La tabla de asignación de archivos (File Allocation Table, FAT) es una estructura utilizada en sistemas de archivos como FAT16 y FAT32. Consiste en una tabla que mapea los clústeres o bloques de almacenamiento utilizados por cada archivo. Cada entrada en la tabla contiene información sobre el estado de un clúster específico, como si está ocupado por un archivo y la dirección del siguiente clúster en el archivo. La FAT facilita el acceso a los archivos y la gestión del espacio de almacenamiento.
· Índices: Algunos sistemas de archivos utilizan estructuras de índices para agilizar el acceso a los archivos. Un índice es una estructura que almacena información sobre los archivos, como sus nombres y ubicaciones físicas en el almacenamiento. Esto permite una búsqueda más rápida y directa de archivos según sus nombres o atributos específicos. Los índices pueden implementarse de diferentes maneras, como árboles B, tablas hash o índices de dispersión.
NOMENCLATURAS:
La nomenclatura se refiere al conjunto de reglas y convenciones utilizadas para nombrar los archivos en un sistema operativo.:
· Hasta 255 caracteres (Windows): En el sistema operativo Windows, se permite que los nombres de archivo tengan hasta 255 caracteres, incluyendo el nombre en sí y la extensión. Esto significa que los nombres de archivo pueden ser bastante largos y descriptivos. Sin embargo, es importante tener en cuenta que cada componente del nombre (nombre y cada subdirectorio) no puede superar los 255 caracteres.
· Case sensitive (Windows no, Linux sí): La sensibilidad a mayúsculas y minúsculas se refiere a si el sistema operativo distingue entre letras mayúsculas y minúsculas al manejar los nombres de archivo. En el caso de Windows, el sistema de archivos predeterminado (NTFS) no es case sensitive, lo que significa que no hace diferencia entre mayúsculas y minúsculas al buscar o acceder a los archivos. Por ejemplo, los nombres "archivo.txt" y "Archivo.txt" se considerarían iguales.
Por otro lado, en sistemas operativos como Linux, la sensibilidad a mayúsculas y minúsculas es importante. Esto significa que los nombres "archivo.txt" y "Archivo.txt" se considerarían diferentes y se tratarían como archivos distintos. Por lo tanto, en Linux es necesario tener en cuenta la escritura exacta del nombre del archivo al realizar operaciones de búsqueda o acceso.
Es importantetener en cuenta que estos aspectos de la nomenclatura pueden variar dependiendo del sistema operativo y del sistema de archivos utilizado. Algunos sistemas
operativos y sistemas de archivos pueden tener limitaciones o características adicionales en cuanto a la nomenclatura de archivos. Por lo tanto, es recomendable consultar la documentación específica del sistema operativo o sistema de archivos que se esté utilizando para obtener información más precisa y detallada sobre la nomenclatura de archivos en ese entorno.
 EXTENSIONES:
Las extensiones de archivo son una parte importante de la nomenclatura de archivos, ya que indican el tipo de archivo y su formato. Aquí tienes una explicación sobre las extensiones de archivo en diferentes sistemas operativos:
· MS-DOS: En el sistema operativo MS-DOS, los nombres de archivo están limitados a 8 caracteres para el nombre y 3 caracteres para la extensión. Por ejemplo, un archivo de texto podría tener el nombre "documento.txt". Aquí, "documento" es el nombre del archivo y "txt" es la extensión que indica que es un archivo de texto.
· Unix: En sistemas operativos Unix, como Linux, la nomenclatura de archivos es más flexible. Los archivos pueden tener una extensión simple, como ".txt" para archivos de texto, o pueden tener múltiples extensiones, como ".tar.gz" para archivos comprimidos y empaquetados. En este caso, ".tar" indica que el archivo está en formato de archivo tar y ".gz" indica que está comprimido con gzip.
· Windows: En el sistema operativo Windows, los nombres de archivo pueden tener una extensión más larga y no están restringidos a un número fijo de caracteres. Además, Windows utiliza un registro de asociación de extensión con la aplicación para determinar qué programa se utilizará para abrir un archivo en particular. Por ejemplo, un archivo con la extensión ".docx" se asocia con la aplicación Microsoft Word, lo que significa que se abrirá automáticamente con Word cuando se haga doble clic en él.
Las extensiones de archivo son útiles para identificar rápidamente el tipo de contenido de un archivo y determinar qué programa puede abrirlo. Sin embargo, es importante tener en cuenta que las extensiones de archivo no son infalibles y no siempre indican el verdadero formato o tipo de archivo. Por lo tanto, es recomendable tener precaución al abrir archivos desconocidos y confiar en la extensión de archivo como única garantía del tipo de archivo.
Extensiones
Estructuras de archivos
	
TIPOS DE ARCHIVOS:
· Archivos regulares: Son los archivos estándar utilizados por los usuarios para almacenar información en forma de texto o datos binarios. Los archivos regulares pueden contener cualquier tipo de información, como documentos de texto, hojas de cálculo, imágenes, videos, programas ejecutables, etc. Estos archivos son manipulados directamente por los usuarios y las aplicaciones.
· Directorios: Los directorios son una forma especial de archivo utilizada para organizar y mantener la estructura del sistema de archivos. Los directorios contienen información sobre otros archivos y directorios, y permiten una organización jerárquica de los archivos en el sistema. Los usuarios pueden crear, eliminar y manipular directorios para organizar y gestionar sus archivos de manera eficiente.
· Archivos especiales de caracteres: Estos archivos se utilizan para modelar dispositivos de entrada y salida (E/S) en el sistema. Representan dispositivos físicos o virtuales, como impresoras, teclados, ratones, puertos seriales, etc. Los archivos especiales de caracteres permiten la comunicación entre el sistema operativo y los dispositivos de E/S, y los usuarios y las aplicaciones pueden acceder a ellos para realizar operaciones de lectura o escritura específicas.
· Archivos especiales de bloques: Estos archivos se utilizan para modelar dispositivos de almacenamiento masivo, como discos duros, SSDs, unidades USB, etc. En lugar de acceder a los datos a nivel de caracteres, estos archivos se acceden a nivel de bloques de datos. Los archivos especiales de bloques permiten el acceso directo a las unidades de almacenamiento y proporcionan una interfaz de bajo nivel para realizar operaciones como lectura, escritura y gestión del sistema de archivos.
Cada tipo de archivo tiene un propósito específico y se utiliza de manera diferente en el sistema operativo. Los archivos regulares son los archivos de uso común para almacenar información, los directorios ayudan a organizar la estructura del sistema de archivos, los archivos especiales de caracteres modelan dispositivos de E/S y los archivos especiales de bloques modelan dispositivos de almacenamiento masivo. Estos tipos de archivos trabajan juntos para facilitar el almacenamiento y la manipulación de datos en el sistema operativo.
TIPO DE ACCESOS:
· Acceso secuencial: En el acceso secuencial, los datos se leen o escriben en orden secuencial, desde el principio hasta el final del archivo. Esto significa que se debe recorrer todo el archivo en orden para acceder a una ubicación específica. Las cintas magnéticas son un ejemplo común de dispositivos de almacenamiento que utilizan acceso secuencial. Este tipo de acceso es adecuado cuando se necesita leer o escribir grandes cantidades de datos en orden secuencial, pero puede ser ineficiente para acceder a datos específicos dentro del archivo.
· Acceso aleatorio: En el acceso aleatorio, los datos se pueden leer o escribir en cualquier ubicación dentro del archivo, sin necesidad de recorrerlo en orden. Se pueden utilizar operaciones de lectura y búsqueda (seek) para moverse directamente a una posición específica dentro del archivo. Los sistemas de bases de datos son un ejemplo común de aplicaciones que requieren acceso aleatorio. Este tipo de acceso es útil cuando se necesita acceder a datos específicos de manera rápida y eficiente, independientemente de su ubicación dentro del archivo.
ATRIBUTOS O METADATOS: 
Los atributos o metadatos son información adicional asociada a un archivo que describe sus características y propiedades. Estos atributos pueden incluir el nombre del archivo, la ubicación en el sistema de archivos, el tamaño del archivo, los permisos de acceso, la fecha de creación y modificación, el tipo de archivo, entre otros. Los atributos o metadatos proporcionan información importante sobre el archivo y se utilizan para su gestión, organización y seguridad en el sistema operativo.
OPERACIONES CON ARCHIVOS
· Create (Crear): Esta operación permite crear un nuevo archivo en el sistema de archivos. Al crear un archivo, se le asigna un nombre y una ubicación en el sistema de archivos.
· Delete (Eliminar): Esta operación permite eliminar un archivo existente del sistema de archivos. Una vez eliminado, el archivo ya no estará disponible y no se podrá acceder a su contenido.
· Open (Abrir): Esta operación permite abrir un archivo existente para su uso. Al abrir un archivo, se establece una conexión entre el archivo y el proceso que lo utiliza, lo que permite acceder y manipular su contenido. 
· Close (Cerrar): Esta operación permite cerrar un archivo abierto. Al cerrar un archivo, se finaliza la conexión entre el archivo y el proceso que lo estaba utilizando. Es importante cerrar los archivos correctamente después de su uso para liberar los recursos asociados. 
· Read (Leer): Esta operación permite leer el contenido de un archivo abierto. Permite recuperar los datos almacenados en el archivo y utilizarlos en el proceso que realiza la lectura.
· Write (Escribir): Esta operación permite escribir datos en un archivo abierto. Permite agregar información al archivo o modificar su contenido existente. 
· Append (Agregar): Esta operación permite agregar datos al final de un archivo existente sin sobrescribir el contenido anterior. Es útil cuando se desea añadir información adicional al final del archivo sin afectar los datos existentes.
· Seek (Buscar): Esta operación permite mover el puntero de lectura/escritura a una posición específica dentro de un archivo abierto. Permite acceder adatos en ubicaciones específicas dentro del archivo.
· Get Attributes (Obtener atributos): Esta operación permite obtener los atributos o metadatos asociados a un archivo, como su nombre, ubicación, tamaño, permisos de acceso, fecha de creación, etc.
· Set Attributes (Establecer atributos): Esta operación permite modificar los atributos de un archivo existente, como cambiar su nombre, ubicación, permisos de acceso, etc.
· Rename (Renombrar): Esta operación permite cambiar el nombre de un archivo existente en el sistema de archivos sin alterar su contenido.
Estas operaciones proporcionan las funcionalidades básicas para administrar y manipular archivos en un sistema operativo. Permiten crear, eliminar, abrir, cerrar, leer, escribir, buscar y gestionar los atributos de los archivos de manera flexible y eficiente. Las aplicaciones y los usuarios interactúan con los archivos utilizando estas operaciones para realizar diversas tareas y manipulaciones en el sistema de archivos.
SISTEMAS DE DIRECTORIOS:
· Sistema de directorios de un solo nivel: En este tipo de sistema de directorios, todos los archivos están ubicados en un mismo directorio principal. No hay subdirectorios ni niveles de jerarquía. Cada archivo tiene un nombre único y se encuentra en el mismo nivel dentro del directorio principal. Este enfoque puede ser simple y adecuado para sistemas con un número limitado de archivos, pero puede volverse confuso y desorganizado a medida que aumenta la cantidad de archivos.
· Sistema de directorios jerárquicos: En este tipo de sistema de directorios, los archivos se organizan en una estructura de árbol jerárquica. El directorio principal se conoce como directorio raíz, y a partir de ahí se pueden crear subdirectorios. Estos subdirectorios pueden contener más subdirectorios y archivos. La estructura jerárquica permite una organización lógica y estructurada de los archivos en diferentes niveles y categorías. Los usuarios pueden acceder a los archivos especificando la ruta completa desde el directorio raíz hasta el archivo deseado.
El sistema de directorios jerárquicos es el enfoque más comúnmente utilizado en los sistemas operativos modernos, como Windows, Linux y macOS. Proporciona una forma eficiente de organizar y administrar grandes cantidades de archivos, ya que permite una mejor organización, búsqueda y gestión de los mismos. La estructura jerárquica facilita la navegación y localización de los archivos, ya que se pueden seguir rutas específicas para acceder a archivos en ubicaciones particulares dentro del sistema de archivos.
OPERACIONES CON DIRECTORIOS
· Create (Crear): Esta operación permite crear un nuevo directorio en el sistema de archivos. Al crear un directorio, se le asigna un nombre y se establece su ubicación en el sistema de directorios jerárquico.
· Delete (Eliminar): Esta operación permite eliminar un directorio existente del sistema de archivos. Al eliminar un directorio, se eliminan también todos los archivos y subdirectorios que contiene. Es importante tener en cuenta que un directorio debe estar vacío (sin archivos ni subdirectorios) para poder ser eliminado.
· Opendir (Abrir directorio): Esta operación permite abrir un directorio existente para su uso. Al abrir un directorio, se establece una conexión entre el proceso y el directorio, lo que permite acceder a su contenido, como los archivos y subdirectorios que contiene.
· Closedir (Cerrar directorio): Esta operación permite cerrar un directorio abierto. Al cerrar un directorio, se finaliza la conexión entre el proceso y el directorio. Es importante cerrar los directorios correctamente después de su uso para liberar los recursos asociados.
· Readdir (Leer directorio): Esta operación permite leer el contenido de un directorio abierto. Permite obtener una lista de los archivos y subdirectorios que se encuentran dentro del directorio. Cada vez que se llama a esta operación, se obtiene el siguiente elemento del directorio, hasta que se hayan leído todos los elementos.
· Rename (Renombrar): Esta operación permite cambiar el nombre de un archivo o directorio existente en el sistema de archivos sin alterar su contenido. Permite cambiar el nombre de un directorio o moverlo a una ubicación diferente dentro de la estructura jerárquica.
· Link (Enlazar): Esta operación permite crear un enlace (link) entre un archivo existente y un directorio. Esto permite que un archivo pueda ser accesible desde múltiples ubicaciones dentro del sistema de archivos.
· Unlink (Desenlazar): Esta operación permite eliminar un enlace (link) entre un archivo y un directorio. Si un archivo tiene varios enlaces, solo se elimina el enlace especificado, pero el archivo en sí sigue existiendo mientras tenga al menos un enlace.
Estas operaciones son esenciales para organizar y gestionar la estructura del sistema de archivos y permiten a los usuarios y aplicaciones trabajar de manera eficiente con los directorios y su contenido.
Repaso: Archivos
1- ¿Qué es un archivo y cuál es su función en un sistema operativo?
2- ¿Cuáles son los diferentes tipos de archivos que existen y cómo se identifican?
3- ¿Qué son los atributos de un archivo y para qué se utilizan?
4- ¿Cómo se pueden comprimir y descomprimir archivos y cuál es su utilidad?
5- ¿Qué es la extensión de un archivo y cómo se relaciona con su tipo?
6- ¿Cómo se pueden proteger los archivos con contraseñas o permisos de acceso?
7- ¿Qué es la fragmentación de archivos y cómo afecta al rendimiento del sistema?
8- ¿Cómo se pueden recuperar archivos eliminados accidentalmente?
9- ¿Qué es la copia de seguridad de archivos y por qué es importante?
10- ¿Cómo se pueden compartir archivos entre diferentes usuarios o dispositivos?
11- ¿Qué es la indexación de archivos y cómo se utiliza en la búsqueda de archivos?
12- ¿Cómo se pueden convertir archivos de un formato a otro?
13- ¿Qué es la encriptación de archivos y cómo se utiliza en la protección de datos?
14- ¿Cómo se pueden editar archivos de texto y cuáles son las herramientas disponibles?
15- ¿Qué es la propiedad intelectual y cómo se relaciona con los derechos de autor de los archivos?
Unidad n`4: Adm de archivos
La implementación del sistema de archivos es el proceso mediante el cual se almacenan y organizan los archivos y directorios en un sistema informático. El sistema de archivos es responsable de administrar el espacio en el disco, asignando y liberando bloques de almacenamiento según sea necesario.
El sistema de archivos también proporciona un entorno de eficiencia y confiabilidad para acceder a los archivos. Esto incluye la capacidad de buscar, crear, modificar y eliminar archivos de manera eficiente, así como garantizar la integridad de los datos almacenados.
Existen diferentes tipos de implementaciones de sistemas de archivos, cada uno con sus propias características y ventajas. Algunos ejemplos comunes son el sistema de archivos FAT32, NTFS en Windows, HFS+ en macOS y ext4 en Linux. Cada uno de estos sistemas de archivos tiene su propio conjunto de reglas y estructuras de datos para organizar y administrar los archivos.
La distribución del sistema de archivos se refiere a cómo se organizan los archivos y directorios en el sistema de almacenamiento. Generalmente se utiliza una estructura jerárquica en forma de árbol, donde hay un directorio raíz y se pueden crear subdirectorios y almacenar archivos dentro de ellos. También puede haber diferentes niveles de acceso y permisos para controlar quién puede acceder y modificar los archivos.
La implementación del sistema de archivos implica mantener un registro de qué bloques de disco están asociados con cada archivo. Hay varios métodos comunes utilizados para realizar esta asignación:
Asignación contigua: En este método, cada archivo se asigna a un bloque contiguo de espacio en el disco. Esto permite un acceso rápido a los datos, pero puede causar fragmentación interna y dificultar la gestión del espacio libre.
	VENTAJAS
	DESVENTAJAS
	· Es fácil de implementar ya que solo se necesita conocer la direcciónde disco del primer bloque y el número de bloques que ocupa el archivo.
	· La fragmentación puede ser un problema. A medida que se crean, modifican y eliminan archivos, pueden quedar huecos de espacio no utilizado en el disco. Estos huecos fragmentan el espacio disponible y pueden dificultar la asignación de bloques contiguos para nuevos archivos.
	· El rendimiento de lectura es excelente porque se puede leer el archivo completo del disco en una sola operación.
	· No se conocen a priori los tamaños de los archivos para los huecos. Si un archivo necesita crecer más allá de su espacio inicialmente asignado, se debe encontrar un bloque contiguo lo suficientemente grande para acomodar su expansión. Esto puede ser complicado si el espacio está fragmentado.
	
	· En el caso de medios de almacenamiento como CD o DVD, donde la escritura es secuencial y no se pueden modificar los datos una vez grabados, la asignación contigua puede no ser práctica.
Lista ligada: En este enfoque, se utiliza una lista ligada para mantener un seguimiento de los bloques de disco utilizados por un archivo. Cada bloque de disco contiene un puntero al siguiente bloque en la secuencia del archivo. Esto evita la fragmentación interna, pero puede generar una sobrecarga de lectura y escritura debido a la necesidad de seguir los punteros en la lista.
	VENTAJAS
	DESVENTAJAS
	· Evita la fragmentación interna, ya que los bloques de disco utilizados por un archivo no necesitan ser contiguos. Cada bloque tiene un puntero que indica dónde se encuentra el siguiente bloque, lo que permite una mejor utilización del espacio en el disco.
	· Puede ser más lenta en términos de acceso a los datos. Para acceder a un archivo, es necesario seguir los punteros en cada bloque, lo que implica una mayor cantidad de operaciones de lectura y escritura en el disco. Esto puede resultar en una menor eficiencia y tiempos de acceso más lentos en comparación con otros métodos de asignación
	· Permite la expansión de archivos de manera flexible. Si un archivo necesita crecer más allá de su tamaño inicialmente asignado, se pueden agregar nuevos bloques a la lista enlazada sin necesidad de encontrar un espacio contiguo disponible.
	
Asignación de lista enlazada utilizando una tabla en memoria: En lugar de utilizar punteros en cada bloque de disco, se mantiene una tabla en memoria que contiene los punteros a los bloques de disco utilizados por un archivo. Esto ayuda a mejorar la eficiencia al reducir las operaciones de lectura y escritura en el disco, pero requiere más memoria para almacenar la tabla.
	VENTAJAS
	DESVENTAJAS
	· Evita la fragmentación interna, ya que los bloques de disco utilizados por un archivo no necesitan ser contiguos. Cada entrada en la tabla en memoria contiene un puntero que indica dónde se encuentra el siguiente bloque en la secuencia del archivo.
	· No escala bien en discos grandes. A medida que el tamaño del disco aumenta, también lo hace la tabla en memoria, lo que puede requerir grandes cantidades de memoria para almacenar la tabla completa. Esto puede limitar la escalabilidad del sistema de archivos en discos de gran capacidad.
	· Permite una rápida localización y acceso a los bloques de disco utilizados por un archivo, ya que la tabla en memoria actúa como un índice que mapea las ubicaciones de los bloques.
	· La necesidad de mantener la tabla en memoria puede resultar en un mayor consumo de recursos, especialmente cuando hay una gran cantidad de archivos en el sistema.
Nodos-i: Este método se utiliza en sistemas de archivos como el sistema de archivos Unix. Cada archivo tiene un nodo-i (inode) asociado, que contiene información sobre el archivo, como permisos, tamaño, ubicación de los bloques de disco, entre otros. Los nodos-i se almacenan en una tabla en memoria y se utilizan para acceder y gestionar los archivos de manera eficiente.
Características de los nodos-i:
Los nodos-i se utilizan para mantener un registro de los atributos del archivo, como permisos, tamaño, fecha de creación, propietario, entre otros.
También almacenan las direcciones de disco de los bloques que componen el archivo. Esto permite localizar y acceder a los bloques de manera eficiente cuando se accede al archivo.
Los nodos-i generalmente solo se encuentran en memoria cuando el archivo está abierto. Cuando se cierra el archivo, los nodos-i se liberan de la memoria.
Un problema potencial con los nodos-i es que si cada uno tiene un espacio fijo para un número determinado de direcciones de disco, puede limitar el tamaño máximo de un archivo. Si un archivo necesita más bloques de disco de los que puede almacenar un nodo-i, se requiere un esquema de extensión o indirección para acceder a bloques adicionales
La implementación de directorios en un sistema de archivos implica el uso de una estructura de datos que almacena información sobre los archivos y subdirectorios. Cuando un usuario proporciona una ruta de archivo, el sistema operativo busca la entrada correspondiente en el directorio para localizar los bloques de disco asociados. Esta entrada proporciona los detalles necesarios para encontrar los bloques de disco del archivo.
Un archivo compartido es aquel que puede ser accedido y utilizado por múltiples usuarios o sistemas simultáneamente, facilitando la colaboración y el intercambio de información.
Un sistema de archivos por bitácoras, como NTFS, ext3 o jfs, utiliza una técnica específica para remover un archivo del sistema. Los pasos para remover un archivo en un sistema de archivos por bitácoras son los siguientes:
1- Quitar el archivo de su directorio: El sistema de archivos elimina la entrada correspondiente al archivo en el directorio principal. Esto implica eliminar la referencia al archivo en la estructura de directorios.
2- Liberar el nodo-i y pasarlo a la reserva de nodos-i libres: El nodo-i (inodo) es la estructura de datos que contiene información sobre el archivo, como atributos, permisos y ubicación de los bloques de disco asociados. Al remover un archivo, el sistema de archivos marca el nodo-i correspondiente como libre y lo devuelve a un conjunto de nodos-i libres disponibles para ser reutilizados por otros archivos.
3- Devolver todos los bloques de disco a la reserva de bloques de disco libres: Los bloques de disco utilizados por el archivo eliminado son liberados y marcados como disponibles nuevamente. Estos bloques pueden ser utilizados por otros archivos en el futuro.
La administración y optimización de sistemas de archivos implica la gestión eficiente del espacio en disco, la optimización de la estructura del sistema de archivos, la implementación de políticas de almacenamiento, la copia de seguridad y recuperación de datos, así como el monitoreo y ajuste del rendimiento del sistema. Estas prácticas contribuyen a garantizar un sistema de archivos eficiente, confiable y optimizado.
La administración del espacio en disco en un sistema de archivos implica la gestión eficiente y óptima de los recursos de almacenamiento para almacenar y organizar los archivos. Dos alternativas comunes para la asignación del espacio en disco son:
Asignación consecutiva: En este enfoque, los bytes del archivo se asignan en espacios en disco consecutivos. Es decir, el archivo se guarda en un bloque contiguo de espacio en disco. Esto puede facilitar la lectura y escritura secuencial del archivo, lo que resulta en un rendimiento de lectura rápido. Sin embargo, puede haber fragmentación externa, donde los espacios vacíos entre archivos fragmentan el espacio en disco y pueden limitar la capacidad de almacenamiento de archivos grandes o de múltiples archivos.
Asignación no contigua: En este enfoque, el archivo se divide en varios bloques que no necesariamente son contiguos en el espacio en disco. Cada bloque puede estar ubicado en diferentes partes del disco. Esto permite una mayor flexibilidad para almacenar archivos de diferentes tamaños y evitar la fragmentación externa. Sin embargo, puede resultar en una mayor fragmentacióninterna, ya que pueden quedar espacios vacíos entre los bloques de un archivo.
El tamaño de bloque se refiere al tamaño de los bloques de datos utilizados por un sistema de archivos para almacenar la información en el disco. Aquí hay una explicación breve de cada concepto relacionado:
Tamaño de bloque fijo: Se refiere a que todos los bloques de datos en el sistema de archivos tienen el mismo tamaño. Esto proporciona consistencia y facilita la administración del espacio en disco.
Tamaño de página: El tamaño de página se refiere al tamaño de la unidad básica de transferencia de datos entre el sistema operativo y la memoria principal (RAM). Puede ser diferente al tamaño de bloque del sistema de archivos.
Desperdicio de espacio: Si el tamaño de bloque es muy grande en relación con el tamaño de los archivos almacenados, puede haber desperdicio de espacio en disco. Esto se debe a que aunque un archivo ocupe menos espacio que el tamaño de bloque, se le asignará un bloque completo, dejando el espacio no utilizado dentro del bloque.
Desperdicio de tiempo: Si el tamaño de bloque es muy pequeño, se pueden desperdiciar recursos y tiempo debido a la necesidad de acceder y gestionar una mayor cantidad de bloques para almacenar un archivo determinado. Esto puede ralentizar las operaciones de lectura y escritura en el sistema de archivos.
Un tamaño de bloque de 4 KB es comúnmente usado en sistemas de archivos modernos debido a que ofrece un buen equilibrio entre el uso de espacio y el rendimiento. No se desperdicia demasiado espacio en disco y permite una transferencia eficiente de datos entre el disco y la memoria. Sin embargo, el tamaño de bloque óptimo puede variar según el caso de uso y las características del sistema.
1- Registros de bloques libres:
· Mapa de bits: Se utiliza un mapa de bits para mantener un registro de los bloques de disco que están libres o en uso. Cada bit en el mapa representa el estado de un bloque, indicando si está libre o ocupado.
· Lista enlazada de bloques libres: En este enfoque, se mantiene una lista enlazada de los bloques de disco que están libres. Cada bloque libre contiene una referencia al siguiente bloque libre en la lista.
2- Quota de Disco: La cuota de disco es una función que permite establecer límites en el uso de espacio en disco por parte de usuarios o grupos. Esto ayuda a controlar y administrar la asignación de espacio en disco, evitando que se agote o se exceda el espacio disponible.
3- Respaldo:
· Incremental: Realiza copias de seguridad solo de los archivos que han cambiado desde el último respaldo. Esto reduce el tiempo y el espacio requerido para las copias de seguridad, ya que solo se copian los cambios recientes.
· Full: Realiza copias de seguridad de todos los archivos seleccionados, independientemente de si han cambiado o no desde la última copia de seguridad. Esto garantiza una copia completa y actualizada de todos los archivos, pero puede requerir más tiempo y espacio de almacenamiento.
· Diferencial: Realiza copias de seguridad de los archivos que han cambiado desde el último respaldo completo. A diferencia del incremental, no se consideran los cambios realizados entre respaldos diferenciales. Esto proporciona una copia completa de los archivos modificados desde el último respaldo completo.
4- Consistencia del Sistema de archivos:
· fsck (File System Consistency Check): Es una utilidad que verifica y repara la consistencia del sistema de archivos. Realiza un análisis exhaustivo de la estructura y los metadatos del sistema de archivos en busca de errores y los corrige si es posible.
· scandisk: Es una herramienta similar a fsck utilizada en sistemas Windows para verificar y reparar errores en el sistema de archivos. Escanea y repara errores en los archivos y directorios, así como en la tabla de asignación de archivos.
Repaso: Adm de archivos:
1- ¿Qué es la implementación del sistema de archivos y cuál es su función?
2- ¿Cuáles son los diferentes tipos de sistemas de archivos y cuáles son sus características?
3- ¿Cómo se pueden buscar, crear, modificar y eliminar archivos de manera eficiente?
4- ¿Qué es la estructura de directorios y cómo se organiza en un sistema de archivos?
5- ¿Cómo se pueden renombrar y mover archivos y directorios?
6- ¿Qué es la compresión de archivos y cómo se utiliza en la administración de archivos?
7- ¿Cómo se pueden recuperar archivos dañados o perdidos en un sistema de archivos?
8- ¿Qué es la fragmentación de archivos y cómo se puede evitar?
9- ¿Cómo se pueden compartir archivos en una red y cuáles son los riesgos asociados?
10- ¿Qué es la sincronización de archivos y cómo se utiliza en la administración de archivos?
11- ¿Cómo se pueden crear y administrar permisos de acceso a archivos y directorios?
12- ¿Qué es la auditoría de archivos y cómo se utiliza en la administración de archivos?
13- ¿Cómo se pueden realizar copias de seguridad y restauración de archivos y directorios?
14- ¿Qué es la de duplicación de archivos y cómo se utiliza en la administración de archivos?
15- ¿Cómo se pueden automatizar tareas de administración de archivos mediante scripts o programas?
Unidad n` 5: MEMORIA
La administración de memoria es una función que se encarga de organizar y asignar la memoria del sistema a los programas y aplicaciones que se están ejecutando.:
Los programas crecen más que la memoria: Los programas y aplicaciones que utilizamos en nuestros dispositivos electrónicos tienden a volverse cada vez más grandes y complejos con el tiempo. Esto significa que requieren más espacio de memoria para funcionar correctamente. Sin embargo, la capacidad de memoria de nuestros dispositivos no siempre puede seguir el ritmo del crecimiento de los programas.
El sistema operativo crea una abstracción de la memoria: el sistema operativo crea una abstracción de la memoria es decir, que divide la memoria en diferentes bloques y asigna a cada programa una porción de memoria para que pueda ejecutarse. De esta manera, los programas tienen que interactúan con la abstracción creada por el sistema operativo.
Usuarios y programas: Los usuarios y los programas desean tener acceso a una memoria que sea rápida (para una ejecución eficiente), barata (para mantener los costos bajos), grande (para almacenar una gran cantidad de datos) y no volátil (para que los datos se conserven incluso cuando se apaga el dispositivo). Existen diferentes tipos de memoria con diferentes propiedades y características para satisfacer estas necesidades de manera equilibrada.
La jerarquía de la memoria 
Es la organización de diferentes niveles de memoria en un sistema informático, en orden de velocidad y capacidad
· Registros: Los registros son pequeñas unidades de memoria ubicadas en el procesador. Son los más rápidos y también los más pequeños en capacidad. Se utilizan para almacenar datos y realizar operaciones muy rápidas. Los registros se utilizan para almacenar temporalmente los datos necesarios para las operaciones del procesador, lo que ayuda a acelerar el rendimiento del sistema.
· Caché: La caché es una memoria más grande que los registros, pero aún más rápida que la memoria RAM. La caché almacena datos y/o instrucciones que se utilizan con frecuencia por el procesador. Al tener los datos en la caché, el procesador puede acceder a ellos más rápidamente, evitando la necesidad de buscarlos en la memoria principal (RAM) o en otros niveles más lentos.
· RAM (Memoria de Acceso Aleatorio): La RAM es la memoria principal del sistema. Es más lenta que la caché, pero tiene una mayor capacidad de almacenamiento. La RAM es utilizada por el sistema operativo y los programas en ejecución para almacenar datos e instrucciones. La información en la RAM se puede leer y escribir rápidamente, lo que permite un acceso más eficiente que los niveles inferiores de la jerarquía.
· Discos: Los discos, como los discos duros, son dispositivos de almacenamiento de datos de gran capacidad pero más lentos que la RAM. Son utilizados para almacenar programas, archivos y datos de manera persistente,incluso cuando el sistema se apaga. Los discos son el nivel más bajo en la jerarquía de la memoria en términos de velocidad, pero ofrecen una gran capacidad de almacenamiento.
· Discos extraíbles: Esta categoría incluye dispositivos de almacenamiento portátiles, como unidades USB, tarjetas de memoria, discos ópticos, entre otros. Tienen capacidades variables y velocidades de acceso más lentas en comparación con los discos duros. Estos dispositivos son utilizados para transportar y transferir datos entre diferentes sistemas.
La administración de memoria es una función del sistema operativo que se encarga de gestionar el uso de la memoria en un sistema informático. 
Administración de memoria con abstracción: 
el sistema operativo crea una capa de abstracción entre los programas y la memoria física. Esto significa que los programas no interactúan directamente con la memoria física, sino con una representación lógica de la memoria proporcionada por el sistema operativo. El sistema operativo administra la jerarquía de memoria, asigna memoria a los programas cuando lo necesitan y libera esa memoria cuando ya no es necesaria.
· Asignación de programas: Cuando un programa se ejecuta, el sistema operativo asigna una porción de memoria para que el programa almacene sus datos y sus instrucciones. El sistema operativo decide en qué nivel de la jerarquía de memoria se almacenará el programa, según la disponibilidad y las políticas de administración de memoria.
· Desasignación de programas: Cuando un programa ya no se necesita o finaliza su ejecución, el sistema operativo libera la memoria que se asignó previamente al programa. Esta memoria se vuelve disponible nuevamente para ser utilizada por otros programas.
Administración de memoria sin abstracción:
· Los programas interactúan directamente con la memoria física. Esto significa que los programas son responsables de administrar su propia memoria y no hay una capa de abstracción proporcionada por el sistema operativo.
· No hay multiprogramación: En la administración de memoria sin abstracción, no hay soporte para la multiprogramación, lo que significa que solo se puede ejecutar un programa a la vez y utilizar la memoria física disponible.
Memoria sin abstracción 
Múltiples programas sin abstracción de memoria: cuando varios programas se ejecutan sin abstracción de memoria, tienen acceso directo a la memoria física del sistema. Esto puede generar conflictos y problemas de interferencia entre los programas, y requiere una gestión manual de la memoria por parte de los programas. La introducción de la abstracción de memoria proporciona una solución más eficiente y segura para la ejecución simultánea de múltiples programas.
Alternativa: reubicación estática
La reubicación estática es una técnica en la que se suma una dirección base a todas las direcciones de memoria de un programa. Esto permite que el programa se ejecute en diferentes ubicaciones de memoria sin necesidad de modificar su código fuente.
El espacio de direcciones es el rango de direcciones de memoria que un programa puede utilizar. Cada programa tiene su propio espacio de direcciones, lo que significa que la dirección 28 de un programa puede ser diferente a la dirección 28 de otro programa. Esto permite que varios programas se ejecuten simultáneamente sin conflictos de direcciones de memoria.
Además, la abstracción de memoria utiliza el concepto de registro base y límite. El registro base contiene la dirección de inicio del espacio de direcciones de un programa, mientras que el registro límite indica la última dirección válida en ese espacio de direcciones. Estos registros ayudan a proteger la memoria de un programa de acceder a direcciones fuera de su espacio asignado.
Intercambio/ memoria virtual:
El intercambio es mover bloques completos de memoria entre la RAM y el almacenamiento secundario cuando la memoria se agota. La memoria virtual permite ejecutar programas o utilizar datos parcialmente en la RAM y parcialmente en el almacenamiento en disco para aprovechar al máximo los recursos disponibles.
LA ADMINISTRACIÓN DE MEMORIA LIBRE es el proceso de gestionar qué partes de la memoria están disponibles para asignar a programas. Dos técnicas comunes utilizadas son:
· Mapa de bits: Es una representación que muestra si cada bloque de memoria está ocupado o libre. Los "1" indican que está ocupado y los "0" que está libre. Facilita encontrar rápidamente bloques libres para asignar a programas.
· Listas enlazadas: Se crea una lista que contiene información sobre los bloques de memoria disponibles. Cada bloque tiene detalles como su dirección de inicio y tamaño. Cuando se necesita asignar memoria, se busca en la lista para encontrar un bloque adecuado.
Estas técnicas ayudan al sistema operativo a realizar un seguimiento y gestionar la memoria disponible para su asignación a programas.
LOS ALGORITMOS DE LISTAS ENLAZADAS utilizados en la administración de memoria ofrecen diferentes enfoques para asignar bloques de memoria.
· Primer ajuste: Este algoritmo busca el primer bloque de memoria libre desde el inicio de la lista. Asigna el espacio solicitado al primer bloque que cumple con los requisitos de tamaño. Es rápido pero puede dejar fragmentación interna.
· Siguiente ajuste: El algoritmo de siguiente ajuste continúa la búsqueda de bloques libres a partir del punto donde se quedó la última asignación. Esto reduce la fragmentación externa en comparación con el primer ajuste, ya que intenta utilizar los espacios contiguos.
· Mejor ajuste: En este algoritmo, se busca el bloque de memoria libre que mejor se ajuste al tamaño solicitado. Es decir, selecciona el bloque más pequeño que puede acomodar el proceso. Aunque ayuda a minimizar la fragmentación, puede generar fragmentación externa a largo plazo.
· Peor ajuste: A diferencia del mejor ajuste, el algoritmo de peor ajuste busca el bloque de memoria libre más grande disponible. Asigna el proceso al bloque de mayor tamaño, lo que ayuda a reducir la fragmentación externa, pero puede generar fragmentación interna.
La alternativa mencionada es tener dos listas separadas: una para los espacios de memoria libres y otra para los procesos en espera. Esto permite una gestión más eficiente, ya que los espacios libres y los procesos se mantienen en listas separadas, lo que facilita su asignación y liberación sin necesidad de fragmentar la memoria.
LA MEMORIA VIRTUAL es utilizada en los sistemas operativos para manejar el tamaño limitado de la memoria física y permitir que los programas utilicen más memoria de la disponible. Es una extensión del espacio de memoria física del sistema utilizando el almacenamiento en disco. En lugar de cargar todo el programa o conjunto de datos en la memoria principal (RAM), se divide en trozos más pequeños llamados páginas. No todas las páginas necesitan estar en la memoria al mismo tiempo.
Cuando un programa necesita acceder a una página que no se encuentra en la memoria, ocurre una "falta de página". En ese momento, el sistema operativo selecciona una página que no se ha utilizado recientemente y la reemplaza en la memoria, liberando espacio para cargar la página solicitada desde el almacenamiento en disco.
El agrandamiento del software se refiere a que los programas pueden ser más grandes de lo que la memoria física puede contener. La memoria virtual permite que estos programas se ejecuten y utilicen más memoria de la disponible físicamente.
Sin embargo, las capacidades de la memoria virtual también están limitadas por el tamaño del espacio de direcciones virtuales y la capacidad del almacenamiento en disco. Si se supera el límite, es posible que el sistema operativo no pueda cargar todas las páginas necesarias para el programa.
Una alternativa utilizada en la administración de memoria virtual son los overlays (sobrepuestos). Los overlays permiten cargar en la memoria solo las partes activas del programa en un momento dado, reemplazando las partes no utilizadas cuando sea necesario.
. 
La MEMORIA VIRTUAL permite que todaslas referencias a la memoria se traduzcan dinámicamente a direcciones físicas durante la ejecución. Esto significa que un programa puede hacer referencia a una ubicación de memoria virtual, y el sistema operativo se encarga de traducirlo a una dirección física real en la memoria principal.
Tambien permite cargar y descargar procesos de la memoria principal, lo que significa que un proceso puede ocupar regiones diferentes de memoria en diferentes momentos. Facilita la gestión de la memoria y permite que se ejecuten más programas de lo que la memoria física puede contener simultáneamente.
Un proceso también puede dividirse en varias partes, como páginas o segmentos, y no es necesario que estas partes estén contiguas en la memoria principal durante la ejecución. Esto ayuda a evitar la fragmentación de la memoria y permite una mejor utilización del espacio disponible.
Además, la memoria virtual no requiere que todas las páginas o segmentos de un proceso estén en la memoria durante la ejecución. Solo las partes activas o necesarias se cargan en la memoria principal, mientras que las partes inactivas pueden almacenarse en el almacenamiento secundario, como un disco duro. Esto optimiza el uso de la memoria y permite ejecutar programas más grandes de lo que la memoria física puede contener por completo.
En la memoria virtual, todas las referencias a la memoria por parte de un programa se traducen dinámicamente a direcciones físicas durante la ejecución. Esto significa que el programa no necesita conocer la ubicación física real de los datos en la memoria, ya que el sistema operativo se encarga de realizar la traducción necesaria.
Además, un proceso puede cargarse y descargarse de la memoria principal de forma dinámica, ocupando regiones diferentes en diferentes momentos. Esto permite que varios procesos compartan la memoria de manera eficiente y se ejecuten en paralelo, incluso si no hay suficiente memoria física para alojar todos los procesos al mismo tiempo.
Cuando un programa se ejecuta en un sistema operativo con memoria virtual, solo unos pocos fragmentos del programa se transferen a la memoria principal. Estos pedazos forman el conjunto residente, que es la parte del proceso que realmente está presente en la memoria. Se produce una interrupción que indica un fallo de acceso a la memoria si el procesador encuentra una dirección lógica (referencia a la memoria) que no está en la memoria principal. Esto indica que la dirección solicitada debe cargarse desde el almacenamiento secundario, como el disco duro, ya que no está presente en la memoria. En respuesta an esta falla, el sistema operativo bloquea el proceso. Esto indica que el proceso se detiene temporalmente hasta que se complete la carga de la dirección deseada desde el almacenamiento secundario a la memoria principal. El proceso se desbloquea y puede ejecutarse normalmente una vez que se encuentra la dirección requerida en la memoria.
Cuando ocurre un fallo de acceso a la memoria, el sistema operativo solicita la lectura del fragmento necesario al disco y permite que otros procesos se ejecuten mientras se realiza la operación de E/S. Una vez que el fragmento está en la memoria principal y se completa la operación de E/S, se emite una interrupción y el proceso afectado vuelve al estado de "Listo" para continuar su ejecución.
En lugar de cargar todo un proceso en la memoria principal, solo se cargan algunos fragmentos del mismo. Estos fragmentos son las partes activas y necesarias del proceso en un momento dado. Con tantos procesos en la memoria principal, es muy probable que al menos uno de ellos esté en estado Listo y listo para ser ejecutado en cualquier momento. Esto aumenta la eficiencia y aprovechamiento de los recursos del sistema.
Es posible que un proceso sea más grande que toda la memoria principal disponible. En este caso, la memoria virtual permite dividir el proceso en fragmentos y cargar solo las partes necesarias en la memoria en diferentes momentos.
Sin embargo, la hiperpaginación puede afectar negativamente el rendimiento cuando los fragmentos se intercambian con frecuencia. Ocurre cuando el sistema operativo expulsa un fragmento de un proceso justo antes de que sea necesario utilizarlo. Puede resultar en un rendimiento deficiente, ya que el procesador pasa más tiempo intercambiando fragmentos entre la memoria y el almacenamiento secundario que ejecuta las instrucciones del usuario.
Paginación
la paginación es una técnica que divide la memoria en páginas y carga solo las páginas necesarias para la ejecución de un proceso. Esto mejora la eficiencia y la gestión de la memoria en los sistemas operativos.
•64KB virtuales •32KB físico 
•16 páginas virtuales 
•8 marcos de página 
•Tamaño del marco 4KB
Entrada en la tabla de paginas
ALGORITMOS DE REEMPLAZO DE PAGINAS
El algoritmo de reemplazo óptimo es un método para seleccionar qué página eliminar de la memoria principal cuando se necesita espacio. 
El objetivo del algoritmo es eliminar la página que no se utilizara en el futuro cercano. Sin embargo, este algoritmo no se puede implementar en la práctica porque no es posible conocer de antemano qué página no será utilizada en el futuro. El algoritmo de reemplazo, asume un conocimiento completo del comportamiento del programa y predice qué páginas serán utilizadas en el futuro. Si una página no se usa en mucho tiempo, será reemplazada.
Sin embargo, dado que no es posible predecir el comportamiento futuro de los programas con certeza, el algoritmo de reemplazo óptimo es impracticable en la mayoría de los casos. En su lugar, se utilizan otros algoritmos de reemplazo de páginas menos recientemente utilizada (LRU), que se basa en la idea de que las páginas que no se han utilizado recientemente, no se utilizaran en el futuro.
El algoritmo se clasifica las páginas en cuatro categorías o clases:
Clase 0: Páginas que no tienen referencias y no han sido modificadas desde su último acceso.
Clase 1: Páginas que no se han mencionado pero que han sido modificadas desde su acceso más Clase 2: Páginas que se han mencionado pero que no se han modificado desde su último acceso.reciente.
Clase 3: Páginas que se han mencionado y que han cambiado desde su último acceso.
Cuando se necesita reemplazar una página, el algoritmo NRU selecciona una página de la clase más baja posible. Por ejemplo, si hay páginas tanto en la clase 0 como en la clase 1, se elige una página de la clase 0 para ser reemplazada, ya que es la clase más baja.
El objetivo del algoritmo NRU es evitar reemplazar páginas que han sido recientemente utilizadas y/o modificadas. Sin embargo, este algoritmo puede no ser óptimo en todas las situaciones y puede requerir ajustes según las características del sistema y los patrones de acceso a las páginas.Algoritmo de reemplazo de páginas: Reloj
Se elimina la página más vieja que no ha sido referenciada. Variación de FIFO.
Algoritmo de reemplazo de páginas: Menos utilizadas recientemente
Este se basa en descartar la página que ha sido menos utilizada en un período de tiempo. Utiliza un contador de referencia para llevar un registro de la frecuencia con la que se ha accedido a cada página. La página con el menor contador de referencia se reemplaza.
· Cuestiones de diseño para los sistemas de paginación.
· Proporción de fallos de página como una función de marcos de página de asignación.
• Cuestiones de diseño para los sistemas de paginación 
• Política de asignación Local vs Global
Segmentación
La segmentación es una técnica de administración de memoria que divide un programa en segmentos de diferentes tamaños. 
En la segmentación, los programas no necesitan tener segmentos de la misma longitud. Cada segmento representa una parte lógica o funcional del programa, como el código, los datos o la pila.
Cada dirección lógica segmentada consta de dos partes: el número de segmento y el desplazamiento dentro del segmento. Esto permite una mayor flexibilidad en el direccionamiento de la memoria.
Sin embargo,existe una longitud máxima para cada segmento, lo que impone una limitación en el tamaño de los segmentos.
Paginación y segmentación
Repaso: Memoria
1- ¿Qué es la memoria y cuál es su función?
2- ¿Cuáles son los diferentes tipos de memoria que existen y cómo se utilizan?
3- ¿Cómo se gestiona la memoria en un sistema operativo y cuáles son los desafíos asociados con su administración?
4- ¿Qué es la memoria virtual y cómo se utiliza en la administración de memoria?
5- ¿Cómo se pueden medir y optimizar el rendimiento de la memoria en un sistema operativo?
6- ¿Qué es la memoria caché y cómo se utiliza en la administración de memoria?
7- ¿Cómo se pueden resolver los problemas de memoria insuficiente en un sistema?
8- ¿Qué es la memoria compartida y cómo se utiliza en la administración de memoria?
9- ¿Cómo se pueden asignar y liberar memoria en un sistema operativo?
10- ¿Qué es la fragmentación de memoria y cómo se puede evitar?
11- ¿Cómo se pueden administrar los procesos y aplicaciones en relación con la memoria disponible?
12- ¿Qué es la memoria no volátil y cómo se utiliza en la administración de memoria?
13- ¿Cómo se pueden realizar pruebas de memoria en un sistema?
14- ¿Qué es la memoria de solo lectura y cómo se utiliza en la administración de memoria?
15- ¿Cómo se pueden implementar técnicas de seguridad en la administración de memoria?

Continuar navegando