Creada por Ley N 822 del 12-01-96 La Universidad sin fronteras
FACULTAD DE INGENIERIA INFORMATICA Sistemas Operativos Clase 1. Contenido I. Introduccin
En un alto nivel, un sistema informtico consta: a) Procesador b) Memoria c) Mdulos de E/S d) Interconexin de sistemas: mecanismos y estructuras que permiten la comunicacin entre procesadores, memoria principal y los mdulos de E/S. El procesador es normalmente quien lleva el control. Una de sus funciones es intercambiar los datos con la memoria.
Unidad Central de Proceso MEMORIA AUXILIAR (SOPORTES MAGNETICOS, OPTICOS) MEMORIA CENTRAL Procesador PRCESADOR UNIDAD DE CONTROL UNIDAD ARIMETICO LOGICA Elementos de Salida Elementos de Entrada La Unidad Central de Proceso (CPU, Central Processing Unit), es la unidad principal o centro neurlgico de una computadora, su misin consiste en coordinar y realizar todas las operaciones del sistema informtico. Una Unidad Central de Proceso se conforma de: Procesador, que es el elemento encargado de controlar y ejecutar las operaciones y est conformado por: Unidad de Control (CU, Control Unit) es la parte del procesador encargada de gobernar al resto de las unidades, adems de interpretar y ejecutar las instrucciones controlando su secuencia. Dirige y coordina las actividades de la computadora as como: - Controla los dispositivos de Entrad /Salida - Entrada y recuperacin de informacin de almacenamiento - Transmisin de informacin entre el almacenamiento y la Unidad Aritmtico/Lgica - Direccin de las operaciones Aritmticos/Lgicas Unidad aritmtica-lgica: Es la parte del procesador encargada de ejecutar todas las operaciones del tipo aritmtico y lgico. Contiene los circuitos electrnicos que ejecutan los clculos necesarios y toman las decisiones Lgicas ordenadas por las instrucciones. Memoria central tambin denominada memoria interna o principal, es el elemento de la unidad central de proceso, encargado de almacenar programas y datos para que el sistema informtico realice un determinado trabajo. El programa debe estar en la memoria para poder ser ejecutado. Elementos de entrada, tambin llamados perifricos o unidades de entrada, son los encargados de introducir datos y programas del exterior a la memoria central. Estos 1 dispositivos adems de recibir la informacin del exterior la preparan para que la mquina pueda entenderla de forma correcta. Ej. Teclado Memoria auxiliar, son dispositivos de almacenamiento masivo que se utilizan para retener datos, programas e informacin para sus posterior utilizacin. La caracterstica principal de stos dispositivos es que la informacin permanece a travs del tiempo aunque est desconectado de la red elctrica. Ej. Disquetes, discos duros y pticos, cintas. Elementos de salida: Son dispositivos cuya misin es proporcionar al exterior los resultados de los procesos que se realicen en el sistema informtico. Son denominados tambin perifricos o unidades de salida. Ej. monitor, impresora.
Definiciones varias Hardware: Es la totalidad fsica de la computadora y perifricos, Software: Son series de rutinas, conjuntos de programas, mtodos y procedimientos que se incluyen en un computador y que hace posible la utilizacin eficaz del mismo. Son los programas propiamente dichos. Firmware: programa grabado sobre un componente del sistema y que est integrado a l en su funcionamiento. Programa: Conjunto de instrucciones en forma secuencial y ordenada, dados al computador para que este ejecute una tarea determinada. Instruccin: Conjunto de caracteres que representa una orden de lenguaje de programacin que se da a un ordenador con miras a la ejecucin de una o varias funciones u operaciones determinadas. Campo: Es el lugar donde esta un conjunto de caracteres ordenados o un solo carcter. El campo se define dndole Nombre, longitud, tipo Registro: Conjunto de campos, informacin sobre personas, hechos o eventos relacionados entre si, semejantemente dispuestos no precisamente ordenados, tratados como una unidad. Pueden ser de longitud fija o variable. Su longitud mnima es la de un campo. Archivo: Conjunto de registros organizados de alguna manera, relacionados entre si tratados como una unidad, inherentes a una sola cosa. Carcter: Elementos del conjunto de smbolos que representan a los datos dentro de un sistema de ordenador Byte: (Binary Term). Sinnimo de carcter, octeto. Unidad bsica compuesta de 8 bits, en un proceso de informacin es la unidad mas pequea. Bit: (Binary dicit). Es el elemento mas pequeo en un sistema binario pudiendo tomar dos valores, 1 o 0. Es la unidad minima de informacin a nivel de manejo para la computadora. Memoria Principal: tambin llamada memoria primaria. Es un sistema de memoria en el cual la unidad central de proceso tiene acceso directo e instantneo dndole su direccin. Memoria secundaria: tambin llamada memoria secundaria. Es aquella en la que la unidad central de proceso tienen acceso indirecto la memoria secundaria complementa a la memoria principal, generalmente es un soporte. Memoria virtual: Es el aumento de la capacidad de la memoria principal en base a algn tipo de memoria auxiliar. Memora cache: La memoria cach intenta obtener una velocidad cercana a la de las memorias ms rpidas y, al mismo tiempo, aportar una memoria grande al precio de las memorias de semiconductores, que son menos costosas. La cache contiene una copia de parte la memoria principal.
Qu es un Sistema Operativo?
Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicacin y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. En una definicin informal es un sistema que consiste en ofrecer una distribucin ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.
Un sistema operativo es principalmente un administrador de recursos, y el recurso primario que administra es el hardware del computador
2 Recursos claves que un sistema operativo administra.
- Los procesadores - El almacenamiento - Los dispositivos de entrada / salida - Los datos
Funciones del sistema operativo
Aceptar todos los trabajos y conservarlos hasta su finalizacin. Interpretacin de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador. Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse. Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnticas. Manejo de errores: Gestiona los errores de hardware y la prdida de datos. Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien despus). Proteccin: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario. Multiacceso: Un usuario se puede conectar a otra mquina sin tener que estar cerca de ella. Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos. Configura el entorno para el uso del software y los perifricos; dependiendo del tipo de mquina que se emplea, debe establecerse en forma lgica la disposicin y caractersticas del equipo. Como por ejemplo, una microcomputadora tiene fsicamente dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o recursos que comparten. De igual forma, provee de proteccin a la informacin que almacena.
En una computadora actual suelen coexistir varios programas, del mismo o de varios usuarios, ejecutndose simultneamente. Estos programas compiten por los recursos de la computadora, siendo el sistema operativo el encargado de arbitrar su asignacin y uso. Como complemento a la gestin de recursos, el sistema operativo ha de garantizar la proteccin de unos programas frente a otros y ha de suministrar informacin sobre el uso que se hace de los recursos.
El sistema operativo es un interfaz con:
- Los operadores del computador - Los programadores de aplicaciones - Los programadores de sistemas - El personal administrativo - Los programas - El hardware - Los usuarios
3 Caractersticas de los Sistemas Operativos En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas:
Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una computadora. Define el interfaz de usuario. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera ms eficiente posible. Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos. Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo requiera. Organizar datos para acceso rpido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de computadoras. Procesamiento por bytes de flujo a travs del bus de datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora. Recuperase de errores
CLASIFICACION DE LOS SISTEMAS OPERATIVOS Multiusuarios Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el nmero de procesadores en la mquina ni el nmero de procesos que cada usuario puede ejecutar simultneamente. Monousuarios Los sistemas operativos monousuarios son aqullos que soportan a un usuario a la vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales tpicamente se han clasificado en este rengln. Monotareas Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Multitareas Un sistema operativo multitarea es aqul que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de un programa durante su depuracin mientras compila otro programa, a la vez que est recibiendo correo electrnico en un proceso en background. Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un rpido intercambio entre las tareas para el usuario, mejorando su productividad. Uniproceso Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS. Multiproceso Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de trabajo. 4 Generalmente estos sistemas trabajan de dos formas: simtrica o asimtricamente. Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads) son enviados indistintamente a cuales quiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema. Sistemas Operativos por su Estructura
Estructura monoltica. Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). Las caractersticas fundamentales de este tipo de estructura son: Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del ligador. Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc. Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones. Estructura jerrquica. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema contena sub-partes y esto organizado en forma de niveles.
Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines didcticos (Ver Fig. 3). Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categora. [Feld93]. 5 En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings" (Ver Fig. 4).
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas. Mquina Virtual. Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina extendida al usuario (Ver Fig. 5).
6 Cliente-servidor (Microkernel) El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o pequeas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los sistemas operativos convencionales. El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se est trabajando en una versin de UNIX que contempla en su diseo este paradigma.