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

Sistemas Operativos Introduccin

Metodologa del Trabajo : Para este curso de Sistemas Operativos, la tcnica de


trabajo propuesta ser la siguiente:Lea detalladamente el material de lectura propuesto para las unidades de la asignatura, los cuales estarn accesibles en la plataforma educativa, y realice en el foro correspondiente a la misma todas sus preguntas y dudas sobre lo all expuesto. Al final de cada unidad, puede existir una propuesta de actividades para ser realizada a los fines de integrar los conceptos dictados. Esta propuesta puede encontrarse dentro del propio contenido de la unidad, o bien como anexo. En la actividad prctica se agregarn un conjunto de ejercicios complementarios de mayor profundidad que los ejemplos mostrados en el desarrollo de la lectura. Luego de la lectura del contenido de cada unidad, se recomienda no demorar en tiempo la realizacin de la autoevaluacin, si correspondiera, ya que las mismas tienen fechas lmites de plazo mximo. Se recomienda al alumno realizar su propio diccionario de trminos tcnicos computacionales en base a los que surjan del material de lectura, del uso del software o de la lectura de las ayudas. Es importante manejar el vocabulario o jerga informtica para interpretar de mejor manera todo el material de informacin computacional o tcnico. Tenga en cuenta que las guas de estudio prcticas le permitir al alumno adquirir habilidades y ejercitacin para los posteriores trabajos prcticos y evaluaciones, por lo que se recomienda prestarle especial atencin y realizar lo propuesto en las ellas. Adems, a medida que se avance en la lectura de las unidades, notar una serie de trucos o "atajos" en el uso y el conocimiento del software. Le recomendamos aplicarlos y seguir profundizando sobre tpicos que no se explicitan o aclaran, por una cuestin de tiempo, en el desarrollo del presente tema. Se le recuerda que deber seguir incrementando su glosario de trminos tcnicos.

Objetivos
_ Definir que es un Sistema Operativo _ Conocer las diferentes generaciones de Sistemas operativos _ Conocer las diferentes clasificaciones de los mismos. _ Identificar su propio Sistema Operativo. _ Comprender el concepto de uso. _ Entender el concepto de dispositivos perifricos. _ Distinguir las partes o mdulos componentes de un Sistema Operativo.

Introduccin : Empezaremos por los conceptos bsicos necesarios para una perfecta
comprensin del resto de los temas. Se define, en primer lugar, el concepto de Sistema Operativo, para pasar luego a una breve resea histrica y a los modos de trabajo que en la actualidad se estn realizando. Pero antes introduciremos una serie de conceptos bsicos de uso frecuente en ambientes informticos que deberemos conocer, al menos genricamente, en principio para lograr el entendimiento de los temas que desarrollaremos y que encontraremos en el resto de este apunte y que hemos credo conveniente adelantar para evitar la falta de entendimiento de los mismos.La mayor parte de las definiciones estn basadas en recomendaciones dadas en los es tndares de calidad de software del Institute of Electrical and Electronic Engineering (IEEE). Estos conceptos se han separado en cuatro grupos o categoras, que pasamos a exponer seguidamente.

Terminologa General :En primer lugar, exponemos conceptos y terminologa general, comn a todas las disciplinas que giran en torno a la informtica. El primer bloque de conceptos se refiere a elementos de software muy utilizados, con terminologas que en ocasiones dependen del lenguaje de programacin en el que estn escritos. Algoritmo (Algorithm). Conjunto de acciones correctamente definidas para la solucin de un problema en un nmero finito de pasos. Programa (Program). Conjunto de sentencias escritas en un determinado lenguaje para satisfacer un algoritmo en una compu. Un programa puede ser ejecutado de forma directa. Subprograma (Subprogram). Conjunto de sentencias que realizan parte de un algoritmo y slo pueden ser ejecutadas por llamada desde un programa o algn otro subprograma. Subrutina (Subroutine). Secuencia de instrucciones que pueden ser invocadas por una instruccin de llamada (call) desde otro programa, recibiendo y devolviendo valores de entrada y salida a travs de parmetros. Funcin (Function). Secuencia de instrucciones que pueden ser llamadas por su nombre para evaluar una expresin o funcin generalmente matemtica, devolviendo un valor al punto de llamada. Procedimiento (Procedure). Subprograma que realiza parte de un algoritmo recibiendo y entregando valores a travs de parmetros y cuya ejecucin est supeditada a llamada por sunombre. Es sinnimo de subrutina. Rutina (Routines). Porcin de programa que realiza una tarea especfica de uso frecuente. Sonrutinas las funciones, procedimientos, subprogramas y subrutinas. Corrutinas (Coroutine). Dos o ms mdulos que se pueden llamar entre s, pero que no estn ligados por relaciones de subordinacin. Parmetro (Parameter). Variable que se utiliza para pasar valores entre las rutinas de un programa. Variable (Variable). Elemento de memoria al que se hace referencia por un nombre simblico y se utiliza en un programa o rutina para almacenar un dato que puede variar. Constante (Constant). Elemento de memoria al que se hace referencia por un nombre simblico,utilizndose para almacenar un dato que no puede variar. Puntero (Pointer). Identificador que indica la localizacin de un dato por su posicin o direccin. Cdigo reubicable (Relocatable code). Cdigo mquina en el que se necesita convertir las direcciones relativas en absolutas antes de su ejecucin en la computadora. Interactivo (Interactive). Sistema en el que cada accin del usuario en el terminal provoca una respuesta casi inmediata. Tambin se conoce como conversacional. Interfaz (Interface). Elemento compartido entre dos partes para que interacten o se comuniquen entre s. Se puede considerar como las reglas existentes para establecer dicha comunicacin. En este segundo bloque de terminologa general, aparecen conceptos referidos a personas que utilizan las computadoras con determinadas caractersticas. Usuario (User). Persona que utiliza la computadora para realizar un trabajo y obtener de l unos resultados. Superusuario (Superuser). Usuario que tiene acceso a cualquier punto del sistema sin restricciones y cuenta con todos los privilegios. Usuario privilegiado (Privileged User). Usuario que cuenta con ciertos privilegios para realizar algunas funciones o acceder a cierta informacin no accesible al resto de usuarios. Usuario no privilegiado (Non privileged user). Usuario que slo puede acceder a su propia informacin y a la que le permitan los dems. Operador (Operator). Persona especializada y dedicada a manipular la computadora con objeto de realizar determinados trabajos de accionamiento y control de los equipos. Programador (Programmer). Persona especializada y dedicada a codificar programas en lenguajes de alto o bajo nivel para ser ejecutados en computadora. Otras misiones de los

