Está en la página 1de 10

SISTEMAS OPERATIVOS:

I.

DEFINICIN: DEFINICIN

Un Sistema Operativo es un conjunto de rutinas, procedimientos y subprogramas cuyas funciones son las de gestionar los recursos del ordenador, servir de interfaz o intermediario entre el usuario y la mquina favoreciendo su tarea y liberndole de operaciones rutinarias y complicadas en el control del hardware, como la gestin de la memoria, las entradas y salidas de datos, adems de mantener la seguridad del sistema. Por tanto un sistema operativo funciona como: Administrador de recursos: gestionando eficientemente las diferentes partes del sistema. Mquina virtual: presenta al usuario una mquina fcil de manejar enmascarando el modo de funcionamiento real de la misma.

II. FUNCIONES

DE LOS SISTEMAS OPERATIVOS:

Las funciones que desempea un sistema operativo varan en funcin del tipo de procesamiento de la informacin que se realice con el ordenador (recordad unidad de trabajo I), no ser igual un sistema operativo para multitarea o multiusuario que aquel que sea monousuario. De todas formas las funciones que realizan no varan mucho entre unos y otros pudiendo ser generalizadas as: Asignacin de tiempo de CPU: el tiempo que necesita de CPU cada proceso en ejecucin. Control de recursos: reparto de recursos entre los procesos: memoria, espacio en los sistemas de almacenamiento masivo, peticiones de impresin,... Control de E/S: gestiona los perifricos, los accesos a estos y de estos a la memoria de trabajo y su comunicacin con la CPU. Control de errores: previene la cada del sistema por errores o intenta minimizar su impacto. Pueden ser de software o hardware, como cuando se intenta leer de una disquetera en la que hemos olvidado introducir el disquete. Proteccin: seguridad ante accesos no permitidos de usuarios/as o personas ajenos/as al sistema. Deben tener protocolos de actuacin ante operaciones como eliminacin de archivos o formateos, que permitan al usuario/a dar marcha atrs y evitar perdida de datos por error.

Pgina 10

Interfaz con el operador: presenta al usuario/a pantallas de texto o grficas a travs de las cuales se puede gobernar el ordenador de forma interactiva, ocultando al operario/a el funcionamiento interno del mismo.

III. ESTRUCTURA TPICO:

DE

UN

SISTEMA

OPERATIVO

Los programas que componen un sistema operativo pueden englobarse en dos grupos en funcin de la tarea que realizan y la utilizacin directa o indirecta por parte del usuario/a: Programas de Control IPL. Supervisor o Ncleo. Mdulo de Gestin de E/S. Mdulo de Gestin de Memoria. Mdulo de Gestin del Sistema de Archivos. Programas de Proceso Utilidades. Compiladores o traductores. Editores. Programas de usuario. Libreras.

:
Cargador Inicial de Programas o IPL (Initial Program Loader): Se encuentra en la memoria ROM del sistema y se pone en marcha cuando se conecta el ordenador. Su misin es buscar en las memorias de almacenamiento masivo (discos duros o disquetes), el ncleo del sistema operativo, para cargarlo en memoria y transferirle el control del ordenador. Supervisor o Ncleo: (KERNEL) Ncleo Se mantiene en la memoria del ordenador permanentemente y prcticamente en su totalidad, durante la sesin. Realmente se encarga de prestar servicios a los dems mdulos del S.O., gestionar las interrupciones, asignar trabajos al procesador y proporciona una va de comunicacin entre los distintos programas. Gestin de interrupciones: las interrupciones son pequeas rutinas que interrupciones detienen el microprocesador durante la ejecucin de un proceso para realizar otra operacin, como por ejemplo el movimiento de un ratn, la escritura en el teclado, una divisin por 0, etc. Pueden producirse por hardware o software.
Pgina 10

