Guia Sistemas Operativos II

105
MAINFRAME: SISTEMAS OPERATIVOS

Transcript of Guia Sistemas Operativos II

MAINFRAME:

MAINFRAME:

SISTEMAS OPERATIVOS

Autor: prof: Luis Martin Introduccin

Sin el software, una computadora no es ms que una masa metlica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar informacin, encontrar errores de ortografa en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general en dos clases: los programas de sistema, que controlan la operacin de la computadora en si 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 (SO), que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicacin. El crecimiento del rendimiento de los microcomputadores ha sido el ms rpido, en cierto modo porque estas mquinas aprovecharon las ventajas que ofrece la tecnologa de circuitos integrados. Adems, desde 1980, la tecnologa de microprocesadores ha sido la tecnologa elegida para las nuevas arquitecturas y las nuevas implementaciones de arquitecturas antiguas.

Dos cambios significativos en el mercado de computadores han hecho ms fcil que antes el xito comercial de las nuevas arquitecturas. En primer lugar, la eliminacin virtual de la programacin en lenguaje ensamblador ha reducido drsticamente la necesidad de la compatibilidad del cdigo objeto. En segundo lugar, la creacin de sistemas operativos estandarizados, independientes de los vendedores, como por ejemplo UNIX, ha reducido el coste y riesgo de lanzar al mercado una nueva arquitectura. A uds los estudiantes va dirigido este texto con la finalidad de que tengan una buena visin de lo que son y como funcionan los sistemas operativos. Caracas Marzo, 2011

SISTEMAS OPERATIVOS:Entre las dcadas de 1950 y 1970 las computadoras eran dispositivos enormes, controlados mediante una consola. Los dispositivos de entrada ms comunes eran los lectores de tarjetas. Se realizaba la carga de un trabajo y ste poda llegar a terminar en cualquier momento (minutos, horas o das despus); por lo tanto, cuando el programa terminaba la ejecucin, alguien deba realizar la tarea de hacer una nueva carga para ejecutar una nueva tarea. De esta manera surge el monitor residente.

Un monitor residente estaba compuesto por un cargador, un Intrprete de comandos y un Controlador (drivers) para el manejo de entrada/salida.

En informtica, un cargador es la parte de un sistema operativo que es responsable de cargar programas en memoria desde los ejecutables (por ejemplo, archivos ejecutables). El cargador es usualmente una parte del ncleo del sistema operativo y es cargado al iniciar el sistema y permanece en memoria hasta que el sistema es reiniciado o apagado. Algunos sistemas operativos que tienen un ncleo paginable pueden tener el cargador en una parte paginable de la memoria, entonces a veces el cargador hace un intercambio de memoria

Elsoftwareoperativo viene conformado por el conjunto deprogramasque se instalan enla computadorapara crear la interfaz grfica del usuario

Tipos de Software

Todos los programas que conforman el software, pueden ser divididos en dos bien diferenciados por sufuncin:

Software desistema:esta compuesta por el conjunto de programas imprescindibles para el funcionamiento delhardware, ms un conjunto cuyamisines de facilitar el uso del sistema y optimizar susrecursos.

Software de aplicacin:es el conjunto de programas que se desarrollan para que unacomputadorarealice cualquiertrabajocontrolado por el usuario.

Gestin del Procesador:Los programas del procesador son los encargados de la preparacin de los programas de usuario para su ejecucin, as como de la asignacin de tiempos en el procesador. Sus principales fundones son:

Preparacin de programas:su misin es transferir los programas ejecutables de usuario desde lamemoriaexterna a la memoria central de la computadora a partir de una determinadadireccinde memoria; por medio de unprogramaque se denomina cargador.

Planificacin del procesador:consiste en el control, a trabes d una determinadapolticade asignacin de tiempos, de utilizacin del procesador a los distintosprocesosque en un momento determinado se en cuantan en el sistema. En lossistemasopresivos actuales existe una gran variedad de formas de planificar eltiempodel procesador.

Asignacin de perifricos:en un programa, generalmente, nunca se especifica el perifricoconcretoque se va a utilizar, sino que se solicita una impresora, un disco, etc. Estegrupode programas de asignacin transforma las solicitudes simblicas, hechas en el programa, en las asignaciones fsicas y concretas de cada perifrico.

Relanzamiento de programas:a veces, durante la ejecucin de un programa en una computadora, se producen interrupciones fortuitas que causan la parada del proceso que se estaba ejecutando, o bien se interrumpe porque se estn ejecutando varios procesos a la vez y se tienen que ir turnando. Este grupo de programas se encarga de establecer un punto de control en el instante de la interrupcin para que se pueda reproducirel estadoque tena el proceso cuando se vuelve a reactivar. Para ello, se reestablecenlos valoresde cada electo en el momento de la interrupcin hasta conseguir elestadode la ejecucin del programa. Una vez subsanada la causa de la parada o le vuelve a tocar el turno, se pone en funcionamiento nuevamente el proceso.

Gestin de Memoria: Un sistema operativo contiene un conjunto de programas cuya misin es la de asignar y controlar elalmacenamientoen la memoria interna y externa de la computadora, fundamentalmente la interna por ser un recurso escaso y caro.

Por otra parte, un sistema puede mantener en un mismo instante un gran nmero de usuarios y procesos, y stos pueden estar solicitando y manejando continuamentearchivosen memoria externa, en ocasiones hasta compartindolos, y por ello ser necesario la existencia de una serie de programas en el sistema operativo que nos aseguren el correcto funcionamiento del almacenamiento secundario.

Gestin de entrada/salida: Es otra de las misiones de un sistema operativo para facilitar el uso de los distintos dispositivos externo que forman parte del sistema informtico, Estos programas de de control tienen como misin gestionar las operaciones que en proceso realice sobre un dispositivo externo.

Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecucin secuencial.

Antes de comenzar la ejecucin, el operador del sistema deba agrupar tareas que fueran similares. Esto se deba a que los sistemas de cmputo no contaban con una gran cantidad de memoria, ni tampoco podan cargar rutinas de forma dinmica, por lo cual todas las rutinas deban ser cargadas en un momento inicial, anterior a la ejecucin. Al agrupar tareas similares, el operador poda cargar todas las rutinas (la idea es que la mayora fueran compartidas) que necesitaran las tareas y todos los datos de entrada de todas las tareas en la memoria principal

Un intrprete de rdenes o de comandos, es un programa informtico que tiene la capacidad de traducir las rdenes que introducen los usuarios, mediante un conjunto de instrucciones facilitadas por l mismo directamente al ncleo y al conjunto de herramientas que forman el sistema operativo.[1] Las rdenes se introducen siguiendo la sintaxis incorporada por dicho intrprete, dentro del entorno proporcionado por el emulador de terminal, mediante un inductor que espera a que le sean introducidos los comandos o instruccionesUn controlador de dispositivo, llamado normalmente controlador (en ingls, device driver) es un programa informtico que permite al sistema operativo interactuar con un perifrico, haciendo una abstraccin del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica al sistema operativo, cmo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podra usar el hardware.

Un sistema operativo esta compuesto por tres programas principales:

IPL: Que es el programa que permite la carga y arranque de este

Supervisor Que controla y supervisa los procesos de ejecucin en el sistema operativo. Este a su vez esta formado por dos grupos de programas que son programas de control y programas de procesamiento.

Job control lenguaje: Que es el lenguaje de control de trabajo en el sistema operativo.

Programas de proceso:

Estn enfocados preferentemente para ayudar al programador en la puesta a punto de los programas. Todo sistema operativo posee en su entorno un conjunto de programas para este fin. Existen dos tipos de programas deproceso: los programas traductores y los programas deservicio.Programas Traductores:Son programas que toman como entrada un programa escrito enlenguajesimblico alejado de la maquina, denominado programa fuente, y proporcionan como salida otro programa equivalente escrito en un lenguaje comprensible por elhardwarede la computadora, denominado programa objeto.

Existen 3 tipos de programas traductores: los ensambladores, compiladores y los intrpretes:

Programas ensambladores:transforman programas fuente escritos en lenguajes simblicos de bajo nivel (denominados lenguajes ensambladores).

Programas compiladores:son programas traductores encargados de transformar programas fuente escrito en lenguaje simblico de alto nivel, en programas objeto escritos en lenguaje mquina.

Programas intrpretes:transforman programas fuente escritos en lenguaje de alto nivel en programas objeto escritos, en lenguaje mquina.

Programas de Servicio: Son un grupo de programas que realizan funciones tiles para el sistema o para el usuario, denominados comnmente utilidades.

Programas de manipulacin de datos: realiza las siguientesfunciones:

Transferencia de informaciones.

Recodificacin o transformacin de informaciones.

Reorganizacin de la informacin en archivos.

Ordenacin de datos en archivos, entre otras.

.Traductores: Tienen por objeto convertir las aplicaciones de usuario en un lenguaje nativo del procesador (Lenguaje que se denomina cdigo mquina)

El cdigo mquina es especfico de cada tipo de ordenador.

Tipos de traductores:

Ensambladores: El lenguaje ensamblador (assembler) utiliza una serie de cdigos mnemotcnicos que se corresponden de forma unvoca a las instrucciones del lenguaje mquina.

Compiladores: Se suele traducir de un lenguaje de alto nivel a cdigo mquina y adems la traduccin es completa antes de ejecutar el programa Fuente Compilador objeto

Interpretes: La traduccin se efecta instruccin a instruccin, con el objetivo de ejecutarlas rpidamente.

