Teoría de Sistemas operativos

download Teoría de Sistemas operativos

of 86

Transcript of Teoría de Sistemas operativos

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    1

    Este documento contiene informacin para el curso de Sistemas operativos recopilada de diversas fuentes en Internet

    Instituto Tecnolgico de Tuxtla Gutirrez

    Ingeniera en Sistemas Computacionales

    SISTEMAS OPERATIVOS

    Prof. Germn Ros Toledo

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    2

    Unidad I Introduccin a los sistemas operativos.

    INTRODUCCION:

    Sin el software una computadora es en esencia una masa metlica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar informacin, encontrar errores de ortografa e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general, en 2 clases: los programas de sistema, que controlan la operacin de la computadora en s y los programas de aplicacin, los cuales resuelven problemas para sus usuarios. El programa fundamental de todos los programas de sistema, es el Sistema Operativo, que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicacin.

    Un Sistema Operativo es un programa que acta como intermediario entre el usuario y el hardware de una computadora y su propsito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computacin se use de manera cmoda, y el objetivo secundario es que el hardware de la computadora se emplee de manera eficiente.

    Los sistemas operativos

    1.1 Concepto y definicin de Sistemas Operativos.

    Un Sistema Operativo es una parte importante de cualquier sistema de computacin. Un sistema de computacin puede dividirse en tres componentes: el hardware, el Sistema Operativo, los programas de aplicacin. El hardware (Unidad Central de Procesamiento (CPU), 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.

    Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definicin exacta, es decir una que sea estndar; a continuacin se presentan algunas:

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    3

    Se pueden imaginar un Sistema Operativo como los programas, instalados en el software o firmware, que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de cmputo"; los sistemas operativos ponen dicha capacidad de cmputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento.

    Los Sistemas Operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware de la computadora; adems de los procesadores, los medios de almacenamiento, los dispositivos de entrada/salida, los dispositivos de comunicacin y los datos.

    Un Sistema Operativo es un programa que acta como intermediario entre el usuario y el hardware de la computadora y su propsito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es, lograr que el sistema de computacin se use de manera cmoda, y el objetivo secundario es que el hardware de la computadora se emplee de manera eficiente.

    Un Sistema Operativo es un conjunto de programas que controla la ejecucin de programas de aplicacin y acta como una interfaz entre el usuario y el hardware de una computadora, esto es, un Sistema Operativo explota y administra los recursos de hardware de la computadora con el objeto de proporcionar un conjunto de servicios a los usuarios del sistema.

    En resumen, se podra decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son:

    Gestionar el hardware.- Se refiere al hecho de administrar de una forma ms eficiente los recursos de la mquina.

    Facilitar el trabajo al usuario.- Permite una comunicacin con los dispositivos de la mquina.

    El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de cdigo que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicacin y software variado.

    1.2 Caractersticas de los Sistemas Operativos.

    En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas:

    Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una computadora.

    Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera ms eficiente posible.

    Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio.

    Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    4

    computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

    Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo requiera.

    Organizar datos para acceso rpido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al

    usuario manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de computadoras.

    Procesamiento por bytes de flujo a travs del bus de datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil

    al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

    Tcnicas de recuperacin de errores. Evita que otros usuarios interfieran. El Sistema Operativo evita que los

    usuarios se bloqueen entre ellos, informndoles si esa aplicacin esta siendo ocupada por otro usuario.

    Generacin de estadsticas. Permite que se puedan compartir el hardware y los datos entre los

    usuarios.

    El software de aplicacin son programas que se utilizan para disear, tal como el procesador de palabras, lenguajes de programacin, hojas de clculo, etc.

    El software de base sirve para interactuar el usuario con la mquina, son un conjunto de programas que facilitan el ambiente plataforma, y permite el diseo del mismo.

    El Software de base est compuesto por:

    Cargadores. Compiladores. Ensambladores. Macros.

    1.3 Clasificacin de los sistemas operativos.

    Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas:

    Sistemas Operativos por lotes.

    Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    5

    sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

    Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos.

    Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento acadmico.

    Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes son:

    Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de lote.

    Permiten poca o ninguna interaccin usuario/programa en ejecucin.

    Mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas multiusuarios.

    No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de lnea.

    Conveniente para programas de largos tiempos de ejecucin (ej, anlisis estadsticos, nminas de personal, etc.).

    Se encuentra en muchas computadoras personales combinados con procesamiento serial.

    Planificacin del procesador sencilla, tpicamente procesados en orden de llegada.

    Planificacin de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.

    No requieren gestin crtica de dispositivos en el tiempo. Suelen proporcionar gestin sencilla de manejo de archivos: se

    requiere poca proteccin y ningn control de concurrencia para el acceso.

    Sistemas Operativos de tiempo real.

    Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos.

    Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el ramo automovilstico y de la electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy rpidamente.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    6

    Ejemplo de Tiempo Real

    Algunos ejemplos de Sistemas Operativos de tiempo real son: QNX, TR Linux, VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas:

    Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayora externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.

    Se utilizan en control industrial, conmutacin telefnica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.

    Objetivo es proporcionar rpidos tiempos de respuesta. Procesa rfagas de miles de interrupciones por segundo sin perder un

    solo suceso. Proceso se activa tras ocurrencia de suceso, mediante interrupcin. Proceso de mayor prioridad expropia recursos. Por tanto generalmente se utiliza planificacin expropiativa basada en

    prioridades. Gestin de memoria menos exigente que tiempo compartido,

    usualmente procesos son residentes permanentes en memoria. Poblacin de procesos esttica en gran medida. Poco movimiento de programas entre almacenamiento secundario y

    memoria. Gestin de archivos se orienta ms a velocidad de acceso que a

    utilizacin eficiente del recurso.

    Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea).

    Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    7

    resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin.

    Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno est usando el procesador, o un procesador distinto, es decir, involucra mquinas con ms de una UCP.

    Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.

    Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes:

    Mejora productividad del sistema y utilizacin de recursos. Multiplexa recursos entre varios programas. Generalmente soportan mltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios

    individuales. Requieren validacin de usuario para seguridad y proteccin. Proporcionan contabilidad del uso de los recursos por parte de los

    usuarios. Multitarea sin soporte multiusuario se encuentra en algunas

    computadoras personales o en sistemas de tiempo real. Sistemas multiprocesadores son sistemas multitareas por definicin ya

    que soportan la ejecucin simultnea de mltiples tareas sobre diferentes procesadores.

    En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

    La Multitarea

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    8

    Sistemas Operativos de tiempo compartido.

    Permiten la simulacin de que el sistema y sus recursos son todos para cada usuario. El usuario hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal del usuario.

    Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria.

    Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.

    Caractersticas de los Sistemas Operativos de tiempo compartido:

    Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseo asistido por computadora, procesamiento de texto, etc.

    Dan la ilusin de que cada usuario tiene una mquina para s. Mayora utilizan algoritmo de reparto circular. Programas se ejecutan con prioridad rotatoria que se incrementa con la

    espera y disminuye despus de concedido el servicio. Evitan monopolizacin del sistema asignando tiempos de procesador

    (time slot). Gestin de memoria proporciona proteccin a programas residentes. Gestin de archivo debe proporcionar proteccin y control de acceso

    debido a que pueden existir mltiples usuarios accesando un mismo archivos.

    Sistemas Operativos distribuidos.

    Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

    Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.

    Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

    Caractersticas de los Sistemas Operativos distribuidos:

  • Teor

    Prof. Germ

    Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software .

    Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios.

    Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de

    recursos. Servicios aadidos: denominacin global, sistemas de archivos

    distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.).

    Sistemas Operativos de red.

    Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travde algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema.

    El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posNetware.

    Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

    Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti

    Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software .

    operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de

    Servicios aadidos: denominacin global, sistemas de archivosdistribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos

    Sistemas Operativos de red.

    Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travde algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema.

    El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell

    Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

    Sistema operativo de Red

    gico de Tuxtla Gutirrez)

    9

    Coleccin de sistemas autnomos capaces de comunicacin y

    operacin de un S.C. y proporciona abstraccin de mquina

    Generalmente proporcionan medios para la comparticin global de

    Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos

    Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder

    El primer Sistema Operativo de red estaba enfocado a equipos con un procesador teriormente a procesadores Intel como Novell

    Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware,

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    10

    Sistemas Operativos Multiproceso.

    Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucci n, el otro procesador queda liberado para procesar otras instrucciones simultneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de mu ltiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimtrico: Una CPU principal retiene el control global de la computadora, as como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direccin ideal a seguir ya que la CPU principal poda conv ertirse en un cuello de botella. Multiproceso simtrico: En un sistema multiproceso simtrico, no existe una CPU controladora nica. La barrera a vencer al implementar el multiproceso simtrico es que los SO tienen que ser rediseados o diseados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimtrico ya estn disponibles y las extensiones simtricas se estn haciendo disponibles. Windows NT de Microsoft soporta multiproceso simtrico.

    Sistema Multiprocesador

    2.1 Metodologa de diseo

    Existen autores que son partidarios de un enfoque jerrquico para el diseo de sistemas operativos. En la base de la jerarqua se encuentra el hardware , en el siguiente nivel de la jerarqua (o en varios de los siguientes niveles en algunos diseos) estn las diferentes funciones del ncleo, las cuales se ven como si formaran una mquina ampliada, es decir, un computadora que ofrece no slo su lenguaje de mquina como apoyo al sistema operativo y a sus usuarios, sino tambin un grupo de funciones adicionales proporcionadas por el ncleo. Estas posibilidades adicionales se denominan a menudo primitivas.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    11

    Arriba del ncleo, en jerarqua, se encuentran los diferentes procesos del sistema operativo que trabajan en apoyo de los procesos de usuario; por ejemplo, los procesos de administracin de los dispositivos, que se encargan en la prctica de supervisar las operaciones de entrada/salida de los dispositivos del sistema para beneficio de los diversos usuarios. En la cima de la jerarqua se encuentran los procesos de usuario.

    Se ha visto que los diseos jerrquicos son ms fciles de depurar, modificar y verificar. En los diseos en que el ncleo est distribuido en varios niveles de jerarqua, elegir qu funcin colocar en cada nivel requiere un anlisis cuidadoso. En tales diseos, con frecuencia slo se permite hacer llamadas a funciones situadas jerrquicamente por debajo de quin hace la llamada; es decir, cada nivel slo puede llamar a las funciones que estn colocadas en el nivel inmediato inferior.

    Arquitectura del Sistema Operativo

    En los sistemas ms recientes existe la tendencia de colocar gran parte del ncleo en microcdigo. sta es una tcnica de seguridad efectiva, pues impide la alteracin del ncleo y con una cuidadosa codificacin se puede lograr que se ejecuten ms eficientemente las funciones del ncleo.

    2.2 Ncleo o Kernel y niveles de un sistema operativo

    El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas:

    Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para la gestin de memoria secundaria necesaria para la ejecucin de procesos.

    Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    12

    Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos.

    Nivel 4. Informacin o Aplicacin o Interprete de Lenguajes: Facilita la comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes.

    Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulacin de archivos con nombre, va asignando espacio y acceso de datos en memoria.

    El ncleo y los procesos

    El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalacin. Toda esta gestin la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema.

    El esquema general del mismo es el siguiente:

    Definicin y concepto de proceso. El Bloque de Control de Proceso (PCB) como imagen donde el sistema

    operativo ve el estado del proceso. Estados por los que pasa un proceso a lo largo de su existencia en la

    computadora. Operaciones que se pueden realizar sobre un proceso. Clasificacin de los procesos segn su forma de ejecucin, de carga, etc.

    Procesos

    Uno de los conceptos ms importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecucin junto con el entorno asociado (registros, variables, etc.). El corazn de un sistema operativo es el ncleo, un programa de control que reacciona ante cualquier interrupcin de eventos externos y que da servicio a los procesos, crendolos, terminndolos y respondiendo a cualquier peticin de servicio por parte de los mismos.

    Un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    13

    Prioridades

    Todo proceso por sus caractersticas e importancia lleva aparejadas unas determinadas necesidades de ejecucin en cuanto a urgencia y asignacin de recursos. Las prioridades segn los sistemas operativos se pueden clasificar del siguiente modo:

    Asignadas por el sistema operativo. Se trata de prioridades que son asignadas a un proceso en el momento de comenzar su ejecucin y dependen fundamentalmente de los privilegios de su propietario y del modo de ejecucin.

    Asignadas por el propietario. Estticas. Dinmicas.

    Prioridades de procesos

    El Ncleo del Sistema Operativo

    Todas las operaciones en las que participan procesos son controladas por la parte del sistema operativo denominada ncleo (core o kernel, en ingls). El ncleo normalmente representa slo una pequea parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el cdigo que ms se utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal slo cuando se necesitan.

    Los ncleos se disean para realizar el mnimo posible de procesamiento en cada interrupcin y dejar que el resto lo realice el proceso apropiado del sistema, que puede operar mientras el ncleo se habilita para atender otras interrupciones.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    14

    Resumen de las Funciones del Ncleo

    El ncleo de un sistema operativo normalmente contiene el cdigo necesario para realizar las siguientes funciones:

    Manejo de interrupciones. Creacin y destruccin de procesos. Cambio de estado de los procesos. Despacho. Suspensin y reanudacin de procesos. Sincronizacin de procesos. Comunicacin entre procesos. Manipulacin de los bloques de control de procesos. Apoyo para las actividades de entrada/salida. Apoyo para asignacin y liberacin de memoria. Apoyo para el sistema de archivos. Apoyo para el mecanismo de llamada y retorno de un procedimiento. Apoyo para ciertas funciones de contabilidad del sistema.

    Estructura Jerrquica del Sistema

    Una computadora que ofrece no slo su lenguaje de mquina como apoyo al sistema operativo y a sus usuarios, sino tambin un grupo de funciones adicionales proporcionadas por el ncleo.

    Arriba del ncleo, en jerarqua, se encuentran los diferentes procesos del sistema operativo que trabajan en apoyo de los procesos de usuario, que se encargan en la prctica de supervisar las operaciones de entrada/salida de los dispositivos del sistema para beneficio de los diversos usuarios.

    En los diseos en que el ncleo est distribuido en varios niveles de jerarqua, elegir qu funcin colocar en cada nivel requiere un anlisis cuidadoso. En tales diseos, con frecuencia slo se permite hacer llamadas a funciones situadas jerrquicamente por debajo de quien hace la llamada; es decir, cada nivel slo puede llamar a las funciones que estn colocadas en el nivel inmediato inferior.

    El bloque de control de procesos (PCB)

    El bloque de control de proceso (PCB) es una estructura de datos que contiene la informacin que permite al sistema operativo localizar toda la informacin importante sobre un proceso, incluyendo su estado actual, identificacin, prioridad, memoria, recursos, valores de los registros, etctera. El PCB define el proceso al sistema operativo.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    15

    Los sistemas operativos contienen mecanismos para realizar diversas operaciones sobre los procesos, como crear, destruir, reanudar, cambiar la prioridad, bloquear, despertar y despachar.

    La estructura del PCB

    Los subsistemas del Kernel

    El subsistema de archivos controla los recursos del sistema de archivos y tiene funciones como reservar espacio para los archivos, administrar el espacio libre, controlar el acceso a los archivos, permitir el intercambio de datos entre los archivos y el usuario, etc.

    El subsistema de control de procesos es el responsable de la planificacin de los procesos (scheduler), su sincronizacin, comunicacin entre los mismos (IPC inter process comunication) y del control de la memoria principal.

    Al mdulo gestor de memoria (swapping) se le conoce tambin como swapper.

    El planificador o scheduler se encarga de gestionar el tiempo de CPU que tiene asignado cada proceso. El scheduler entra en ejecucin cada cuanto de tiempo y decide si el proceso actual tiene derecho a seguir ejecutndose (esto depende de la prioridad y de sus privilegios).

    La comunicacin entre procesos puede realizarse de forma asncrona (seales) o sncrona (colas de mensajes, semforos).

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    16

    Por ltimo, el mdulo de control del hardware es la parte del kernel encargada del manejo de las interrupciones y de la comunicacin con la mquina. Los dispositivos pueden interrumpir a la CPU mientras est ejecutando un proceso. Si esto ocurre, el kernel debe reanudar la ejecucin del proceso despus de atender a la interrupcin. Las interrupciones no son atendidas por procesos, sino por funciones especiales, codificadas en el kernel, que son invocadas durante la ejecucin de cualquier proceso.

    Los subsistemas del Ncleo

    2.3 Interrupciones de Entrada y Salida

    Son iniciadas por hardware de entrada y salida. Estas interrupciones indican a la CPU el cambio de estado de un canal o dispositivo. Las interrupciones de E/S se producen cuando finaliza una operacin de E/S o cuando un dispositivo pasa al estado listo.

    2.4 Interrupciones del procesador

    Una interrupcin es un evento que altera la secuencia en que el procesador ejecuta las instrucciones. La interrupcin es generada por el hardware del sistema de cmputo. Cuando ocurre una interrupcin:

    El sistema operativo toma el control (es decir, el hardware pasa el control al sistema operativo).

    El sistema operativo guarda el estado del proceso interrumpido. En muchos sistemas esta informacin se guarda en el bloque de control de proceso interrumpido.

    El sistema operativo analiza la interrupcin y transfiere el control a la rutina apropiada para atenderla; en muchos sistemas actuales el hardware se encarga de esto automticamente.

    La rutina del manejador de interrupciones procesa la interrupcin. Se restablece el estado del proceso interrumpido (o del siguiente proceso). Se ejecuta el proceso interrumpido (o el siguiente proceso).

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    17

    Controlador de interrupciones

    Una interrupcin puede ser iniciada especficamente por un proceso en ejecucin (en cuyo caso se suele denominar trampa (trap), y se dice que est sincronizada con la operacin del proceso) o puede ser causada por algn evento que puede estar relacionado o no con el proceso en ejecucin (en cuyo caso se dice que es asncrona con la operacin del proceso). Los sistemas orientados hacia las interrupciones pueden sobrecargarse. Si ests llegan con mucha frecuencia, el sistema no ser capaz de atenderlas. En algunos sistemas orientados hacia el teclado, cada tecla presionada almacena en la memoria un cdigo de un byte y genera un interrupcin para informar a la UCP que un carcter est listo para ser procesado. Si la UCP no puede procesar el dato antes de que se presione la siguiente tecla, se pierde el primer carcter.

    Clases de Interrupciones

    Existen seis clases de interrupciones:

    Interrupciones SVC (supervisor call, llamadas al supervisor). Son iniciadas por un proceso en ejecucin que ejecute la instruccin SVC. Una SVC es una peticin generada por el usuario de un servicio particular del sistema, como realizar una operacin de entrada/salida, obtener ms memoria o comunicarse con el operador del sistema. El mecanismo de las SVC ayuda a proteger el sistema operativo de las acciones de los usuarios. Un usuario no puede entrar arbitrariamente al sistema operativo, sino que debe solicitar un servicio por medio de una SVC. El sistema operativo est al tanto de todos los usuarios que intentan rebasar sus limites y puede rechazar ciertas peticiones si el usuario no tiene los privilegios necesarios.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    18

    Interrupciones de E/S. Son iniciadas por hardware de entrada y salida. Estas interrupciones indican a la UCP el cambio de estado de un canal o dispositivo. Las interrupciones de E/S se producen cuando finaliza una operacin de E/S o cuando un dispositivo pasa al estado listo.

    Interrupciones externas. Son causadas por diversos eventos, incluyendo la expiracin de un cuanto de un reloj que interrumpe, la pulsacin de la tecla de interrupcin de la consola o la recepcin de una seal procedente de otro procesador en un sistema de mltiples procesadores.

    Interrupciones de Reinicio. Se produce cuando se presiona el botn de reinicio de la PC o cuando llega de otro procesador una instruccin de reinicio en un sistema de multiprocesamiento

    Interrupciones de verificacin del programa. Son causadas por una amplia clase de problemas que pueden ocurrir cuando se ejecutan las instrucciones en lenguaje mquina de un programa. Dichos problemas incluyen la divisin entre cero, el exceso o defecto de los nmeros que pueden ser manejados por las operaciones aritmticas, el intento de hacer referencia a una localidad de memoria que est fuera de los lmites de la memoria real. Muchos sistemas ofrecen a los usuarios la opcin de especificar las rutinas que deben ejecutarse cuando ocurra una interrupcin de verificacin del programa.

    Interrupciones de verificacin de la mquina. Son ocasionadas por el mal funcionamiento del hardware.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    19

    Unidad II Administracin de procesos.

    2. INTRODUCCIN A LOS PROCESOS

    Todas las computadoras modernas hacen varias cosas al mismo tiempo. A la vez que ejecuta un programa del usuario, una computadora puede leer de un disco e imprimir en una terminal o impresora. En un sistema de multiprogramacin, la CPU tambin alterna de programa en programa, ejecutando cada uno de ellos por decenas o cientos de milisegundos. Aunque, en sentido estricto, la CPU ejecuta en cierto instante un solo programa, durante un segundo puede trabajar con varios de ellos, lo que da una apariencia de paralelismo. A veces, las personas hablan de pseudoparalelismo para indicar este rpido intercambio de los programas en la CPU, para distinguirlo del paralelismo real del hardware, donde se hacen clculos en la CPU a la vez que operan uno o ms dispositivos de entrada/salida. Es difcil mantener un registro de las distintas actividades paralelas. Por lo tanto, los diseadores del sistema operativo han desarrollado con el tiempo un modelo que facilita el uso del paralelismo.

    2.1 CONCEPTO DE PROCESO.

    El trmino "PROCESO", fue utilizado por primera vez por los diseadores del sistema Multics en los aos 60s. Desde entonces, el trmino proceso, utilizado a veces como sinnimo de tarea, ha tenido muchas definiciones. A continuacin se presentan algunas:

    Un programa en ejecucin

    Una actividad asncrona El "espritu animado" de un procedimiento El "centro de control" de un procedimiento en ejecucin Lo que se manifiesta por la existencia de un "bloque de control

    del proceso" en el sistema operativo La entidad a la que se asignan los procesadores La unidad "despachable"

    Aunque se han dado muchas otras definiciones, no hay una definicin universalmente aceptada, pero el concepto de "Programa en ejecucin" parece ser el que se utiliza con ms frecuencia. Un programa es una entidad inanimada; slo cuando un procesador le "infunde vida" se convierte en la entidad "activa" que se denomina proceso.

    Un proceso pasa por una serie de datos discretos. Se dice que un proceso se est ejecutando (estado de ejecucin), si tiene asignada la CPU. Se dice que un proceso est listo (estado listo) si pudiera utilizar una CPU en caso de haber una

  • Teor

    Prof. Germ

    disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que suceda algn evento antes de poder seguir la ejecucin.

    El

    Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti

    disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que suceda algn evento antes de poder seguir la ejecucin.

    Ciclo de vida de un proceso

    ciclo de vida detallado de un proceso

    gico de Tuxtla Gutirrez)

    20

    disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    21

    El Bloque de Control de Procesos (PCB)

    Un proceso se representa desde el punto de vista del sistema operativo, por un conjunto de datos donde se incluyen el estado en cada momento, recursos utilizados, registros, etc., denominado Bloque de Control de Procesos (PCB).

    Los objetivos del bloque de control de procesos son los siguientes:

    Localizacin de la informacin sobre el proceso por parte del sistema operativo.

    Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecucin o reanudarla.

    La informacin contenida en el bloque de control es la siguiente:

    Estado del proceso. Informacin relativa al contenido del controlador del programa (Program Counter, PC), estado de procesador en cuanto a prioridad del proceso, modo de ejecucin, etc., y por ultimo el estado de los registros internos de la computadora.

    Estadsticas de tiempo y ocupacin de recursos para la gestin de la planificacin del procesador.

    Ocupacin de memoria interna y externa para el intercambio (swapping). Recursos en uso (normalmente unidades de entrada/salida). Archivos en uso. Privilegios.

    Estas informaciones se encuentran en memoria principal en disco y se accede a ellas en los momentos en que se hace necesaria su actualizacin o consulta. Los datos relativos al estado del proceso siempre se encuentran en memoria principal.

    El cambio de contexto se producir en caso de ejecucin de una instruccin privilegiada, una llamada al sistema operativo o una interrupcin, es decir, siempre que se requiera la atencin de algn servicio del sistema operativo.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    22

    Estado de los procesos

    Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un estado particular de los procesos, existiendo en cada bloque, entre otras informaciones. Los estados de los procesos son internos del sistema operativo y transparente al usuario.

    Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.

    1.- Estados activos: Son aquellos que compiten con el procesador o estn en condiciones de hacerlo. Se dividen en:

    Ejecucin. Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado slo lo puede tener un proceso.

    Preparado. Aquellos procesos que estn dispuestos para ser ejecutados, pero no estn en ejecucin por alguna causa (Interrupcin, haber entrado en cola estando otro proceso en ejecucin, etc.).

    Bloqueado. Son los procesos que no pueden ejecutarse de momento por necesitar algn recurso no disponible (generalmente recursos de entrada/salida).

    2.- Estados inactivos: Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por medio de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo que lo han impedido y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que volver a ejecutarse desde el principio.

    Son de dos tipos:

    Suspendido bloqueado. Es el proceso que fue suspendido en espera de un evento, sin que hayan desaparecido las causas de su bloqueo.

    Suspendido programado. Es el proceso que han sido suspendido, pero no tiene causa parta estar bloqueado.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    23

    Transiciones de estado

    Todo proceso a lo largo de su existencia puede cambiar de estado varias veces. Cada uno de estos cambios se denomina transaccin de estado. Estas transacciones son las siguientes:

    Comienzo de la ejecucin. Todo proceso comienza al ser dada la orden de ejecucin del programa insertndose en la cola de preparados. El encolamiento depender de la poltica de gestin de dicha cola.

    Paso de estado de ejecucin. Cuando el procesador se encuentra inactivo y en la cola de preparados exista algn proceso en espera de ser ejecutado, se pondr en ejecucin el primero de ellos.

    Paso a estado bloqueado. Un proceso que se encuentre en ejecucin y que solicite una operacin a un dispositivo externo, teniendo que esperar a que dicha operacin finalice, ser pasado de estado de ejecucin a estado bloqueado insertndose su PCB en la cola correspondientes de bloqueado. A partir de este momento el procesador pone en ejecucin el siguiente proceso, que ser el primero de la cola de preparados.

    Paso a estado preparado. Este paso puede ser producido por alguna de las siguientes causas.

    Orden de ejecucin de un programa, con la cual, ya se ha mencionado, el proceso pasa a la cola de preparados.

    Si un proceso est en estado bloqueado por causa de una operacin de entrada/salida y est finaliza, pasar de la cola de bloqueados a la de preparados.

    Si un proceso est en ejecucin y aparece una interrupcin que fuerza al sistema operativo a ejecutar otro proceso, el primero pasar al estado de preparado y su PCB a la cola de preparados.

    Activacin. Un proceso suspendido previamente sin estar bloqueado pasar al estado preparado al ser activado nuevamente.

    Paso a estado suspendido bloqueado. Si un proceso est bloqueado y el sistema operativo recibe la orden de suspenderlo, su PCB entrar en la cola de procesos suspendidos bloqueados.

    Paso a estado suspendido preparado. Este paso se puede producir bajo tres circunstancias:

    Suspensin de un proceso preparado pasando ste de la cola de procesos preparados a la de suspendidos preparados

    Suspensin de un proceso en ejecucin, con lo cual el proceso pasa a la cola de uspendidos preparados.

    Desbloqueo de un proceso suspendido bloqueado por desaparecer la causa que impeda el ser activado de nuevo.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    24

    Operaciones sobre procesos

    Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es el de la manipulacin de los procesos. Las operaciones que se pueden hacer sobre un proceso son las siguientes:

    Crear el proceso. Se produce con la orden de ejecucin del programa y suele necesitar varios argumentos, como el nombre y la prioridad del proceso. Aparece en este momento el PCB, que ser insertado en la cola de procesos preparados.

    La creacin de un proceso puede ser de dos tipos:

    Jerrquica. En ella, cada proceso que se crea es hijo del proceso creador y hereda el entorno de ejecucin de su padre. El primer proceso que ejecuta un usuario ser hijo del intrprete de comandos con el que interacta.

    No jerrquica. Cada proceso creado por otro proceso se ejecuta independientemente de su creador con un entorno diferente. Es un tipo de creacin que no suele darse en los sistemas operativos actuales.

    Destruir un proceso. Se trata de la orden de eliminacin del proceso con la cual el sistema operativo destruye su PCB.

    Suspender un proceso. Es un proceso de alta prioridad que paraliza un proceso que puede ser reanudado posteriormente. Suele utilizarse en ocasiones de mal funcionamiento o sobrecarga del sistema.

    Reanudar un proceso. Trata de activar un proceso que a sido previamente suspendido.

    Cambiar la prioridad de un proceso. Temporizar la ejecucin de un proceso. Hace que un determinado proceso

    se ejecute cada cierto tiempo (segundos, minutos, horas...) por etapas de una sola vez, pero transcurrido un periodo de tiempo fijo.

    Despertar un proceso. Es una forma de desbloquear un proceso que habr sido bloqueado previamente por temporizacin o cualquier otra causa.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    25

    2.2 CONCURRENCIA Y SECUENCIABILIDAD

    Los procesos son concurrentes si existen simultneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asncronos, lo cual significa que en ocasiones requieren cierta sincronizacin o cooperacin.

    Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos como puede ser la cooperacin para un determinado trabajo o el uso de informacin o recursos compartidos, por ejemplo: en un sistema de un procesador, la multiprogramacin es una condicin necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.

    Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades necesiten actuar entre s ya sea para utilizar informacin en comn o para cualquier otra cosa.

    2.2.1.1 BENEFICIOS DE LA CONCURRENCIA

    Trata de evitar los tiempos muertos de la UCP Comparte y optimiza el uso de recursos Permite la modularidad en las diferentes etapas del proceso Acelera los clculos Da mayor comodidad

    2.2.1.2 DESVENTAJAS DE LA CONCURRENCIA

    Inanicin Interrupcin de procesos Bloqueos Que dos o ms procesos requieran el mismo recurso.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    26

    2.2.2 LA SINCRONIZACION

    En muchos casos, los procesos se renen para realizar tareas en conjunto, a este tipo de relacin se le llama procesos cooperativos. Para lograr la comunicacin, los procesos deben sincronizarse, de no ser as pueden ocurrir problemas no deseados. La sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinacin y cooperacin de un conjunto de procesos para asegurar la comparacin de recursos de cmputo. La sincronizacin entre procesos es necesaria para prevenir y/o corregir errores de sincronizacin debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronizacin entre procesos tambin permite intercambiar seales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especficas de precedencia impuestas por el problema que se resuelve. Sin una sincronizacin adecuada entre procesos, la actualizacin de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difciles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras se actualizan. una aproximacin para resolver este problema es realizar actualizaciones de variables compartidas de manera mutuamente exclusiva. Se pueden mejorar permitiendo que a lo ms un proceso entre a la vez en la seccin crtica de cdigo en la que se actualiza una variable compartida o estructura de datos en particular.

    Sincronizacin de procesos

    2.3 REGIONES CRTICAS.

    Cmo evitar las condiciones de competencia? La clave para evitar los problemas en sta y otras situaciones relacionadas con la memoria compartida, archivos compartidos y cualquier otra cosa compartida, es determinar una forma de prohibir que ms de algn proceso lea o escriba en los datos compartidos a la vez. En otras palabras, lo que necesitamos es la exclusin mutua (una forma de garantizar

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    27

    que si un proceso utiliza una variable o archivos compartidos, los dems procesos no puedan utilizarlos).

    El problema de evitar las condiciones de competencia tambin se puede formular de manera abstracta. Durante cierta parte del tiempo, un proceso est ocupado realizando clculos internos y otras labores que no conducen a condiciones de competencia. Sin embargo, en algunas ocasiones un proceso puede tener acceso a la memoria compartida de archivos o realizando labores crticas que pueden llevar a conflictos. Esa parte del programa, en la cual se tiene acceso a la memoria compartida se llama la Seccin o Regin Crtica.

    Aunque esta condicin evita los conflictos, no es suficiente para que los procesos paralelos cooperen en forma correcta y usen de modo eficaz los datos compartidos.

    La exclusin mutua debe ponerse en prctica, slo cuando los procesos obtienen acceso a datos compartidos modificables; cuando los procesos realizan operaciones que no entran en conflictos con otras, deben permitirse que procedan concurrentemente.

    Cuando un proceso obtiene acceso a datos compartidos modificables, se dice que se encuentra en una seccin crtica. Para evitar alguna clase de problemas se debe asegurar que cuando un proceso se encuentre en una seccin crtica, los dems procesos no pueden entrar a sus propias secciones crticas.

    Si un proceso se encuentra en su seccin crtica, otros procesos pueden seguir ejecutndose fuera de sus secciones crticas. Cuando un proceso abandona su regin, otro proceso que esperaba entrar en su propia seccin podr hacerlo. El problema de la programacin concurrente est en que se cumpla la exclusin mutua.

    Cuando se encuentra en una regin crtica se est hablando de un estado especial que se concede a un proceso. El proceso tiene acceso exclusivo a los datos compartidos y los dems procesos que requieren acceso a esos datos y en ese momento deben esperar; por esto las secciones crticas deben ejecutarse tan rpido como sea posible. Un proceso no se debe bloquear dentro de su propia seccin crtica y estas deben codificarse con mucho cuidado.

    Si un proceso de una seccin crtica termina, el S.O. al realizar su mantenimiento de terminaciones, debe liberar la exclusin mutua para que otros procesos puedan entrar en sus regiones crticas.

    Necesitamos 4 condiciones para poder obtener una buena solucin:

    1. Dos procesos no deben encontrarse al mismo tiempo dentro de sus secciones crticas.

    2. No se deben hacer hiptesis sobre la velocidad o el nmero de UCP. 3. Ninguno de los procesos que estn en ejecucin fuera de su seccin

    crtica puede bloquear a otros procesos.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    28

    4. Ningn proceso debe esperar eternamente para entrar a su seccin crtica.

    2.4 EXCLUSIN MUTUA

    Considrese un sistema con muchas terminales en tiempo compartido. Supngase que los usuarios terminan con un retorno del carro cada lnea que introducen en el sistema, que es necesario vigilar continuamente el nmero total de lneas introducidas por los usuarios desde que comenz el da y que cada terminal de usuario est vigilada por un proceso diferente. Cada vez que uno de estos procesos recibe una lnea desde una terminal de usuario, suma a una variable global compartida por todo el sistema, LNEAS_INTRO. Considrese que sucedera si dos procesos tratan de incrementar LNEAS_INTRO simultneamente. Supngase que cada proceso tiene su propia copia de cdigo

    CARGAR LNEAS_INTRO SUMAR 1 ALMACENAR LNEAS_INTRO

    Supngase que LNEAS_INTRO tiene en este momento el valor 21687. Ahora supngase que el primer proceso ejecuta las instrucciones CARGAR y SUMAR, dejando por tanto el valor 21688 en un acumulador. Despus el proceso pierde el procesador (por haber expirado un cuanto) y el segundo proceso se apropia de l. El segundo proceso ejecuta las tres instrucciones y deja el valor de 21688 en LNEAS_INTRO. Debido al acceso no controlado a la variable compartida LNEAS_INTRO, el sistema ha perdido de hecho el rastro de una de las lneas; el total correcto debera ser 21689. Cmo evitar las condiciones de competencia?

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    29

    2.5 SINCRONIZACIN POR SEMFOROS

    En 1965, E.W. Dijkstra sugiri el uso de una variable entera para contar el nmero de despertares almacenados para su uso posterior.

    En su propuesta se present un nuevo tipo de variable, llamada Semforo. Un semforo puede tener el valor 0, lo que indica que no existen despertares almacenados; o bien algn valor positivo si estn pendientes uno o ms despertares.

    Dijkstra, propuso dos operaciones, DOWN y UP (generalizaciones de SLEEP y WAKEUP, respectivamente). La operacin Down verifica si el valor de un semforo es mayor que 0. En este caso, decrementa el valor (es decir, utiliza un despertar almacenado) y contina. Si el valor es cero, el proceso se va a dormir. La verificacin y modificacin del valor, as como la posibilidad de irse a dormir se realiza en conjunto, como una sola e indivisible accin atmica. Se garantiza que al iniciar una operacin con un semforo, ningn otro proceso puede tener acceso a semforo hasta que la operacin termine o se bloquee. Esta atomicidad es absolutamente esencial para resolver los problemas de sincronizacin y evitar condiciones de competencia.

    La operacin UP incrementa el valor del semforo correspondiente. Si uno o ms procesos dorman en ese semforo y no podan completar una operacin Down anterior, el sistema elige alguno de ellos (por ejemplo, en forma aleatoria) y se le permite terminar Down. As, despus de un UP en un semforo con procesos durmiendo, el semforo seguir con valor cero, pero habr un menor nmero de procesos durmiendo. La operacin de incremento del semforo y despertar de un proceso tambin es indivisible. Ningn proceso llega a bloquear mediante un UP.

    Un semforo es una variable protegida, cuyo valor slo puede ser ledo y alterado mediante las operaciones P y V, y una operacin de asignacin de valores iniciales y (Inicia semforo).

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    30

    TIPOS DE SEMFOROS

    SEMFOROS BINARIOS (VALORES DE 1,0) SEMAFOROS CONTADORES (Valores enteros no negativos)

    Operacin P (Sobre el semforo S) si S>0 entonces S:=S-1; sino (esperar S)

    Operacin V (Sobre el semforo S) si (Uno o ms procesos esperan S) entonces (dejar que prosiga uno de esos procesos) sino S:=S+1

    La exclusin mutua sobre el semforo S se implanta dentro de P(S) y V(S). Si varios procesos desean ejecutar una operacin P(S) de manera simultnea, slo se podr ejecutar uno de ellos, pero esto no quiere decir que se aplazarn en forma indefinida.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    31

    UNIDAD III ADMINISTRACION DE LA MEMORIA.

    3. INTRODUCCIN.

    La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Su labor consiste en llevar el 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 estos la necesiten y liberarlo cuando terminen. As como administrar el intercambio entre la memoria principal y el disco, en los casos en que la memoria principal no pueda albergar a todos los procesos.

    3.1 Almacenamiento Virtual

    La necesidad cada vez ms imperiosa de ejecutar programas grandes y el crecimiento en poder de las unidades centrales de procesamiento empujaron a los diseadores de los sistemas operativos a implantar un mecanismo para ejecutar automticamente programas ms grandes que la memoria real disponible, esto es, de ofrecer `memoria virtual'.

    La memoria virtual se llama as porque el programador ve una cantidad de memoria mucho mayor que la real, y en realidad se trata de la suma de la memoria de almacenamiento primario y una cantidad determinada de almacenamiento secundario. El sistema operativo, en su mdulo de manejo de memoria, se encarga de intercambiar programas enteros, segmentos o pginas entre la memoria real y el medio de almacenamiento secundario. Si lo que se intercambia son procesos enteros, se habla entonces de multiprogramacin en memoria real, pero si lo que se intercambian son segmentos o pginas, se puede hablar de multiprogramacin con memoria virtual.

    La memoria virtual se apoya en varias tcnicas interesantes para lograr su objetivo. Una de las teoras ms fuertes es la del `conjunto de trabajo', la cual se refiere a que un programa o proceso no est usando todo su espacio de direcciones en todo momento, sino que existen un conjunto de localidades activas que conforman el `conjunto de trabajo'. Si se logra que las pginas o segmentos que contienen al conjunto de trabajo estn siempre en RAM, entonces el programase desempear muy bien.

    Otro factor importante es si los programas exhiben un fenmeno llamado `localidad', lo cual quiere decir que algunos programas tienden a usar mucho las instrucciones que estn cercanas a la localidad de la instruccin que se est ejecutando actualmente

    La memoria es parte central de cualquier sistema de cmputo actual. Es un arreglo de palabras o bytes, cada uno con su propia direccin. La interaccin se logra por medio de una secuencia de lectura escritura a direcciones especficas de la memoria. La UCP busca informacin de la memoria o la almacena en ella.

    Por ejemplo, para la ejecucin de una instruccin primero buscar la instruccin de la memoria. Luego la instruccin se decodifica y esto puede provocar que se busquen operados de la memoria. Despus de aplicar la instruccin a los operndos, los resultados pueden guardarse en memoria. Obsrvese que la unidad de memoria slo ve el flujo de direcciones de memoria, no sabe como se generan o para que son las instrucciones.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    32

    El trmino almacenamiento virtual suele asociarse con la capacidad de tener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario. Los dos mtodos ms comunes para poner en prctica el almacenamiento virtual son la paginacin y segmentacin, los cuales se vern ms adelante.

    Es por eso que la clave de este concepto es la asociacin de direcciones a las que hace referencia un proceso en ejecucin en el almacenamiento secundario. A estas direcciones se les conoce como direcciones virtuales. A las direcciones que estn disponibles en el almacenamiento primario se les conoce como direcciones reales. El intervalo entre cada una de las direcciones virtuales o reales se les conoce como espacio entre direcciones virtuales o reales segn sea el caso.

    Se han desarrollado varios mtodos para asociar las direcciones virtuales con las reales. Uno de ellos es el mecanismo de traduccin dinmica de direcciones, que convierte las direcciones virtuales en reales mientras se ejecuta un proceso. Todos estos sistemas tienen la propiedad de que las direcciones del almacenamiento virtual son contiguas, pero no necesariamente en el almacenamiento virtual. De esta forma se libera al usuario de la preocupacin de ejecutar uno o varios procesos sin ver la posicin de los procesos.

    3.2 Mecanismos de Asignacin.

    Enlace de Direcciones.

    Para ejecutar un proceso este debe cargarse en memoria. Generalmente el proceso reside en disco como archivo binario o ejecutable. El conjunto de procesos en disco que esperan entrar en la memoria para ejecutarse forman la cola de entrada.

    El procedimiento normal consiste en seleccionar uno de los procesos de la cola de entrada y cargarlos en memoria. Esto ocasiona la relocalizacin de direccin o enlaces a referencias externas, segn sea el caso. Mientras se ejecuta un programa, se accede a las instrucciones o datos en la memoria. Finalmente, el programa termina de ejecutarse y su espacio en memoria se declara disponible.

    Un proceso de usuario puede residir en cualquier parte de la memoria fsica. Por esto, aunque el espacio de direcciones de la computadora comience con 00000, no necesariamente debe de ser ocupado por el proceso del usuario En la mayora de los casos, un programa de usuario pasar por varias etapas (algunas pueden ser optativas) antes de ejecutarse. En estas etapas las direcciones pueden representarse de maneras distintas. En un programa fuente las direcciones son generalmente simblicas. Un compilador enlazar estas direcciones simblicas con direcciones relocalizables.

    A su vez, el director de enlaces o cargador enlazar las direcciones relocalizables con direcciones absolutas. Cada enlace es una correspondencia entre un espacio de direcciones y otro (hueco de direcciones virtuales). El enlace de las instrucciones y datos con las direcciones de memoria casi siempre puede efectuarse en cualquier etapa del camino:

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    33

    Compilacin. Si en la compilacin se sabe donde residir el programa en memoria, se puede generar cdigo absoluto. Es decir, si se sabe la posicin donde inicia el cdigo, entonces el compilador comenzara en esa posicin y se extendera a partir de ah. Si se cambia la posicin de inicio, ser necesario volver a compilar el cdigo. Los programas con formato. COM se enlazan de manera absoluta durante la compilacin.

    Carga. Si en la compilacin no se conoce donde residir el programa en memoria, entonces el compilador deber cargar el cdigo relocalizable.

    Ejecucin. Si durante la ejecucin el proceso puede moverse de un segmento de memoria a otro, entonces el enlace final se debe postergar hasta el momento de la ejecucin. Esto depende de hardware especial

    3.3 Implementacin de los Mecanismos de Asignacin de Memoria Virtual.

    Existen tres estrategias de administracin de la memoria virtual:

    OBTENCIN

    Determina cuando es que se debe transferir una pgina o segmento del almacenamiento secundario al primario. Se espera a que un proceso en ejecucin haga referencia a una pgina o segmento antes de traer la pgina o segmento antes de traer la pgina o segmento al almacenamiento primario, y adems intenta determinar por anticipado a que lugar se har referencia.

    COLOCACIN Determina en que lugar del almacenamiento primario se debe colocar una pgina o segmento entrante. Esto hace que se vuelva una decisin trivial de colocacin, porque la pgina entrante se puede ubicar en cualquier marco de pgina disponible.

    REMPLAZO

    Sirve para decidir cual pgina o segmento se debe desplazar para dejar espacio a una pgina o segmento entrante cuando est ocupado el almacenamiento primario. En este caso, las rutinas de almacenamiento primario se van a desplazar para dejar espacio a una pgina entrante. Estrategia de colocacin del almacenamiento.

    Las estrategias de colocacin del almacenamiento sirven para determinar en que lugar del almacenamiento primario se deben colocar los programas y datos entrantes.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    34

    Las primeras estrategias

    ESTRATEGIA DE MEJOR AJUSTE

    Un trabajo que entre en le sistema se colocar en el hueco del almacenamiento primario principal en el que quepa mejor e que deje la menor cantidad de espacios posibles sin utilizar. Para muchos, el mejor ajuste parece ser intuitivamente la estrategia ms efectiva.

    ESTRATEGIA DE PRIMER AJUSTE

    Un trabajo que entre en el sistema se colocar en el almacenamiento primario principal en el primer hueco disponible, lo suficientemente grande para contenerlo.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    35

    ESTRATEGIA DE PEOR AJUSTE

    consiste en colocar un programa en el almacenamiento primario en el hueco donde peor se ajusta, es decir, el hueco ms grande.

    3.4. Fragmentacin

    La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria que se vieron en los mtodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa.

    La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera.

    La fragmentacin puede ser:

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

    Fragmentacin Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la particin, pero no se utiliza.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    36

    Fragmentacin Interna y Externa

    La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un solo gran bloque, pero esta solo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin.

    3.5 Paginacin.

    La paginacin pura en el manejo de memoria consiste en que el sistema operativo divide dinmicamente los programas en unidades de tamao fijo ( generalmente mltiplos de 1 kilobyte) los cuales va a manipular de RAM a disco y viceversa. Al proceso de intercambiar pginas, segmentos o programas completos entre RAM y disco se le conoce como `intercambio' o `swapping'. En la paginacin, se debe cuidar el tamao de las pginas, ya que si stas son muy pequeas el control por parte del sistema operativo para saber cules estn en RAM y cuales en disco, sus direcciones reales, etc; crece y provoca mucha `sobrecarga' (overhead). Por otro lado, si las pginas son muy grandes, el overhead disminuye pero entonces puede ocurrir que se desperdicie memoria en procesos pequeos. Debe haber un equilibrio.

    Uno de los aspectos ms importantes de la paginacin, as como de cualquier esquema de memoria virtual, es la forma de traducir una direccin virtual a direccin real. Para explicarlo, obsrvese la figura siguiente

  • Teor

    Prof. Germ

    Como se observa, una direccin virtual `v'= ( bvirtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32 kilobytes, entonces tenemos 16 pginas vvirtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en memoria, quin es el dueo de la pgina, si la pgina ha sido modificada o es de lectura nada ms, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le corresponde a la pgina virtual. Obviamente, de las 16virtuales, slo ocho tendrn un valor de control que dice que la pgina est cargada en RAM, as como la direccin real de la pgina, denotada en la figura como b'virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2( direccin de memoria 8192 ).Una vez encontrada la pgina real, se le suma el desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).

    La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM, por lo cual se necesita saber en qu direccin comienza, en este caso, existe un registro con la direccin base denotada por la letra `a' en la figura anterior.

    Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se llama un fallo de pgina (page fault ). Esto es caro para el manejador de memoria, ya que tiene que realizar una serie de pasos extra para poder resolverla direccin deseada y darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y entonces se busca en la tabla la direccin de esta pgina en disco. Una vez localizada en disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se marca su valor de control en la tabla de direcciones virtuales para indicar que ya no est en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que

    Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti

    El mecanismo de paginacin

    Como se observa, una direccin virtual `v'= ( b, d) est formada por un nmero de pgina virtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32 kilobytes, entonces tenemos 16 pginas virtuales y 8 reales. La tabla de direcciones virtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en

    de la pgina, si la pgina ha sido modificada o es de lectura nada ms, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le corresponde a la pgina virtual. Obviamente, de las 16virtuales, slo ocho tendrn un

    dice que la pgina est cargada en RAM, as como la direccin real de la pgina, denotada en la figura como b' Por ejemplo, supngase que para la pgina virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2(

    memoria 8192 ).Una vez encontrada la pgina real, se le suma el desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).

    La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM, por lo a saber en qu direccin comienza, en este caso, existe un registro con la

    direccin base denotada por la letra `a' en la figura anterior.

    Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se e fault ). Esto es caro para el manejador de memoria, ya que

    tiene que realizar una serie de pasos extra para poder resolverla direccin deseada y darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y

    la tabla la direccin de esta pgina en disco. Una vez localizada en disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se

    valor de control en la tabla de direcciones virtuales para indicar que ya no est en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que

    gico de Tuxtla Gutirrez)

    37

    , d) est formada por un nmero de pgina virtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32

    irtuales y 8 reales. La tabla de direcciones virtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en

    de la pgina, si la pgina ha sido modificada o es de lectura nada ms, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le corresponde a la pgina virtual. Obviamente, de las 16virtuales, slo ocho tendrn un

    dice que la pgina est cargada en RAM, as como la direccin real Por ejemplo, supngase que para la pgina

    virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2( memoria 8192 ).Una vez encontrada la pgina real, se le suma el

    desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).

    La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM, por lo a saber en qu direccin comienza, en este caso, existe un registro con la

    Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se e fault ). Esto es caro para el manejador de memoria, ya que

    tiene que realizar una serie de pasos extra para poder resolverla direccin deseada y darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y

    la tabla la direccin de esta pgina en disco. Una vez localizada en disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se

    valor de control en la tabla de direcciones virtuales para indicar que ya no est en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    38

    los accesos a disco duro son del orden de decenas de veces ms lentos que en RAM. En el ejemplo anterior se mencion que cuando se necesita descargar una pgina de RAM hacia disco se debe de hacer una eleccin. Para realizar esta eleccin existen varios algoritmos, los cuales se describen enseguida.

    La primera en entrar, primera en salir

    Se escoge la pgina que haya entrado primero y est cargada en RAM. Se necesita que en los valores de control se guarde un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica de ningn sistema. Es justa e imparcial.

    La no usada recientemente

    Se escoge la pgina que no haya sido usada (referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad en el conjunto de trabajo. R La usada menos recientemente: Es parecida a la anterior, pero escoge la pgina que se us hace ms tiempo, pretendiendo que como ya tiene mucho sin usarse es muy probable que siga sin usarse en los prximos ciclos. Necesita de una bsqueda exhaustiva.

    La no usada frecuentemente Este algoritmo toma en cuenta no tanto el tiempo, sino el nmero de referencias. En este caso cualquier pgina que se use muy poco, menos veces que alguna otra.

    La menos frecuentemente usada

    Es parecida a la anterior, pero aqu se busca en forma exhaustiva aquella pgina que se ha usado menos que todas las dems. R En forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e imparcial, pero ineficiente.

    Otro dato interesante de la paginacin es que ya no se requiere que los programas estn ubicados en zonas de memoria adyacente, ya que las pginas pueden estar ubicadas en cualquier lugar de la memoria RAM. Tomando en consideracin que la paginacin trabaja con memoria virtual, entonces recordaremos que en la memoria virtual se encuentran las direcciones virtuales, las cuales se generan por ndices, registros, palabras o bytes. Estas direcciones virtuales no pasan de forma directa al bus de memoria, sino que van a la unidad de administracin de memoria (MMU), y por medio de un chip se asocian las virtuales con las reales.

    La paginacin surge de la necesidad de crear espacios de memoria contiguos, pues debido a que la fragmentacin genera espacios dispersos de almacenamiento, no se pueden ejecutar los procesos. Claro esta que esto se soluciona mediante la paginacin y la compactacin. La paginacin permite que la memoria de un proceso o sea contigua(almacenamiento secundario), pero al ser asignado al almacenamiento primario necesariamente seria contigua. El usuario ya no se preocupa al tener espacio disponible

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    39

    en el almacenamiento secundario, pues as se lograran ejecutar los procesos. La paginacin es un mtodo comn en los sistemas operativos.

    El reemplazo de pginas

    La memoria fsica se divide en bloques de tamao fijo llamados MARCOS. La memoria lgica se divide en bloques del mismo tamao PGINAS. Cuando un proceso se va ha ejecutar, sus paginas se cargan desde el almacenamiento auxiliar (secundario) en cualquiera de los marcos disponibles. Por lo tanto al crear al crear la paginacin (pginas) se crean tambin los marcos de las pginas resultantes del nmero de pginas que ocurran. Viendo entonces que la paginacin se da en el almacenamiento secundario (disco, dispositivos), estamos haciendo uso del hardware por lo que el hardware representa el apoyo para la paginacin.

    3.6 ALGORITMOS DE REEMPLAZO DE PGINAS

    Existen muchos y diferentes algoritmos para el reemplazo de pgina, pero en general se prefieren los que presenten el menor nmero de fallos de pgina, Evaluamos un algoritmo ejecutndolo para una serie determinada de referencias a memoria y calculando el nmero de fallos pgina.

    A la serie de referencia a memoria se le llama serie de referencias. Las series de referencias pueden obtener de un resto a un sistema anotando la direccin de cada referencia a memoria lo cual producira un gran numero de datos considerando dos aspectos. Para un tamao de pgina dado, el cual est determinado por el hardware o el sistema, necesitamos considerar slo el nmero de pginas, no toda la direccin.

    Si tenemos una referencia a una pgina p, entonces ninguna referencia a la pagina p que se represente inmediatamente despus provocar un fallo de pagina, ya que la pgina p se encuentra en memoria. Por lo anterior resumiendo los fallos de pgina, solo ocurren en dos ocasiones:

    Cundo la memoria est vaca y entran solo las pginas disponibles de acuerdo al tamao del marco de pginas.

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    40

    Cuando entran las dems pginas en localidades diferentes a la pgina que entra en ese momento. Para realizar esta eleccin existen varios algoritmos, los cuales se describen enseguida:

    o La primera en entrar, primera en salir: Se escoge la pgina que haya entrado primero y est cargada en RAM. Se necesita que en los valores de control segura de un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica de ningn sistema. Es justa e imparcial.

    o La no usada recientemente: Se escoge la pgina que no haya sido usada (referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad en el conjunto de trabajo.

    o La usada menos recientemente: Es parecida a la anterior, pero escoge la pgina que se us hace ms tiempo, pretendiendo que como ya tiene mucho sin usarse es muy probable que siga sin usarse en los prximos ciclos. Necesita de una bsqueda exhaustiva.

    o La no usada frecuentemente: Este algoritmo toma en cuenta no tanto el tiempo, sino el nmero de referencias. En este caso cualquier pgina que se use muy poco, menos veces que alguna otra.

    o La menos frecuentemente usada: Es parecida a la anterior, pero aqu se busca en forma exhaustiva aquella pgina que se ha usado menos que todas las dems.

    o En forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e imparcial, pero ineficiente. Otro dato interesante de la paginacin es que ya no se requiere que los programas estn ubicados en zonas de memoria adyacente, ya que las pginas pueden estar ubicadas en cualquier lugar de la memoria RAM.

    ALGORITMO FIFO

    El algoritmo de remplazo de pginas ms sencillo es el primero en entrar, primero en salir (First Input, first output). Un algoritmo FIFO asocia a cada pgina el instante en el que se trajo a memoria. Cuando hay que reemplazar una pgina se elige la ms antigua.

    Si construimos una cola FIFO que contenga las en memoria reemplazamos la pgina de inicio de la cola y cuando se introduce en memoria una pgina, la insertamos al final de la cola. Por ejemplo Teniendo la serie de referencias con un marco de pgina de tamao 3, observamos: 7 0 1 2 3 0 4 2 3 0 1 2 7 0 1 7 7 7 2 2 2 4 4 4 0 0 0 7 7 7

    0 0 0 3 3 3 2 2 2 1 1 1 0 0

    1 1 1 0 0 0 3 3 3 2 2 2 1

    Nota: Los cuadros en color gris indican las pginas que entran.

    Despus de descargar una pagina activa para incorporar una pgina nueva, se provocar casi de inmediato una falla por la pgina activa. Tendremos que reemplazar otra pgina para devolver memoria la pgina activa. De esta manera, una mala eleccin en el reemplazo aumenta la cantidad de fallos de pginas y frena la ejecucin de procesos,

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    41

    pero no provoca ejecucin incorrecta. Al elegir una pgina equivocada el sistema operativo tiene varias opciones conocidas como

    ANOMALIA DE BELADY.

    1. Abortar el proceso del usuario lo cual no es la mejor opcin ya que el sistema operativo realiza la paginacin para mejorar la utilizacin y productividad el sistema de computadora.

    2. Descargar un proceso de pginas por cualquier algoritmo de reemplazo. 3. Reemplazo de pginas por cualquier algoritmo de reemplazo.

    Despus de descargar una pagina activa para incorporar una pgina nueva, se provocar casi de inmediato una falla por la pgina activa. Tendremos que reemplazar otra pgina para devolver memoria la pgina activa. De esta manera, una mala eleccin en el reemplazo aumenta la cantidad de fallos de pginas y frena la ejecucin de procesos, pero no provoca ejecucin incorrecta.En este ejemplo se muestra como se implementan los algoritmos de reemplazo de pginas. Tomamos como referencia la siguiente serie:

    9 0 1 8 3 1 0 4 6 3 8 7 0 8 2 5 1 3 4 5 0 7 1 2 8 4 6 7 1 2 0 9.

    1 1 1 1 0 0 0 3 3 3 0 0 0 0 1 1 1 5 5 5 1 1 1 4 4 4 1 1 1 9

    0 0 3 3 3 3 6 6 6 7 7 7 7 5 5 5 4 4 4 7 7 7 8 8 8 7 7 7 0 0

    9 8 8 8 8 4 4 4 8 8 8 8 2 2 2 3 3 3 0 0 0 2 2 2 6 6 6 2 2 2

    Total de fallos = 30 Nota: Los cuadros en color gris indican las pginas que entran.

    ALGORITMO PTIMO

    Una consecuencia del estudio de la anomala de Belady, fue la bsqueda de un algoritmo de reemplazo de pginas ptimo. Este algoritmo tiene la menor tasa de fallos de pgina de todos los algoritmos: un algoritmo ptimo nunca presentar la anomala de Belady. Consiste en reemplazar la pgina que no se usar durante el mayor periodo de tiempo. Por ejemplo considerando la siguiente serie de referencias, tendremos que: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

    7 7 7 2 2 2 2 2 7

    0 0 0 0 4 0 0 0

    1 1 3 3 3 1 1

    Nota: Los cuadros en negrillas indican las pginas que entran.

    Las primeras tres referencias causan fallas que llenan los tres marcos vacos. La referencia a la pgina 2 reemplaza a la pgina 7 hasta la referencia nmero 1 , la pgina 0

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    42

    se usar en la pgina 5 y la pgina 1 en la referencia No. 14. La referencia a la pgina 3 reemplaza a la pgina 1, ya que esta ser la ltima de las 3 pginas en memoria a la que se volver a hacer referencia. Con slo 9 fallos de pgina el reemplazo ptimo es mucho mejor que el FIFO que con la misma serie presenta 15 fallos de pgina. De hecho, ningn algoritmo de reemplazo puede procesar esta serie de referencias con menos de 9 fallos usando un marco de tamao 3. Por desgracia, es difcil de implantar el algoritmo de reemplazo de pginas ptimo, ya que se requiere el conocimiento a futuro de la serie de referencias.

    ALGORITMO LRU

    Si el algoritmo no es tan factible quiz sea posible una aproximacin. La principal diferencia entre el FIFO y el PTIMO, es que el FIFO utiliza el instante en que entr la pgina a memoria; el PTIMO utiliza el tiempo en que usar la pgina. Si Utilizamos el pasado reciente como aproximacin de que suceder en un futuro cercano, reemplazaremos la pgina que no se ha utilizado durante el mayor periodo de tiempo posible. Este es el algoritmo MENOS RECIENTE USADO (LRU, Least Recently Used). El reemplazo LRU asocia a cada pgina al instante en que se us por ltima vez. Cuando hay que reemplazar una pgina, LRU asocia la pgina que no ha sido utilizada durante el mayor perodo de tiempo posible, es decir, ve hacia atrs en el tiempo (su utilizacin en el pasado). Por ejemplo, si tenemos la misma serie de referencias que en el ptimo 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1,2,0,1,7,0,1.

    7 7 7 2 2 4 4 4 0 1 1 1

    0 0 0 0 0 0 3 3 3 0 0

    1 1 3 3 2 2 2 2 2 7

    Nota: Los cuadros en negrillas indican las pginas que entran.

    El algoritmo LRU produce 12 fallos. Las cinco primeras son las mismas que en el ptimo, sin embargo, cuando se presenta la referencia a la pgina 4, el reemplazo observa que de las 3 pginas en memoria, la 2 fue la menos reciente usada. La pagina que se us ms recientemente es la pgina 0 y justo antes se us la pgina 3. Por lo tanto, el LRU reemplaza a la pgina 2, sin saber que est a punto de usarse. Luego, cuando s de la falla por la pgina 2, el algoritmo LRU puede reemplazar la pgina 3. A pesar de estos problemas, el reemplazo por LRU con 12 fallos sigue siendo mejor que el FiFo con 15 fallos.

    La poltica de implantar el algoritmo LRU es generalmente buena, sin embargo existe el problema de cmo implantar el reemplazo de pginas. El problema consiste en determinar un orden para los marcos definidos por el instante del ltimo uso. El algoritmo LRU se puede implementar de dos maneras:

    Contadores. A cada entrada de la tabla de pginas asociamos un registros de instante de uso y aadimos al CPU un reloj lgico o contador. El reloj se

  • Teora de Sistemas Operativos

    Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

    43

    incremento con cada referencia a memoria. De esta manera siempre tendremos el tiempo de la ultima referencia a la pgina y reemplazaremos la pgina con menor valor.

    Pilas. Cuando se hace referencia a una pgina, se saca la pila y se coloca en la parte superior. De esta manera, en la parte superior de la pila siempre se encue