Sie sind auf Seite 1von 13

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

SISTEMAS OPERATIVOS
Un Sistema Operativo puede expresarse desde dos puntos de vista (complementarios): como mquina extendida o virtual ms fcil de entender y programar que el hardware puro, y como. administrador de recursos, entendiendo por .recursos. a los componentes tanto fsicos como lgicos: el procesador, memoria, discos, ratones o archivos. Un sistema operativo es un grupo de programas que actan como intermediarios entre el usuario (en su sentido amplio) de un computador y el hardware del mismo. El propsito de un sistema operativo es crear un entorno en el que el usuario pueda ejecutar programas de forma cmoda y eficiente debiendo acompaar la evolucin de los sistemas de cmputo, brindando: portabilidad, interoperabilidad, interconectividad, ambiente multitareas, multiusuario, seguridad, proteccin (entre usuarios y desde el exterior), fcil administracin, independencia de dispositivo, abstraccin del hardware. Definicin Puede definirse un Sistema Operativo como un conjunto de programas de control y servicios que actual como intermediario entre el usuario y el hardware de la computadora, gestionando los recursos del sistema y optimizando su uso. El Sistema Operativo presenta al usuario una maquina virtual que es mas facil de manejar y programar que el hardware que el administra.

USUARIO1

USUARIO2

USUARIO3

USUARIO4

compilador

editor de textos

Bases de datos

Planilla de calculo

PROGRAMA DEL SISTEMA Y DE APLICACION

Representacin del Sistema Operativo como intermediario entre usuarios/aplicaciones y el hardware

SISTEMA OPERATIVO
HARDWARE DE LA COMPUTADORA

FUNCIONES PRINCIPALES DEL SISTEMA OPERATIVO Las principales funciones se pueden resumir en las siguientes: Administracin de procesos Regula y maneja las diferentes tareas que uno o varios usuarios deben llevar a cabo. En este sentido, y de acuerdo al tipo de S.O. que se trate, ubica en memoria principal una tarea cuando corresponde y elimina a otras.

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

Administracin de la memoria principal Cuando se trata de S.O. multitarea, se encarga de que cada tarea tenga su lugar en la misma. Controla los tiempos de permanencia, controla las particiones, las regula cambindoles tamao, etc. Administracin de las memorias secundarias Realiza en control de la transferencia de informacin entre un dispositivo secundario y la memoria principal y viceversa. Administracin de archivos Maneja la ubicacin y procesamiento de los archivos que se encuentran en la computadora, permitindoles diferentes operaciones (reubicacin, borrado, copias, etc.). Administracin de los dispositivos de E/S Maneja el flujo de informacin entre la computadora y los perifricos, tales como la llegada de datos desde el teclado, discos, etc. y viceversa, envo de datos al monitor, CDs, etc. Control de errores Monitorea cuando en alguno de los programas en ejecucin se ha producido una operacin que dio lugar a un error, emitiendo un mensaje hacia el usuario. Trabajo con redes Un sistema distribuido es una coleccin de procesadores que no comparten memoria, dispositivos perifricos ni el reloj. Ms bien, cada procesador tiene su propia memoria local y su propio reloj, y se comunica con los otros procesadores a travs de distintas lneas de comunicacin, como buses de alta velocidad o lneas telefnicas. Sistema de proteccin Es preciso proteger cada proceso de las actividades de otros usuarios. El hardware de direccionamiento de memoria asegura que un proceso slo pueda ejecutarse dentro de su propio espacio de direcciones. El temporizador cuida que ningn proceso pueda controlar y monopolizar la CPU indefinidamente. Los registros que controlan los dispositivos no estn accesibles a los usuarios, a fin de proteger la integridad de los diferentes perifricos.

