Вы находитесь на странице: 1из 22

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

UNIDAD 3.

TEORA GENERAL DE SISTEMAS OPERATIVOS 1. Conceptos


Informtica es la ciencia que estudia el tratamiento automtico y racional de la informacin. El trmino proviene de la contraccin de las palabras INFORmacin autoMTICA. Se dice que el tratamiento es automtico por ser mquinas las que realizan los trabajos de captura, proceso y presentacin de la informacin, y se habla de racional por estar todo el proceso definido a travs de programas que siguen el razonamiento humano. La informtica nace de la idea de ayudar al hombre en aquellos trabajos rutinarios y repetitivos, generalmente de clculo y de gestin, donde es frecuente la repeticin de tareas. Ordenador (computadora) es una mquina compuesta de elementos fsicos, en su mayora de origen electrnico, capaz de realizar una gran variedad de trabajos a gran velocidad y con gran precisin, siempre que se le den las instrucciones adecuadas. Programa es un conjunto de rdenes o instrucciones que se le dan a un ordenador para realizar un proceso determinado. Los programas pueden haberse elaborado utilizando directamente las instrucciones del procesador (lenguaje mquina), o bien, utilizando rdenes o instrucciones de algn lenguaje de programacin cercano al lenguaje humano. En el primer caso hablamos de programas escritos a bajo nivel, y en el segundo, hablamos de programas escritos en alto nivel. Los programas pueden catalogarse en dos categoras funcionales: software de sistema y software de aplicacin Aplicacin informtica es un conjunto de uno o varios programas que, coordinadamente, realizan una determinada funcin o trabajo, ofrecindosele al usuario como un paquete funcional que se carga o instala en el ordenador.

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-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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).

SISTEMA INFORM TICO

-3-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

2. Evolucin de los sistemas operativos


2.1 Los primeros ordenadores
Los primeros ordenadores eran de gran tamao, extremadamente caros y muy difciles de usar. Estas enormes mquinas ocupaban amplias salas y eran gestionadas por el usuario desde una consola, nico medio de acceder al ordenador. Estos ordenadores no disponan de recursos lgicos adicionales, como pudieran ser medios de almacenamiento secundario, por lo que, los usuarios, en primer lugar, deban cargar el programa manualmente en la memoria, desde los interruptores del tablero frontal (una instruccin en cada ocasin), desde una cinta de papel o desde tarjetas perforadas. Luego se pulsaban los botones adecuados para establecer la direccin de inicio y comenzar la ejecucin del programa. Mientras ste se ejecutaba, el programador-operador lo poda supervisar observando las luces en la consola, si se descubran errores, poda detener el programa, examinar el contenido de la memoria y los registros y depurarlo directamente desde la consola. La salida del programa se imprima, o se perforaba en cintas de papel o tarjetas para su impresin posterior. Sin embargo, con este procedimiento se presentaban ciertos problemas. Supongamos que un usuario se haba registrado para usar una hora de tiempo del computador dedicada a ejecutar el programa que estaba desarrollando, pero se topaba con algn error difcil y no poda terminar en esa hora. Si alguien ms haba reservado el siguiente bloque de tiempo, deba detenerse, rescatar lo que pudiera y volver mas tarde para continuar. Por otra parte, si el programa se ejecutaba sin problemas, podra terminar en 35 minutos; pero como tena reservada una hora, la mquina permanecera inactiva durante 25 minutos. De todo esto podemos deducir que el aprovechamiento de los recursos del ordenador era escassimo y, por tanto, carsimo, adems de no ser satisfactorio para los usuarios; de ah los esfuerzos que siguieron para mejorar su rendimiento.

2.2 Acceso por operador


Analizando el procedimiento anterior, pueden pensarse varios mecanismos para obtener un mayor aprovechamiento del ordenador, inciendo en los tiempos muertos del sistema. Los propietarios de los sistemas contrataron a una o varias personas especializadas para ejecutar rutinas de carga y descarga, con el fin de mantener el sistema con la mxima ocupacin posible, recibiendo los trabajos de los usuarios para su ejecucin. Al recibir dichos trabajos, los reuna y ejecutaba secuencialmente consumiendo nicamente el tiempo que realmente necesitasen y evitando en gran medida los tiempos de inactividad del ordenador. Esta persona se conoce como el operador del ordenador. En el caso de existir errores en la ejecucin de los trabajos, se haca un volcado en cdigo binario de la memoria para su entrega al programador, y se ejecutaba inmediatamente el siguiente trabajo. Otra misin del operador era agrupar los trabajos que tuvieran necesidades de recursos fsicos y lgicos similares para que se ejecutasen como un grupo.

