resume n

171
76 1. Introducción 1.0 Sistema Operativo Es una colección organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar un computador y proporcionan un entorno para la ejecución de los programas. Es un paquete de programas que administra los recursos del sistema de computación. Los recursos pueden ser físicos, lógicos o abstractos. Actúa como interfaz entre el usuario y el hardware. No se encuentra completamente en memoria, solo las funciones mas utilizadas. Los programas en ejecución se apoyan en las facilidades proporcionadas por el SO para obtener acceso a los recursos del sistema informático. Los usuarios pueden interactuar con el SO directamente por medio de órdenes del SO. Un SO actúa como gestor de los recursos del sistema informático, lleva el control sobre el estado de cada recurso y decide quién obtiene un recurso, durante cuánto tiempo y cuándo. Sólo forman parte del SO aquellas funciones administradoras de recursos. Es decir se ve al SO exclusivamente como un administrador de recursos, dejando para aquellos sistemas que no comparten recursos la categoría de Monitor o Supervisor. Objetivos del SO: Lograr que el sistema informático se use de manera cómoda. Lograr que el hardware del computador se emplee de manera eficiente. Ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programación. Ejecutar los programas de los usuarios y facilitar la resolución de sus problemas. 1.1 Qué es un SO? Un sistema informático puede dividirse en cuatro componente: El hardware (CPU, memoria y dispositivos E/S) proporciona los recursos de computación básicos. Los programas de aplicación definen la forma en que esos recursos se emplean para resolver los problemas informáticos de los usuarios. Los usuarios, pueden ser muchos y distintos e intentan resolver problemas diferentes; por consiguiente, es posible que haya diferentes programas de aplicación. El SO, controla y coordina el uso del hardware entre los diversos programas de aplicación de los distintos usuarios. Como hardware no es fácil de utilizar, se desarrollan programas de aplicación que requieren ciertas operaciones comunes. El SO es el programa que se ejecuta todo el tiempo en el computador (conocido usualmente como núcleo), siendo programas de aplicación todos los demás.

Upload: sofi-borgonovo

Post on 09-Nov-2015

217 views

Category:

Documents


0 download

DESCRIPTION

Resumen Sistemas operativos UTN frro

TRANSCRIPT

1. Introduccin1.0 Sistema Operativo Es una coleccin organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar un computador y proporcionan un entorno para la ejecucin de los programas.

Es un paquete de programas que administra los recursos del sistema de computacin. Los recursos pueden ser fsicos, lgicos o abstractos.

Acta como interfaz entre el usuario y el hardware. No se encuentra completamente en memoria, solo las funciones mas utilizadas.

Los programas en ejecucin se apoyan en las facilidades proporcionadas por el SO para obtener acceso a los recursos del sistema informtico.

Los usuarios pueden interactuar con el SO directamente por medio de rdenes del SO. Un SO acta como gestor de los recursos del sistema informtico, lleva el control sobre el estado de cada recurso y decide quin obtiene un recurso, durante cunto tiempo y cundo. Slo forman parte del SO aquellas funciones administradoras de recursos. Es decir se ve al SO exclusivamente como un administrador de recursos, dejando para aquellos sistemas que no comparten recursos la categora de Monitor o Supervisor.Objetivos del SO:

Lograr que el sistema informtico se use de manera cmoda.

Lograr que el hardware del computador se emplee de manera eficiente.

Ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programacin.

Ejecutar los programas de los usuarios y facilitar la resolucin de sus problemas.

1.1 Qu es un SO?

Un sistema informtico puede dividirse en cuatro componente:

El hardware (CPU, memoria y dispositivos E/S) proporciona los recursos de computacin bsicos.

Los programas de aplicacin definen la forma en que esos recursos se emplean para resolver los problemas informticos de los usuarios.

Los usuarios, pueden ser muchos y distintos e intentan resolver problemas diferentes; por consiguiente, es posible que haya diferentes programas de aplicacin.

El SO, controla y coordina el uso del hardware entre los diversos programas de aplicacin de los distintos usuarios.

Como hardware no es fcil de utilizar, se desarrollan programas de aplicacin que requieren ciertas operaciones comunes.El SO es el programa que se ejecuta todo el tiempo en el computador (conocido usualmente como ncleo), siendo programas de aplicacin todos los dems.

Un SO puede procesar su carga de trabajos de forma:

Forma serie: los recursos del sistema informtico estn dedicados a un solo programa hasta que termine

Forma concurrente: los recursos del sistema informtico son reasignados dinmicamente entre una coleccin de programas activos en diferentes etapas de ejecucin, los denominados sistemas de multiprogramacin.1.2 Los primeros sistemas

Maquina desnuda:

1. Traduccin manual de secuencias de instrucciones en cdigo binario o alguna otra base.

2. Despus se introducen en el computador las instrucciones y los datos. 3. Los programas se arrancan cargando el registro contador de programa con la direccin de memoria de la primera instruccin.

4. Los resultados de la ejecucin se obtienen examinando los contenidos de los registros relevantes y de las posiciones de memoria. Caractersticas:

La programacin es de muy baja productividad para los usuarios y para el hardware por el largo y tedioso proceso de introduccin de programas y datos.

El programador tambin era el operador del sistema informtico. La mayora de los sistemas utilizaban un esquema de reservaciones o de registro para asignar tiempo de mquina.

Con dispositivos de E/S

Los programas, codificados ahora en un lenguaje de programacin, se traducen a formato ejecutable mediante un programa, tal como un compilador o intrprete.

Con el paso del tiempo, se desarrollaron software y hardware adicionales para facilitar las tareas de programacin, y se crearon bibliotecas de funciones comunes.

Para cada uno de los dispositivos de E/S se escriba una subrutina especial, la cual se denominaba manejador de dispositivo y es la que sabe cmo deben usarse los buffers, indicadores, registros, bits de control y bits de estado para cada dispositivo. Cada tipo de dispositivo tena su propio manejador.

Con compiladores:

Ms tarde aparecieron los compiladores lo que facilit la tarea de programacin, pero hizo ms complejo el funcionamiento del computador. Cada trabajo consista de varios pasos distintos:

1. Cargar la cinta del compilador

2. Ejecutar la compilacin

3. Descargar la cinta del compilador

4. Cargar la cinta del ensamblador

5. Ejecutar el ensamblado

6. Descargar la cinta del ensamblador

7. Cargar el programa objeto

8. Ejecutar el programa

El problema de los sistemas con cinta era que el lector de tarjeta no poda escribir en un extremo de la cinta mientras la CPU lea del otro. Toda la cinta se tena que escribir antes de rebobinarla y leerla.

1.3 Monitor sencillo

La solucin para aumentar la utilizacin de las computadoras tuvo dos facetas una despus de la otra:

1. Se contrat a un operador profesional para manejar el computador. Cuando el programador terminaba un trabajo, el operador iniciaba el siguiente, con lo que se eliminaban los periodos de inactividad.Puesto que el operador tena ms experiencia que el programador para montar y desmontar cintas, se reduca el tiempo de preparacin.

Los programadores dejaban sus programas al operador, quien los clasificaba y agrupaba en lotes con requisitos similares y, en cuanto estuviera disponible el computador, ejecutaba cada lote. La salida de cada uno de los trabajos se devolva al programador correspondiente.En caso de un error en el programa se haca un vuelco de memoria y de registros, y el programador efectuaba la depuracin a partir del vuelco. 2. Reducir el periodo de preparacin. Los trabajos con requisitos semejantes se agrupaban en lotes y se ejecutaban como un grupo en el computador. Se deseaba era un procedimiento para transferir automticamente el control de un trabajo al siguiente:

Se cre un pequeo programa llamado monitor residente. El monitor residente siempre se encuentra (reside) en la memoria. Al encender el computador se invocaba al monitor residente, que transfera el control a un programa. Cuando ste terminaba, devolva el control al monitor residente, el cual pasaba al siguiente programa. As, el monitor pasaba automticamente de un programa a otro y de un trabajo a otro.

Para proporcionar la descripcin de los programas que se deban ejecutar y con que datos directamente al monitor, se crearon las tarjetas de control. El intrprete de tarjetas de control es el responsable de leer y llevar acabo las instrucciones de las tarjetas al momento de la ejecucin, este invoca a intervalos a un cargador para que se cargue en la memoria los programas del sistema y las aplicaciones. El monitor residente o los manejadores de dispositivos incluyen buffers del sistema para cada dispositivo de E/S.

1.4 Operacin fuera de lnea

La operacin fuera de lnea, consiste en la interposicin fuera de lnea de un dispositivo rpido entre uno lento y la CPU. El problema es la velocidad de los dispositivos mecnicos de E/S, que son ms lentos que los dispositivos electrnicos:La lentitud de los dispositivos de E/S provoca que la CPU con frecuencia se encuentre esperando E/S. El problema es que, mientras se lleva a cabo una operacin de E/S, la CPU est inactiva, esperando que termine la E/S, y mientras la CPU est trabajando, los dispositivos de E/S estn inactivos.

Una solucin comn:

Sustituir los lectores de tarjetas y las impresoras de lneas con las ms rpidas unidades de cinta magntica. Las tarjetas primero se copian a una cinta magntica y cuando se llena lo suficiente, se desmonta y se lleva al computador. Cuando se requera una tarjeta como entrada para un programa, se lea el registro equivalente desde la cinta. En forma anloga, la salida se escriba en la cinta y el contenido de sta se imprima ms tarde. Los lectores de tarjetas y las impresoras de lneas se operaban fuera de lnea (off line); no lo haca el computador central.

Para el procesamiento fuera de lnea se utilizaban dos mtodos:

1. Se desarrollaron dispositivos de propsito especial que enviaban la salida a la cinta magntica o tomaban la entrada de ella, directamente. Contaban con hardware adicional diseado especficamente para esa tarea.2. Se dedicaba un pequeo computador a la tarea de copiar en cinta y de ella; este pequeo computador era un satlite del computador principal. El procesamiento satlite fue uno de los primeros casos de sistemas informticos mltiples que trabajan en conjunto para mejorar el rendimiento, no era necesario modificar los programas de aplicacin para pasar de una operacin de e/s directa a una fuera de lnea. Hay que modificar el manejador del dispositivo. Cuando el programa necesita una tarjeta de entrada, llama a la misma rutina de sistema que antes, sin embargo, ahora el cdigo para la rutina no es el manejador del lector de tarjetas, sino una llamada al manejador de la cinta magntica.

La capacidad para ejecutar un programa con diferentes dispositivos de E/S se llama independencia de dispositivos, y se obtiene cuando el SO es capaz de determinar el dispositivo que realmente usa un programa cuando solicita E/S.

