Está en la página 1de 15

OCULTAR ARCHIVOS DENTRO DE UNA IMAGEN EN LINUX

La Esteganografa es la tcnica de ocultar archivos o texto dentro de un medio multimedia (audio, video o imagen). p una forma facil y sin instalar paquetes

cat fotobase.jpg archivo.rar > fotodesalida.jpg


Ahora ese comando es concatenar foto base y archivo.rar ( primero se tiene q comprimir para despus concatenar ok) y darnos como resultado foto de salida. Ahora para ver el archivo oculto lo que tenemos que hacer es renombrar foto de salida por la extensin del archivo comprimido en este caso rar soportando archivos como 7z, bmp,gif entre otros.

Otra manera de hacer esto es por medio de programas especiales para este fin como lo es steghide para instalarlo en terminal tecleamos sudo aptitude install steghide Para esconder un archivo dentro de una imagen con steghide tendremos que hacer lo siguiente

steghide embed -cf fotobase.jpg -ef documento a esconder.txt


-cf indica el archivo de portada -ef Indica el archivo oculto steghide protege aun mas el documento oculto pidiendo una contrasea as q despus de teclear el comando de arriba tendremos que asignar una contrasea escribindola dos veces. Y para extraer el contenido oculto lo nico q tenemos que hacer es teclear

steghide extract -sf fotobase.jpg


Y ahora nos creara el documento oculto en la carpeta en la que estemos actualmente.

RAID (conjunto redundante de discos independientes)


En informtica, el acrnimo RAID (del ingls Redundant Array of Independent Disks, conjunto redundante de discos independientes) hace referencia a un sistema de almacenamiento que usa mltiples discos duros entre los que distribuye o replica los datos. Dependiendo de su configuracin (a la que suele llamarse nivel), los beneficios de un RAID respecto a un nico disco son uno o varios de los siguientes: mayor integridad, mayor tolerancia a fallos, mayor rendimiento y mayor capacidad. Esto nos servir para conseguir simplemente un volumen de capacidad mayor, o para conseguir un volumen con mayor seguridad contra fallos de hardware de los discos que lo componen gracias al almacenamiento redundante de estos. Hay que tener en cuenta que cuando hablamos de Software RAID, siempre que hablamos de discos debemos entender que hablamos de particiones. Modos bsicos de RAID Modo Lineal (Linear mode) Dos o ms discos se combinan en un nico dispositivo fsico. Los discos se adjuntan unos a otros de tal manera que las escrituras en el dispositivo RAID primero llenarn el disco 0, a continuacin el disco 1 y as sucesivamente. Los discos no tienen porqu ser del mismo tamao. De hecho, los tamaos no importan para nada aqu. Se trata de una simple concatenacin de discos No existe redundancia en este nivel. Si un disco falla perder toda su informacin con toda probabilidad. Sin embargo, puede tener suerte y recuperar algunos datos, ya que el sistema de ficheros simplemente habr perdido un gran puado de datos consecutivos. El rendimiento de las lecturas y las escrituras no se incrementar para lecturas/escrituras individuales. Pero si varios usuarios usan el dispositivo, puede tener la suerte de que un usuario use efectivamente el primer disco y el otro usuario acceda a ficheros que por casualidad residan en el segundo disco. Si esto ocurre, ver un aumento en el rendimiento. RAID0 (Striped) Tambin llamado modo striping o de distribucin por bandas. Como el modo lineal salvo que las lecturas y escrituras se realizan en paralelo en los dispositivos. stos deben tener aproximadamente el mismo tamao. Puesto que todos los accesos se realizan en paralelo, los discos se llenan por igual. Si un dispositivo es mucho mayor que los otros dems, el espacio extra se utilizar en el dispositivo RAID durante las escrituras en el extremo superior, aunque slo se acceder a este disco ms grande. Naturalmente, esto perjudica el rendimiento. Como en el modo lineal, tampoco hay redundancia en este nivel. A diferencia del modo lineal, no ser capaz de recuperar ningn dato si un disco falla. Si elimina un disco de un grupo RAID0, el dispositivo RAID no perder simplemente un bloque consecutivo de datos, sino que se llenar con pequeos agujeros por todo el dispositivo. El rendimiento de las lecturas y las escrituras se incrementar, ya que las lecturas y las escrituras se realizan en paralelo sobre los dispositivos. Normalmente, sta es la razn

