You are on page 1of 21

PRESENTACION:

MATERIA: Sistemas Operativos.

TEMA: Administracion de Memoria.

NOMBRE Y MATRICULA: Kenny Sail Baez Mejia – 2022-0559.

DOCENTE: Maria Ant. Pineda.

FECHA: 14/2/2022.
INDICE:

Introduccion 1

Memoria Principal 2

Abstraccion de Memoria 3

Memoria Virtual 4

Algoritmos de Reemplazo de pag. 5

Problemas de diseño para sistemas de pag. 6

Problemas de Implementacion 7

Segmentacion 8
1. INTRODUCCION:

En el capitulo de hoy vamos hablar sobre la administracion de la


memoria, la memoria principal, una abstraccion de memoria:
espacio de direcciones, memoria virtual, algoritmo de reemplazo
de pagina, problemas de diseño para sistema de paginacion,
problemas implementacion y segmentacion.
2. MEMORIA PRINCIPAL:

Memoria primaria (MP), memoria principal, memoria central o


memoria interna es la memoria de la computadora donde se
almacenan temporalmente tanto los datos como los programas
que la unidad central de procesamiento (CPU) está procesando o
va a procesar en un determinado momento. Por su función, la MP
debe ser inseparable del microprocesador o CPU, con quien se
comunica a través del bus de datos y el bus de direcciones. El
ancho del bus determina la capacidad que posea el
microprocesador para el direccionamiento de direcciones en
memoria.

En algunas ocasiones suele llamarse “memoria interna” porque a


diferencia de los dispositivos de memoria secundaria, la MP no
puede extraerse tan fácilmente.

Esta clase de memoria es volátil, es decir que cuando se corta la


energía eléctrica, se borra toda la información que estuviera
almacenada en ella.

La MP es el núcleo del subsistema de memoria de un sistema


informático, y posee una menor capacidad de almacenamiento que
la memoria secundaria, pero una velocidad millones de veces
superior. Cuanto mayor sea la cantidad de memoria, mayor será la
capacidad de almacenamiento de datos.
Cuando la CPU tiene que ejecutar un programa, primero lo coloca
en la memoria y después lo empieza a ejecutar. Lo mismo ocurre
cuando necesita procesar una serie de datos; antes de poder
procesarlos los tiene que llevar a la memoria principal.

Dentro de la memoria de acceso aleatorio (RAM) existe una clase


de memoria denominada memoria caché, que se caracteriza por
ser más rápida que las demás, permitiendo que el intercambio de
información entre la CPU y la MP sea a mayor velocidad.

La estructura de la memoria principal ha cambiado en la historia


de las computadoras. Desde los años 1980 es prevalentemente
una unidad dividida en celdas que se identifican mediante una
dirección. Está formada por bloques de circuitos integrados o chips
capaces de almacenar, retener o "memorizar" información digital,
es decir, valores binarios; a dichos bloques tiene acceso el
microprocesador de la computadora.

En las computadoras son utilizados dos tipos de memorias:

Memoria de Solo Lectura (Read Only Memory, ROM). Viene


grabada de fábrica con una serie de programas. El software de la
ROM se divide en dos partes:

a. Rutina de arranque o POST (Power On Self Test, «Auto


Diagnóstico de Encendido»): realiza el chequeo de los
componentes de la computadora; por ejemplo, circuitos
controladores de video, de acceso a memoria, el
teclado, unidades de disco, etcétera. Se encarga de
determinar cuál es el hardware que está presente y de
la puesta a punto de la computadora. Mediante un
programa de configuración, el setup, lee una memoria
llamada CMOS RAM (RAM de Semiconductor de Óxido
Metálico). Esta puede mantener su contenido durante
varios años, aunque la computadora esté apagada, con
muy poca energía eléctrica suministrada por una
batería, guarda la fecha, hora, la memoria disponible,
capacidad de disco rígido, si tiene disquetera o no. Se
encarga en el siguiente paso de realizar el arranque
(booteo): lee un registro de arranque BR (Boot Record)
del disco duro o de otra unidad (como CD, USB...),
donde hay un programa que carga el sistema operativo
a la RAM. A continuación cede el control a dicho sistema
operativo y la computadora queda listo para trabajar.