Lenguaje de ALTO NIVEL: El nivel de abstraccin ofrecido, permite al usuario expresar la actividad de procesamiento en un lenguaje natural.

Lenguaje de BAJO NIVEL: Se aproxima al lenguaje maquina. Assembler {Cdigo maquina )Codigo fuente: Al conjunto ordenado de instrucciones escritas en lenguaje de alto nivel o lenguaje ensamblador.

Codigo objeto: Al conjunto de instrucciones que se obtienen del proceso de depuracin del programa fuente.Los programas de utilidad tienen por objeto la manipulacin de archivos.

Programas de Aplicaciones: Son aquellos programas que realizan actividades especficas que el usuario desea encomendar al sistema.

El firware es un conjunto de programas que se almacenan en cdigo mquina en dispositivos de memoria no voltil. ROM En el PC BIOS (Basic Input Output System) Ese conjunto de cdigo de la BIOS activa el POST (Power on self test), que se entiende como el proceso de autodiagnstico de puesta en marcha. Es lo primero que se efecta. (proceso fsico).Job (Trabajo): Conjunto de datos + todos los programas que los procesan

Un trabajo esta compuesto por un nmero de pasos que son cada programa que procesa la informacin. Se realizan de forma secuencial, esto es, los trabajos van llegando de forma secuencial y se forma lo que se llama la cola de trabajo (o cola del sistema) que en principio se ejecutan de forma secuencial segn han ido llegando.

Esta cola se realiza porque en un momento determinado una aplicacin utiliza ciertos recursos que no pueden ser utilizados al mismo tiempo por otras aplicaciones. Se utiliza el lenguaje JCL (Job Control Lenguaje) para modelar los trabajos

Multiprogramacin: Proceso concurrente y no simultaneo de mas de un job trabajando en un computador. Nunca al mismo tiempo: El profesor ampliara en clase este concepto.

Tiempo compartido: sistema de trabajo de un ordenador gracias al cual se atienden peticiones de diferentes procesos de forma aparentemente simultnea.

Procesamiento por lotes Los primeros computadores eran dispositivos extremadamente costosos y muy lentos. Las mquinas fueron tpicamente dedicadas a un conjunto particular de tareas y eran operados desde un panel de control, el operador introduca manualmente pequeos programas por medio de interruptores para cargar y ejecutar programas. Estos programas podan llevar horas o incluso semanas para finalizar su tarea. A medida que las computadoras aumentaron su velocidad, los tiempos de ejecucin se redujeron, y repentinamente el tiempo tomado para leer y cargar el siguiente programa empezaba a ser relativamente grande en comparacin con el tiempo de uso de la CPU. sta ltima permaneca demasiado tiempo inactiva mientras se realizaban tareas de entrada/salida, hecho que se convirti en una importante preocupacin. Para mejorar el aprovechamiento de las computadoras, las anteriores metodologas de procesamiento por lotes simples evolucionaron a sistemas de procesamiento por lotes multiprogramados, de modo que mientras un primer programa era ejecutado inmediatamente se empezaba a cargar en los dispositivos de entrada el siguiente programa en la cola, el cual se almacenaba en un buffer y se mantena en espera, cuando el primer programa dejaba de ejecutarse o realizaba nuevas tareas de entrada/salida el siguiente en la cola ya estaba disponible para su procesamiento. De este modo, se alineaban los programas uno detrs del otro para que tan pronto como uno terminara el siguiente comenzara, reduciendo drsticamente los tiempos muertos de la CPU.

Generalmente los programas introducidos en sistemas de procesamiento por lotes, utilizabantarjetas perforadasocintas de papel. Los programadores utilizaban la llamadas perforadoras de tarjeta para codificar sus programas La IBM 029 fue la de mayor uso.. Cuando las tarjetas finalmente estaban preparadas, eran enviadas al equipo de operaciones( Lectoras de tarjetas), quienes le asignaran un horario determinado para su ejecucin. Se priorizaban los programas importantes para que su tiempo de espera fuese menor, mientras que los menos importantes deban esperar un tiempo indeterminado. Cuando el programa finalmente era ejecutado, la salida, generalmente impresa, sera retornada al programador. El proceso completo poda tardar das, durante los cuales el programador poda no ver el computador nunca.

La alternativa, permitiendo al usuario operar el computador directamente, era generalmente demasiado costosa para ser considerada. Esto era debido a que el usuario deba esperar largos retardos simplemente sentado all mientras se introduca y cargaba el cdigo. Esto limit los desarrollos en la interactividad directa usuario/maquina nicamente a las grandes organizaciones que podan pagar para despilfarrar ciclos computacionales, asi como grandes universidades en general. Los programadores en las universidades denigraron los comportamientos inhumanos que el procesamiento por lotes impuso, al punto que los estudiantes de Stanford hicieron un cortometraje humorstico criticndolo. Ellos experimentaron con nuevas maneras de interactuar directamente con el computador, un campo conocido hoy como Interaccin Humano Mquina.

Eninformticaunamquina virtuales unsoftwareque emula a una computadora y puede ejecutar programas como si fuese una computadora real.

La caracterstica esencial de las mquinas virtuales es que los procesos que ejecutan estn limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de este "ordenador virtual".

El uso domstico ms extendidos de las mquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (Linux, por ejemplo) desde nuestro sistema operativo habitual (Windows por ejemplo) sin necesidad de instalarlo directamente en nuestro ordenador y sin miedo a que se desconfigure el sistema operativo primario.

Las mquinas virtuales se pueden clasificar en dos grandes categoras segn su funcionalidad y su grado de equivalencia a una verdadera mquina. Mquinas virtuales de sistema (en ingls System Virtual Machine) Mquinas virtuales de proceso (en ingls Process.. Virtual Machine)

Las mquinas virtuales de sistema, tambin llamadas mquinas virtuales de hardware, permiten a la mquina fsica subyacente multiplexarse entre varias mquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de software que permite la virtualizacin se la llama monitor de mquina virtual o "hypervisor". Un monitor de mquina virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("host operating system").

Una mquina virtual de proceso, a veces llamada "mquina virtual de aplicacin", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La mquina se inicia automticamente cuando se lanza el proceso que se desea ejecutar y se para cuando ste finaliza.

Su objetivo es el de proporcionar un entorno de ejecucin independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma.

Unbuffer(obfer) eninformticaes un espacio dememoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia.

Los buffers se utilizan, a menudo, conjuntamente con E/S de hardware, tal como unidades de disco, enviar o recibir datos a/o desde una red. Los buffers utilizan generalmente un mtodo FIFO (primero en entrar, primero en salir), es decir, la salida de datos se produce en el orden en que llegaron.

Una cach puede ser usada a veces como un buffer, y viceversa. Sin embargo, una cach opera con el supuesto de que los mismos datos van a ser utilizados mltiples veces, que los datos escritos sern ledos en un periodo corto de tiempo, o teniendo en cuenta la posibilidad de mltiples lecturas o escrituras para formar un nico bloque ms grande. Su premisa bsica es reducir los accesos a los almacenamientos de nivel ms bajo, los cuales son bastante lentos. La cach tambin es normalmente una capa de abstraccin que est diseada para ser invisible.

