Sei sulla pagina 1di 26

CAPTULO 1 INTRODUCCIN, CONCEPTOS Y TIPOS DE SISTEMAS OPERATIVOS.

1.1. Introduccin El sistema operativo es un programa que inicia su ejecucin al encender el computador, establece un estado inicial de los componentes de dicho computador y tiene como funcin primaria el permitir que otros programas se ejecuten y tengan un acceso ordenado a los recursos que ofrece el equipo. Esto lo hace suministrando procesos que controlan a los dispositivos perifricos, administrando recursos compartidos por varias tareas como la memoria y equipos perifricos, estableciendo las prioridades de las tareas que ejecuta el computador. Tambin debe mantener la integridad del proceso recuperando el control cuando algn programa falla. La computacin del siglo 21 se mueve en dos direcciones: La conectividad de los equipos mediante redes con Internet a la cabeza y la automatizacin de todos los dispositivos de uso diario como celulares, agendas y otros Para PC los sistemas operativos por excelencia son Linux y Windows pudiendo interconectarse entre si mediante la redes. Por algn tiempo Windows ha sido parte del panorama hoy en da amenazado por alternativas econmicas y de cdigo abierto como Linux Linux, que hasta ahora ha sido la adoracin del profesional de computacin rebelde comienza a penetrar los mercados conservadores como una alternativa tipo UNIX pero ms econmica. En el mercado de los dispositivos y aparatos hay varios sistemas operativos como: Windows CE, Java de Sun, Palm OS y EPOC de Psion1. Por lo expuesto los sistemas operativos se ejecutaran en: Computadores (Servidores, Clientes y Porttiles) Dispositivos (Agendas, Celulares, Equipos de Oficina y Domsticos)

Sin olvidar a QNX como un sistema operativo de tiempo real que esta entrando fuertemente en el mercado.

INTRODUCCIN Y CONCEPTOS 2

1.2. Conceptos de Sistema Operativo. Existen muchos conceptos de sistema operativo, se cita los ms apegados a la realidad: Un sistema operativo es un programa que controla la ejecucin de los programas de aplicacin y acta como interfaz entre el usuario y el hardware del computador. Un sistema operativo es software desarrollado para simplificar la labor del usuario cuando necesita hacer uso de ciertos recursos que ofrece el computador para transformar datos en informacin. Un sistema operativo (SO) puede ser contemplado como una coleccin organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar un computador y proporcionan un entorno para la ejecucin de los programas. Otros programas se apoyan en las facilidades proporcionadas por el sistema operativo para obtener acceso a los recursos del sistema informtico, tales como archivos y dispositivos de entrada/salida (E/S). Los programas invocan generalmente los servicios del sistema operativo por medio de llamadas. Adems, los usuarios pueden interactuar con el sistema operativo directamente por medio de rdenes del sistema operativo. En cualquier caso, el sistema operativo acta como interfaz entre los usuarios y el hardware de un sistema informtico. Figura 1.1.

Figura 1.1.- Interaccin del SO con el hardware y usuario.

El mdulo del sistema operativo que permite que los usuarios dialoguen de forma interactiva con el sistema es el intrprete de mandatos o shell.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 3

El shell se comporta como un bucle infinito que est repitiendo constantemente la siguiente secuencia: Espera una orden del usuario. Analiza la orden y, en caso de ser correcta, la ejecuta, para lo cual emplea los servicios del sistema operativo. Concluida la orden vuelve a la espera. El dilogo mediante interfaz textual exige que el usuario memorice la sintaxis de los mandatos, con la agravante de que son distintos para cada sistema operativo (por ejemplo para ver el contenido de un archivo en MS-DOS se emplea el mandato type, pero en UNIX se usa el mandato more). Las ordenes o comandos permiten tener mayor control sacrificando la facilidad de las interfases grficas. 1.3. Funciones del sistema operativo Un sistema operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar el manejo y la utilizacin de un computador, hacindolo ms seguro y eficiente; ya que un computador en s mismo no hace nada. Las principales funciones son: [2] J. Carretero a) Asignar b) Liberar recursos c) Proteger recursos d) Contabilizar recursos e) Ejecutar programas y gestionar procesos f) Manipular dispositivos de E/S g) Gestionar archivos h) Detectar y tratar los errores i) Interactuar con el usuario mediante el ILO j) Automatizar el manejo mediante shell scripts o bat. k) Mejorar la productividad de recursos l) Permitir la comunicacin y sincronizacin de programas

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 4

1.4. El arranque de un computador. El sistema operativo de un computador puede estar almacenado en ROM de modo permanente o en un almacenamiento externo generalmente un disco duro, y debe cargarse en RAM al encender el computador. Cuando el sistema operativo est en ROM toma control del equipo al momento de arrancar. Si el sistema operativo est instalado en disco duro, disquete o memoria usb, una parte muy pequea de cdigo, llamado sistema operativo de Nivel 0, est presente en ROM para iniciar la carga del sistema operativo desde la unidad externa de almacenamiento. Generalmente esta carga se hace en dos fases: La fase de arranque hardware La fase de arranque del sistema operativo. 1.4.1. Arranque hardware Cuando se arranca la computadora, o cuando se pulsa el botn RESET, se genera una seal elctrica que carga unos valores predefinidos en los registros. En especial, esta seal carga en el contador de programa la direccin de comienzo del iniciador ROM, De esta forma se cumplen todas las condiciones para que la computadora ejecute un programa y realice funciones tiles. El iniciador es un programa permanente grabado en una memoria ROM llamado sistema operativo de Nivel 0. Figura 1.2.
Unidad de Memoria
Direccin 0 2.047 Celdas Zona ROM