2.3 Secuencia automtica de trabajos y monitor residente


A pesar del ahorro de tiempo inactivo y de la agrupacin de trabajos, an persistan breves periodos de inactividad, empleados en la cargas y descargas y en los volcados cuando se daban errores. Analizando el trabajo del operador se observ que era bastante mecnico y que se poda automatizar en gran parte, pensando que poda disearse un programa que estuviese permanentemente en la memoria del ordenador y que fuese el que realizase muchas de esas operaciones, surgiendo as la secuencia automtica de trabajos. -4-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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.4 Procesamiento por lotes


A pesar de todas las mejoras conseguidas, los dispositivos de E/S todava eran una fuente de ineficiencia puesto que al ser su funcionamiento principalmente mecnico, operaban muy por debajo de la velocidad de los componentes electrnicos. En aquellos tiempos, los dispositivos de E/S eran un autntico cuello de botella para el rendimiento de los sistemas. Como solucin para minimizar este problema se pens en montar los procesos o trabajos en un mismo conjunto de tarjetas o un mismo ncleo de cinta, de forma que se ejecutaran uno a continuacin de otro sin perder apenas tiempo en la transicin.

2.5 Sistemas con almacenamiento temporal de E/S


Con el tiempo, los dispositivos de E/S aumentaron su velocidad, lo que podra haber resuelto el problema, pero como el procesador tambin aumento su capacidad de procesamiento, hubo que pensar en otro tipo de solucin. Al ser la cinta el dispositivo ms rpido de la poca, se impuso la tcnica de escribir los programas en tarjetas perforadas que eran leidas por una lectora y copiadas directamente en una cinta magntica, en sentido inverso, los resultados de los procesos se volcaban en una cinta que a su vez era volcada sobre una impresora. En definitiva, que la cinta magntica se convirti en el nico dispositivo con el que directamente intercambiaba informacin el ordenador. Al ser estas acciones muy lentas, el copiado de tarjetas a cinta y el volcado de cinta a impresora, se hacan sin intervencin del ordenador, normalmente en unidades externas especiales para tal fin y sin restar tiempo de proceso al ordenador. Esto se conoce como operacin off-line. Ms adelante, se avanz en el hardware, creando el soporte de interrupciones, lo que permiti llevar a cabo un intento de solucin ms avanzado: solapar la E/S de un trabajo con sus propios clculos. Para ello se crea el sistema de buffers con el siguiente funcionamiento: Un programa escribe su salida en un rea de memoria (buffer 1). El monitor residente inicia la salida desde el buffer y el programa de aplicacin calcula depositando la salida en el buffer 2. La salida desde el buffer 1 termina y el nuevo clculo tambin. Se inicia la salida desde el buffer 2 y otro nuevo clculo dirige su salida al buffer 1. El proceso se puede repetir de nuevo.

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-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

2.8 Administracin de redes y procesamiento distribuido


Aparecen las redes de datos y con ellas la capacidad de los sistemas operativos para administrarlas y hacer uso de las mismas, permitiendo transferir ficheros de una mquina a otra. El extenso uso de las redes de ordenadores de distintas coberturas (locales, nacionales, internacionales) supuso un revolucionario desarrollo de los sistemas operativos. El sistema operativo, adems de gestionar los recursos de la mquina local en la que est instalado, debe ser capaz de interactuar con otras mquinas distantes, llegando, incluso, en algunos casos, a tener el control remoto de las mismas. Uno de los usos ms extendidos de las redes son los sistemas cooperativos, en los cuales se divide la aplicacin o trabajo que se desea realizar en varias partes o subprocesos, que se ejecutan en distintos ordenadores, conectados entre s. En definitiva, la aplicacin global se encuentra distribuida en distintas mquinas, muy distantes o no, que realizan un trabajo de forma conjunta, sumando sus respectivas capacidades de proceso y/o aportando un nivel de seguridad superior (por redundancia de equipos). A este esquema de interconexin y cooperacin se le denomina procesamiento distribuido. Veamos dos ejemplos de procesamiento distribuido:

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-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

2.9 Sistemas multiprocesador


