Sistemas Operativos
Sistemas Operativos
Sistemas Operativos
Facultad de Ingeniera
Bogotá Colombia
2023
Contenido
INTRODUCCION .................................................................................................................................4
HISTORIA .............................................................................................................................................7
Memoria virtual. .................................................................................................................................7
Conjunto residente..............................................................................................................................9
Estructuras de control .......................................................................................................................11
Gestión de memoria y acceso a datos ...............................................................................................13
Particiones fijas ................................................................................................................................15
Particiones dinámicas .......................................................................................................................17
Algoritmos de ubicación ..................................................................................................................19
Paginación y segmentación de memoria virtual ...............................................................................21
Memoria virtual y cercanía de referencia .........................................................................................23
Fallos de páginas ..............................................................................................................................26
Algoritmos para el reemplazo de páginas .........................................................................................28
CARACTERISTICAS .........................................................................................................................34
Memoria virtual. ...............................................................................................................................34
Estructuras de control .......................................................................................................................36
Gestión de memoria y acceso a datos ...............................................................................................39
Particiones fijas ................................................................................................................................42
Particiones dinámicas .......................................................................................................................44
Algoritmos de ubicación ..................................................................................................................47
Paginación y segmentación de memoria virtual ...............................................................................49
Memoria virtual y cercanía de referencia .........................................................................................52
Fallos de páginas ..............................................................................................................................56
Algoritmos para el reemplazo de páginas .........................................................................................58
VENTAJAS Y DESVENTAJAS ..........................................................................................................62
Memoria virtual. ...............................................................................................................................62
Estructuras de control .......................................................................................................................65
Gestión de memoria y acceso a datos ...............................................................................................67
Particiones fijas ................................................................................................................................70
Particiones dinámicas .......................................................................................................................72
Algoritmos de ubicación ..................................................................................................................75
Paginación y segmentación de memoria virtual ...............................................................................78
Memoria virtual y cercanía de referencia .........................................................................................81
Fallos de páginas ..............................................................................................................................84
Algoritmos para el reemplazo de páginas .........................................................................................87
FUNCIONAMIENTO ..........................................................................................................................91
Memoria virtual. ...............................................................................................................................91
Estructuras de control .......................................................................................................................93
Gestión de memoria y acceso a datos ...............................................................................................95
Particiones fijas ................................................................................................................................99
Particiones dinámicas .....................................................................................................................101
Algoritmos de ubicación ................................................................................................................103
Paginación y segmentación de memoria virtual .............................................................................106
Memoria virtual y cercanía de referencia .......................................................................................109
Fallos de páginas ............................................................................................................................111
Algoritmos para el reemplazo de páginas .......................................................................................113
EFICIENCIA .....................................................................................................................................116
Memoria virtual. .............................................................................................................................116
Estructuras de control .....................................................................................................................118
Gestión de memoria y acceso a datos .............................................................................................120
Particiones fijas ..............................................................................................................................123
Particiones dinámicas .....................................................................................................................125
Algoritmos de ubicación ................................................................................................................127
Paginación y segmentación de memoria virtual .............................................................................130
Memoria virtual y cercanía de referencia .......................................................................................133
Fallos de páginas ............................................................................................................................135
Algoritmos para el reemplazo de páginas .......................................................................................137
EVOLUCION ....................................................................................................................................140
Memoria virtual. .............................................................................................................................140
Estructuras de control .....................................................................................................................142
Gestión de memoria y acceso a datos .............................................................................................144
Particiones fijas ..............................................................................................................................147
Particiones dinámicas .....................................................................................................................150
Algoritmos de ubicación ................................................................................................................152
Paginación y segmentación de memoria virtual .............................................................................155
Memoria virtual y cercanía de referencia .......................................................................................158
Fallos de páginas ............................................................................................................................161
Algoritmos para el reemplazo de páginas .......................................................................................164
INTRODUCCION
medida que se ejecutan diferentes procesos, y su gestión eficiente es crucial para optimizar el
Estructuras de Control: Las estructuras de control son elementos que el sistema operativo
utiliza para supervisar y coordinar el acceso a la memoria virtual. Estas estructuras incluyen
predefinidas. Cada partición puede asignarse a un proceso específico, lo que facilita la gestión
Particiones Dinámicas: Las particiones dinámicas permiten una asignación más flexible de
técnicas que dividen la memoria virtual en bloques más manejables. La paginación divide en
páginas de tamaño fijo, mientras que la segmentación divide en segmentos lógicos. Ambas
que las direcciones de memoria utilizadas recientemente tienen más probabilidades de usarse
acceso.
memoria, se produce un fallo de página. La gestión eficiente de estos fallos es crucial para
espacio, se deben elegir las páginas a reemplazar. Algoritmos como Optimo, FIFO, LRU,
Second Chance, LFU y MFU ofrecen enfoques diferentes para esta tarea, cada uno con sus
rendimiento óptimo.
de memoria.
HISTORIA
Memoria virtual.
ejecución concurrente de varios programas. Esto llevó a la necesidad de una gestión más
eficiente de la memoria.
programas en ejecución.
5. Memoria Virtual como Solución: Para abordar los problemas de fragmentación y mejorar
está instalada.
programas que actualmente reside en la memoria principal. La gestión eficiente del conjunto
acceso a la memoria. Algoritmos como LRU (Least Recently Used), FIFO (First-In-First-Out)
una parte esencial de los sistemas operativos modernos. Sin embargo, con el aumento de la
evolucionado para satisfacer las crecientes demandas de los entornos informáticos modernos.
Conjunto residente
desarrollo histórico de los sistemas operativos y la gestión de memoria. A lo largo del tiempo,
sistemas muy simples con poca o ninguna noción de memoria virtual. Los programas se
necesidad de una gestión más sofisticada de la memoria para compartir eficientemente los
primeras ideas sobre la memoria virtual como un medio para proporcionar una ilusión de una
cantidad de memoria mayor de la que realmente estaba presente en la máquina. Estas primeras
otra técnica para organizar la memoria virtual. El conjunto residente también se aplicó a
surgieron algoritmos de reemplazo de páginas para decidir qué páginas mantener en memoria
sugiere que las direcciones de memoria utilizadas recientemente tienen más probabilidades de
acceso a datos.
memoria virtual y la evolución de los sistemas operativos. A lo largo de las décadas, los
avances tecnológicos y la creciente complejidad de las aplicaciones informáticas han llevado
Estructuras de control
refiere a los mecanismos utilizados para gestionar y organizar la ejecución de programas, así
estructuras de control más sofisticadas para gestionar flujos de programa más complejos.
decisiones condicionales y estructuras de bucle como "for" y "while" para repetir bloques de
código.
5. Desarrollo de Estructuras de Datos: Las estructuras de datos, como colas, pilas y listas
estructuras de control esenciales que determinan el orden en que se ejecutan los procesos. A lo
rendimiento del sistema, como FCFS (First-Come-First-Serve), SJF (Shortest Job First), y
memoria.
8. Sistemas Distribuidos y Redes: Con el auge de los sistemas distribuidos y las redes, las
orientada a eventos, las estructuras de control han evolucionado para manejar eventos
gestionar la complejidad creciente de los programas y los sistemas operativos. Desde simples
herramientas han evolucionado para facilitar la gestión eficiente de los recursos y la ejecución
y el acceso a datos eran conceptos simples y directos, ya que la memoria estaba limitada y los
ejecución. Este modelo presentaba eficiencias limitadas, ya que solo un programa podía
ejecutarse a la vez.
programas.
(páginas), mientras que la segmentación divide la memoria en bloques lógicos más grandes.
como FIFO, LRU y OPT (óptimo) se desarrollaron para gestionar esta tarea.
cerca del procesador. La memoria virtual, que utiliza una combinación de memoria principal y
memoria virtual son parte integral de los sistemas operativos contemporáneos. La gestión de
memoria se adapta dinámicamente para satisfacer las demandas cambiantes de los programas
en ejecución.
9. Virtualización y Contenedores: La virtualización y los contenedores introdujeron nuevas
virtualizados.
10. Big Data y Computación en la Nube: En la era del big data y la computación en la nube,
En resumen, la gestión de memoria y acceso a datos ha evolucionado desde los primeros días
Particiones fijas
evolución de los sistemas operativos. Aquí hay una visión general de la historia de las
particiones fijas:
1. Primeros Sistemas Operativos: En los primeros días de los sistemas operativos, la gestión
ocupaban toda la memoria disponible. No había una separación clara entre el sistema
3. Particiones Fijas: Las particiones fijas implican dividir la memoria en regiones de tamaño
eficientes para ciertos casos de uso específicos, especialmente en entornos donde los tamaños
7. Transición a Técnicas más Avanzadas: A medida que los programas y sistemas operativos
se volvieron más complejos, surgieron técnicas más avanzadas de gestión de memoria, como
eficiente de la memoria.
9. Legado en Sistemas Embebidos y Específicos: Aunque las particiones fijas dejaron de ser
10. Influencia en la Investigación y la Enseñanza: Aunque las particiones fijas han sido en
gran medida reemplazadas por técnicas más avanzadas, siguen siendo relevantes en contextos
En resumen, las particiones fijas fueron una etapa importante en la evolución de la gestión de
memoria en sistemas operativos. Aunque han sido en gran medida reemplazadas por técnicas
Particiones dinámicas
gestionaba de manera estática, con programas que ocupaban toda la memoria disponible. No
había una separación clara entre el sistema operativo y las aplicaciones de usuario.
programas.
4. First Fit y Best Fit: Con la introducción de particiones dinámicas, surgieron algoritmos de
asignación como "First Fit" (primer ajuste) y "Best Fit" (mejor ajuste), que determinaban
dinámicas un paso más allá al permitir que un programa se dividiera en segmentos de tamaño
abordaban muchos problemas asociados con las particiones fijas, aún se enfrentaban a
espacio asignado era mayor que el necesario, y la externa ocurría cuando no se podía asignar
memoria contigua.
se volvieron más sofisticados, se desarrollaron técnicas adicionales para mitigar los problemas
10. Uso en Sistemas Específicos: Aunque las particiones dinámicas dejaron de ser la técnica
han ganado prominencia, las particiones dinámicas han dejado un legado importante y siguen
Algoritmos de ubicación
enfoques simples como "First Fit" (primer ajuste) que asignaba el primer espacio de memoria
disponible que cumpliera con los requisitos del programa. Otros enfoques incluyeron "Best
Fit" (mejor ajuste) que buscaba el espacio más pequeño adecuado y "Worst Fit" (peor ajuste)
programas. Algoritmos como "Next Fit" (siguiente ajuste), "Quick Fit" y otros surgieron para
fragmentación interna ocurre cuando hay espacio no utilizado dentro de una partición
asignada, mientras que la externa ocurre cuando no se puede satisfacer una solicitud de
adaptaron para aprovechar los principios de la cercanía de referencia, donde las direcciones de
rendimiento.
10. Técnicas Actuales y Futuras: En la actualidad, se exploran técnicas más avanzadas como
gestión de memoria en sistemas operativos. Desde los enfoques básicos de "First Fit" hasta las
visión general de cómo surgieron y se desarrollaron estos conceptos a lo largo del tiempo:
separación clara entre la memoria física y la lógica, y los programas estaban sujetos a las
memoria más flexible. Los tamaños variables de los programas y la necesidad de ejecutar
3. Paginación: La paginación fue una de las primeras técnicas que surgieron para abordar la
asignación de memoria de manera más eficiente. Introducida en los años 60, la paginación
divide la memoria en bloques fijos llamados páginas y permite que un programa se almacene
bloques lógicos llamados segmentos. Cada segmento puede tener un tamaño variable y
representa una unidad lógica de información. Esto permitió una gestión más flexible y un
ventajas de ambas técnicas. Esta combinación permitió la gestión eficiente de la memoria para
multinivel, fue una mejora que permitió gestionar grandes espacios de direcciones virtuales de
manera eficiente. Introducida en la década de 1970, esta técnica utilizaba tablas de páginas
características de ambas técnicas. Esta técnica permitía que cada segmento estuviera dividido
desarrollar técnicas más sofisticadas para gestionar la memoria en sistemas operativos. Estas
limitada, lo que llevó a la necesidad de técnicas que permitieran ejecutar programas más
3. Desarrollo de Memoria Virtual: La memoria virtual surgió como una solución a las
permitía a los programas utilizar más memoria de la que estaba físicamente disponible al
memoria en bloques lógicos más grandes. Estas técnicas permitieron una gestión más
principio sugiere que los programas tienden a acceder a un conjunto limitado de direcciones
de memoria en un período de tiempo corto. Esto dio lugar al desarrollo del modelo de trabajo
reemplazo de páginas en la paginación, como LRU (Least Recently Used) y FIFO (First-In-
algoritmos intentan mantener en memoria las páginas que son más propensas a ser
páginas más avanzados, como Clock, LRU Approximation y otros, para adaptarse mejor a los
9. Uso en Sistemas Modernos: En la actualidad, la memoria virtual sigue siendo una parte
gestión de la memoria virtual. Esto incluye enfoques como la gestión de grandes conjuntos de
Fallos de páginas
La gestión de fallos de páginas es una parte integral de la memoria virtual en los sistemas
operativos. Aquí hay una visión general de la historia y evolución de los fallos de páginas:
de una gestión más eficiente de la memoria. La memoria virtual se introdujo para permitir que
memoria en bloques fijos llamados páginas. Cuando un programa accedía a una página que no
un almacenamiento secundario, como un disco, para alojar las páginas que no cabían en la
5. Algoritmos de Reemplazo de Páginas: Con los fallos de páginas, surgieron los algoritmos
de reemplazo de páginas para decidir qué página eliminar de la memoria cuando esta estaba
direcciones virtuales a direcciones físicas. Ayudó a reducir la latencia de los fallos de página
utilizan una combinación de técnicas para gestionar eficientemente los fallos de páginas. Esto
TLB.
9. Gestión de Grandes Conjuntos de Datos: Con el auge de conjuntos de datos más grandes
y aplicaciones más complejas, la gestión de fallos de páginas ha tenido que adaptarse para
En resumen, la gestión de fallos de páginas ha evolucionado a lo largo del tiempo, desde los
un área crucial para mejorar el rendimiento de los sistemas operativos y la eficiencia en el uso
sistemas operativos necesitaban un método para decidir qué página reemplazar cuando la
memoria estaba llena. Los primeros enfoques eran simples, como el reemplazo FIFO (First-
2. FIFO (First-In-First-Out): El algoritmo FIFO es uno de los más simples. La página que
ha estado en la memoria por más tiempo se reemplaza cuando ocurre un fallo de página.
página que no se utilizará durante el mayor tiempo. Sin embargo, la implementación práctica
de OPT es imposible sin conocer el futuro, por lo que se utiliza principalmente como un
4. LRU (Least Recently Used): LRU fue uno de los primeros algoritmos en tener en cuenta
período más largo. Implementar LRU puede ser costoso en términos de seguimiento del
5. Clock (Reloj): El algoritmo del reloj es una aproximación práctica a LRU que utiliza una
encontrada.
complejos y las cargas de trabajo más dinámicas, surgieron algoritmos adaptativos. Estos
el enfoque del reloj. Similar al reloj, pero utiliza un bit de referencia para indicar si la página
8. LFU (Least Frequently Used) y MFU (Most Frequently Used): LFU reemplaza la
página que ha sido menos frecuentemente utilizada, mientras que MFU reemplaza la página
que ha sido utilizada con mayor frecuencia. Ambos algoritmos requieren un seguimiento
computacionales.
reemplazo de páginas que se adapten a las cambiantes cargas de trabajo y a las demandas de
computación en la nube.
por la búsqueda de un equilibrio entre eficiencia y complejidad. A medida que los sistemas
operativos y las cargas de trabajo evolucionan, la investigación en este campo sigue siendo
Algoritmo Óptimo:
1. Orígenes:
reemplazo de páginas.
2. Principio de Funcionamiento:
en entornos reales.
FIFO (First-In-First-Out):
2. Implementación Simple:
• Utiliza una cola para realizar un seguimiento del orden de llegada de las páginas.
3. Limitaciones y Desafíos:
2. Principio de Funcionamiento:
3. Implementación y Derivados:
• Implementación puede ser más compleja que FIFO debido al seguimiento temporal.
• Se han desarrollado variantes y aproximaciones de LRU para equilibrar eficiencia y
complejidad.
4. Adaptación a Hardware:
en la arquitectura de hardware.
Segunda Oportunidad:
1. Introducción y Desarrollo:
2. Implementación:
referenciadas.
3. Adaptabilidad y Limitaciones:
1. LFU:
• Reemplaza la página menos utilizada según el historial de acceso.
2. MFU:
3. Limitaciones y Adaptabilidad:
Hiperpaginación:
1. Definición:
2. Causas:
3. Desafíos y Soluciones:
Memoria virtual.
La memoria virtual es una técnica utilizada en sistemas operativos para proporcionar a los
programas la ilusión de un espacio de direcciones de memoria más grande del que está
lógica que pueden diferir de las direcciones físicas reales en la memoria RAM.
2. Paginación y Segmentación:
espacio.
almacenamiento secundario.
físicas.
7. Protección y Aislamiento:
sistemas con memoria física limitada. Solo las partes activamente utilizadas de
del programa. Los programas pueden solicitar más memoria a medida que lo
necesitan.
disponibles.
Estructuras de control
repetición de las instrucciones en un programa. Aquí hay algunas características clave de las
1. Secuencia:
• La ejecución de las instrucciones en un programa sigue un orden secuencial
2. Selección (Condicional):
condiciones.
condición.
4. Anidamiento:
5. Transferencia de Control:
en funciones.
6. Manejo de Excepciones:
7. Ejecución Condicional:
evaluaciones booleanas.
8. Flexibilidad y Claridad:
programa.
estructurada.
9. Eficiencia y Rendimiento:
10. Reusabilidad:
software.
Gestión de Memoria:
1. Espacio de Direcciones:
2. Segmentación y Paginación:
eficiente de recursos.
3. Memoria Virtual:
• La memoria virtual permite ejecutar programas más grandes que la capacidad
de la memoria RAM física, al cargar y descargar partes del programa según sea
necesario.
tablas de paginación.
6. Fragmentación:
7. Swap y Paging:
1. Sistemas de Archivos:
2. Cache de Disco:
más rápida.
3. Sistemas de Almacenamiento:
estado sólido (SSD), cintas magnéticas, entre otros, que requieren estrategias
sistema.
6. Cache de Memoria:
• El uso de cachés de memoria ayuda a reducir los tiempos de acceso a datos al
rápida.
7. Buffering:
procesarlos.
8. Optimización de Consultas:
Particiones fijas
Las particiones fijas son una técnica de gestión de memoria que divide la memoria principal
se utilizan para alojar programas o procesos. Aquí están algunas de las características clave de
1. Tamaño Predeterminado:
2. Asignación Exclusiva:
• Cada partición está dedicada a un programa o proceso específico. No se
3. Facilita la Multiprogramación:
simultáneamente en la memoria.
5. Fragmentación Interna:
programas.
en la partición.
Particiones dinámicas
Las particiones dinámicas son una técnica de gestión de memoria que permite asignar y
de los programas.
memoria.
recursos.
memoria de la necesaria.
necesario.
respectivamente.
ubicación:
1. Determinación de la Ubicación:
direcciones virtuales.
programa se carga en una ubicación fija, mientras que otros utilizan asignación
3. Tamaño de Partición:
4. Minimización de Fragmentación:
utilizados.
5. Prioridades y Políticas:
7. Estrategias de Colocación:
más rápidas.
8. Facilidad de Implementación:
otros pueden requerir más complejidad para optimizar ciertos aspectos del
rendimiento.
cómo asignar y liberar memoria de manera eficiente para dar cabida a varios
programas concurrentes.
externa.
arquitectura del sistema, las características de la carga de trabajo y los objetivos específicos de
y la segmentación:
Paginación:
1. División en Páginas:
4. Facilita la Multiprogramación:
tamaño fijo y cualquier espacio no utilizado en una página puede ser utilizado
por otra.
7. Reubicación Rápida:
• Se utiliza una política de reemplazo de páginas para decidir qué páginas cargar
Segmentación:
1. División en Segmentos:
pila.
4. Fragmentación Externa:
• La segmentación puede sufrir de fragmentación externa, ya que los segmentos
ellos.
8. Protección de Acceso:
papel importante en la gestión de la memoria y la mejora del rendimiento del sistema. Aquí
Memoria Virtual:
sistema operativo.
4. Mejora la Multiprogramación:
virtuales se superponen.
5. Protección de Memoria:
• Permite la implementación de esquemas de protección de memoria al asignar
direcciones.
1. Principio de Localidad:
2. Temporal y Espacial:
que los datos que se acceden con frecuencia tienden a estar almacenados en la
de memoria.
página para predecir qué páginas son más propensas a ser accedidas en el
futuro.
de la E/S.
asegurándose de que los datos críticos estén disponibles en las capas más
Los fallos de páginas, también conocidos como "page faults", son eventos que ocurren cuando
memoria física. Aquí están las características clave de los fallos de páginas:
1. Definición:
2. Causas Comunes:
• Los fallos de páginas pueden ocurrir por diversas razones, como la ejecución
en la memoria principal.
6. Estrategias de Precarga:
7. Impacto en el Rendimiento:
8. Instrumentación y Monitoreo:
disponible.
memoria principal.
Los algoritmos para el reemplazo de páginas son utilizados por el sistema operativo para
decidir qué página de memoria física debe ser reemplazada cuando se produce un fallo de
página y no hay suficiente espacio libre en la memoria principal. Aquí están las características
1. Política de Reemplazo:
qué página debe ser reemplazada cuando ocurre un fallo de página. La elección
3. Criterios de Reemplazo:
4. FIFO (First-In-First-Out):
la primera en salir.
oportunidad" y no se reemplaza.
7. LFU (Least Frequently Used):
en la idea de que las páginas que se utilizan menos a menudo son menos
críticas.
mayor frecuencia. Esto se basa en la premisa de que las páginas que se utilizan
páginas.
Memoria virtual.
memoria.
2. Aislamiento y Protección:
5. Reubicación Dinámica:
• Permite la reubicación dinámica de programas en la memoria, lo que facilita la
compilación.
• El acceso a la memoria virtual puede ser más lento que el acceso directo a la
2. Complejidad en la Gestión:
4. Posible Hiperpaginación:
lo que lleva a una alta tasa de fallos de página y una pérdida de rendimiento.
6. Posible Fragmentación:
computación modernos.
Estructuras de control
2. Toma de Decisiones:
4. Manejo de Excepciones:
6. Reusabilidad de Código:
• Permiten encapsular bloques de código en funciones o procedimientos, lo que
7. Eficiencia y Rendimiento:
manera controlada.
1. Complejidad Potencial:
demasiadas estructuras.
3. Riesgo de Redundancia:
5. Dificultad en el Entendimiento:
hacer que el código sea difícil de entender para otros desarrolladores o para el
resultados inesperados.
del programa.
8. Complicaciones en el Mantenimiento:
3. Mejora en el Rendimiento:
eficientes.
4. Mayor Flexibilidad:
simultáneamente.
6. Aumento de la Productividad:
7. Mayor Confiabilidad:
• El manejo eficiente de la memoria y los datos contribuye a la fiabilidad del
necesario.
1. Complejidad en la Implementación:
grandes.
2. Posibilidad de Fragmentación:
gestión.
6. Posibilidad de Fallos:
• Una gestión incorrecta de la memoria y los datos puede llevar a fallos del
respuestas rápidas.
8. Dependencia de la Implementación:
utilizados.
Particiones fijas
1. Simplicidad:
desarrollo.
2. Protección de Memoria:
• Facilita la implementación de protección de memoria, ya que cada partición
autorizado.
contexto.
1. Desperdicio de Memoria:
en la partición.
acomodar.
5. Planificación Anticipada:
eficiencia en el uso de recursos son cruciales, las particiones fijas pueden ser
Particiones dinámicas
• Las particiones dinámicas son ideales para manejar programas con tamaños
4. Flexibilidad en la Multiprogramación:
programas.
programas.
programas.
uso de la memoria.
liberaciones frecuentes.
asignadas.
memoria.
Algoritmos de ubicación
memoria donde se asignarán los programas en ejecución. Cada algoritmo tiene sus propias
1. Simplicidad:
2. Menos Fragmentación:
• Algoritmos eficientes pueden ayudar a reducir la fragmentación interna y
disponible.
velocidad de acceso.
5. Adaptabilidad:
y la disponibilidad de memoria.
1. Complejidad:
2. Posible Fragmentación:
• En sistemas donde la asignación de memoria no se realiza de manera eficiente,
5. Reubicación Costosa:
7. Requerimientos de Recursos:
sistema.
Paginación y segmentación de memoria virtual
Ventajas de Paginación:
páginas de tamaño fijo, lo que permite un uso más eficiente del espacio de
memoria.
2. Mayor Flexibilidad:
4. Mejora de la Multiprogramación:
páginas.
6. Protección de Memoria:
• Proporciona protección de memoria al asignar permisos específicos a cada
Desventajas de Paginación:
1. Fragmentación Externa:
• Puede sufrir de fragmentación externa, ya que las páginas no tienen que ser
entre páginas.
páginas.
óptima.
Ventajas de Segmentación:
• Refleja las estructuras lógicas del programa, como código, datos y pila,
programa.
3. Protección de Acceso:
autorizados.
Desventajas de Segmentación:
1. Fragmentación Externa:
2. Reubicación Costosa:
3. Complejidad en la Implementación:
• La implementación de la segmentación puede ser más compleja que la
más grandes.
gestión de memoria.
3. Facilita la Multiprogramación:
• Facilita la multiprogramación al permitir que múltiples programas coexistan en
virtuales se superponen.
• Permite cargar en memoria física solo las partes necesarias del programa,
sistema.
5. Políticas de Protección:
páginas o segmentos.
traducción.
página para predecir qué páginas son más propensas a ser accedidas en el
futuro.
adicionales.
3. No es Siempre Aplicable:
trabajo.
Fallos de páginas
memoria física solo las páginas necesarias para la ejecución actual del
programa.
3. Multiprogramación Mejorada:
superponen.
tiempo.
3. Complejidad en la Gestión:
almacenamiento.
secundario.
computacionales y memoria.
frecuentemente utilizadas.
2. Complejidad de Implementación:
4. Overhead Computacional:
rendimiento.
momentos críticos.
Memoria virtual.
grande del que está físicamente presente en la memoria RAM. Aquí se explica cómo funciona
la memoria virtual:
respectivamente.
en el almacenamiento secundario.
• En caso de que no haya suficiente espacio en la memoria física para cargar una
asignación dinámica.
8. Protección y Aislamiento:
Estructuras de control
repetir acciones y controlar el orden en el que se ejecutan las instrucciones. Aquí se describe
1. Secuencia:
2. Selección (Condicional):
una condición.
4. Transferencia de Control:
antes de tiempo.
5. Anidamiento:
• Las estructuras de control pueden anidarse, lo que significa que una estructura
Ejecución Condicional:
se proporciona una visión general del funcionamiento de estos dos aspectos clave:
Gestión de Memoria:
1. Asignación de Memoria:
de pila.
2. Memoria Virtual:
segmentación.
3. Paginación:
4. Segmentación:
memoria principal.
6. Liberación de Memoria:
utilizados.
7. Optimización de Memoria:
Acceso a Datos:
1. Sistema de Archivos:
3. Cachés:
5. Buffering:
procesarlos.
de datos.
7. Optimización de Consultas:
1. División de la Memoria:
tamaño predeterminado.
2. Asignación de Particiones:
3. Ejecución de Programas:
4. Carga Estática:
realiza antes de la ejecución del programa. El tamaño del programa debe ser
5. Fragmentación Interna:
• Puede ocurrir fragmentación interna si el tamaño del programa no coincide
6. Protección de Memoria:
7. Cambios de Contexto:
correspondiente.
Particiones dinámicas
2. Asignación Dinámica:
memoria disponibles.
9. Protección de Memoria:
• Es responsabilidad del programador garantizar que se realice una gestión
Algoritmos de ubicación
general del sistema. Aquí se explica cómo funcionan algunos de los algoritmos de ubicación
comunes:
1. Ubicación Contigua:
fragmentación interna.
• En este caso, las particiones no tienen tamaños fijos. Los programas se asignan
pueden utilizar algoritmos como el "Best Fit" (asignar al espacio más pequeño
tablas de segmentos.
6. Ubicación en Segmentación Paginada:
de páginas.
1. Asignación de Espacio:
3. Ejecución:
asignada.
4. Finalización:
arquitectura del sistema. Cada enfoque tiene sus propias ventajas y desventajas, y la elección
Paginación:
1. División en Páginas:
igual al de las páginas. Cada marco de página tiene una dirección física única.
3. Tabla de Páginas:
página físico.
4. Carga de Páginas:
• Cuando se necesita acceder a una página lógica que no está en la memoria
5. Traducción de Direcciones:
correspondiente.
física.
Segmentación:
1. División en Segmentos:
2. Tabla de Segmentos:
en la memoria física.
3. Carga de Segmentos:
• Cuando se carga un programa en memoria, los segmentos se cargan en
4. Traducción de Direcciones:
correspondiente.
5. Protección de Acceso:
3. Flexibilidad y Eficiencia:
• Esta combinación proporciona la flexibilidad de tamaños variables de
una combinación de ambas técnicas para aprovechar sus ventajas y mitigar sus desventajas
respectivas.
Memoria Virtual:
2. Paginación o Segmentación:
Cercanía de Referencia:
2. Optimización de Caché:
a la memoria principal.
rendimiento del sistema. La memoria virtual permite una gestión más eficiente
2. Diseño de Algoritmos:
menudo tienen en cuenta la cercanía de referencia para predecir cuáles son las
3. Análisis de Patrones:
Fallos de páginas
El funcionamiento de los fallos de páginas está asociado con la gestión de memoria virtual en
sistemas informáticos. Un fallo de página ocurre cuando un programa intenta acceder a una
página que no está actualmente en la memoria física, lo que lleva a la necesidad de cargar esa
proceso puede implicar el cambio del contexto de ejecución del programa para
manejar el fallo.
las tablas de páginas, que mantienen un mapeo entre las páginas lógicas y sus
la memoria física.
Es importante señalar que los fallos de página son una parte natural de la gestión de memoria
ejecutar programas más grandes que la memoria física disponible, ya que solo las páginas
memoria virtual para decidir qué página residente en la memoria física debe ser eliminada
cuando se necesita espacio para cargar una nueva página. Estos algoritmos buscan maximizar
algoritmos comunes:
1. Algoritmo Óptimo:
2. FIFO (First-In-First-Out):
• Mantiene un orden de llegada de las páginas en la memoria. Cuando se
memoria por más tiempo (la más antigua). Esta técnica es simple pero puede
• Mantiene un registro del tiempo desde la última vez que cada página fue
LRU puede ser costoso, ya que requiere un seguimiento preciso del historial de
accesos.
• Similar a FIFO, pero con una variante que evita reemplazar inmediatamente la
página más antigua. Cada página tiene un bit de referencia que se establece
algoritmo se basa en la idea de que las páginas menos utilizadas son menos
• Similar a LFU, pero selecciona la página que ha sido referenciada con mayor
frecuencia. La idea es que las páginas que se han utilizado con mayor
Memoria virtual.
eficiente de los recursos del sistema, proporciona aislamiento entre programas, y facilita una
ejecución suave y flexible de las aplicaciones. Aquí hay varios aspectos que afectan a la
las cargas de trabajo del sistema. Los sistemas operativos pueden gestionar de
rendimiento.
4. Aislamiento y Protección:
• Proporciona aislamiento entre programas en ejecución al asignar a cada uno su
sistema.
RAM.
6. Optimización de Recursos:
desperdicio de recursos.
7. Reubicación Dinámica:
a la memoria.
Estructuras de control
cómo se utilizan y diseñan en el código. Aquí hay algunos aspectos que afectan a la eficiencia
de estas estructuras:
eficiente.
4. Bucles Eficientes:
bucles infinitos. Además, utilizar el bucle más eficiente para la tarea específica,
mantenimiento.
eficiente.
7. Evaluación Condicional:
• En estructuras condicionales, evaluar primero las condiciones más probables o
de iteraciones.
• Realizar el perfilado del código (identificar áreas de código que consumen más
contextos o arquitecturas.
global de un sistema informático. Aquí se exploran algunos aspectos clave relacionados con la
• Algoritmos como FIFO, LRU (Least Recently Used) u otros se utilizan para
física de la memoria RAM, pero su uso debe ser eficiente. El equilibrio entre la
2. Uso de Cachés:
caché.
4. Buffering:
5. Paralelismo y Concurrencia:
realicen simultáneamente.
6. Optimización de Consultas en Bases de Datos:
Particiones fijas
La eficiencia de las particiones fijas en la gestión de memoria tiene sus ventajas y desventajas
en función de los requisitos específicos del sistema. Aquí se analizan aspectos clave
Ventajas de la Eficiencia:
1. Simplicidad:
2. Protección de Memoria:
programas.
1. Desperdicio de Memoria:
ejecutarse.
desconocida.
eficiencia en el uso de recursos son cruciales, las particiones fijas pueden ser
Particiones dinámicas
dinámicas:
particiones fijas.
• Las particiones dinámicas son ideales para programas con tamaños variables,
4. Flexibilidad en la Multiprogramación:
• Las particiones dinámicas ofrecen flexibilidad en entornos de
programas concurrentes.
1. Complejidad en la Implementación:
2. Fragmentación Externa:
liberaciones frecuentes.
eficiencia.
7. Recolector de Basura:
Algoritmos de ubicación
cómo asignan y gestionan la memoria para optimizar el rendimiento del sistema. La elección
del algoritmo de ubicación puede afectar directamente factores como el uso eficiente de la
memoria, la fragmentación, y la rapidez con la que los programas pueden ejecutarse. Aquí hay
2. Facilidad de Implementación:
preferidos si cumplen con los requisitos del sistema sin introducir complejidad
innecesaria.
demanda de memoria.
7. Optimización de la Caché:
mejorar el rendimiento.
facilidad de implementación.
La elección del algoritmo de ubicación depende de varios factores, incluidos los requisitos
específicos del sistema, la carga de trabajo típica y las características de los programas que se
ejecutarán. No hay un algoritmo único que sea óptimo para todas las situaciones, y la
eficiencia debe evaluarse en el contexto de los requisitos específicos del sistema operativo y
la aplicación.
Paginación y segmentación de memoria virtual
la segmentación:
Paginación:
direcciones lógicas en páginas. Esto significa que solo las páginas necesarias
3. Facilidad de Implementación:
programa.
5. Gestión de Fallos de Página:
Segmentación:
definidas, como código, datos y pila. Permite un manejo más flexible de estos
componentes.
6. Complejidad de Implementación:
1. Flexibilidad y Eficiencia:
requisitos específicos del sistema, la naturaleza de las aplicaciones que se ejecutarán y las
características del hardware. Cada enfoque tiene sus propias ventajas y desventajas, y la
eficiencia del sistema. Algoritmos como LRU (Least Recently Used) y FIFO
4. Prevención de Hiperpaginación:
rendimiento óptimo.
1. Optimización de la Caché:
caché. Los programas que exhiben patrones de acceso locales reducen los
contexto.
Fallos de páginas
rendimiento óptimo del sistema. La gestión eficiente de los fallos de página implica
1. Tiempo de Recuperación:
3. Prevención de Hiperpaginación:
• La eficiencia se ve afectada si el sistema experimenta hiperpaginación, donde
4. Gestión de Prioridades:
en el flujo de ejecución.
aplicaciones.
manera efectiva los fallos de página según los patrones de acceso mejora la
tiempos de acceso.
evitar cargar en exceso la memoria con páginas innecesarias para evitar una
memoria virtual es crítica para el rendimiento general del sistema. Estos algoritmos
determinan qué página residente en la memoria física debe ser reemplazada cuando se
necesita espacio para cargar una nueva página. A continuación, se exploran aspectos
3. Complejidad de Implementación:
• La eficiencia también puede evaluarse en función de la complejidad de
preferidos si cumplen con los requisitos del sistema sin introducir complejidad
innecesaria.
6. Reducción de Fragmentación:
7. Prevención de Hiperpaginación:
rendimiento óptimo.
eficientes.
secundario.
Memoria virtual.
sistemas operativos y en la gestión eficiente de los recursos de memoria. Aquí hay una visión
virtual.
virtual.
heterogéneos.
acceso.
Estructuras de control
mantener.
repetición.
siguiente iteración.
6. Manejo de Excepciones:
7. Programación Estructurada:
1. Primeras Computadoras:
2. Segmentación y Paginación:
• Con el tiempo, se introdujeron técnicas de segmentación y paginación para
3. Memoria Virtual:
5. Optimización de Algoritmos:
recursos.
acceder a datos.
1. Sistemas de Archivos:
completos de datos.
3. Cachés de Disco:
4. Optimización de Consultas:
recuperación de datos.
estructurados.
ciertas aplicaciones.
Particiones fijas
conjunto con los avances en hardware, sistemas operativos y las necesidades cambiantes de
1. Inicio de la Computación:
• En los primeros sistemas informáticos, la memoria se gestionaba de manera
varios programas.
3. Multiprogramación:
5. Fragmentación Interna:
8. Sistemas Modernos:
9. Virtualización y Contenedores:
técnicas de particiones fijas con otros métodos más flexibles para aprovechar
por avances en hardware, sistemas operativos y las demandas cambiantes de las aplicaciones
particiones dinámicas:
los programas debían ser cargados con anticipación con suficiente memoria
para su ejecución.
malloc y free.
ejecución de programas.
en lenguajes modernos.
fragmentación.
inteligentes y tabletas.
Algoritmos de ubicación
óptima. A lo largo del tiempo, se han desarrollado y refinado diferentes enfoques para abordar
Particiones Fijas:
1. Principios Básicos:
la memoria.
2. Desafíos:
diferentes tamaños eran desafíos clave asociados con las particiones fijas.
Particiones Dinámicas:
1. Introducción:
(First Fit) y el Mejor Ajuste (Best Fit), que buscaban asignar el espacio más
Paginación y Segmentación:
1. Paginación:
segmentos.
1. Paginación Segmentada:
1. LRU y Variantes:
LRU (Least Recently Used), que tiene en cuenta el historial de acceso a las
2. Algoritmos Adaptativos:
Técnicas Avanzadas:
específicas.
gestión de la memoria.
sistema. Los desarrollos continúan a medida que la tecnología avanza y se exploran nuevas
modernos.
diversas mejoras y adaptaciones a lo largo del tiempo para abordar desafíos específicos y
Paginación:
1. Introducción de la Paginación:
• La paginación fue introducida para superar los problemas de fragmentación
más pequeños.
2. Tablas de Páginas:
de la paginación.
Segmentación:
1. Introducción de la Segmentación:
1. Paginación Segmentada:
utilización de la memoria.
rendimiento de los sistemas operativos. Las mejoras continuas en algoritmos y enfoques han
permitido gestionar de manera más efectiva la complejidad asociada con la memoria virtual
sistemas informáticos. Aquí hay una descripción general de la evolución de estos conceptos a
Memoria Virtual:
2. Paginación y Segmentación:
• La paginación y la segmentación se convirtieron en técnicas fundamentales de
eficiente.
Algoritmos como FIFO, LRU y variaciones más avanzadas han sido utilizados
del programa.
optimizar el rendimiento.
Cercanía de Referencia:
1. Patrones de Acceso:
• El concepto de cercanía de referencia se centra en la observación de patrones
2. Desarrollo de Algoritmos:
Algoritmos como LRU (Least Recently Used) y sus variantes tienen en cuenta
la cercanía de referencia.
4. Técnicas de Predicción:
referencia.
5. Optimización de la Caché:
proceso continuo, impulsado por la necesidad de adaptarse a las demandas cambiantes de las
aplicaciones y optimizar el uso de los recursos del sistema. Las técnicas avanzadas de análisis
Fallos de páginas
La evolución en la gestión de fallos de páginas ha sido una parte fundamental del desarrollo
1. Gestión Básica:
historia de acceso a las páginas para tomar decisiones más informadas sobre
3. Variantes de Algoritmos:
1. Paginación Anticipada:
1. Algoritmos Adaptativos:
La evolución de los algoritmos para el reemplazo de páginas ha sido esencial para la mejora
del rendimiento de los sistemas operativos y la gestión eficiente de la memoria virtual. Aquí
se presenta una visión general de cómo han evolucionado estos algoritmos a lo largo del
tiempo:
1. FIFO (First-In-First-Out):
• Inicio:
introducidos.
• Funcionamiento:
• Desafíos:
subóptimas.
• Inicio:
ideal.
• Funcionamiento:
• Reemplaza la página que no se usará durante el mayor tiempo en el futuro
• Desafíos:
• Inicio:
• Funcionamiento:
largo.
• Desafíos:
cantidades de memoria.
4. Clock (Reloj):
• Inicio:
• Funcionamiento:
• Utiliza una mano del reloj que avanza a través de las páginas, marcando las
• Desafíos:
• Puede no ser tan preciso como LRU en ciertos escenarios.
• Inicio:
• Funcionamiento:
• Desafíos:
• Inicio:
• Funcionamiento:
• Desafíos:
acceso.
• Inicio:
acceso.
• Funcionamiento:
acceso.
• Desafíos:
patrones de acceso.
• Inicio:
• Funcionamiento:
próximamente.
• Desafíos:
adicional.
• Inicio:
• Funcionamiento:
• Estrategias para evitar la hiperpaginación incluyen ajustes dinámicos en las
• Inicio:
• Funcionamiento:
marcado por la adaptación a los cambios en los patrones de acceso, la optimización para
sistemas con múltiples niveles de memoria y la aplicación de enfoques más avanzados como
el aprendizaje automático. Cada nuevo enfoque ha sido una respuesta a desafíos específicos