Unidad de Memoria
Direccin 0 Celdas

1.046.528 1.048.575 1.048.575

Zona ROM

Figura 1.2.- La memoria de un computador tiene RAM y ROM

El iniciador ROM realiza tres funciones.


Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 5

Primero hace una comprobacin del sistema, que sirve para detectar sus caractersticas y comprobar si los dispositivos funcionan correctamente. Lectura y almacenamiento en memoria del programa cargador del sistema operativo. Da el control al programa cargador. En el caso de una computadora de tipo PC, la memoria ROM contiene, adems del programa iniciador, software de E/S denominado BIOS (basic input-output system). El BIOS de una computadora proporciona el fabricante y suele contener procedimientos para leer y escribir de disco, leer caracteres del teclado y escribir en la pantalla, comunicarse con el usuario con sonidos cuando un dispositivo bsico falla, por ejemplo si no existe o esta mal instalada la tarjeta de video o memoria. Un sistema operativo que se encuentra instalado en una unidad de disco duro, tiene una disposicin como la que se muestra en la Figura 1.3, lo que interesa ahora es el programa cargador del sistema operativo.2 Este programa est almacenado en una zona predefinida del disco, generalmente los primeros sectores del disco, y tiene un tamao prefijado.
Programa cargador (identificador)

Disco

Sistema Operativo

Figura 1.3.- Disposicin del SO en un disco duro.

Para una mayor seguridad, el programa cargador del sistema operativo se incluye en una posicin prefijada por el iniciador ROM, y puede tener una contrasea. 1.4.2. Arranque del sistema operativo El programa cargador del sistema operativo tiene por misin traer a memoria principal algunos de los componentes del sistema operativo. Una vez cargados estos componentes, se pasa a la fase de iniciacin, que incluye las siguientes operaciones: Comprobacin del sistema. Se completan las pruebas del hardware realizadas por el iniciador ROM y se comprueba que el sistema de archivos tenga un estado coherente.
2

LLamado Boot en Windows y Lilo o Grub en Linux.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 6

Esta operacin exige revisar todos los directorios, lo que supone un largo tiempo de procesamiento Se establecen las estructuras de informacin propias del sistema operativo, tales como la tabla de procesos, las tablas de memoria y las de E/S. El contenido de estas tablas se describir a lo largo del libro. Se carga en memoria principal aquella parte del sistema operativo que ha de estar siempre en memoria, parte que se denomina sistema operativo residente. Se crea un proceso de inicio o login por cada terminal definido en el sistema, as como una serie de procesos auxiliares o servicios llamados demonios (por ejemplo: el demonio de impresin o el demonio de comunicaciones). Los procesos de inicio presentan en su terminal el mensaje de bienvenida y se quedan a la espera de que un usuario arranque una sesin, para lo cual ha de teclear el nombre de su cuenta y su contrasea o password. El proceso de inicio autentifica al usuario, comprobando que los datos introducidos sean correctos y lanza un proceso shell. El proceso shell primero ejecuta uno o varios archivos de mandatos, como es el autoexec.bat en MS-DOS o los login y cshrc en UNIX. A continuacin, el shell se queda esperando rdenes de los usuarios, ya sean textuales o como acciones sobre un men o un icono. Para llevar a cabo las operaciones solicitadas por el usuario, el shell genera uno o varios procesos. La Figura 1.4 resume las actividades ms importantes que se realizan en el arranque de la computadora [2] J.Carretero

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 7

Bajo el control del iniciador ROM Bajo el control del cargador (boot) del SO

Test del hardware Carga en memoria del cargador del SO Carga en memoria componentes del SO Test del sistema de ficheros Creacin de estructuras de datos internas Completa la carga del SO residente Creacin de procesos login

Inicializacin bajo el control de la parte residente del SO

Se entra en la fase normal de funcionamiento del SO

Figura 1.4.- El arranque de una computadora

1.5. Evolucin e historia de los sistemas operativos. 1.5.1. Procesamiento serie En una secuencia tpica, se empieza cargando el programa editor para preparar el cdigo fuente del programa. El paso siguiente es cargar y ejecutar el traductor de lenguaje y alimentarle con el cdigo fuente del programa de usuario. Los traductores de lenguaje de mltiples pasos pueden requerir que se reintroduzca el cdigo fuente durante cada paso, cuando se usan dispositivos de entrada serie, tales como lectoras de tarjetas. Si se detectan errores de sintaxis debe repetirse el proceso completo desde el principio. Eventualmente, el cdigo objeto producido a partir del cdigo fuente corregido sintcticamente es cargado y ejecutado. Si se detectan errores en tiempo de ejecucin, se puede examinar y modificar el estado de la mquina mediante los interruptores de la consola, o con la ayuda de un programa llamado depurador. [1] Milan Milenkovic, 1.5.2. Procesamiento por lotes El siguiente paso lgico en la evolucin de los sistemas operativos fue automatizar la secuencia de operaciones involucradas en la ejecucin de un programa y los aspectos mecnicos del desarrollo de programas. El propsito era incrementar la utilizacin de los recursos del sistema y la productividad del programador mediante la reduccin o eliminacin de los tiempos muertos de los componentes ocasionados por las comparativamente lentas operaciones manuales.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 8

