UNIDAD II-III-IV-V: COMPONENTES DE LOS SISTEMAS OPERATIVOS

Cómo está conformado un sistema operativo?

Un sistema operativo está conformado básicamente por cuatro módulos:

  • Núcleo o Kernel.
  • Administrador de memoria.
  • Sistema de entrada/salida.
  • Administrador de archivos.

A veces se considera un quinto módulo: el intérprete de comandos o intérprete de instrucciones, el cual se encarga de “traducir” las órdenes que el usuario ingresa mediante el teclado u otros dispositivos a un “lenguaje” que la máquina pueda entender.

Núcleo

Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un submódulo denominado “planificador”, el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de “time slicing” (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas.

Administrador de memoria

Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es.

Sistema de entrada/salida (E/S)

Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de “spoolers”. Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool.

Administrador de archivos

Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma.

Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo. El sistema operativo comprueba que estos privilegios no sean violados.

Componentes de un sistema operativo

Gestión de procesos

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:

  • Crear y destruir los procesos.
  • Parar y reanudar los procesos.
  • Ofrecer mecanismos para que se comuniquen y sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.

Gestión de la memoria principal

La Memoria (informática) es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:

  • Conocer qué partes de la memoria están utilizadas y por quién.
  • Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
  • Asignar y reclamar espacio de memoria cuando sea necesario.

Gestión del almacenamiento secundario

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:

  • Planificar los discos.
  • Gestionar el espacio libre.
  • Asignar el almacenamiento.

El sistema de E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

Sistema de archivos

Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:

  • Construir y eliminar archivos y directorios.
  • Ofrecer funciones para manipular archivos y directorios.
  • Establecer la correspondencia entre archivos y unidades de almacenamiento.
  • Realizar copias de seguridad de archivos.

Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS

Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema NTFS el tamaño es considerablemente mayor.

Sistemas de protección

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:

  • Distinguir entre uso autorizado y no autorizado.
  • Especificar los controles de seguridad a realizar.
  • Forzar el uso de estos mecanismos de protección.

Sistema de comunicaciones

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Intérprete de órdenes

El shell del sistema es el principal componente del SO que utiliza el usuario. Este uso se realiza siempre directa o indirectamente a través del intérprete. Generalmente incorpora un lenguaje de programación para automatizar las tareas.

Hay dos tipos de intérpretes de órdenes:

  • Alfanuméricos: las órdenes se expresan mediante un lenguaje específico usando las cadenas de caracteres introducidas por el terminal.
  • Gráficos: normalmente las órdenes se especifican por medio de iconos y otros elementos gráficos.

Programas de sistema

Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:

  • Manipulación y modificación de archivos.
  • Información del estado del sistema.
  • Soporte a lenguajes de programación.
  • Comunicaciones.

Gestor de recursos

Como gestor de recursos, el Sistema Operativo administra

  • La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
  • Los dispositivos de E/S (entrada y salida)
  • La memoria principal (o de acceso directo).
  • Los discos (o memoria secundaria).
  • Los procesos (o programas en ejecución).
  • y en general todos los recursos del sistema.

 

Características

Administración de tareas

  • Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
  • Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios

  • Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
  • Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos

  • Centralizado: Si permite utilizar los recursos de una sola computadora.
  • Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos… ) de más de una computadora al mismo tiempo.

 

UNIDAD II: ADMINISTRACION DE PROCESOS

Administración de procesos 

  • Un proceso es un programa en ejecución. Un proceso necesita ciertos recursos, incluyendo tiempo de CPU, memoria, archivos, y dispositivos de E/S, para lograr su tarea.
  • El sistema operativo es responsable de las siguientes actividades en la administración de procesos:
    • creación de procesos y borrado.
    • suspensión de procesos y resumen.
    • mecanismos de:
      • sincronización de procesos
      • comunicación entre procesos

 

¿Qué es un proceso?

Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, por el momento dejemos esta última definición como un concepto, luego se verá en más detalle el concepto de hilo. Una vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados.

Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.

Estados de los procesos

Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado.

Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.

Implantación de los procesos

La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.

La información que se almacena es la siguiente:

1) Identificación del proceso.

2) Identificación del proceso padre.

3) Información sobre el usuario y grupo.

4) Estado del procesador.

5) Información de control de proceso

5.1) Información del planificador.

5.2) Segmentos de memoria asignados.