Los programas se escriben para usar los dispositivos lgicos de E/S. Las tarjetas de control indican la correspondencia entre los dispositivos lgicos y los fsicos.

Con la posibilidad de usar varios sistemas lector-cinta y cinta-impresora con una misma CPU, se puede producir suficiente cinta para mantener activa a la CPU.Hay un mayor retardo para iniciar la ejecucin de un trabajo determinado.1.5 Almacenamiento temporal (Buffering y Spooling)

Permite hacer simultneas las operaciones de la CPU y de E/S ejecutando estas dos acciones en dos mquinas independientes. Si deseamos lograr esta superposicin en una sola mquina, se debe colocar ciertos elementos entre los dispositivos y la CPU para permitir una separacin similar de la ejecucin. Un registro es una unidad natural de datos, puede ser un registro fsico o un registro lgico.

Un registro fsico puede ser una lnea imaginada para imprimir, o un carcter a ingresar desde teclado, o un bloque a leer desde una cinta magntica o desde un disco rgido. Ej: disco rgido.

Un registro lgico puede ser una lnea entrada, una palabra o una orden. Es la informacin que tengo.Los registros fsicos son definidos por la naturaleza de los dispositivos de E/S y los registros lgicos son definidos por los programas de aplicacin.

La conversin entre registros lgicos y fsicos se realiza por Software. Un registro fsico generalmente contendr varios registros lgicos de menor tamao.

Las operaciones de E/S leen o graban registros fsicos.

1.5.1 Almacenamiento temporal con buffers

Un buffer mantiene los registros que fueron ledos y no procesados (buffer de entrada) o los procesados pero no sacados (buffer de Salida), tiene un tamao suficiente que le permite almacenar temporariamente varios registros. Buffering, es un mtodo para hacer simultnea la E/S de un trabajo con su propio procesamiento.

1. Cuando la CPU est lista para comenzar a trabajar con ellos, se ordena al dispositivo que inicie de inmediato la siguiente lectura. En ese momento tanto la CPU como el dispositivo se encuentran ocupados.

2. Cuando la CPU est lista para el siguiente elemento de datos (registro), el dispositivo de entrada habr terminado de leerlo, la CPU puede entonces comenzar el procesamiento de los datos recin ledos, mientras el dispositivo de entrada comienza a leer los datos siguientes.

Tenemos un acceso directo a memoria, cuando la CPU necesita datos los busca en el Buffer de entrada y despus los imprime en el buffer de salida. Si la CPU termina antes deber esperar y en el peor de los casos, la espera no sera mayor que si no existiera el buffer.

Si el dispositivo de entrada termina antes, entonces deber esperar o podr proseguir con la lectura del siguiente registro. Los buffers en general tienen el tamao suficiente para almacenar varios registros.

Las llamadas de subrutinas al manejador de dispositivo efectuadas por los programas de aplicacin provocan una transferencia de o hacia un buffer del sistema.TRABAJO LIMITADO POR LA E/S: Si la CPU es siempre ms rpida, encontrar el buffer de entrada vaco y tendr que esperar al dispositivo de entrada. Para la salida, la CPU puede proseguir a toda velocidad hasta que, finalmente, se llene el buffer de salida y la CPU deber esperar al dispositivo de salida. TRABAJO LIMITADO POR LA CPU: los buffers de entrada siempre estn llenos y los dispositivos de salida siempre vacos; la CPU no puede mantener el ritmo de los dispositivos de E/S.

Controladores de dispositivos:

Cada uno de los controladores de dispositivos se encarga de un tipo especfico de dispositivo. Un controlador de dispositivo cuenta con almacenamiento local en buffer y un conjunto de registros de propsito especial. El controlador del dispositivo es el responsable de transferir los datos entre el perifrico que controla y su buffer local.1.5.2 Spooling

El objetivo del Spooling es la independencia de los programas respecto de los dispositivos lentos. Como la cabeza del disco se mueve de un rea del disco a otra, ste puede cambiar rpidamente el rea utilizada por el lector de tarjetas para almacenar nuevas tarjetas a la posicin requerida por la CPU para leer la siguiente.Las tarjetas se leen directamente del lector de tarjetas al disco. Forma de trabajo:

La ubicacin del contenido de las tarjetas se anota en una tabla que mantiene el SO. Cuando se ejecuta un trabajo, el SO satisface las solicitudes de entrada del lector de tarjetas, leyendo del disco. Cuando el trabajo solicita a la impresora que imprima una lnea, sta se copia a un buffer del sistema y se escribe en el disco.

Con el Spooling, se utiliza el disco como un buffer de gran tamao. Da inicio al concepto de multiprogramacin.Ventajas:

Hace simultnea la E/S de un trabajo con el clculo de otro trabajo. La CPU puede hacer simultneos los clculos de un trabajo con la E/S de otros. Mejora el rendimiento

Se necesitan tablas y espacio en disco.

Un depsito de trabajo en el disco permite al SO seleccionar cul ser el siguiente trabajo por ejecutar, para as incrementar la utilizacin de la CPU. Desventajas:

El tourn-around-time aumenta ya que al tiempo original del programa se agrega el tiempo de ejecucin de la rutina y el tiempo de grabacin en el dispositivo rpido. Aumenta el troughput que es el nmero de trabajos que atraviesan el sistema por unidad de tiempo. 1.8 Sistemas distribuidosEs un sistema constituido por varios procesadores (nodos) y poseen la caracterstica de la especializacin de funciones, es decir que cada nodo posee un conjunto de funciones particulares que combinadas brindan la totalidad del sistema. Ej: cajeros automticos.

Un SO distribuido es una coleccin de sistema informticos autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software.

Los SOs de cada nodo, no necesariamente deben ser iguales, incluso el hardware de cada nodo puede ser diferentes (distinto tamao y quizs distinto fabricante).

En aplicaciones donde todas las funciones son conocidas y pueden ser perfectamente predefinidas, la comunicacin entre nodos puede ser pensada como una responsabilidad de la aplicacin, sin embargo, es preferible que esta responsabilidad recaiga sobre los SOs. Una aplicacin ha sido diseada para servirse de una familia de procesadores, de manera tal que solo ciertas funciones de la aplicacin se ejecutan en cada computadora. La relacin entre nodos es estricta, las interacciones frecuentes y la dependencia entre los sistemas estrecha.

Un SO distribuido gobierna la operacin de un sistema informtico distribuido y proporciona una abstraccin de mquina virtual a sus usuarios. El objetivo clave de un SO distribuido es la transparencia. La distribucin de componentes y recursos debera quedar oculta a los usuarios y a los programas de aplicacin a menos que estos demanden lo contrario. Facilitan el acceso a recursos remotos, la comunicacin con procesos remotos y la distribucin de los clculos.

Existen dos esquemas bsicos para la construccin de estos sistemas:

1. Sistema fuertemente acoplado: los procesadores comparten la memoria y un reloj, y por lo general la comunicacin se lleva a cabo a travs de la memoria compartida.2. Sistema dbilmente acoplado: los procesadores no comparten ni memoria ni reloj, pues cada uno cuenta con su propia memoria local.Razones para construir sistemas distribuidos:

Compartimiento de recursos: compartir archivos en instalaciones remotas, procesar informacin en una base de datos distribuida, imprimir archivos en instalaciones remotas, utilizar dispositivos remotos de hardware especializado. Aceleracin de los clculos: Si un clculo determinado puede dividirse en varios subclculos, un sistema distribuido permitira distribuir los clculos entre las diversas instalaciones y tambin ejecutarlos concurrentemente. Si una instalacin est sobrecargada con trabajos, algunos de ellos pueden pasarse a otras instalaciones con poca carga. Confiabilidad: Si falla una instalacin de un sistema distribuido, las restantes pueden, potencialmente, continuar operando. En general, si hay suficiente redundancia en el sistema (tanto en hardware como en datos), el sistema puede continuar su operacin, incluso cuando fallen algunas de las instalaciones. Comunicacin: Existen varias situaciones ms donde los programas de un sistema necesitan intercambiar datos entre s, como los sistemas de ventanas.1.10 Sistema monousuario o Computadores Personales (PC) Es un sistema informtico para un solo usuario. Los dispositivos de E/S han cambiado apareciendo los teclados, los mouses, pantallas e impresoras pequeas y veloces.

En vez de tratar de maximizar la utilizacin de la CPU y los perifricos, han optado por la comodidad y la rapidez de respuesta a los usuarios.2. Estructura de los Sistemas de Computacin

2.1 Sistemas basados en interrupciones

INTERRUPCIN

Mecanismo utilizado para lograr la coordinacin necesaria entre distintas unidades de un sistema y para responder a condiciones especficas que se presentan en el procesador.

Cuando se produce una interrupcin el procesador es forzado a reconocer un evento en el sistema.

Para cada interrupcin se debe seleccionar y ejecutar un procedimiento adecuado que implica una combinacin de soft y hard.

El hardware debe proporcionar al menos la siguiente informacin:

El tipo de interrupcin que se produce El resultado de la interrupcin en el Descriptor de Interrupciones (ID) disponible en memoria para ser leda cuando se necesite. En el caso de una unidad de cinta seria la siguiente: (1) De que unidad de cinta se trata. (2) Si existi error de condicin de excepcin, que tipo. (3) Si se detecto marca de principio o fin de cinta. (4) Si se lleno el buffer de entrada de la lectoraEl software debe poder realizar las siguientes operaciones:

Mantener registros del flujo de operaciones de I/O

Asociar la interrupcin con la operacin de I/O que la produjo

Analizar el resultado y de existir excepcin, encargarse de ellas (ej. podra intentar un proceso de recupero)

Volcar los resultados al programa que lo requiera

Indicar que se ha completado la operacin de I/O

Controlar si hay ms operaciones de I/O listas e iniciarlas

Hay un vector de estado compuesto por registros de hardware del procesador que representan el estado del programa que en ese momento corre.

Los registros del vector de estado son:

AC y MQ, contienen resultados de operaciones aritmticas

IX 1, es un registro ndice del procesador

Reg. Base, Apunta a la ms baja direccin de memoria real que puede referenciar el programa que en ese momento corre (es la palabra cero de ese programa).

IC, contador de instrucciones, que apunta a la direccin en memoria real de la prxima instruccin a ejecutarse.

Tambin hay un bloque de definicin de interrupciones (IDB) que reside en memoria real

Palabras del IDB:

JMP, apunta a la direccin en memoria real que contiene la primera instruccin de la rutina que atiende la interrupcin.

ID (Descriptor de interrupciones): define la interrupcin con informacin que fue colocada por el dispositivo que ocasiona la interrupcin.

Reg. Base, apunta a la menor direccin de memoria real que puede referenciar la rutina que atiende la interrupcin.