Un concepto relacionado, llamado a veces phasing, es el de preorganizar los trabajos de forma que los anlogos se siten en el mismo lote. Por ejemplo, agrupando en lotes varios trabajos de compilacin Fortran, el compilador Fortran slo necesita ser cargado una vez para procesarlos a todos de golpe. Mejoras adicionales en el procesamiento por lotes se consiguieron principalmente incrementando la productividad y la utilizacin de los recursos mediante el solapamiento de las operaciones de entrada y salida. Estos desarrollos coincidieron con la introduccin de: Los canales de acceso directo a memoria (DMA, Direct Memory Access), Los controladores de perifricos, Los procesadores de entrada/salida dedicados. Almacenamiento intermedio (bffer) de E/S. SPOOL (simultaneous perpheral operations) Archivos denominados BAT y Scripts 1.5.3. Multiprogramacin Incluso con las mejoras anteriores, el procesamiento por lotes dedica los recursos del sistema informtico a un nico programa cada vez. En el curso de su ejecucin, la mayora de los programas oscilan entre fases intensivas en procesamiento o clculo e intensivas en E/S. Como se ilustra en la Figura 1.5

Procesamiento Entrada/salida Tiempo


Figura 1.5.- Fases en que oscila un programa.

La ejecucin serie de los programas provoca que o bien el procesador o bien los dispositivos de E/S se encuentren inactivos en algn momento incluso cuando el flujo de trabajos a la entrada nunca est vaco. Un modo de abordar este problema es asignar alguna otra tarea al procesador y a los dispositivos de E/S cuando de otro modo se vayan a encontrar inactivos. Si se permite que los programas se ejecuten
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 9

concurrentemente, pueden proporcionarse amplios suministros de trabajos pendientes para que sean asignados a los componentes infrautilizados. Se pueden lograr ganancias significativas de rendimiento intercalando la ejecucin de los programas, o multiprogramando, que es como se le denomina generalmente a este modo de operacin. El nmero de programas activamente en competencia por los recursos de un sistema informtico multiprogramado se denomina grado de multiprogramacin. En principio, mayores grados de multiprogramacin deberan producir mayor utilizacin de recursos. La multiprogramacin ha sido tradicionalmente empleada para aumentar la utilizacin de los recursos de un sistema informtico y para soportar mltiples usuarios simultneamente activos. [1] Milan Milenkovic, 1.6. Generaciones de los Sistemas Operativos. Se pueden encontrar las siguientes etapas en el desarrollo de los sistemas operativos, que coinciden con las cuatro generaciones de las computadoras. Prehistoria.-En esta etapa no existan sistemas operativos. El usuario deba codificar su programa a mano y en instrucciones mquina, y deba introducirlo personalmente en la computadora, mediante conmutadores o tarjetas perforadas. Las salidas se impriman o se perforaban en cinta de papel para su posterior impresin. Primera generacin.- Aos cincuenta, corresponde a los sistemas operativo serie y de lotes. Segunda generacin.-Con la aparicin de la segunda generacin de computadoras principios de los sesenta la multiprogramacin se impuso en sistemas de lotes como una forma de aprovechar el tiempo empleado en las operaciones de E/S. Una forma de aprovechar ese tiempo consiste en mantener varios trabajos simultneamente en memoria principal y compartir el tiempo de procesador (tcnica llamada de multiprogramacin). Tambin en esta poca aparecen otros modos de funcionamiento muy importantes: Equipos multiprocesadores.- en los que varios procesadores forman una sola mquina de mayores prestaciones. Sistemas de tiempo compartido o timesharing.- Estos sistemas, a los que estamos muy acostumbrados en la actualidad3, permiten que varios usuarios trabajen de forma interactiva o conversacional con la computadora desde
3

Windows o Linux

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 10

terminales. El sistema operativo se encarga de repartir el tiempo de la UCP entre los distintos usuarios, asignando de forma rotativa pequeos intervalos de tiempo de UCP denominadas rodajas (time slice). En sistemas bien dimensionados, cada usuario tiene la impresin de que la computadora le atiende exclusivamente a l, respondiendo rpidamente a sus rdenes. Aparecen as los primeros planificadores. Primeros sistemas de tiempo real.- En este caso, la computadora est conectada a un sistema externo y debe responder de acuerdo a los sucesos externos. Aparecen implementaciones con memoria virtual, es decir si no existe memoria RAM suficiente se utiliza el disco duro. Tercera generacin (aos setenta).- La tercera generacin es la poca de los sistemas de propsito general y se caracteriza por los sistemas operativos multimodo de operacin, esto es, capaces de operar en lotes, en multiprogramacin, en tiempo real, en tiempo compartido y en modo multiprocesador. Esta dcada fue importante por la aparicin de dos sistemas que tuvieron una gran difusin como UNIX y MVS de IBM. Cuarta generacin (aos ochenta hasta la actualidad).- La cuarta generacin se caracteriza por una evolucin de los sistemas operativos de propsito general de la tercera generacin, tendiente a su especializacin, a su simplificacin y a dar ms importancia a la productividad del usuario que al rendimiento de la mquina. Adquiere cada vez ms importancia el tema de las redes de computadoras, tanto redes de largo alcance como locales. En concreto, la disminucin del coste del hardware hace que se difunda el proceso distribuido, en contra de la tendencia centralizadora anterior. El proceso distribuido consiste en disponer de varias computadoras, cada una situada en el lugar de trabajo de las personas que la emplean, en lugar de una nica central. Estas computadoras suelen estar unidas mediante una red, de forma que puedan compartir informacin y perifricos. Se difunde el concepto de mquina virtual e interfaz grafica. Los sistemas operativos que domina el campo de las computadoras personales son UNIX, LINUX, y Windows NT hasta Windows 2003.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 11