principal para usar RAID-0.Si los buses a los discos son suficientemente rpidos, puede obtener casi N*rendimiento de cada disco MiB/seg. RAID1 (Mirrored) Este es el primer modo que realmente tiene redundancia. RAID-1 se puede usar en dos discos idnticos. Este modo mantiene en un disco un duplicado exacto de la informacin del otro disco. Si uno falla, los datos permanecern intactos, puesto que tendremos el otro disco. Normalmente, el rendimiento de las lecturas es la suma de los rendimientos de los discos, mientras que el rendimiento de las escrituras es el mismo que el de un nico dispositivo o, tal vez, incluso menos. Las lecturas se pueden hacer en paralelo pero, cuando se escribe, la CPU debe transferir 2 veces la cantidad de datos que normalmente transferira (se deben enviar 2 copias idnticas de todos los datos, una a cada disco). RAID3 y RAID4 Este nivel de RAID no se usa con mucha frecuencia. Se puede usar sobre 3 o ms discos. En lugar de duplicar completamente la informacin, guarda informacin de paridad en un nico disco y escribe datos a los otros discos de forma parecida a un RAID-0. Ya que uno de los discos se reserva para informacin de paridad, el tamao del array ser (N-1)*S, donde S es el tamao del disco ms pequeo del array. Como en un RAID1, los discos deben ser del mismo tamao, o de lo contrario tendr que aceptar que el valor de S en la frmula (N-1)*S anterior ser el tamao del disco ms pequeo del array. Si un disco falla, y no es el de paridad, se puede usar la informacin de paridad para reconstruir todos los datos. Si dos discos fallan, se perder toda la informacin. La razn por la que estos niveles no se usan con mucha frecuencia es que la informacin de paridad se guarda en un nico disco. Esta informacin se debe actualizar cada vez que se escribe en uno de los otros discos. Por eso, el disco de paridad se convertir en un cuello de botella si no es mucho ms rpido que los otros discos. RAID5 Este es quizs el modo RAID ms til cuando uno desea combinar un mayor nmero de discos fsicos y todava conservar redundancia. RAID5 se puede usar sobre 3 o ms discos. El tamao del dispositivo RAID5 resultante ser (N-1)*S, tal y como sucede con RAID4. La gran diferencia entre RAID5 y RAID4 es que la informacin de paridad se distribuye uniformemente entre los discos participantes, evitando el problema del cuello de botella del RAID4. Si uno de los discos falla, todos los datos permanecern intactos, gracias a la informacin de paridad. Si dos discos fallan simultneamente, todos los datos se perdern. RAID5 puede sobrevivir a un fallo de disco, pero no a dos o ms. El rendimiento de lectura de RAID5 es equiparable al de RAID0 con el mismo numero de discos. Exceptuando los bloques de paridad, los cuales pueden causar un ligero relentimiento en las escrituras (en las lecturas no se usan los bloques de paridad de no ser que algn disco falle).

RAID6 La idea es la misma que RAID5, solo que se agrega un segundo algoritmo de paridad a parte del XOR normal, por tanto permite la perdida de 2 discos fisicos, el tamao del RAID6 resultante ser (N-2)*S. RAID 7 Este tipo incluye un sistema operativo incrustado de tiempo real como controlador, haciendo las operaciones de cach a travs de un bus de alta velocidad y otras caractersticas de un ordenador sencillo. RAID 10 La informacin se distribuyen en bloques como el RAID 0, y adicionalmente cada disco se duplica como RAID 1, creando un segundo nivel de arreglo se conoce como Striping de arreglos duplicados . Se requieren dos canales, dos discos para cada canal y se utiliza el 50 % de la capacidad para informacin de control. RAID 30 Es ideal para aplicaciones no interactivas, se conoce tambin como Striping de arreglos de paridad dedicada. La informacin es distribuida travs de los discos, como en RAID 0 y utiliza paridad dedicada, como RAID 3, en un segundo canal. Requiere un mnimo de 6 discos. RAID 50 Est diseado para aplicaciones que requieren un almacenamiento altamente confiable, una elevada tasa de lectura y un buen rendimiento en la transferencia de datos con un nivel de RAID 50, la informacin se reparte en los discos y se usa paridad distribuida, por ello se conoce como Striping de arreglo de paridad distribuida. Se requiere un mnimo de 6 discos. RAID 53 Este tipo ofrece un conjunto de bandas en el cual cada banda es un conjunto de discos RAID 3. Esto proporciona mejor rendimiento que el RAID 3, pero a un costo mucho mayor.