programadores son el mantenimiento y documentacin de los programas. Podemos diferenciar dos tipos de programadores: a) Programador de aplicaciones (Applications programmer). Es el encargado de codificar programas para los usuarios finales. En general suelen desarrollar aplicaciones compuestas por uno o ms programas sin privilegios especiales. b) Programador de sistemas (Systems programmer). Es el encargado de desarrollar programas y utilidades del sistema operativo. Se necesita mayor cualificacin que para la programacin de aplicaciones. Administrador del sistema (System administrator). Persona tcnica encargada de gestionar el sistema: contabilidad, usuarios, permisos, etc. Es superusuario y en sistemas operativos sin esta figura es un usuario privilegiado con todo tipo de privilegios. Otros conceptos generales son: Poltica (Policy). Define cul va a ser la operatividad del sistema operativo. Un ejemplo de la poltica del sistema operativo es la existencia o no de gestin de prioridades. Mecanismo (Mechanism). Define cmo se debe llevar a cabo la poltica del sistema operativo. Un jemplo en este caso es el algoritmo de planificacin del procesador de acuerdo con las prioridades establecidas. Emulador (Emulator). Hardware, software o firmware que imita todo o parte de un sistema virtual haciendo parecer que existe realmente.

Conceptos Hardware : En este apartado se relacionan y definen todos aquellos elementos de hardware que, no siendo objeto de los sistemas operativos, s es necesario tener al menos un concepto bsico de los mismos: Bit (Dgito binario - Binary digit). Unidad mnima de informacin tratada por una computadora. Puede tomar dos valores: 0 o 1. Byte (Octeto). Conjunto de 8 bits con el que la mayora de los sistemas de codificacin pueden tratar un carcter. Palabra (Word). Grupo de bits que una computadora maneja como una unidad y forman la unidad bsica de operacin del procesador. En la actualidad los tamaos ms corrientes son 32 bits y 64 bits. Sealizador (Flag). Indicador que seala la aparicin de un error, estado u otra condicin especificada. En general se refiere a un bit, aunque puede ser un byte o palabra. Pila (Stack). Conjunto de datos al que se accede segn la poltica de primero en entrar, ltimo en salir. Puntero de pila (Stack pointer). Registro cuyo contenido es la direccin del ltimo elemento que entr en la pila. Contador de programa (Program counter). Registro que almacena en cada momento la direccin de memoria de la siguiente instruccin a ejecutar por el procesador. Direccin (Address). Conjunto de bits que identifican un registro, una zona de almacenamiento o algn otro tipo de fuente o destino de datos. Direccin absoluta (Absolutte address). Direccin que identifica una posicin fsica de memoria. Direccin simblica (Symbolic address). Grupo de caracteres que representan la direccin de un dato o instruccin. Direccin relativa (Relative address). Direccin de un dato representada por un valor que lleva implcito un desplazamiento. Espacio de direccionamiento (Address space). Margen de direcciones de memoria que tiene disponibles un programa. Registro de desplazamiento (Offset register). Registro que contiene la direccin base a partir de la cual se reubican todas las direcciones relativas de un programa compilado para obtener las direcciones absolutas. Almacenamiento primario (Primary storage). Memoria real de la computadora (RAM).

En ella se almacenan los datos e instrucciones de los programas que van a ser ejecutados. Almacenamiento virtual (Virtual storage). Espacio de almacenamiento que puede ser interpretado como almacenamiento principal direccionable por un programa, donde las direcciones virtuales son traducidas a direcciones reales. Almacenamiento secundario (Secondary storage). Memoria destinada a almacenar informacin durante largos perodos de tiempo. Tambin se denominan memorias de almacenamiento masivo (cintas y discos magnticos). Interrupcin (Interruption). Suspensin de un proceso para realizar una operacin independiente, realizada de tal forma que pueda volver a reanudarse. Interrogacin (Polling). Escrutinio peridico que se realiza en espera de la aparicin de algn evento con el fin de detectar el momento en que se producen. Buffer (Buffer). En general, zona de memoria que tienen los dispositivos para el intercambio de informacin. Tambin se conoce como memoria tampn. Perifrico (Peripheral). Dispositivo externo conectado a la computadora, cuya misin es la de introducir datos, extraerlos, almacenarlos o alguna combinacin de estas funciones. Ordenador principal (Host). Computadora donde se instala un programa. En una red de computadoras es la que ofrece a los usuarios capacidad de proceso. Ordenador de gran potencia (Mainframe). Computadora que por sus caractersticas de potencia y velocidad de proceso toma la denominacin especial de mainframe. Consola maestra (Master console). Terminal especial para el control directo de la computadora.