Spooling(Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en unbuffer(un rea especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando est listo.

Elspoolinges til en caso de dispositivos que acceden a los datos a distintas velocidades. Elbufferproporciona un lugar de espera donde los datos pueden estar hasta que el dispositivo (generalmente ms lento) los procesa. Esto permite que la CPU pueda trabajar en otras tareas mientras que espera que el dispositivo ms lento acabe de procesar el trabajo.

La aplicacin ms comn delspoolinges la impresin. En este caso, los documentos son cargados en unbuffer, que habitualmente es un rea en un disco, y la impresora los saca de ste a su propia velocidad. El usuario puede entonces realizar otras operaciones en el ordenador mientras la impresin tiene lugar en segundo plano. Elspoolingpermite tambin que los usuarios coloquen varios trabajos de impresin en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.

El uso de un almacenamiento intermedio permite que varios procesos en paralelo estn generando datos para el dispositivo, sin que se mezcle el resultado, ni que tengan que esperar a que finalice la operacin con elperifrico. En consecuencia se obtiene una comunicacin indirecta entre los programas que escriben los datos y los que los leen. Se suele usar este mecanismo cuando un dispositivo escribe datos a diferente velocidad de la que la lee el dispositivo receptor, lo cual permite que un dispositivo ms lento lo procese a su ritmo.

Tambin se puede referir a un dispositivo de almacenamiento que incorpora un spool fsico, como una unidad de cinta.El reloj del computador:

Un ciclo de reloj es la unidad de tiempo usada para la ejecucin de las operaciones Las operaciones se realizan dentro del ciclo de reloj.

Tambin denominado cielos por segundo o frecuencia, este trmino hace referencia a la velocidad del procesador incorporado en la CPU del ordenador, y se mide en megaherzios (MHz). A mayor ndice de frecuencia, ms rpido es el procesador y, en consecuencia, el ordenador. Hace unos aos era frecuente encontrar procesadores a 16 MHz, pero hoy en da lo normal es que stos superen los 120 MHz.Conceptos relacionado con Ciclo de relojFrecuencia: Frecuencia Nmero de veces que se repite una onda en una cantidad de tiempo determinada. Su unidad de medida es el hertzio y la velocidad de los procesadores es megahertz.Ciclo: Ciclo Rutina que ejecuta un conjunto de instrucciones de manera repetitiva hasta que se cumple....

Programa Residente: Programa Residente Buena parte de los elementos de un programa estn situados en la memoria de acceso selectivo y no entran en la memoria central sino cuando, se necesitan.Puerto Paralelo: Puerto Paralelo Hace posible el flujo de datos a travs de varias lneas. Un caso tpico es la comunicacin entre un ordenador y varias impresoras. Multimedia: Multimedia El concepto Multimedia alude a la combinacin en un ordenador de sonido, grficos, animacin y vdeo. La configuracin habitual del hardware est constituida por un procesador del tipo 386...

MEMORIA VIRTUAL Lamemoria virtuales una tcnica de administracin de la memoria real que permite al sistema operativo brindarle alsoftwarede usuario y a s mismo un espacio de direcciones mayor que la memoria real o fsica.

La mayora de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, lamemoria cach(tanto dentro como fuera del CPU), la memoria fsica (generalmente en forma deRAM, donde la CPU puede escribir y leer directa y razonablemente rpido) y el disco duro que es mucho ms lento, pero tambin ms grande y barato.

Ensistemas operativos el proceso depaginacindememoriadivide los programas en pequeas partes o pginas. Del mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas llamadosmarcos de pgina. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y evita la externa.

En un momento cualquiera, la memoria se encuentra ocupada con pginas de diferentes procesos, mientras que algunos marcos estn disponibles para su uso. El sistema operativo mantiene una lista de estos ltimos marcos, y una tabla por cada proceso, donde consta en qu marco se encuentra cada pgina del proceso. De esta forma, las pginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las pginas de otros procesos.

En latabla de pginasde un proceso, se encuentra la ubicacin del marco que contiene a cada una de sus pginas. Las direcciones lgicas ahora se forman como un nmero de pgina y de un desplazamiento dentro de esa pgina (conocido comnmente como offset). El nmero de pgina es usado como un ndice dentro de la tabla de pginas, y una vez obtenida la direccin del marco de memoria, se utiliza el desplazamiento para componer la direccin real o direccin fsica. Este proceso se realiza en una parte del computador especficamente diseada para esta tarea, es decir, es un proceso hardware y no software.

De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus pginas en marcos libres y se completa su tabla de pginas.

Veamos un ejemplo:

Nmero de marcoPrograma.#pginaDireccin fsica

0Programa A.01000:0000

1Programa A.11000:1000

2Programa A.21000:2000

3Programa B.01000:3000

4Programa B.11000:4000

5Programa C.01000:5000

6Programa C.11000:6000

7Programa D.21000:7000

La tabla de la derecha muestra una posible configuracin de la memoria en un momento dado, con pginas de 4Kb. La forma en que se lleg a este estado puede haber sido la siguiente:

Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 pginas.

El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)

El programa B se carga en memoria (se le asignan los marcos 3 y 4)

El programa C se carga en memoria (se le asignan los marcos 5 y 6)

El programa B termina, liberando sus pginas

El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el marco 7 que permaneca libre)

Proceso C

PginaMarco

01000:5000

11000:6000

Proceso D

PginaMarco

31000:3000

41000:4000

71000:7000

De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:

Proceso A

PginaMarco

01000:0000

11000:1000

21000:2000

Proceso B

PginaMarco

--

--

Ahora consideremos qu sucede cuando un programa quiere acceder a su memoria. Si el programa A contiene una referencia a la memoria con direccin 20FE, se realizar el siguiente procedimiento. 20FE es 0010000011111110 en notacin binaria (en un sistema de 16 bit), y en el ejemplo se estn usando pginas de 4Kb de tamao. Cuando la peticin de la direccin de memoria 20FE es realizada, laUnidad de Gestin de memoriase ve de esta forma:

Al usar pginas de 4096 bytes, todas las ubicaciones dentro de una pgina pueden ser representadas por 12 bits, en el sistema binario (212=4096), lo que deja 4 bits para representar el nmero de pgina. Si las pginas hubieran sido de la mitad del tamao (2048) se podran tener 5 bits para el nmero de pgina, lo que significa que a menor tamao de pgina se pueden tener tablas con ms pginas.

Cuando el pedido de acceso a memoria es realizado, laMMUbusca en la tabla de pginas del proceso que realiz el pedido por la relacin en memoria fsica. En nuestro ejemplo, la pgina nmero 2 del proceso A corresponde al marco nmero 2 en memoria fsica, con direccin real 1000:2000, por lo tanto, la MMU devolver la direccin del marco en memoria fsica, con el desplazamiento dentro de esa Paginacin en memoria virtualEl nico inconveniente depaginacinpura es que todas las pginas de un proceso deben estar en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamao considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramacin del sistema. Para evitar esto, y aprovechando el principio decercana de referenciasdonde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente ms pequeo que el total de sus pginas), se permitir que algunas pginas del proceso sean guardadas en un espacio de intercambio (en memoria secundaria) mientras no se necesiten.

Cuando la paginacin se utiliza junto conmemoria virtual, el sistema operativo mantiene adems el conocimiento sobre qu pginas estn en memoria principal y cules no, usando latabla de paginacin. Si una pgina buscada est marcada como no disponible (tal vez porque no est presente en la memoria principal, pero s en el rea de intercambio), cuando la CPU intenta referenciar una direccin de memoria en esa pgina, laMMUresponde levantando una excepcin (comnmente llamada fallo de pgina). Si la pgina se encuentra en elespacio de intercambio, el sistema operativo invocar una operacin llamadaintercambio de pgina, para traer a memoria principal la pgina requerida. La operacin lleva varios pasos. Primero se selecciona una pgina en memoria, por ejemplo una que no haya sido usada recientemente (para ms detalles veralgoritmos de reemplazo de pginas). Si la pgina fue modificada, se escribe la misma en el espacio de intercambio. El siguiente paso en el proceso es leer la informacin en la pgina necesitada desde el espacio de intercambio. Cuando esto sucede, las tablas para traduccin de direcciones virtuales a reales son actualizadas para reflejar los contenidos de la memoria fsica. Entonces el intercambio de pgina sale, y el programa que us la direccin que caus la excepcin es vuelto a ejecutar desde el punto en que se dio la misma y contina como si nada hubiera pasado. Tambin es posible que una direccin virtual sea marcada como no disponible porque no fue localizada previamente. En estos casos, una pgina de memoria es localizada y llenada con ceros, la tabla de paginacin es modificada para mostrar los cambios y el programa se reinicia como en el otro caso.

Si la pgina que ha provocado el fallo de pgina no se encuentra en el espacio de intercambio, habr que ir a buscarla a la unidad de disco. El proceso, por lo dems sera anlogo.

Muchas aplicaciones requieren el acceso a ms informacin (cdigo y datos) que la que se puede mantener en memoria fsica. Esto es as sobre todo cuando el sistema operativo permite mltiples procesos y aplicaciones ejecutndose simultneamente o concurrentemente Una solucin al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su informacin en disco, movindola a la memoria principal cuando sea necesario.

La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los programas se ejecuten sin tener en cuenta el tamao exacto de la memoria fsica.Direcciones reales y virtuales: MMU ( Unit Magnament Memory)

La traduccin de las direcciones virtuales a reales es implementada por unaUnidad de Manejo de Memoria(MMU). El sistema operativo es el responsable de decidir qu partes de la memoria del programa es mantenida en memoria fsica. Adems mantiene las tablas de traduccin de direcciones (si se usapaginacinla tabla se denominatabla de paginacin), que proveen las relaciones entre direcciones virtuales y fsicas, para uso de la MMU. Finalmente, cuando una excepcin de memoria virtual ocurre, el sistema operativo es responsable de ubicar un rea de memoria fsica para guardar la informacin faltante, trayendo la informacin desde el disco, actualizando las tablas de traduccin y finalmente continuando la ejecucin del programa que dio la excepcin de memoria virtual desde la instruccin que caus el fallo.

En la mayora de las computadoras, las tablas de traduccin de direcciones de memoria se encuentran en memoria fsica. Esto implica que una referencia a una direccin virtual de memoria necesitar una o dos referencias para encontrar la entrada en la tabla de traduccin, y una ms para completar el acceso a esa direccin.

Para acelerar el desempeo de este sistema, la mayora de las Unidades Centrales de Proceso (CPU) incluyen una MMU en el mismo chip, y mantienen una tabla de las traducciones de direcciones virtuales a reales usadas recientemente, llamadaTranslation Lookaside Buffer (TLB). El uso de estebufferhace que no se requieran referencias de memoria adicionales, por lo que se ahorra tiempo al traducir.

En algunos procesadores, esto es realizado enteramente por el hardware. En otros, se necesita de la asistencia del sistema operativo: se levanta una excepcin, y en ella el sistema operativo reemplaza una de las entradas del TLB con una entrada de la tabla de traduccin, y la instruccin que hizo la referencia original a memoria es reejecutada.

El hardware que tiene soporte para memoria virtual, la mayora de la veces tambin permite proteccin de memoria. La MMU puede tener la habilidad de variar su forma de operacin de acuerdo al tipo de referencia a memoria (para leer, escribir, o ejecutar), as como el modo en que se encontraba el CPU en el momento de hacer la referencia a memoria. Esto permite al sistema operativo proteger su propio cdigo y datos (como las tablas de traduccin usadas para memoria virtual) de corromperse por una aplicacin, y de proteger a las aplicaciones que podran causar problemas entre s.

Paginacin de memoria Translation Lookaside Buffer