Durante esta etapa se desarrollan tambin los sistemas operativos de tiempo real, encargados de ofrecer servicios especializados para el desarrollo de aplicaciones de tiempo real. Algunos ejemplos son: QNX, RTEMS y VRTX . A mediados de los ochenta aparecen los sistemas operativos distribuidos. Un sistema operativo distribuido es un sistema operativo, comn utilizado en una serie de computadores conectados por una red. Figura. 1.6.
Usuarios Programas Sistema Operativo Distribuido Hardware Hardware

Red de Interconexin

Figura 1.6.- Sistema operativo distribuido.

1.7. Tipos de Sistemas Operativos Clasificacin Tipo de Sistema Operativo Monoproceso. Multiproceso Monoprograma Multiprograma Monousuario Multiusuario. Monoprocesador

Por el nmero de Procesos Por el nmero de Programas Por el nmero de Usuarios Por el nmero

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 12

Procesadores Por el algoritmo de Planificacin

Multiprocesador. Serie Lotes Multitarea: o Tiempo Compartido o Tiempo Real o Propsito General. o Combinados Uni acceso Multiacceso Monoltico Por Capas o Microkernel o Cliente Servidor. De Red Distribuidos de del Monoplataforma Multiplataforma.

Por el nmero de Accesos Por la estructura

Por las conexiones Por el tipo

arquitectura equipo Por la forma

de

comercializar

Cdigo Propietario. Cdigo Libre

Las diferencias ms importantes en la forma de trabajo se dan en los siguientes sistemas operativos: En Serie y Lotes
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 13

Multiprogramacin. Las variedades de tiempo compartido, de tiempo real, combinados y distribuidos. Cada tipo de sistema operativo tiene diferentes formas de realizar su trabajo en relacin a los siguientes aspectos: Planificacin del procesador Gestin de la memoria. Gestin de la E/S. Gestin de archivos 1.8. Diferentes perspectivas de un sistema operativo El sistema operativo es percibido de diferente forma por las diferentes clases de usuarios. Como son: Usuario Final.- Obtienen servicios del sistema operativo mediante rdenes, es decir, tecleando en el terminal o incorporando rdenes a un trabajo por lotes, o interfaz grfica. Programador.- Invocan servicios del sistema operativo mediante llamadas al sistema en tiempo de ejecucin. stas se encuentran generalmente incluidas en programas y son activadas durante su ejecucin. Diseador.- Es un usuario que crea el sistema operativo. 1.8.1. El sistema operativo usado como lenguaje de rdenes Los lenguajes de rdenes del sistema operativo suelen ser especficos de cada sistema. Aunque su sintaxis difiere de un sistema a otro, el rango y funcionalidad de las rdenes del sistema son mucho menos variables. Algunas de las clases funcionales tpicas de las rdenes del sistema operativo aparecen a continuacin: [1] Milan Milenkovic

TIPO DE ORDEN Conexin y mantenimiento

ORDENES TPICAS

LOGIN, LOGOUT, CAMBIAR_CLAVE Activacin y Control de CARGAR, EJECUTAR,


Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 14

Programas Gestin de Archivos

ABORTAR CREAR, ELIMINAR, RENOMBRAR, COPIAR LISTAR PROGRAMAS ACTIVOS LISTAR_USUARIOS CONECTADOS. CREAR_CUENTA, LISTAR_ERRORES.

Informes de Estado Administracin del Sistema

1.8.2. El sistema operativo usado con llamadas al sistema Los programadores de aplicaciones y sistemas suelen invocar servicios del sistema operativo desde sus programas por medio de llamadas al sistema lo que a veces se denomina interfaces de programacin de aplicaciones (API Aplication-Programing Interfaces). Las API mas conocidas con WIN32 para Windows y POSIX en Linux 1.9. Recorrido de la ejecucin de una orden. Para valorar el papel y cometido de los diferentes componentes del sistema, esta seccin sigue un recorrido tpico de la ejecucin de una orden del sistema operativo. Para los fines de este ejemplo, consideremos la secuencia de sucesos que pueden ocurrir en respuesta a la orden del usuario. EDITAR ARCHIVO.TXT EL BIOS recibe cada letra individual pulsada en el teclado que produce una interrupcin que es procesada por una rutina de dispositivos de teclado de bajo nivel. Cuando recibe la seal de la tecla ENTER, el BIOS sabe que la lnea completa ya esta ensamblada y la rutina de dispositivo de teclado transfiere la lnea de entrada al intrprete del lenguaje de rdenes (ILO). El ILO, llamado shell en Unix y COMMAND en Windows, analiza la lnea y deduce que requiere la ejecucin de un programa EDITOR para el ejemplo. El resto de la lnea ARCHIVO.TXT se guarda para transferirla como parmetro al programa solicitado como parmetro.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 15