Conceptos sobre los Firmwares : El firmware es el conjunto de programas y datos


que vienen en una computadora desde su fabricacin, en una memoria que no puede ser modificada por el usuario. Estos programas pueden venir implantados en el propio cableado del ordenador, denominndose en estos casos lgica cableada, y tambin pueden venir en memorias de solo lectura (Read only memory-ROM), conocindose en estos casos como microcdigo o microprograma. Microcdigo (Microcode). Se denomina as a la representacin simblica del microprograma. Microprograma (Microprogram). Secuencia de instrucciones elementales en cdigo mquina que corresponden a una operacin completa de la computadora. En general, podemos decir que una mquina microprogramada interpreta instrucciones (microinstrucciones) no existentes directamente en el hardware, basndose en otras ms elementales que si estn directamente disponibles en la mquina.En la actualidad, la microprogramacin se utiliza para realizar funciones de control en una computadora y es facultad de los diseadores de hardware. Existen varias modalidades de firmware: Programas tableados (Wired-in). Son secuencias de acciones que configuran determinados algoritmos implantados en el tableado. El ejemplo corriente es el de las calculadoras.

Control por programa (Program control). El control se realiza por un programa o conjunto de ellos grabados en una memoria ROM, donde las instrucciones mquina son interpretadas como un juego de seales de control.

Control rgido (Hard-wired). Consiste en una mezcla de los dos anteriores, donde la conversin de cdigos de operacin de las instrucciones del programa almacenado en seales de control se establece por cableado.

Control por microprograma (Microprogramed). Se realiza el control por medio de un programa (microprograma) almacenado en memoria ROM, cuyas instrucciones son menos numerosas que el mismo programa en cdigo mquina, donde adems se puede emular una mquina virtual ms potente que la real que configura el propio hardware.

Conceptos relacionados al Software :


Pasamos a definir una serie de conceptos de software que se encuentran relacionados con los elementos que aparecen en la figura siguiente, donde se esquematiza el proceso de generacin de software de usuario a travs del denominado proceso de compilacin y generacin de un programa.

Instruccin o sentencia (Sentence). Lnea o lneas de un programa donde se da la orden de realizacin de una operacin o conjunto de operaciones particulares. Instruccin privilegiada (Privileged instruction). Es aquella que para ser ejecutada necesita que el programa o usuario tengan ciertos privilegios. Cdigo mquina (Machine code). Representacin de instrucciones y datos de un programa ejecutables directamente por una computadora. Macroinstruccin (Macroinstruction). Instruccin en el lenguaje fuente que es reemplazada por una secuencia definida de instrucciones en el mismo lenguaje fuente. Todas las macroinstrucciones son expandidas por el compilador o ensamblador al conjunto de instrucciones que representan. Programa (Program). Secuencia de instrucciones que representan la resolucin de un algoritmo yque pueden ser ensambladas, compiladas o interpretadas con el fin de obtener un programa ejecutable en cdigo mquina para realizar un trabajo til para el usuario. Mdulo (Module). Unidad de programa que puede ser compilada y unida a otros mdulos para formar un programa completo. Tambin lo podemos definir como una parte separable de un programa. Los programas o mdulos, segn el proceso de conversin a cdigo mquina, pueden ser: Programa fuente (Source Module). Programa escrito en ensamblador o lenguaje de alto nivel (FORTRAN, COBOL, Pascal, C, etc.) que debe ser ensamblado, compilado o interpretado antes de ejecutarse en la computadora. Normalmente son editados por el usuario o programador por medio de un editor. Mdulo objeto (Object module). Es un mdulo fuente ensamblado o compilado que est listo para ser unido a otros para formar un programa ejecutable. Si se trata de todo un programa (un solo mdulo) se denomina programa objeto. Programa ejecutable (Executable code). Programa construido por el editor de enlace o montador (linker) a partir de uno o ms mdulos objeto y de rutinas de librera. Este programa puede ser cargado en memoria y ejecutado. En el proceso de traduccin o conversin de un programa fuente a ejecutable entran en juego archivos cuya composicin es un conjunto de mdulos que pueden ser reclamados por los distintos elementos a traducir, denominados libreras. Pueden ser de 3 clases: Librera de programas (Library). Archivo que contiene una coleccin organizada de programas. Librera objeto (Object library). Archivo compuesto de una coleccin de rutinas que puedenser solicitadas e incorporadas por los distintos programas al hacer referencia a las mismas. Librera del sistema (System library). Coleccin controlada de software perteneciente al sistema y que puede ser incorporado a un programa de igual forma que una rutina de librera objeto. En la traduccin de un programa fuente a cdigo mquina se utilizan diversos programas que forman parte del sistema operativo. Estos programas traductores pueden ser: Ensamblador (Assembler). Programa utilizado para traducir un programa escrito en lenguaje ensamblador a lenguaje mquina de tal forma que la traduccin se realiza convirtiendo cada sentencia fuente en una instruccin mquina. En la traduccin se sustituyen las direcciones simblicas por direcciones absolutas. Ensamblador cruzado (Cross assembler) Programa traductor de lenguaje ensamblador a lenguaje mquina que se ejecuta en una Pc y traduce para ejecutar en otro distinto. Compilador (Compiler). Programa traductor de un lenguaje de alto nivel a su cdigo m quina absoluto o reubicable equivalente. La traduccin se realiza de tal forma que una sen tencia fuente se convierte en varias instrucciones mquina, efectuando adems uncontrol previo de errores de todo el programa. Si existen errores, la traduccin se interrumpe. Compilador cruzado (Cross compiler). Programa traductor de lenguaje de alto nivel a 6