5.3) Recursos asignados.

Comunicación entre procesos

Condiciones de competencia

Las condiciones de competencia se dan cuando dos o más procesos intentan acceder a un mismo recurso.

Secciones críticas

Para solucionar las condiciones de competencia se implementó un modelo para prohibir que dos procesos accedan al mismo recurso. El modelo en cuestión se denomina exclusión mutua.

Exclusión mutua con espera ocupada

Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un proceso intenta ingresar a su región crítica, verifica si esta permitida la entrada. Si no, el proceso se queda esperando hasta obtener el permiso.

Desactivación de interrupciones

El método más simple para evitar las condiciones de competencia es hacer que cada proceso desactive todas sus interrupciones antes de entrar a su sección crítica y las active una vez que salio de la misma. Este modelo como se puede observar, éste modelo tiene una gran problema y es que si se produce una falla mientras que el proceso esta en la región crítica no se puede salir de la misma y el sistema operativo no recuperaría el control.

Variables cerradura

En éste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningún proceso en su sección crítica) o bien 1 (indicando que la sección crítica está ocupada) entonces cada proceso antes de ingresar a la sección crítica verifica el estado de la variable de cerradura y en caso de que la misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda verificando el estado de la misma hasta que el mismo sea 0.

El problema aquí se presenta si dos procesos verifican al mismo tiempo que la variable cerradura esta en 0 e ingresan a la región crítica.

Alternancia estricta

El algoritmo de alternancia estricta no bloquea el ingreso a la región crítica cuando otro proceso se esta ejecutando. El problema de ésta solución es que cuando un proceso no esta en la sección crítica igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que requiera ingresar a la misma logre hacerlo.

Instrucción TSL

Esta solución requiere ayuda del hardware y es debido a que en general las computadoras diseñadas para tener más de un procesador tienen una instrucción TEST AND SET LOCK

Dormir y despertar

El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador.

El problema del productor y el consumidor

El problema del productor y el consumidor describe el echo de que cuando hay dos o más procesos interactuando a través de un buffer común habiendo procesos que ponen información o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se desarrollaron métodos de comunicación/sincronización entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor “duerma” si el buffer está lleno y una vez que exista espacio el proceso “consumidor” despierte al productor para que siga generando o viceversa.

Planificación de procesos

La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La selección del proceso se basa en alguno de los algoritmos de planificación que se describen más abajo.

Expulsión

Es la característica por el cual el sistema operativo puede o no expulsar del estado de ejecución a un proceso dado. En este sentido entonces tenemos la planificación apropiativa en la cual el sistema operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación no apropiativa en la cual una vez que el proceso esta en ejecución el sistema operativo no puede sacarlo de ese estado.

Objetivos de la planificación

Los objetivos de la planificación de proceso son:

·                    Equidad, todos los procesos deben poder ejecutarse

·                    Eficacia, mantener ocupada la CPU un 100% del tiempo

·                    Tiempo de respuesta, minimizar el tiempo de respuesta al usuario

·                    Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados

·                    Rendimiento, maximizar el número de tareas procesadas por hora.

Algoritmos de planificación

Los algoritmos de planificación son los que definen que política se va a seguir para que un proceso pase al estado de ejecución.

Planificación Round-Robin

En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento.

Planificación por prioridad

En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados

Colas múltiples

Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar.

Primero el trabajo más corto

Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento or lotes en los cuales se puede saber cual es el tiempo de duración de la ejecución de cada proceso y entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se “cuela” sobre uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga procesamiento.

Planificación garantizada

En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que están utilizando el procesador para cumplir con la ecuación previa.

Procesos ligeros

Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada.

Dentro de la información propia tenemos:

·                    Contador de programa

·                    Pila

·                    Registros.

·                    Estado del proceso ligero.

·                    Dentro de la información compartida tenemos:

·                    Variables globales.

·                    Archivos abiertos

·                    Señales

·                    Semáforos.

·                    Contabilidad.

Señales

Las señales son el mecanismo de comunicación que se establece entre los procesos. Para comparar se puede decir que las señales son a los procesos lo que las interrupciones son al procesador. Cuando un proceso recibe una señal detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta en el mismo proceso y luego una vez finalizado sigue la ejecución en el punto que había bifurcado anteriormente.