Cuando durante la ejecucin de un proceso se produce una interrupcin, la primera operacin ha realizar es guardar el estado de los registros de la UCP o lo que es lo mismo, el entorno de ejecucin del proceso (los datos, el contador del programa, el cdigo del mismo, etc.), despus se evala el tipo de interrupcin y se bifurca a una direccin de memoria donde se encuentra la rutina que tratar la interrupcin. Por ltimo se devolver el proceso a su estado (restauracin del entorno) y se continuar con la ejecucin del mismo. Hay que tener presente que estn tipificadas prcticamente la totalidad de las interrupciones existentes y a cada una de ellas se le hace corresponder una direccin de memoria fija en la que se encuentra el comienzo del programa que las trata. La mayora de las interrupciones se producen cuando se intenta realizar una operacin de E/S de datos, por tanto, uno de los mdulos del S.O. ms recurridos para el tratamiento de las interrupciones es el de la Gestin de E/S. La asignacin de trabajos a un procesador: est ligada a SO. procesador Multitarea, en los que varios procesos compiten por su uso. Antes de continuar debemos saber que un proceso es una porcin de programa que se est ejecutando y su entorno, es decir, los datos que maneja, el contador de programa y otros registros necesarios para su ejecucin. Es evidente que en un sistema monoprogramacin el tiempo de la UCP est dedicado a un solo proceso pero qu ocurre en aquellos que pueden trabajar con ms de uno?. La solucin consiste en asignar a cada proceso un tiempo determinado, de tal manera que una vez terminado pasar al siguiente (Tiempo Compartido o Time Slicing). Esta tcnica se conjuga con la propia de la multiprogramacin en la que adems, cuando se produce una operacin de entrada y salida se pasa el control al siguiente proceso en secuencia, aprovechando an ms los tiempos de uso de la UCP. Segn todo esto, los procesos pueden encontrarse en los siguientes estados: 1) En ejecucin: usando el procesador. ejecucin 2) Bloqueado: cuando no puede continuar la ejecucin por falta Bloqueado de datos o acceso a algn recurso del sistema. 3) Listo: dispone de todos los recursos pero est en espera del Listo procesador. Del estado 1 al 2 se pasa cuando el proceso no puede continuar porque no se ha producido un evento externo necesario como la entrada de datos por teclado. Del estado 1 al 3 se puede pasar porque el proceso a sobrepasado el tiempo que se le asign aunque disponga de todos los recursos que necesita. De Listo a Ejecucin, cuando el proceso anterior ha terminado su tiempo o se ha bloqueado. Por ltimo del estado 2 al 1 es imposible pasar, es necesario que primero se coloque en situacin de listo. El Dispatcher o Scheduler, es el programa encargado de gestionar la Scheduler asignacin de UCP a los procesos. Para lo cual dispone de una serie de tablas en

Pgina 10

los que almacena los procesos a ejecutar el estado en el que se encuentran y el entorno propio de cada uno. Existe tambin la posibilidad de asignarles prioridad, para que se dedique ms tiempo a los procesos ms importantes o necesarios. Comunicacin entre recursos: los recursos disponen en la memoria de recursos variables en las que se almacenan determinadas caractersticas, como por ejemplo, en una cola para imprimir ficheros (spool), las posiciones libres en la cola y el proceso que se est imprimiendo. Si dos procesos intentan acceder al spool de impresora, en primer lugar tendrn que leer la variable que indica que posicin est libre y en consecuencia ocuparla. Pero esto no es tan sencillo. Es muy probable que el primer proceso lea esta variable pero su tiempo de ejecucin termine, pasando al estado de listo almacenando todos sus indicadores, incluyendo la posicin leda en la variable de entorno del spool de impresora. Si el segundo proceso pasa al estado de ejecucin, realizara exactamente la misma operacin que el primer proceso solo que en este caso puede que le de tiempo a ocupar la posicin x en la cola de impresin. Si inmediatamente despus su tiempo termina y se vuelve a ejecutar el primer proceso, este continuar con su secuencia y escribir su archivo encima de l del segundo proceso. Habr prdida de datos. El problema descrito es lo que se denomina Condiciones de Carrera. Las condiciones de carrera se producen cuando varios procesos acceden a reas de memoria compartidas, como en el ejemplo descrito, o a ficheros comunes. Las partes de programa que se encargan de realizar este acceso se denominan Seccin Crtica. Podramos solucionar el problema si dos o ms procesos que comparten zonas de memoria, no entrasen a la vez en su seccin crtica, algo bastante difcil de predecir. Una tcnica muy practicada es la de los semforos, que al igual que los de las ciudades, regulan el trfico en el acceso a los recursos. Los programas semforos disponen de una variable que toma el valor 0 si el recurso esta libre y el 1 si est ocupado. Por ejemplo, en el caso de la cola de impresin, al acceder a la variable que indica la posicin libre de la cola, el proceso leera primero la situacin del semforo. Si es 0 pondra este a 1 y continuara la lectura de la variable de posicin. En cualquier caso y pase lo que pase (final de tiempo o cualquier eventualidad), esta zona de memoria quedara bloqueada para cualquier otro proceso. Se libar, es decir se pondr 0, cuando se termine la ejecucin del proceso. Es imprescindible que ninguna interrupcin afecte al programa del semforo. Debido a las poqusimas instrucciones que se requieren para desarrollar estos programas, no es raro cumplir esta importante caracterstica.