lenguaje mquina que se ejecuta en una computadora, generando el cdigo para ser ejecutado en otra distinta. Intrprete (Interpreter). Programa traductor de lenguaje de alto nivel a cdigo mquina, de tal forma que una sentencia fuente se convierte en varias instrucciones mquina y tras latraduccin de cada una de ellas se ejecutan sin esperar a traducir la siguiente. Los sistemas operativos para la construccin de programas suelen contar, adems, con las siguientes utilidades: Editor (Editor). Programa que permite escribir o corregir archivos de texto, generalmente programas fuente. Editor de enlace (Linker). Tambin denominado montador, es un programa para crear un cdigo ejecutable a partir de uno o ms mdulos objeto resolviendo las referencias existentes entre los mismos y asignando direcciones definitivas a los elementos reubicables. Tambin extraen las rutinas necesarias de las libreras para incluirlas en el programa ejecutable final. Cargador (Loader). Es una rutina que lee un programa ejecutable y lo almacena en la memoria principal antes de su ejecucin. Depurador (Debugger). Es un programa de ayuda que permite ejecutar un programa fuente paso a paso investigando la imagen del mismo, que se va creando en la memoria con el fin de analizarlo y corregir posibles errores. Otras definiciones a tener en cuenta son: Ejecucin (Execution). Proceso de llevar a efecto las instrucciones de un programa ejecutable previamente cargado en la memoria principal. Proceso (Process). Se utiliza este trmino para hacer referencia a un programa en ejecucin. Trabajo (Job). Se trata de todos los pasos que ha de realizar una computadora para cubrir los objetivos de un programa. Recurso (Resource). Elemento hardware disponible en un sistema para su utilizacin, siendo necesario para llevar a cabo su trabajo. Palabra clave (Password). Contrasea que permite el acceso a un determinado usuario para trabajar en el sistema.

Qu es un Sistema Operativo? :
En primer lugar definimos el elemento fsico en el que se centra toda la actividad informtica, es decir, la computadora.Una computadora es una mquina de origen electrnico con una o ms unidades de proceso yequipos perifricos controlados por programas almacenados en su memoria, que pueden realizaruna gran variedad de trabajos.Todo este componente fsico es denominado comnmente Hardware. Ahora bien, al ser una mquina programable tiene que contar con informacin que le indique cmo utilizar todas sus unidades fsicas o herramientas que la componen, conocidas como recursos, para llevar a cabo el trabajo. Esta informacin es lo que denominamos soporte lgico o Software. Una computadora sin Software sera una mquina intil, mientras que con l puede almacenar,procesar y obtener informacin, editar textos, procesar video, controlar el entorno, etc. Un Sistema Operativo es un elemento constitutivo de software que en sus principios fue definido dela siguiente manera: Programa fundamental del Software del Sistema que controla todos los recursos del Sistema Computacional y proporciona la base sobre la cul pueden escribirse los programas de aplicacin. 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. El Sistema Operativo proporciona facilidades de apoyo a otros programas de manera que

stos puedan tener acceso a los recursos del Sistema Computacional (ej, archivos, dispositivos de E/S, etc.). Un Sistema Operativo acta como gestor de los recursos del Sistema Computacional, tales como el procesador, la memoria, los archivos y los dispositivos de E/S. En esta funcin, el Sistema Operativo lleva la cuenta del estado de cada recurso y decide quin lo obtiene, por cunto tiempo y en qu instante. En sistemas que soportan ejecucin concurrente de programas, el Sistema Operativo resuelve las peticiones conflictivas de recursos de manera de preservar la integridad del sistema, de manera de optimizar el rendimiento global. En la actualidad, no resulta sencilla su definicin, de forma que pueden darse varias desde distintos puntos de vista: Punto de vista del Usuario : Un Sistema Operativo es un conjunto de programas y funciones que ocultan los detalles del hardware, ofreciendo al usuario una va sencilla y flexible de acceso al mismo. La ocultacin de los detalles del hardware a usuarios y parte del personal informtico tiene dos objetivos: Abstraccin. La tendencia actual del software en toda su extensin es la de dar una visin global y abstracta de la computadora haciendo fcil su uso ocultando por completo la gestin interna. Seguridad. Existen instrucciones en la mquina que pueden parar la computadora, interferir procesos, etc. Por ello, es necesario restringir determinadas operaciones a los usuarios creando varios niveles de privilegio, de tal forma que cada usuario tenga protegida su informacin y sus procesos.

Punto de vista de GESTOR DE RECURSOS: Un Sistema Operativo es el administrador de recursos ofrecidos por el hardware para alcanzar un eficaz rendimiento de los mismos. Estos recursos son: _ El microprocesador. _ La memoria. _ Los dispositivos de Entrada/Salida. _ La informacin. _ Los programas. _ La seguridad. _ Etc. Los sistemas operativos construyen recursos de alto nivel, que denominaremos VIRTUALES, a base de encubrir los realmente existentes de bajo nivel, que denominaremos FISICOS. Por tanto, desde el punto de vista del usuario o de un proceso, la mquina fsica es convertida por el Sistema Operativo en una mquina virtual, tambin conocida como mquina extendida, que, a diferencia de la fsica, ofrece muchas ms funciones y ms cmodas de utilizar. El sistema operativo proporciona, adems, ser 8