CLASIFICACION DE LOS SISTEMAS OPERATIVOS Se los clasifica de acuerdo a como estn construidos o desarrollados: CLASIFICACION POR SU ESTRUCTURA INTERNA - S.O. Monolticos: Todas las funciones que lleva a cabo estn implementadas en el ncleo del mismo, es decir, en un solo programa. Las operaciones principales y otras que realiza, estn a cargo de una sola funcin o programa, constituido por mltiples subprogramas que son las que realizan las diferentes tareas.

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

- S.O por capas o estratificados : Son los diseados con una estructura jerrquica, en donde cada tarea la realiza un programa que esta en un determinado nivel. En este caso, cuando un programa falla, los otros podran seguir funcionando, sin alterar el desenvolvimiento global del S.O.

CLASIFICACION POR LOS MODOS DE OPERACIN -Monousuarios: Solo un usuario puede interactuar con la computadora. Este tipo de S.O. puede ser monotarea o multitarea. Un ejemplo de S.O. monousuario multitarea es el antiguo DOS (Disk Operating System), que fue uno de los primeros en ser difundidos ampliamente. Un S.O. mono usuario multitarea es Windows, donde podemos activar varios programas (Word, Excel, etc. en diferentes ventanas). -Multiusuarios: Varios usuarios usan y demandan el CPU. Es S.O. se encarga de administrar a los mismos para que todos sean atendidos con la mayor eficiencia posible. -Multiprogramacin: En este tipo, el S.O. se encarga de distribuir los trabajos en espera, para que el procesador los atienda. En sistemas de multiprogramacin la cpu alterna de programa en programa, en un esquema de seudo paralelismo, es decir que la cpu ejecuta en cierto instante un solo programa, intercambiando muy rpidamente entre uno y otro. En este tipo de operacin, se pueden diferenciar: - Tiempo compartido: Son los ms difundidos, usando diferentes modos para que el CPU atienda a todos los procesos en espera de ser ejecutados. Como en la mayora de ellos existen varios usuarios demandando el uso del CPU, (modo multiusuario) y el procesador trabaja a mucha velocidad, cada usuario tiene la apariencia que el es el nico que atiende la computadora. Esta propiedad se la implementa para evitar que un trabajo o programa monopolice el uso del CPU. Por ello se asigna a cada tarea un tiempo mximo de atencin del CPU, a cuyo trmino se abandona al programa actual y se contina con otro que est en espera. Ese tiempo asignado se denomina quantum. - Tiempo Real: Son los que llevan a cabo procesos generalmente de control de lneas de fabricacin o prestacin de servicios. Estos tipos son bastante ms complejo que el resto, ya que deben tener una confiabilidad muy alta. Este tipo ser analizado en el tema Sistemas SCADA. Como se ha descripto, un sistema multiprogramacin atiende a varios programas que esperan ser ejecutados por el CPU. Esto implica que, ante ciertos eventos, dicha atencin pasa de un programa a otro. Supongamos que existen en memoria tres programas (p1, p2 y p3) en un sistema de este tipo. El primero que se atiende es p1. Este ocupa el CPU hasta que termina su tiempo (modo tiempo compartido) o comienza a realizar tareas de entrada/salida que son lentas. En este caso, tambin el CP lo abandona y contina con la atencin de p2. Con p2, ocurre lo mismo, hasta que es atendido p3. Cuando este es abandonado por las causas descriptas, vuelve a p1, completando la atencin de todos los programas. El cambio de la atencin de un programa a otro, se denomina cambio de contexto, y cuando sucede, son guardados en espacios especiales todas las variables y registros que tenia el programa saliente, para poder reanudar posteriormente su ejecucin. CLASIFICACION POR LOS SERVICIOS OFRECIDOS 3

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