Las señales se pueden originar en un proceso o bien en el sistema operativo. Las señales se pueden enviar entre procesos, solo los que tengan el mismo uid, o bien el sistema operativo puede enviarle una señal a un proceso, por ejemplo excepciones de ejecución.

 

Resumen:
http://rapidshare.com/files/73936522/SistemasOperativos.mp3.html

 

 

 

 

UNIDAD III: ADMINISTRACION DE MEMORIA PRINCIPAL

 

Administración de memoria Principal 

  • La memoriaes un array de words y  bytes, cada uno con su dirección propia. Es un repositorio de datos de rápido acceso compartido por el CPU y los dispositivos de E/S
  • La memoria principal es un dispositivo de almacenamiento volatil. Pierde su contenido en caso de interrupción del sistema y falla.
  • El sistema operativo es responsable de las siguientes actividades respecto a la admistración de  memoria:
    • Llevar cuenta de que partes de la memoria estan siendo utilizadas y por quien.
    • Decidir que procesos cargar en memoria cuando esta está disponible.
    • Alojar y desalojar espacio de memoria cuando sea requerido.

 
 

 

Administración de la Memoria

La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para ello existen diferentes esquemas de administración de memoria desde los mas simples hasta los mas elaborados entre los cuales se ubican:

  Administración de la memoria sin intercambio o paginación.

Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.

  Monopogramación sin intercambio o paginación.

Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.

  Multiprogramación y uso de la memoria.

La multiprogramación facilita la programación de una aplicación al dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.

Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula:

Uso de la CPU = 1 – pn

  Multiprogramación con particiones fijas

El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también.

Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.

  Intercambio

En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.

  Multiprogramación con particiones variables.

Mediante un algoritmo de administración de memoria las particiones variables varían de forma dinámica durante el uso de la máquina, evitando desperdicio de memoria

Otros métodos de administración de memoria que tenemos son:

la administración de memoria con mapa de bits

la memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria.

la administración de memoria con listas ligadas

otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista específica un hueco o un proceso.

la administración de memoria con el sistema de los asociados

basado en el sistema binario o utiliza para las direcciones.

  Memoria Virtual

El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.

  Paginación

El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas.

Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.

Paginación de nivel 1: PDP-11

Paginación de 2 niveles: la VAX

Paginación de 3 niveles: la SPARC

Paginación de 4 niveles: la 68030

Memoria asociativa

En los algoritmos de paginación las tablas de páginas se mantienen en la memoria debido a su gran tamaño, en potencia este diseño tiene un efecto enorme en el rendimiento.

  Algoritmos de reemplazo de páginas.

Cuando ocurre un fallo de página el sistema operativo debe elegir una página para retirarla de la memoria y hacer un espacio para la página por recuperar. Si la página por eliminar fue modificada mientras estaba en memoria, debe escribirla en el disco para mantener actualizada la copia del disco, si por el contrario la página no ha sido modificada la copia del disco ya está actualizada por lo que no es necesario volver a escribir, la página por leer sólo escribe encima de la página por retirar.

Aunque es posible elegir una página al azar para el reemplazo relacionado con un fallo de página, el rendimiento del sistema es mucho mejor si se elige una página de poco uso.

  Algoritmo de reemplazo de páginas optimo

Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la práctica.

Al momento de ocurrir un fallo de página cierto conjunto de páginas se encuentran en la memoria, en la siguiente instrucción se hará referencia a una de estas páginas, otras páginas no se utilizaran sino hasta mucho después, cada página puede ejecutarse con el número de instrucciones ejecutadas antes de la primera referencia a esa página, el algoritmo dice que se elimine la página con la mayor etiqueta; si una página no va a utilizase sino hasta mucho después que otra la eliminación de la primera retrasa el fallo de página lo mas posible, el único problema de este algoritmo es que es irrealizable. Al momento del fallo de página el S.O. no tiene forma de saber a qué página se hace referencia.

  Algoritmo de página de uso no muy reciente.

En un fallo de página , el sistema operativo inspecciona todas las páginas y las divide en cuatro categorías según los valores actuales de los bits R y M

Clase 0: No se ha hecho referencia ni ha sido modificada

Clase 1: No se ha hecho referencia pero ha sido modificada

Clase 2: Se ha hecho referencia pero no ha sido modificada

Clase 3: Se ha hecho referencia y ha sido modificada