Pgina 10

MDULO DE GESTIN DE E/S: E/S

Una de las funciones primordiales de S.O. es el control de los dispositivos de E/S. Para ello debe enviar comandos a estos dispositivos, recibir interrupciones y ocuparse de los errores. El Hardware de E/S puede verse desde dos puntos de vista: uno meramente fsico compuesto de circuitos, cables y motores, y otro desde la ptica del software, con los comandos que el hardware debe interpretar, funciones que realiza y mensajes de error que devuelve. Sin embargo este ltimo est ntimamente ligado al primero. Podemos dividir los dispositivos de E/S en dos grandes grupos: Dispositivos de Bloques: manejan los datos en bloques que pueden ir desde los 128 bytes a 1 Kb. Pueden ser direccionables o no. Ejemplos: discos y cintas magnticas. Dispositivos de Carcter: la E/S se produce carcter a carcter y no son direccionables. Ejemplos, impresoras y teclados entre otros. De esta divisin sacamos en conclusin que el S.O. trata a todos los dispositivos de la misma manera independientemente de sus diferencias internas. Cada dispositivo est compuesto de un Controlador de Dispositivo conocido tambin como tarjeta controladora que es con quien trata directamente el S.O. y no con el dispositivo en s. En la mayora de los microordenadores la controladora se comunica con el microprocesador a travs del sistema de buses (rutas de datos), mientras que en ordenadores mayores utilizan procesadores especializados en el tratamiento de E/S denominados Canales de E/S, que descargan al micro de algunas de estas funciones. Todas las controladoras tienen cuatro registros para comunicarse con el procesador. En algunos ordenadores estos registros se almacenan en la memoria de trabajo, pero en los ordenadores personales, se almacenan en un espacio reservado especialmente para ellos. El sistema de funcionamiento es el siguiente el microprocesador escribe en estos registros el comando (cada controladora tiene su propio juego) y algunos parmetros. Cuando el controlador acepta el comando, libera al microprocesador para continuar el mismo con la tarea. Al terminar genera una interrupcin para que el S.O. retome el control del procesador y pueda comprobar el resultado de la operacin. El micro obtiene los resultados y el estado del dispositivo leyendo uno o varios de los registros de la controladora. Segn todo esto las funciones de una tarjeta controladora las podramos resumir en:

Pgina 10

Decodificar las rdenes recibidas por el microprocesador. Controlar los errores que se produzcan en el intercambio de datos. Generar las seales para accionar el dispositivo. Crear la interrupcin de final de E/S.

Estas funciones son posibles gracias al software de E/S que se estructura en 4 niveles: Manejadores de Interrupciones: generan las interrupciones pertinentes que permiten a un proceso pasar del estado de bloqueo a listo. Recordemos que un proceso puede bloquearse durante su ejecucin porque no reciba datos por teclado. Pues bien, el teclado puede enviar una interrupcin que produzca el desbloqueo de ese proceso. Manejadores de dispositivos: es la parte del sistema operativo que se entiende realmente con las controladoras entrega los comandos y lee los resultados y estados de las controladoras adems de tratar sus posibles errores. Cada tipo de dispositivo tiene el suyo; habitualmente lo llamamos DRIVER. Programacin de E/S independiente del dispositivo: es la parte del S.O. que sirve de interfaz con el usuario. Presenta los dispositivos de forma asequible enmascarando su funcionamiento interno. Programacin en espacio de usuario: consiste en las llamadas que los usuarios realizan en sus programas a la E/S de datos o los propios procesos que crean para el control de colas.

Formas de Gestin de la E/S