El ILO verifica si el programa editor se encuentra en la memoria principal. Si no est procede a su carga y ejecucin. Que contempla los siguientes pasos: o Localizar el archivo del programa ejecutable llamado EDITOR en el disco: o Primero en el directorio de trabajo y luego en los directorios del camino de bsqueda. o Si no encuentra enva el mensaje de error o Si es localizado, lee tamao del archivo y consecuentemente los requisitos de memoria. El gestor de memoria asigna la regin de memoria principal en la que el programa editor va a ser cargado. o Busca en las tablas de memoria las particiones libres suficientes para almacenar. o Si no encuentra da el mensaje de error de que no hay memoria. o Si encuentra pasa el control a un programa cargador que toma los elementos del archivo EDITOR y los lleva a memoria principal. Anotando las direcciones de memoria fsica en las tablas del mapa de direcciones que se utiliza para proteccin y para traduccin a direcciones de memoria (fsicas) de las direcciones relativas al programa (virtuales). Cuando el programa editor est cargado en memoria, el sistema operativo crea el proceso. Para lo cual crea la estructura de datos llamada bloque de control de procesos (BCP), en la cual anota: o El nombre del programa o El identificador interno del sistema, o La prioridad de ejecucin o Los punteros a la tabla de traduccin de direcciones, o La lista de recursos asignados y otra informacin general. Una vez creado, el proceso editor es elegible para ejecucin y es colocado en la lista de procesos preparados, por definicin, poseen todos los recursos requeridos excepto el procesador.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 16

Un mdulo del sistema operativo denominado planificador selecciona el siguiente proceso de los preparados para la ejecucin. Cuando el editor es eventualmente planificado para ejecutarse recibir el control del procesador as como el resto de la lnea de orden invocada; es decir el parmetro ARCHIVO. TXT. Para lo que tiene que empezar a realizar procesos similares a los anteriores de bsqueda en disco y carga en memoria. En este caso al ser un archivo de texto tiene que emitir una llamada especial. ABRIR (OPEN) para obtener acceso o CREAR si no existe el archivo. El sistema operativo realiza un trabajo importantsimo en poco tiempo, que es transparente para el usuario. En la Figura 1.8 se indica el funcionamiento de un sistema operativo a travs de sus componentes. Como vemos el SO administra los recursos como el Procesador, Memoria y Disco Duro continuamente. Para un rendimiento ptimo del sistema no solo depende del SO, sino de lo que puede ofrecer un buen hardware. Sobre todo la velocidad con la que el procesador puede leer y escribir la informacin de los diferentes tipos de memoria como: Registros, Cache, RAM y Disco Duro. La Figura 1.7 indica la jerarqua de las memorias segn su velocidad y capacidad. La memoria que tiende hacia la punta es la mas rpida y por ende costosa y la memora hacia la base es la de mayor capacidad. 1.10. Diseo e Implementacin de sistemas operativos En esta seccin discutimos algunas de las cuestiones y metodologas utilizadas en el diseo e implementacin de sistemas operativos. Comenzamos esbozando los principales problemas y mtodos utilizados en la gestin de objetos del sistema operativo tales como procesos, memorias y archivos. Luego presentamos una visin de la estructura interna de los sistemas operativos.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 17

Nivel 0 Nivel 1

Reg. M. Cache Mem. Principal Gestin HW Gestin S.O.

Nivel 2

Nivel 3

Discos

Gestin S.O.

.Figura 1.7.- Jerarqua de los tipos de Memoria.

1.10.1. Requisitos funcionales El sistema operativo proporciona varias funciones supervisoras y de control para gestin de los procesos. Entre ellas se incluyen servicios de creacin y supresin de procesos, control del progreso de los procesos y actuacin sobre condiciones excepcionales que se presentan durante la ejecucin de un proceso. El sistema operativo asigna recursos hardware y software en respuesta a requisitos del proceso y a peticiones explcitas. Adems, el sistema operativo proporciona proteccin, control de acceso y la seguridad necesaria para mantener la integridad del sistema en entornos de multiprogramacin. La cooperacin entre los procesos viene facilitada por mecanismos para comunicacin e intercambio de informacin entre procesos, tales como seales y mensajes. La gestin de memoria principal consiste esencialmente en asignar memoria fsica de capacidad finita a los procesos que lo soliciten.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 18

Area del Sistema Operativo

Usuario

Memoria RAM

Procesos 1 A B C P 1 B
Programa 1

Cache

1 C

2 A
Programa 2

2 B

3 A
Programa 3

Procesos Preparados

Disco Duro Gestin de Archivos Planificador

Figura 1.8.- Funcionamiento del SO