El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una página modificada sin referencias al menos por lo general un intervalo de reloj, este algoritmo es fácil de comprender, de implantación eficiente y con un rendimiento que, aún sin ser el óptimo si es adecuado en muchos casos.

  Algoritmo de reemplazo ” primero en entrar, primero en salir FIFO”

El sistema operativo tiene una lista de todas las páginas que se encuentran en memoria, siendo la primera página la mas antigua y la última la mas reciente, en un fallo de página, se elimina la primera página y se añade la nueva al final de la lista.

  Algoritmo de reemplazo de páginas de la segunda oportunidad

Una modificación simple del FIFO que evita deshacerse de una página de uso frecuente inspecciona el bit R de la página mas antigua, busca una página antigua sin referencias durante el anterior intervalo de tiempo.

  Algoritmo de reemplazo de páginas del reloj

Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las páginas en una lista circular con la forma de un reloj, una manecilla apunta hacia la mas antigua. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la nueva página en su lugar en el reloj y la manecilla avanza una posición, si R=1 la manecilla avanza una posición y el bit se limpia, esto continua hasta encontrar una página con R=0.

  Segmentación

La memoria virtual que hemos analizado hasta ahora es unidimensional, puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás.

Una memoria segmentada tiene otras ventajas como hacer mas sencilla la administración de las estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento independiente con la posición inicial cero el ligado independiente de los procesos compilados es mucho mas sencillo.

Bit que se activa si se hace referencia a la página en cuestión

Bit que se activa si se modifica la página

 

UNIDAD IV: ADMINISTRACION DE ENTRADA Y SALIDA

 

Administración de entradas y salidas 

  • El sistema de entradas y salidas consiste de:
    • un sistema de buffer-caching
    • Una interface general de drivers de dispositivos
    • Drivers para  dispositivos específicos

 

Administración de Canales

Todos los periféricos se encuentran vinculados a la CPU a través de canales de distinto tipo. Un canal no es sólo un cable, sino que está constituido, además, por un procesador de entrada/salida que puede trabaja simultáneamente con el procesador de la CPU y que permite el trabajo en multiprogramación.

Hay canales que pueden realizar de a una operación por vez y otros que puede realizar más de una.

Todo canal puede tener conectadas varias unidades periféricas. Algunos canales exigen que las unidades sean del mismo tipo y otros admiten unidades de distinto tipo.

Considerando que cada programa que se está ejecutando puede solicitar distintas operaciones de entrada/salida, es necesario que un programa residente se encargue de lograr que todas esas operaciones se ejecutan de la manera más eficiente posible.

Cuando un programa efectúa una interrupción pidiendo la ejecución de una operación de entrada/salida, el supervisor debe analizar qué canal deberá ser utilizado para atender ese requerimiento; determinado el canal, deberá verificar el tipo de canal, el estado en que se encuentra y si existen operaciones pendientes para ese canal.

Si el canal se encuentra en uso, el residente registrará la operación de entrada/salida en una cola de espera que normalmente no tiene prioridades, es decir que se irán realizando en el mismo orden en que fueron solicitadas.

Si el equipo no ha sido correctamente configurado los canales pueden convertirse en un cuello de botella.

Administración de Unidades

Tenemos en este caso 2 tipos de dispositivos: los de acceso directo que permiten el acceso compartido entre distintos programas (unidades de disco); y los de acceso secuencial que son dispositivos de acceso dedicado (cinta, impresora)

Impresora : Es uno de los dispositivos más lentos, por eso una gran cantidad de sistemas operativos cuentan con una facilidad llamada SPOOLING u operación periférica simultánea en línea.

Cada vez que un programa abre un archivo asignado a la impresora, el supervisor abre un archivo en una unidad de acceso directo (generalmente en disco magnético). Además, cada vez que un programa solicita una operación de impresión, el residente desvía la impresión y graba la línea en el archivo correspondiente.

Esto permite no sólo que varios programas impriman intercaladamente, sino también que un mismo programa genere más de un listado en la misma ejecución.

Es decir que el spooling hace independizar totalmente los conceptos de impresora física e impresora lógica. El computador tendrá todas las impresoras virtuales necesarias independientes de las impresoras físicas. Pero esas imágenes de impresión que se grabarán en disco magnético ocuparán un considerable lugar en dicho soporte que debe tener presente al configurar el equipo.

