Sunteți pe pagina 1din 8

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

1 Introduccin a los Sistemas Operativos.


El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones que le indiquen cmo utilizar los recursos. El conjunto de instrucciones o programas es lo que conocemos como soporte lgico o software. Un ordenador, sin software que lo programe, es bsicamente un bloque de metal intil, pero con el software puede almacenar, procesar y obtener informacin, editar textos, controlar el entorno, etc. Un sistema operativo es un conjunto de programas que, ordenadamente relacionados entre s, contribuyen a que el ordenador lleve a efecto correctamente el trabajo encomendado. Desde el punto de vista del usuario, el sistema operativo consiste en una serie de programas y funciones que ocultan los detalles del hardware, ofrecindole una va sencilla y flexible de acceso al mismo, teniendo dos objetivos fundamentales: Seguridad: El sistema operativo debe actuar contra cualquier manipulacin extraa, ya sea accidental o premeditada que pudiera daar la informacin, perjudicar a otros usuarios o provocar un funcionamiento indeseado del sistema. Por ejemplo, hay ciertas instrucciones que pueden parar la mquina y otras que realizan operaciones directamente sobre el hardware, que debemos evitar que se utilicen directamente por los programas. Para ello, algunos sistemas proporcionan dos estados, llamados estado protegido (Sistema o Kernel), en el cual se ejecuta el sistema operativo, y estado no protegido (Usuario o User), que es el destinado a la ejecucin de los programas de usuario y de aplicacin. De esta manera se impide que los programas de los usuarios puedan tener contacto directo con el hardware, o puedan forzar un incorrecto funcionamiento del sistema. Abstraccin: La tendencia actual del software y de los lenguajes de programacin es ocultar lo ms posible los detalles de ms bajo nivel, intentando dar a los niveles superiores una visin ms sencilla, global y abstracta, ofrecindoles operaciones para manipular dichas estructuras ocultas, desconociendo por completo la gestin interna de las mismas. Gracias a la abstraccin, los sistemas operativos enmascaran los recursos fsicos, permitiendo su manejo con funciones ms generales que ocultan las bsicas, constituyendo verdaderos recursos ficticios o virtuales, que mejoran y son ms potentes que los fsicos.

Como resumen, podemos decir que el sistema operativo persigue alcanzar la mayor eficiencia posible del hardware y facilitar su uso. El objetivo fundamental del sistema operativo es gestionar los recursos ofrecidos por el hardware.

1.1

Funciones de los sistemas operativos.

Las funciones de los sistemas operativos son diversas y han ido evolucionando de acuerdo con los progresos que la tcnica y la informtica han experimentado. Como principales funciones, podramos enumerar las siguientes: Gestin de procesos. Hay que diferenciar entre los conceptos programa y proceso. Un programa es un ente pasivo, que cuando se carga en memoria y comienza a ejecutarse, puede originar una gran cantidad de procesos. Gestin de la memoria. La gestin de memoria, suele ir asociada a la gestin de procesos. Para ejecutar un proceso es necesario asignarle unas direcciones de memoria exclusivas para l y cargarlo en ellas, cuando el proceso finalice su ejecucin es necesario liberar las direcciones de memoria que estaba usando.

-1-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

Gestin de ficheros. Un fichero es una abstraccin para definir una coleccin de informacin no voltil. Su objetivo es proporcionar un modelo de trabajo sencillo con la informacin almacenada en los dispositivos de almacenamiento. Estos ficheros deben tener espacio asignado en los dispositivos, deben estar protegidos entre ellos, deben organizarse segn unos determinados esquemas todo esto es la gestin de ficheros. Gestin de los dispositivos de E/S. La gestin de la E/S tiene como objetivo proporcionar una interfaz de alto nivel de los dispositivos de E/S sencilla de utilizar. En algunos sistemas esta interfaz es semejante a la de los ficheros (Linux). Gestin de la red. El sistema operativo es el encargado de gestionar los distintos niveles de red, los controladores de los dispositivos involucrados en la red, los protocolos de comunicacin, las aplicaciones de red, etc. Proteccin y seguridad. Mecanismos para permitir o denegar el acceso a los usuarios y a sus procesos a determinados recursos (ficheros, dispositivos de E/S, red, etc.).