Paquete mdadm

mdadm para crear RAIDs por software Para la creacin y administracin de una RAID por software necesitaremos el paquete mdadm. La antigua coleccin de utilidades para RAID de los paquetes raidtools y raidtools2 se ha dejado de usar actualmente puesto que dependa de un fichero de configuracin (/etc/raidtab) difcil de mantener, y sus funciones eran limitadas. Desde agosto de 2001, existe la herramienta mdadm (multiple devices admin), ste paquete nos permite gestionar las RAIDs

por software de una manera mucho mas simple y robusta. Actualmente se ha convertido en un estndar.

Instalar mdadm en Ubuntu En principio el paquete mdadm viene instalado por defecto en Ubuntu. Asimismo si no disponis del paquete instalado podis instalarlo con el Gestor de paquetes Synaptic o bien con el siguiente comando:
$ sudo apt-get install mdadm

Cargar el mdulo raid Para que ubuntu pueda trabajar con las RAID puede ser necesario cargar primero el mdulo correspondiente.
$ sudo modprobe raid1 o $ sudo modprobe raid0

si se quiere un RAID0, o los dos si quieres usar ambos tipos de RAID. Crear una RAID En el caso ejemplo que voy a exponer crear una RAID5 con 4 discos. Asimismo este procedimiento se puede seguir mas o menos de manera anloga para crear cualquier tipo de RAID.

Particionamiento Debemos tener en cuenta, que puesto que vamos a crear una Software RAID, vamos a utilizar particiones en lugar de discos. Sin perjuicio que cada disco contenga una sola particin con la totalidad del tamao del disco, como de hecho es indicado. As pues primeramente debemos preparar las particiones que vamos a utilizar para crear la RAID. Para esto podemos utilizar cualquier herramienta de particionamiento. En nuestro caso vamos a utilizar GParted, una herramienta grfica de fcil uso. Puesto que Ubuntu no la lleva instalada por defecto la instalaremos mediante el Gestor de paquetes Synaptic, o bien con apt-get mediante comandos:

$ sudo apt-get install gparted

Una vez instalado GParted, procedemos a crear una particin para la totalidad de cada uno de los discos idnticos de los que disponemos para crear la RAID. Debemos crear una particin sin formato, puesto que el formato de la RAID lo daremos cuando esta est construida. A parte del formato debemos indicar que se tratar de un disco para crear una RAID. Esto lo podemos hacer de manera fcil con GParted, seleccionando la particin e yendo a Men Particin>gestionar sealadores y marcando el sealador "RAID", tal y como muestran las imgenes.

Fragmentacin

La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria que se vieron en los mtodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa. La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera.

La fragmentacin puede ser:

Fragmentacin Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua.

Fragmentacin Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la particin, pero no se utiliza. La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un solo gran bloque, pero est a solo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin.

Paginacin

Es una tcnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones fsicas de igual tamao, denominadas marcos de pgina. Los programas se dividen en unidades lgicas, denominadas pginas, que tienen el mismo tamao que los marcos de pginas. De esta forma, se puede cargar una pgina de informacin en cualquier marco de pgina. Las pginas sirven como unidad de almacenamiento de informacin y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la direccin de marco, que esta en la posicin fsica de la primera palabra en el marco de pgina. Las pginas de un programa necesitan estar contiguamente en memoria, aunque el programador lo observe de esta forma. Los mecanismos de paginacin permiten la correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las direcciones reales de la memoria que se reverencien. Cada pagina consiste en z palabras contiguas; un espacio de direcciones N de un programa consiste de n paginas (0,1,2,3 n-1) (n*z direcciones virtuales) y el espacio de memoria consiste de m marcos de paginas (0,z,2z, ,(m-1)z)(m*z posiciones). Una direccin virtual a es equivalente a una direccin dada como una dupla (p, d), en la cual p es el nmero de la pgina y d el nmero de la palabra dentro de la pgina, de acuerdo con la relacin: a=p*z+d p=(a/z) d=a mod z (0<=d<z) (parte entera de la division) (resto de divisor a/z)