El almacenamiento de informacin a largo plazo, incluidos programas y datos, es una funcin importante en un sistema operativo. La informacin se almacena generalmente en dispositivos de memoria secundaria en forma de colecciones de entidades relacionadas llamadas archivos. Los entornos multiusuario y multiprogramacin imponen algunos requisitos adicionales para la manipulacin y almacenamiento de archivos. Anlogamente a la informacin en memoria principal, la informacin en archivos debe estar protegida contra accesos no autorizados y a los usuarios cooperativos les debe ser permitida la comparticin e incluso el acceso concurrente a archivos comunes. 1.10.2. Componentes El Nivel 1 con frecuencia denominado ncleo o kernel del sistema operativo, gestiona bsicamente los procesos. El ncleo lleva la cuenta de los procesos activos mediante estructuras de datos que muestran el estado del sistema. Este nivel contiene un planificador que selecciona qu proceso ejecutar a continuacin cuando se desactiva el proceso actualmente en ejecucin. Al asignar la UCP a un nuevo proceso, el ncleo efecta una operacin de cambio de contexto que incluye salvar el estado del proceso que acaba y restaurar el estado del proceso que llega. El Nivel 1 gestiona las interrupciones enmascarndolas cundo y cmo sea necesario y proporciona facilidades para conectar rutinas de servicio a interrupciones hardware. Este nivel tambin puede
Captulo 1 Sistemas Operativos

Registros
UCP

Gestin de Memoria Virtual

INTRODUCCIN Y CONCEPTOS 19

proporcionar mecanismos bsicos para sincronizacin y posiblemente comunicacin entre procesos tales como semforos o mensajes. El Nivel 2 proporciona bsicamente facilidades de bajo nivel para la gestin de memoria secundaria necesaria para soportar la gestin de memoria principal en el Nivel 3, El Nivel 2 permite que se transfieran bloques de datos entre los almacenamientos primario y secundario. Proporciona una abstraccin de muy bajo nivel de la memoria secundaria como secuencia lineal de bloques de datos para fines de lectura y escritura. Las peticiones efectuadas de este modo se traducen por rdenes hardware para mover y posicionar las cabezas del disco. El Nivel 3 gestiona la memoria principal. Asigna memoria a los procesos al cargarlos y la libera cuando ya no es necesaria. El aislamiento de los distintos espacios de direcciones y algunas formas controladas de comparticin de memoria tambin se soportan en el Nivel 3. La memoria virtual, que proporciona la ilusin de disponer de una memoria mayor de la que es fsicamente accesible, puede implementarse a este nivel. Los mdulos del Nivel 3 manejan las interrupciones hardware que revelan intentos de direccionar datos que no se encuentran en la memoria principal. En este caso, los bloques de datos ausentes son trados desde el almacenamiento secundario utilizando facilidades del Nivel 2. Si no hay espacio disponible, se desocupa el espacio necesario mediante la retirada temporal de algunos datos llevndolos al almacenamiento secundario. El Nivel 4 proporciona facilidades para almacenamiento a largo plazo y manipulacin de archivos con nombre. En el Nivel 4 se implementan formas ms sofisticadas de asignacin de espacio y acceso a datos en memoria secundaria que las proporcionadas por el Nivel 2. Los archivos o partes de ellos, pueden ser accedidos y actualizados por medio de rdenes de alto nivel sin necesidad de especificar los nmeros o direcciones de los bloques de datos tal como requiere el Nivel 2. En el Nivel 4, la informacin es generalmente direccionada de una manera relativa a archivos. El Nivel 4 tambin gestiona los dispositivos y perifricos externos, tales como impresoras y terminales. Las diferencias hardware entre diferentes tipos de dispositivos, tales como si estn orientados a carcter o estructurados en bloques, son encubiertas por el software a este nivel para proporcionar una visin uniforme de archivos y dispositivos para los niveles superiores y finalmente para los usuarios del sistema. Este interfaz estndar tambin puede extenderse con una facilidad de comunicacin entre programas denominada cauce (pipe), que es esencialmente un canal de comunicacin
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 20

virtual unidireccional. Se pueden escribir flujos de datos en un extremo del cauce y leerlos en el otro utilizando bsicamente el mismo grupo de llamadas, tales como ABRIR y LEER, que estn disponibles para manipulacin de archivos y dispositivos. El Nivel 5 es el intrprete del lenguaje de rdenes. Proporciona la interfase entre los usuarios interactivos y el sistema operativo. Los mdulos del Nivel 5 utilizan facilidades proporcionadas por los niveles inferiores para aceptar lneas de rdenes desde los terminales. Estas lneas de entrada son entonces analizadas sintcticamente para separar las rdenes de los parmetros e identificar el tipo de servicio solicitado. Las llamadas al sistema en otros niveles se emplean para proporcionar realmente el servicio. Cuando se solicita ejecutar un programa, el software de este nivel crea el entorno de trabajo e invoca a los procesos correspondientes. 1.10.3. Estructura Los sistemas operativos est formado por una serie de componentes especializados en determinadas funciones. Cada sistema operativo estructura estos componentes de forma distinta. En funcin de esta estructura se pueden agrupar los sistemas operativos en dos grandes grupos: sistemas operativos monolticos y sistemas operativos estructurados. 1.10.3.1. Sistemas operativos monolticos Un sistema operativo de este tipo no tiene una estructura clara y bien definida. Todos sus componentes se encuentran integrados en un nico programa (el sistema operativo) que ejecuta en un nico espacio de direcciones. En este tipo de sistemas todas las funciones que ofrece el sistema operativo se ejecutan en modo ncleo. Ejemplos claros de este tipo de sistemas son MS-DOS, UNIX y LINUX. Ambos comenzaron siendo pequeos sistemas operativos, que fueron hacindose cada vez ms grandes debido a la gran popularidad que adquirieron. El problema que plantea este tipo de sistemas radica en lo complicado que es modificar el sistema operativo para aadir nuevas funcionalidades y servicios. En efecto, aadir una nueva caracterstica al sistema operativo implica la modificacin de un gran programa, compuesto por miles de lneas de cdigo fuente y funciones, cada una de las cuales puede invocar a otras cuando as lo requiera. Adems, en este tipo de sistemas no se sigue el principio de ocultacin de la informacin. Para solucionar este problema es necesario dotar de cierta estructura al sistema operativo.

Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 21