1.2

Evolucin de los Sistemas Operativos. Generacin Cero. Aos 40.

A finales de los aos 40, con lo que podramos llamar la aparicin de la primera generacin de computadoras, se acceda directamente a la consola de la computadora desde la cual se actuaba sobre una serie de micro interruptores que permitan introducir directamente el programa en la memoria de la computadora (en realidad al existir tan pocas computadoras todos podran considerarse prototipos y cada constructor lo haca sin seguir ningn criterio predeterminado). Por aquel entonces no existan los sistemas operativos, y los programadores deban interactuar con el hardware del computador sin ayuda externa. Esto haca que el tiempo de preparacin para realizar una tarea fuera considerable. Cuando a un usuario le llegaba su tiempo de mquina, tena que apresurarse a introducir en el ordenador todas las fichas perforadas que conformaban su programa, ejecutar el programa en el ordenador, vigilar su funcionamiento y esperar a que todas las operaciones se terminaran (si haba suerte, antes que se le terminara su tiempo de mquina). Aparece la figura del operador del ordenador, personas especializadas en ejecutar las rutinas de carga y descarga, con el fin de mantener el sistema con la mxima ocupacin posible, recibiendo los trabajos de los usuarios para su ejecucin. De esta forma, al recibir dichos trabajos, los reuna y ejecutaba secuencialmente consumiendo nicamente el tiempo que realmente necesitasen y evitando en gran medida los tiempos de inactividad del procesador.

Imagen1. Se aprecian dos operadores del ordenador a ambos lados de la imagen. En la parte central, el programador realizando las operaciones.

-2-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

Primera Generacin. Aos 50. A principios de los aos 50 con el objeto de facilitar la interaccin entre persona y computador, los sistemas operativos hacen una aparicin discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal.

Monitor residente. Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria, leyndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente. Era sumamente complicado, por el hecho de que eran tarjetas perforadas las cuales las tena que leer el sistema.

Procesamiento por lotes. Como solucin para optimizar, en un mismo ncleo de cinta o conjunto de tarjetas se montaban los programas, de forma que se ejecutaran uno a continuacin de otro sin perder apenas tiempo en la transicin. Almacenamiento temporal. Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultnea la carga del programa o la salida de datos con la ejecucin de la siguiente tarea. Para ello se utilizaban tcnicas de buffering.

Segunda Generacin. Aos 60. En los aos 60 se produjeron cambios notorios en varios campos de la informtica, con la aparicin del circuito integrado la mayora orientados a seguir incrementando el potencial de los computadores. Para ello se utilizaban tcnicas de lo ms diversas: Multiprogramacin. En un sistema multiprogramado la memoria principal alberga a ms de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecucin realiza una operacin de E/S; en lugar de esperar a que termine la operacin de E/S, se pasa a ejecutar otro programa. Si ste realiza, a su vez, otra operacin de E/S, se mandan las rdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera ptima los recursos disponibles. Multiprocesador. Permite trabajar con mquinas que poseen ms de un microprocesador. Multihilado. El multiprocesador puede ejecutar simultneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.

Tercera Generacin .Sistemas operativos desarrollados (Aos 70 y 80). Debido al avance de la electrnica, pudo empezar a crearse circuitos con miles de transistores en un centmetro cuadrado de silicio, lo que llevara, pocos aos despus, a producir los primeros sistemas integrados. sta dcada se podra definir como la de los sistemas de propsito general y en ella se desarrollan tecnologas que se siguen utilizando en la actualidad. Es en los aos 70 cuando se produce la proliferacin de los miniordenadores y la informtica se acerca al nivel de usuario. Se realiz un costossimo trabajo para interponer una amplia capa de software entre el usuario y la mquina, de forma que el primero no tuviese que conocer ningn detalle de la circuitera. Hasta entonces, el usuario deba conocer un complejo lenguaje de control para realizar sus trabajos que dependan del Hardware dnde trabajara.

-3-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