Translation Lookaside Buffer(TLB) es una memoriacachadministrada por laMMU, que contiene partes de latabla de paginacin, es decir, relaciones entre direcciones virtuales y reales. Posee un nmero fijo de entradas y se utiliza para obtener la traduccin rpida de direcciones. Si no existe una entrada buscada, se deber revisar la tabla de paginacin y tardar varios ciclos ms, sobre todo si la pgina que contiene la direccin buscada no est en memoria primaria (vasememoria virtual). Si en la tabla de paginacin no se encuentra la direccin buscada, saltar una interrupcin conocida comofallo de pgina.

El TLB hace referencia a direcciones fsicas en su tabla. Puede residir entre la CPU y lacachde la misma o entre esta cach y la unidad dememoria primaria. Esto depende de si la cach utiliza direccionamiento fsico o virtual. Si la cach se direcciona de manera virtual, las peticiones se envan directamente de la CPU a la cach, la cual accede al TLB cuando es necesario. Si la cach se direcciona de manera fsica, la CPU realiza una bsqueda en el TLB con cada operacin de memoria, y la direccin fsica resultante es enviada a la cach. Existen pros y contras en ambas implementaciones.

Una optimizacin comn para las cachs direccionadas de manera fsica es realizar una bsqueda en el TLB en paralelo con el acceso a cach. Los bits de orden ms bajo de cualquier direccin virtual (por ejemplo en un sistema dememoria virtualque tiene pginas de 4KB, los 12 bits ms bajos de la direccin virtual) no cambian en la traduccin de direccin virtual a fsica. Durante un acceso a cach se realizan dos acciones: Se utiliza un ndice para encontrar una entrada en el sistema de datos de la cach, y a continuacin las etiquetas de la lnea encontrada se comparan. Si la cach est estructurada de tal manera que pueda ser indexada utilizando solo los bits que no cambian en la traduccin, la cach puede realizar su operacin de "indexacin" mientras el TLB traduce la parte alta de la direccin. Entonces, la direccin traducida del TLB es enviada a la cach. La cach realiza una comparacin de etiquetas para determinar si este acceso ha sido un acierto o un fallo.

Concepto deFalloEn las arquitecturas modernas se pueden observar dos mtodos de tratar un fallo de TLB. Con el manejo hardware del TLB, la propia CPU comprueba lastablas de paginacinpara ver si hay alguna entrada vlida para la direccin virtual especificada. Si la entrada existe, se lleva a la TLB y se reintenta el acceso; esta vez el acceso ser un acierto, y el programa podr proceder con normalidad. Si la CPU no encuentra una entrada vlida para la direccin virtual en las tablas de pgina, se genera una excepcin defallo de pgina, la cual deber manejar elsistema operativo. El manejo de los fallos de pgina normalmente implica llevar los datos pedidos a la memoria fsica, generando una entrada en la tabla de paginacin para mapear la direccin virtual que faltaba para corregir la direccin fsica, y reiniciar el programa.

Con el manejo software de las TLB, un fallo genera una excepcin "fallo de TLB", y el sistema operativo debe acceder a las tablas de paginacin y realizar la traduccin por software. Entonces, el sistema operativo carga la traduccin en el TLB y reinicia el programa desde la instruccin que caus el fallo. Como en el sistema de manejo hardware, si el SO no encuentra una traduccin vlida en las tablas, ocurre un fallo de pgina y el SO deber manejarlo de la manera correspondiente.

Algoritmos de reemplazo de pginasEnsistemas operativosque utilizanpaginacinpara el manejo de memoria, losalgoritmos de reemplazo de pginasson usados para decidir qu pginas pueden ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay espacio.

ptimoEstealgoritmotiene como finalidad retirar la pgina que vaya a ser referenciada ms tarde, por ejemplo si hay una pgina A que ser usada dentro de 10000instrucciones, y una pgina B que ser usada dentro de 2800 instrucciones, se debera eliminar de la memoria la pgina A. Como se puede deducir, para esto el sistema operativo debera ver en cunto tiempo ser usada cada pgina en memoria y elegir la que est ms distante. El problema de este mtodo es que necesita conocimiento del futuro, por lo que es imposible su implementacin. Es un algoritmo terico. Se utiliza a los efectos comparativos con los algoritmos factibles de ser implementados para ver cul se aproxima ms a ste.

Primera en entrar, primera en salir (FIFO,First In, First Out)En este mtodo el sistema operativo slo tiene que guardar en qu orden las pginas fueron cargadas, de modo que al necesitar hacer espacio pueda fcilmente elegir la primera pgina cargada. Se usa unacola, al cargar una pgina nueva se ingresa en el ltimo lugar. Aunque las colas FIFO son simples e intuitivas, no se comportan de manera aceptable en la aplicacin prctica, por lo que es raro su uso en su forma simple. Uno de los problemas que presentan es la llamada Anomala FIFO oAnomala de Belady. Belady encontr ejemplos en los que un sistema con un nmero de marcos de pginas igual a tres tena menos fallos de pginas que un sistema con cuatro marcos de pginas. El problema consiste en que podemos quitar de memoria una pgina de memoria muy usada, slo porque es la ms antigua.

Buffer de datos

Un buffer (o bfer) en informtica es un espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia.

Buffer de TelecomunicacinLa rutina del buffer, o bien, el almacenamiento medio usado en telecomunicaciones, compensa una diferencia en el flujo de datos, o el tiempo de la ocurrencia, al transferir datos desde un dispositivo a otro.

Spoolers Hace aparicin el disco magntico con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del clculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).Llamadas al sistema operativoDefinicin breve: Las llamadas que ejecutan los programas de aplicacin para pedir algn servicio al SO. Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es la interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseado para trabajar sobre el anterior, en general el programa no funcionar, a no ser que el nuevo SO tenga la misma interfaz. Para ello:

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresin sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programacin.Procesos en un sistema operativo:

Un proceso es simplemente, un programa en ejecucin 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 gestin de procesos podra 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 despus 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 ms antiguas.

El sistema de E/SConsiste 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 informacin relacionada, definidas por sus creadores. stos almacenan programas (en cdigo fuente y objeto) y datos tales como imgenes, textos, informacin 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.

Sistemas de proteccinMecanismo 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 proteccin.

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el envo y recepcin de informacin a travs de las interfaces de red. Tambin hay que crear y mantener puntos de comunicacin que sirvan a las aplicaciones para enviar y recibir informacin, y crear y mantener conexiones virtuales entre aplicaciones que estn ejecutndose localmente y otras que lo hacen remotamente.Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de l. Ofrecen un entorno til para el desarrollo y ejecucin de programas, siendo algunas de las tareas que realizan:

Manipulacin y modificacin de archivos.

Informacin del estado del sistema.

Soporte a lenguajes de programacin.

Comunicaciones.

Gestor de recursosComo 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 ejecucin).

y en general todos los recursos del sistema.

Administracin 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 hacindolo hasta su finalizacin y/o interrupcin.

Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, perifricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administracin de usuariosMonousuario: Si slo permite ejecutar los programas de un usuario uno a uno Multiusuario: Si permite que varios usuarios ejecuten concurrentemente sus sistemas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan mtodos de proteccin de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursosCentralizado: Si permite usar los recursos de una sola computadora.

Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, perifricos... ) de ms de una computadora al mismo tiempo.En sistemas demultiprogramacinla cpu alterna de programa en programa, en un esquema deconcurrencia, es decir que la cpu ejecuta en cierto instante un solo programa, intercambiando muy rpidamente entre uno y otro.

Elparalelismo (Multiprocesamiento) real de hardwarese da en las siguientes situaciones:En ejecucin de instrucciones de programa con ms de un procesador de instrucciones en uso simultneamente.

Con la superposicin de ejecucin de instrucciones de programa. Con la ejecucin de una o ms operaciones de entrada / salida.

El objetivo es aumentar el paralelismo en la ejecucin.

Un solo procesador puede ser compartido entre varios procesos con ciertoalgoritmo de planificacin, el cual determina cundo detener el trabajo en un proceso y dar servicio a otro -1En cuanto a lasjerarquas de procesoses necesario sealar que los Sistemas Operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operacin, teniendo adems presente que los procesos pueden generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecucin en paralelo.

Estados de Procesos (Prioridades).Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado.

Debido a ello se puede establecer unaLista de Listospara los procesoslistosy unaLista de Bloqueadospara losbloqueados.

LaLista de Listosse mantiene en orden prioritario y laLista de Bloqueadosest desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los eventos que estn esperando.

Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en la ltima parte de laLista de Listos.La asignacin de la cpu al primer proceso de laLista de Listosse denominaDespacho, que es ejecutado por una entidad del Sistema Operativo llamadaDespachador.ElBloqueoes la nica transicin de estado iniciada por el propio proceso del usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al proceso.

La manifestacin de un proceso en un Sistema Operativo es unBloque de Control de Proceso(PCB) Posee las siguientes caractersticas.Estado actual del proceso.

Identificacin nica del proceso.

Prioridad del proceso.

Apuntadores para localizar la memoria del proceso.

Apuntadores para asignar recursos.

rea para preservar registros.

Cuando el Sistema Operativo cambia la atencin de la cpu entre los procesos, utiliza las reas de preservacin del PCB para mantener la informacin que necesita para reiniciar el proceso cuando consiga de nuevo la cpu.

Los sistemas que administran los procesos deben poder crear, destruir, suspender, reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.

Dar nombre al proceso.Insertar un proceso en la lista del sistema de procesos conocidos.

Determinar la prioridad inicial del proceso.