1.10.3.2. Sistemas operativos estructurados Cuando se quiere dotar de estructura a un sistema operativo, normalmente se recurre a dos tipos de soluciones: sistemas por capas y sistemas cliente-servidor. a) Sistemas por capas En un sistema por capas, el sistema operativo se organiza como una jerarqua de capas, donde cada capa, ofrece una interfaz clara y bien definida a la capa superior y solamente utiliza los servicios que le ofrece la capa inferior. La principal ventaja que ofrece este tipo de estructuras es la modularidad y la ocultacin de la informacin. Una capa no necesita conocer cmo se ha implementado la capa sobre la que se construye, nicamente necesita conocer la interfaz que ofrece. Esto facilita enormemente la depuracin y verificacin del sistema, puesto que las capas se pueden ir construyendo y depurando por separado.
Capa 5: Programas de usuario Capa 4: Gestin de la E/S Capa 3: Controlador de la consola Capa 2: Gestin de memoria Capa 1: Planificacin de la CPU y multiprogramacin Capa 0: hardware

Figura 1.9.- Estructura por capas de un SO

Este enfoque lo utiliz por primera vez el sistema operativo THE, un sistema operativo sencillo que estaba formado por seis capas, como se muestra en la Figura 1.9. Otro ejemplo de sistema operativo diseado por capas es el OS/2, descendiente de MS-DOS. b) Modelo cliente-servidor En este tipo de modelo, el enfoque consiste en implementar la mayor parte de los servicios y funciones del sistema operativo en procesos de usuario, dejando slo una pequea parte del sistema operativo ejecutando en modo ncleo. A esta parte se le denomina micro-ncleo y a los procesos que ejecutan el resto de funciones se les
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 22

denomina servidores. La Figura 1.10 presenta la estructura de un sistema operativo con estructura cliente-servidor.
Procesos cliente Procesos servidores

API

API

Servidor de Servidor Servidor de Servidor de Servidor de archivos y Servidor de de Seguridad procesos memoria la E/S directorios Comunicac.

Modo usuario

Microncleo Hardware

Modo ncleo

Figura 1.10.- Estructura Cliente Servidor del SO

Minix, Mach y Amoeba son ejemplos de sistemas operativos que siguen este modelo. Windows NT tambin sigue esta filosofa de diseo, aunque muchos de los servidores (el gestor de procesos, gestor de E/S, gestor de memoria, etc.) se ejecutan en modo ncleo por razones de eficiencia. 1.11. Interfaz de usuario del sistema operativo. Cuando un usuario trabaja con una computadora necesita poder interactuar con el sistema operativo para poder llevar a cabo operaciones tales como ejecutar un programa o borrar un archivo, sin necesidad de escribir un programa que realice dicha operacin utilizando los servicios del sistema operativo. La interfaz de usuario de los sistemas operativos, al igual que la de cualquier otro tipo de aplicacin, ha sufrido una gran evolucin. Se ha pasado de interfaces alfanumricas, que requeran un conocimiento bastante profundo del funcionamiento de la computadora a interfaces grficas, que ocultan al usuario la complejidad del sistema proporcionndole una visin intuitiva del mismo. 1.11.1. Funciones de la interfaz de usuario La principal misin de la interfaz, sea del tipo que sea, es permitir al usuario acceder y manipular los objetos y recursos del sistema. En esta seccin se presentarn de forma genrica cules son las operaciones que tpicamente ofrece el sistema operativo a sus usuarios, con independencia de cmo lleven stos a cabo el dilogo con el mismo: Manipulacin de archivos y directorios. Ejecucin de programas.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 23

Herramientas para el desarrollo de las aplicaciones. El usuario debe disponer de utilidades tales como ensambladores, enlazadores y depuradores, para construir sus propias aplicaciones. Comunicacin con otros sistemas. Existirn herramientas para acceder a recursos localizados en otros sistemas accesibles a travs de una red de conexin. En esta categora se consideran herramientas bsicas, tales como ftp,telnet y ssh. Informacin de estado del sistema. El usuario dispondr de utilidades para obtener informaciones tales como la fecha, la hora, el nmero de usuarios que estn trabajando en el sistema o la cantidad de memoria disponible. Configuracin de la propia interfaz y del entorno. Cada usuario tiene que poder configurar el modo de operacin de la interfaz de acuerdo a sus preferencias. Intercambio de datos entre aplicaciones. El usuario va a disponer de mecanismos que la permitan especificar que, por ejemplo, una aplicacin utilice los datos que genera otra. Control de acceso. En sistemas multiusuario, la interfaz debe encargarse de controlar el acceso de los usuarios al sistema para mantener la seguridad del mismo. Normalmente, el mecanismo de control estar basado en que cada usuario autorizado tenga una contrasea que deba introducir para acceder al sistema. Otras utilidades y herramientas. Tales como calculadoras o agendas. Sistema de ayuda interactivo. 1.11.2. Interfaces alfanumricas La caracterstica principal de este tipo de interfaces es su modo de trabajo basado en lneas de texto. El usuario para dar instrucciones al sistema, escribe en su terminal un mandato terminado con un carcter de final de lnea. Cada mandato est normalmente estructurado como un nombre de mandato (por ejemplo borrar) y unos argumentos (por ejemplo el nombre del archivo que se quiere borrar). Observe que en algunos sistemas se permite que se introduzcan varios mandatos en una lnea. El intrprete de mandatos, que es como se denomina tpicamente al mdulo encargado de la interfaz, lee la lnea escrita por el usuario y lleva a cabo las acciones especificadas por la misma. Una vez realizadas, el intrprete escribe una indicacin (prompt) en el terminal para notificar al usuario que est listo para recibir otro mandato. Este ciclo repetitivo define el modo de operacin de este tipo de interfaces.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 24

