Está en la página 1de 18

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona

Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

UNIDAD I

Los sistemas operativos son el corazn de toda computadora, El sistema operativo (SO) proporciona servicios a usuarios y programadores que permiten utilizar una computadora sin tener que tratar con los comandos de hardware de bajo nivel difciles de usar, proporciona interfaces relativamente uniformes para acceder a la amplia variedad de dispositivos con los que interacta una computadora, desde dispositivos de entrada/salida, como impresoras y cmaras digitales, hasta componentes inalmbricos de la red que permiten la comunicacin de las computadoras, Permite que los usuarios creen, gestionen y organicen diferentes tipos de archivos. Adems, la mayora de los SO modernos proporcionan interfaces grficas del usuario (graphical intefaces, GUI) a fin de permitirles una interfaz relativamente fcil de usar. 1.1 INTRODUCCIN Durante muchos aos, salvo por los programadores y los tipos raros obsesionados por los ordenadores("nerds), la mayora de las personas consideraba que los SO eran poco interesantes. Debido a un nmero de casos de alto perfil los SO ocasionalmente fueron noticia de primera plana en aos recientes. De repente, el sistema operativo es considerado por algunas personas como algo que controla todo lo relacionado con la informtica. Hay algunas opiniones bastante intensas acerca de lo que hacen a los SO aceptables en contraposicin con los SO defectuosos: tambin hay bastante desacuerdo acerca de cul debe ser la funcionalidad proporcionada por el SO. Mientras mucha gente cree que una compaa domina el mercado de SO. Otras personas afirman que el SO es cada vez menos importante: el buscador de internet es el SO. De hecho, hay una muy amplia variedad de tipos de SO, los cuales existen en algn nivel en todo dispositivo de computacin imaginable, incluyendo algunos capaces de sorprender a mucha gente. Por ejemplo: los asistentes digitales personales (PDA. por sus sigla, en ingls) cuentan con SO muy capaces, complicados y flexibles. La mayora de los dispositivos electrnicos que poseen cierta inteligencia tienen SO complicados, aunque de fcil uso, as como un sistema de software que los controla. El SO que alguna vez fue concebido como el mundo arcano de las tcnicas de gestin de procesos y gestin de memoria, en la actualidad ocasionalmente constituye un tema de conversacin de caf, bares y tiendas de computadoras. Actualmente mucha gente parece ser experta -o por lo menos tiene una opinin- en los SO.

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

Sitios sorprendentes (tal vez) en los que se puede encontrar un SO: 1. 2. 3. 4. 5. 6. 7. 8. 9. Asistentes digitales personales Cajas de control de TV por cable Juegos electrnicos Copiadoras Mquinas de fax Controles remotos Telfonos celulares Motores de automviles Cmaras digitales

Aunque tenemos nuestra opinin, intentamos permanecer detrs del revuelo publicitario -generado por personas pertenecientes al mbito de la comercializacin y ventas, as como por millones de usuarios informados- a fin de explicar los sistemas reales. Tambin emitimos nuestras propias opiniones cuando es necesario y explicamos por qu sostenemos tales convicciones. Proporcionamos muchos ejemplos de sistemas que se utilizan actualmente para demostrar conceptos. y sealamos lo bueno y lo malo sobre los diversos sistemas. Intentamos evitar las denominadas cuestiones religiosas como: cul SO es mejor: Windows o Mac-OS? O bien. Son UNIX y sus variantes como Linux mejores que ambos? En lugar de eso, indicamos cmo surgieron estos sistemas y lo que proporcionan a usuarios y programadores. 1.2 DE QUE SE TRATAN LOS SO En esta seccin proporcionamos un ejemplo simple -un sistema de juego manual- para ilustrar algunas de las funcionalidades bsicas con que debe contar un SO. Considere un sistema de juego electrnico manual, bastante barato pero que tenga una pantalla pequea, algunos botones y varios juegos. Aunque este sistema de juego puede no requerir un SO, quiz cuenta con uno. La razn ms importante es consolidar las funciones comunes necesarias para los diversos juegos instalados en el sistema de juego. Los juegos poseen algunas partes comunes. Por ejemplo, cada juego requiere informacin de entrada, la cual es suministrada por los botones, as como mostrar algo en la pantalla. Aunque estas acciones parecen fciles, requieren una programacin de software que no es tan sencilla. Parece fcil hacer que un botn provea cierta informacin: sin embargo, no olvidemos que el usuario puede oprimir dos botones a la vez: qu sucede en ese caso?
2

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

Tambin es probable que un juego barato no use botones sofisticados y costosos, de modo que hay ruido electrnico capaz de distorsionar la seal de entrada: cmo deben manejar esta situacin los juegos? La solucin fcil es tratar cada una de estas cuestiones comunes en un solo sitio. Por ejemplo, es posible leer cada vez que se oprime un botn, as como limpiar cualquier ruido, etc., en una rutina de software nica. Contar con una rutina de software read-the-button nica tiene la ventaja de proporcionar una interfaz consistente del usuario: todos los juegos tratan de la misma forma a la entrada mediante los botones. Tambin permite que la rutina ocupe espacio en un solo sitio del sistema de la memoria, en vez de ocupar espacio en cada juego individual. Y dnde debe ubicarse esa rutina readthe-button? Debe estar en el SO, donde cada juego que requiera leer un botn pueda llamar a esta rutina. El SO tambin debe manipular eventos inesperados. Por ejemplo, un usuario puede abandonar un juego a la mitad (cuando vaya perdiendo) y empezar Otro. Puede ser necesario que no haya reinicio del sistema de juego. La necesidad del usuario para cambiar de juego a juego (tarea a tarea) es natural e inesperada. De hecho, usuarios (de 5 aos de edad) pueden oprimir botones en momentos inesperados y la pantalla debe continuar actualizndose (recargando) mientras se est jugando, aun si se espera oprimir algn botn. Esto se denomina desfasaje o asincronicidad, que puede definirse informalmente como la ocurrencia de eventos al azar o en momentos inesperados, lo cual es una caracterstica muy importante inclusive en sistemas simples como un juego manual. Varios conceptos importantes del SO forman parte de este sistema de juego: cuando Se inicia un juego, alguna parte de su software puede cargarse en la memoria, mientras que otras partes pueden haberse cargado previamente en la ROM (read-only memory) o memoria fija:! la memoria dinmica se reserva para ser usada por el juego y es iniciada: es posible establecer temporizadores. Todo en un juego barato (aunque divertido)! Qu ms se espera de un SO? 1.3 VISTA DEL USUARIO CONTRA VISTA DEL SISTEMA DE UN SO Quiz el lector haya escuchado el viejo dicho: "Cada asunto tiene dos lados"(quiz debera ser "dos o ms lados"). La idea es que el hecho de intentar considerar alguna cuestin desde perspectivas distintas a menudo ayuda a comprenderla. Uno de los mtodos importantes para aprender algo nuevo es considerarlo desde perspectivas diferentes. Para un SO las dos perspectivas ms importantes son la vista del usuario y la vista del sistema. La vista de! usuario concierne a cmo los usuarios o los programas -los programas son los usuarios ms importantes del SO- utilizan el SO: por ejemplo, la forma en que un programa lee la pulsacin de una tecla. A la vista del sistema concierne la forma en que el software del SO ejecuta realmente la accin requerida: cmo obtiene las pulsaciones de las
3

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

teclas, se para algunas teclas especiales como shift y las pone a disposicin del usuario o del programa.

1.3.1 Vista de usuarios y tipos de usuarios A menudo el trmino usuario es demasiado vago, especialmente para personas cuyo rol en la computacin es crtico, por lo cual es importante describir primero los diversos tipos de usuarios. Tratar de identificar el rol de un usuario de un SO no es tan fcil, pues hay varios tipos de usuarios. Principalmente queremos distinguir entre los usuarios finales, los programadores de aplicaciones, los programadores del sistema y los administradores del sistema. En la tabla l.1 Se muestran algunas de las cuestiones ms importantes acerca de lo que el SO debe proporcionar a cada uno de los tres tipos principales de usuarios. Por supuesto, en tales cuestiones hay superposiciones: simplemente estamos intentando mostrar cmo estos puntos de vista divergen algunas veces. Una complicacin adicional es el hecho de que algunas veces los usuarios desempean varios de estos roles e incluso los desempean todos. Tales usuarios a menudo se encuentran en un conflicto de necesidades. Usuarios de aplicaciones (o usuarios finales). Este grupo nos incluye a todos: gente que usa (o ejecuta) programas de aplicacin o del sistema. Cuando usamos un procesador de palabras, un buscador de la red, un sistema de correo electrnico o un visor de multimedia, somos un usuario de tal aplicacin. Como usuarios esperamos una respuesta rpida y confiable (al hecho de oprimir teclas o al movimiento del ratn), una vista de un usuario consistente (cada tipo de comando -como desplazarse o salir de una aplicacin- debe hacerse en forma semejante) y otras caractersticas que dependen del tipo especfico de SO. En la tabla 1.1 se enumeran otras necesidades. A este grupo de usuarios con frecuencia se les denomina simplemente usuarios, o algunas veces usuarios finales. Los programadores de aplicaciones. Este grupo incluye a quienes escriben programas de aplicaciones, como procesadores de palabras o sistemas de Correo electrnico. Los programadores son muy exigentes del SO: "cmo leo y escribo en un archivo'?". "cmo obtengo la pulsacin de una tecla por parte de un usuario?". "cmo presento este cuadro'''' son preguntas tpicas que los programadores se plantean cuando aprenden l usar un nuevo SO. Las facilidades con que cuenta son la vista de los programadores acerca del SO. Algunas veces se denominan llamadas al sistema o interfaz de programacin de aplicaciones (APL por sus siglas en ingls). Tambin pueden aparecer como funciones de la biblioteca de idiomas o algunas veces justo como paquetes de clases. Los programadores tambin desean que el software que desarrollan sea fcilmente transferible a otras plataformas.

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

TABLA 1.1 Intereses de varias ciases de usuarios


Fcil de usar y aprender. Que se adapte al estilo del usuario para hacer las cosas. Que tenga una respuesta animada a la entrada. Que proporcione muchas entradas visuales. Usuarios finales Que est exento de sorpresas desagradables (por ejemplo, borrar un archivo sin advertir previamente). Que cuente con formas uniformes de hacer la misma cosa (por ejemplo, mover un cono o desplazarse por una ventana en sitios distintos). Que cuente con formas alternas de hacer una cosa (por ejemplo, a algunos usuarios les gusta usar el ratn, a otros les gusta usar el teclado). Que tenga una forma fcil para que los programas accedan a llamadas de SO de bajo nivel (por ejemplo, leer pulsaciones del teclado, dibujar en la pantalla, obtener la posicin del ratn).

Que proporcione una vista del programador consistente del sistema. Programadores de aplicaciones Que sea sencillo usar facilidades y servicios del SO de nivel superior (por ejemplo, crear ventanas nuevas o leer desde y escribir en la red).

Capacidad de transferencia a otras plataformas Facilidad para crear programas correctos.

Facilidad para corregir programas incorrectos. Programadores de sistemas Facilidad para mantener programas.

Facilidad para expandir programas existentes Fcil adicin o remocin de dispositivos como discos, escneres, accesorios multimedia y conexiones a la red. Que proporcione servicios de seguridad al SO para proteger a los usuarios, al sistema y a los archivos de datos. Facilidad de actualizacin a nuevas versiones del SO.

Gestores y administradores del sistema

Facilidad para crear y gestionar cuentas de usuario.

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

Que la respuesta media sea aceptable y predecible.

Que el sistema sea asequible

Programadores de sistemas. Se trata de quienes escriben software -programas o componentes- estrechamente relacionado con el SO. Ejemplos de programas del sistema son: una utilidad que muestra el estado de la conexin de una red de computadoras o un controlador instalable para una pieza de hardware. Los programadores de sistemas necesitan comprender en detalle el funcionamiento interno del SO. En muchos casos los programas de sistemas requieren acceder a estructuras de datos especiales del SO o a llamadas privilegiadas del sistema. Aunque los diseadores de SO algunas veces se preocupan por la posibilidad de transferencia a otras plataformas, a menudo no lo estn -se encuentran ocupados en desarrollar un conjunto especfico de funciones para una plataforma especfica y la capacidad de transferencia no constituye su inters-. Administradores del sistema. Este grupo incluye a quienes gestionan facilidades de la computadora, y por tanto son responsables de instalar y actualizar el SO, as como otros programas y facilidades de sistemas. Tambin son responsables de crear y mantener las cuentas de los usuarios, as como de proteger al sistema. Deben comprender en detalle cmo se instala y actualiza el SO, y cmo interacta con otros programas y utilidades. Tambin deben comprender las caractersticas de seguridad y autorizacin del SO a fin de proteger de manera efectiva su sistema y a los usuarios. 1.3.2 Vista del sistema La vista del sistema se refiere a cmo el SO proporciona realmente los servicios. En otras palabras, se refiere a los trabajos internos del SO. Esta vista es menos comn. A menudo slo pocas personas, como los diseadores y los implementadores del SO, comprenden o les importan los trabajos internos de un SO. En efecto, esta informacin a menudo es considerada secreta por las compaas que producen y venden de manera comercial sistemas operativos. Algunas veces los trabajos internos globales de las partes fundamentales del sistema -gestin de archivos, ejecucin de programas o manipulacin de la memoria- pueden describirse para ayudar a que los programadores comprendan el uso de tales subsistemas. En algunos casos todo el cdigo fuente de un SO est disponible. Estos sistemas se denominan sistemas de fuente abierta. La mayor parte de este libro est relacionada con el cmo: cmo el sistema ejecuta un programa, crea un archivo o presenta una grfica. Para comprender el "cmo" verdadero los detalles internos- describimos algoritmos y mtodos competentes a fin de implementar
6

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

las funciones del SO. A continuacin ilustramos la vista (o \vistas) del sistema con dos ejemplos: seguimiento del ratn y del cursor, y la gestin de operaciones con archivos. Aunque estos ejemplos pudieran parecer algo complicados, sirven para ilustrar la forma en que el SO est implicado en prcticamente todas las acciones ejecutadas por el usuario de una computadora.

1.3.3 Un ejemplo: el movimiento de un ratn (y el cursor del ratn) Aunque el movimiento del apuntador (o cursor) de un ratn sobre una pantalla al desplazar el ratn (o algn otro dispositivo apuntador como una almohadilla o un trackball) parece directo, ilustra las muchas vistas de un SO. La figura 1.1 muestra este proceso. Cuando el dispositivo apuntador se mueve, genera un evento de hardware denominado interrupcin, que manipula el SO. El SO observa los movimientos del ratn en trminos de algunas unidades especficas del hardware: es decir, las lecturas son en nmero de pulsos generados, en lugar de serlo en milmetros o pulgadas. sta es la visin de bajo nivel del sistema. La lectura real del software del movimiento del ratn es parte del SO, y se denomina controlador del dispositivo ratn. Este controlador de dispositivo lee la informacin de bajo nivel del movimiento del ratn y otra parte del SO la interpreta, de modo que pueda ser convertida en una visin de nivel superior del sistema, como coordenadas en la pantalla que reflejan los movimientos del ratn. En el "otro lado" o vista est la cuestin: qu ve el usuario? La vista del usuario es que el cursor se desplaza de manera continua sobre la pantalla y que a medida que el ratn se mueve distancias ms grandes cada vez ms rpido tambin el movimiento en la pantalla parece ms rpido. Entre estas vistas se encuentra la vista del programador de aplicaciones. Cmo obtengo la informacin del movimiento del ratn a fin de usarla y mostrarla en mi aplicacin? Otra cuestin es cmo esta informacin sobre el movimiento del ratn se presenta al programador de aplicaciones. sta es la visin de nivel superior del sistema mencionada previamente. Y para completar estas vistas, un bit permite volver a la vista del sistema. Qu aplicacin obtiene este movimiento del ratn si hay abiertas varias ventanas? Podra ser necesario que los movimientos del ratn permanezcan en una cola si hay movimientos mltiples antes que la aplicacin los recupere. Los movimientos podran inclusive perderse si el SO est ocupado haciendo otras cosas -por ejemplo, cargando una pgina web a travs
7

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

de una conexin en la red- y no puede recibir oportunamente la entrada del controlador del dispositivo.

Figura 1.1 El cursor que sigue el movimiento del ratn.

1.3.4 Otro ejemplo (mas grande): archivos Algunas veces la vista del usuario final ms crtica de un SO es el sistema de archivos: en Particular, los nombres de los archivos. Los nombres de archivos pueden contener espacios? Cun largos pueden ser? Es vlido usar maysculas y minsculas? Son tratados como si tuvieran caracteres iguales o distintos? Y qu hay respecto a los caracteres que no estn en ingls o con la puntuacin? Un SO puede incluso ser llamado bueno o malo simplemente porque no se usan nombres de archivo largos o porque no se distingue la diferencia entre maysculas y minsculas. En la vista del programador de aplicaciones, el sistema de archivos es una parte crtica frecuentemente usada del sistema. Proporciona comandos para crear un nuevo archivo, usar un archivo existente, leer o anexar datos a un archivo y otras operaciones con archivos. Incluso puede haber diferentes tipos de archivos proporcionados por el sistema. La vista del sistema de archivos es tan extensa que suele dividirse en subpartes: nombres de archivos y manipulacin de nombres (servicios del directorio), servicios de archivos como localizacin y mapeo del nombre de un archivo en sus datos (asignacin y almacenamiento de archivos), mantener partes de archivos abiertos en la memoria principal
8

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

a fin de acelerar el acceso a sus datos (envo de archivos a la memoria y almacenamiento de archivos en cach) y la gestin real de los dispositivos de almacenamiento (programacin del disco). Por ejemplo, supongamos que un usuario escribe el nombre de un archivo que se copiar de un CD a un disco duro. El programa podra requerir primero ver si ese archivo existe en el CD, y en caso afirmativo sobrescribir un archivo con ese nombre en el disco duro, encontrar espacio en l para almacenar los datos y encontrar y obtener los datos del CD, que han sido grabados en piezas (sectores) que sern copiadas. Y todo esto debe efectuarse en unos cuantos segundos o incluso en una fraccin de segundo.

Tabla 1.2 Pasos para copiar un archivo de un CD a un disco duro.


Comprueba que el archivo est en el CD. Comprueba que el archivo est en el disco duro: confirma la sobrescritura. Crea el nombre del archivo en el directorio del disco duro. Encuentra espacio para el archivo en el disco duro. Lee sectores de datos del CD. Escribe sectores de datos en el disco duro. Actualiza el directorio del disco duro. Actualiza la informacin del espacio en la unidad de disco duro. Ejecuta todo lo anterior en segundos (o menos!)

1.4 ALGUNOS TRMINOS, CONCEPTOS BSICOS E ILUSTRACIONES DEL SO 1.4.1 Terminologa bsica Sistema operativo (o simplemente sistema). Aunque podemos proporcionar distintas definiciones basadas en las vistas diferentes de un SO, la siguiente definicin informal es un buen punto de partida: el SO es una coleccin de uno o ms mdulos de software que gestionan y controlan los recursos de una computadora u otro dispositivo de cmputo o
9

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

electrnico, y proporciona a los usuarios y programas una interfaz para utilizarlos. Los recursos gestionados incluyen memoria, procesador, archivos, dispositivos de entrada o salida, etctera. Dispositivo. Un dispositivo es una pieza de hardware conectada al hardware del sistema de cmputo principal Discos duros, DVD y monitores de video son dispositivos tpicos gestionados por un SO. Muchos dispositivos cuentan con una interfaz electrnica (hardware) especial denominada dispositivo controlador, que ayuda a conectar un dispositivo o un grupo de dispositivos semejantes a un sistema de cmputo. Algunos ejemplos incluyen controladores de disco duro y controladores de monitores de video que suelen cumplir normas de la industria como SCSI, SATA y otros acrnimos comunes pero crpticos. Los dispositivos controladores son el aglutinante de hardware que conecta los dispositivos al hardware del sistema de cmputo principal, casi siempre por medio de un bus. Controlador de dispositivo. Este dispositivo es una rutina de software que forma parle del SO, y Se utiliza para comunicarse con un dispositivo y controlarlo a travs de su dispositivo controlador. Kernel o ncleo. Este trmino suele referirse a la parte del SO que implementa funcionalidad bsica y siempre est presente en la memoria. En algunos casos todo el SO es creado como un ente monoltico y esta unidad completa se denomina kernel o ncleo. Servicio. Los servicios son funciones que el kernel del SO proporciona a los usuarios, principalmente a travs de API mediante llamadas al SO. Estos servicios pueden agruparse en forma conveniente en categoras basadas en su funcionalidad: por ejemplo, servicios de manipulacin de archivos (creacin. lectura. copiado), servicios de asignacin de memoria (obtencin, liberacin) o servicios diversos (obtencin de tiempo del sistema). La clave para que un programador comprenda un sistema es comprender los servicios del SO proporcionado por el sistema. Utilidad. stos son programas que no forman parte del ncleo (o kernel) del SO, sino que trabajan estrechamente con d kernel para facilitar el uso o el acceso a la informacin del sistema. Un ejemplo de utilidad es el shell o intrprete de comandos. La utilidad shell proporciona una interfaz del usuario a muchos servicios del sistema. Por ejemplo, solicitudes del usuario como listar los nombres de archivos en un directorio, ejecutar un programa o salir (/ogging out) pueden, todas, ser tratadas por el shell. El shell puede invocar a otras utilidades para efectuar realmente el trabajo; por ejemplo, el listado de archivos en un directorio algunas veces es un programa utilidad en s mismo.
10

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

1.4.2 Qu tal algunas imgenes? La figura 1.2 es una representacin simplificada de una pequea computadora personal que muestra algunos dispositivos bsicos conectados a la memoria de la computadora y a la CPC (procesador). El programa (o ncleo) del SO incluye varios controladores de dispositivos que manipulan los perifricos (dispositivos) del sistema bajo control de la CPU. Por ejemplo, parte del contenido de la memoria puede transferirse al controlador de video para su exhibicin en el monitor, o el contenido de una parte del disco (un sector) puede transferirse al controlador de disco y finalmente a la memoria (para una operacin de lectura del disco). La figura 1.3 es una imagen simplista de parte de un SO. El SO controla (o gestiona) los recursos del sistema, as como los discos, los teclados, de monitor de video y otros dispositivos. Controla la asignacin de memoria y el uso de la CPU; al decidir qu programa ejecutar. Proporciona servicios al shell y a otros programas por medio del uso de llamadas al sistema. Tambin proporciona una abstraccin del hardware al ocultar detalles complejos de dispositivos de hardware de los programas. La figura 1.3, comn para ilustrar los SO, es una representacin lgica, no fsica. Por ejemplo, el ncleo del SO reside fsicamente dentro de la unidad de memoria, y corre (se ejecuta) en la CPU. As, las flechas entre el ncleo -que es software- y los dispositivos que son hardware- representan un control lgico, no fsico.

Figura 1.2 Hardware: representacin simple de una pequea computadora personal.

11

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

Figura 1.3 Representacin simple del software del SO en relacin con el hardware.

Las figuras 1.4 representan un enfoque por capas del SO donde el crculo exterior representa la capa utilidades/aplicaciones que accede a la capa del ncleo del SO, que a su vez gestiona el acceso a la capa de hardware.

1.4.3 Ms cerca de la realidad: el SO de una computadora personal La figura 1.5 muestra ms detalles de un SO simple de una computadora personal o PC. El SO tiene dos componentes adicionales que no aparecen en la figura 1.3: controladores de dispositivos y BIOS (sistema bsico de entrada/salida, por sus siglas en ingls). El BIOS abstrae el hardware, es decir, gestiona dispositivos comunes, como teclados, video bsico y el reloj del sistema. Esto permite que la parte principal o de nivel superior del SO trate con todos los dispositivos del mismo tipo -por ejemplo, todos los teclados- de la
12

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

misma manera. As, el ncleo del SO no cambia, sin importar que el teclado tenga 88, 112 o cualquier otro nmero de teclas, e incluso en casos en los que las teclas no aparecen donde deberan estar en otros teclados, debido a caracteres en idiomas diferentes o a teclas de acentuacin. Los controladores de dispositivos tambin proporcionan una abstraccin semejante para dispositivos similares. Por ejemplo, un controlador del dispositivo DVD puede ser suministrado por un fabricante de dispositivos a fin de contar con una vista abstracta o comn del dispositivo DVD al SO, de modo que ste no tenga que variar con cada idiosincrasia de controladores de DVD, sin tomar en cuenta quin es el fabricante. En la siguiente seccin abordamos con ms detalle lo que es importante a fin de proporcionar capas de abstraccin al disear un SO. Figura 1.5 Modelo del SO de una PC (sistema pequeo).

1.4.4 Por qu las capas de abstraccion? Buena pregunta. En los inicios de la poca de las computadoras personales, los aficionados se divertan ensamblando y construyendo el hardware, y haciendo funcionar programas simples, normalmente escritos en lenguaje ensamblador o en lenguaje de mquina. Esto era una buena herramienta de aprendizaje para algunas personas, aunque la programacin era muy tediosa. Sin embargo, la gente deseaba disfrutar la experiencia de escribir programas ms interesantes y, por tanto, ms largos y complicados. As, se requeran mejores herramientas, como editores, fciles de usar y compiladores o intrpretes para lenguajes de alto nivel. Para los usuarios finales, el deseo era usar la computadora como herramienta de negocios o productividad. Estos usuarios necesitaban procesamiento de palabras, hojas de clculo y software de comunicaciones. Ciertamente, se construan muchos sistemas de
13

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

hardware para computadora bastante diferentes. Aunque tambin haba varias computadoras semejantes pero no idnticas, construidas por muchos fabricantes. Estos sistemas podan contar con una CPU elaborada por el mismo fabricante o una CPU compatible con el mismo conjunto de instrucciones. Sin embargo, podan tener dispositivos de video distintos. Por ejemplo, un sistema poda tener un dispositivo semejante a una terminal que estaba conectado a un puerto en serie, mientras otro poda contar con un controlador de video integrado con muchas capacidades para elaborar grficas avanzadas. Los teclados podan diferir tpicamente en cuanto a teclas de funcin o "flecha" o a teclas de movimiento del cursor, con la adicin o remocin de otras teclas. A fin de que los programadores pudiesen crear programas ejecutables en estos sistemas diferentes con cambios menores o ningn cambio al programa cuando se moviera a otros sistemas, el SO proporcionaba la misma interfaz al hardware para todos los distintos dispositivos soportados por l. Por ejemplo, un programa poda leer el pulso de una tecla desde un teclado sin importar qu tipo de teclado fuera por medio de una llamada al sistema que leyese una tecla. El SO Se hara cargo ele traducir las teclas ubicadas en sitios distintos en teclados diferentes o que Se hubieran codificado de otra manera. A fin de evitar complicaciones y costo por el hecho de tener varias versiones del SO para teclados, monitores de video y discos diferentes, entre otros, el SO se dividi en una parte que estaba adaptada a los distintos dispositivos de hardware (el BIOS y controladores de dispositivos) y una parte que permaneca igual para todo el hardware (la cual se muestra como el ncleo en la figura 1.5). Esta tcnica ele dividir trabajo complicado en varias capas o niveles es una tcnica establecida de software usada en grandes y complicados sistemas de software incluyendo los SO. As, adaptar un SO a un nuevo sistema de cmputo compatible con diferentes dispositivos implicaba modificar (o escribir) un BIOS, pero usando el mismo mdulo para el resto del ncleo y los mismos programas y utilidades. Esto era una idea bastante atractiva pan, todo mundo: usuarios, fabricantes y escritores de SO. Surga un problema cada que un fabricante de perifrico de computadora (por ejemplo, un fabricante de video de tarjetas) diseaba un nuevo dispositivo y deseaba venderlo a los usuarios a fin de que pudieran actualizar su computadora a diseos ms recientes de hardware. A menudo, el BIOS existente en la computadora era instalado en la ROM (memoria de slo lectura), y su reemplazo poda resultar difcil y costoso. La solucin a este problema fue la creacin de un BIOS modificable que permita que los controladores de dispositivos fueran cargables en el momento en que el SO se cargaba en la memoria. Contar con un cdigo BIOS que sea posible sustituir al arranque del sistema permite agregar nuevas
14

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

caractersticas a la computadora o sustituir caractersticas en el BIOS con nuevo software, y quiz soportar nuevas funciones en hardware existente. 1.5 PEQUEO DESVI HISTRICO

1.5.1 Origen de los sistemas operativos Antes de la aparicin de las computadoras personales, por supuesto haba computadoras ms grandes. Pronto estas mquinas fueron demasiado grandes y costosas, primitivas segn estndares modernos, y haba muy pocos programadores. Los programas estaban limitados en cuanto a sus capacidades porque la memoria principal era muy pequea, los procesadores de la CPU eran demasiado lentos y slo existan unos cuantos dispositivos de entrada y salida. Uno de los primeros sistemas tpicos de computadora hubiera podido contar con unos miles de palabras de memoria principal, un procesador que ejecutara varios miles de instrucciones por segundo y un dispositivo teletipo para entrada/salida. Las capacidades limitadas de estas primeras computadoras requeran bastante cuidado y programas bien pensados, que en su mayora se escriban en el cdigo bsico de mquina de la computadora, en lenguaje de mquina o en lenguaje ensamblador. Estos programas eran sorprendentes en el sentido de que en unos cientos o miles de instrucciones de mquina lograban una cantidad enorme de trabajo. Sin embargo, todos enfrentaban necesidades semejantes: cmo puede un programa imprimir alguna salida'? Cmo es posible cargar un programa en la memoria para iniciar su ejecucin? Estas necesidades -la necesidad de cargar programas en la memoria, ejecutar un programa, obtener datos de entrada y producir datos de salida- eran la motivacin para crear los primeros SO. En aquella poca inicial. Los escasos programadores en un sistema se conocan entre s y podan compartir rutinas (cdigo de programa) ya depuradas para simplificar el trabajo de programacin. Estas rutinas compartidas (por ejemplo. "imprimir el valor del registro A en el teletipo") terminara por unirse en una biblioteca que poda combinarse (vincularse) con un programa de aplicacin para formar un programa completo a ejecutar. Estas primeras computadoras eran sistemas de usuario nico, es decir, que slo un usuario -y un solo programa- poda ejecutarse en un momento dado. Por lo regular los programadores podan reservar el uso de la computadora en pequeos bloques temporales, tal vez incrementos de entre l0 y 15 minutos. Un programador poda usar este tiempo para ejecutar o depurar un programa. Debido a que las computadoras eran costosas y el tiempo de computadora era muy valioso, a menudo bloques ms grandes de tiempo estaban disponibles slo a mitad de la noche o temprano en la maana, cuando las cosas estaban ms tranquilas, haba menos administradores alrededor y era posible hacer mucho ms que
15

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

durante el da. Esta tradicin, que inici en los primeros das de la computacin, es una de las pocas que han prevalecido hasta hoy! Los programas, una vez escritos y ensamblados, se vinculaban o ligaban con rutinas de utilidad para entrada, salida, funciones matemticas, formateo de la impresin y otras tareas comunes, en un programa ejecutable listo para cargarse en la memoria y ejecutarse. El programa poda almacenarse en cinta de papel perforado o en tarjetas perforadas. El hardware de la computadora era capaz de saber cmo empezar a leer desde el dispositivo de entrada, aunque slo poda cargar la primera tarjeta o el primer bloque de la cinta. As, ese bloque deba incluir una pequea rutina capaz de cargar el resto de la aplicacin en la memoria. Esta rutina corta se denomina cargador. A su vez, el cargador deba leer el programa ejecutable del programador y colocarlo junto con las rutinas de utilidad necesarias en la memoria en una ubicacin especfica, normalmente en direccin de la primera memoria o en alguna ubicacin fija especial. Luego, deba transferir la ejecucin por medio de una llamada ramificada o una "subrutina"- al programa que haba cargado. La cinta o el mazo de tarjetas del programa cargable poda verse como se ilustra en la figura 1.6. El delimitador END indica a ese cargador que no hay ms rutinas a cargar, ya que a continuacin de las rutinas puede haber registros de datos. Como los programadores tenan tiempo para desarrollar ms rutinas de utilidad, el cargador creci en forma ms sofisticada. Pronto, los cargadores fueron capaces de cargar programas que se haban traducido (compilado) a partir de lenguajes de programacin de nivel superior. A medida que creca el tamao de los cargadores, las rutinas de utilidad y los programas de usuarios, los mazos de tarjetas o las cintas de papel se volvieron muy grandes (y desafortunadamente se volvi comn dejar caer un mazo de tarjetas o romper una cinta de papel). Estos cargadores y rutinas de utilidad se convertiran en el inicio de los primeros SO, que a menudo se denominaban monitores.

Figura 1.6 Programa de aplicacin con cargador y utilidades semejantes a un SO.

16

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

1.5.2 Qu debe hacer (o que debe soportar) un sistema operativo? Desde los primeros das de la computacin hasta hoy ha habido un intenso debate -que va de la discusin amable a la discusin poltica o casi religiosa- sobre lo que debe hacer un SO. Los dos puntos de vista extremos de este debate pueden denominarse punto de vista maximalista y punto de vista minimalista. El primero argumenta que el SO debe incluir tanta funcionalidad como sea posible, mientras el punto de vista minimalista sostiene que slo la funcionalidad ms bsica debe formar parte del SO. A partir de los primeros sistemas surgi la pregunta: "Es necesario incluir en mi programa todas las rutinas para entrada y salida? Ni siquiera leo desde el lector de tarjetas". Incluir demasiadas rutinas -cualesquiera que no sea necesaria- hace ms pequea la memoria para mi programa, y resulta demasiado pequea para empezar. Cmo es posible obtener justamente lo que se necesita? Las rutinas matemticas, como los programas para realizar aritmtica de punto flotante, pueden efectuarse una vez en el SO en vez de incluirlas por separado en el programa de cada usuario. Pero entonces todo programa incurre en el gasto general de la memoria adicional ocupada por estas rutinas en el SO, incluso programas como aplicaciones de contabilidad en las que no se usa aritmtica de punto flotante. En tiempos ms recientes, el debate relacionado con qu incluir en el SO contina. Por ejemplo, ahora suele considerarse que una interfaz del SO amigable para el usuario cuenta con un dispositivo apuntador -como un ratn, un trackball o un cojn- y algn tipo de ventanas de pantalla con mens desplegables. El hecho de que la interfaz deba formar parte del SO -proporcionando as a todas las aplicaciones un "ver y sentir" semejante- o del shell -a fin de permitir que cada usuario decida la apariencia particular que desea- es una de las cuestiones actuales del debate acerca de lo que debe incluir el SO. Para ser justos, como ocurre en tantas cuestiones candentes en disputa, tanto el lado maximalista como el minimalista tienen razn. Las tendencias histricas no son claras. En algunos casos los SO han sido ms pequeos, simples y configurables, y, en otros, exactamente lo contrario: ms grandes, funcionales y restrictivos. Esta cuestin de qu funcionalidad debe ir dnde (en el ncleo del SO o no) ha originado distintas posibilidades de diseo para los SO. 1.6 Resumen En esta unidad primero introdujimos algo de la funcionalidad bsica de los sistemas operativos. Proporcionamos unos cuantos ejemplos sencillos para ilustrar por qu los SO
17

INSTITUTO TECNOLGICO DE TIJUANA SUBDIRECCIN ACADMICA Departamento de Sistemas y Computacin Profesor: Reynaldo Andrs Salas Carmona
Carrera de INGENIERA EN SISTEMAS COMPUTACIONALES Perodo: Enero - Junio 2011

SISTEMAS OPERATIVOS

son tan importantes. Luego analizamos los diferentes puntos de vista de lo que hace un SO al considerar el SO desde dos perspectivas: la del usuario y la del sistema. Luego presentamos algo de terminologa y conceptos bsicos, y proporcionamos algunas figuras para ilustrar componentes tpicos de SO simples. Luego comenzamos a considerar unas cuantas arquitecturas de uso comn para realmente crear SO, y analizamos la idea de abstraccin, que es fundamental para el diseo exitoso de SO. Concluimos con un una perspectiva histrica sobre los orgenes de los SO.

18

También podría gustarte