Tipos de interrupciones:

Error de procesador se presenta al intentar dividir por cero, o si se detecta un error de paridad, o si ocurre un overflow, etc.

Error de direccionamiento se presenta cuando se referencia una direccin de memoria real invlida.

E/S por Canal 1 o 2, ocurre cuando se completa una operacin de E/S sobre alguno de esos canales.

Pasos cuando se produce una interrupcin:

(El SPR que contiene el puntero a la prxima rea save disponible).1. Guardar el vector estado en el rea de salvado (save) en el lugar indicado por SPR. 2. Cargar los registro del vector de estado IC, MQ y Reg.Base con los contenidos de las palabras JMP, ID y Reg.Base extrados del IDB.3. Una vez procesada la interrupcin reiniciar el programa interrumpido a travs de la ejecucin de la instruccin JMP STACK.Mtodos para realizar la desincronizacin y resincronizacin de las operaciones mientras se realiza una E/S:

Transferencia de datos dirigida por interrupciones

Transferencia de datos por acceso directo a memoria (DMA, Direct Memory Access)

Espera activa: en sistemas antiguos la transferencia de datos se efectuaba bajo el control de la CPU. Ya que la CPU necesita realizar un seguimiento del estado de la E/S y, por consiguiente, esta activa mientras espera que termine la E/S.

Pasos para iniciar una operacin de E/S:

1. La CPU carga los registros apropiados del controlador del dispositivo y luego contina con su operacin normal2. El controlador del dispositivo examina el contenido de estos registros para determinar que accin emprender. 3. Una vez concluida la transferencia de datos, el controlador del dispositivo informa a la CPU que su operacin ha terminado. Esta comunicacin se logra causando una interrupcin. 4. Cuando se interrumpe a la CPU, sta suspende lo que estaba haciendo y transfiere de inmediato la ejecucin a una posicin fija, la cual generalmente contiene la direccin de inicio donde se encuentra la rutina de procesamiento de la interrupcin.5. La rutina de procesamiento de la interrupcin transfiere los datos del buffer local del controlador del dispositivo a la memoria principal. 6. Una vez lograda esta transferencia, la CPU puede continuar con los clculos interrumpidos.

La interrupcin debe transferir el control a la rutina de procesamiento de la interrupcin reservando un conjunto de posiciones en la parte baja de la memoria para que se almacenen las direcciones de las rutinas de procesamiento de la interrupcin para los distintos dispositivos, este vector de direcciones, usa como ndice el nmero de dispositivo nico que se da junto con la solicitud de interrupcin.Las arquitecturas complejas de interrupciones permiten procesar una interrupcin mientras se atiende otra, por lo general siguiendo un esquema donde se asignan prioridades a los tipos de solicitud.

La rutina de interrupcin debe tambin ajustar los punteros y contadores para asegurar que el siguiente carcter de entrada se almacene en la siguiente posicin del buffer.A la E/S asncrona generalmente se le asigna una prioridad de interrupcin baja, permitiendo que antes se procesen otras interrupciones ms importantes, o incluso que una interrupcin se sustituya por otra.

Para resolver este problema se usa el acceso directo a memoria (DMA) para los dispositivos de E/S de alta velocidad.

Despus de fijar los buffers, punteros y contadores para el dispositivo de E/S, el controlador del dispositivo transfiere directamente todo un bloque de datos de su almacenamiento en buffer a la memoria, o viceversa.

Un programa de usuario, o el mismo SO, puede solicitar una transferencia de datos, el SO localiza un buffer de una cola de buffers para la transferencia.

Entonces el controlador del DMA tiene sus registros con las direcciones fuentes y destinos apropiadas y la longitud de la transferencia. En general, esto lo lleva a cabo un manejador de dispositivo. Luego se ordena al controlador del DMA que comience la operacin de E/S. El controlador del DMA interrumpe a la CPU cuando termina la transferencia.

2.2 Estructura de E/S

Los sucesos (eventos) casi siempre se avisan mediante una interrupcin, o una trampa. Una trampa (o excepcin) es una interrupcin generada por el software a causa de un error o de una solicitud especifica de un programa de usuario para que se realice un servicio del SO.

Manejo de interrupciones:

1. Ocurre una interrupcin (o trampa).

2. El hardware transfiere el control al SO. 3. El SO preserva el estado de la CPU almacenando los registros y el contador del programa, y luego determina que tipo de interrupcin ha ocurrido.

Interrupciones de E/S: Un dispositivo de E/S generar una interrupcin al terminar una solicitud de E/S. Una vez que la E/S se ha iniciado, es posible seguir dos cursos de accin:

La E/S se inicia y al terminar, se devuelve el control al programa usuario (el caso ms simple).Ventaja: Como mximo hay una solicitud de E/S pendiente en cada ocasin entonces el SO sabe exactamente cual es el dispositivo que interrumpe. Devolver el control al programa de usuario sin esperar que la E/S termine.Se requiere entonces una llamada al sistema (una solicitud al SO) para permitir al usuario que espere la terminacin de la E/S. La espera de la terminacin de la E/S puede lograrse de 2 maneras: Con una instruccin especial de espera (wait) que mantiene inactiva a la CPU hasta la siguiente interrupcin

Con un ciclo de espera: Ciclo- jmp. Ciclo muy cerrado que contina hasta que ocurre una interrupcin, lo cual transfiere el control a otra parte del SO.

El SO usa una tabla que contiene una entrada por cada dispositivo de E/S: la tabla de estado de dispositivos. Cada entrada de la tabla indica el tipo de dispositivo, as como su direccin y su estado.

Si el dispositivo est ocupado con una solicitud, el tipo de solicitud y otros parmetros se anotarn en la entrada de la tabla correspondiente al dispositivo. Adems de la tabla de dispositivos de E/S, un SO puede contar con una lista de solicitudes para cada dispositivo. Manejo con interrupcin de E/S:

1. Un dispositivo de E/S interrumpe cuando requiere servicio.

2. El SO determina cul fue el dispositivo de E/S que caus la interrupcin y acude, usando un ndice, a la tabla de dispositivos de E/S para determinar el estado del dispositivo y modificar la entrada de la tabla para reflejar la aparicin de la interrupcin. 3. Finalmente se devuelve el control desde la interrupcin de E/S.(a) Si el programa estaba esperando a que terminara esta solicitud ahora podemos devolverle el control.

(b) Si el programa no estaba esperando regresamos a lo que estbamos haciendo antes de la interrupcin.2.3 Operacin de modo dual

Un SO correctamente diseado debe asegurar que un programa incorrecto no provoque la ejecucin incorrecta de otros programas.

El hardware detecta muchos errores de programacin. Si el programa de usuario falla, el hardware dirigir una trampa al SO, la trampa transfiere el control al SO a travs del vector de interrupciones, igual que una interrupcin.Al ocurrir un error de programa, el SO debe terminarlo anormalmente, se enva un mensaje de error apropiado y se vuelca la memoria del programa. En un sistema Batch, este vuelco de la memoria puede imprimirse. En un sistema interactivo, el vuelco puede escribirse en un archivo.

Necesitamos dos modos de operacin distintos:

Modo usuario y modo monitor (tambin llamado modo de supervisin o modo de sistema). El concepto de modo monitor se desarrolla por la necesidad de tener un mecanismo de coordinacin entre programas que no saben de la existencia de otros.

Se aade un bit, llamado bit de modo al hardware del computador, para indicar el modo actual; monitor (0) o usuario (1). Con el bit de modo podemos distinguir entre una ejecucin efectuada por el SO y una efectuada por el usuario.

Al ocurrir una trampa o interrupcin, el hardware cambia de modo usuario a modo monitor, as, cada vez que el SO obtiene el control del computador, se encuentra en modo monitor. El sistema siempre cambia a modo usuario antes de pasar el control a un programa de usuario. El modo dual de operacin nos proporciona un medio para proteger al SO de los usuarios errantes. Logramos esta proteccin clasificando algunas de las interrupciones de la mquina que pueden causar dao como instrucciones privilegiadas, a las cuales el hardware permite ejecutarse solo en modo monitor.

2.4 Hardware de proteccin

Para evitar que un usuario lleve a cabo una E/S ilegal, las instrucciones de E/S se definen como privilegiadas. Los usuarios no pueden ejecutar directamente instrucciones de E/S, tienen que hacerlo por medio del SO.

Para que la proteccin de la E/S sea completa, debemos asegurar que el programa de usuario nunca obtenga el control del computador en modo monitor.

Debemos cuidar que el vector de interrupciones no sufra modificaciones por parte del programa de usuario. Debemos proteger las rutinas de procesamiento de interrupcin en el SO. Debemos proporcionar proteccin para la memoria, por lo menos para el vector de interrupciones y las rutinas de procesamiento de interrupcin del SO.

2.4.1 Mecanismo de direccionamiento

El SO deber determinar como las direcciones de los programas son asociadas con sus ubicaciones en memoria, como se formarn las ubicaciones de las distintas posiciones y como se estructurarn los programas de aplicacin para una mquina dada.

Mecanismo de direccionamiento simple:

Incluye el campo de direccin de una instruccin y un registro ndice.

Mecanismo de direccionamiento bidimensional:

Tiene doble ndices y soportan el concepto lgico de segmentos de un programa que les permite referenciar distintas direcciones lgicas sin conocer el emplazamiento fsico real. Mecanismo de asociacin en forma dinmica:

Las mquinas organizan su memoria en bloques de direcciones que se asocian en forma dinmica con franjas de direcciones lgicas.Determinar intervalo de direcciones legales a las que puede acceder un programa: Reg. Base y Reg. Limite:

El registro base contiene la menor direccin de memoria fsica permitida.

El registro lmite el tamao del intervalo. El hardware de la CPU compara cada una de las direcciones generadas en modo usuario con los registros. Cualquier intento de un programa que se ejecuta en modo usuario de tener acceso a la memoria del monitor o a la memoria de otros usuarios generar una trampa para el monitor, el cul trata el intento como un error fatal.

El SO carga valores en los registros base y lmite mediante una instruccin privilegiada especial.

2.4.2 Mecanismo de proteccin de la CPU

Para asegurar que el SO mantenga el control, debemos evitar que un programa de usuario entre en un ciclo infinito y nunca devuelva el control al SO. Aunque este sea el nico que est disponible, no drselo ms. Usamos un cronmetro fijado para interrumpir al computador despus de determinado periodo.

Asignar al contador un valor inicial con la cantidad de tiempo permitida para la ejecucin del programa.