El sistema operativo es quien cumple con las actividades conducentes a concretar la impresión física, es decir el pase del soporte de spool a impresión. Además cumple otras actividades que hacen al control de esta facilidad, tales como:

·        eliminar un listado;

·         listar por pantalla las impresiones pendientes, y sus datos;

·        especificar la cantidad de copias a emitir;

·         especificar que no se destruya el listado (en disco) luego de la impresión;

·        cambiar el orden de prioridad;

·         determinar la impresión de un listado en particular o a partir de una determinada hoja del mismo,

·        establecer que un listado no sea impreso hasta que se indique lo contrario;

·        etc.

En cuanto al módulo que cumple estas funciones, hay 2 posibilidades:

·         el supervisor se encarga de administrar la cola de impresión (residente); o

·         un programa parte es el que se encarga (transiente).

Disco y diskette: Ambos son soportes de acceso compartido, ya que varios usuarios pueden estar procesando sobre ellos a través de distintos programas y a su vez sobre los mismos o diferentes archivo. El problema básico de la administración de estas unidades está dado por la asignación del espacio a los archivos en los momentos de creación y expansión o reducción de un archivo existen debido a su actualización. La asignación de espacio puede ser manual (muy desventajoso y engorroso a la larga) o puede ser tarea del sistema operativo.

Independencia

Es una característica de algunos sistemas operativos por la cual los programas son independientes de las unidades físicas. Esto quiere decir que el programa no hace referencia a una unidad periférica en particular sino a un tipo de unidad periférica. La asignación en este caso podrá ser manual o será función del supervisor determinar la unidad física a utilizar.

 

GLOSARIO

 C: (1) la letra que designa a la primera unidad de disco duro o a la primera partición activa de éste en el sistema operativo DOS.

C: (2) Un lenguaje de programación de alto nivel desarrollado en Bell Labs, que es capaz de manipular la computadora a bajo nivel, tal como lo haría un lenguaje ensamblador. Durante la segunda mitad de la década del 80, el C se convirtió en el lenguaje elegido para el desarrollo de software comercial. El C puede ser compilado al lenguaje de m quina de casi todas las computadoras. Por ejemplo, el UNIX esta escrito en C y ejecuta en una amplia variedad de micro, mini y macrocomputadoras. El C se programa como una serie de funciones que se llaman unas a otras para el procesamiento. Aun el cuerpo del programa es una función denominada “main” (principal). Las funciones son muy flexibles, permitiendo a los programadores la elección entre el uso de la biblioteca estándar que se provee con el compilador, el uso de funciones de terceros creadas por otros proveedores de C, o el desarrollo de sus propias funciones. Comparado con otros lenguajes de programación de alto nivel, el C parece complicado. Su apariencia intrincada se debe a su extrema flexibilidad.

CACHE: Una sección reservada de la memoria que se utiliza para mejorar el rendimiento. Un cache de disco es una porción reservada de la memoria normal, o memorias adicional en la tarjeta controladora del disco. Cuando el disco es leído, se copia un gran bloque de datos en el cache. Si los requerimientos de datos subsiguientes pueden ser satisfecho por el cache, no se necesita el empleo de un acceso a disco que es mas lento. Si el cache es utilizado para escritura, los datos se alinean en memoria y se graban en el disco en bloques mas grandes. Los caches de memoria son bancos de memoria de alta velocidad entre la memoria normal y la CPU. Los bloques de instrucciones y datos se copian en el cache, y la ejecución de las instrucciones y la actualización de los datos son llevados a cabo en la memoria de alta velocidad.

CD ROM: Compact Disc Read Only Memory, Memoria de Solo Lectura en Disco Compacto. Un formato de disco compacto que se utiliza para almacenar texto, gráficos y sonido estereofónico de alta fidelidad. Es prácticamente el mismo disco que un CD de música, pero usa pistas distintas para los datos. Un reproductor musical de CD no puede reproducir discos CD ROM, pero un reproductor de CD ROM puede reproducir discos CD, y tiene enchufes para conectarlo a un amplificador y/o auriculares. Un lector de CD ROM esta cableado y controlado por una tarjeta que se enchufa en una de las ranuras de expansión de la computadora. Los CD ROM pueden almacenar mas de 600 MB de datos, lo que equivale a aproximadamente 250.000 paginas de texto o 20.000 imágenes de resolución media. Los CD ROM se están haciendo imprescindibles para grandes catálogos y obras de referencia. El audio y los datos residen en pistas separadas y no pueden ser oídos y vistos simultáneamente. Con un estándar ampliado, llamado CD ROM XA, varios grados de audio de baja fidelidad pueden oírse mientras se visualizan simultáneamente los datos.