Crear el bloque de control del proceso.

Asignar los recursos iniciales del proceso.

Un proceso puedecrear un nuevo proceso, en cuyo caso el proceso creador se denominaproceso padrey el proceso creadoproceso hijoy se obtiene unaestructura jerrquica de procesos.

Ladestruccinde un proceso implica:Borrarlo del sistema.

Devolver sus recursos al sistema.

Purgarlo de todas las listas o tablas del sistema.

Borrar su bloque de control de procesos.

Reanudar procesos

Un procesosuspendidono puede proseguir hasta que otro proceso lo reanude.

Reanudar (reactivar) un proceso implica reiniciarlo en el punto donde fue suspendido.

Ladestruccinde un proceso puede o no significar la destruccin de los procesos hijos, segn el Sistema Operativo.

Generalmente se denominaTabla de Procesosal conjunto de informacin de control sobre los distintos procesos.

Planificacin de procesosPlanificacin apropiativa:es la estrategia de permitir que procesos ejecutables (desde el punto de vista lgico) sean suspendidos temporalmente.

Planificacin no apropiativa:es la estrategia de permitir la ejecucin de un proceso hasta terminar.

Planificacin del procesador:determinar cundo deben asignarse los procesadores y a qu procesos, lo cual es responsabilidad del Sistema Operativo.Prioridades

Las prioridades pueden ser de distintos tipos:Tipos de prioridades

Asignadas automticamente por el sistema

Asignadas desde el exterior

Dinmicas

Estticas

Asignadas racionalmente

Asignadas arbitrariamente

.

DIAGRAMAS DE ESTADO

Los diagramas de estado muestran el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicacin en respuesta a eventos (por ejemplo, mensajes recibidos, tiempo rebasado o errores), junto con sus respuestas y acciones..Estado Identifica un periodo de tiempo del objeto (no instantneo) en el cual el objeto est esperando alguna operacin, tiene cierto estado caracterstico o puede recibir cierto tipo de estmulos. Se representa mediante un rectngulo con los bordes redondeados, que puede tener tres compartimientos: uno para el nombre, otro para el valor caracterstico de los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado (entry, exit o do, respectivamente).Eventos Es una ocurrencia que puede causar la transicin de un estado a otro de un objeto. Esta ocurrencia puede ser una de varias cosas:

Condicin que toma el valor de verdadero o falso

Recepcin de una seal de otro objeto en el modelo

Recepcin de un mensaje

Paso de cierto perodo de tiempo, despus de entrar al estado o de cierta hora y

fecha.

Envo de mensajesAdems de mostrar la transicin de estados por medio deeventos, puede representarse el momento en el cual se envan mensajes a otros objetos. Esto se realiza mediante una lnea punteada dirigida al diagrama de estados del objeto receptor del mensaje.Transicin simpleUna transicin simple es una relacin entre dos estados que indica que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas. Transicin internaEs una transicin que permanece en el mismo estado, en vez de involucrar dos estados distintos. Representa un evento que no causa cambio de estado. Se denota como una cadena adicional en el compartimiento de acciones del estado.Acciones:Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transicin. Se puede especificar el ejecutar una accin como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento.Colas: Es una estructura lineal de datos. Una cola es un grupo ordenado de elementos homogneos en el que los nuevos elementos se aaden por un extremo (el final) y se quitan por el otro extremo (el frente). En las colas el elemento que entr primero sale tambin primero, por ello se las llama como listas FIFO (first in, first out) "primero en entrar, primero en salir".

La diferencia con las pilas es en el modo de entrada / salida de datos; en las colas se realizan las inserciones al final de la lista, no al principio.Usos concretos de la cola La particularidad de una estructura de datos de cola es el hecho de que slo podemos acceder al primer y al ltimo elemento de la estructura. As mismo, los elementos slo se pueden eliminar por el principio y slo se pueden aadir por el final de la cola.

Operaciones Bsicas Crear: se crea la cola vaca.

Encolar(aadir, entrar, insertar): se aade un elemento a la cola. Se aade al final de esta.