-Monotarea: Permiten la ejecucin de un solo programa o trabajo. Hasta que este no finalice, ningn otro podr ser atendido. Un ejemplo es el DOS, que solo poda atender un programa por vez. -Multitarea: Atienden varias tareas en forma concurrente (no simultneamente), todas ellas residentes en la memoria RAM de la computadora. La rapidez de ejecucin del microprocesador, hace que un usuario que ejecuta un programa tenga la sensacin que es el nico que esta siendo atendido por el CPU. Pueden ser tipo monousuario o multiusuario. Ejemplos del tipo monousuario Multitarea: Windows, OS2, etc. Ejemplos Multiusuario multitarea: UNIX; LINUX, etc.

Por el numero de usuarios

MONOUSUARIOS MULTIUSUARIOS

Sistemas Operativos Por Servicios Por el numero de tareas

MONOTAREAS MULTITAREAS

Por el numero de procesadores

UNIPROCESO MULTIPROCESO

CLASIFICACION POR LA FORMA DE OFRECER LOS SERVICIOS -Sistemas Centralizados: En este tipo de sistemas, se configura una computadora llamada mainframe de mucha capacidad de procesamiento, en la cual son atendidos muchos usuarios en forma concurrente. El ejemplo tpico de estos S.O. es el UNIX o tambin el LINUX (una copia autorizada de UNIX). Los usuarios solo manejan terminales llamadas bobas (sin procesamiento ni memoria). Todo lo que un usuario ejecuta, est el mainframe llamado host o computadora servidor. -Sistemas en red: Son S.O. que mantienen a dos o ms computadoras vinculadas a travs de algn medio de comunicacin (fsico o no) con el objetivo primordial de poder compartir los diferentes recursos y la informacin (impresoras, scanner, plotters, archivos, programas, etc.) Actualmente se usan estos sistemas cuando se necesita tener una sola base de datos actualizada, por ejemplo en bancos u organismos prestadores de servicios. -Sistemas Distribuidos: Son S.O. que permiten distribuir el trabajo (generalmente de varios usuarios) entre varios procesadores, haciendo mas eficiente la prestacin del servicio. Puede ocurrir que este conjunto de procesadores se encuentren en el mismo equipo o en equipos distintos, siendo esta configuracin transparente al usuario. 4

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

PROGRAMAS Y PROCESOS
Se estudi que en los sistemas multiprogramacin o multiusuarios, un mismo procesador o computadora esta atendiendo a varios usuarios en forma concurrente. Una forma de realizarlo, es ubicar los programas de esos usuarios en memoria RAM y atenderlos mediante mecanismos de planificacin diversos. Uno de los mas empleados en la multiprogramacin, es incorporacin del tiempo compartido. A cada tarea o programa se le asigna un tiempo (quantum) para ser atendida por el CPU. Dicha tarea puede ser desalojada del procesador por varios motivos: -Terminacin del proceso -Realizacin de trabajos lentos de entrada salida de la tarea, en cuyo caso el CPU delega en otros programas la realizacin de las mismas. -Terminacin del tiempo asignado a esa tarea, con la cual queda en espera para continuar ejecutndose hasta su conclusin. Vamos a diferenciar que significa un proceso y un programa: Programa: es el conjunto de instrucciones que debe ser ejecutada por el CPU. Algunas de estas instrucciones pueden ser operaciones muy lentas para el microprocesador (ej. entrada de datos desde un teclado, salida de datos a una impresora, etc.). Proceso: Es un programa que esta siendo actualmente ejecutado por el CPU. En los sistemas multiusuarios, al existir varios programas a ser ejecutados (por ejemplo prog1, prog2, prog3, etc.), el S.O. debe administrar que todos tengan atencin por parte del CPU. Si un programa esta siendo ejecutado, por ej. prog1, y tiene una operacin de entrada/salida, el S.O. har que el CPU deje de atenderlo y pasara a ejecutar el prog2. En consecuencia, el prog1, prog2, etc., son programas que se transforman en procesos cuando son ejecutados, computndose el tiempo que tardan en completar su ejecucin. En este tiempo se incluyen las operaciones lentas de e/s. Un programa puede ser desalojado del CPU por varias razones: Terminacin del proceso Ingreso del proceso en operaciones lentas de entrada/salida, ante lo cual el CPU delega esos trabajos en otros subsistemas hasta que estas operaciones finalicen. Terminacin del tiempo asignado a cada programa, (quantum), en cuyo caso el mismo es sacado de memoria y puesto en disponibilidad para continuar cuando la cola de tareas en espera le permita acceder nuevamente a la ejecucin. Estos estados se muestran en la figura a continuacin:
(Los estados se muestran en crculos, mientras que las transiciones se indican con flechas)

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

