Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Captulo I
SISTEMAS OPERATIVOS
Tema IV. Definicin, Servicios y Clasificacin de los SO 1. DEFINICIN DE SO
El Sistema Operativo es un programa o conjunto de programas que constituyen una de las piezas fundamentales de un ordenador. Es tan fundamental y tiene tantos cometidos que se puede hablar mucho de l, sin embargo, como ya nos ha sucedido otras veces, resulta muy difcil dar una definicin. Afortunadamente a nosotros no nos interesa su definicin concreta, sino conocer sus funciones, los servicios que proporciona y, en general, sus caractersticas. As, tal vez podamos efectuar algunas afirmaciones -no definiciones- sobre el SO. Podemos pensar, por ejemplo, en algunas de las operaciones que habitualmente realizamos con un ordenador. Una de stas puede ser cuando solicitamos que se muestre en la pantalla la lista de los ficheros de un disco o directorio, es decir, cuando tecleamos el comando dir de MS-DOS o ls de Unix. Como veremos ms adelante, la lista de los archivos de un disco est contenida en un rea del disco denominada directorio; por lo tanto, lo nico que hay que hacer es leer dicho directorio. El lector de disquetes, por su parte, es un artilugio mecnico muy delicado y complejo; para acceder y manejar este dispositivo mecnico se dispone de procesadores especializados (denominados controladores) tales como el NEC PD765 utilizado en el PC de IBM. Este controlador tiene 16 comandos, formado cada uno de ellos por una serie de 1 a 9 bytes que deben cargarse en uno de sus registros internos. Estos comandos sirven para leer y escribir datos, mover la cabeza de L/E, formatear las pistas, recalibrar los brazos con las cabezas de L/E, etc. Los comandos ms bsicos son READ y WRITE, cada uno de los cuales requiere 13 parmetros empaquetados en 9 bytes. Estos parmetros especifican datos tales como la direccin del bloque a leer, el nmero de sectores por pista, el modo de grabacin de los datos, el interleaving y otras informaciones variadas. Cuando se completa una de las operaciones solicitadas mediante este controlador, ste devuelve uno entre 23 cdigos de error o resultado de 7 bytes, cdigos que se deben tratar convenientemente en caso de que se produzcan errores en la operacin solicitada. Adems, en cada momento se debe estar pendiente de si el motor est arrancado o no, para encenderlo en caso necesario y con el tiempo de antelacin debido. Por otra parte, el motor no debe estar constantemente encendido, pues de ser as, se desgastara en poco tiempo. No hace falta seguir profundizando sobre las acciones necesarias para efectuar con xito la lectura del directorio de un disquete. Parece obvio que tales acciones no son nada triviales, o ms an, aunque alguno de los comandos que se utilizan para acceder al disquete no sean especialmente complicados, resultan, cuando menos, engorrosos de utilizar. Pero entonces, para acceder a la informacin del disquete tenemos que aprendernos el manual del NEC765?, tenemos que ocuparnos personalmente de verificar y tratar adecuadamente los cdigos de error que nos devuelve el controlador? Y si algn da se sustituye el controlador NEC PD765 por otro ms eficiente tenemos que aprendernos otra vez su funcionamiento? La respuesta sera S de no ser por la existencia del Sistema Operativo, pues una de sus funciones es la de actuar de interfaz entre el usuario y el hardware del ordenador. De esta manera, basta con indicarle mediante un comando lo que deseamos, para que l se encargue de arrancar, supervisar y controlar las operaciones necesarias con el hardware subyacente. Todo sin que nosotros tengamos que intervenir. Incluso si se da el caso de que el controlador correspondiente o cierto componente hardware es sustituido por otro, basta con modificar o sustituir la parte del sistema operativo que se encarga de la programacin o manejo de tal dispositivo, de tal forma que el usuario no tiene ni por qu conocer el tipo concreto de los dispositivos que alberga su ordenador. Como podemos ir viendo, el sistema operativo se encarga de esconder los entresijos del hardware del ordenador, ofreciendo una vista abstracta de sus componentes, y proporcionando los medios para manejarlos o acceder a ellos de una forma simple y sencilla. Como se puede ver en la Figura 1, el sistema operativo nos ofrece una mquina virtual distinta de la compuesta por los meros componentes hardware. Esta nueva mquina virtual nos ofrece los servicios normales que se desean de la mquina fsica que subyace, pero de tal forma que la utilizacin se realiza de una forma fcil, eficiente y adecuada. Decimos que de una forma fcil porque nos proporciona servicios de alto nivel, al contrario de los que nos proporciona el controlador NEC PD765, que aunque son apropiados para su cometido (controlar el disquete)
Ingeniera de Sistemas UNSCH/QECM Pgina 1 de 9
Captulo I
resultan insuficientes para obtener informacin tan simple como la lista de ficheros de un disquete. Esta insuficiencia se debe al hecho de que no basta con tener acceso al disquete, cosa que nos da el controlador, sino que adems es necesario conocer la estructura de los datos del disquete para poder interpretarlos adecuadamente. El sistema operativo, adems de ocuparse de programar el controlador, establece y conoce la estructura lgica de la informacin contenida en el disquete, siendo as capaz de ofrecer servicios de alto nivel. Sabemos que los ordenadores nacieron siendo una ayuda extremadamente cara, por esto, el sistema operativo tambin debe encargarse de que los recursos fsicos del sistema se aprovechen eficientemente, llevando la cuenta de su utilizacin y reparto entre mltiples programas o usuarios que deseen acceder a ellos. As, por ejemplo, debe encargarse de repartir la memoria RAM de un sistema multiprogramado entre todas las aplicaciones en ejecucin; de ir controlando el envo de listados a la impresora sin que se mezclen los de uno con los de otro usuario; o de ir repartiendo la CPU entre distintos programas para evitar tiempos muertos en su utilizacin. Puesto que para aprovechar al mximo la utilizacin de los ordenadores se han inventado tcnicas para compartir sus recursos entre varios usuarios, resulta indispensable introducir mecanismos para asegurar que el ordenador y sus recursos se utilizan adecuadamente, es decir, ofreciendo proteccin a los datos y programas de cada usuario de las posibles injerencias de los dems usuarios. Hemos dicho anteriormente que el sistema operativo es la interfaz entre el usuario y el hardware del ordenador; ahora bien, el concepto usuario tiene un significado muy amplio en esta afirmacin, es decir, que entendemos por usuario no solamente una persona sentada en la consola del sistema, sino tambin cualquier programa de aplicacin invocado por alguna persona o programa, y que por supuesto, se ejecuta bajo la supervisin del sistema operativo. Figura 1
Qu es el Sistema Operativo?
Es un programa que acta de interfaz entre el usuario y el hardware del ordenador
Pgina 2 de 9
Captulo I
As pues, tenemos que el sistema operativo tiene interfaz, por una parte con los usuarios y los programas, y por otra parte con el hardware de la mquina. Los usuarios del sistema operativo pueden ser de cualquier ndole: operadores, programadores de aplicaciones y de sistemas, administradores y, por supuesto, los propios usuarios finales de las aplicaciones. Como podemos apreciar en la Figura 1, el acceso al sistema operativo se realiza a travs de las denominadas llamadas al sistema, que es un conjunto de servicios que proporciona de manera directa a cualquier aplicacin. Para que las personas puedan acceder de forma directa al sistema operativo, se dispone de un programa especial denominado intrprete de comandos. Este intrprete se encarga de recibir los comandos escritos en el teclado y pasrselos al sistema operativo mediante las correspondientes llamadas al sistema. Histricamente el intrprete de comandos ha sido considerado como programa integrante del sistema operativo, sin embargo hoy da no hay un acuerdo al respecto. Tiempo atrs, cada sistema operativo ofreca su propio intrprete de comandos, intrprete que estaba ligado de forma incuestionable al sistema operativo, debido a que estaba incluido en el ncleo o kernel del sistema. Hoy da, el intrprete de comandos no suele formar parte del ncleo del sistema operativo, de tal forma que es fcilmente substituible, pues no es ms que un programa ms realizando llamadas a los servicios del sistema operativo. De hecho, para sistemas operativos populares, como Unix, se suelen ofrecer distintos intrpretes de comandos como alternativas, lo cual da pie a que algunos autores no lo consideren como parte integrante del sistema operativo. No obstante, a pesar de la libertad para elegir o cambiar el intrprete de comandos, lo cierto es que todos los sistemas operativos de propsito general se ofrecen con un intrprete de comandos, suministrando incluso el correspondiente manual de uso como parte integrante del manual del sistema operativo completo. Y es que por el simple hecho de que se haya conseguido que algunas partes de los sistemas operativos sean fcilmente substituibles no tiene por que dar pie a pensar que por ello ya no forman parte de l. El SO est formado por una serie de componentes especializados en determinadas funciones. Cada SO estructura estos componentes de forma distinta. Vamos a describir en principio los distintos componentes que conforman un SO, para pasar luego a ver las distintas formas que tienen los SO de estructurar estos componentes: Componentes del SO: Para fines de nuestro estudio, el SO est formado conceptualmente por tres capas principales. - Ncleo (kernel): es la capa ms cercana al hardware, es la que gestiona los recursos del HW del sistema y la que suministra la funcionabilidad bsica del SO. Esta capa ha de ejecutar en nivel ncleo, mientras que las otras pueden ejecutar en niveles ms permisivos. Sus funciones se centran en la gestin de recursos, tratamiento de interrupciones y funciones bsicas de manipulacin de memoria. - Capa de servicios (llamadas al sistema): ofrece a los programas unos servicios en forma de una interfaz de programacin o API (application programming interface). Desde el punto de vista de los programas, esta capa extiende la funcionalidad de la computadora, por lo que se suele decir que el SO ofrece una mquina virtual extendida a los programas. Se suelen agrupar segn su funcionalidad en varios componentes, cada uno de los cuales se ocupan de funciones diversas que se vern en el item de SERVICIOS (en este mismo archivo) - Capa de intrprete de comandos (shell), suministra una interfaz (textuales o grficos) a travs de la cual el usuario puede dialogar de forma interactiva con la computadora. El shell recibe los mandatos u rdenes del usuario, los interpreta y, si puede, los ejecuta.
Pgina 3 de 9
Captulo I
FACETAS DEL SISTEMA OPERATIVO A. SO como gestor de recursos Los programas que coexisten en una computadora actual, ejecutndose simultneamente compiten por los recursos de la computadora, siendo el SO el encargado de arbitrar su asignacin y uso. a. Asignacin de recursos - Recursos fsicos: procesador, memoria, perifricos - Recursos lgicos: archivos, puertos de comunicaciones Especial mencin reviste la recuperacin de recursos, cuando los programas ya no los necesitan. b. Proteccin: el SO ha de garantizar la proteccin entre los usuarios del sistemas. Garantiza la confidencialidad de la informacin y que nos trabajos no interfieran con otros. c. Contabilidad: permite medir la cantidad de recursos que, a lo largo de su ejecucin, utiliza cada programa. B. SO como mquina extendida El SO ofrece a los programas un conjunto de servicios o llamadas al sistema que pueden solicitar cuando lo necesiten, proporcionando a los programas una visin de mquina extendida. Estos servicios se pueden agrupar en 4 clases: a. Ejecucin de programas: el SO incluye servicios para lanzar la ejecucin de un programa, as como para pararla o abortarla. b. rdenes de E/S: Los servicios de E/S ofrecen una gran comodidad y proteccin al proveer a los programas de operaciones de lectura, escritura y modificacin del estado de los perifricos. Ofrece un alto nivel de abstraccin. c. Operaciones sobre archivos: Los archivos ofrecen un nivel de abstraccin mayor que el de las rdenes de E/S, permitiendo operaciones tales como: creacin, borrado, renombrado, apertura, escritura y lectura de archivos. d. Deteccin y tratamiento de errores: el SO se encarga de tratar todas las condiciones de error que detecte el hardware. Entre las condiciones de error que pueden aparecer destacaremos: Errores en las operaciones de E/S - Errores de paridad en los accesos a memoria o en los buses - Errores de ejecucin en los programas (desbordamiento, violacin de memoria, etc.) C. SO como interfaz de usuario El mdulo del SO que permite que los usuarios dialoguen de forma interactiva con el sistema es el intrprete de mandatos o shell, que se comporta como un bucle infinito, realizando la siguiente secuencia: - Espera una orden del usuario - Analiza la orden - Concluida la orden, vuelve a la espera
Pgina 4 de 9
Captulo I
Como hemos visto en el apartado anterior, el sistema operativo se comunica con los programas y con los usuarios, a quienes les ofrece sus servicios directamente. Pero el sistema operativo tambin ofrece otro tipo de servicios indirectos que aunque puede que el usuario no se aperciba de ellos, estn dirigidos a mejorar la eficiencia y la seguridad del sistema. Podemos decir, entonces, que el sistema operativo ofrece servicios al usuario y al sistema. Como sabemos, los usuarios directos del sistema son el programador, es decir, sus programas, y el operador, o sea, la persona que se comunica con el ordenador mediante un intrprete de comandos. Los programas utilizan los servicios del sistema operativo mediante las llamadas al sistema, esto es, un conjunto de rutinas de interfaz que ofrece el sistema operativo para solicitar sus servicios. En cualquier caso, de una u otra forma, tenemos que el sistema operativo ofrece bsicamente estos servicios a los usuarios: Ejecucin de programas Operaciones con dispositivos de E/S Manejo de ficheros Ejecucin de programas El sistema le permite al usuario cargar y ejecutar programas, lo cual puede realizarlo bien desde el intrprete de comandos, o desde un programa en ejecucin que realiza la apropiada llamada al sistema. Normalmente tambin facilita medios para controlar su ejecucin, determinando en qu estadio se encuentra en cada momento o el tipo de operaciones que est realizando. Asimismo, tambin proporciona, al final de la ejecucin del programa, un cdigo o resultado de la ejecucin, indicando si sta se realiz normalmente o surgi algn problema. Operaciones con dispositivos de E/S En algn ejemplo anterior ya hemos visto lo dificultoso que puede resultar la interaccin con los dispositivos del sistema, pues forman directamente la capa hardware, tan lejos de nosotros los humanos. Para aliviar esta farragosa interfaz, el sistema operativo nos ofrece una mquina virtual en la que los dispositivos de E/S se manejan mediante operaciones de muy alto nivel, que expresan directamente los servicios que una persona puede necesitar de estos perifricos, tales como rebobinar una cinta, formatear un disco, recibir o transmitir datos por una lnea de comunicaciones, etc. Manejo de ficheros Si con las operaciones con los dispositivos de E/S se logra la abstraccin del hardware, con el manejo de ficheros se consigue la independencia de la representacin de las colecciones de datos, de tal forma que a una larga serie de bits se le puede tratar como un nico objeto -un fichero de datosdespreocupndose de si los datos componentes del fichero ocupan un rea consecutiva en el disco, o incluso de si est completamente contenida en un nico disco o en varios. De esta manera se pueden realizar operaciones con un conjunto completo de datos tales como leer o escribir registros individuales, copiar ficheros, borrarlos, imprimirlos, visualizarlos por pantalla, buscar un registro dentro del fichero o simplemente pedir una lista de los ficheros de un disco. En cuanto a los servicios ofrecidos al propio sistema, aunque estos son variados, pueden encuadrarse en dos grupos: Gestin y contabilidad de recursos Proteccin A veces se oye hacer la comparacin de que un sistema operativo es como el gobierno de un pas, de tal forma que no solamente debe ofrecer servicios a los ciudadanos (los usuarios), sino que adems debe preocuparse l mismo de su propia gestin para asegurar su buen funcionamiento. Para ello, debe llevar la cuenta de los recursos de que dispone, de los que estn disponibles, de los que estn ocupados y de quin los tiene en uso, bien sea para repartirlos de la manera adecuada y justa, bien sea para pasar factura posteriormente, o simplemente para poder reclamarlos cuando estime que algo anormal sucede con ellos y puedan haberse perdido. Los recursos bsicos gestionados son los componentes hardware del ordenador: La CPU La Memoria Los dispositivos de E/S Con una acertada gestin del procesador se consigue un buen rendimiento del ordenador, como es el caso de los sistemas multiprogramados o multiusuarios. Una persona que est sentada en un terminal de un ordenador multiusuario puede que no sea consciente de si el ordenador es multiusuario o no, ni le preocupa; desde su punto de vista l tiene una mquina dedicada. Como vemos, este es un servicio que no es directamente visible por los usuarios, pero que ayuda a aprovechar la utilizacin del sistema.
Ingeniera de Sistemas UNSCH/QECM Pgina 5 de 9
2. SERVICIOS DE LOS SO
Captulo I
Mediante ciertos algoritmos de gestin de memoria, al usuario se le pueden proporcionar servicios tales como la Memoria Virtual, mediante el cual el usuario tiene la posibilidad de ejecutar programas ms grandes que la memoria principal disponible. El usuario simplemente piensa que siempre dispone de mucha memoria. El sistema operativo tambin debe ocuparse de repartir la memoria entre todos los programas en ejecucin. Tambin debe llevar control de los perifricos, como por ejemplo de las impresoras, discos o armarios de cinta, de tal forma que cuando un programa solicite la impresin de un fichero o la carga de una cinta en un cierto armario, el sistema operativo sepa asignar un dispositivo libre o poner en la cola de espera al proceso peticionario. Al igual que los servicios internos de espionaje se preocupan de la seguridad dentro de los rganos de gobierno de la nacin, en un sistema operativo se deben tomar las medidas oportunas para evitar que algn programa o usuario, voluntaria o inadvertidamente realice alguna operacin que ponga en peligro la integridad del sistema, tanto de los programas y datos componentes del sistema operativo como del resto de los usuarios del sistema. Dado que las operaciones de bajo nivel permiten realizar cualquier accin con la mquina, el sistema operativo esconde estas operaciones que ofrece el hardware impidiendo el acceso a ellas, y ofreciendo en su lugar otras operaciones y servicios que, adems de ser de ms alto nivel, no incluyen la posibilidad de realizar operaciones o acciones peligrosas, tanto para el propio proceso y dems usuarios (por ejemplo, borrar ficheros de otros usuarios), como para el propio sistema operativo (formatear el disco duro). De forma organizada podemos describir los servicios del sistema operativo en la siguiente relacin: 2.1 Gestin de Procesos El SO tiene por funcin generar y gestionar los procesos y atender a sus peticiones. Dependiendo del nmero de procesos y usuarios el SO puede ser: - Monotarea o monoproceso - Multitarea o multiproceso - Monousuario - Multiusuario 2.2 Gestin de Memoria Su actividad se centra fundamentalmente en la categora de gestin de recursos, puesto que tiene por objetivo casi exclusivo la gestin del recurso memoria, se encarga de: - Asignar memoria a los procesos - Proporciona memoria a los procesos cuando lo solicitan y libera cuando as lo requieren - Tratar los posibles errores de acceso a memoria - Permitir que los proceso puedan compartir memoria entre ellos - Gestiona la jerarqua de memoria. Y trata los fallos de pgina en sistemas con memoria virtual 2.3 Comunicacin y sincronizacin entre procesos El SO debe incluir servicios de comunicacin y sincronizacin entre procesos que, sin romper los esquemas de seguridad, han de permitir la cooperacin entre ellos. 2.4 Gestin de Entrada /Salida Una de las principales funciones del un SO es la gestin de los recursos de la computadora y, en concreto, de los dispositivos perifricos. 2.5 Gestin de Archivos y Directorios El servidor de archivos e la parte del SO que cubre una de las 4 funciones que tienen ste en su faceta de mquina extendida. Los servicios que se engloban en el servidor de archivos son de dos tipos: Servicios dirigidos al manejo de datos o archivos Servicios dirigidos al manejo de los nombres o directorios
2.6 Seguridad y Proteccin La seguridad reviste 2 aspectos: uno es garantizar la identidad de los usuarios y otro es definir lo que puede hacer cada uno de ellos. El primer aspecto se trata bajo el trmino de autentificacin, mientras que el segundo se hace mediante los privilegios.
Pgina 6 de 9
Captulo I