En las maquinas que usan aritmtica binaria, el calculo de (p, d) es trivial, si z es potencia de 2. Por ejemplo, si el campo de direcciones de la instruccin es de m bits (m>6), los cuatro bits mas significativos indican el numero de la pagina y los m-4 bits restantes, el desplazamiento.

Para tener el control de las pginas, debe mantenerse una tabla en memoria que se denomina tabla de Mapas de Pagina (PMT) para cada uno de los procesos. Hasta ahora, los mtodos que hemos visto de la administracin de la memoria principal, nos han dejado con un problema: fragmentacin, (huecos en la memoria que no pueden usarse debido a lo pequeo de su espacio) lo que nos provoca un desperdicio de memoria principal. Una posible solucin para la fragmentacin externa es permitir que espacio de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que est disponible, aunque est dividida. Una forma de implementar esta solucin es a travs del uso de un esquema de paginacin. La paginacin evita el considerable problema de ajustar los pedazos de memoria de tamaos variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los mtodos previos, la paginacin, en sus diversas formas, es usada en muchos sistemas operativos. Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pgina o frames. Las pginas y los frames tienen siempre el mismo tamao.

Tablas de pginas Cada pgina tiene un nmero que se utiliza como ndice en la tabla de pginas, lo que da por resultado el nmero del marco correspondiente a esa pgina virtual. Si el bit presente / ausente es 0, se provoca un sealamiento (trap) hacia el sistema operativo. Si el bit es 1, el nmero de marco que aparece en la tabla de pginas se copia en los bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la direccin virtual de entrada. Juntos forman una direccin fsica de 15 bits. El registro de salida se coloca entonces en el bus de la memoria como la direccin en la memoria fsica. En teora, la asociacin de las direcciones virtuales con las fsicas se efecta segn lo descrito. El nmero de pgina virtual se divide en un nmero de pgina virtual (los bits superiores)y un ajuste (los bits inferiores). El nmero de pgina virtual se utiliza como un ndice en la tabla de pginas para encontrar la entrada de esa pgina virtual. El nmero de marco (si existe) se determina a partir de la tabla de pginas. El nmero de marco se asocia al extremo superior del ajuste y reemplaza al nmero de pgina virtual para formar una direccin fsica que se puede enviar a la memoria. La finalidad de la tabla de pginas es asociar las pginas virtuales con los marcos. En trminos matemticos, la tabla de pginas es una funcin, cuyo argumento es el nmero de pgina virtual y como resultado el nmero del marco fsico. Mediante el resultado de esta funcin, se

puede reemplazar el campo de la pgina virtual de una direccin virtual por un campo de marco, lo que produce una direccin en la memoria fsica. Sin embargo hay que enfrentar dos aspectos fundamentales:

La tabla de pginas puede ser demasiado grande. La asociacin debe ser rpida. El primer punto proviene del hecho de que las computadoras modernas utilizan direcciones virtuales de al menos 32 bits. Por ejemplo, si el tamao de pgina es de 4K, un hueco de direcciones de 32 bits tiene un milln de pginas; en el caso de un hueco de direcciones de 64 bits, se tendra ms informacin de la que uno quisiera contemplar. El segundo punto es consecuencia del hecho de que la asociacin virtual fsica debe hacerse en cada referencia a la memoria. Una instruccin comn tiene una palabra de instruccin y tambin un operando de memoria. Entonces es necesario hacer una, dos o ms referencias a la tabla de pginas por cada instruccin.

Caractersticas de la paginacin:

El espacio de direcciones lgico de un proceso puede ser no contiguo. Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames). Se divide la memoria en bloques de tamao llamados paginas. Se mantiene informacin en los marcos libres. Para correr un programa de n paginas de tamao, se necesitan encontrara n marcos y cargar el programa. Se establece una tabla de paginas para trasladar las direcciones lgicas a fsicas. Se produce fragmentacin interna. Ventajas de la paginacin

Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud. No es necesario que las paginas estn contiguas en memoria, por lo que no se necesitan procesos de compactacin cuando existen marcos de paginas libres dispersos en la memoria.