Si el cronmetro interrumpe, el control se transfiere automticamente al SO, el cual puede tratar a la interrupcin como un error fatal, o decidir que debe darse mayor tiempo al programa El uso ms comn de un cronmetro es implantar el tiempo compartido. El SO tambin restablece los registros, variables internas y buffers, y modifica varios parmetros ms para preparar la ejecucin del siguiente programa. Despus de esto, el siguiente programa contina su ejecucin a partir del punto donde se qued, por lo tanto si haba entrado en un ciclo infinito va a continuar as.2.5 mbito de procesamiento

Para el ambito de procesamiento necesito: Mecanismos de instrucciones.

Mecanismos de direccionamiento.

Mecanismos de proteccion de la CPU.

Mecanismos de protecciones de I/O

El programa ve

Las instrucciones de trabajo. Su rea de memoria direccionable defina de 0 a X. Una serie de mdulos del SO que actan como interfase entre el programa usuario y las instrucciones privilegiadas que proveen servicios tal como si fueran instrucciones de mquina ejecutables.Lo que el programa no ve

Las instrucciones privilegiadas que estn ocultas Un rea de memoria protegida, donde se encuentran todas las direcciones de memoria que el programa no puede referenciar y es donde se almacenan las rutinas del SO y el resto de los programas usuarios concurrentes.2.6 Arquitectura general de sistema

Con el modo dual de funcionamiento el usuario debe pedir al monitor que efecte la instruccin privilegiada en su nombre, generalmente con una instruccin especial denominada llamada al sistema.

Antes las llamadas al sistema se activaban cuando el programa de usuario ejecutaba un cdigo de instruccin no definido, para el cual no se haba determinado ninguna operacin de hardware.

Un parmetro indica qu tipo de servicio requiere el programa de usuario, y la informacin adicional necesaria para la solicitud puede pasarse en registros o en memoria.

2.7 Diferentes clases de computadores

2.7.1 Sistemas multiprocesadores Tienen ms de una CPU en estrecha comunicacin, compartiendo el canal del computador y en ocasiones la memoria y los dispositivos perifricos.Ventajas:

Incrementar la productividad: efectuar ms trabajo en menor tiempo.

Confiabilidad: la avera de un procesador no detendr el sistema, nicamente lo har ms lento, porque los restantes debern hacerse cargo de una porcin del trabajo del que fall.

La operacin contina en presencia de errores.El sistema Tndem:

Dos procesadores idnticos, un procesador es el primario y el otro el de respaldo.

Se conservan dos copias de cada proceso, una en la mquina primaria y la otra en la de respaldo. Si se detecta un error, se activa la copia de respaldo y se vuelve a iniciar a partir del punto de verificacin ms reciente. Multiprocesamiento simtrico: cada procesador ejecuta una copia idntica del SO y todos ellos se comunican entre s segn se requiera.

Multiprocesamiento asimtrico: Un procesador principal controla el sistema y los dems acuden a l para recibir instrucciones o tienen tareas predefinidas.

2.7.2 Computadores personales

En muchos se utilizan Spooling y Buffering, incluso algunos incluyen procesamiento multitarea La proteccin de archivos no es necesaria en una mquina personal. La disminucin de los costos de hardware. La ausencia de esta proteccin permite que programas malintencionados destruyan datos del sistema.3. Estructura de los Sistemas Operativos

3.1.1 Administracin de procesos

La CPU es necesaria para otras actividades del sistema que se denominan procesos. Un proceso es un programa en ejecucin. El SO es responsable de las siguientes actividades relacionadas con la administracin de procesos:

Crear y eliminar los procesos de usuarios y del sistema

Suspender y reanudar la ejecucin de los procesos

Proporcionar mecanismos para la sincronizacin de procesos

Proporcionar mecanismos para la comunicacin de proceso

Proporcionar mecanismos para el manejo de bloqueos mutuos

3.1.2 Administracin de la memoria principal

La memoria es un gran arreglo de palabras o bytes, cada uno con su propia direccin. Es un depsito de datos de acceso rpido compartido por la CPU y los dispositivos de E/S.

La CPU lee las instrucciones de la memoria principal durante el ciclo de bsqueda de instrucciones, y lee y escribe datos en la memoria principal durante el ciclo de bsqueda de datos.

La E/S realizada mediante DMA tambin lee y escribe datos en la memoria principal.

La memoria principal es el nico dispositivo de almacenamiento al que la CPU puede acceder directamente.

Para que la CPU procese datos de disco, primero hay que transferir los datos a la memoria principal usando llamadas de E/S generadas por la CPU. Las instrucciones deben estar en la memoria para que la CPU pueda ejecutarlas.

El SO es responsable de las siguientes actividades relacionadas con la administracin de memoria:

Llevar un control de cules son las zonas de la memoria que se estn usando y quin las usa

Decidir qu procesos se cargarn en memoria cuando haya espacio disponible

Asignar y recuperar el espacio en memoria segn se requiera

3.1.3 Administracin del almacenamiento secundario

Respalda a la memoria principal ya que esta es demasiado pequea para almacenar permanentemente todos los datos y programas. Son guardados los programas y datos hasta cargarse en memoria principal.

Muchos programas se almacenan en disco hasta que se cargan en la memoria, y luego utilizan el disco como fuente y destino de su actividad.

El SO es responsable de las siguientes actividades relacionadas con la administracin de discos:

Administracin del espacio libre

Asignacin del almacenamiento

Planificacin de las operaciones sobre el disco

3.1.4 Administracin del sistema de E/S

El SO oculta las particularidades de los dispositivos de E/S mediante:

1. Sistema de memoria cach mediante Buffering.

2. Interfaz general con los manejadores de dispositivos (drivers).

3. Manejadores p/dispositivos de hardware especficos.3.1.5 Administracin de archivos

Un archivo es un conjunto de informacin relacionada definida por su creador. Un archivo es una secuencia de bits, bytes, lneas o registros, cuyo significado ha sido definido por sus creadores. El SO se vale de las propiedades fsicas de sus dispositivos de almacenamiento para definir una unidad de almacenamiento lgico, el archivo.El SO es responsable de las siguientes actividades relacionadas con la administracin de archivos:

La creacin y eliminacin de archivos

La creacin y eliminacin de directorios

El manejo de operaciones primitivas para manipular archivos y directorios

La correspondencia entre archivos y almacenamiento secundario

La copia de seguridad de archivos en medios de almacenamiento estables (no voltiles)

3.1.6 Sistema de proteccin

Se proporcionan mecanismos para asegurar que los archivos, segmentos de memoria, la CPU y otros recursos puedan ser usados nicamente por aquellos procesos que han recibido la correspondiente autorizacin del SO.

El hardware de direccionamiento a memoria asegura que un proceso slo puede trabajar dentro de su espacio de direcciones.

El cronmetro asegura que ningn proceso pueda obtener el control de la CPU sin perderlo eventualmente.

El SO no permite que los usuarios realicen por su cuenta sus operaciones de E/S, para proteger as la integridad de los dispositivos perifricos. 3.1.7 Redes

Es un sistema distribuido es un conjunto de procesadores que no comparten memoria ni reloj, pues cada uno tiene su propia memoria.

Los procesos se comunican entre s a travs de diversos medios, como canales de alta velocidad o lneas telefnicas.

Permite al usuario el acceso a recursos que mantiene el sistema, haciendo posible aumentar la velocidad de los clculos, ampliar la disponibilidad de los datos y mejorar la confiabilidad. Los SOs generalizan el acceso a la red como una forma de acceso a archivos, con los detalles de la red contemplados en el manejador de la interfaz de la red.3.1.8 Sistema intrprete de mandatos

Se ejecuta automticamente.

Su funcin es obtener el siguiente enunciado de mandato y ejecutarlo. Diversos nombres: intrprete de tarjetas de control, intrprete de lnea de mandato, Shell, etc.

Los enunciados de mandatos se encargan de:

La administracin de procesos,

Manejo de E/S,

Administracin del almacenamiento secundario,

Administracin de la memoria principal,

Acceso al sistema de archivos,

Proteccin

Redes.

3.2 Servicios del SO

El SO ofrece ciertos servicios para los programas y para los usuarios de estos. Podemos identificar varias clases:

Ejecucin de programas: El sistema debe ser capaz de cargar en memoria un programa y ejecutarlo. El programa debe terminar su ejecucin, ya sea normal o anormalmente.

Operaciones de E/S: Un programa en ejecucin puede requerir E/S y sta quiz un archivo o dispositivo. Ya que un programa de usuario no puede ejecutar directamente E/S, el SO ofrece formas de llevarlas a cabo.

Manipulacin del sistema de archivos: Los programas necesitan leer y escribir archivos, as como crearlos y eliminarlos basndose en su nombre.

Comunicaciones: Un proceso necesita intercambiar informacin con otro; esta comunicacin puede efectuarse a travs de memoria compartida o por paso de mensajes; y puede ocurrir en dos formas: (a) Entre procesos que se ejecutan en el mismo computador(b) Entre procesos que se ejecutan en sistemas de computacin diferentes unidos por una red. Deteccin de errores: El SO debe estar constantemente pendiente de posibles errores, los cuales pueden darse en el hardware de la memoria y la CPU, en dispositivos de E/S o en un programa de usuario. Para cada tipo de error, el SO debe emprender la accin adecuada, para asegurar un funcionamiento correcto y consistente.

Asignacin de recursos: Cuando varios usuarios o trabajos se ejecutan al mismo tiempo, se debe asignar recursos a cada uno de ellos. El SO administra varios tipos de recursos. Algunos pueden tener un cdigo de asignacin especial, mientras otros pueden poseer un cdigo de solicitud y liberacin ms general.

Contabilidad: Deseamos llevar un control de cules usuarios utilizan cuntos recursos del computador y de qu tipo. Estas anotaciones pueden tener fines contables o simplemente para recopilar estadsticas de uso.

Proteccin: Cuando varios trabajos independientes se ejecutan al mismo tiempo, no debera ser posible que un trabajo interfiera con los dems, ni con el SO. La proteccin implica revisar la validez de todos los parmetros que se pasan en las llamadas al sistema y asegurar que todo el acceso a los recursos del sistema est controlado. 3.3 Llamadas al sistema

Un programa en algn momento requerir servicios de instrucciones privilegiadas que no pueden compilarse dentro de l ejecutando una llamada al monitor. Una llamada al monitor genera una interrupcin poniendo al sistema en modo monitor. Cuando se ejecuta una llamada al sistema, el hardware la trata como una interrupcin:El control pasa a travs del vector de interrupciones a una rutina de procesamiento del SO y el bit de modo se coloca en modo monitor, la rutina de procesamiento de la llamada al sistema forma parte del SO; el monitor examina la instruccin que provoca la interrupcin para determinar que ha ocurrido una llamada al sistema.