A pesar de la importante evolucin de los sistemas, las necesidades de los usuarios tambin fueron progresando y sus exigencias crecieron vertiginosamente, hasta el punto en que los ordenadores con una nica CPU no eran capaces de aportar la potencia de proceso requerida. As nacieron los sistemas multiprocesador, en los cuales existen dos o ms CPUs que comparten la memoria y el reloj, incrementando la capacidad de procesamiento de la mquina. El sistema operativo trata los distintos procesadores como recursos que va asignando, de forma rotativa, a los distintos procesos en ejecucin, llevndose a cabo el procesamiento paralelo de varios procesos (uno por CPU) de forma realmente simultnea. Un sistema operativo multiprocesador distribuye constantemente la carga del sistema para que todos los procesadores estn igualmente ocupados. Existen dos tipos de multiprocesamiento: Multiprocesamiento simtrico: cada procesador ejecuta una copia del sistema operativo Multiprocesamiento asimtrico: cada procesador tiene asignada una tarea especfica; existe un procesador maestro que asigna tareas a los procesadores esclavos

-9-

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

3. Tipos de sistemas operativos


Se pueden clasificar los sistemas operativos segn distintos puntos de vista: Segn la utilizacin de recursos Segn la interactividad Segn el nmero de usuarios Segn el tipo de aplicaciones Segn su estructura

3.1 Segn la utilizacin de recursos


Esta clasificacin se basa en las caractersticas tcnicas con que se hayan diseados dichos sistemas para hacer uso de los recursos existentes.

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.

Sistema Operativo Programa de usuario


Memoria no usada

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 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

3.2 Segn la interactividad


En este caso la clasificacin depende del tipo de trabajo y los objetivos que debe cumplir cada sistema para dar el mejor servicio a los usuarios a quienes est destinado.

Sistemas de procesamiento por lotes (batch)


Son sistemas, en general multiprogramados, ya en desuso, para la ejecucin de programas muy poco conversacionales con el usuario, basados en la ejecucin de paquetes o lotes de comandos u rdenes del sistema operativo. Cada paquete batch consiste en un conjunto de pasos secuenciales relacionados entre si, asemejndose a una secuencia de instrucciones para realizar las operaciones requeridas. Con el objeto de identificar cada paso de un trabajo, se defini el trmino proceso para hacer referencia al programa en ejecucin que realiza dicho paso. Procesamiento por lotes tambin puede referirse al proceso de almacenar transacciones durante un cierto lapso de tiempo antes de su envo a un archivo maestro para su posterior tratamiento, por lo general una operacin separada que se efecta durante la noche. Caractersticas de los sistemas de procesamiento por lotes: No existe intervencin del usuario durante la ejecucin de los trabajos: nula interaccin Son convenientes para procesamiento de trabajos de larga duracin (anlisis estadsticos, nminas de personal, etc.) No existen restricciones de tiempo, es decir, no importa el tiempo que se necesite para llevar a cabo el trabajo.

Sistemas de tiempo compartido (time sharing)


Una vez desarrollados los sistemas multiprogramados se introdujo la multiprogramacin interactiva con la finalidad de permitir que durante la ejecucin de los programas, stos pudiesen pedir datos al usuario y aceptar sus respuestas. El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por varios usuarios al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). Los terminales necesitan ser dispositivos conversacionales e interactivos, permitiendo que el usuario pueda recibir respuesta inmediata a sus datos o peticiones. Ahora, la entidad bsica a controlar por el sistema no son los trabajos, sino las sesiones. Una sesin comprende el intervalo de tiempo transcurrido desde el momento en que un usuario se identifica en el ordenador hasta que lo abandona despidindose del mismo. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al sistema operativo, principalmente en la administracin de la memoria principal y el almacenamiento secundario. Caractersticas de los sistemas operativos de tiempo compartido: Deben ser muy conversacionales. Dan la ilusin de que cada usuario tiene una mquina para s, en exclusividad, para ello deben presentar un corto tiempo de respuesta, del orden de pocos segundos. La mayora utilizan algoritmo de reparto circular o interrogacin secuencial (polling). - 12 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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.

Sistemas de tiempo real (real time)


Son otro tipo de sistemas operativos multiprogramados e interactivos con un elevado grado de exigencia. Se suelen emplear en aplicaciones dedicadas al control de instalaciones o mquinas diversas. Su funcionamiento se basa en responder a ciertos sensores que obtienen los datos de entrada al sistema, procesarlos y actuar rpidamente sobre el sistema a controlar, con objeto de producir los efectos necesarios para que se comporte correctamente, intentando mantener los datos recibidos dentro de un cierto margen permitido o de buen funcionamiento.

ENTIDAD QUE SE CONTROLA

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.

3.3 Segn el nmero de usuarios


Sistemas monousuario
Son sistemas muy simples que slo aceptan la conexin de un solo usuario en un momento dado, por lo que no necesitan ningn tipo de gestin de usuarios ni controlar el acceso al mismo. Suelen estar presentes en pequeos ordenadores. Estos sistemas pueden ser monoprogramados o multiprogramados, aunque en cualquiera de los dos casos slo admitirn un solo usuario.