Desencolar(sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entr.

Frente(consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entr.

Aplicaciones de las ColasLas Colas tambin se utilizan en muchas maneras en los sistemas operativos para planificar el uso de los distintos recursos de la computadora. Uno de estos recursos es la propia CPU (Unidad Central de Procesamiento).

Si esta trabajando en una sistema multiusuario, cuando le dice a la computadora que ejecute un programa concreto, el sistema operativo aade su peticin a su "cola de trabajo".

Cuando su peticin llega al frente de la cola, el programa solicitado pasa a ejecutarse. Igualmente, las colas se utilizan para asignar tiempo a los distintos usuarios de los dispositivos de entrada/salida (E/S), impresoras, discos, cintas y dems. El sistema operativo mantiene colas para peticiones de imprimir, leer o escribir en cada uno de estos dispositivos.

Representacin de las ColasSe las puede representar por listas enlazadas o por arrays

C= Q(1), Q(2)......., Q(n).

En cualquier caso se necesitan dos punteros

frente (f)

final (r)

10026411948

Las operaciones que se pueden realizar con una cola son:

1. Acceder al primer elemento de la Cola

2. Aadir un elemento al final de la Cola

3. Eliminar el primer elemento de la Cola

4. Vaciar una Cola

5. Verificar el estado de la Cola: vaca, Llena.

Verificar si la Cola esta vacaUna operacin muy til es ver si la cola est vaca. Cola Vaca (Cola) devuelve True si la Cola est vaca y False en los dems casos. Ponemos SupCola cuando la cola no est vaca. Tericamente ponemos siempre InsCola, porque en principio, una cola no tiene un tamao limitado. Sin embargo, sabemos de nuestra experiencia con las pilas que ciertas implementaciones requiere que veamos si la estructura est llena antes de aadir otro elemento.

Aprovechamiento de la memoria Las colas pueden necesitar cantidad de memoria sobre todo si se disea con un gran numero de elementos. Para evitar este desperdicio de memoria, existe un procedimiento para disear las colas mediante una lista circular.

Una pila (stack en ingls) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura.

Pila de llamadasLa Pila de llamadas es un segmento de memoria que utiliza esta estructura de datos para almacenar informacin sobre las llamadas a subrutinas actualmente en ejecucin en un programa en proceso.

Cada vez que una nueva subrutina es llamada, se apila una nueva entrada con informacin sobre sta tal como sus variables locales. En especial, se almacena aqu el punto de retorno al que regresar cuando esta subrutina termine (para volver a la subrutina anterior y continuar su ejecucin despus de esta llamada

Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar (push), que coloca un objeto en la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo elemento apilado.

En cada momento slo se tiene acceso a la parte superior de la pila, es decir, al ltimo objeto apilado (denominado TOS, Top of Stack en ingls). La operacin retirar permite la obtencin de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.

Pila como tipo abstracto de datosA modo de resumen tipo de datos, la pila es un contenedor de nodos y tiene dos operaciones bsicas: push (o apilar) y pop (o desapilar). 'Push' aade un nodo a la parte superior de la pila, dejando por debajo el resto de los nodos. 'Pop' elimina y devuelve el actual nodo superior de la pila. Una metfora que se utiliza con frecuencia es la idea de una pila de platos en una cafetera con muelle de pila. En esa serie, slo la primera placa es visible y accesible para el usuario, todas las dems placas permanecen ocultas. Como se aaden las nuevas placas, cada nueva placa se convierte en la parte superior de la pila, escondidos debajo de cada plato, empujando a la pila de placas. A medida que la placa superior se elimina de la pila, la segunda placa se convierte en la parte superior de la pila. Pila como tipo abstracto de datos A modo de resumen tipo de datos, la pila es un contenedor de nodos y tiene dos operaciones bsicas: push (o apilar) y pop (o desapilar). 'Push' aade un nodo a la parte superior de la pila, dejando por debajo el resto de los nodos. 'Pop' elimina y devuelve el actual nodo superior de la pila. Una metfora que se utiliza con frecuencia es la idea de una pila de platos en una cafetera con muelle de pila. En esa serie, slo la primera placa es visible y accesible para el usuario, todas las dems placas permanecen ocultas. Como se aaden las nuevas placas, cada nueva placa se convierte en la parte superior de la pila, escondidos debajo de cada plato, empujando a la pila de placas. A medida que la placa superior se elimina de la pila, la segunda placa se convierte en la parte superior de la pila. Dos principios importantes son ilustrados por esta metfora: En primer lugar la ltima salida es un principio, la segunda es que el contenido de la pila est oculto. Slo la placa de la parte superior es visible, por lo que para ver lo que hay en la tercera placa, el primer y segundo platos tendrn que ser retirados.

Metas de los Sistemas de Multiprocesamiento

Las metas de los sistemas de multiprocesamiento generalmente son la confiabilidad y la disponibilidad muy altas, como as tambin el incremento del poder de computacin.

Distribucin de Ciclos

Una estructura de ciclos o de repeticin implica la repeticin de una serie de proposiciones (cuerpo del ciclo) hasta que ocurre alguna condicin de terminacin, por ejemplo:

Fori= 1 t0 3

A(I)=b(I)+c(I);

El procesador secuencial realizar en secuencia lo siguiente:

A(1)=b(1)+c(1)

A(2)=B(2)+C(2)

A(3)=B(3)+C(3)

En un sistema de multiprocesamiento con tres procesadores disponibles se podran ejecutar concurrentemente.

Un compilador que detecte automticamente el paralelismo implcito puede convertir el ciclo del ejemplo 2.2 en lo siguiente:

cobegin;

A(1)=B(1)+C(1)

A(2)=B(2)+C(2)

A(3)=B(3)+C(3)

:Grados de Acoplamiento en Multiprocesamiento

Los grados de acoplamiento en multiprocesamiento pueden clasificarse enligeramente acopladosy rgidamente acopaldosGrados de acoplamiento en multiprocesamientoDescripcin

Ligeramente acopladoIncluye la conexin de dos o ms sistemas independientes por medio de un enlace de comunicacin.

Cada sistema tiene su propio Sistema Operativo y almacenamiento.

Los sistemas pueden funcionar independientemente y se comunican cuando sea necesario.

Los sistemas separados pueden acceder a los archivos de los otros e intercambiar tareas a procesadores menos cargados.

Rgidamente acopladoUtiliza un solo almacenamiento compartido por varios procesadores.

Emplea un solo Sistema Operativo que controla todos los procesadores y el hardware del sistema.

Tabla 2.5: Grados de acoplamiento en multiprocesamiento.

Organizacin Maestro / Satlite ( Servidor esclavos)Un procesador est diseado como el servidor o maestro y los otros como esclavos.

El procesador maestro es de propsito general y realiza operaciones de Entrada / Salida y computaciones.

Los procesadores esclavos slo realizan computaciones.

Los procesos limitados por computacin pueden ejecutarse con efectividad en los esclavosLos procesos limitados por la Entrada / Salida ejecutados en los esclavos generan frecuentes llamadas de servicios al procesador maestro, pudiendo resultar ineficientes.

Si falla esclavo se pierde capacidad computacional pero el sistema no falla.

Si falla el servidor el sistema falla al no poder efectuar operaciones de Entrada / Salida, por lo que un esclavo debera asumir las funciones del maestro previo cambio de los perifricos y reinicio del sistema.

En el multiprocesamiento simtrico todos pueden hacer Entrada / Salida.

Procesadores Separados

Cada procesador tiene su propio Sistema Operativo y responde a interrupciones de los usuarios que operan en ese procesador.

Existen tablas de control con informacin global de todo el sistema (por ejemplo, lista de procesadores conocidos por el Sistema Operativo) a las que se debe acceder utilizando exclusin mutua.

Es ms confiable que la organizacin maestro / satlite.

Cada procesador controla sus propios recursos dedicados.

La reconfiguracin de los dispositivos de Entrada / Salida puede implicar el cambio de dispositivos a diferentes procesadores con distintos Sistemas Operativos.

La contencin sobre las tablas del Sistema Operativo es mnima.

Tratamiento Simtrico

Es la organizacin ms complicada de implementar y tambin la ms poderosa y confiable.

El Sistema Operativo administra un grupo de procesadores idnticos, donde cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera puede referenciar a cualquier unidad de almacenamiento.

El Sistema Operativo precisa cdigo reentrante y exclusin mutua.

Es posible equilibrar la carga de trabajo ms precisamente que en las otras organizaciones.

Adquieren significativa importancia el hardware y el software para resolucin de conflictos.

Todos los procesadores pueden cooperar en la ejecucin de un proceso determinado.

Elprocesador ejecutivoes el responsable (uno slo) en un momento dado de las tablas y funciones del sistema; as se evitan los conflictos sobre la informacin global.

Rendimiento del Sistema de Multiprocesamiento

An con multiprocesamiento completamente simtrico, la adicin de un nuevo procesador no har que la capacidad de ejecucin del sistema aumente segn la capacidad del nuevo procesador, siendo las causas las siguientes:

Hay sobrecarga adicional del Sistema Operativo.

Recuperacin de Errores

Una de las capacidades ms importantes de los Sistemas Operativos de multiprocesadores es la de soportar fallas de hardware en procesadores individuales y continuar su operacin.

Debe existir el soporte correspondiente en el Sistema Operativo.

Las tcnicas de recuperacin de errores incluyen los siguientes aspectos:

-Los datos crticos (del sistema y de usuario) deben mantenerse en copias mltiples y en bancos de almacenamiento separados.

-El Sistema Operativo debe ejecutar efectivamente con la configuracin mxima y con subconjuntos ante fallas.

-Debe haber capacidad de deteccin y correccin de errores de hardware sin interferir con la eficiencia operacional del sistema.

-Se debe utilizar la capacidad ociosa del procesador para tratar de detectar posibles fallos antes de que se produzcan.

-El Sistema Operativo debe dirigir un procesador operativo para que tome el control de un proceso que se estaba ejecutando en un procesador que falla.

Todas las llamadas al supervisor pueden ser ejecutadas en todos los procesadores, inclusive las de Entrada / Salida.

Si un programa en ejecucin en un procesador pide una operacin de Entrada / Salida en un dispositivo conectado a un procesador diferente, el procesador puede continuar ejecutando el trabajo y la Entrada / Salida se coloca en una cola para su iniciacin por el procesador apropiado.

Se consideraprocesador ejecutanteal que est ejecutando un proceso determinado.

Se consideraprocesador propietarioal que est conectado a los diferentes dispositivos utilizados por el proceso.

Es ms eficiente que la organizacin maestro / satlite, ya que los requerimientos de Entrada / Salida se encolan y no sobrecargan con intercambio de contexto y a que en la organizacin maestro / satlite las peticiones de Entrada / Salida en el satlite provocan un intercambio de contexto en el maestro.

Cada procesador puede ejecutar el planificador para buscar el siguiente trabajo a ejecutar, de forma que un proceso determinado se ejecuta en diferentes procesadores en distintos momentos; adems, el MPS utiliza una sola cola de trabajos y cada procesador puede seleccionar trabajos de ella, con lo cual se equilibra la carga entre los procesadores.

Para minimizar la contencin en el despacho de procesos, los relojes de los procesadores tienen oblicuidad, debido a ello las interrupciones de reloj ocurren en diferentes momentos.

Tendencias de los Multiprocesadores

Todo indica que el uso de los multiprocesadores se incrementar considerablemente en el futuroSINCRONIZACION:

1. En forma general, sincronizar es hacer que coincidan en el tiempo dos o ms fenmenos.En otras palabras, sincronizar se refiere a que dos o ms elementos u operaciones sean programadas para que ocurran en un momento predefinido de tiempo o lugar.

Algoritmos y tecnicas de SincronizacinLa Sincronizacin es el proceso por el cual dos componentes intercambian datos o informacin. Los datos intercambiados pueden afectar la informacin uno o de ambos componentes. Se dice que esto se hace por medio de protocolos de sincronizacin, donde ambos componentes "conocen" la forma de intercambio de datos.

Figura 3.1.Sincronizacin de Informacin

La importancia de la sincronizacin radica en el mantenimiento de la confiabilidad e integridad de la informacin.

Entre los protocolo se encuentran los siguientes:

Slow sync : En trminos generales cuando se va ha sincronizar con este protocolo la pda transfiere todos los datos hacia el PC. y compara uno a uno los registro para ver cual ha sufrido cambios, se ha borrado o ha sido adicionado.

Entoces cada uno de los datos existentes en la Base de datos o archivo de la pda pasa a sincronizar al pc, por eso se denomina slow sync.

Un ejemplo de datos pude ser la sincronizacin de pedidos, los cuales se requieren que pasen todos para su posterior facturacin.

Fast sync : Este protocolo de sincronizacin es mucho mas rpido que el anterior y se basa en que slo pasan al servidor los datos que han tenido modificaciones, en otras palabras, los datos que no han sufrido cambios, borrados o adiciones no se sincronizan.

Un ejemplo tpico de sincronizacin con este protocolo seria el del mantenimiento de una agenda de citas. Donde no se interesa sincronizar las citas que no han sufrido modificaciones. Si algunas citas permanecen igual se quedan sin sincronizar.

Este protocolo de sincronizacin utiliza una "bandera" de estado que permite "marcar" los registros que han sufrido modificaciones desde la ultima fecha de sincronizacin.

Cuando se sincronizan los el Pc y la Pda pueden ocurrir los siguientes eventos:

Insercin: el registro nuevo en la Pda es adicionado al servidor

Modificacin : el registro de la Pda Remplaza al del servidor.

Borrado : el Registro en el servidor es borrado

Guardado : el Registro se guarda en el servidor.

Cuando termina la sincronizacin los "banderas" de estado se anulan o "Resetean". Y se guarda la fecha de sincronizacin.

Per-To-Per: es otro protocolo de sincronizacin donde todos y cada uno de los dispositivos se sincronizan sin la necesidad de un computador central o servidor como ocurre en el caso del protocolo

Un ejemplo de esto seria la sincronizacin en un sistema de pedidos donde lo que se necesita es descargar los pedidos y que el proceso de facturacin se encarge del resto.

Claro esta que se puede sincronizar directamente sobre la base de datos y hacer la depuracin en el proceso de sincronizacin

TEST AND SET:es una instruccin que se usan para escribir en una posicin de memoria y el retorno de su antiguo valor. Si varios procesos pueden acceder a la misma memoria, y si un proceso est llevando a cabo una prueba-y-set, ningn otro proceso puede comenzar otra prueba-y-set hasta que el primer proceso se lleva a cabo.

RAM de doble puerto (DPRAM) es un tipo de memoria de acceso aleatorio que permite mltiples lecturas o escrituras que se produzca casi al mismo tiempo, a diferencia de un solo puerto de La ram que permite un solo proceso a la vez. Esta aplicacin de hardware de DPRAM puede trabajar de muchas maneras. Aqu hay dos variantes, las cuales describen una DPRAM que proporciona exactamente dos puertos, lo que permite dos componentes separados electrnicos (como 2 CPUs) el acceso a todos los lugares de memoria en el DPRAM. Variacin 1

Cuando CPU 1 emite una instruccin de prueba-y-set, primero DPRAM hace una "nota interna" de estar almacenando la direccin de la ubicacin de la memoria en un lugar especial. Si en este punto, dos CPU pasan a ordenar la prueba-y-set para la misma posicin de memoria, el DPRAM comprueba en primer lugar su "nota interna", reconoce la situacin, y las cuestiones de una interrupcin, lo que le dice a la CPU 2 que debe espere y vuelva a intentarlo. Variacin 2

Cuando CPU 1 emite una instruccin de prueba y de ajuste a escribir en "posicin de memoria A". El DPRAM no almacena inmediatamente el valor en una posicin de memoria, sino que al mismo tiempo se mueve el valor actual a un registro especial. Si en este punto, dos CPU emite una test-and-set a la misma ubicacin de una memoria, la DPRAM detecta el valor del indicador especial, y como en la variacin de 1, emite una interrupcin de BUSY.

Semforos

Un semforo es un tipo de datos abstracto que permite el uso de un recurso de manera exclusiva cuando varios procesos estn compitiendo.

El estado interno del semforo cuenta cuantos procesos todava pueden utilizar el recurso. Se puede realizar, por ejemplo, con un nmero entero que nunca llega a ser negativo.

Exiten tres operaciones con un semforo: init(), wait(), y signal()

init()

: Inicializa el semforo antes de que cualquier proceso haya ejecutado ni una operacin wait() ni una operacin signal() al lmite de nmero de procesos que tengan derecho a acceder el recurso. Si se inicializa con 1, se ha contruido un semforo binario. wait(): Si el estado indica cero, el proceso se queda atrapado en el semforo hasta que sea despertado por otro proceso. Si el estado indica que un proceso ms puede acceder el recurso se decrementa el contador y la operacin termina con exito.

Signal(): Una vez se ha terminado el uso del recurso, el proceso lo sealiza al semforo. Si queda algn proceso bloqueado en el semforo uno de ellos sera despertado, sino se incrementa el contador. En algunas implementaciones es posible comprobar si se haya despertado un proceso con xito en caso que hubiera alguno bloqueado. Para despertar los procesos se puede implementar varias formas que se destinguen en sus grados de justicia, por ejemplo con un simple sistema tipo FIFO.

Observamos los siguiente detalles:

Si algn proceso no libera el semforo, se puede provocar un bloqueo.

No hace falta que un proceso libere su propio recurso, es decir, la operacin signal() puede sea ejecutada por otro proceso.

Con simples semforos no se puede imponer un orden en los procesos accediendo a diferentes recursos.

El semforo delay atrapa a los procesos que superan el nmero mximo permitido.

Unas principales desventajas de semforos son:

no se puede imponer el uso correcto de los wait()s y signal()s

no existe una asociacin entre el semforo y el recurso

entre wait() y signal() el usuario puede realizar cualquier operacin con el recurso Multiprocesamiento o multiproceso es tradicionalmente conocido como el uso de mltiples procesos concurrentes en un sistema en lugar de un nico proceso en un instante determinado. Como la multitarea que permite a mltiples procesos compartir una nica CPU, mltiples CPUs pueden ser utilizados para ejecutar mltiples hilos dentro de un nico proceso.

El multiproceso para tareas generales es, a menudo, bastante difcil de conseguir debido a que puede haber varios programas manejando datos internos (conocido como estado o contexto) a la vez. Los programas tpicamente se escriben asumiendo que sus datos son incorruptibles. Sin embargo, si otra copia del programa se ejecuta en otro procesador, las dos copias pueden interferir entre s intentando ambas leer o escribir su estado al mismo tiempo. Para evitar este problema se usa una variedad de tcnicas de programacin incluyendo semforos y otras comprobaciones y bloqueos que permiten a una sola copia del programa cambiar de forma exclusiva ciertos valores.Procesamiento de Interrupciones

Una interrupcin es un evento que altera la secuencia en que el procesador ejecuta las instrucciones; es un hecho generado por el hardware del computador

Cuando ocurre una interrupcin, el Sistema Operativo:

Obtiene el control.

Salva el estado del proceso interrumpido, generalmente en su bloque de control de procesos.

Analiza la interrupcin.

Transfiere el control a la rutina apropiada para la manipulacin de la interrupcin.

Una interrupcin puede ser iniciada por un proceso en estado de ejecucin o por un evento que puede o no estar relacionado con un proceso en ejecucin.

Generalmente lasinterrupcionesse pueden clasificar portipossegn el siguiente detalle:

SVC (llamada al supervisor):es una peticin generada por el usuario para un servicio particular del sistema, por ejemplo, realizacin de Entrada / Salida u obtencin de ms memoria.

Entrada / Salida:son iniciadas por el hardware de Entrada / Salida, indicando a la cpu que ha cambiado el estado de un canal o dispositivo, por ejemplo, finalizacin de Entrada / Salida u ocurrencia de un error.

Externas:son causadas por distintos eventos, por ejemplo, expiracin de un cuanto en un reloj de interrupcin o recepcin de una seal de otro procesador en un sistema multiprocesador.

De reinicio:ocurren al presionar la tecla de reinicio o cuando llega una instruccin de reinicio de otro procesador en un sistema multiprocesador.

De verificacin de programa:son causadas por errores producidos durante la ejecucin de procesos, por ejemplo:Un intento de dividir por cero.

Un intento de un proceso de usuario de ejecutar una instruccin privilegiada.

Un intento de ejecutar un cdigo de operacin invlido.

De verificacin de mquina:son ocasionadas por un mal funcionamiento del hardware.

Tipo de InterrupcinDescripcin

SVCLlamada al Sistema Operativo

Entrada / SalidaCambio de estado de un canal o dispositivo

ExternaEvento externo al sistema

De ReinicioReinicio del procesamiento

De Verificacin de ProgramaErrores de procesos

De Verificacin de MquinaErrores de hardware

Tabla 2.1: Tipos de interrupciones.

El Sistema Operativo incluye rutinas llamadasManipuladores de Interrupciones (IH)para procesar cada tipo diferente de interrupcin.Cuando se produce una interrupcin el Sistema Operativo efecta las siguientes acciones:Salva el estado del proceso interrumpido.

-Dirige el control al manipulador de interrupciones adecuado.

Se aplica la tcnica deCambio de Contexto.

-Los Sistemas Operativos instrumentan informacin de control que puede aparecer como lasPalabras de Estado de Programa (PSW), las cuales controlan el orden de ejecucin de las instrucciones y contienen informacin sobre el estado del proceso.

Existen tres tipos de PSW, que son la actual, la nueva y la vieja.

La PSW Actual almacena la direccin de la prxima instruccin que ser ejecutada e indica los tipos de instrucciones actualmente habilitadas e inhabilitadas.

En un sistema de interrupciones existe Solo una PSW actual.

Seis PSW nuevas (una para cada tipo de interrupcin).Seis PSW viejas (una para cada tipo de interrupcin).Tecnicas del abrazo mortal.

Los abrazo mortales estn muydesarrolladosy es unproblemamuy notables en el campo de lossistemasoperativos. El abrazo mortal es un conjunto de procesosen unestadode espera tal que ninguno de ellos tiene suficientes criterios para continuar su ejecucin.

Definicin de Abrazo Mortal(Deadlock)

Un conjunto de procesos est en unabrazo mortalcuando todos los procesos en ese conjunto estn esperando un evento que slo puede ser causado por otroprocesoen el conjunto. Loseventosa los cuales nos estamos refiriendo son concernientes con la asignacin y liberacin de recursos principalmente. Sin embargo, otrotipode eventos pueden llevar a la existencia de abrazos mortales como la espera de un recurso para continuar una operacin.

Recursos

Se entiende como recurso un elemento que unprogramao proceso puede utilizar enla computadoradonde se est ejecutando. Se engloban bajo el conceptode recurso, tanto los dispositivoshardware(por ejemplo, unaimpresora), como una cierta cantidad deinformacin(por ejemplo, unregistro de unarchivo).

No obstante, en unacomputadorapueden existir muchos tipos de recursos, e incluso varios del mismo tipo. Por ello definiremos un recurso como algo que puede ser utilizado por un solo proceso en un instante dado. Para que el proceso pueda utilizar un recurso, deber realizar la siguiente secuencia de operaciones:Cdigos de control

El cdigo de control es un mecanismo de deteccin de errores utilizado para verificar la correccin de un dato, generalmente en soporte informtico. Los dgitos de control se usan principalmente para detectar errores en el tecleo o transmisin de los datos.

Generalmente consisten en uno o ms caracteres numricos o alfabticos aadidos al dato original y calculados a partir de ste mediante un determinado algoritmo. Algunos de los ejemplos de uso frecuentes son los nmeros de identificacin personal, cdigos de barras, tarjetas de crdito y cdigos bancarios.

1 Denominacin

2 Utilizacin

3 Clculo del dgito verificador

3.1 Mdulo 11

3.2 Mdulo 10

No existe unanimidad en la denominacin de esta tcnica en el mundo hispano parlante. La traduccin directa del ingls check digit sera dgito de chequeo, de verificacin o de control. Estas denominaciones solamente son aplicables cuando se trata, efectivamente, de uno o varios dgitos y no de otros caracteres. Ms correctas son las variantes carcter de chequeo, de verificacin o de control, aunque sta ltima tiene otro significado especfico en el contexto de la informtica. Es utilizado normalmente en representaciones numricas que exijan integridad, como por ejemplo:

Documentos de identificacin: Algunos documentos de identificacin como la cdula de identidad o el DNI dependiendo del pas.

Cdigos de pagos: Nmero de factura, nmero de identificacin tributaria, etc.

Cdigos en general: Cuenta bancaria, cuenta corriente, nmero de matrcula, cdigo de barras, ISBN, etc.

Clculo del dgito verificador

Mtodo de clculo de esos dgitos vara conforme el caso. Sin embargo, muchos de ellos se basan en dos rutinas tradicionales: Mdulo 11 y Mdulo 10.

El mtodo denominado mdulo 11 detecta errores en un solo dgito e intercambios simples o dobles. Se basa en aplicar un factor de chequeo ponderado a cada dgito del nmero original. El clculo se realiza como sigue:[1]1. A cada dgito del nmero base se le asigna un factor de chequeo ponderado. Dicho factor ser 2 para el dgito menos significativo (el que est ms a la derecha) y, en orden, 3, 4, 5, 6, 7 para los siguientes. Si hubiera ms de 6 dgitos la secuencia se repetira de modo que el octavo dgito se multiplicara por 2, el noveno por 3, etc.

2. Cada dgito del nmero base se multiplica por el factor de chequeo asignado.

3. Se suman los resultados de todas las multiplicaciones.

4. Al resultado de la suma se le calcula el mdulo 11 (de ah el nombre del mtodo), es decir, el resto de la divisin entera entre 11.

5. A 11 se le resta el mdulo calculado en el punto anterior. Si el resultado de la resta es < 10, dicho resultado es el dgito de control que buscbamos. Si el resultado es 11 el dgito de control es 0. Si el resultado es 10 el dgito de control resultante no puede utilizarse. El siguiente esquema desarrolla un ejemplo de clculo:

Nmero ejemplo: 41261533-?

Pasos 1 y 2

| 4 | 1 | 2 | 6 | 1 | 5 | 3 | 3 | - | ? |

| | | | | | | |

x3 x2 x7 x6 x5 x4 x3 x2

| | | | | | | |

=12 =2 =14 =36 =5 =20 =9 =6

Paso 3 12 +2 +14 +36 +5 +20 +9 +6 = 104

Paso 4 104 mod 11 = 5 (ya que 104 = 11 x 9 + 5)

Paso 5 11 - 5 = 6

Resultado = 41261533-6

A veces se usan variantes, como sustituir el resultado por una letra cuando el resultado es 10. Por ejemplo, en Chile el Rol nico Nacional (RUN) y el Rol nico Tributario (RUT) utilizan este sistema y cuando el resultado del algoritmo es 10 el carcter de control es la letra "K".

Mdulo 10

Conforme al esquema de abajo, cada dgito del nmero, comenzando de la derecha para la izquierda (menos significativo para el ms significativo) es multiplicado, en orden, por 2, despus 1, despus 2, despus 1 y as sucesivamente.

Nmero ejemplo: 261533-4

+---+---+---+---+---+---+ +---+

| 2 | 6 | 1 | 5 | 3 | 3 | - | 4 |

+---+---+---+---+---+---+ +---+

| | | | | |

x1 x2 x1 x2 x1 x2

| | | | | |

--------------------------------------------------------------------------------------------------------------------Tipo de cdigos detectores

Paridad simple (paridad horizontal)Consiste en aadir un bit de ms a la cadena que queremos enviar, y que nos indicar si el nmero de unos (bits puestos a 1) es par o es impar. Si es par incluiremos este bit con el valor = 0, y si no es as, lo incluiremos con valor = 1.

Ejemplo de generacin de un bit de paridad simple:

Queremos enviar la cadena 1110100:

1 Contamos la cantidad de unos que hay: 4 unos2 El nmero de unos es par por tanto aadimos un bit con valor = 0

3 La cadena enviada es 11101000

El receptor ahora, repite la operacin de contar la cantidad de unos que hay (menos el ltimo bit) y si coincide, es que no ha habido error.

Problemas de este mtodo:Hay una alta probabilidad de que se cuelen casos en los que ha habido error, y que el error no sea detectado, como ocurre si se cambian dos nmeros en la transmisin en vez de uno.

Paridad cruzada (paridad horizontal-vertical) Para mejorar un poco el mtodo anterior, se realiza una paridad que afecte tanto a los bits de cada cadena o palabra como a un conjunto de todos ellos. Siempre se utilizan cadenas relativamente cortas para evitar que se cuelen muchos errores.

Para ver ms claro este mtodo, se suelen agrupar los bits en una matriz de N filas por K columnas, luego se realizan todas las paridades horizontales por el mtodo anterior, y por ltimo, se hace las misma operacin de calcular el nmero de unos, pero ahora de cada columna.

La probabilidad de encontrar un solo error es la misma, pero en cambio, la probabilidad de encontrar un nmero par errores ya no es cero, como en el caso anterior. Aun as, existen todava una gran cantidad de errores no detectablesUn ejemplo de paridad cruzada (o de cdigo geomtrico)

1 Tenemos este cdigo para transmitir: 1100101111010110010111010110

2 Agrupamos el cdigo en cada una de las palabras, formando una matriz de N x K:

1100101

1110101

1001011

1010110

3 Aadimos los bits de paridad horizontal:

1100101 01110101 11001011 01010110 04 Aadimos los bits de paridad vertical:

1100101 01110101 11001011 01010110 00001101 1Una vez creada la matriz, podemos enviar sta por filas, o por columnas. Enviando las palabras por columnas aumentamos la posibilidad de corregir una palabra que haya sufrido un error de rfaga (errores que afectan a varios bits consecutivos, debidos a causas generalmente electrnicas, como chispazos, y que haran que se perdiera toda una palabra completa).

Suma de comprobacin

Es un mtodo sencillo pero eficiente slo con cadenas de palabras de una longitud pequea, es por esto que se suele utilizar en cabeceras de tramas importantes u otras cadenas importantes y en combinacin con otros mtodos.

Funcionalidad: consiste en agrupar el mensaje a transmitir en cadenas de una longitud determinada L no muy grande, de por ejemplo 16 bits. Considerando a cada cadena como un nmero entero numerado segn el sistema de numeracin 2L 1. A continuacin se suma el valor de todas las palabras en las que se divide el mensaje, y se aade el resultado al mensaje a transmitir, pero cambiado de signo.

Con esto, el receptor lo nico que tiene que hacer es sumar todas las cadenas, y si el resultado es 0 no hay errores.

Ejemplo:

Mensaje 101001110101

1 Acordar la longitud de cada cadena: 3

2 Acordar el sistema de numeracin: 23 1 = 73 Dividir el mensaje: 101 001 110 101

4 Corresponder a cada cadena con un entero: 5 1 6 5

5 Sumar todos los valores y aadir el nmero cambiado de signo: -17

6 Enviar 5 1 6 5 -17 codificado en binarioEl receptor:

1 Suma todos los valores si = 0 procesa el mensaje sino se ha producido un error.

Este mtodo al ser ms sencillo es ptimo para ser implementado en software ya que se puede alcanzar velocidades de clculo similares a la implementacin en hardware

ADMINISTRACION DE DISPOSITIVOSLa administracin de dispositivos, es la administracin de todos los recursos del hardware disponible, tanto los estndar que viene de fabricas, como las que se van agregando para hacer ms poderosa o actualizar la PC. Todo dispositivo necesita presentarse al sistema operativo, agregando un pequeo programa que permite su uso. Este programa es llamado controlador. De aqu el controlador es un software que utiliza el sistema operativo para especificar de hardware, como puede ser cualquier dispositivo

Controlador de dispositivo, en informtica, Es el fragmento de software capaz de proveer una capa de abstraccin entre el sistema y un dispositivo determinado.

Administracin de Canales

Todos los perifricos se encuentran vinculados a la CPU a travs de canales de distinto tipo. Un canal no es slo un cable, sino que est constituido, adems, por un procesador de entrada/salida que puede trabaja simultneamente con el procesador de la CPU y que permite el trabajo en multiprogramacin.

Hay canales que pueden realizar de a una operacin por vez y otros que puede realizar ms de una.

Todo canal puede tener conectadas varias unidades perifricas. 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 ms eficiente posible.

Cuando un programa efecta una interrupcin pidiendo la ejecucin de una operacin 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 operacin de entrada/salida en una cola de espera que normalmente no tiene prioridades, es decir que se irn 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.

Administracin de dispositivosTenemos 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 ms lentos, por eso una gran cantidad de sistemas operativos cuentan con una facilidad llamada SPOOLING u operacin perifrica simultnea en lnea.

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 magntico). Adems, cada vez que un programa solicita una operacin de impresin, el residente desva la impresin y graba la lnea en el archivo correspondiente.

Esto permite no slo que varios programas impriman intercaladamente, sino tambin que un mismo programa genere ms de un listado en la misma ejecucin.

Es decir que el spooling hace independizar totalmente los conceptos de impresora fsica e impresora lgica. El computador tendr todas las impresoras virtuales necesarias independiente de las impresoras fsicas. Pero esas imgenes de impresin que se grabarn en disco magntico ocuparn 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 impresin fsica, es decir el pase del soporte de spool a impresin. UNIDADAES DE CINTA MAGNETICALas cintas magn