Acceso directo a memoria (DMA): es la capacidad que los dispositivos de bloques tienen para acceder a la memoria directamente sin tener que utilizar el microprocesador. El resultado es que mientras se envan los datos a la memoria, el micro puede estar realizando otras operaciones. Su funcionamiento es el siguiente: el procesador da a la controladora la direccin de bloque a leer del disco (por ejemplo) y como novedad la direccin de memoria donde deber ir el bloque y el nmero de bytes que se han de transferir. Acto seguido la controladora efecta la operacin de entrada colocando el bloque ledo en su memoria buffer. Terminada la operacin realiza la comprobacin de que la lectura es correcta. Despus copia el primer byte en la direccin de memoria especificada como DMA. A continuacin, incrementa la direccin de DMA y disminuye la del nmero de bytes a trasmitir. Esta operacin se repite hasta que el nmero de bytes a enviar es 0, momento en el cual se genera una interrupcin para advertir de que la operacin de entrada se ha consumado. Claro est que con la ventaja de que los datos ya estn en la memoria de trabajo.

Pgina 10

Tcnica del Polling: es una tcnica que permite conocer el estado de los dispositivos, o si hay varios iguales, cual puede ser asignado a un proceso que lo solicita. Consiste en ir preguntando cal de ellos est libre de manera cclica y en el mismo orden. Tcnica del Spool: suponemos por los ejemplos de otros puntos que se conoce. Realmente es una cola de espera. Los procesos que solicitan el recurso (sobre todo impresoras) van almacenado los ficheros a imprimir en un archivo en disco en el que tendrn que esperar su turno, salvo que el administrador/a cambie su prioridad para colarlo. Es inmediato pensar que mientras un recurso utiliza la impresora esta queda bloqueada para cualquier otro. Esta tcnica puede dar lugar a problemas como el Interbloqueo. El Interbloqueo: supongamos que el proceso A pide la impresora y por lo tanto la bloquea, al mismo tiempo un proceso B pide un plotter al que tambin bloquea. Si ms tarde el proceso A pide el plotter sin terminar de imprimir y el B la impresora sin acabar su plano, ambos procesos quedarn bloqueados eternamente. Existen diversos mtodos de eliminacin del interbloqueo que consisten fundamentalmente en romper el bucle matando uno o ambos procesos. MDULO DE GESTIN DE MEMORIA:

La memoria es un recurso muy importante, caro y escaso a pesar de los niveles tecnolgicos actuales. Por tanto es necesario administrarlo con sumo cuidado. Veamos algunas de las formas ms utilizadas. Ubicacin simple en monoprogramacin: es la ms sencilla un solo programa en memoria que la controla toda para l y sus datos. Ubicacin partida: permite utilizar multiprogramacin y asigna a cada programa regiones fijas y contiguas de memoria. Si un programa desaparece y necesita cargarse en memoria pero no hay suficiente espacio contiguo en memoria, no se carga aunque globalmente exista. Se considera que desperdicia mucho tiempo de la UCP. Ubicacin particionada con reubicacin dinmica: resuelve el problema anterior mediante el desplazamiento de los programas en memoria para disponer el espacio libre en posiciones consecutivas. En esta operacin se pierde un tiempo considerable ya que aparecen nuevos problemas como el de las direcciones de las instrucciones de los programas que se estn ejecutando, y de las referencias de estos a otras instrucciones mediante bifurcaciones o llamadas a subrutinas. El inconveniente se resuelve mediante un registro oculto (registro de reubicacin), que guardara el desplazamiento producido por el programa al ser realojado. El contenido de este registro se ir sumando al contador del programa para encontrar la direccin de verdadera de cada instruccin.

Pgina 10