b. Rutina del BIOS (Basic Input-Output System o «Sistema


Básico de Entrada-Salida»): permanece activa mientras
se está usando la computadora. Permite la activación de
los periféricos de entrada/salida: teclado, monitor, ratón,
etcétera.

c. Rutina Setup: etapa primaria en la que se pueden


modificar opciones básicas como el horario. Es
indiferente al sistema operativo y se inicia antes de
iniciar sesión.

Memoria de Lectura-Escritura (Read-Write Memory, RWM): es


la memoria del usuario que contiene de forma temporal el
programa, los datos y los resultados que están siendo usados por
el usuario de la computadora. En general es memoria volátil,
pierde su contenido cuando se apaga la computadora, es decir que
mantiene los datos y resultados en tanto el bloque reciba
alimentación eléctrica, a excepción de la CMOS RAM.

Tanto la RAM como la ROM son circuitos integrados, llamados


chips. El chip es una pequeña pastilla de material semiconductor
(silicio) que contiene múltiples circuitos integrados, tales como
transistores, entre otros dispositivos electrónicos, con los que se
realizan numerosas funciones en computadoras y dispositivos
electrónicos; que permiten, interrumpen o aumentan el paso de la
corriente. Estos chips están sobre una tarjeta o placa.

Es común llamar erróneamente a la memoria de lectura/escritura


(RWM) como memoria de acceso aleatorio (RAM), donde se
confunde el tipo de memoria con la forma de acceso a ella.

El contenido de las memorias no es otra cosa que dígitos binarios


o bits (binary digits), que se corresponden con dos estados lógicos:
el 0 (cero) sin carga eléctrica y el 1 (uno) con carga eléctrica. A
cada uno de estos estados se le llama bit, que es la unidad mínima
de almacenamiento de datos.

Al bloque de MP, suele llamarse RAM, por ser este el tipo de chips
de memoria que conforman el bloque, pero se le asocia también el
chip CMOS, que almacena al programa BIOS del sistema, y los
dispositivos periféricos de la memoria secundaria (discos y otros
periféricos), para conformar el subsistema de memoria de la
computadora.

La CPU direcciona las posiciones de la RAM para poder acceder


a los datos almacenados en ellas y para colocar los resultados de
las operaciones.
Los bloques RWM, las ROM y las memorias secundarias
conforman el subsistema de memoria de una computadora.

3. UNA ABSTRACCION DE MEMORIA:

Espacio de direcciones En las primeras computadoras como por


ejemplo la IBM 360, existía la necesidad de resolver dos
problemas para permitir que haya varias aplicaciones en memoria
al mismo tiempo sin que interfieran entre sí: Protección y
Reubicación.

El espacio de direcciones es una abstracción de la memoria para


los programas.

Es un conjunto de direcciones que puede utilizar un proceso para


direccionar la memoria. Cada proceso tiene su propio espacio de
direcciones, independiente de los que pertenecen a otros
procesos.

La finalidad es proporcionar a cada programa su propio espacio de


direcciones, de manera que la dirección 28 en un programa indique
una ubicación distinta de la dirección 28 en otro programa.
4. MEMORIA VIRTUAL:

La memoria virtual (también conocida como archivo de paginación)


es básicamente un bloque de espacio en su disco duro o unidad
de estado sólido asignado por el SO para que actúe como RAM
cuando su RAM física no tenga suficiente capacidad para
programas en ejecución. Sirve de RAM "falsa" adicional para que
los programas puedan seguir funcionando, pero ya que el acceso
y el rendimiento del HDD y la SSD son mucho más lentos que los
de una RAM real, se suele apreciar una pérdida de rendimiento
notable si se recurre demasiado a la memoria virtual.

Gestionar la memoria virtual en un sistema Windows® es