vicios de los que no dispone el hardware, como pueden ser, por ejemplo, la utilizacin de lacomputadora por varios usuarios simultneamente, interaccin entre usuario y programa en ejecucin al mismo tiempo, etc. Para concluir, vamos a dar una definicin ms acadmica que las anteriores, basndonos en la definicin previa de los trminos SISTEMA y OPERATIVO. Sistema. Conjunto de personas, mquinas y cosas que, ordenadamente relacionadas entre s, contribuyen a lograr un determinado objetivo. Operativo. Personas, mquinas y cosas que trabajan conjuntamente y consiguen el objetivo deseado. De las definiciones anteriores podemos obtener la de SO de la siguiente forma: SISTEMA OPERATIVO: Conjunto de programas que ordenadamente relacionados entre s, contribuyen a que la computadora lleve a cabo correctamente su trabajo. En resumen, podemos decir que los sistemas operativos cubren 2 objetivos fundamentales: facilitar el trabajo al usuario y gestionar de forma eficiente los recursos. Ahora bien, no todo el software que se ejecuta sobre el hardware se considera como sistema operativo. Existen dos tipos de programas que conviene distinguir: Programas del sistema: son los que manejan el hardware, controlan los procesos, hacen ms cmodo el entorno de trabajo, etc. Programas de aplicacin: son los que resuelven un problema concreto de los usuarios y que no son suministrados con el sistema operativo. Son programas diseados y codificados por analistas y programadores de aplicaciones conjuntamente con los usuarios. Evolucin de los Sistemas Operativos : El desarrollo de los sistemas operativos esta muy relacionado con el desarrollo de la arquitectura de los sistemas computacionales. Por esta razn, clasificaremos el desarrollo de los SO operativos en generaciones que han sido marcadas sobre la base de tecnologas de construccin de dichas arquitecturas. Primera Generacin (1945-1955) Este periodo se caracteriza porque exista un slo grupo de personas que se dedicaba a disear, construir, programar, operar y mantener las mquinas. La tecnologa que se utilizaba era la de Tubos al Vaco, los que ocupaban gran espacio, lentos y disipaban mucho calor. La programacin en esta poca era exclusivamente en lenguaje de mquina o bien en acciones directas en el hardware, modificando circuitos (Hardwired). En esta etapa no existe el concepto de sistema operativo, todo lo debe realizar el programador, no hay un ente software intermedio entre la mquina y el programador. Por otro lado, los recursos del sistema eran asignados a una sola tarea, no era posible realizar tareas simultneamente con distintos recursos. A finales de los 40's el uso de computadoras estaba restringido a aquellas empresas o instituciones que podan pagar su alto precio, y no existan los sistemas operativos.

En su lugar, el programador deba tener un conocimiento y contacto profundo con el hardware, y en el infortunado caso de que su programa fallara, deba examinar los valores de los registros y paneles de luces indicadoras del estado de la computadora para determinar la causa del fallo y poder corregir su programa, adems de enfrentarse nuevamente a los procedimientos de apartar tiempo del sistema y poner a punto los compiladores, enlazadores, etc.; para volver a correr su programa, es decir, enfrentaba el problema del procesamiento serial. En el ltimo tiempo de este perodo, aparecieron las tarjetas perforadas, las que en algn sentido permitieron agilizar el proceso de programacin, pues con ellas era posible escribir y leer los programas en las tarjetas. Sin embargo, la programacin igual se realizaba en lenguaje de mquina. Segunda Generacin (1955-1965) La importancia de los sistemas operativos nace histricamente desde los 50's, cuando se hizo evidente que el operar una computadora por medio de tableros enchufables en la primera generacin y luego por medio del trabajo en lote en la segunda generacin se poda mejorar notoriamente, pues el operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las caractersticas contempladas en la definicin de lo que es un programa. Es decir, se comenz a ver que las tareas mismas del operador podan plasmarse en un programa, el cual a travs del tiempo y por su enorme complejidad se le llam "Sistema Operativo". As, tenemos entre los primeros sistemas operativos al Fortran Monitor System (FMS) e IBSYS. Esta generacin se caracteriza por la utilizacin de la tecnologa que incluye transistores. Estos proporcionan mejores caractersticas que los tubos al vaco, son ms pequeos, disipan menos calor y son ms rpidos. En esta poca, ya no hay un solo grupo que se dedica a disear, construir, operar y mantener el sistema computacional, sino que la manutencin la realizan otras personas. La programacin, en este perodo se ve apoyada por la creacin de lenguajes ensambladores y lenguajes de alto nivel; como Fortran y Cobol. Para optimizar el tiempo de utilizacin del sistema computacional, se adopt el Procesamiento por Lotes. Este procedimiento se puede resumir en los siguientes pasos: Varios trabajos son ledos desde tarjetas perforadas y almacenados en cinta .El computador ejecuta programas que lee de una cinta y escribe los resultados en otra cinta. Los resultados escritos en la cinta son desplegados a travs de la impresora. Para hacer la transferencia de los datos entre el computador y la cinta se construy un programa, ste es el que se conoce como el primer sistema operativo. Como consecuencia de la utilizacin de tecnologa de mejores caractersticas, el procesamiento por lotes, la utilizacin de un operador de sistema y un sistema operativo primitivo se logr minimizar el tiempo ocioso de los computadores. Tercera Generacin (1965-1980) Posteriormente, en la tercera generacin de computadoras nace uno de los primeros sistemas operativos con la filosofa de administrar una familia de computadoras: el OS/360 de IBM. Fue este un proyecto tan novedoso y ambicioso que enfrent por primera vez una serie de problemas conflictivos debido a que anteriormente las computadoras eran creadas para dos propsitos en general: el comercial y el cientfico. As, al tratar de crear un solo sistema operativo para computadoras que podan dedicarse a un propsito, al otro o ambos, puso en evidencia la problemtica del trabajo en equipos de anlisis, diseo e implantacin de sistemas grandes. Surge tambin en la tercera generacin de computadoras el concepto de la multiprogramacin, porque debido al alto costo de las computadoras era necesario idear un esquema de trabajo que mantuviese a la unidad central de procesamiento ms tiempo ocupada, as como el encolado (spooling) de trabajos para su lectura hacia los lugares libres de memoria o la escritura de resultados. Sin embargo, se puede afirmar que los sistemas durante la tercera generacin siguieron siendo bsicamente sistemas de lote. La tecnologa utilizada en este perodo corresponde a la de circuitos integrados, lo cual permiti construir mquinas ms baratas y con mejor rendimiento. La empresa IBM fue la primera en utilizar esta tecnologa como ya acotamos. Una de las principales caractersticas de los sistemas operativos de hoy, que aparecen en 10