1.11.2.1. Intrprete de mandatos internos El intrprete de mandatos interno es un modulo del sistema operativo que se carga en el arranque del sistema operativo y permanece residente en memoria todo el tiempo; a menos que los procesos de usuario necesiten mas espacio de memoria y tengan que descargarlo de RAM; pero tan pronto se haya liberado la memoria este intrprete debe regresar a memoria y estar siempre disponible para cuando el usuario lo necesite. 1.11.2.2. Intrprete de mandatos externos Los mandatos externos son programas que se encuentran en almacenamiento secundario. Por tanto se realiza el mismo tratamiento de cualquier otra aplicacin. Esta solucin es ms recomendable ya que proporciona un tratamiento y visin uniforme de los mandatos del sistema y las restantes aplicaciones. El intrprete no se ve afectado por la inclusin o la modificacin de un mandato. En los sistemas reales puede existir una mezcla de las dos estrategias. El intrprete de mandatos de MS-DOS (COMMAND. COM) se enmarca dentro de la primera categora, esto es, intrprete con mandatos internos. El motivo de esta estrategia se debe a que este sistema operativo se dise para poder usarse en computadoras sin disco duro y, en este tipo de sistemas, el uso de un intrprete con mandatos externos exigira que el disquete correspondiente estuviese insertado para ejecutar un determinado mandato. Sin embargo, dadas las limitaciones de memoria de MS-DOS, para mantener el tamao del intrprete dentro de un valor razonable, algunos mandatos de uso poco frecuente, como por ejemplo DISKCOPY, estn implementados como externos. Los intrpretes de mandatos de UNIX, denominados shells, se engloban en la categora de intrpretes con mandatos externos. Sin embargo, algunos mandatos se tienen que implementar como internos debido a que su efecto slo puede lograrse si es el propio intrprete el que ejecuta el mandato. As, por ejemplo, el mandato cd, que cambia el directorio actual de trabajo del usuario usando la llamada chdir, requiere cambiar a su vez el directorio actual de trabajo del proceso que ejecuta el intrprete, lo cual slo puede conseguirse si el mandato lo ejecuta directamente el intrprete. 1.11.3. Interfaces grficas El auge de las interfaces grficas de usuario (GUI, Graphical User Interface) se debe principalmente a la necesidad de proporcionar a los usuarios no especializados una visin sencilla e intuitiva del sistema que oculte toda su complejidad. Esta necesidad ha surgido por la enorme difusin de las computadoras en todos los mbitos de la vida
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 25

cotidiana. Sin embargo, el desarrollo de este tipo de interfaces ms amigables ha requerido un avance considerable en la potencia y capacidad grfica de las computadoras dada la gran cantidad de recursos que consumen durante su operacin.

Figura 1.11.- Elementos de una interfaz grfica.

En la Figura 1.11 se muestra los elementos claves de la interfaz grfica de este tipo de sistemas, el explorador de Windows. A continuacin, se revisan las caractersticas comunes de este tipo de interfaces. En primer lugar, todos ellos estn basados en ventanas que permiten al usuario trabajar simultneamente en distintas actividades. As mismo, se utilizan iconos y mens para representar los recursos del sistema y poder realizar operaciones sobre los mismos, respectivamente. El usuario utiliza un ratn (o dispositivo equivalente) para interaccionar con estos elementos. Dado el carcter intuitivo de estas interfaces, y el amplio conocimiento que posee de ellas todo el mundo, no parece necesario entrar en ms detalles sobre su forma de trabajo.
Captulo 1 Sistemas Operativos

INTRODUCCIN Y CONCEPTOS 26

Intercambio de datos entre aplicaciones. Generalmente se le proporciona al usuario un mecanismo del tipo copiar y pegar (copy-and-past) para poder transferir informacin entre dos aplicaciones. Sistema de ayuda interactivo. Los sistemas de ayuda suelen ser muy sofisticados basndose muchos de ellos en hipertexto. 1.11.4. Interfaz del Programador. La interfaz del sistema operativo con el programador es la que recupera los servicios y llamadas al sistema que los usuarios pueden utilizar directamente desde sus programas. Esta es, quiz, una de las partes ms importantes de un sistema operativo, ya que recupera la visin que como mquina extendida tiene el usuario del sistema operativo.

Captulo 1 Sistemas Operativos

Potrebbero piacerti anche