Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIDAD 3.
Recurso es un componente hardware necesario para llevar a cabo una determinada funcin. En los ordenadores existen cuatro tipos de recursos principales: el procesador, la memoria principal, el almacenamiento secundario y los dispositivos de entrada/salida.
-1-
La utilizacin de los recursos mediante programas es muy complicada, puesto que cada dispositivo es diferente y con gran cantidad de caractersticas a controlar, es por ello, que, con el tiempo, fue desarrollndose un software especializado y diseado especficamente para el control de los recursos, liberando de sta compleja e inevitable funcin a los programas de aplicacin. Este software acab siendo lo que hoy conocemos como sistema operativo.
SISTEMA OPERATIVO
Sistema operativo es un conjunto de programas, ordenadamente relacionados entre s, destinado a muchas tareas entre las que destaca la administracin eficaz de los recursos del ordenador. El sistema operativo es, sin duda, el programa ms complejo e importante de un ordenador, actuando como intermediario entre los distintos elementos que intervienen y proporcionando un entorno en el cual los usuarios puedan ejecutar las aplicaciones que requieran. A veces tambin se denomina Software de sistema o Software de base, sirviendo, bsicamente, para: controlar e interactuar con todos los elementos del sistema informtico (an siendo externos al propio ordenador) controlar y gestionar los dispositivos hardware de la mquina desde los niveles ms bsicos proporcionar una interfaz que permita el dilogo con el usuario administrar y mantener los sistemas de ficheros en los dispositivos de almacenamiento dar soporte a otros programas, ofreciendo una gran variedad de servicios, que son invocados mediante las conocidas como llamadas al sistema Frecuentemente, bajo el concepto de software de base tambin nos referimos al software que se puede encontrar en la mayora de los aparatos electrnicos que utilizan microprocesadores para funcionar, ya que gracias a ste software, podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, autoradios, electrodomsticos automticos, etc.). Este software, suele venir almacenado en una memoria no voltil y, habitualmente, tambin se denomina firmware.
-2-
Desde el punto de vista del usuario, el sistema operativo debe cumplir los siguientes objetivos:
Ocultar, tanto al usuario final como a los programadores, los detalles del funcionamiento de la mquina, proporcionando ms comodidad en el uso del ordenador. Gestionar y administrar de manera eficiente los recursos del equipo, repartiendo el uso de los mismos entre los distintos usuarios y/o los distintos procesos (programas) en ejecucin. Proporcionar una interfaz al usuario, ejecutando instrucciones, comandos o acciones indicadas por cualquier otro procedimiento. Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).
Un sistema informtico o sistema de computacin puede considerarse compuesto, globalmente, por tres componentes: el hardware (ordenador o mquina fsica), el software, que a su vez est compuesto por el sistema operativo (software de base) y los programas de aplicacin (software de usuario) y, por ltimo, el recurso humano (usuarios).
-3-
Se diseo un pequeo programa que transfera automticamente el control de un trabajo a otro. Este programa se denomin Monitor Residente, y se puede considerar como un primer sistema operativo muy rudimentario. El monitor tena un funcionamiento bastante simple, resida permanentemente en memoria y en el momento de encender el ordenador se daba control al monitor; ste se limitaba a cargar un programa en memoria, leyndolo de una cinta o de tarjetas perforadas, y transfirindole el control para que se ejecutara, de manera que cuando terminaba su ejecucin, el monitor tomaba el control de nuevo activando el siguiente trabajo, y as sucesivamente.
2.6 Spoolers
Hace aparicin el disco magntico con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del clculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).
-5-
2.7 La Multiprogramacin
S ejecutamos un solo programa en el ordenador, difcilmente podremos acercarnos a un rendimiento del 100% ya que siempre tendr que realizar operaciones de E/S, es decir, siempre existirn tiempos muertos del procesador durante los que no realizar ningn trabajo. Para comprenderlo mejor, podemos tomar como ejemplo la ejecucin de los programas representados en la siguiente figura, donde se detalla el diagrama de tiempos de ocupacin de los recursos (cpu y E/S):
Podemos observar que existen varios intervalos de tiempo durante los cuales no se hace ningn uso del procesador, estando totalmente inactivo con un psimo rendimiento. Por otro lado, pueden existir en el sistema otros programas que esten esperando su oportunidad para acceder al procesador con el fin de ejecutarse; entonces, por qu no utilizar dichos intervalos de inactividad del procesador para ejecutarlos? La contestacin es muy sencilla, si que podemos utilizarlos y no solo para dos nicos procesos sino muchos otros de forma conjunta, ya que todos tendrn que realizar operaciones de E/S, cuyos tiempos sern aprovechados por los dems para hacer uso del procesador. Esta tcnica se conoce como Multiprogramacin o Multitarea y tiene como finalidad conseguir un mejor aprovechamiento de los recursos del ordenador, ejecutando simultneamente varios programas y ofreciendo, al usuario, una falsa apariencia de ejecucin paralela de los mismos. Actualmente, los sistemas operativos multiprogramados son bastante sofisticados, ya que la administracin y reparto de los recursos entre los distintos programas no es una tarea sencilla de llevar a cabo, y de hecho, no pudo implementarse hasta que no se desarrollaron diversos mecanismos hardware que ms adelante se relacionan. El elevado coste que representa el diseo y creacin de stos sistemas, se ve ampliamente recompensado con el amplio abanico de posibilidades que se le ofrece a los usuarios en cuanto a rapidez de respuesta, de ejecucin y de diversidad de servicios. En la siguiente figura puede verse el diagrama de ejecucin de los dos procesos anteriores, tanto en el caso de ejecutarse secuencialmente, como en el caso de ejecutarse utilizando las tcnicas de multiprogramacin, pudiendo resaltar el ahorro de tiempo que se obtiene en el segundo caso, as como el mayor aprovechamiento del procesador.
-6-
Debido a la implantacin de la multiprogramacin fue necesario replantearse la estructura del sistema operativo: a partir de este momento se habla de ncleo (o kernel) del mismo, que se compone de rutinas que gestionan la memoria central, el procesador, los dispositivos y otros recursos, respondiendo a las peticiones realizadas por los programas y a las interrupciones de los dispositivos de entrada/salida. La multiprogramacin fue posible gracias al desarrollo y optimizacin de los diversos mecanismos hardware:
Mecanismos de interrupcin: fundamentales para llevar a cabo la multiprogramacin. Mecanismos de temporizacin: es necesario instalar procedimientos de medida de tiempo con el fin de controlar la ejecucin de los programas y llevar a cabo una equitativa distribucin del tiempo del procesador. Tcnicas de proteccin de la memoria: consistentes fundamentalmente en registros de la cpu que indican los lmites de las reas de memoria asignadas a cada programa y en el uso de excepciones. Reasignacin dinmica de direcciones de memoria: este mecanismo permite poder liberar una zona de memoria ocupada por un programa cuando su ejecucin finaliza, as como la reubicacin de otros que residan en la misma
Una consecuencia del uso de la multiprogramacin fue la aparicin de los sistemas de tiempo compartido y sistemas multiusuario, en los cuales una mquina ejecuta distintos procesos requeridos por distintos usuarios de forma simultnea.
-7-
La figura de la izquierda presenta un esquema de interconexin de tres sistemas con un reparto equilibrado de la carga de trabajo y, posiblemente, con redundancia de equipos: en caso de fallo o caida de uno de los sistemas, los restantes asumen su trabajo sin que se resienta el proceso. La figura de la derecha presenta una red donde existe un ordenador central que se encarga de la gestin y almacenamiento de los datos y un determinado nmero de terminales remotos que se encargan de la presentacin. Este reparto de funciones, almacenamiento-procesamiento e interfaz de usuario, se encuentra en los denominados sistemas cliente-servidor.
-8-
-9-
Sistemas Monoprogramados
Estos sistemas son los que slo admiten la ejecucin de un programa en el sistema, sin hacer uso de las tcnicas de la multiprogramacin. En estos sistemas operativos el programa se carga inicialmente en memoria y permanece en ella hasta finalizar su ejecucin; mientras, ningn otro programa puede ejecutarse, aunque existiese espacio libre en la memoria principal. Este tipo de sistemas son los que se disearon inicialmente cuando se utilizaban los monitores residentes y, posteriormente, durante una larga etapa, en los ordenadores personales. El ejemplo ms conocido de este tipo de sistemas fue el MS-DOS.
Memoria Principal
Sistemas Multiprogramados
Este tipo de sistemas se basan fundamentalmente en las tcnicas de la multiprogramacin, pueden admitir uno o varios usuarios simultneamente y son los utilizados en la actualidad, incluso en ordenadores personales. Actualmente, se habla de dos tipos de sistemas operativos multitarea, segn realicen la gestin del procesador: Multitarea apropiativa (preemptive): es la que utilizan los sistemas operativos cuya gestin del procesador se basa en quitar el control del mismo al programa que se est ejecutando. Esta prdida de
- 10 -
control del procesador por el programa es totalmente involuntaria y ajena a l, siendo el sistema operativo el responsable de la misma, normalmente, para permitir que otros programas se ejecuten tambin. Multitarea cooperativa: el programa es el que controla el procesador de manera que, s lo tiene, ser el responsable de permitir que otras aplicaciones se puedan ejecutar. El sistema operativo, por lo tanto, no toma el control del procesador, de forma voluntaria, para poder decidir el programa que se debe ejecutar, estando a merced de lo que dicte la aplicacin que en ese momento se est ejecutando.
Dispositivos E/S
Memoria Principal
Drivers E/S Sistema Operativo Planificador
Progra ma 1
Progra ma 2
Libre
Progra ma 3
Libre
CPU
Sistemas de Multiprocesamiento
Los dos sistemas anteriores se utilizan en ordenadores cuya arquitectura slo soporte un nico procesador, pero las tendencias actuales con grandes exigencias de potencia de procesamiento han obligado a la aparicin de ordenadores con dos o ms procesadores. Los sistemas de multiprocesamiento son capaces de administrar el uso de los distintos procesadores presentes en la mquina, repartiendo equitativamente la carga de trabajo.
Como se muestra en la figura, el ncleo del sistema operativo reparte el uso de las CPUs presentes entre las aplicaciones o procesos que se encuentran en ejecucin.
- 11 -
Evitan monopolizacin del sistema asignando tiempos de procesador a cada sesin (time slot). Gestin de memoria: incorporan potentes funciones de memoria virtual y proporcionan proteccin a los programas residentes de los usuarios. Gestin de archivos: debe proporcionar proteccin y control de acceso debido a que pueden existir mltiples usuarios accesando un mismo archivo.
SISTEMA DE CONTROL
(ordenador)
Los sistemas operativos de tiempo real, cuentan con las siguientes caractersticas: Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayora externos al sistema computacional, en breve tiempo o dentro de ciertos plazos. Su objetivo es proporcionar rpidos tiempos de respuesta, del orden de milisegundos. La informacin con la que trabajan debe estar permanentemente actualizada. Los programas deben ser pequeos, rpidos u muy eficientes, siendo capaces de procesar rfagas de miles de interrupciones por segundo sin perder un solo suceso. Un proceso se activa tras la ocurrencia de un suceso, mediante interrupcin. Usualmente los procesos permanecen residentes en memoria. Poco movimiento de programas entre almacenamiento secundario y memoria. Se utilizan en control industrial, conmutacin telefnica, control de vuelo, control de seguimiento de satlites, simulaciones en tiempo real, aplicaciones militares, etc.
- 13 -
Sistemas multiusuario
Estos sistemas se basan siempre en las tcnicas de la multiprogramacin permitiendo que varios usuarios puedan acceder simultneamente, por lo que, normalmente, son sistemas de tiempo compartido, aunque, en algn caso, podran ser tambin de tiempo real, segn el grado de exigencias y objetivos que deban cumplir dichos sistemas.
- 14 -
USUARIO
APLICACIONES
NIVEL 5: Gestin de la informacin NIVEL 4: Gestin de dispositivos NIVEL 3: Gestin de procesos NIVEL 2: Gestin de la memoria NIVEL 1: Ncleo
HARDWARE
Nivel 1: Ncleo del sistema operativo. El objetivo del ncleo es administrar el uso de la CPU entre los diferentes procesos, alternando entre los procesos bien cuando suceden las interrupciones o bien cuando expiran las temporizaciones, en definitiva, es el encargado de llevar a cabo los procedimientos bsicos de la multiprogramacin.
- 15 -
El ncleo tambin se encarga de la carga inicial desde el disco y de la activacin de la configuracin y arranque del sistema. Nivel 2: Gestin de la memoria. Este nivel tambin est ntimamente ligado al hardware, al igual que el ncleo, y su objetivo primordial es administrar la memoria entre los diferentes procesos en ejecucin. Sus funciones son asignar y liberar memoria segn las necesidades de los procesos y controlar la proteccin en los accesos a memoria. Se encarga, en definitiva, del mecanismo denominado asignacin dinmica de memoria. Nivel 3: Gestin de procesos. Su objetivo es gobernar los procesos a alto nivel. Se encarga de detener y arrancar los diferentes procesos y comunicar los procesos entre s mediante el intercambio de mensajes. Entendemos por procesos, cada uno de los programas que, de manera simultnea, estn en ejecucin. Nivel 4: Gestin de dispositivos. Los procedimientos de este nivel tienen como misin gestionar las entradas y salidas a los dispositivos existentes. Las operaciones que controlan son, entre otras, crear procesos de E/S, asignar y liberar los distintos dispositivos y planificar la entrada/salida de datos de los distintos programas en ejecucin, gestionando buffers y colas de salida de trabajos. Nivel 5: Gestin de la informacin. Es el nivel superior del sistema operativo y, por consiguiente, el ms cercano al usuario. Es el encargado de proporcionar la interfaz de usuario, gestionando la comunicacin entre el usuario y el sistema en ambos sentidos. Tambin proporciona las funciones ms externas del sistema, sobre las que se apoyan las aplicaciones de usuario, es decir, facilita la interfaz con las aplicaciones. En este nivel tambin reside el sistema de ficheros, encargndose de las operaciones de creacin y eliminacin de ficheros y directorios.
- 16 -
Modelo Cliente-servidor.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin para su uso en los sistemas distribuidos (ver siguiente figura). Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje se maneja en forma local, en su mquina, o si se enva por medio de una red a un servidor en una mquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envi una solicitud y se recibi una respuesta. Error: Reference source not found Modelo cliente-servidor en un sistema distribuido.
- 17 -
4. Funciones bsicas
Un sistema operativo desempea un conjunto de funciones bsicas en la operacin de un sistema informtico. A continuacin se relacionan y comentan:
Desde la aparicin de los ordenadores, el sistema operativo ha sido el nico interfaz entre la mquina y el usuario. Durante muchos aos, aproximadamente hasta la dcada de los 90, el dilogo hombre mquina estaba basado en lenguajes de comando ms o menos complejos, que obligaba al usuario a recordar y comprender las diferentes rdenes y, sobre todo, a tener un conocimiento ms profundo y detallado del sistema. Es a partir de los aos 90 cuando comienzan a surgir ciertas utilidades que complementan al sistema operativo desnudo, dando lugar a entornos grficos (GUI Graphic User Interface) cuya finalidad es facilitar el trabajo al usuario, al mismo tiempo que permiten, a los que no tengan experiencia o conocimientos suficientes, realizar funciones que antes slo podan llevar a cabo usuarios expertos. A travs de la Interfaz Grfica, los usuarios pueden acceder a todos los recursos y herramientas del sistema, a la vez que se les proporciona un nivel de abstraccin cuya finalidad es ocultar lo ms posible los detalles de ms bajo nivel y simplificar, enormemente, las operaciones. El aspecto negativo de los sofisticados y atractivos entornos grficos que en la actualidad se utilizan, es el gran consumo que hacen de recursos, tanto a nivel del hardware, donde se necesitan potentes subsistemas grficos, como a nivel de software, donde una parte importante de procesos, tanto del Sistema Operativo como de las aplicaciones, estn dedicados a la presentacin de la interfaz grfica, consumiendo una capacidad de proceso nada desdeable.
- 18 -
Bibliotecas de interfaz de llamadas al sistema Las llamadas al sistema no siempre tienen una expresin sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para los distintos lenguajes de programacin. La aplicacin llama a una funcin de la biblioteca de interfaz (mediante una llamada normal) y esa funcin es la que realmente hace la llamada al sistema.
En ambos casos, la accin realizada no est ordenada por el programa de aplicacin, es decir, no figura en el programa. Segn los dos casos anteriores tenemos las interrupciones y las excepciones: Interrupcin: seal que enva un dispositivo de E/S a la CPU para indicar que necesita atencin o bien que la operacin de la que se estaba ocupando, ya ha terminado. Excepcin: una situacin de error detectada por la CPU mientras ejecutaba una instruccin, que requiere tratamiento por parte del SO.
Tratamiento de las interrupciones Una interrupcin se trata en todo caso, despus de terminar la ejecucin de la instruccin en curso. El tratamiento depende de cul sea el dispositivo de E/S que ha causado la interrupcin, ante la cual debe poder identificar el dispositivo que la ha causado. El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacin, mientras otra permanece a la espera de que concluya una operacin en un dispositivo de E/S. El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se contine ejecutando. - 19 -
En ciertos intervalos de tiempo puede convenir no aceptar seales de interrupcin. Por ello las interrupciones pueden inhibirse por programa (interrupciones enmascarables). Excepciones Cuando la CPU intenta ejecutar una instruccin incorrectamente construida, la unidad de control lanza una excepcin para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupcin, la instruccin en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas. Las instrucciones de un programa pueden estar mal construidas por diversas razones: El cdigo de operacin puede ser incorrecto. Se intenta realizar alguna operacin no definida, como dividir por cero. La instruccin puede no estar permitida en el modo de ejecucin actual. La direccin de algn operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso (rea de memoria no permitida).
El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecucin de la CPU y los mecanismos de proteccin de la memoria, que las aplicaciones realicen operaciones que no les estn permitidas. En cualquier caso, el tratamiento especfico de una excepcin lo realiza el SO. Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y ste es el que trata la situacin como convenga. Es bastante frecuente que el tratamiento de una excepcin no retorne al programa que se estaba ejecutando cuando se produjo la excepcin, sino que el SO aborte la ejecucin de ese programa.
- 20 -
Generalmente un sistema de archivos tiene directorios que asocian un nombre de archivo a cada archivo, usualmente conectando el nombre de archivo a un ndice en una tabla de asignacin de archivos de algn tipo (como FAT en los sistemas MS-DOS o Windows y los inodos de los sistemas Unix). La estructura de directorios suele ser jerrquica, ramificada o "en rbol". En los sistemas de archivos jerrquicos, usualmente, se declara la ubicacin precisa de un archivo con una cadena de texto llamada "ruta" o path.
Algunos de los sistemas de ficheros ms conocidos son los siguientes: FAT16 y FAT32 (Microsoft: MS-DOS y primeras versiones de Windows) NTFS (Microsoft: sistemas operativos mas recientes, W. 2000, W. XP y W. Vista) Ext2 y Ext3 (la mayora de implementaciones GNU/Linux) ReiserFS (algunas implementaciones GNU/Linux) HFS y HFS+ (Apple: sistemas operativos Mac OS) Berkeley FFS (sistemas operativos para servidores: FreeBSD y OpenBSD)
La gestin de procesos podra ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y despus las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas ms antiguas.
- 21 -
En cuanto a las utilidades, los fabricantes de sistemas operativos suelen acompaar a los mismos con una coleccin de programas de utilidad que no se pueden considerar como parte integrante del sistema, sino como programas o aplicaciones independientes. Como ejemplo de programas de utilidades, tendramos los siguientes: Programas de manipulacin y optimizacin de discos. Programas de Informacin del estado y diagnstico del sistema. Soporte a lenguajes de programacin. Programas de comunicaciones (navegador de internet, etc.) Programas antivirus.
- 22 -