esta generacin es la Multiprogramacin. Esta tcnica consiste en particionar la memoria de manera de contener simultneamente muchos trabajos, lo que permite independencia en las acciones de la mquina. Por ejemplo, si un trabajo est esperando por Entrada/Salida, otro trabajo puede estar utilizando la CPU. Con la utilizacin de la multiprogramacin, se mejora el tiempo de utilizacin de la CPU, pero se crean problemas de proteccin y seguridad, debido al particionamiento de la memoria. Otra caracterstica importante de los sistemas operativos de esta generacin es la aparicin de la tcnica de Spooling (Operacin simultnea y en lnea de perifricos). Esta consiste en la capacidad de leer los trabajos de cinta al disco, haciendo posible que a medida que hubiera espacio en memoria se poda pasar al siguiente trabajo. De esta manera las operaciones de perifricos se realizan en paralelo con la utilizacin de la CPU. Durante esta generacin aparecen los primeros sistemas de Tiempo compartido, esto consiste en que se le asigna a cada trabajo un tiempo fijo de utilizacin de CPU, este perodo de tiempo (denominado time slot) es pequeo, pues el uso de tiempo compartido tiene como objetivo manejar a distintos usuarios mediante terminales que tengan la ilusin de estar ocupando la mquina como si fueran nicos. El primer sistema operativo importante de tiempo compartido es el (CTSS) y fue desarrollado en MIT (Massachusetts Institute of Technology). Otros de los sistemas que surgi en este periodo es MULTICS, el que sirvi de base para el desarrollo del sistema UNIX. Cuarta Generacin (1980-1990) En la cuarta generacin la electrnica avanza hacia la integracin a gran escala, pudiendo crear circuitos con miles de transistores en un centmetro cuadrado de silicn y ya es posible hablar de las computadoras personales y las estaciones de trabajo. Surgen los conceptos de interfaces amigables intentando as atraer al pblico en general al uso de las computadoras como herramientas cotidianas. Se hacen populares el MS-DOS y UNIX en estas mquinas. Tambin es comn encontrar clones de computadoras personales y una multitud de empresas pequeas ensamblndolas por todo el mundo. Para mediados de los 80's, comienza el auge de las redes de computadoras y la necesidad de sistemas operativos en red y sistemas operativos distribuidos. La red mundial Internet se va haciendo accesible a toda clase de instituciones y se comienzan a dar muchas soluciones (y problemas) al querer hacer convivir recursos residentes en computadoras con sistemas operativos diferentes. Esta generacin se caracteriza por la utilizacin de los microprocesadores para la construccin de computadores de menor tamao, haciendo posible que una sola persona tuviera su propio computador personal. Los computadores personales con mayores capacidades y que se empezaron a utilizar en la empresa y en las universidades recibieron el nombre de estaciones de trabajo. Durante esta generacin aparecen los sistemas operativos que proporcionan una interfase ms amigable al usuario, esto se traduce en mejores herramientas de interaccin con el computador, tales como capacidades grficas, conos, sistemas de mens, etc. Los sistemas operativos que cobran gran popularidad en este perodo son MS-DOS de Microsoft y UNIX. Este ltimo tuvo sus primeros desarrollos en Berkeley y posteriormente en AT&T. Quinta Generacin (1990 - actualidad) Para los 90's el paradigma de la programacin orientada a objetos cobra auge, as como el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan crearse para ser ejecutadas en una plataforma especfica y poder ver sus resultados en la pantalla o monitor de otra diferente (por ejemplo, ejecutar una simulacin en una mquina con UNIX y ver los resultados en otra con DOS ). Los niveles de interaccin se van haciendo cada vez ms profundos. Desde aproximadamente mediados de los '80 surgi el crecimiento de las redes de computadores con sistemas operativos de red y sistemas operativos distribuidos. En los sistemas operativos de red cada computador tiene su propia copia de sistema operativo, los usuarios saben que existen varios computadores, pueden conectarse explcitamente a diferentes mquinas remotas para transferir archivos, hacer bsquedas, etc. En los sistemas operativos distribuidos existe una integracin real de los recursos, la red es transparente a los usuarios, es decir, que stos pueden no darse cuenta de la existencia 11