- 13 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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.

3.4 Segn el tipo de aplicaciones


Sistemas de propsito general
En esta categora entraran los sistemas operativos que sirven para cualquier tipo de aplicacin informtica. Son sistemas operativos comerciales de uso estndar, para una arquitectura de mquina tambin estndar y con una gran versatilidad en su utilizacin. A este tipo pertenecen todos los sistemas operativos comercializados y comnmente conocidos: En los aos 70: Unix, MVS (para el exitoso sistema 360 de IBM) y CP/M En los aos 80: MS-DOS para la arquitectura PC A partir de los aos 90: Novell, Solaris, OS/2, Windows y los distintos desarrollos GNU/Linux.

Sistemas de propsito especial


Bajo este tipo podemos recoger todos los sistemas diseados especficamente para una determinada aplicacin. Son sistemas hechos a medida de una mquina muy concreta y unos programas muy especficos, por tanto, no suelen ser sistemas comerciales ni de gran difusin, dadas sus especiales caractersticas. Su diseo y desarrollo tienen lugar como un componente ms de un proyecto determinado para una aplicacin determinada.

3.5 Segn su estructura


Existen cuatro tipos de diseo en cuanto a la estructura de un sistema operativo: Estructura monoltica Estructura por microkernel Estructura por anillos concntricos Estructura cliente-servidor

Estructura monoltica (mdulos independientes)


Tambin llamados sistemas monolticos. Este tipo de organizacin bien podra recibir el subtitulo de el gran embrollo. La estructura consiste en que no existe estructura alguna. El sistema operativo se escribe como una coleccin de procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as lo requiera. Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro. Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como en los registros o en la pila, para despus ejecutar una instruccin especial de llamada.

- 14 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

Estructura por microkernel


Las funciones centrales de un SO son controladas por el ncleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte ms importante del DOS es un programa con el nombre "COMMAND.COM" que tiene dos partes: el kernel, que se mantiene en memoria en todo momento, contiene el cdigo mquina de bajo nivel para manejar la administracin de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos. Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es precisamente lo que suceda cuando se cargaba Microsoft Windows 3, el cual tomaba el lugar del shell, reemplazando la interfaz de lnea de comandos por una interfaz grfica.

Estructura por anillos concntricos (capas o niveles)


Es el diseo de estructura utilizada en los sistemas modernos. El sistema operativo se encuentra estratificado en capas o niveles con el fin de facilitar su diseo, su realizacin, su comprensin y reducir, en la medida de lo posible, su complejidad. Los distintos niveles de un sistema operativo no son estancos, se comunican entre s mediante la peticin y realizacin de servicios. Son las denominadas llamadas al sistema, rutinas o procesos que realizan las distintas funciones que el sistema operativo debe llevar a cabo. Las aplicaciones de usuario tambin interactuan con el sistema operativo mediante las llamadas estndar que ste ofrece y que son conocidas por los programadores o incorporadas en los procesos de compilacin. La siguiente figura muestra los niveles clsicos que, con carcter general, se establecen:

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 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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.

Estructura cliente servidor


Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el cdigo a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo mnimo (kernel approach). El punto de vista usual es el de implantar la mayora de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario, denominado proceso cliente, enva la solicitud a un proceso servidor, que realiza entonces el trabajo y retorna la respuesta. En este modelo, que se muestra en la siguiente figura, lo nico que hace el ncleo es controlar la comunicacin entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos o servicio a la memoria, y cada parte es pequea y controlable. Adems como todos los servidores se ejecutan como procesos en modo usuario y no en modo ncleo o modo supervisor, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, ste puede fallar, pero esto no afectar en general a toda la mquina. Error: Reference source not found

- 16 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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:

4.1 Interfaz de usuario


Es la parte del sistema operativo que permite comunicarse con l, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos bsicos de interfaces: las que se basan en comandos, las que utilizan mens y las interfaces grficas de usuario (GUI).

Interfaz modo texto basada en comandos

Interfaz modo texto basada en mens

Interfaz Grfica de Usuario (GUI)

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.

4.2 Administracin de recursos


Sirven para administrar los recursos de hardware de un sistema informtico, como el procesador, la memoria, los dispositivos de almacenamiento secundario y los diferentes perifricos de entrada y salida. La gestin de los recursos reside en el nivel del sistema operativo ms prximo a la mquina, es decir el ncleo o kernel. Estas funciones, de capital importancia, se basan en el empleo de las llamadas al S.O. y la utilizacin de recursos del procesador como son las interrupciones y las excepciones.