Las llamadas al sistema proporcionan la interfaz entre el SO y un programa en ejecucin. Estas llamadas generalmente son instrucciones de lenguaje ensamblador. Algunos sistemas permiten efectuar llamadas al sistema directamente desde un programa realizado en lenguaje de mayor nivel.

Para pasar parmetros al SO se utilizan distintos mtodos:(a) Pasar los parmetros en registros, cuando esto sucede, usualmente se almacenan en un bloque o tabla en la memoria, y la direccin del bloque se pasa como parmetro en un registro. (b) El programa tambin puede colocar o meter en la pila los parmetros, de donde los saca el SO.

Las llamadas al sistema se pueden agrupar en cinco grandes categoras:

Control de procesos

finalizar, abortar

cargar, ejecutar

crear proceso, terminar proceso

obtener atributos de proceso, establecer atributos de proceso

esperar un tiempo

esperar suceso, sealar suceso

asignar y liberar memoria

Manipulacin de archivos

crear archivos, eliminar archivos

abrir, cerrar

leer, escribir, reposicionar

obtener atributos de archivos, establecer atributos de archivos

Manipulacin de dispositivos

solicitar dispositivo, liberar dispositivo

leer, escribir, reposicionar

obtener atributos de dispositivos, establecer atributos de dispositivos

unir o separar dispositivos lgicamente

Mantenimiento de informacin

obtener hora o fecha, establecer hora o fecha

obtener datos del sistema, establecer datos del sistema

obtener o establecer atributos de proceso, archivo o dispositivo

Comunicaciones

crear, eliminar conexin para comunicacin

enviar, recibir mensajes

transferir informacin de estado

unir o separar dispositivos remotos

3.3.1 Control de procesos y trabajos

Ya sea en circunstancia normales o anormales, el SO debe transferir el control al intrprete de mandatos y ste lee entonces el siguiente mandato. En un sistema interactivo, el intrprete de mandatos slo prosigue con el siguiente mandato, pues se supone que el usuario responder ante cualquier error con el mandato apropiado.

En sistemas Batch, el intrprete de mandatos en general termina todo el trabajo y contina con el siguiente. Algunos sistemas permiten tarjetas de control para indicar acciones de recuperacin especiales en caso de que ocurra un error.

Cuando termina el programa que se ha cargado:

Si el control regresa al programa existente cuando termina el nuevo programa, debemos guardar el contenido de la memoria del programa existente y as habremos creado efectivamente un mecanismo para que un programa llame a otro.

Si ambos programas continan concurrentemente, habremos creado un nuevo trabajo o proceso que se ser multiprogramado.

Habiendo creado nuevos trabajos o procesos, tendremos que esperar a que terminen su ejecucin. Es posible que esperemos durante cierto tiempo, pero con mayor probabilidad esperaremos un suceso especfico (esperar suceso). Un rastreo del programa presenta cada instruccin a medida que se ejecuta.

Modo paso a paso de la CPU: la CPU ejecuta una trampa despus de cada instruccin que generalmente es capturada por el depurador, un programa del sistema diseado para ayudar al programador en la deteccin y correccin de errores. Perfil de ejecucin del programa: indica la cantidad de tiempo en que se ejecuta un programa en determinada posicin o conjunto de posiciones. Un perfil de ejecucin requiere una capacidad de rastreo o interrupciones de cronmetro regulares. Cada vez que ocurre una interrupcin del cronmetro, se anota el valor del contador del programa. 3.3.2 Manipulacin de archivos

Necesitamos poder crear y eliminar archivos; requiriendo el nombre del archivo y algunos de sus atributos.

Es necesario abrir, leer, escribir o posicionar y por ultimo se debe cerrar el archivo.

Tanto para archivos/directorios, hay que determinar los valores de los atributos y/o reasignarlos.

Los atributos del archivo incluyen: nombre, tipo de archivo, cdigos de proteccin, informacin contable, etc.

Se requieren dos llamadas al sistema: obtener atributos de archivo y establecer atributos de archivo.

3.3.3 Administracin de dispositivos

Si hay varios usuarios, primero tenemos que solicitar el dispositivo para asegurar que tenemos su uso exclusivo y al terminar de usarlo debemos liberarlo. Una vez que hemos solicitado (y se nos ha asignado) el dispositivo, podemos leer, escribir y (posiblemente) posicionar el dispositivo, lo mismo que con archivos.

Muchos SOs los combinan en una estructura archivo/dispositivo.

3.3.4 Mantenimiento de informacin

El SO conserva informacin de sus trabajos y procesos. Hay llamadas al sistema que pueden devolver dicha informacin. Hay llamadas para restablecer la informacin.

3.3.5 ComunicacinModelo de paso de mensajes:

La informacin se intercambia a travs de un medio de comunicacin entre procesos que ofrece el SO. Antes de que la comunicacin pueda tener lugar, se debe abrir una conexin y conocer el nombre del otro comunicador. En una red, cada computador tiene el nombre del anfitrin y cada proceso tiene un nombre de proceso.

Hay llamadas al sistema obtener identificacin del anfitrin y obtener identificacin del proceso. Los identificadores se transmiten a las llamadas abrir conexin y cerrar conexin. El proceso receptor generalmente tiene que otorgar su permiso para que se lleve a cabo la comunicacin con una llamada aceptar conexin.

La fuente de la comunicacin es conocida como cliente, y el demonio que recibe es conocido como servidor. Se intercambian mensajes mediante llamadas al sistema leer mensaje y escribir mensaje. La llamada cerrar conexin termina la comunicacin. El paso de mensajes es til cuando hay que intercambiar pequeas cantidades de datos.

Modelo de memoria compartida:

Los procesos utilizan llamadas al sistema para correspondencia de memoria con el propsito de obtener acceso a las regiones de memoria que pertenecen a esos procesos. La forma de los datos y la ubicacin, estn determinadas por esos procesos y no por el SO. Los procesos son tambin responsables de poder asegurar que no estn escribiendo simultneamente en la misma posicin de memoria. La memoria compartida permite la mxima velocidad y conveniencia en la comunicacin.3.4 Programas del sistema

Ofrecen un entorno ms cmodo para el desarrollo y ejecucin de programas.

Pueden dividirse en varias categoras:

Manipulacin de archivos: Manipulan archivos y directorios.

Informacin de estado: informan fecha, hora, espacio de memoria o disco disponible, nmero de usuarios o informacin de estado similar.

Modificacin de archivos: Puede haber varios editores de texto para crear y modificar el contenido de archivos almacenados en cinta o disco.

Apoyo a lenguajes de programacin: Con frecuencia, con el SO se ofrecen compiladores, ensambladores e intrpretes para los lenguajes de programacin habituales.

Carga y ejecucin de programas: Una vez ensamblado o compilado un programa, se debe cargar en la memoria para ejecutarlo. El sistema puede ofrecer cargadores absolutos, cargadores relocalizables, editores de enlace y cargadores de superposicin.

Comunicaciones: Estos programas proporcionan el mecanismo para crear conexiones virtuales entre procesos, usuarios y diferentes sistemas de computacin. Programas de aplicacin: programas tiles para solucionar problemas comunes, o para efectuar operaciones comunes.

Interprete de mandatos: Quiz sea el programa de sistema ms importante para un SO y su funcin principal es obtener el siguiente mandato especificado por el usuario y ejecutarlo.

Existen dos mtodos generales para poner en prctica estos mandatos:

El mismo intrprete de mandatos contiene el cdigo para ejecutarlo. El nmero de mandatos que se puede proporcionar determina el tamao del intrprete, ya que cada mandato requiere su propio cdigo de implantacin. Implanta todos los mandatos con programas especiales del sistema. En este caso, el intrprete no comprende el mandato de ningn modo; Los programadores pueden agregar fcilmente nuevos mandatos creando nuevos archivos con el nombre adecuado. El programa intrprete de mandatos, que ahora puede tener un tamao reducido, no necesita modificarse para agregar nuevos mandatos. Problemas:

(a) SO debe ofrecer un mecanismo para transmitir parmetros del intrprete a los programas de sistema, ya que el cdigo para ejecutar un mandato se encuentra en un programa de sistema separado. (b) Es ms lento cargar un programa y ejecutarlo que simplemente saltar a otra seccin del cdigo dentro del programa actual.(c) La interpretacin de los parmetros queda en manos del autor del programa de sistema.

3.5 Estructura de sistemas

3.5.1 Estructura sencilla

Se escribi para una mayor funcionalidad en el menor espacio y no se dividi cuidadosamente en mdulos.

Vulnerable a los programas imperfectos, provocando colapsos totales del sistema o eliminacin de datos en el disco cuando fallan los programas de los usuarios. El ncleo se subdivide en una serie de interfaces y manejadores de dispositivos que se han ido agregando y ampliando. Lo que se encuentra debajo de la interfaz de llamadas al sistema y encima del hardware fsico es el ncleo.

La interfaz con el programador y la interfaz con el sistema definen el contexto que debe proporcionar el ncleo.3.5.2 Enfoque por capas Los SOs se pueden dividir en fragmentos ms pequeos y adecuados.

Facilita que el SO mantenga un control mayor sobre el computador y las aplicaciones que lo utilizan. Da a los implantados mayor libertad para realizar cambios en las partes internas del sistema. Pueden determinarse la funcionalidad y las caractersticas globales y separarlas en componentes. Consiste en dividir el SO en varias capas (niveles) cada una construida sobre las inferiores. La capa ms baja (capa 0) es el hardware; la ms alta (capa N) es la interfaz con el usuario. La principal ventaja del enfoque por capas es la modularidad. Las capas se seleccionan de manera que cada una utilice funciones (operaciones) y servicios nicamente de las capas inferiores. Simplifica mucho la depuracin y verificacin del sistema. Cada capa se implanta utilizando nicamente las operaciones que proporcionan las capas inferiores. Cada capa oculta la existencia de ciertas estructuras de datos, operaciones y hardware a los niveles superiores. La mayor dificultad con el enfoque por capas es definir los niveles: como una capa slo puede utilizar las capas inferiores, es necesaria una planificacin cuidadosa

3.6 Mquinas virtuales A cada proceso se le otorga una copia del hardware subyacente.

Puede planificarse la CPU para compartirla y aparentar que los usuarios cuentan con su propio procesador. Los recursos del computador fsico se comparten para crear las mquinas virtuales.

Se proporcionan discos virtuales, idnticos en todo excepto en el tamao.

Se puede ejecutar software almacenado en la mquina subyacente.

El software de la MV se encarga de la multiprogramacin de varias mquinas virtuales en la mquina fsica.