relativamente fácil, pero bastante innecesario. De forma
predeterminada, Windows ajustará la memoria virtual de forma
instantánea según sus necesidades y la RAM que tenga instalada.
Intenta ajustarla automáticamente según prevé que vaya a
necesitarla en función de la RAM que tenga instalada y la ajustará
si hace un uso excesivo. Esto puede provocar un proceso de
autoajuste que ocupe gran cantidad de espacio si está ejecutando
una gran cantidad de RAM (por ejemplo, un sistema con 8 GB de
RAM a menudo se ajusta de forma predeterminada en 8 GB de
memoria virtual y puede aumentar hasta 16 GB). Algunos usuarios
cambiarán los ajustes de la memoria virtual para reducir el espacio
que usan sus sistemas operativos en el disco duro o la unidad de
estado sólido porque creerán tener suficiente RAM para no tener
que usar nunca la memoria virtual de sus sistemas operativos. A
los usuarios también les interesa reclamar el espacio que se
"pierde" si no se usa la memoria virtual, esto ocurre sobre todo con
el almacenamiento de mayor coste de una SSD. Sin embargo,
reducir o eliminar su memoria virtual para liberar espacio en el
disco, supone algunos riesgos de error o inestabilidad en el
sistema en caso de que necesite más memoria virtual pero esté
limitado a lo que su sistema puede usar.

Por lo general, tampoco es necesario aumentar este ajuste de


memoria. Antes de dotarse de más memoria virtual para que un
programa pueda funcionar es preferible una actualización de la
RAM, ya que las velocidades de RAM superan notablemente el
rendimiento de la memoria virtual. El rendimiento de su sistema se
reducirá comparado con la mejora del hardware específico para
proporcionar esta ventaja.

Si realiza ajustes manuales, deberá asumir los riesgos, y no


debería intentarlo a menos de que tenga claro lo que realmente
necesita. Si no se asigna suficiente espacio para la memoria
virtual, los programas o su sistema al completo podrían funcionar
mal. Además, los programas más antiguos están diseñados
partiendo de que hay un archivo de paginación para poder usarlos,
y los programas individuales pueden presentar errores de
funcionamiento si no disponen de una memoria virtual adecuada
debido a una configuración incorrecta.

Las instrucciones detalladas para estos ajustes en las versiones


más antiguas de Windows varían ligeramente de las siguientes
instrucciones, pero siguen siendo las más aplicables, ya que esta
característica no ha cambiado mucho desde Windows XP.
5. ALGORITMOS DE REEMPLAZO DE PAGINAS:

Cuando hablamos de memoria virtual nos referimos a una serie


de mecanismos habilitados por el sistema operativo para simular,
de forma transparente para el usuario, la existencia de mayor
cantidad de memoria física que la realmente instalada en realidad.
A grandes rasgos esto se consigue empleando un dispositivo de
almacenamiento secundario (típicamente un disco duro) y una
serie de mecanismos hardware y software que permitan mantener
en memoria sólo los fragmentos de memoria que se están usando
en un momento dado, almacenando en el disco el resto y
realizando la carga y el almacenamiento de los mismos según es
necesario en cada momento. El sistema de memoria virtual de los
actuales computadores surgió para liberar al programador de una
serie de tareas relacionadas con el uso que los programas debían
realizar con la memoria. La memoria virtual automatiza la gestión
entre los dos niveles principales de la jerarquía de memoria:
memoria principal y disco.

La paginación también surgió de la necesidad de mantener más


de un programa residente en memoria cuando la capacidad de
ésta es inferior a la suma de los tamaños de los programas. Se
trata de un mecanismo automático de solapamiento múltiple que
practica el Sistema Operativo para hacer posible la
multiprogramación. El espacio de memoria principal se divide en
bloques de tamaño fijo denominados páginas(pequeñas partes).
Del mismo modo, la memoria es dividida en trozos del mismo
tamaño que las páginas llamados marcos de página. De esta
forma, la cantidad de memoria desperdiciada por un proceso es el
final de su última página, lo que minimiza la fragmentación interna
y evita la externa. Los programas se dividen también en páginas y
residen en el disco. El Sistema Operativo se encarga de asignar
páginas físicas a los programas en ejecución (multiprogramación).
De esta forma el tiempo de CPU puede distribuirse entre los
programas residentes.