proceso en ejecucion

Ejecucion o activo

Proceso terminado

Nuevo

proceso

Proceso listo para ejecutar

Proceso

suspendido

preparado

Un programa (proceso) nuevo ingresa y pasa al estado de preparado, es decir, listo para ser ejecutado cuando la planificacin del CPU le permita. Recordemos que hay muchos procesos esperando ser atendidos por el mismo. Una vez que el proceso esta en atencin por parte del CPU, tiene un tiempo mximo (quantum) para evitar que un programa monopolice el uso del mismo. Si en ese tiempo breve el programa no termino de ejecutarse, es removido de memoria pasando nuevamente al estado preparado, en donde hay varios procesos en cola demandando la atencin del CPU. El proceso es nuevamente atendido hasta su terminacin en sucesivos pasos como el descripto. Otro caso se presenta en el diagrama cuando el proceso pasa de proceso en ejecucin o activo a proceso suspendido. Este es el caso en que el programa realiza tareas de entrada/salida de datos, que son lentas, ante lo cual el CPU delega las mismas en otros subsistemas, quedando el proceso recibiendo y enviando datos. Cuando termina esta actividad, pasa al estado de preparado, o sea nuevamente listo para ser atendido por el CPU. Este es un diagrama simplificado ya que existen otras alternativas que pueden tenerse en cuenta pero no entran dentro del alcance de este curso. Resumiendo: Estado de los Procesos En tanto que un proceso ejecuta, cambia de estado: nuevo: el proceso es creado. - en ejecucin: las instrucciones estn siendo ejecutadas. - suspendido: el proceso est esperando que ocurra algn evento.

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

- preparado: el proceso est esperando ser asignado a la CPU. terminado: el proceso ha finalizado su ejecucin.

CRITERIOS DE PLANIFICACION Se estudian para las diferentes formas de atender a los programas, modos de atencin que garanticen la ecuanimidad en el despacho de los mismos. Existen criterios para medir la eficiencia de un algoritmo de planificacin de los que podemos nombrar: Maximizar el uso de la CPU: que se mantenga ocupada el mayor tiempo posible. Maximizar la Productividad (throughput), considerando que productividad (o rendimiento) es el nmero de procesos que se ejecutan por unidad de tiempo. Minimizar el Tiempo de retorno (turnaround time), que es el tiempo transcurrido desde que el proceso ingresa hasta que termina, sumando espera para entrar en memoria, en cola de procesos listos, ejecutndose en CPU y haciendo E/S. Minimizar el Tiempo de espera (waiting time), que es el tiempo que el proceso est en la cola de listos. Minimizar el Tiempo de respuesta (response time), que es el tiempo que transcurre desde que se presenta una solicitud hasta que se tiene respuesta. Es el tiempo que tarda en comenzar a responder, no incluyendo el tiempo de la respuesta en s. Lo ideal es maximizar el uso de la CPU y la productividad y minimizar los tiempos de retorno, respuesta y espera. Existen algunos algoritmos que son empleados para realizar la planificacin: Uno de los mas sencillos es el FIFO (FIRS INPUT FIRST OUTPUT ) El primero en llegar es el primero en ser atendido, en el cual no se libera el CPU hasta que no termina el proceso en ejecucin, y los tiempos de respuesta varan fuertemente de un momento a otro, segn el orden de llegada al CPU de los procesos. Por ejemplo, si se tienen 3 procesos con los siguientes tiempos de procesamiento: Proceso 1 : 18 unidades de tiempo Proceso 2 : 6 unidades de tiempo Proceso 3 : 6 unidades de tiempo si se ejecutan de acuerdo al algoritmo FIFO; Proceso 1 ----------------Proceso 2 --------------------Proceso 3 Si se estudia el tiempo medio de retorno,(es decir, el tiempo medio que tarda en finalizar un proceso), tendremos: (18 + 24 + 30) / 3 = 24 unidades de tiempo

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