Cuenta con un modo usuario virtual y un modo monitor virtual, ambos ejecutndose en modo usuario fsico. Cuando el monitor de la mquina virtual obtiene el control, puede cambiar el contenido de los registros y el contador de programa para que la mquina virtual simule el efecto de la llamada al sistema. Al emplear tcnicas de planificacin de la CPU y de memoria virtual, un SO puede crear la ilusin de procesos mltiples que se ejecutan cada uno en su propio procesador con su propia memoria (virtual). El software de la mquina virtual necesita un espacio considerable en disco para ofrecer memoria virtual y Spooling.

Desventajas:

La CPU se multiprograma entre varias mquinas virtuales, lo que las hace impredeciblemente ms lentas; Suponga que la mquina fsica tiene tres manejadores de disco pero quiere dar servicio a siete mquinas virtuales; es obvio que no puede asignar una unidad de disco a cada una.

La solucin es proporcionar discos virtuales, idnticos en todos los aspectos excepto en el tamao. En el SO VM se les denomina minidiscos.

Ventajas:

Se da proteccin completa a los distintos recursos del sistema.

Los recursos no se pueden compartir directamente; para compartirlos se han implantado dos estrategias: Es posible compartir un minidisco. Se puede definir una red de mquinas virtuales y cada una puede enviar informacin a travs de la red virtual de comunicaciones. Es un vehculo perfecto para la investigacin y desarrollo de SOs. La E/S virtual podra requerir menos tiempo (por encontrarse en el Spooling) o ms (por ser interpretada).

3.7 Diseo e implantacin de sistemas

Al disear un sistema, el primer problema consiste en definir sus objetivos y especificaciones. El diseo del sistema se ver considerablemente afectado por la seleccin del hardware y el tipo de sistema. Puede ser mucho ms difcil especificar los requisitos, los cuales pueden dividirse bsicamente en dos grande grupos: objetivos del usuario y objetivos del sistema.

3.7.2 Mecanismos y polticas

Un principio muy importante es la separacin entre poltica y mecanismos.

Los mecanismos determinan cmo realizar algo Las polticas deciden qu se har.

La separacin entre polticas y mecanismos es muy importante para conseguir flexibilidad, pues es probable que las polticas cambien en distintos momentos y en distintos lugares.

Las decisiones polticas son importantes para todos los problemas de asignacin y de planificacin de recursos.

Cuando es necesario decidir si se asigna o no un recurso, se debe tomar una decisin poltica, pero cuando la pregunta es cmo (y no cuando) entonces se debe definir un mecanismo.

3.7.3 Implantacin

Ventajas:

El cdigo se puede escribir ms rpido, es ms compacto y bastante fcil de comprender y depurar.

Es ms fcil transportar (llevar a otro hardware) un SO si est escrito en lenguaje de alto nivel. Despus de escribir el sistema y mientras funciona correctamente, se puede identificar las rutinas que provocan cuellos de botella y sustituirlas con sus equivalencias en lenguaje ensamblador. Se puede calcular y mostrar en tiempo real las mediciones del rendimiento lo cual puede permitir que los operadores se familiaricen con el comportamiento del sistema y lo modifiquen en tiempo real.Desventajas: Reduccin en la velocidad. Aumento en los requisitos de almacenamiento. Un compilador puede producir un cdigo tan bueno como el de un programador normal de lenguaje ensamblador. El administrador de memoria y el planificador de la CPU son quiz las rutinas ms crticas para conseguir una buena productividad.

3.8 Generacin del sistema

El sistema se debe configurar o generar para cada instalacin especfica, proceso que se denomina generacin del sistema. Normalmente, el SO se distribuye en cinta o disco y para generar el sistema empleamos un programa especial.

El programa de generacin del sistema lee de un archivo o solicita al operador informacin sobre la configuracin especfica del hardware: Qu CPU se usar? Qu opciones hay instaladas? Cunta memoria hay disponible? Qu dispositivos hay disponibles? Qu opciones del SO se desean o qu valores de parmetros se deben emplear?

Una vez obtenida la informacin se puede:

Se puede usar para modificar una copia del cdigo fuente del SO y luego compilarlo todo. Produciran una versin objeto del SO hecho a la medida del sistema descrito.

La descripcin del sistema podra provocar la creacin de tablas y la seleccin de mdulos de una biblioteca previamente compilada. Estos mdulos se enlazaran para formar el nuevo SO y la seleccin permitira que la biblioteca contuviera los manejadores para todos los dispositivos de E/S previstos, pero nicamente se enlazaran aquellos que en realidad se necesiten. Sera posible construir un sistema completamente dirigido por tablas. Todo el cdigo siempre formara parte del sistema, y la seleccin se efectuara en el momento de la ejecucin, no al compilar o al enlazar. Diseo de SO:

Debe ser cmodo, fcil de usar y de aprender.

Separacin de polticas (que se har) y mecanismos (cmo hacerlo).

Implantacin: antes los sistemas se escriban en Assembler, hoy en da pueden ser escritos en lenguajes de alto nivel. Ventajas: Se escribe ms rpido, fcil de entender y depurar.

Generacin del sistema para ejecutarse en una determinada mquina

Que CPU Cuanta memoria

Que dispositivos Parmetros generales

Con esta informacin puedo modificar el original y compilarlo, o utilizar un sistema dirigido por tablas

4. Aspectos Estructurales de los SOs.

4.1 Aspectos estructurales

4.1.1 Concepto de Sistema

Un sistema es un conjunto de objetos y un conjunto de relaciones entre esos objetos. Las propiedades de un sistema derivan de los atributos de los objetos que la componen y de la naturaleza de las relaciones entre ellos.4.1.2 Divisin en tiempos de un sistema

Tiempo de pre-procesamiento

Tiempo de demanda

Tiempo de seleccin

Tiempo de compilacin

Tiempo de combinacin

Tiempo de activacin

Tiempo de procesamiento

Tiempo de post-procesamiento

4.1.3 Tiempo de pre-procesamiento

En este tiempo el SO brinda un conjunto de servicios que ejecutan todas las acciones necesarias para preparar un trabajo para ser corrido y al sistema para que pueda correrlo.

4.1.3.1 Tiempo de compilacin

Es el tiempo durante el cual un programa fuente es un dato para un mecanismo denominado compilador o ensamblador, que lo traduce a programa objeto ejecutable o bien a una forma prxima a la requerida.

Compilador produce un objeto ejecutable: incluye todas las funciones necesarias para su corrida y no requiere de ningn proceso adicional.

Compilador produce objeto no ejecutable: necesita de un proceso de combinacin para incorporarle ciertas funciones en el tiempo de combinacin o bien en el tiempo de activacin durante la carga del programa a memoria.

4.1.3.2 Tiempo de combinacin

Se enlaza un programa objeto junto con rutinas del sistema y con otros programas de aplicacin previamente compilados, produciendo un mdulo directamente ejecutable.

Esta combinacin puede realizarse entre compilacin y seleccin o en la activacin durante la carga del programa a memoria.

4.1.3.3 Tiempo de demanda

Es el tiempo en el cual un usuario reclama la atencin del sistema.

En procesamiento Batch, es el tiempo en el que un lote de tarjetas de control es ingresado al sistema.

Las demandas son monitoreadas por un receptor de demandas quien las valida sintcticamente y las graba en una cola interna de trabajos en espera (C.T.E.). Este mecanismo receptor de demandas generalmente es denominado Reader o Command Interpreter.

4.1.3.4 Tiempo de seleccin

Es el tiempo durante el cual el sistema decide posponer u otorgar atencin a la demanda.

En esta etapa, el SO elige de la C.T.E. el prximo trabajo a ser activado, aplicando algn determinado criterio.

4.1.3.5 Tiempo de activacin

Es el tiempo durante el cual se ejecutan acciones para iniciar un programa, como la asignacin de recursos.

A medida que se anticipan las decisiones en materia de asignaciones, el sistema es menos flexible.

A medida que estas decisiones se posponen el sistema deviene ms flexible.

Un vez que un trabajo tiene asignado todos los recursos que necesita en forma esttica, el mismo se encuentra listo para ser activado; entonces se graba un elemento en la cola de procesos activos (C.P.A.) creada por el activador.

4.1.4 Tiempo de procesamiento

Es el perodo en el cual decimos que un programa est activo en el sistema.

En los sistemas de serie simples, el tiempo de procesamiento es un intervalo continuo de tiempo durante el cual el programa ejecuta sus operaciones hasta su conclusin (desde el inicio hasta el fin de la corrida).

En sistemas de multiprogramacin y de tiempo compartido, es el intervalo durante el cual el programa est representado en el sistema por algn elemento (TCB PCB) que describe el estado y las capacidades del programa. Es durante el tiempo de procesamiento cuando un programa es usuario de la arquitectura ampliada a travs de una serie de servicios provistos por componentes del SO.El Dispatcher se encarga de conmutar la CPU entre los distintos programas que conforman la mezcla de multiprogramacin (o sea los que estn representados en la C.P.A.).

4.1.5 Tiempo de post-procesamiento

Es el perodo durante el cual el sistema evacua un programa ya completado.

Los recursos usados por el programa son recuperados por el sistema para signarlos a otro programa. En ciertos sistemas es el tiempo durante el cual el output producido por el programa es impreso o grabado en un dispositivo.

TIPOS DE COMPILACIONES:

Compilacin absoluta: particiones fijas: Con una memoria dividida as permite la ejecucin de N programas a la vez pero el inconveniente es la compilacin absoluta porque un programa solo puede ser ejecutado en la misma.

Compilacin relativa: Se incorpora un redireccionador de direcciones para pasar a una compilacin relativa restando o sumando a las direcciones cuando quiero ejecutar un programa compilado en otra particin. Ahora las particiones no son definitivas.

Eliminacin de la fragmentacin fsica: Para no realizar una fragmentacin fsica, se realizan particiones lgicas. De esta manera se va ocupando solo el lugar necesario. Cuando un programa finaliza y deja un espacio libre este se puede administrar. Como no siempre los espacios libres se van a ir llegando completamente se va a ir creando una fragmentacin interna, que se fue solucionando redireccionando los programas.

Optimizacin: Se fragmentan los programas y en memoria se tiene que tener un PROGRAMA RAIZ y uno de los fragmentos. Si en la memoria entra el programa raz y el mas grande de los fragmentos el programa correra. Esto lleva mucho tiempo.

4.1.6 Evolucin

4.1.6.1 Tiempo Simple