Los Algoritmos de reemplazo de página son aquellos algoritmos


de sistemas operativos que están diseñados para solucionar el
problema de decidir qué página de las que reside en memoria bajo
un frame o marco debe salir para dejar entrar a otra que está
siendo referenciada. Al ser los reemplazos de página
fundamentales para la paginación bajo demanda, es importante
que los sistemas operativos implementen los algoritmos más
efectivos. Algunos de los presentados son algoritmos creados para
concretizar la idea de reemplazo, otros son ideales pero imposibles
o difíciles de implementar y están aquellos que con ciertos costos
son perfectamente implementables, pero todo algoritmo debe
apuntar a tener la menor cantidad de fallos de página, lo que
implica, por ejemplo, la reducción sustancial de I/O a memoria
secundaria.

Los algoritmos son evaluados con cadenas de referencias, que


son cadenas de números que indican las páginas que son
referenciadas. La idea es simular cómo actúan los distintos
algoritmos para estas cadenas, de forma tal de conocer su
eficiencia.
Cuando se presenta un fallo de página, el sistema operativo tiene
que escoger la página que desalojará de la memoria para hacer
espacio para colocar la página que traerá del disco. Si la página a
desalojar fue modificada mientras estaba en la memoria, deberá
reescribirse en el disco para actualizar la copia. En cambio, si la
página no se ha modificado(por ejemplo si tiene texto de
programa), la copia en disco ya estará actualizada y no será
necesario reescribirla. La nueva página simplemente sobreescribe
lo que se está desalojando. Aunque sería posible escoger una
página al azar para desalojarla cuando haya un fallo de página, el
desempeño del sistema mejora si se escoge una página que no se
usa mucho.

Si se desaloja una página muy utilizada, lo más seguro es que


pronto tenga que volverse a traer a la memoria, con el consiguiente
gasto extra.

Vale la pena señalar que el problema de "reemplazo de páginas"


también se da en otras áreas del diseño de computadoras. Por
ejemplo, casi todas las computadoras tienen unos o más cachés
en memoria que tienen bloques de memoria de 32 y 64 bytes
recién usados. Cuando se llena el caché, hay que escoger el
bloque a desalojar. Este problema es idéntico al reemplazo de
páginas, sólo que se efectúa en una escala de tiempo más corta
(se tiene que efectuar en unos cuantos nanosegundos, no en
milisegundos como el reemplazo de páginas). La escala de tiempo
es corta porque los fallos de bloque en caché se satisfacen
colocando un bloque de la memoria principal, que no tiene tiempo
de desplazamiento de la cabeza lectora ni latencia rotacional. Un
segundo ejemplo es un servidor web. Éste puede mantener en su
caché de memoria cierto número de páginas web muy utilizadas.
Sin embargo, si el caché se llena y se hace referencia a una página
nueva, habrá que decidir cuál página web desalojar. Las
consideraciones son similares en el caso de páginas de memoria
virtual, salvo por el hecho de que las páginas web nunca se
modifican en el caché, así que la copia en disco siempre está
actualizada. En un sistema de memoria virtual, las páginas que
están en la memoria principal podrían estar modificadas o sin
modificación.

Algoritmo de reemplazo de páginas: Reloj

En este algoritmo se mantienen las páginas almacenadas en


memoria en una lista circular y se coloca un puntero apuntando a
la página más antigua. Cuando se produce un fallo de página se
revisa el bit R de la página a la que apunta el puntero (manecilla
del reloj); si contiene un 0 (no ha habido referencias a dicha
página) la página sale de memoria, se coloca la nueva página en
su lugar y se hace avanzar el puntero, pero si el bit R contenía un
1 (si ha habido referencia a dicha página), la página no sale, pero
se limpia su bit R y se hace avanzar el puntero.