Proceso 1 ( 18 u )

Proceso 2 ( 6 u )

Proceso 3 ( 6 u )

18 u 18 u + 6 u

18 u

24u

30u

18 u + 6 u + 6u

Si el orden de llegada hubiera sido otro, por ej: Proceso 2 ----------------Proceso 3 --------------------Proceso 1 el tiempo medio de retorno ser: tr = (6 + 12 + 30) / 3 = 16 unidades de tiempo

Otro tipo de algoritmo de planificacin es el SJF (Shortest Job First El trabajo mas corto primero ) que como su nombre no explicita, asigna al CPU al trabajo que requiere menor tiempo de proceso. El problema de este modo radica en saber cual de los procesos en espera de ser ejecutado tendr el menor tiempo de proceso. Se emplean para ello programas de prediccin que calculan el siguiente tiempo de ejecucin de un proceso. Pero tambin existe le riesgo que vayan incorporndose a la cola de espera procesos cortos, de manera que los procesos largos tarden mucho tiempo en ser atendidos por el CPU. Se emplean en ese caso las llamadas tcnicas de envejecimiento que aumentan la prioridad de los procesos que llevan mas tiempo inactivos. Algoritmo Round Robin: Es uno de los ms sencillos, equitativo y de uso ms amplio. No se establecen prioridades. Cada proceso tiene asignado un tiempo de ejecucin denominado quantum. Cuando se cumple dicho tiempo, y la tarea no ha sido concluida por el CPU, se guarda el estado de dicha tarea y se da paso a la siguiente. El proceso saliente pasa al final de la lista de procesos en espera, siendo reanudada su ejecucin cuando llegue su turno.

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

programa2

programa1

programa3

programa8 programa4

programa7

programa5

programa6

Como se muestra en la figura, si se esta ejecutando el programa1 y se agota su cantidad de quantum, se lo desalojara de la CPU y pasara a ejecutarse el programa2. Se continua as, hasta que termina el quantum del programa8, momento en el que se pasara nuevamente al programa1. Otros tipos de algoritmos estn basados en prioridades. En estos se asocia una prioridad a cada proceso y se asigna la CPU al trabajo con prioridad ms alta en cada momento. En los algoritmos llamados apropiativos (o expropiativos), si se esta ejecutando un proceso y entra uno de prioridad mayor, se requisa o expulsa al proceso en ejecucin, siendo reemplazado por el de mayor prioridad. Cuando el algoritmo es no apropiativo (o no expropiativo), se espera a que finalice el tiempo asignado a cada proceso para reemplazarlo en ese momento por el de mayor prioridad. ALGUNOS SISTEMAS OPERATIVOS SE IMLEMENTAN EN FORMA HIBRIDA COMBINANDO DIFERENTES ALGORITMOS DE PLANIFICACION. Uno de estos algoritmos de planificacin, es la planificacin MLQ (Multiple Level Queues Colas de Nivel Mltiple) . Estos se pueden planificar con un algoritmo basado en prioridades, aplicando SJF o Round Robin. Para su implementacin, se usan varias colas de procesos, una para cada prioridad.

PRIORIDAD 4

T41

T42

T43

T44

PRIORIDAD 3

T31

T32

T33

PRIORIDAD 2

T21

T22

T23

T24

PRIORIDAD 1

T11

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

