You are on page 1of 59

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN SUPERIOR UNIVERSIDAD POLITCNICA TERRITORIAL DE LOS LLANOS

PLAN NACIONAL DE FORMACIN REA: INFORMTICA NCLEO CALABOZO

SISTEMAS OPERATIVOS II

Profesor: Leandro Zapata

Integrantes: Hernndez Hemerson C.I. 13.949.412 Hernndez Wuexdiana C.I. 12.991.291 Mitchell James C.I. 17.374.913 Pantoja Dannys C.I.13.949.575

Calabozo, Abril 2013

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN SUPERIOR UNIVERSIDAD POLITCNICA TERRITORIAL DE LOS LLANOS PLAN NACIONAL DE FORMACIN REA: INFORMTICA NCLEO CALABOZO

Sistemas Operativos II

Profesor: Leandro Zapata

Integrantes: Hernndez Hemerson C.I. 13.949.412 Hernndez Wuexdiana C.I. 12.991.291 Mitchell James C.I. 17.374.913 Pantoja Dannys C.I.13.949.575

Calabozo, Abril 2013

NDICE
Pg.

INTRODUCCIN.. Coordinacin y Sincronizacin de Proceso.... Concurrencia..... Semforos................................................................. Monitores.... Seccin Critica... Gestin de Memoria Principal.......... Organizacin....... Fragmentacin ...... Estrategias.... Administracin de la memoria Virtual. Paginacin.... Segmentacin..... Gestin de Memoria Secundaria... Archivo.. Control de Archivo.. Caractersticas. CONCLUSIN REFERENCIA BIBLIOGRFICA.

4 5 5 7 8 9 11 12 14 16 21 25 28 33 33 38 46 58 59

INTRODUCCIN

El objetivo principal de este trabajo es conocer el trmino los Sistemas Operativos y su Gestin de Proceso la cual es una parte importante de cualquier sistema de computacin. Un sistema de computacin puede dividirse en varios