6. PROBLEMAS DE DISEÑO EN SISTEMAS DE PAGINACION:

El problema más común en relación con el espacio de paginación


está provocado por quedarse sin espacio asignado.
Normalmente, la cantidad total de espacio de paginación se
determina mediante pruebas y errores. Una directriz utilizada con
frecuencia es doblar el tamaño de RAM y utilizar esa cifra como
destino de espacio de paginación. Si disminuye mucho el espacio
de paginación, se pueden perder procesos y, si se agota el espacio
de paginación, el sistema puede verse afectado gravemente. La
siguiente información de señales y errores puede ayudarle a
supervisar y resolver o evitar problemas de espacio de paginación.

El sistema operativo supervisa el número de bloques de espacio


de paginación libres y detecta cuando el espacio de paginación no
es suficiente. Cuando el número de bloques de espacio de
paginación libres cae por debajo de un umbral conocido como nivel
de aviso de espacio de paginación, el sistema informa a todos los
procesos (excepto a kprocs) de esta condición enviando la señal
SIGDANGER. Si la escasez continúa y cae por debajo de un
segundo umbral conocido como nivel de matar de espacio de
paginación, el sistema envía la señal SIGKILL a los procesos que
son los principales usuarios del espacio de paginación y no tienen
un manejador de la señal SIGDANGER. (La acción
predeterminada para la señal SIGDANGER es pasar por alto la
señal.) El sistema continúa enviando señales SIGKILL hasta que
el número de bloques de espacio de paginación libres está por
encima del nivel de matar de espacio de paginación. Los procesos
que asignan dinámicamente memoria pueden asegurar que existe
espacio de paginación suficiente supervisando los niveles de
espacio de paginación con la subrutina psdanger o utilizando las
rutinas de asignación especial. Puede utilizar la subrutina disclaim
para impedir que los procesos finalicen cuando se alcanza el nivel
de matar de espacio de paginación. Para ello, defina un manejador
de señal para la señal SIGDANGER y libere memoria y recursos
de espacio de paginación asignados en sus datos y áreas de pila
y en segmentos de memoria compartida.

7. PROBLEMAS DE IMPLEMENTACION:

No asignar las personas adecuadas al proyecto:


En la implementación de un proyecto de software las empresas
deben aportar parte de su equipo para trabajar codo con codo con
la consultora encargada de ejecutarlo. El mejor consejo es este:
hay que elegir los perfiles más imprescindibles de la empresa para
supervisar la implementación. Aquellos con mayores
conocimientos sobre los procesos internos, los que saben predecir
y resolver problemas, serán los que aseguren una correcta
implantación del software. No caigas en la tentación de delegar
esta tarea en miembros más jóvenes o inexpertos; dale la
importancia que merece y pon a los mejores a supervisar y ayudar.

Problemas de comunicación:
Un clásico. Cualquier cambio genera dudas y temores, inquietud e
incluso confusión en tu propio equipo. En el caso de implantar un
nuevo CRM o ERP, es algo que va a alterar la forma en que
trabajamos y nuestras dinámicas internas. Aunque el resultado a
largo plazo será positivo y nos permitirá optimizar nuestro tiempo,
al principio debes esforzarte en establecer canales de
comunicación abiertos con los encargados de la implementación y
con todas las personas que se verán afectadas por los cambios;
escucharlos, atender sus dudas y pacificar los conflictos que vayan
apareciendo.
8. SEGMENTACION:

La segmentación es un esquema de administración de la


memoria que soporta la visión que el usuario tiene de la misma.
Un espacio de direcciones lógicas es una colección de segmentos.
Cada segmento tiene un nombre y una longitud. Las direcciones
especifican tanto el nombre del segmento como el desplazamiento
dentro del segmento. Por lo tanto, el usuario especifica cada
dirección mediante dos cantidades: un nombre de segmento y un
desplazamiento. (Compárese este esquema con la paginación,
donde el usuario especificaba solamente una única dirección, que
el hardware particionaba en número de página y desplazamiento,
siendo todo ello invisible al programador).