- 18 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

4.2.1 Llamadas al Sistema Operativo


Definicin breve: llamadas que ejecutan los programas de aplicacin para pedir algn servicio al SO. Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseado para trabajar sobre el anterior, en general el programa no funcionar, a no ser que el nuevo SO tenga la misma interfaz. Para ello: Las llamadas correspondientes deben tener el mismo formato. Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior. Modos de ejecucin en una CPU Las aplicaciones no deben poder usar todas las instrucciones del procesador, mientras que el SO, si debe poder utilizar todo el juego de instrucciones. Por ello, una CPU debe tener (al menos) dos modos de operacin diferentes: Modo usuario: el CPU podr ejecutar slo las instrucciones del juego restringido de las aplicaciones. Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.

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.

4.2.2 Interrupciones y excepciones


El SO ocupa una posicin intermedia entre los programas de aplicacin y el hardware. No se limita a utilizar el hardware a peticin de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute cdigo del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones: Algn dispositivo de E/S necesita atencin. Se ha producido una situacin de error al intentar ejecutar una instruccin del programa (normalmente de la aplicacin).

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 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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.

4.2.3 Gestin de la memoria principal


La memoria principal es una gran tabla de palabras o bytes que se referencian cada una mediante una direccin nica. Este almacn de datos de acceso muy rpido es compartido por la CPU y los dispositivos de E/S, es voltil y pierde su contenido en los fallos del sistema. En la memoria principal debe estar almacenado cualquier programa o proceso que vaya a ser ejecutado. El SO es el responsable de: Conocer qu reas de la memoria estn siendo utilizadas y por quin. Decidir qu procesos se cargarn en memoria cuando haya espacio disponible. Asignar y liberar espacio de memoria cuando sea necesario.

4.3 Administracin de ficheros


Toda la informacin, del tipo que sea, que se procesa o almacena en un ordenador, viene en unidades, paquetes o contenedores llamados ficheros o archivos y que los sistemas operativos deben ser capaces de administrar mediante los denominados sistemas de ficheros. Los ficheros suelen contener informacin homognea, es decir de un mismo tipo: fichero de programa, fichero de texto, fichero de imagen, etc Los sistemas de ficheros (filesystem) estructuran la informacin guardada en una unidad de almacenamiento (normalmente un disco duro) de un ordenador. La mayora de los sistemas operativos poseen su propio sistema de ficheros. Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los mismos en paquetes elementales de un mismo tamao, a veces llamados sectores y habitualmente de 512 bytes de longitud. El software del sistema de ficheros es el responsable de la organizacin de estos sectores en archivos y directorios y de mantener un registro de qu sectores pertenecen a qu archivos y cules no han sido utilizados, encontrndose libres. Los sistemas de ficheros tradicionales proveen mtodos para crear, mover, renombrar y eliminar tanto archivos como directorios.

- 20 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

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)

4.4 Gestin de procesos


Un proceso es simplemente, un programa en ejecucin que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de: Crear y destruir los procesos. Parar y reanudar los procesos. Ofrecer mecanismos para que los procesos se comuniquen y sincronicen.

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

4.5 Sistemas de proteccin


Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de: Distinguir entre uso autorizado y no autorizado. Especificar los controles de seguridad a realizar. Forzar el uso de estos mecanismos de proteccin.

4.6 Servicios de comunicaciones


Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envo y recepcin de informacin a travs de las interfaces de red. Tambin hay que crear y mantener puntos de comunicacin que sirvan a las aplicaciones para enviar y recibir informacin, y crear y mantener conexiones virtuales entre aplicaciones que estn ejecutndose localmente y otras que lo hacen remotamente.

- 21 -

Unidad 3: Teora General de Sistemas Operativos

Sistemas Operativos y Lenguajes de Programacin

4.7 Servicio de soporte y utilidades


Los servicios de soporte de cada sistema operativo dependern de la implementacin particular de ste con la que estemos trabajando. Entre las ms conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para los ordenadores de Apple Inc., los sistemas operativos de Microsoft, y las implementaciones de software libre, como GNU/Linux, producidas por empresas, universidades, administraciones pblicas, organizaciones sin fines de lucro y/o comunidades de desarrollo. Estos servicios de soporte suelen consistir en: Actualizacin de versiones. Mejoras de seguridad. Inclusin de alguna nueva utilidad (un nuevo entorno grfico, un asistente para administrar alguna determinada funcin). Controladores para manejar nuevos perifricos (este servicio debe coordinarse a veces con el fabricante del hardware). Correccin de errores de software. Otros.

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 -