Otro de los inconvenientes es el gran consumo de recursos que ocasionaban, debido a los grandes espacios de memoria principal y secundaria ocupados, as como el tiempo de procesador consumido. Es por esto que se intent hacer hincapi en mejorar las tcnicas ya existentes de multiprogramacin y tiempo compartido. Con la creacin de los circuitos LSI -integracin a gran escala-, chips que contenan miles de transistores en un centmetro cuadrado de silicio, empez el auge de los ordenadores personales. En stos se dej un poco de lado el rendimiento y se busc ms que el sistema operativo fuera amigable, surgiendo mens, e interfaces grficas.

Cuarta Generacin. Aos 90 hasta la actualidad. Incorporan, con una mayor o menor eficiencia, todos los componentes que se describen en este tema; multiproceso, multiusuario, de red, multitarea, abstraccin, seguridad, integracin con Internet, etc Un hecho fundamental en esta etapa es la creacin de un sistema operativo libre para la humanidad, impulsada por Richard Stallman, ex-empleado del MIT. Motivado por esta idea comienza la construccin y desarrollo de las herramientas elementales que componen un Sistema Operativo, a esta parte del desarrollo se le conoce como proyecto GNU. En esta etapa Richard Stallman cuenta con la colaboracin de miles de programadores a nivel mundial. En 1991 aparece la primera versin del ncleo Linux que fue creado por Linus Torvalds y consegua ensamblar todas las herramientas elementales creadas por el proyecto GNU de una manera eficiente. As, el ncleo Linux tiene una importancia fundamental para el proyecto, es tal la importancia de este que el proyecto termina llamndose GNU/Linux, dando un 50% de importancia a ambas partes. Otro hito importante en este perodo fue la aparicin de Windows 95 que se le puede considerar un sistema operativo, ya que Windows 3.11 solo era una interfaz grfica del MSDOS. En la actualidad el paradigma de los sistemas operativos esta migrando a la utilizacin de Internet como soporte del sistema operativo dejando de lado el almacenamiento secundario (Discos Duros). Se trata del sistema operativo propuesto por Google.

1.3

Tipos de Sistemas Operativos.

En este punto vamos a describir las caractersticas que clasifican a los sistemas operativos, bsicamente veremos tres clasificaciones: sistemas operativos por su estructura (visin interna), sistemas operativos por los servicios que ofrecen y sistemas operativos por la forma en que ofrecen sus servicios (visin externa). 1.3.1 Sistemas Operativos por su estructura (visin interna). Si estudiamos los sistemas operativos atendiendo a su estructura interna, veremos que existen dos tipos fundamentales, los sistemas de estructura monoltica y los sistemas de estructura jerrquica. En los sistemas operativos de estructura monoltica nos encontramos con que el sistema operativo esta formado por un nico programa dividido en rutinas, en donde cualquier parte del sistema operativo tiene los mismos privilegios que cualquier otra. Estos sistemas tienen la ventaja de ser muy rpidos en su ejecucin (solo hay que ejecutar un programa) pero cuentan con el inconveniente de carecer de la flexibilidad suficiente para soportar diferentes ambientes de trabajo o tipos de aplicaciones. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo. Se

-4-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un 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, que se utiliz con fines didcticos.

En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales.De esta forma, las zonas ms internas del sistema operativo 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.

1.3.2

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 que a continuacin se muestra:

-5-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

Segn el nmero de usuarios: Monousuarios. Los sistemas operativos 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 esta seccin. Multiusuarios. Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora 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.

Segn el nmero de procesos (tareas) realizados de forma simultnea: 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 (segundo plano). Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un rpido intercambio entre las tareas para el usuario, mejorando su productividad.

Segn el nmero de procesadores que es capaz de manejar: Monoproceso. 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. Por ejemplo Windows 98 es un sistema operativo Uniproceso. Multiproceso. Un sistema operativo multiproceso es capaz de manejar ms de un procesador en el sistema, distribuyendo la carga de trabajo entre todos los procesadores que existan en el sistema. Generalmente estos sistemas trabajan de dos formas: Asimtica. 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. Simtrica. Cuando se trabaja de manera simtrica, los procesos son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema.

-6-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

1.4

Multiprogramacin.