Los procesos con prioridad ms alta (PRIORIDAD 4), se ejecutan primero y como hay cuatro procesos, (T41, T42, T43 y T44) el CPU se reparte utilizando el algoritmo Round Robin. Cuando estos procesos finalicen, se pasara a los de PRIORIDAD3, y as sucesivamente. En estos casos es conveniente aplicar el algoritmo de envejecimiento para los procesos de menor prioridad, ya que puede ocurrir que sigan ingresando en la cola de los de mayor prioridad (4), ms procesos, pudiendo no llegarse a ejecutar nunca los de prioridad ms baja (T11). Relacionemos la idea de apropiacin con los diferentes algoritmos vistos. - FCFS es no apropiativo. Cuando se le da la CPU a un proceso, este la mantiene hasta que decide liberarla, porque termino, o porque requiere I/O. - SJF puede ser apropiativo o no. Si mientras se esta ejecutando un proceso llega uno cuya prxima rfaga de CPU es mas corta que lo que queda de ejecutar del activo, puede existir la decisin de interrumpir el que se esta ejecutando o no. Al SJF apropiativo, se le llama shortest-remaining-time-first. (primero el de tiempo restante ms corto). - Prioridades puede ser apropiativo o no. Si mientras se esta ejecutando un proceso llega a la cola de ready un proceso de mayor prioridad que el que se esta ejecutando puede existir la decisin de interrumpir el que se esta ejecutando o no. Si es no apropiativo, en lugar de darle la CPU al nuevo proceso, lo pondr primero en la cola de ready. - Round Robin es apropiativo pues si el proceso excede el tiempo asignado, hay una interrupcin para asignarla la CPU a otro proceso.

GESTION DE MEMORIA EN SISTEMAS MULTIPROGRAMACION Los sistemas basados en la planificacin multiprogramada, ejecutan varios procesos en forma concurrente, necesitando cada uno de ellos residir en memoria para su atencin por parte del CPU. Es necesario entonces que cada programa tenga su lugar en memoria, debiendo haber tantos lugares como programas existan en demanda del CPU. En el momento que el proceso se ejecuta, ocupa un rea de memoria para hacer residir el programa y los elementos necesarios para el tratamiento por parte del CPU. El programa llamado gestor de memoria es la parte del Sistema Operativo encargado de asignar la memoria a los procesos y gestionar su uso. Debe proporcionar proteccin y uso compartido, es decir, debe proporcionar un espacio de memoria para cada proceso que lo necesite y controlar que ningn proceso trabaje en zonas de memoria que no le correspondan. Los criterios empleados para evaluar un gestor de memoria son: Memoria desaprovechada: Cuando el gestor de memoria asigna un segmento a cada tarea en un sistema multiprogramacin, se desperdician espacios de memoria por el proceso mismo y porque el segmento que corresponde a cada programa no coinciden exactamente entre ellos.

10

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

Complejidad en el Tiempo: Cuando el CPU debe leer para ejecutar algun programa, debe buscarlo entre los residentes en toda la memoria. El tiempo ocupado para esa busqueda es tiempo perdido que debe tenerse en cuenta al comparar o evaluar un gestor de memoria. Como en el caso del uso del CPU, existen diferentes algoritmos para la gestion de memoria. Particiones Estticas La opcin mas sencilla de realizar las asignaciones es dividir la memoria en m partes, del mismo o diferente tamao, de forma esttica (no varan el tamao de las particiones). Cuando se carga un programa, se le asignar la particin de memoria ms pequea disponible que pueda contenerlo. Cuando las particiones tienen tamaos diferentes, hay ms posibilidades de ajuste de cada programa dentro de su segmento. El problema de las particiones fijas es el SISTEMA OPERATIVO desaprovechamiento de memoria que lgicamente se produce porque todo un programa no ocupara toda la memoria asignada. Este desaprovechamiento se llama fragmentacin.

PROCESO 1

PROCESO 2

PROCESO 3 PROCESO 4