Es fcil controlar todas las pginas, ya que tienen el mismo tamao. El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario. Se libera al programador de la restriccin de programar para un tamao fsico de memoria, con lo que s e aumenta su productividad. Se puede programar en funcin de una memoria mucho ms grande a la existente. Al no necesitarse cargar un programa completo en memoria para su ejecucin, se puede aumentar el numero de programas multiprogramndose. Se elimina el problema de fragmentacin externa. Desventajas de la paginacin

El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y el mecanismo de traduccin de direcciones necesario. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantacin. Se deben reservar reas de memoria para las PMT de los procesos. Al no ser fija el tamao de estas, se crea un problema semejante al de los programas (como asignar un tamao ptimo sin desperdicio de memoria, u "ovearhead" del procesador). Aparece el problema de fragmentacin interna. As, si se requieren 5K para un programa, pero las paginas son de 4K, debern asignrseles 2 paginas (8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias paginas, pero no podr ser utilizados. Debe asignarse un tamao promedio a las pginas, evitando que si son muy pequeas, se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de fragmentacin interna. Traduccin de Direcciones La direccin generada por la CPU se divide en:

Nmero de pagina (p): utilizado como indice en la tabla de pagins que contiene la direccin base de cada pagina en la memoria fisica. Offset de la pagina (d): combinado con la direccin base dfine la direccion fisica que ser enviada a la unidad de memoria. Ejemplo de paginacin:

Paginacin en memoria virtual

El nico inconveniente de paginacin pura es que todas las pginas de un proceso deben estar en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamao considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramacin del sistema. Para evitar esto, y aprovechando el principio de cercana de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente ms pequeo que el total de sus pginas), se permitir que algunas pginas del proceso sean guardadas en un espacio de intercambio (en memoria secundaria) mientras no se necesiten. Cuando la paginacin se utiliza junto con memoria virtual, el sistema operativo mantiene adems el conocimiento sobre qu pginas estn en memoria principal y cules no, usando la tabla de paginacin. Si una pgina buscada est marcada como no disponible (tal vez porque no est presente en la memoria principal, pero s en el rea de intercambio), cuando la CPU intenta referenciar una direccin de memoria en esa pgina, la MMU responde levantando una excepcin (comnmente llamada fallo de pgina). Si la pgina se encuentra en el espacio de intercambio, el sistema operativo invocar una operacin llamada intercambio de pgina, para traer a memoria principal la pgina requerida. La operacin lleva varios pasos. Primero se selecciona una pgina en memoria, por ejemplo una que no haya sido usada recientemente (para ms detalles ver algoritmos de reemplazo de pginas). Si la pgina fue modificada, se escribe la misma en el espacio de intercambio. El siguiente paso en el proceso es leer la informacin en la pgina necesitada desde el espacio de intercambio. Cuando esto sucede, las tablas para traduccin de direcciones virtuales a reales son actualizadas para reflejar los contenidos de la memoria fsica. Entonces el intercambio de pgina sale, y el programa que us la direccin que caus la excepcin es vuelto a ejecutar desde el punto en que se dio la misma y contina como si nada hubiera pasado. Tambin es posible que una direccin virtual sea marcada como no disponible porque no fue localizada previamente. En estos casos, una pgina de memoria es localizada y llenada con ceros, la tabla de paginacin es modificada para mostrar los cambios y el programa se reinicia como en el otro caso.

Segmentacin

Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos. Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa. La segmentacin permite alcanzar los siguientes objetivos:

Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamao y este puede variar. Proteccin: se puede proteger los mdulos del segmento contra accesos no autorizados. Comparicin: dos o ms procesos pueden ser un mismo segmento, bajo reglas de proteccin; aunque no sean propietarios de los mismos. Enlace dinmico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecern solo cuando sea necesario. Ventajas de la segmentacin El esquema de segmentacin ofrece las siguientes ventajas:

El programador puede conocer las unidades lgicas de su programa, dndoles un tratamiento particular. Es posible compilar mdulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos. Debido a que es posible separar los mdulos se hace ms fcil la modificacin de los mismos. Cambios dentro de un modulo no afecta al resto de los mdulos. Es fcil el compartir segmentos. Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en ejecucin. Existe la posibilidad de definir segmentos que aun no existan. As, no se asignara memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serian los arreglos cuya dimensin no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podra retardar la asignacin de memoria hasta el momento en el cual se referencia el arreglo u otra estructura de dato por primera vez. Desventajas de la segmentacin