Si ejecutamos un solo programa en un ordenador, difcilmente podremos alcanzar un rendimiento del 100% ya que siempre tendr que realizar operaciones de entrada/salida. Es decir, habr tiempos muertos del procesador durante los que no realizar ningn trabajo, y no todo el tiempo estar realizando clculos del programa. Esto era particularmente notorio en los sistemas de trabajos por lotes, en los cuales el valioso tiempo del ordenador, casi siempre estaba ocupado por rutinarias operaciones de entrada / salida, y no de aprovechamiento de la UCP del ordenador.

PROCESO A E/S UCP 1 2 3 4 5 6 tiemp o 7 8 9 15 5

1 0

2 0

Para comprenderlo mejor, podemos tomar como ejemplo la ejecucin de los programas representados en la figura siguiente, donde se detalla el diagrama de tiempos de ocupacin de los recursos, incluido el propio procesador, necesarios para que puedan realizar el trabajo. En este primer proceso (A), vemos que se necesitan 20 unidades de tiempo para ejecutar en su totalidad el proceso, de las cuales 15 se van a usar para emplear los dispositivos de E/S (impresoras, discos, etc.) y 5 van a usarse para clculos y procesos con la UCP.

Establezcamos ahora un segundo proceso (B).


PROCESO B E/S UCP 1 2 3 4 5 6 tiemp o 7 8 9 14 6

1 2 0 1 2 3 4 5 6 7 8 9 0

Vemos que este proceso (B) necesita tambin 20 unidades de tiempo para ejecutarse, de las cuales 14 van a emplearse para trabajar con las E/S, y 6 van a utilizarse para trabajar con la CPU. Si tenemos que ejecutar en nuestra maquina, el proceso A y luego el proceso B, el tiempo total de la ejecucin ser de 40 unidades de tiempo. Sin embargo no sera posible optimizar algo este tiempo? Si estudiamos el proceso A, veremos que durante las 4 primeras unidades de tiempo, la UCP esta esperando, sin hacer nada. Y podemos comprobar como el proceso B necesita usar la UCP en la unidad de tiempo 3. Normalmente, las operaciones de E/S pueden ser concurrentes, es decir, desarrollarse al mismo tiempo, ya que pueden tratarse de operaciones con distintos dispositivos, o aprovechar las caractersticas de cach de los mismos.

-7-

UT01 Introduccin a los Sistemas Operativos Sistemas Operativos Monopuesto

Entonces, podemos ejecutar los dos procesos concurrentemente, alternando entre uno y otro, segn la UCP vaya quedando libre, y solapando las operaciones de entrada salida. Vamos a ver como quedaran los anteriores trabajos si los ejecutamos concurrentemente, aprovechando los tiempos muertos.

E/S A A A A UCP E/S B B B UCP B 1 2 3 4

A A B B 5 6 tiemp o

A A A B B B

A A A A A A

A A A

B B B

B B B B

B B

7 8 9

1 2 0 1 2 3 4 5 6 7 8 9 0

Vemos aqu las necesidades de los procesos A y B, y podemos comprobar como muchas veces, B necesita la UCP y puede usarla porque A no la esta usando, hagamos esta operacin:

A E/S B UCP 1

A A A B B B 2 3 4

A B A B 5 6 tiemp o

A A B B B B A A

A A A A A A A B B B B B B A A B B 1 2 3 4 5 6 7 8 9

A B B

1
7 8 9 0

2 0 1

Aqu tenemos la ejecucin de ambos procesos, realizando de forma concurrente las operaciones de entrada salida, y aprovechando los tiempos muertos de la UCP. Fijaros como el tiempo total para ejecutar los dos procesos es de 21 unidades de tiempo, solo 1 mas que lo que lleva ejecutar un solo proceso, y muchsimo menos de las 40 que llevara ejecutar ambos procesos de forma independiente. Esta tcnica se conoce como multiprogramacin y tiene como finalidad conseguir un mejor aprovechamiento de los recursos del ordenador, ejecutando simultneamente varios programas ofreciendo una falsa apariencia de ejecucin paralela de los mismos. (Como hemos visto, la ejecucin en la UCP es de un proceso al mismo tiempo, no pudiendo ejecutar los 2 procesos a la vez). Como hemos podido ver, la multiprogramacin es una tcnica altamente recomendable, pero al llevarla a cabo, nos vamos a encontrar con una serie de problemas que habr que resolver.

-8-

S-ar putea să vă placă și