Particiones Dinmicas Con las particiones variables, el nmero, posicin y tamao vara de forma dinmica. Es decir, las particiones se acomodan a diferentes tamaos de programa. Con ello, la gestin de memoria es mucho ms eficiente, ya que el tamao de cada bloque se adapta a las necesidades de cada proceso, eliminndose la fragmentacin.
PROCESO 6

PROCESO 5

Memoria Virtual Consiste en dividir la memoria en bloques, haciendo residir en ellos los programas, pero dejando en el disco (memoria externa) algunos elementos que el mismo necesita para ser ejecutado por el CPU. En consecuencia, el S.O. guarda aquellas partes del programa de uso corriente en la memoria principal y el resto, en el disco. Como no todas las partes de un programa se utilizan al mismo tiempo, pueden cargarse solo aquellos que se van a utilizar inicialmente, para luego ir volcando en memoria los otros elementos que se necesiten en la medida que el programa se ejecute. Por ejemplo, si un proceso necesita 1 Mbyte de memoria para su ejecucin, se le puede asignar solo 512 Kbytes. Cuando el S.O. necesite un bloque que no se encuentre en memoria, tiene que desalojar la parte del programa residente actual, y traer desde el disco la parte del programa que necesita para continuar. A este proceso se lo conoce como swapping. 11

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

MEMORIA PRINCIPAL DISCO RIGIDO

Ventajas de la memoria virtual Permite trabajar con programas de mayor tamao que la memoria real (de all su nombre) Permite tener cargados mas programas a la vez Permite que los programas comiencen a ejecutarse antes Reduce la cantidad de intercambios de procesos (disco-memoria)

SISTEMA OPERATIVO

swap out
proceso1

ESPACIO DE LOS USUARIOS

swap in proceso2

Paginacin En los Sistemas Operativos de computadoras, los sistemas de paginacin de memoria dividen los programas en pequeas partes o pginas. Del mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y evita la externa. En un momento cualquiera, la memoria se encuentra ocupada con pginas de diferentes procesos, mientras que algunos marcos estn disponibles para su uso. El sistema operativo mantiene una lista de estos ltimos marcos, y una tabla por cada proceso, donde consta en qu marco se encuentra cada pgina del proceso. De esta forma, las pginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las pginas de otros procesos. En la tabla de pginas de un proceso, se encuentra la ubicacin del marco que contiene a cada una de sus pginas. Las direcciones lgicas ahora se forman como un nmero de pgina y de un desplazamiento dentro de esa pgina (conocido comnmente como offset). El nmero de pgina es usado como un ndice dentro de la tabla de pginas, y una vez obtenida la direccin del marco de memoria, se utiliza el desplazamiento para componer la direccin real o direccin fsica. Este proceso se realiza en una parte del computador especficamente diseada para esta tarea, es decir, es un proceso hardware y no software. Cuando un proceso solicita un dato que se encuentra en una pgina que no esta cargada en memoria, el S.O. carga la pagina solicitada. Si no tiene marcos o espacios libres, uno de los que esta en memoria ser desalojado y all se ubicara la pagina solicitada. Este tipo de trabajo se llama paginacin por demanda. Para la eleccin de cual pagina ser eliminada de memoria (en la demanda de sta), existen algunos criterios de reemplazo: FIFO (Primero en ingresar en memoria primero en ser desalojado) Consiste en elegir la pgina que lleve mas tiempo en memoria sin considerar cuando se la utilizo por ultima vez. LRU (Less Recently Used Usada menos recientemente)

12

UNIVERSIDAD NACIONAL DE TUCUMAN INDUSTRIALES INGENIERIA INDUSTRIAL ASCOETA

SISTEMAS INFORMATICOS Ing. RICARDO JORGE

Se tiene en cuenta cuales pginas han sido las ltimas usadas. Esas son las que no se desalojan. Las que no fueron usadas, son reemplazadas.

13

Das könnte Ihnen auch gefallen