Hay un incremento en los costos de hardware y de software para llevar a cabo la implantacin, as como un mayor consumo de recursos: memoria, tiempo de CPU, etc.

Debido a que los segmentos tienen un tamao variable se pueden presentar problemas de fragmentacin externas, lo que puede ameritar un plan de reubicacin de segmentos en memoria principal. Se complica el manejo de memoria virtual, ya que los discos almacenan la informacin en bloques de tamaos fijos, mientras los segmentos son de tamao variable. Esto hace necesaria la existencia de mecanismos ms costosos que los existentes para paginacin. Al permitir que los segmentos varen de tamao, puede ser necesarios planes de reubicacin a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos. No se puede garantizar, que al salir un segmento de la memoria, este pueda ser trado fcilmente de nuevo, ya que ser necesario encontrar nuevamente un rea de memoria libre ajustada a su tamao. La comparticion de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software. Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como Segmentacin paginada.

Segmentacin Paginada

Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas anteriormente. Para la segmentacin se necesita que estn cargadas en memoria, reas de tamaos variables. Si se requiere cargar un segmento en memoria; que antes estuvo en ella y fue removido a memoria secundaria; se necesita encontrar una regin de la memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible; en cambio "recargar" una pagina implica solo encontrar un merco de pagina disponible. A nivel de paginacin, si quiere referenciar en forma cclicas n paginas, estas debern ser cargadas una a una generndose varias interrupciones por fallas de paginas; bajo segmentacin, esta pagina podra conformar un solo segmento, ocurriendo una sola interrupcin, por falla de segmento. No obstante, si bajo segmentacin, se desea acceder un rea muy pequea dentro de un segmento muy grande, este deber cargarse completamente en memoria, desperdicindose memoria; bajo paginacin solo se cargara la pgina que contiene los tems referenciados. Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de pginas.

Los segmentos son usualmente mltiplos de pginas en tamao, y no es necesario que todas las pginas se encuentren en memoria principal a la vez; adems las pginas de un mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan estarlo en memoria real. Las direcciones tienen tres componentes: (s, p,d), donde la primera indica el numero del segmento, la segunda el numero de la pagina dentro del segmento y la tercera el desplazamiento dentro de la pagina. Se debern usar varias tablas:

SMT (tabla de mapas de segmentos): una para cada proceso. En cada entrada de la SMT se almacena la informacin descrita bajo segmentacin pura, pero en el campo de direccin se indicara la direccin de la PMT (tabla de mapas de pginas) que describe a las diferentes pginas de cada segmento. PMT (tabla de mapas de pginas): una por segmento; cada entrada de la PMT describe una pgina de un segmento; en la forma que se presento la pagina pura. TBM (tabla de bloques de memoria): para controlar asignacin de pginas por parte del sistema operativo. JT (tabla de Jobs): que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan en memoria. En el caso, de que un segmento sea de tamao inferior o igual al de una pagina, no se necesita tener la correspondiente PMT, actundose en igual forma que bajo segmentacin pura; puede arreglarse un bit adicional (S) a cada entrada de la SMT, que indicara si el segmento esta paginado o no.

Ventajas de la segmentacin paginada El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin y la paginacin:

Debido a que los espacios de memorias son segmentados, se garantiza la facilidad de implantar la comparticion y enlace. Como los espacios de memoria son paginados, se simplifican las estrategias de almacenamiento. Se elimina el problema de la fragmentacin externa y la necesidad de compactacin. Desventajas de la segmentacin paginada

Las tres componentes de la direccin y el proceso de formacin de direcciones hace que se incremente el costo de su implantacin. El costo es mayor que en el caso de de segmentacin pura o paginacin pura. Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor costo de almacenamiento. Sigue existiendo el problema de fragmentacin interna de todas- o casi- todas las pginas finales de cada uno de los segmentos. Bajo paginacin pura se desperdician solo la ltima pgina asignada, mientras que bajo segmentacin paginada el desperdicio puede ocurrir en todos los segmentos asignados.

También podría gustarte