Se fusionan prcticamente todos los tiempos de pre-procesamiento en el compilador. Los servicios del tiempo de demanda son satisfechos por un operador o por un programa monitor residente que llama al compilador o a un programa del usuario segn lo especificado en el control-stream. El compilador realiza todas las asignaciones de las ubicaciones en memoria y tambin de los dispositivos que atendern las E/S, de modo que las direcciones reales de memoria y las direcciones reales de los perifricos son fijadas y compiladas dentro del programa. El resultado de esta compilacin puede ser un programa directamente ejecutable. Los programas a ser combinados con el programa a compilar, pueden ser combinados por recompilacin o bien dndole al compilador acceso a una biblioteca de rutinas precompiladas. La activacin es simplemente el acto de cargar un programa dentro de la mquina en las direcciones absolutas generadas por el compilador.4.1.6.2 Combinar y activar

Distinguir un tiempo de combinar y activar, como un tiempo definido para demorar la asociacin del programa a los recursos.

Facilita la combinacin de programas escritos en distintos lenguajes.

4.1.6.3 Carga

Fusionaba inicialmente los tiempos de seleccin y activacin. Se convoca ahora al cargador (o Loader) para que cargue el programa objeto en memoria. El programa es asignado en memoria y los dispositivos y programas precompilados son enlazados (link-editados) al programa a ser cargado. Incluye la asignacin de memoria y la carga junto con el programa, de las rutinas de manejo de dispositivos de E/S.

El Loader tiene la capacidad de cargar el programa en cualquier conjunto de ubicaciones contiguas de memoria de dimensiones apropiadas: Reasignacin de Memoria. El compilador genera ahora programas reasignables (compilacin relativa) y asignacin simblica de perifricos. En la etapa final de la carga, el Loader ubica el programa en memoria principal y le transfiere el control.La existencia del Loader requiere un conjunto de tablas representando los recursos disponibles del sistema (en archivo) y un conjunto de bloques de control (en el mbito de procesamiento) representando la asociacin de nombres simblicos de archivos con nombres de dispositivos reales que los contienen.

4.1.6.4 Link-edicin

Tiempo independiente, precediendo al tiempo de activacin.

Una serie de programas usuario podan ser combinados independientemente de la asignacin y activacin. Ahora nicamente el resultado de la combinacin (o link-edicin) es sometido al tiempo de activacin.

4.1.6.5 Asignadores

La asignacin de conjuntos de datos y dispositivos es separada de la asignacin de ubicaciones de memoria y sta, a su vez, separada de la carga del programa en la memoria principal. Un activador recibe un programa desde un Scheduler y le asigna los recursos necesarios. Una vez cumplida esta operacin el programa es pasado al cargador. Una alternativa frecuente: tener una clasificacin de los recursos del sistema en clases o tipos y asociar un asignador para cada clase o tipo de recurso. En este caso el tiempo de activacin es el tiempo que lleva ejecutar todas las funciones de asignacin que requiera un programa.

Un programa va pasando de la asignacin de archivos a la asignacin de perifricos y de all a la asignacin de memoria principal.

Cada uno de los Asignadores debe tener acceso a tablas que reflejen la disponibilidad de los recursos particulares.

Este diseo funciona entonces en un solo tiempo, los de seleccin y activacin.

4.1.6.6 Conclusiones

Las rutinas para el manejo de las E/S, stas pueden ser incorporadas (o brindadas) al programa en:

El tiempo de compilacin: La biblioteca es propiedad del compilador y este se encarga de incorporar al programa usuario las funciones que este necesita para su corrida.

El tiempo de activacin: Disminuye el espacio requerido para guardar programas en el almacenamiento secundario e incrementa el tiempo necesario para cargar el programa en memoria. El tiempo de combinacin: la biblioteca es del combinador quien se encarga de adicionarle al programa las funciones correspondientes. Incrementa la necesidad de almacenamiento secundario y disminuye el tiempo empleado para la carga del programa. El tiempo de procesamiento La biblioteca reside en memoria, formando parte del SO y las funciones estn disponibles para que los programas las convoquen cuando las necesiten. Disminuye el espacio necesario para almacenamiento de programas, se reduce el tiempo para cargar el programa y decrece la cantidad de memoria que ste necesita; a costa de una sobrecarga en el mbito de procesamiento.As mismo la memoria puede ser asignada a un programa en:

El tiempo de compilacin: En los sistemas de tiempo simple con compilacin absoluta.

El tiempo de activacin: En los sistemas de multiprogramacin bsica con compilacin relativa.

El tiempo de procesamiento: En los sistemas de multiprogramacin avanzada con memoria virtual.4.1.8 Servicios del sistema y privilegios

Si el compilador es un programa de trabajo, entonces el deber experimentar la secuencia de los tiempos de demanda, seleccin, activacin y procesamiento.

Esto lleva a la simple observacin de que compilacin y combinacin podran ser suprimidas de la secuencia de tiempos.

Problema adicional: si las funciones de demanda, seleccin y activacin son simplemente programas de trabajo independientes, cmo pueden ser demandadas, seleccionadas, activadas y corridas ?.

Una solucin es la de un operador que fuerce la seleccin y activacin de los mecanismos de demanda, seleccin y activacin, de modo que stos estn continuamente representados en el mbito de procesamiento por un elemento del sistema (TCB).

Estos programas estarn inactivos (latentes) hasta que un control-stream arribe al sistema y en ese instante se tornarn listos para correr. 4.1.9 Subsistemas

Ciertos servicios del tiempo de pre-procesamiento pueden combinarse dentro de subconjuntos, de capacidades conceptualmente distintas, por ejemplo subsistemas.

Cualquier conjunto de servicios de pre-procesamiento puede ser organizado para formar un subsistema.

Un subsistema puede presentar un conjunto mejorado de interfaces del tiempo de procesamiento. Es un nico conjunto de servicios macro-enriquecidos empaquetados para facilitar la corrida de programas que requieren de ellos sin molestar a aquellos programas que no los necesitan.

4.2 Asignacin de Recursos4.2.1 Asignacin Esttica Durante el tiempo de pre-procesamiento, luego de haber seleccionado un trabajo.

La ventaja para el usuario es que se asegura los servicios requeridos hasta su finalizacin.El problema principal para el usuario, es que el trabajo demandado puede experimentar una demora indefinida antes de que sea iniciado dado que todos los recursos deben ser adquiridos conjuntamente.

El problema principal para el sistema, se presenta el inconveniente de comprometer un recurso que puede no ser realmente necesitado por el programa.

4.2.2 Asignacin Dinmica

El Scheduler seleccionea un trabajo sin asignarle ningn recurso. Los recursos son entonces adquiridos en forma dinmica mediante macros que forman parte del mbito de procesamiento, luego de la iniciacin del programa.

El Scheduling consiste en el acto de conceder permiso para competir por recursos. El objetivo de un sistema de asignacin dinmica es minimizar la diferencia entre uso nominal y uso real de un recurso.

El uso nominal de un recurso representa aquellos intervalos de tiempo durante los cuales un recurso es asignado y retenido por un programa aunque ste no lo est utilizado activamente.

La ventaja para el usuario de este mtodo es un ms rpido arranque del programa.

La ventaja para el sistema es la recuperacin dinmica de recursos no utilizados.

La desventaja para el sistema: Se recarga el mbito de procesamiento debido a los mltiples actos de asignacin y desasignacin.4.2.3 Tcnicas de Asignacin

4.2.3.1 Staging Consiste en definir clases de recursos y asignar cada clase desde una cola de recursos separada. Si no se dispusiese de esta tcnica, el programa debera esperar que todos los recursos estn disponibles en forma simultnea. En cambio slo se requiere que estn disponibles simultneamente aquellos recursos de una misma clase.La ventaja para el usuario es que facilita el ingreso del programa. Todos los recursos no necesitan estar disponibles simultneamente. A medida que es adquirida una clase, el programa retiene el recurso y avanza a la siguiente cola.

La desventaja para el sistema es que los recursos son retenidos durante perodos de tiempo en que se est esperando por otros recursos.

4.2.3.2 Aging

Se va aumentando la prioridad de un programa con el transcurso del tiempo, o bien en funcin del nmero de negativas recibidas ante la solicitud de un recurso. Puede definirse un umbral de prioridades que cuando es alcanzado impedir al sistema que siga asignando recursos hasta que el demandante de requerimiento que super el umbral sea completado.4.3 Administracin de Recursos

4.3.1 Introduccin1. La nocin de que el SO provee mecanismos que permiten compartir los recursos de un sistema de computacin, protegindolos y resolviendo la competencia por el uso de los mismos. La administracin de recursos implica resolver los conflictos de demanda, asignar y proteger un recurso.2. La nocin de que ciertos recursos son definidos por el SO a travs del uso del mismo. O sea que el propio SO los define y reconoce como recursos. Estos recursos son la materializacin o conceptualizacin de estructuras abstractas. Es decir que a travs del SO la memoria se presentar como un espacio de direcciones referenciables, no necesariamente de la misma dimensin que la memoria fsica.

El concepto de administracin de recursos contiene tres ideas principales:

1. La idea de recurso

2. La idea de poltica para alcanzar un objetivo con la administracin de recursos.

3. Una relacin entre los recursos que son administrados y la naturaleza de los programas que los demandan.

4.3.2 Recurso

Abstraccin definida por el SO quien otorga una serie de atributos referentes a la forma de acceso al mismo y a su representacin fsica en el sistema. Un conjunto de recursos del software, sujetos a la administracin del SO, pueden ser definidos en un sistema de computacin como objetos a los cuales se debe controlar el acceso.

La funcin del SO es definir una mquina abstracta, compuesta por recursos abstractos que son convenientemente manejados por los procesos para proteger la utilizacin de los mismos, para asegurar un uso coherente y para imponer polticas de explotacin.

4.3.3 Poltica

Dado un conjunto de recursos, el uso de los mismos debe ser fijado por una poltica. Una poltica es el enunciado de los objetivos de una empresa en lo que hace a la operacin satisfactoria de un sistema de informacin. El SO presenta una interface que permite, mediante sentencias, establecer la importancia que debe darse a una determinada clase de trabajos y establecer cmo sern tratados los distintos programas que compiten por los recursos del sistema.Motivaciones:

Motivos econmicos para compartir memoria y CPU que decrecen;

Motivos econmicos para compartir la informacin, los cuales crecen; Mecanismos fundamentales de acceso y asignacin mantienen su importancia.

Objetivos:

Minimizar el flow-time promedio (tiempo que tarda un programa en atravesar la mquina desde la demanda hasta la obtencin de los resultados).

Minimizar el nmero de respuestas tardas.

Minimizar el tiempo mximo de las respuestas tardas.

Maximizar la utilizacin del hardware.

Maximizar la utilizacin del hardware pero con la restriccin de que ninguna respuesta sea superior a un cierto tiempo lmite.

Brindar servicios de la clase A en un cierto porcentaje, de la clase B en otro porcentaje, etc.En general un SO brinda todos algunos de los siguientes servicios:

Una interface para administrar las polticas de explotacin del sistema.

Una interface que permite a un profesional en sistemas ajustar la performance del equipo.

Una interface que posibilita describir la importancia relativa de un trabajo en particular en trminos de su pertenencia a un determinado grupo o clase, a un determinado plazo de finalizacin, o a una prioridad relativa.

Una interface para describir las caractersticas del consumo de recursos de un determinado proceso.

Inconvenientes:

En las interfaces de los SOs no existe una clara diferenciacin entre definicin de poltica y operacin, pues no se distinguen ntidamente los roles de administracin y operacin del equipo. Necesidad de formular la poltica de administracin en trminos de parmetros que slo pueden ser comprendidos por profesionales.

4.3.4 Influencia de la programacin

La efectividad de la administracin de recursos depende:

De la apropiada formulacin y expresin de una poltica

De las caractersticas del estilo de programacin.

Influencia:

La programacin: Restringe la eficiencia de la administracin de recursos por la definicin de objetos (programas) que usan los recursos en una forma que puede escapar al control del sistema. El estilo de programacin determina el tamao de un programa y consecuentemente la cantidad de recursos que ste emplear. Los patrones de direccionamiento de memoria y disposicin de pginas: afectan la performance de un SO ms all de la capacidad de control del mismo, implicarn el uso de mecanismos muy complejos.

El SO podr penalizar o alentar programas con ciertas caractersticas, asignando o desasignando recursos para enfatizar o neutralizar cierto tipo de programas, pero el sistema no podr llegar a la estructura bsica de un programa para modificar su performance, ni la forma en que interactuar con otros programas de la mezcla.

El tamao estimado de los programas puede afectar las estrategias de administracin de recursos de varias maneras.

1. Conjunto de programas de tamao reducido. La cantidad de recursos que ellos usan y la cantidad de tiempo que los disponen, representa, por cada programa, una pequea carga para el sistema. La diferencia entre utilizacin nominal y utilizacin real de un recurso puede ser lo suficientemente pequea como para que no se necesite incluir un mdulo en el sistema para controlar el uso de recursos en un nivel inferior al de asignacin.

2. nico programa de gran dimensin. Los requerimientos de recursos de este programa sern considerablemente superiores que los requerimientos individuales de cada una de las unidades lgicas que lo componen. El sistema podr adoptar, en este caso, una o ambas de las siguientes estrategias:a) Asignar recursos dinmicamente: Otorgar los recursos slo cuando ellos son especficamente solicitados. b) Administracin dinmica de recursos: mecanismos con un mdulo distinto al de asignacin, segn la forma en que el proceso est usando los recursos asignados, se los ampla o restringe, cedindolos y recapturndolos. Los recursos que pueden ser administrados de esta forma son slo los recursos reasignables, o sea aquellos que pueden ser dados a y quitados de un proceso, sin causar efectos en su lgica.

Costo relativo: Costo de los mecanismos de asignacin versus el costo por la subutilizacin del equipo.

Utilizacin Real: Intervalo de tiempo en que el recurso es usado efectivamente (intervalo de tiempo que un programa se sirve del recurso).

Utilizacin Nominal: Perodo de tiempo desde que un recurso es asignado hasta su desasignacin.

Deadlock: Es un estado en el que existe la posibilidad de que un proceso sea mantenido indefinidamente en el mbito de procesamiento, por no encontrarse disponible un determinado recurso que necesita.

4.3.5 Fundamentos econmicos

El valor puede derivar:

- De la reduccin de los costos de creacin, manipulacin, clasificacin y almacenamiento de datos- Del aumento de la productividad de los usuarios y profesionales ligados al sistema- De la provisin de informacin de mejor calidad y en margen de tiempo mas conveniente.El costo de computacin incluye:

- El costo del hardware

- El costo del staff de profesionales.- De los costos derivados del efectivo uso del equipo.

El valor de un sistema de computacin debe ser medido por el valor de la informacin que produce. Hay informacin que es muy sensible al transcurso del tiempo.

Se percibe claramente que el costo de una mquina sobrecargada puede ser tanto o ms grande que el costo de una mquina subcargada si, debido a la sobrecarga, se desbarata la productividad econmica de los usuarios de terminales.

Sub-Administracin: Es cuando a un hard con muchos recursos se lo administra con un SO que fue concebido para regular un hard mas sencillo.Sobre-Administracin: Es cuando un hard con pocos recursos es administrado por un SO preparado para controlar un hard mas complejo.

4.3.6 Lmites de la administracin de recursos

Una mquina con un rico conjunto de diferentes clases de recursos justificar ms una intensa administracin de recursos que otra mquina con recursos escasos. La administracin de recursos se debe adaptar y limitar a las posibilidades del hardware, de lo contrario, se corre el riesgo de sub-administrar o sobre-administrar el equipo. El consumo de recursos deber facilitar que el exeso neto de recursos permita soportar mayor carga de trabajos Conclusin: la administracin de recursos debe establecer que el consumo de recursos utilizados para ejecutar estas funciones de administracin sea tal que el saldo neto de recursos disponibles permita soportar una mayor carga de trabajos que la que soportara sin los mdulos de administracin.

4.4 Funcin de los Sistemas Operativos

Un SO es un programa o conjunto de programas que:

Acta como una interface entre el usuario y el hardware

Provee un mbito donde puedan ejecutarse los programas de aplicacin

Controla y coordina el uso del hardware entre distintos programas

Los objetivos principales de un SO son:

Conveniencia: Hacer al sistema de computacin fcilmente utilizable.

Eficiencia: Maximizar el aprovechamiento del sistema de computacin, optimizando el uso de los recursos.

Las funciones que generalmente se le atribuyen a un SO son:

Proveer un conjunto de aparentes recursos lgicos que sean ms fcil de manipular que el hardware que los soporta.

Proveer mecanismos de acceso, secuenciacin y proteccin en un medio en el que los recursos son compartidos.5. Clasificacin de los Sistemas Operativos

Los SO difieren porque el hardware de base que los soporta y el medio en el cul ser utilizado tambin difieren. 5.1 Clasificacin

1. Toma como parmetro el hardware subyacente:

Gran equipo:

Es caro y sus propietarios desearn un uso correcto e intensivo, un gran nmero de trabajos independientes provenientes de distintas fuentes, diversidad de la carga de trabajo y su volumen. Es deseable que soporten diversas formas de acceso y que brinden servicios de alto nivel. Es una estructura compleja, posiblemente con varios procesadores, con una amplia variedad y cantidad de dispositivos. Tienen altos niveles de independencia de perifricos, secuenciamiento dinmico, tcticas de asignacin de recursos y un importante conjunto de interfaces. Maquina pequea:

Se limita el tipo de acceso que puede hacerse al sistema, permitir slo el acceso desde una terminal para el desarrollo de programas y la ejecucin de pequeos programas como esperados. El SO slo podr ofrecer administracin de archivos de forma sencilla y con limitado acceso a la informacin.

2. Segn el mtodo primario de acceso que brindan:

Sistemas Conversacionales

Sistemas de Tiempo Real

Sistemas de Procesamiento en Lotes

3. Segn las caractersticas del usuario:

Sistemas de Programacin

Computadores Personales (PC)

Sistemas de Consultas

4. Otra clasificacin se puede presentar por la sofisticacin de las funciones particulares: Existe una relacin con el tamao de la maquina.5. De manera tradicional, los SOs pueden clasificarse de la siguiente manera:

SOs de Tiempo Real

SOs de Procesamiento en Lotes (Batch)

SOs de Serie Simple

SOs de Multiprogramacin bsica

SOs de Multiprogramacin avanzada

SOs de Tiempo Compartido

SOs Multipropsitos

6. Se consideran las relaciones entre el tamao del hardware, los tipos de accesos y el sistema usado: APLICACIONACCESOTAMAO MAQUINA

ON LINEBATCHPEQUEAGRANDE

FACILIDADES DE PROGRAMACIONSISISISI

SISTEMAS DE PRODUCCION

PROCESAM. TRANSACCIONESSINOSISI

BASES DE DATOSSISISISI

COMPUTADORAS PERSONALESSINOSISI

SISTEMAS DE TIEMPO REALSINOSISI

Lo que sugiere es que la facilidad de desarrollo de programas es independiente del tamao de la mquina y del tipo de acceso a la misma.

5.2 Tiempo RealPueden ser:

1. De lazo abierto: la computadora informa.

2. De lazo cerrado: la computadora realiza la accin necesaria.

5.2.1 Clasificacin

Adquisicin de datos.

Por medio de sensores adecuados deben leerse datos de un proceso externo y almacenarse convenientemente para un uso posterior. Los datos deben ser adquiridos y almacenados en tiempo real.

Sistemas de control a lazo abierto.

El sistema de computacin adquiere los datos del proceso externo, los procesa convenientemente y los muestra a un operador humano.

Sistemas de control a lazo cerrado.

El sistema de computacin adquiere los datos del proceso externo, evala las desviaciones respecto de los objetivos buscados y emite por s mismo (sin intervencin humana) los comandos correctivos adecuados.

5.2.2 Caractersticas La actividad de procesamiento es disparada por eventos aleatorios externos.

Suele usarse como dispositivo de control en una aplicacin dedicada.

Mnima intervencin humana (modificacion de parametros, violacion de limites, desperfectos)

El recurso crtico puede ser la CPU o los canales.

Pueden tener memoria virtual pero casi nunca se aplica

Es conveniente para estos sistemas la asignacin esttica ya que son mas veloces.

Relativa pobreza de los algoritmos de administracin de recursos. La base del hardware puede ser muy pequea (microcomputador) o muy grande (macrocomputador) dependiendo de las necesidades de la aplicacin.

Existen sensores que llevan la informacin al computador, el cual debe analizar los datos y quiz ajustar los controles para modificar las entradas de los sensores.

El procesamiento debe llevarse a cabo dentro de los lmites de tiempo definidos o el sistema fallar. Es habitual que se procesen rfagas de miles de interrupciones por segundo sin perder un solo suceso, tales exigencias no pueden ser satisfechas por la multiprogramacin solamente, y los SO de tiempo real confan generalmente en algunas polticas y tcnicas especficas para realizar su trabajo. Bsicamente cada proceso separado est a cargo del manejo de un nico suceso externo. El proceso se activa tras la ocurrencia del suceso en cuestin. La operacin multitarea se consigue planificando los procesos para ser ejecutados independientemente unos de otros. Cada proceso tiene asignado un cierto nivel de prioridad que se corresponde con la importancia relativa del suceso al que sirve. Forma de planificacin expropiativa basada en prioridades.

Por lo general no h