de varias mquinas conectadas. Sobre este tipo de sistema operativo, una tarea puede ser ejecutada en varios nodos a la vez, pues existen facilidades de migracin de procesos. Adems este sistema computacional puede crecer fcilmente y la tolerancia a fallas se realiza en mejor forma (la tolerancia a fallas est relacionada con la confiabilidad, por ejemplo, si un computador falla puede seguir operando en su reemplazo). El desarrollo de los sistemas computacionales de los ltimos tiempos ha generado un conjunto de estndares, que han servido de base para futuros desarrollos de fabricantes que trabajan en conjunto. Dentro de los estndares ms conocidos se encuentran los siguientes: _ Estndares de comunicaciones abierto _ Modelo OSI (Open System Interconection), desarrollado por ISO. _ Estndares de sistemas operativos abiertos _ POSIX (IEEE standar 1003.1) _ SVID (System V Interfase Definition) _ Estndares de interfaces de usuarios abiertos X Windows desarrollado por MIT _ Estndares de aplicaciones de usuarios abiertos X/Open _ OSF (Open Software Foundation) Tipos de Sistemas Operativo : En esta seccin se describirn las caractersticas que clasifican a los sistemas operativos, bsicamente se cubrirn tres clasificaciones: sistemas operativos por su estructura (visin interna), sistemas operativos por los servicios que ofrecen y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios (visin externa). Sistemas Operativos por su Estructura : Se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son: Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso que se le quiere destinar. Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. A continuacin se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener. Estructura monoltica : Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las caractersticas fundamentales de este tipo de estructura son: Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del ligador o enlazador. Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc. Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

12

Estructura jerrquica : A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del SO, donde una parte del sistema contena subpartes y esto organizado en forma de niveles. Se dividi el SO en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con una claro interfase con el resto de elementos. Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines didcticos. Se puede pensar tambin en estos sistemas como si fueran multicapa'. Multics y Unix caen en esa categora. En la estructura anterior se basan prcticamente la mayora de los SO actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings". En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas SO o ncleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas.

13

Mquina Virtual : Se trata de un tipo de sistemas operativos que presentan una interfase a cada proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas diferentes. El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina extendida al usuario.

Otra forma de verlo:

Cliente-servidor (con Microkernel) : El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o pequeas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los SO convencionales. El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro.". Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se est trabajando en una versin de UNIX que contempla en su diseo este paradigma. 14

Sistemas Operativos por Servicios : Esta clasificacin es la ms comnmente usada y conocida desde el punto de vista del usuario final. Esta clasificacin se comprende fcilmente con el cuadro sinptico que a continuacin se muestra:

Monousuarios : Los SO monousuarios son aqullos que soportan a un usuario a la vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales tpicamente se han clasificado en este rengln. Multiusuarios :Los SO multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la compu o por medio de sesiones remotas en una red de comunicaciones. No importa el nmero de procesadores en la mquina ni el nmero de procesos que cada usuario puede ejecutar simultneamente. Monotareas : Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Multitareas ; Un sistema operativo multitarea es aqul que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de un programa durante su depuracin mientras compila otro programa, a la vez que est recibiendo correo electrnico en un proceso en background. Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un rpido inter-

15

cambio entre las tareas para el usuario, mejorando su productividad. Uniproceso : Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS. Multiproceso : Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simtrica o asimtricamente. Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un rea de memoria, un conjunto de registros con valores especficos, la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima opcin las ms de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el algoritmo inicial. Sistemas Operativos por la Forma de Ofrecer sus Servicios : Esta clasificacin tambin se refiere a una visin externa, que en este caso se refiere a la del usuario, el cmo accesa los servicios. Bajo esta clasificacin se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos. Sistemas Operativos de Red : Los SO de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisin con el objeto de intercambiar informacin, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, adems de la ubicacin de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podra copiarlo a travs de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas . hidalgo% En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecut el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos. Sistemas Operativos Distribuidos : Los SO distribuidos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola mquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicacin de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco terico de lo que se deseara tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la proteccin y seguridad entre los diferentes componentes del sistema y los usuarios. Los avances tecnolgicos en las redes de rea local y la creacin de microprocesadores de 32 y 64 bits 16

lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autnoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en clculo en unidades ms pequeas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando as una mquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los dems recursos como una sola entidad en forma transparente se le llama sistema operativo distribuido. Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por necesidad (debido a que los problemas a resolver son inherentemente distribuidos) o porque se desea tener ms confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automticos en diferentes estados de la repblica. Ah no es posible ni eficiente mantener un control centralizado, es ms, no existe capacidad de cmputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de informacin en disco duro con una alta confiabilidad y disponibilidad. La solucin puede ser que para cada grupo de trabajo se asigne una particin de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino slo a unos cuantos y, ms an, se podra tener un sistema con discos en espejo (mirror) a travs de la red, de manera que si un servidor se cae, el servidor en espejo contina trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente. Ventajas de los Sistemas Distribuidos : En general, los sistemas distribuidos (no solamente los sistemas operativos) exhiben algunas ventajas sobre los sistemas centralizados que se describen enseguida. Economa: El cociente precio/desempeo de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando estn distribuidos. Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. Confiabilidad: Si una sola mquina falla, el sistema total sigue funcionando. Crecimiento: El poder total del sistema puede irse incrementando al aadir pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado y caro. Distribucin: Algunas aplicaciones requieren de por s una distribucin fsica. Por otro lado, los sistemas distribuidos tambin exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son: Compartir datos: Un sistema distribuido permite compartir datos ms fcilmente que los sistemas aislados, que tendran que duplicarlos en cada nodo para lograrlo. Compartir dispositivos: Un sistema distribuido permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuido logra un efecto sinergtico. Comunicaciones: La comunicacin persona a persona es factible en los sistemas distribuidos, en los sistemas aislados no. Flexibilidad: La distribucin de las cargas de trabajo es factible en el sistema distribuido, se puede incrementar el poder de cmputo. Desventajas de los Sistemas Distribuidos As como los sistemas distribuidos exhiben grandes ventajas, tambin se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la produccin comercial de sistemas operativos en la actualidad. El problema ms importante en la creacin de sistemas distribuidos es el software: los problemas de compartir datos y recursos es tan complejo que los mecanismos de solucin generan mucha sobrecarga al sistema hacindolo ineficiente. El chequear, por ejemplo, quines tienen acceso a algunos recursos y quines no, el aplicar los mecanismos de proteccin y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas estn an en paa17