Por simplicidad de implementación, los segmentos están


numerados y se referencian por un número de segmento en lugar
de por un nombre. Normalmente el programa de usuario se
ensambla (o compila), y el ensamblador (o el compilador)
construye automáticamente segmentos que reflejan el programa
de entrada. Un compilador de Pascal podría crear segmentos
separados para (1) las variables globales, (2) la pila de llamada de
procedimientos, para almacenar parámetros y devolver
direcciones, (3) el código de cada procedimiento o función, y (4)
las variables locales de cada procedimiento y función. El cargador
tomaría todos esos segmentos y les asignaría números de
segmento.
La segmentación de memoria es una técnica de gestión de
memoria que pretende acercarse más al punto de vista del usuario.
Los programas se desarrollan, generalmente, en torno a un núcleo
central (principal) desde el que se bifurca a otras partes (rutinas) o
se accede a zonas de datos (tablas, pilas, etc).
Desde este punto de vista, un programa es un conjunto de
componentes lógicos de tamaño variable o un conjunto de
segmentos, es decir, el espacio lógico de direcciones se considera
como un conjunto de segmentos, cada uno definido por un
identificador, y consistente de un punto de inicio y el tamaño
asignado.

La segmentación de un programa la realiza el compilador y en ella


cada dirección lógica se expresará mediante dos valores: Número
de segmento (s) y desplazamiento dentro del segmento.

Una de las implementaciones más obvias y directas de un espacio


de memoria segmentado es asignar un segmento distinto a cada
una de las secciones del espacio en memoria de un proceso.

La segmentación también ayuda a incrementar la modularidad de


un programa: Es muy común que las bibliotecas enlazadas
dinámicamente estén representadas en segmentos
independientes.
CONCLUSION:

En este capitulo hablamos sobre la Memoria Principal que es la


memoria de la computadora donde se almacenan temporalmente
tanto los datos como los programas que la unidad central de
procesamiento (CPU) está procesando o va a procesar en un
determinado momento. Tambien sobre la Abstraccion de
Memoria Espacios de Direcciones, sobre la Memoria Virtual,
Algoritmos de Reemplazo de Pagina, Problemas de Diseño
para Sistemas de Paginacion, Problemas de Implementacion
y Segmentacion.

BIBLIOGRAFIA:

Para realizar este trabajo pondré los link y páginas donde me


apoye para tomar apuntes y lectura para poder desarrollar el
mismo esperando le sirva a todo a aquel que quiera leer y sacar
provecho…

REFERENCIAS:

https://es.wikipedia.org/wiki/Memoria_principal#:~:text=Memoria%
20primaria%20(MP)%2C%20memoria,procesar%20en%20un%2
0determinado%20momento.
https://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_memoria

https://lsi.vc.ehu.eus/pablogn/docencia/manuales/SO/TemasSOu
Jaen/ADMINISTRACIONDELAMEMORIA/5.2Segmentacion.htm#
:~:text=La%20segmentaci%C3%B3n%20es%20un%20esquema,
usuario%20tiene%20de%20la%20misma.&text=Normalmente%2
0el%20programa%20de%20usuario,reflejan%20el%20programa
%20de%20entrada.

https://www.captio.net/blog/errores-comunes-implementacion-
software

https://sites.google.com/site/sistemasoperativos2unah/investigaci
ones/algoritmos-de-reemplazo

https://es.wikipedia.org/wiki/Algoritmo_de_reemplazo_de_p%C3
%A1ginas

https://prezi.com/xkk69a_fk_fz/una-abstraccion-de-memoria-
espacio-de-
direcciones/#:~:text=El%20espacio%20de%20direcciones%20es,
que%20pertenecen%20a%20otros%20procesos.

https://www.crucial.es/support/articles-faq-memory/virtual-
memory-settings-
suggestions#:~:text=La%20memoria%20virtual%20(tambi%C3%
A9n%20conocida,capacidad%20para%20programas%20en%20e
jecuci%C3%B3n.

You might also like