componentes: el hardware, el Sistema Operativo, los programas de aplicacin y los usuarios. El hardware (Unidad Central de Procesamiento (UCP),memoria y dispositivos de entrada/salida (E/S)) proporciona los recursos de computacin bsicos. Los programas de aplicacin (compiladores, sistemas de bases de datos, juegos de video y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computacin de los usuarios. Un Sistema Operativo es una coleccin organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecucin de los programas, debe brindar una forma de que el usuario se pueda comunicar con l a travs de una interfaz que le brinde una va de comunicacin con el hardware del sistema informtico. Esto es a grandes rasgos de que los sistemas operativos en el contenido que a continuacin presentamos existen diversos significados, as como tambin caractersticas y clasificacin, que ms adelante se irn dando a conocer

COORDINACIN Y SINCRONIZACIN DE LOS PROCESOS

Concurrencia La concurrencia de procesos se refiere a las situaciones en las que dos o ms procesos puedan coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse en su ejecucin. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que permiten coordinar la ejecucin de los procesos. Un ejemplo de un problema de concurrencia sera el siguiente: Dados dos procesos A y B, suponiendo que ambos se ejecutan indefinidamente en el tiempo, el proceso A debe recibir tiempo de ejecucin antes que B, tras esto, el proceso B debe recibir su oportunidad de ejecucin, dando paso de nuevo al proceso A y as sucesivamente.

proceso A |-- -- -| proceso B | -- -- -|_____________

El planificador de procesos, al desconocer la naturaleza de los procesos y sus objetivos, no dispone de informacin suficiente como para garantizar la secuencia de ejecucin descrita en el ejemplo anterior. Por tanto, suponiendo que ambos procesos se encuentran en estado preparado, podra seleccionar al proceso B para pasar a estado activo antes de seleccionar al proceso A, situacin que no es deseada. Emplea criterios de planificacin que no tienen en consideracin el objetivo de los procesos. Podemos decir que el planificador de

procesos desconoce cul es el propsito de los procesos, nicamente puede observar su comportamiento, es decir, si presentan un

comportamiento ms o menos interactivo.

Semforos Los semforos son un mecanismo de sincronizacin de procesos inventados por Edsger Dijkstra en 1965. Los semforos permiten al programador asistir al planificador del sistema operativo en su toma de decisiones de manera que permiten sincronizar la ejecucin de dos o ms procesos. A diferencia de los cerrojos, los semforos nos ofrecen un mecanismo de espera no ocupada. Los semforos son un tipo de datos que estn compuestos por dos atributos:

Un contador, que siempre vale >= 0. Una lista de procesos(lista formada por el PCB de cada proceso), inicialmente vaca.

Y disponen de dos operaciones bsicas que pasamos a describir en pseudocdigo:


down(semforo s){ si s.contador == 0: aade proceso a s.lista proceso a estado bloqueado sino: s.contador--}

Ntese que siempre que queramos forzar una transicin de un proceso a estado bloqueado, tenemos que hacer que dicho proceso realice una operacin down sobre un semforo cuyo contador vale cero.
up(semforo s) { si hay procesos en s.lista retira proceso de s.lista proceso a estado preparado sino: s.contador++}

Ntese que una operacin up sobre un semforo en el que hay procesos en su lista resulta en que se retire uno de los procesos (el que ms tiempo lleva en la lista), realizando ste la transicin a estado preparado. Es un error frecuente pensar que una operacin up resulte en que el proceso retirado de la lista pase a estado activo. Recuerde que las transiciones de estado activo a preparado y viceversa son siempre controladas por el planificador del sistema operativo. Adems, se disponen de un constructor y un destructor que permiten la creacin y la liberacin de un semforo.

Monitores Son mecanismos de sincronizacin de nivel ms alto que semforos. La construccin se realiza a nivel de lenguaje de programacin que controla el acceso a datos compartidos. Un tipo monitor tiene un conjunto de operaciones definidas por el programador que gozan de la caracterstica de exclusin Un monitor es una estructura del lenguaje cuyas principales caractersticas son:

Los datos son privados. Ofrecen una serie de mtodos pblicos para acceder a dichos datos. En cada momento slo puede haber un proceso activo en algn mtodo del monitor, es decir, ejecutando cdigo de esos mtodos pblicos del monitor. Seria equivalente a decir que el recurso que queremos compartir se declara como monitor. Los procesos que usan el monitor son independientes unos de otros y cuando deseen usar el recurso, llamarn a los mtodos del monitor que implementen la operacin que se desea ejecutar.

Permiten organizar procesos en espera mediante:

Variables de condicin: lista de procesos inicialmente vaca.


7

Primitivas: wait(c), aade el proceso p invocante a c y proceso p bloquea; signal(c), selecciona a uno de los procesos en c y lo pone en preparado.

class recursoCompartido { private int recursoCompartido; private Semaforo s = 1; public int get(void){ int ret; down(s); ret = recursoCompartido; up(s); return ret; }

#1 #2 #3 #4 #5

public void set(int valor){ down(s); #1 recursoCompartido = valor; #2 up(s); #3 } }

Como vemos, los monitores se implementan con semforos, son una abstraccin de los mismos.

Seccin Crtica Una seccin crtica se trata de una seccin del cdigo que puede ser ejecutada por un nico proceso o hilo simultneamente. Un ejemplo de seccin crtica es la seccin de cdigo en la que se accede a un recurso compartido. Para evitar el acceso simultneo a la seccin crtica se emplean mecanismos que garantizan la exclusin mutua. La exclusin mutua se debe realizar de forma coordinada y eficiente, para ello se requiere:

No ms de un proceso por seccin crtica y recurso compartido.

El mismo proceso no puede usar el mismo recurso compartido indefinidamente.

Todo proceso debe entrar antes o despus a usar el recurso. Si el recurso est sin uso, cualquiera que lo requiera dispondr de l inmediatamente.

Si hay varios esperando usar el recurso y ste se libera, uno de los que estaba esperando lo usar durante un tiempo determinado. Para llevar esto a cabo se necesita un protocolo que indique cuando el

recurso est libre y cuando est siendo ocupado. El problema de la seccin crtica consiste en disear un protocolo que los procesos puedan usar para cooperar de esta forma. Cualquier solucin al problema de la seccin crtica deber satisfacer los tres requisitos siguiente: Exclusin mutua.- Si el proceso Pi est ejecutndose en su seccin crtica, los dems procesos no pueden estar ejecutando sus secciones crticas. Progreso.- Si ningn proceso est ejecutando su seccin crtica, y algunos procesos desean entrar en sus correspondientes secciones crticas, slo aquellos procesos que no estn ejecutando sus secciones restantes pueden participar en la decisin de cul ser el siguiente que entre en su seccin crtica, y esta seleccin no se puede posponer indefinidamente. Espera limitada.- Existe un lmite en el nmero de veces que se permite que otros procesos entren en sus secciones crticas despus de que un proceso haya hecho una solicitud para entrar en su seccin crtica y antes de que la misma haya sido concedida.

Se usan dos mtodos generales para gestionar las secciones crticas en los sistemas operativos: 1. Kernels apropiativos.- Permite que un proceso sea desalojado mientras se est ejecutando en modo kernel. 2. Kernels no apropiativos.- No apropiativo no permite que un proceso que se est ejecutando en modo kernel sea desalojado.

GESTIN DE MEMORIA PRINCIPAL La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. La Memoria Principal es un depsito de datos a los que se puede acceder rpidamente y que son compartidos por la CPU y los dispositivos de E/S.

10

Para ejecutar un programa es preciso cargarlo en la memoria; mientras se ejecuta, el programa accede a las instrucciones y datos que estn en la memoria; en algn momento el programa termina y su espacio de memoria se declara disponible, y el siguiente programa puede cargarse y ejecutarse. Es importante para mejorar el grado de utilizacin de la CPU que varios programas estn cargados en memoria. El S.O en lo referente a la gestin de memoria se encarga de:

Saber cules partes de la memoria se estn usando actualmente y quin las est usando.

Decidir cules procesos se cargarn en la memoria cuando se disponga de espacio.

Asignar y liberar espacio de memoria segn se necesite. La memoria es una gran tabla de palabras o bytes que se referencian

cada una mediante una direccin nica. Este almacn de datos de rpido

11

acceso es compartido por la CPU y los dispositivos de E/S, es voltil y pierde su contenido ante fallos del sistema. El SO es el responsable de:

Conocer qu partes de la memoria estn siendo utilizadas y por quin Decidir qu procesos se cargarn en memoria cuando haya espacio disponible

Asignar y reclamar espacio de memoria cuando sea necesario

Hay dos tipos de tiempos cuando hablamos de Memoria: Tiempo de acceso. Tiempo de finalizacin de una peticin menos el tiempo de inicio de la peticin. Tiempo de ciclo de la memoria. Desde que finaliza una peticin hasta que se inicia la siguiente peticin. Este se ve detenidamente por el Hardware.

Monoprogramacin Con la llegada de la monoprogramacin y de los sistemas operativos se hace necesario gestionar la memoria de manera que los programas que se queran cargar a la memora no pisen (borren,...) la

12

memoria reservada al sistema operativo. Cuando se terminaba un proceso comienza el siguiente. Programa en C Compilacin Programa ejecutable No hay nada que gestionar, solamente no preocupamos en coger el programa y ejecutarla.

Formas de gestionar la memoria por ubicar varios procesos den la memoria Principal

Particiones continuas de Tamao Fijo Consiste en coger la MP y dividirla en trozos de tamao fijos que quedan definidas en el momento que se carga el sistema operativo hasta que lo cambies hay que reiniciar el sistema para que sepa que lo has cambiado. No hace falta que sean del mismo tamao. En cada particin se ubicar un proceso. Se piensa en hacer colas de procesos relativas al tamao de los procesos de la cola (p. ej. cola de procesos de 128K). Pero este sistema hace que se malgaste memoria principal, pero de dos formas:

Fragmentacin Interna: Malgasta memoria principal. El espacio que se pierde en la particin da que el programa no llega a aprovechar el espacio de la particin.

Fragmentacin Externa: Se produce cuando hay suficiente espacio libre pero no podemos asignar memoria a un proceso en espera porque las particiones vacas son muy pequeas y las adecuadas no estn vacas (en las particiones que los puedes juntar y tendras espacios suficientes para ubicar otros procesos, pero que sin juntar estos espacios, no puedes inserta).

13

Particiones continuas de tamao variable La memoria se crea las particiones que necesita el proceso. Se crean segn el tamao de los procesos que se ubicarn. Para evitar la fragmentacin exterior, en este caso se har servir la compactacin para recorrer los datos, pero esto tiene un elevado coste de T. 64K

Caractersticas:

compactacin RL registre limite + RB registro base + direcciones relativas @ rel + asignacin dinmica procesos relativas Los procesos han de ser reublicables porque hay esta compactacin, hay que trabajar con asignacin dinmica y no esttica.

Paginacin Otra forma de gestionar la memoria posterior a las Particiones contiguas de tamao variable. Es una tcnica que intenta disminuir los espacios vacos. Es 1 tcnica q palia el inconveniente q haba hasta ahora. Este inconveniente se encuentra en memoria un espacio grande para poder ubicar todo el proceso de forma contigua. Permite ubicar un proceso en memoria teniendo espacio disponible, para estar separado. Para poder llevar a cabo necesitamos una Tabla de Pginas. Aqu viene indexada, en donde est ubicada la primera posicin(donde se guarda el inicio del flame).
Tabla de Paginacin

(Memoria Lgica)

(Memoria

14

Proceso A P0 P1 P2 P3 2K 2K 2K 2K

Proceso A @ F5 @ F3 @ F7 @ F0

Real) F0 (A) P3 F1 (B) P0 F2 (B) P1 F3 (A) P1 F4 2K 2K 2K 2K

Proceso B P0 P1 P2 P3

Tabla de Pag Proceso B @ F1 @ F2 @ F3 F6 (B) P2 F7 (A) P2 F8 F9

(A) F5 P0

En la tabla, un array, se encuentran les direcciones de memoria de los frames correspondientes a cada una de les pginas de los procesos: (1,2,3,...) ---> (frame3,frame1,frame5,...). Por ejemplo: la pgina 1 del proceso est contenido al frame 3 de memoria. El nico problema de la paginacin es que se puede producir fragmentacin interna cuando por ejemplo tenemos un proceso de 7 kb, y los frames son de 2kb, de manera que la ltima pgina dejar 1kb libre dentro del ltimo frame. Cada PCB guardar donde se encuentra la tabla (direccin en donde comienza). Cuntos procesos tendremos? n Cuntas direcciones relativas tendremos en los procesos? n

15

Cada PCB de cada proceso guardar los registros fronteras el de lnea y el da la pagina a ms de estar registrados las tablas de paginacin de los procesos. Necesitamos tantas tablas de pagina como procesos que tiene. Pero hay una fragmentacin interna porque hay procesos q no son iguales a los marcs y hay espacio q se desaprovecha. Podemos dividir mucho + los frames para aprovechar espacio perdido en memoria pero lo que hara es aumentar la Tabla de Pginas. En el proceso pasa a ser una direccin relativa a una direccin absoluta, para que se pueda acceder a la Memoria Principal.

Soluciones propuestas para Aumentar el Rendimiento:

Si tenemos un registro en el procesador que nos guardar la tabla de procesos se dedicar un registro (Registro Base) donde se guarda

En el momento que se cargue el proceso se guardar la tabla de direcciones del microprocesador y guardar la informacin en la PCB anterior para acceder directamente la tabla de registro de pginas. (nos guarda la direccin de la tabla de pginas del proceso activo)

En vez de q la tabla de pginas, solamente conservaremos las direcciones de las pginas que se utilizan con ms frecuencias de las tablas de pginas (en memoria cach) y as se carga mucho ms rpido.
PA PB P0 P2 @f @f

Proceso

Pag

@F

16

P1 P2

P3 P2

@F0 @F1

Cuando se llene la tabla sustituir los que son menos visitados por otros. Tambin se puede hacer en vez con los ms visitados por los ltimos accedidos.

En sistemas pequeos y los procesos pequeos en vez de tener la tablas de pginas en memoria principal se guardan en registros y estos registros se llaman registros asociativos. Paginacin Compartida La paginacin es un sistema q nos permite compartir informacin entre diferentes procesos con la utilizacin de unos bits adicionales que se aaden a las entradas de las tablas de pagina. Se necesitarn, bits de proteccin que indiquen el tipos de acceso, que se puede realizar sobre una pagina y bits de validez que indicarn si el contenido de la pagina ha estado modificado o no.
Tabla de Paginacin Proceso 1 @F0 @F2 Tabla de Paginacin Proceso A @ F0 @ F2 NOM + PUS2 Editor

@F3 @F5

@ F4 @ F6

(Memoria Real) F0 (A) P0

17

F1 F2 P1 F3 (PO1) P2 F4 (PO2) P2 F5 (A) P2 F6 F7

Segmentacin La paginacin parte sin mirar nada, corta por tamao no mira si corta un bucle, puede producir fragmentacin interna en la ltima pgina del proceso. Para evitarlo aparece la segmentacin que divide el proceso de una forma lgica y racional.(no por donde toca, por medidas). Un programa est formado por varios ficheros o segmentos, por partes lgicas: Programa Principal, funciones, Tratamientos de error, de ficheros, tiene reas para destinada para guardar la pila de invocacin de procedimientos, las variables locales, las variables globales. Tambin se puede mejorar el rendimiento de la segmentacin validar haciendo uso de la Memoria cache para almacenar las entradas de los segmentos ms utilizados. Tambin como en sistema anterior en sistemas pequeos se puede utilizar los Registros Asociativos.

18

Sistemas combinados Segmentacin - Paginada: Es un sistema que se aplica en una mquina Ej: (GE 685 MULTICS) ERROR ERROR Flames (RLTS)Registro Lmite Tabla del Segmento Cuantos segmentos tiene el proceso. (RBTS)Registro Base Tabla de Segmentacin guarda en donde comienza la tabla del Segmento del proceso en ejecucin. P= (desplazamiento respecto al segmento. =d- DIV Tamao Pagina d'= (desplazamiento respecto a la pagina) =d MOD Tamao Pagina

Jerarqua de Memoria Se conoce como jerarqua de memoria a la organizacin piramidal de la memoria en niveles que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basndose en el principio de cercana de referencias. Los puntos bsicos relacionados con la memoria pueden resumirse en:

Cantidad Velocidad Coste

La cuestin de la cantidad es simple, cuanto ms memoria haya disponible, ms podr utilizarse. La velocidad ptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya

19

tiempos de espera entre clculo y clculo, utilizados para traer operando o guardar resultados. En suma, el coste de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible. Como puede esperarse los tres factores compiten entre s, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son vlidas:

A menor tiempo de acceso mayor coste. A mayor capacidad menor coste por bit. A mayor capacidad menor velocidad.

Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercana de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria ms rpida. Los niveles que componen la jerarqua de memoria habitualmente son:

Nivel 0: Registros Nivel 1: Memoria cach Nivel 2: Memoria principal Nivel 3: Memorias flash Nivel 4: Disco duro (con el mecanismo de memoria virtual) Nivel 5: Cintas magnticas Consideradas las ms lentas, con mayor capacidad. Nivel 6: Redes(Actualmente se considera un nivel ms de la jerarqua de memorias)

20

Administracin de la Memoria Virtual La Memoria Virtual es una tcnica que puede implementar el administrador de memoria con soporte de paginacin para aumentar el grado de multiprogramacin. Para ello se emplea una zona en disco conocida como zona de intercambio o swap para descargar en ella segmentos o pginas que se encuentran en memoria principal. La zona de intercambio se implementa siguiendo dos posibles estrategias:

Se destina una parte del disco reservada explcitamente para ello. En este caso, dicho espacio de memoria no puede ser empleado para almacenar informacin til del usuario. Los sistemas operativos tipoUnix implementan esta estrategia.

Se emplea un fichero oculto que puede tener un tamao fijo(donde dicho espacio estar reservado y el usuario no podra hacer uso de el) o variable para almacenar las pginas descargadas. Los sistemas operativos de tipo-Microsoft implementan esta aproximacin. La tcnica de memoria virtual se manifiesta cuando toda la

memoria principal est en uso y por tanto, no existe espacio libre para cargar una cierta pgina que es requerida por un proceso. Ante esta situacin, el mecanismo de memoria virtual permite seleccionar una pgina vctima que ser descargada a la zona de intercambio. De esta manera se libera memoria principal para poder cargar la pgina que nuestro proceso en estado activo requiere. La seleccin de las pginas vctima se hace en base a diferentes criterios que veremos en esta unidad didctica. Por tanto, en caso de que un proceso activo requiera una pgina o segmento que est descargado en la zona de intercambio, hay que seleccionar una pgina vctima de otro proceso, preferentemente en estado preparado o bloqueado, que ser descargada en disco para hacer espacio a la pgina requerida.

21

Los tiempos de descarga y recarga de pginas tienen una penalizacin considerable. Esto se debe a los tiempos de acceso al dispositivo disco magntico son mucho mayores que los de la memoria principal. En general, un buen criterio de reemplazo de pginas debe no descargar pginas que vayan a ser necesitadas en poco tiempo, reduciendo as la cantidad de accesos a disco asociados a la descarga y recarga de pginas. Paginacin 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.

22

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: 1. La tabla de pginas puede ser demasiado grande. 2. La asociacin debe ser rpida.

23

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.

Algoritmos de reemplazo de pginas Con el uso del mtodo de paginacin se puede llegar a saturar la memoria si se incrementa demasiado el nivel de multiprogramacin. Por ejemplo, si se corren seis procesos, cada uno con un tamao de diez pginas de las cuales en realidad slo utiliza cinco, se tiene un mayor uso del CPU y con marcos de sobra. Pero pudiera suceder que cada uno de esos procesos quiera usar las diez pginas resultando en una necesidad de 60 marcos, cuando solo hay 40 disponibles. Esto provoca sobre-asignacin y mientras un proceso de usuario se est ejecutando, ocurre un fallo de pgina. El hardware se bloquea con el sistema operativo, el cual checa en sus tablas internas y se da cuenta que es un fallo de pgina y no un acceso ilegal de memoria. El sistema operativo determina si la pgina est residiendo en disco, pero tambin determina que no hay marcos de memoria disponibles en la lista de marcos libres. Al ocurrir el fallo de pgina, el sistema operativo debe elegir una pgina para retirarla de la memoria y usar el espacio para la pgina que se necesita para desbloquear el sistema y que el hardware pueda seguir trabajando. Si la pgina por eliminar de la memoria fue modificada, se

24

debe volver a escribir al disco para mantener la informacin actualizada; de lo contrario, si la pgina no fue modificada no es necesario rescribir la informacin a disco y la pgina que se carga simplemente se escribe sobre la pgina a borrar en memoria. La figura 8 muestra grficamente un intercambio de pginas entre la memoria principal y el disco (memoria secundaria).

Segmentacin Otra opcin para el manejo de la memoria es usar una forma de liberar al programador de la tarea del control de las tablas en expansin y contraccin, de la misma forma que la memoria virtual elimina la preocupacin por organizar el programa en una serie de proyectos. Esto se puede lograr dotando a la mquina de varios espacios independientes de direcciones llamados segmentos. Cada segmento tiene una serie lineal de direcciones, desde 0 hasta cierto mximo. La longitud de cada segmento puede variar de 0 hasta un mximo permitido. Los distintos segmentos pueden tener y de hecho tienen por lo general, longitudes distintas. Adems, la longitud de un segmento puede variar durante la ejecucin. La longitud de un segmento de la pila puede crecer si algo entra a la pila y decrecer si algo sale de ella. Puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los dems. En la figura 13 podemos ver una lista de comparacin entre la paginacin y la segmentacin. La segmentacin tambin facilita el uso

de procedimientos o datos compartidos entre varios procesos. Un ejemplo comn son las bibliotecas compartidas (Shared DLLs). Es frecuente que las estaciones de trabajo modernas que ejecutan sistemas avanzados, con ventanas, tengan bibliotecas grficas de tamao muy grande que se compilan casi en todos los programas. En un sistema segmentado,

25

la biblioteca grfica se puede colocar en un segmento y compartirse entre varios procesos, sin necesidad de tenerla en el espacio de direcciones de cada proceso. Aunque tambin es posible tener bibliotecas compartidas sin los sistemas con paginacin pura, es mucho ms complejo. De hecho, estos sistemas simulan la segmentacin.

Segmentacin pura La implantacin de la segmentacin difiere del caso de la paginacin en un sentido esencial: las pginas tienen un tamao fijo y los segmentos no. La figura 14 muestra un ejemplo de memoria fsica que contiene al principio 5 segmentos. Consideremos que el segmento 1 se elimina y su lugar se ocupa por el segmento 7, que es menor. El rea que queda entre el segmento 7 y el 2 es un hueco. Luego, el segmento 4 se reemplaza por el segmento 5 y el segmento 3 es reemplazado por el segmento 6. Despus de que el sistema est en ejecucin durante cierto tiempo, la memoria quedar dividida en varios bloques, algunos con segmentos y otros con huecos.

Considerando

Paginacin

Segmentacin

Necesita saber el programador si est utilizando esta tcnica?

No

Cuntos espacios lineales de direcciones existen?

Muchos

Puede el espacio total de direcciones exceder el tamao de la memoria fsica?

Pueden distinguirse los procedimientos y los datos, adems de protegerse en forma independiente?

No

26

Pueden adecuarse con facilidad las tablas con tamaos fluctuantes?

No

Se facilita el uso de procedimientos compartidos entre los usuarios?

No

Para qu se invent esta tcnica?

Para obtener un gran espacio lineal de direcciones sin tener que adquirir ms memoria fsica

Para permitir que los programas y datos fueran separados en espacios independientes de direcciones y poder proporcionar la proteccin y uso de objetos compartidos

Comparacin de paginacin y segmentacin Este fenmeno de fragmentacin externa o checkboarding,

desperdicia la memoria correspondiente a los huecos, pero es fcilmente corregido mediante el uso de la compactacin. De esta forma los huecos son unificados, generando as un hueco de tamao suficiente para albergar algn otro segmento ms.

Segmentacin con paginacin: MULTICS En el sistema MULTICS, una direccin lgica est formada por un nmero de segmento de 18-bit y un offset de 16 bit. Aunque este esquema crea un espacio de direccin de 34-bit, la sobrecarga en la tabla de segmentos es tolerable; solo se requiere de las suficientes localidades en la tabla de segmentos como haya segmentos, puesto que no debe haber localidades vacas. Sin embargo, con segmentos de palabras de 64K, es donde cada una consiste de 36 bits, el tamao promedio de segmento puede ser grande y se podra presentar un problema de fragmentacin externa. Aunque no lo fuera, el tiempo de bsqueda para ubicar un segmento, usando primer ajuste o mejor ajuste, puede ser prolongado. Lo que puede causar

27

desperdicio de memoria debido a la fragmentacin externa, o desperdicio de tiempo por las largas bsquedas o ambas. La solucin al problema es paginar los segmentos. La paginacin elimina la fragmentacin externa y convierte el problema de ubicacin en algo trivial: cualquier frame desocupado puede ser usado para una pgina deseada. En MULTICS, cada pgina consiste de palabras de 1K. En consecuencia, el offset del segmento (16 bits) es dividido en un nmero de pgina de 6 bit y un offset de pgina de 10 bit. El nmero de pgina se indexa en la tabla de pginas para obtener el nmero de frame. Finalmente, el nmero de frame es combinado con el offset de pgina para formar una direccin fsica. El esquema de esto se muestra en la figura 15. Para ver el grafico, utilize la opcin "Bajar trabajo" del menu superior

Segmentacin paginada en el GE 645 (MULTICS) Ahora se debe de tener una tabla de pginas individual para cada segmento. Sin embargo, dado que cada segmento est limitado en tamao por su ubicacin en la tabla de segmentos, la tabla de pginas no tiene que ser de tamao completo, solo requiere de los espacios que son realmente necesarios. Al igual que en la paginacin, la ltima pgina de cada segmento, por lo general no estar totalmente llena. En consecuencia, se tiene, en promedio, una fragmentacin interna de media pgina por segmento.

Segmentacin con paginacin: Intel 386 El sistema operativo IBM OS/2 de 32 bits es un sistema operativo que corre con las arquitecturas del procesador Intel 386 y 486. El 386 una la segmentacin con paginacin para su manejo de memoria. El nmero

28

mximo de segmentos por proceso es de 16K y cada segmento puede llegar a ser de hasta 4 gigabytes. El tamao de pgina es de 4K. Para ver el grafico, utilize la opcin "Bajar trabajo" del menu superior

Traduccin de direccin en el Intel 80386 El espacio de direcciones lgicas est dividido en dos particiones. La primera particin consiste en segmentos de hasta 8K los cuales son privados para ese proceso. La segunda particin tambin consiste en segmentos de hasta 8K, los cuales son compartidos entre todos los procesos. La informacin de la primera particin es guardada en la tabla descriptora local (LDT Local Descriptor Table), y la de la segunda particin es guardada en la tabla descriptora global (GDT Global Descriptor Table). Cada registro de las tablas LDT y GDT consiste de 8 bytes con informacin detallada sobre un segmento en particular incluyendo la ubicacin base y longitud del segmento. Cada segmento es paginado, y cada pgina es de 4K. Una tabla de pginas puede entonces consistir de hasta un milln de registros. Dado que cada registro consiste de 4 bytes, cada proceso puede llegar a necesitar hasta 4 megabytes de espacio de direcciones fsica para la tabla de pginas nicamente. Claro est que no sera conveniente alojar la tabla de pginas contigua en la memoria principal. La solucin que es implementada en el esquema para el 386, es usar un esquema de paginacin de dos niveles. La direccin lineal es dividida en un nmero de pgina consistente de 20 bits y un offset de pgina de 12 bits. Siendo que se pagina a la tabla de pginas, el nmero de pginas es a su vez dividido en un apuntador para el directorio de pginas de 10 bit y en un apuntador para la tabla de pginas de 10 bit. La transicin de la direccin se puede apreciar en ms detalle en la figura 16.

29

En la Memoria Virtual nada ms se ubicar en la Memoria Principal las partes que se necesiten. Sus Partes Son:

Paginacin Segmentacin Sistemas combinados Paginacin Segmentada Segmentacin Paginada

Ventajas:

El rendimiento de la Multiprogramacin. El tiempo de carga de un proceso en Memoria Principal es menor.

Caractersticas importantes de la Memoria Virtual: Carga Cuando en un proceso se carga un proceso que se utilice. Como se sabe que parte se ha de cargar: mediante la ejecucin se generar una direccin y nos dar una peticin de una direccin de memoria. Puede ser de dos maneras: Carga por peticin: A mediad que se hace se mira si existe esa parte en memoria Carga por Anticipacin: Adivina lo que necesita. Nunca se lleva a trmino, porque el sistema operativo no puede adivinar lo que tiene que ejecutar, puede cargar un proceso que al final no se ejecutar.

Colocacin

30

Si el sistema est trabajando en paginacin y me pidan una pgina y no est colocada en memoria, en donde se colocar, En que frame de memoria? En el primero que est libre (Todos los frames son de igual medida). Si fuese segmentacin Dnde se puede colocar? Buscar en memoria un frame en que se tenga mayor e igual tamao para que haya menor fragmentacin. Sustitucin Cuando no se tiene espacio en la Memoria para cargar un programa y para ello se ha de sustituir. Para saber que segmento o pgina a de ser sustituida (cambiada), se ha de utilizar FIFO Primer proceso en entrar primero en salir LRU Least Recently Used El menos recientemente usado, para este se utilizan diferentes tcnicas: Contadores de Hardware: utilizaremos un registro del procesador se ir contando cada vez que se hace una peticin de pgina. Dentro de las tablas de pgina se ha de aadir un campo en el que sea un contador.
T.P P3 P5 T.S. @F5 @F9 Contador 4 3

Matrices de bits: Se necesita una matriz cuadrada de n bits en donde n es el nmero de frames que tiene la memoria. Se coge la peticin de la pagina se pone a 1 las filas y la misma columna a 0. Y as con todas.
0 0 0 1 2 0 3 4

31

1 2 1 3 4 1

0 0 0 0 1 1

Se hara por el sistema binario el que tenga el valor binario ms bajo es la candidata a borrarse de la memoria. Por Pila: Se hara ordenando los procesos cuando se van utilizando
P1 P3 P2 P1

LFN(Least Frequently Used) El menos frecuentemente usado. Cada cierto tiempo pone el contador a 0 y se irn borrando cuando a la siguiente vez que el contador se ponga a 0 tenga algn proceso a 0 quiere decir que se utiliza menos.

Criterios de Reemplazamiento de pginas Hasta ahora, hemos visto el disco duro es una pieza clave para el sistema operativo. Por ejemplo los No siempre se utiliza el disco duro (DD), para guardar informacin si no que tambin se puede utilizar para el tratamiento de la informacin. Se pueden realizar pequeas peticiones para el disco duro.

32

GESTIN DE MEMORIA SECUNDARIA

El almacenamiento

secundario (memoria

secundaria,

memoria auxiliar o memoria externa) es el conjunto de dispositivos (aparatos) y medios (soportes) de almacenamiento, que conforman el subsistema de memoria de una computadora, junto a la memoria principal. El almacenamiento secundario es una forma permanente, masiva y necesaria para guardar los datos. Esta forma garantiza la permanencia de datos a falta del suministro continuo de energa, sin embargo el acceso a la informacin (datos) es ms lento que en el caso de una memoria primaria. No deben confundirse las "unidades o dispositivos de

almacenamiento" con los "medios o soportes de almacenamiento", pues los primeros son los aparatos que leen o escriben los datos almacenados en los soportes. La memoria secundaria es un tipo de almacenamiento masivo y permanente (no voltil), a diferencia de la memoria RAM que es voltil; pero posee mayor capacidad de memoria que la memoria principal, aunque es ms lenta que sta. El proceso de transferencia de datos a un equipo de cmputo se le llama "procedimiento de lectura". El proceso de transferencia de datos desde la computadora hacia el almacenamiento se denomina

"procedimiento de escritura". En la actualidad para almacenar informacin se usan principalmente tres 'tecnologas': 1. Magntica (ej. disco duro, disquete, cintas magnticas); 2. ptica (ej. CD, DVD, Blu-ray Disc, etc.)

33

1. Algunos dispositivos combinan ambas tecnologas, es decir, son dispositivos de almacenamiento hbridos, por ej., discos Zip. 3. Memoria Flash (Tarjetas de Memorias Flash y Unidades de Estado slido SSD)

Dispositivos (Unidades) y soportes (medios) de Almacenamiento: Dispositivos o Unidades Soportes o Medios

Disquetera o Unidad de Discos Discos Flexibles o Disquetes (de 3" Flexibles (Floppy Disc Drive, FDD) o 5") Unidad de Disco Rgido (Hard Disc Discos Rgidos o Discos Duros Drive, HDD) Unidad de Cintas Magnticas (Tape Cintas magnticas de Audio, Video Drive) (Videocasete) o Datos Lectora o Grabadora de Discos CD (CD-ROM, CD-R, CD-RW), DVD pticos (DO) o Unidad de DO (DVDR, DVDRW), Blu-ray Lector de tarjetas de memoria Unidades Flash Tarjetas de Memorias Flash Unidades de Estado Slido (SSD)

Caractersticas

Capacidad de almacenamiento grande. No se pierde informacin a falta de alimentacin. Altas velocidades de transferencia de informacin. Mismo formato de almacenamiento que en memoria principal. Siempre es independiente del CPU y de la memoria primaria. Debido a esto, los dispositivos de almacenamiento secundario, tambin son conocidos como, Dispositivos de Almacenamiento Externo.

34

ARCHIVO Son los algoritmos y estructuras lgicas utilizadas para poder acceder a la informacin que tenemos en el disco. Cada uno de los sistemas operativos crea estas estructuras y logaritmos de diferente manera independientemente del hardware. El desempeo de nuestro disco duro, la confiabilidad, seguridad, capacidad de expansin y la compatibilidad, estar en funcin de estas estructuras lgicas. Fat 12: Es el sistema de archivos de DOS, y es con el que formateamos los disquetes. Fue muy utilizado en las primeras PCs. Fat 16: Este sistema de archivos tenia muchas limitaciones, por ejemplo si el disco duro era mayor de 2 GB, era imposible particionarlos y no usaba nombre largos en los archivos, solo 8 caracteres. Fat 32: Fue utilizado a partir de 1997, y pudo ser utilizado en Windows 98, pero a medida que el tamao de los discos duros se incrementaba, surgieron nuevas limitaciones. Se llamo Fat32, por que utiliza nmeros de 32 bits para representar a los clusters en lugar de los 16 en los sistemas anteriores.

NTFS
35

Archivos NTFS

Especialmente creado para usarlo en Windows NT, es mas complejo que los FAT. El propsito era satisfacer la demanda y necesidades de de seguridad y eficacia para servidores y otras aplicaciones en red. No tiene limitaciones de tamao clusters y en general en el disco. Una ventaja de este sistema de archivos es que tiene un sistema antifragmentacin. Linux:

Este sistema de archivos trabaja de manera totalmente distinta, las particiones del disco se colocan en el directorio raz. Podemos incluso tener diferentes particiones y cada una de ellas tener su propio sistema de archivos. Un sistema de archivos es un mtodo para el almacenamiento y organizacin de archivos de computadora y los datos que estos contienen, para hacer ms fcil la tarea encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localizacin fsica de los archivos. Ms formalmente, un sistema de archivos es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la

36

organizacin jerrquica, la manipulacin, el acceso, el direccionamiento y la recuperacin de datos. Los sistemas de archivos comparten mucho en comn con la tecnologa de las bases de datos. Los sistemas de archivos pueden ser representados de forma textual (ej.: el shell de DOS) o grficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos. El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados fsicamente en pequeos bloques de pocos bytes) y directorios, manteniendo un registro de qu bloques pertenecen a qu archivos, qu bloques no se han utilizado y las direcciones fsicas de cada bloque. Los sistemas de archivos pueden ser clasificados en tres categoras: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propsito especial. Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext 4, ReiserFS, XFS, etc.

Administracin de archivos por el sistema operativo

37

Debido a su importancia, es necesario que un sistema operativo tenga la capacidad de leer, escribir, acceder y mantener la integridad de un sistema de archivos. Un sistema de archivos provee al usuario con una abstraccin que le permitir crear con facilidad colecciones de datos llamados archivos. Estas colecciones debern tener los siguientes requisitos o propiedades:

Existencia a largo tiempo: Los archivos debern ser almacenados sobre una unidad de almacenamiento y debern permanecer all aun cuando el usuario apague el ordenador.

Debern tener la capacidad de ser compartidos: Los archivos tendrn nombres que los identifique y debern poseer permisos de acceso los cuales permitirn el compartimiento controlado entre procesos.

Debern poseer una estructura definida: Dependiendo del tipo de sistema de archivos, un archivo deber poseer una estructura definida y conveniente; permitiendo que los archivos puedan ser organizados en orden jerrquico o en cualquier otro orden para reflejar su relacin con otros archivos. El sistema de archivos como hemos dicho, posee una abstraccin

que permite realizar varias operaciones sobre los archivos. Entre estas operaciones tenemos:

Crear un archivo: El usuario o un proceso podr crear un nuevo archivo el cual tomar una posicin dentro de la estructura del sistema de archivos.

Borrar un archivo: Un archivo podr ser borrado de la estructura. Abrir un archivo: Un proceso podr abrir un archivo permitiendo el acceso a la informacin contenida por dicho archivo. El proceso podr ejecutar varias funciones sobre la informacin del archivo como leer, escribir, reemplazar, etc.

Cerrar un archivo: Un proceso puede cerrar el archivo dejando atrs los privilegios de acceder a dicho archivo. Leer: Un proceso podr leer parte de la informacin contenida en un archivo

38

Escribir: Un proceso podr aadir o reemplazar informacin en un archivo. Los sistemas de archivos tambin mantienen una estructura de

atributos asociada con cada uno de los archivos la cual provee informacin sobre la situacin actual de un archivo, quien es su dueo, el tamao del archivo, cuando fue creado, cuando fue modificado, privilegios de acceso, entre otros. Funciones del Sistema de Archivos.

Fig. 5.1.4 Manipulacin de archivos. Los usuarios deben poder crear, modificar y borrar archivos, se deben poder compartir los archivos de una manera cuidadosamente controlada. El mecanismo encargado de compartir los archivos debe proporcionar varios tipos de acceso controlado:

39

Ej.: Acceso de Lectura , Acceso de Escritura , Acceso de Ejecucin , varias combinaciones de estos, etc. Se debe poder estructurar los archivos de la manera ms

apropiada a cada aplicacin. Los usuarios deben poder ordenar la transferencia de informacin entre archivos. Se deben proporcionar posibilidades

de respaldo y recuperacin para prevenirse contra:


La prdida accidental de informacin. La destruccin maliciosa de informacin. Se debe poder referenciar a los archivos mediante Nombres

Simblicos, brindando Independencia de Dispositivos. En ambientes sensibles, el sistema de archivos debe proporcionar posibilidades de Cifrado y Descifrado. El sistema de archivos debe brindar una interfase favorable al usuario:

Debe suministrar una visin lgica de los datos y de las funciones que sern ejecutadas, en vez de una visin fsica. El usuario no debe tener que preocuparse por:
o o o o

Los dispositivos particulares. Dnde sern almacenados los datos. El formato de los datos en los dispositivos. Los medios fsicos de la transferencia de datos hacia y desde los dispositivos.

40

Componentes de un Sistema de Archivo Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados con el manejo de Archivos. En UNIX se define un File System como un sistema de software dedicado a la creacin, destruccin, organizacin y lectura, escritura y control de acceso de los archivos, funcionalmente los componentes de un sistema de archivos son lenguajes de comandos, interpretador de comandos, manejador del almacenamiento secundario, sistema de entrada y salida y mecanismos de respaldo y recuperacin. En general, un Sistema de Archivos est compuesto por: Mtodos De Acceso, Administracin De Archivos, Administracin De Almacenamiento Secundario, Mecanismos De Integridad. Mtodos De Acceso. Se ocupan de la manera en que se tendr acceso a la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. Administracin De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, as como para hacer referencia a ellos. Administracin De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. En la siguiente figura se muestra un ejemplo de la administracin de espacio en un disco duro.

41

Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la informacin de un archivo, de tal manera que solo la informacin que deba estar en el, se encuentre ah. Mecanismos de Organizacin Lgica. Contiene las diferentes rutinas y comandos a travs de los cuales el usuario podr estructurar sus archivos virtuales. Directorio de Identificadores. Convierte los identificadores simblicos de los archivos en identificadores internos, los cuales apuntarn a su descriptor o a una estructura que permite encontrar el archivo. Sistemas Tericos de Archivos. Su objetivo es el de activar y desactivar a travs de las rutinas de abrir y cerrar archivos y verifica el modo de acceso. Mecanismos de Organizacin Fsica. Traslada las direcciones lgicas en direcciones fsicas correspondientes a las estructuras de memoria secundaria y los buffers en memoria principal necesarios para la transferencia de datos. Mecanismos de E/S. Por cada peticin de acceso al archivo real, este mecanismo genera la secuencia de operaciones elementales de entrada y salida que se necesita. SCHEDULING E/S. En este nivel es donde se tiene el nmero de peticiones pendientes as como de las que se estn realizando y lleva el control y asignacin de tiempo de CPU a las diferentes peticiones de E/S.

42

Organizacin de los Archivos Se refiere a las diferentes maneras en las que puede ser organizada la informacin de los archivos, as como las diferentes maneras en que sta puede ser accesada. Dado que hay 2 niveles de visin de los archivos (fsico y lgico), se puede hablar tambin de 2 aspectos de organizacin de archivos: Organizacin de archivos lgicos y de archivos fsicos.

Organizacin de un sistema de archivos utilizando directorios

El sistema de archivos est relacionado especialmente con la administracin del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco. Una forma de organizacin de un sistema de archivos puede ser la siguiente:

Se utiliza una raz para indicar en qu parte del disco comienza el directorio raz . El directorio raz apunta a los directorios de usuarios. Un directorio de usuario contiene una entrada para cada uno de los archivos del usuario.

43

Cada entrada de archivo apunta al lugar del disco donde est almacenado el archivo referenciado. Los nombres de archivos solo necesitan ser nicos dentro de un

directorio de usuario dado. El nombre del sistema para un archivo dado debe ser nico para el sistema de archivos. En sistemas de archivo jerrquicos el nombre del sistema para un archivo suele estar formado como el nombre de la trayectoria del directorio raz al archivo. Organizacin Lgica La mayora de las computadoras organizan los archivos en jerarquas llamadas carpetas, directorios o catlogos. (El concepto es el mismo independientemente de la terminologa usada.) Cada carpeta puede contener un nmero arbitrario de archivos, y tambin puede contener otras carpetas. Las otras carpetas pueden contener todava ms archivos y carpetas, y as sucesivamente, construyndose un estructura en rbol en la que una carpeta raz (el nombre vara de una computadora a otra) puede contener cualquier nmero de niveles de otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto para la carpeta raz, que a menudo no tiene nombre). El uso de carpetas hace ms fcil organizar los archivos de una manera lgica. La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran dentro de estas cinco categoras:

44

Pilas

Archivo de pilas: Registro de longitud variable. Conjunto variable de campos. Orden cronolgico

Es la forma ms fcil de organizar un archivo. Los datos se recogen en el orden en que llegan. Su objetivo es simplemente acumular una masa de datos y guardarla. Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo debe ser autodescriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de cada campo debe indicarse implcitamente con delimitadores, explcitamente incluidos como un subcampo ms. El acceso a los registros se hace por bsquedas exhaustiva y son fciles de actualizar. Si se quiere encontrar un registro que contiene un campo particular y un valor determinado, es necesario examinar cada registro de la pila hasta encontrar el registro deseado. Si se quieren encontrar todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse el archivo entero. Se aplica cuando los datos se recogen o almacenan antes de procesarlos o cuando no son fciles de organizar. Esta clase de archivo aprovecha bien el espacio cuando los datos almacenados varan en tamao y estructura. Fuera de estos usos limitados, este tipo de archivos no se adapta a la mayora de las aplicaciones.

45

Archivos secuenciales

Archivo secuencial: Registro de longitud fija. Conjunto fijo de campos en orden constante. Orden secuencial por el campo clave.

Es la forma ms comn de estructura de archivos. Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo nmero de campos de tamao fijo con un orden determinado. Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada uno son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo identifica (generalmente es el primero de cada registro). Los registros se almacenan en secuencia por la clave. Se utilizan normalmente en aplicaciones de procesos por lotes, ya que es la nica organizacin de archivos que se puede guardar tanto en cintas como en discos. Para las aplicaciones interactivas que incluyen peticiones o actualizaciones de registros individuales, los archivos secuenciales no son ptimos. El acceso requiere una bsqueda secuencial de correspondencias con la clave. Si el archivo entero o gran parte de l pueden traerse a la memoria principal de una sola vez, se podrn aplicar tcnicas de bsquedas ms eficientes. Al acceder un registro de un archivo secuencial grande, se produce un procesamiento extra y un retardo considerable.

46

La organizacin fsica del archivo en una cinta o disco se corresponde exactamente con la organizacin lgica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos registros en un archivo de pila separado, es llamado archivo de registro o archivo de transacciones. Una alternativa es organizar fsicamente el archivo secuencial como una lista enlazada, en cada bloque fsico se almacena uno o ms registros y cada bloque del disco contiene un puntero al bloque siguiente. La insercin de un nuevo registro implica la manipulacin de puntero, pero no requiere que el nuevo registro ocupe una posicin particular del bloque fsico. Archivos secuenciales indexados

Archivo secuancial indexado.

Los registros se organizan en una secuencia basada en un campo clave presentando dos caractersticas, un ndice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento. El ndice proporciona una capacidad de bsqueda para llagar rpidamente al registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero est integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor. La estructura ms simple tiene como ndice un archivo secuencial simple, cada registro del archivo ndice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo principal. Para

47

encontrar un campo especifico se busca en el ndice hasta encontrar el valor mayor de la clave que es iguale o precede al valor deseado de la clave, la bsqueda continua en el archivo principal a partir de la posicin que indique el puntero. Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al archivo, tambin se aade al archivo de desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro segn la secuencia lgica se actualiza con un puntero del registro nuevo en el archivo de desbordamiento, si el registro inmediatamente anterior est tambin en el archivo de desbordamiento se actualizar el puntero en el registro. Para procesar secuencialmente un archivo completo los registros del archivo principal se procesarn en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso continua en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva el acceso donde se abandon en el archivo principal. Archivos indexados

Archivo indexado.

48

A los registros se accede solo a travs de sus ndices. No hay resticcin en la ubicacin de los registros, al menos un ndice contiene un puntero a cada registro y pueden emplearse registros de longitud variable. Se suelen utilizar dos tipos de ndices, uno exhaustivo que contiene una entrada para cada registro del archivo principal y se organiza como un archivo secuencial para facilitar la bsqueda, el otro ndice es parcial que contiene entrada a los registros donde est el campo de inters. Con registro de longitud variable, algunos registros no contendrn todos los campos y cuando se aade un registro al archivo principal, todos los archivos de ndices deben actualizarse. Archivos directos o de dispersin Explotan la capacidad de los discos para acceder directamente a cualquier bloque de direccin conocida. Se requiere un campo clave en cada registro. Los archivos directos son muy usados donde se necesita un acceso muy rpido, donde se usan registros de longitud fija y donde siempre se accede a los registros de una vez. Organizacin Fsica Los datos son arreglados por su adyacencia fsica, es decir, de acuerdo con el dispositivo de almacenamiento secundario. Los registros son de tamao fijo o de tamao variable y pueden organizarse de varias formas para constituir archivos fsicos.

49

Cinta magntica.

Cintas magnticas En este dispositivo el archivo fsico esta formado por un conjunto de registros fsicos, y los bloques estn organizados en forma consecutiva, ya que se asigna en igual forma. Adems tales registros puede contener etiquetas que permitan un mayor control sobre los datos almacenados, y son las siguientes: - Etiqueta de volumen.- Contiene informacin que permite identificar la cinta, el nombre del propietario y cualquier informacin general requerida. - Etiqueta de archivo.- Se utilizan por pares para indicar el inicio y fin del archivo, contiene informacin acerca del nombre del archivo, fecha de creacin. - Etiqueta de usuario.- Sirven para guardar informacin adicional de importancia para el usuario; no son procesados por el sistema operativo. Discos Magnticos.

Discos magnticos

50

El archivo fsico en un disco es una coleccin de registros fsicos de igual tamao, los cuales pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo. En la organizacin contigua, el archivo utiliza registros fsicos contiguos, siguiendo la secuencia normal de direcciones. La organizacin encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un campo destinado para indicar la direccin del siguiente registro, o sea, para lo que se ha llamado enlace o liga. Otra forma de organizacin es la tabla de mapeo que consiste en una tabla de apuntadores a los registros fsicos que forman el archivo. La organizacin fsica de un archivo en el almacenamiento secundario depende de la estrategia de agrupacin y de la estrategia de asignacin de archivos. Para elegir una organizacin de archivos se deben tener en cuenta ciertos criterios: Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros, entonces el acceso rpido para la recuperacin de un nico registro es una preocupacin mnima. Un archivo almacenado en CD-ROM nunca ser actualizado, por lo que la facilidad de actualizacin no se considera. Para la economa de almacenamiento , debera existir una mnima redundancia de los datos, sta redundancia es el medio fundamental para incrementar la velocidad de acceso a los datos. Este tipo de organizacin muestra a su vez, 2 aspectos importantes: Mtodos de Asignacin de Espacio Libre y Asignacin de Espacio de Almacenamiento del Archivo.

51

Mtodos de Asignacin de Espacio Libre Un mtodo de asignacin de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no estn siendo ocupados. Para el control del espacio libre se puede utilizar como base alguno de los mtodos tericos: Vector de Bits, Lista Ligada, Por Agrupacion y por Contador.

Vector de Bits Se tiene un arreglo de bits, el nmero de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 estn ocupados su representacion ser:

Fig. 5.4.8 Ejemplo de un vector de bits. Lista Ligada Existe una cabecera en la que se tiene la direccin del primer sector vacio, ese sector a su vez, tiene un apuntador al siguiente bloque, y as sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura.

52

Ejemplo de una lista ligada

POR AGRUPACIN Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacios, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores, observe la figura.

Ejemplo de asignacin por agrupacin.

53

POR CONTADOR Aqu, por cada conjunto de bloques contiguos que estn vacios, se tiene por cada apuntador, un nmero de inicio y el tamao del grupo de sectores vacios.

Ejemplo de asignacin por contador

Mtodos de Asignacin de Espacio en Disco Un mtodo de asignacin de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar bsicamente la identificacin del archivo, sector de inicio y sector final. Para el control del espacio ocupado en disco se puede utilizar como base alguno de los mtodos tericos: Asignacin Contigua, Asignacin Ligada, Asignacin Indexada.

54

Asignacin Contigua Este mtodo consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo:

Ejemplo de asignacin contigua

Directorio El Directorio contiene un conjunto de datos por cada archivo referenciado.

Ejemplo de directorio jerrquico Una posibilidad es que el directorio contenga por cada archivo

55

referenciado:

El nombre. Sus atributos. Las direcciones en disco donde se almacenan los datos.

Otra posibilidad es que cada entrada del directorio contenga:


El nombre del archivo. Un apuntador a otra estructura de datos donde se encuentran los atributos y las direcciones en disco.

Representacin grfica de un directorio jerrquico Al abrir un archivo el S. O.:


Busca en su directorio el nombre del archivo. Extrae los atributos y direcciones en disco. Graba esta informacin en una tabla de memoria real. Todas las referencias subsecuentes al archivo utilizarn la informacin de la memoria principal.

El nmero y organizacin de directorios vara de sistema en sistema:

Directorio nico: el sistema tiene un solo directorio con todos los archivos de todos los usuarios Un directorio por usuario: el sistema habilita un solo directorio

56

por cada usuario.

Un rbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarqua general.

Un solo directorio compartifo por todos los usuarios

57

CONCLUSIN

De acuerdo a los antes expuesto podemos determinar la funcin y procedimiento que se lleva a cabo en los procesos de Almacenamiento y Administracin de los Sistemas Operativos y por ende su participacin en la Gestin de Memoria Principal y Secundaria adems de determinar los parmetros y mtodos a seguir para realizar un mejor desenvolvimiento del sistema operativo de un ordenador. Se pudo determinar cuales son las definiciones y propiedades de cada uno de los medios de almacenamiento tanto fsico como digital, cada una de las tcnicas mejor utilizadas para para llevar un mejor

control de la informacin contenida dentro de un ordenador, a partir de lo cual se puede afianzar el conocimiento en los Sistemas Operativos,

adems de prepararnos mejor en la carrera de Informtica Hoy da, el desarrollo tecnolgico es una realidad en el pas, vinculado a un elemento importante que se beneficia, participa y apropia de los conocimientos del colectivo ,adems de dar acceso a mejores oportunidades en todo el proceso.

58

REFERENCIAS BIBLIOGRFICAS

Gestin de Memoria Principal y Secundaria Disponible: http: //www.es.wikipedia.org/wiki/Gestin de Memoria [Consulta 2013].

Sistemas Operativos Disponible: http: //www. /site/sistemasoperativos9/ [Consulta 2013, Marzo18].

ites.google.com

Sistemas Operativos Modernos Disponible: http://www.monografias.com / Computacin / Sistemas Operativos. [Consulta 2013, Febrero 15].

59