les. Otros problemas de los sistemas operativos distribuidos surgen debido a la concurrencia y al paralelismo. Tradicionalmente las aplicaciones son creadas para computadoras que ejecutan secuencialmente, de manera que el identificar secciones de cdigo `paralelizable' es un trabajo arduo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la distribucin. Con la concurrencia se deben implantar mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de espera circulares y , finalmente, los "abrazos mortales" (deadlocks). Estos problemas de por s se presentan en los sistemas operativos multiusuarios o multitareas, y su tratamiento en los sistemas distribuidos es an ms complejo, y por lo tanto, necesitar de algoritmos ms complejos con la inherente sobrecarga esperada. Por otro lado, en el tema de sistemas distribuidos existen varios conceptos importantes referentes al hardware que no se ven en este trabajo: multicomputadoras, multiprocesadores, sistemas acoplados dbil y fuertemente, etc.

Servicios del sistema : El intrprete de comandos y los programas del sistema son
los que fijan el entorno y la forma de ver el sistema operativo por los usuarios. En cambio, el programador del sistema tiene una visin totalmente diferente; para l todo son recursos fsicos y dispositivos que deben ser convertidos en entidades lgicas para ofrecrselas a los usuarios. Se puede decir que un sistema operativo es un programa activado por eventos; es decir, si no hay programas en ejecucin, ni operaciones de entrada/salida pendientes, etc., el sistema estar inactivo hasta que se produzca alguna nueva peticin. Normalmente cada evento producir una interrupcin de la ejecucin del sistema operativo. Llamadas al sistema operativo En esta ocasin las llamadas al sistema operativo se agrupan por el tipo de llamada y no por la accin que realizan. Pueden ser: Terminacin normal: Se realiza la devolucin del control al usuario cuyo proceso ha terminado, a travs del intrprete de comandos. Terminacin anormal: Cuando aparece un error en la ejecucin de un programa, ste se da por terminado, devolviendo el control al intrprete de comandos, que indicar tal situacin de error al usuario. Peticiones de estado: Se procesa la peticin solicitada y se devuelve el control al programa que la solicit. Peticiones de recursos: Los programas solicitarn recursos durante su ejecucin que sern atendidos de inmediato o se entrar en un estado de espera hasta que puedan ser atendidos. Peticiones de entrada/salida: De igual forma, los programas las solicitarn y sern atendidas de inmediato o tras un pequeo perodo de espera. Interrupciones de los dispositivos de E/S Una vez que un programa en ejecucin realiza una peticin de entrada/salida, se pueden tomar dos tipos de accin por parte del sistema operativo: El proceso queda en espera hasta que se termina la operacin de entrada/salida: En este caso el dispositivo externo, cuando termine la operacin, producir una interrupcin que dar control al sistema operativo, el cual activar el proceso que estaba en espera. El proceso seguir realizando otras operaciones: En este caso el dispositivo externo tambin produce una interrupcin en el sistema operativo, el cual no activar el proceso puesto que no estaba en espera, pero s le indicar que la operacin solicitada ha terminado. Gestin de excepciones : Cuando un programa en ejecucin comete un error, se producir una interrupcin; por ejemplo, una divisin por 0, intento de violacin de un archivo protegido, intento de ejecucin de una instruccin no permitida o privilegiada, etc. El tratamiento de estos errores se conoce como manejo de excepciones. Los sistemas operativos suelen asociar alguna funcin para el tratamiento de estos errores. El ncleo da control a esta funcin en el momento de aparicin de un error de este tipo. Protecciones : Los programas de aplicacin de los usuarios no estn exentos de errores,

18

as como los sistemas tampoco estn libres de usuarios con malas intenciones. Por ello, el sistema operativo debe incluir ciertas funciones de proteccin con objeto de evitar problemas entre procesos y entre stos y el propio sistema operativo. Proteccin de la entrada/salida : Todos los dispositivos externos cuentan, por parte del sistema operativo, con rutinas para el control de las operaciones de entrada/salida. Estas rutinas se denominan controladores o drivers de dispositivos y entre otras funciones protegen los accesos incorrectos, devolviendo el control al ncleo del sistema operativo, indicndole la situacin errnea que se ha producido. Proteccin de la memoria ; En general, cada proceso tiene una zona de memoria asignada para el tratamiento de sus datos denominada espacio de direccionamiento y no puede acceder a zonas asignadas al sistema operativo o a otros procesos. Para evitarlo existen unos registros frontera que indican el lmite de memoria asignado a cada proceso. Si un proceso intentase acceder a direcciones que estn fuera de la zona de memoria de su espacio de direccionamiento, se producir una interrupcin que dar control al sistema operativo dando cuenta del error que se ha producido. Proteccin del procesador : Otro tipo de problemas que pueden presentarse es la presencia de bucles infinitos o accesos al procesador que no lo liberan nunca. En estos casos la nica solucin es la de apagar y volver a encender (reset) para volver a comenzar desde el principio. Para evitarlo, el hardware incluye un temporizador que marca periodos de tiempo, de manera que al terminar un perodo de tiempo se produzca una interrupcin y tome el control el sistema operativo.

19

Вам также может понравиться