Segmentacin: en este caso cada programa se divide en segmentos de tal forma que cada segmento corresponde a un subprograma o procedimiento. Al cargarse en memoria se crea una tabla con las direcciones reales de comienzo de cada segmento. A su vez la direccin de cada instruccin contendr el nmero de segmento y la direccin relativa a la instruccin en el segmento. Para ejecutar una instruccin cualquiera el mdulo de gestin de memoria leer el registro que contiene la direccin, buscar el segmento en la tabla, recoger la direccin de comienzo de este y sumar al contenido la direccin relativa de la instruccin. El resultado es la direccin fsica de la instruccin en la memoria. Si hay varios programas se crear a su vez una tabla con la direccin fsica de las tablas de segmentos de cada uno de ellos. Paginacin: es muy parecido al anterior solo que en lugar de dividir el programa en segmentos se divide en pginas, que son porciones de longitud fija, generalmente de 4 Kb. Al mismo tiempo el espacio direccionable, es decir la memoria fsica, se divide en marcos de pgina de igual longitud. En la memoria existe un registro que determina la direccin fsica de cada marco de pgina que se denomina tablas de mapa de pgina. Por cada programa que se carga en memoria se crea una tabla que guarda la correspondencia de la pgina con el marco de pgina ocupado, de tal manera que solo hay que buscar el nmero de pgina ver en que marco se encuentra y acto seguido encontrar en el mapa de pgina, cual es la direccin de este. La suma de la direccin relativa con la del marco de pgina dar la direccin definitiva. Segmentada Pginada: es una mezcla de las dos. El programa se divide en segmentos y cada uno de estos en pginas. La memoria seguir dividida en marcos de pgina. La direccin de cada instruccin contendr ahora: el nmero de segmento, el nmero de pgina y la direccin relativa de la instruccin en esa pgina. Habr pues una tabla ms que contendr los segmentos y las pginas que este contienen. Virtual: se denomina memoria virtual porque no todo el espacio de direcciones est en la memoria RAM del ordenador. Parte de ella est en memoria secundaria (disco duro por ejemplo). Las dos ltimas tcnicas son consecuencia del concepto de memoria virtual y por tanto se utilizan en esta. Tiene un problema y es el azotado, que es el tiempo que tarda el micro en sustituir una pgina de la memoria por otra de la memoria secundaria, cuando hay muchos usuarios. Requiere una gran cantidad de tiempo y un alto porcentaje de utilizacin de la CPU.

MDULO DE FICHEROS

GESTION

DE

ARCHIVOS

SISTEMAS

DE

Desde el punto de vista del usuario, el aspecto ms importante de un sistema de archivos es como se nombra y protege, que operaciones se pueden realizar sobre ellos, etc. El nmero de sectores en un registro lgico o el hecho de que para llevar la cuenta de rea
Pgina 10

libre se usen listas enlazadas o mapa de bits, suponen detalles de menor importancia aunque para el diseador del S.O. sean fundamentales. Los ficheros o archivos es toda informacin que se almacena en una memoria secundaria a sea disco o cinta. Disponen de un nombre que lo identifica de los dems y una extensin que sirve para que el S.O. reconozca su contenido e incluso la aplicacin que lo maneja. Pueden ser de cualquier tipo y segn el S.O. pueden ser cadenas bytes, registros de longitud fija o estructuras de rboles. Para seguir la pista de los ficheros e incluso para organizarlos UNIX/LINUX y WINDOWS, por ejemplo disponen de Directorios que son en s mismos ficheros. Los directorios poseen diversas entradas por cada archivo como son nombre de fichero, tipo, tamao, propietario, derechos de otros usuarios, lista de bloques usados, fecha de actualizacin y contabilidad de uso. En sistemas multiusuario existen los directorios, a parte de los propios que contienen los programas del S.O. y utilidades, de los usuarios. Todos parten de uno comn denominado raz confirindoles una estructura de rbol invertido (arborescencia). Los directorios que hay que recorrer hasta llegar a uno dado se denominan ruta, siendo el directorio donde trabajamos el directorio actual o de trabajo. Gestin de espacio libre: Existen dos tcnicas: Lista enlazada de bloque de disco: Se dispone de una lista en la que cada elemento es un bloque libre que se enlaza con el siguiente mediante un puntero. Cuando uno queda libre el puntero se lo salta para enlazar con el siguiente. Requiere mucho espacio pero a cambio es rpido. Mapas de bits: usa un bit por cada bloque existente. Est a 0 si no es ocupado y a 1 en caso contrario. Necesita poco espacio pero es muy lento cuando hay pocos bloques libres.

Sistema de almacenamiento:

Pgina 10

III.2. PROGRAMAS DE PROCESO :


Estn constituidos por aquellos que no son necesarios para la gestin del hardware del ordenador como son: Utilidades: instrucciones o comandos que permiten una mejor gestin del sistema. Compiladores o traductores: herramientas de programacin para el usuario/a. Editores: permiten la escritura de programas o pequeos procesos bien para el manejo de otros usuarios o bien para la gestin del sistema. Programas de usuario: los procesos a los que hacamos referencia en ltimo lugar en el grupo de editores. Libreras: rutinas predefinidas, de uso en la programacin de procesos para el sistema.

Pgina 10