CHAT: Charla.

CHIP: Un circuito integrado. Los chips tienen aproximadamente de 2 a 12 mm. de lado y aproximadamente 1 mm. de espesor. Contienen desde unas pocas decenas hasta varios millones de componentes electrónicos (transistores, resistencias, etc.).

CLONICO: ordenador montado a partir de piezas de terceros fabricantes, en el cual no existe tecnología aportada por el ensamblador; también denominado ordenador ensamblado. También, componente mimetizado por un fabricante a partir del modelo original de otro con el que es compatible.

COBOL: COmmon Business Oriented Language. Lenguaje Común Orientado a los Negocios. Un programa de programación de alto nivel orientado a los negocios, que ha sido el principal lenguaje de aplicaciones comerciales en mini y macrocomputadoras. Su adaptación a las computadoras personales esta aumentando continuamente. El COBOL es un lenguaje compilado y fue uno de los primeros lenguajes de alto nivel en ser desarrollado. Adaptado formalmente en 1960, deriva de un lenguaje llamado Flowmatic, de mediados de los 50. El COBOL requiere una escritura mas extensa que otros lenguajes, pero el resultado es una mayor legibilidad.

COMPILER: compilador. (1) Software que traduce lenguajes de programación de alto nivel, como COBOL y C, en lenguaje maquina. Un compilador habitualmente genera en primer lugar lenguaje ensamblador y a continuación traduce este lenguaje a lenguaje maquina.(2) Software que convierte un lenguaje de alto nivel a un juego de ordenes y un texto en una representación de muy bajo nivel que pueda ejecutarse. Por ejemplo, un compilador de ayuda convierte un archivo de texto embebido dentro de las directivas del usuario en un archivo codificado que haya sido enlazado en el entorno de operación. Un compilador diccionario convierte términos y definiciones en un sistema de diccionario de búsqueda.

COMPUTER: computadora, computador, ordenador. Una maquina de propósito general que procesa datos de acuerdo con el conjunto de instrucciones que están almacenadas internamente, ya sea temporal o permanentemente. La computadora y todo el equipo conectado a ella se denomina hardware. Las instrucciones que le dicen lo que tiene que hacer se llaman software. Un conjunto de instrucciones que lleva a cabo una tarea especifica se denomina programa, o programa de software.

CONTROLADOR: forma española de denominar los drivers.

COOKIE: Pequeño trozo de datos que entrega el programa servidor de HTTP al navegador WWW para que este lo guarde. Normalmente se trata de información sobre la conexión o los datos requeridos, de esta manera puede saber que hizo el usuario en la ultima visita.

COPROCESADOR: cualquier microchip que realice una operación especializada, ayudando o liberando al microprocesador principal de realizarla. Generalmente, se entiende por tal al específicamente “matemático”, aunque en la actualidad éste suele venir integrado en el micro principal.

COREL DRAW: Un programa de ilustración basado en Windows, de Corel Systems Corporation, para PC 286 y superiores. Introducido a comienzos de 1989, el Corel Draw incluye mas de 100 tipografías de precisión y es conocido por su velocidad y facilidad de uso. Genera sus propios archivos de gráficos vectoriales CDR, pero puede importar otros formatos gráficos populares.

CPS: caracteres por segundo que puede escribir una impresora.

CPU: Control Processing Unit, unidad central de proceso. La parte de una computadora que realiza la computación. También llamada el procesador, esta constituida por la unidad de control y la ALU. La CPU de una computadora personal esta contenida en un microprocesador único. La CPU de una minicomputadora esta contenida en una o varias tarjetas de circuito impreso. La CPU de una macrocomputadora esta contenida en muchas tarjetas de circuito impreso. La CPU, el reloj y la memoria principal constituyen una computadora. Un sistema informático completo requiere la agregación de unidades de control, dispositivos de entrada, salida y almacenamiento y de un sistema operativo.

 

 

 

 

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: