SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Sistemas Operativos                                                                Unidad 1

           1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
1.1 CONCEPTO Y FUNCIONES DEL SISTEMA OPERATIVO

Sin el software una computadora es en esencia una masa metálica sin utilidad. Con el software, una
computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía e
intervenir en muchas otras valiosas actividades para ganar el sustento.

El software para computadoras puede clasificarse en general, en 2 clases: los programas de sistema, que
controlan la operación de la computadora en sí y los programas de aplicación, los cuales resuelven
problemas para sus usuarios.

El progr ama fundamental de todos los programas de sistema, es el Sistema Operativo, que controla todos
los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de
aplicación.

¡Qué es un Sistema Operativo?
Una de las definiciones más comúnmente aceptadas expresa: “Un Sistema Operativo es un grupo de
programas de proceso con las rutinas de control necesarias para mantener continuamente operativos
dichos programas”.

Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de un
computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El
objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computación se use de
manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera
eficiente. En base en lo anterior, el objetivo primario de un Sistema Operativo es:
    • Optimizar todos los recursos del sistema para soportar los requerimientos.

El Sistema Operativo es el programa fundamental de todos los programas de sistema. El protege y libera
a los programadores de la complejidad del hardware, colocándose un nivel de software por sobre el
hardware para:
    • Controlar todas las partes del sistema.
    • Presentar al usuario una interfaz o máquina virtual.

Una de las principales funciones del Sistema Operativo es ocultar toda esta complejidad y brindar al
programador un conjunto más conveniente de instrucciones para trabajar. El Sistema Operativo se
encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se
encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga
todos los programas de aplicación y software variado.

En los años sesenta, un sistema operativo se podría haber definido como el software que controla al
hardware. Sin embargo, actualmente existe una tendencia significativa a la transferencia de las funciones
del software al firmware, es decir, microcódigo. Dicha tendencia se ha pronunciado tanto que es probable
que en algunos sistemas las funciones codificadas en firmware sobrepasen pronto a aquéllas codificadas
en software.
Es evidente que se necesita una nueva definición de sistema operativo. Se puede imaginar un sistema
operativo como los programas, instalados en el software o el firmware, que hacen utilizable el hardware.


                                     Universidad Autónoma de Nayarit                                   1
Sistemas Operativos                                                                   Unidad 1

Un sistema operativo es un conjunto de programas que administran eficientemente los recursos de un
sistema de cómputo, controlando la ejecución de programas de aplicación y actuando como una interfaz
entre el usuario y la computadora (el hardware).
Puede considerarse que un sistema operativo lleva a cabo tres funciones principales:
   •   Comodidad: Un sistema operativo hace que una computadora sea más fácil de utilizar.
   •   Eficiencia: Un sistema operativo permite que los recursos de un sistema informático se
       aprovechen de una manera más eficiente.
   •   Capacidad de evolución: Un sistema operativo deberá construirse de modo que permita el
       desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y a la vez,
       no interferir en los servicios que brinda.

Las principales características de los S. O. son:
   • Definir la “Interfaz del Usuario”.
   • Compartir el hardware entre usuarios.
   • Permitir a los usuarios compartir los datos entre ellos.
   • Planificar recursos entre usuarios.
   • Facilitar la entrada / salida.
   • Recuperarse de los errores.

Los principales recursos administrados por los S. O. son:
   • Procesadores.
   • Almacenamiento.
   • Dispositivos de e / s.
   • Datos.

Los sistemas operativos son ante todo administradores de recursos; el principal recurso que administran
es el hardware de la computadora: el procesador, los medios de almacenamiento, los dispositivos de E/S,
los dispositivos de comunicación y los datos.
Los sistemas operativos realizan muchas funciones, como proporcionar la interfaz con el usuario,
permitir que los usuarios compartan entre sí el hardware y los datos, evitar que los usuarios se interfieran
recíprocamente, planificar la distribución de los recursos entre los usuarios, facilitar la entrada y salida,
recuperarse de los errores, contabilizar el uso de los recursos, facilitar las operaciones en paralelo,
organizar los datos para lograr un acceso rápido y seguro, y manejar las comunicaciones en red.




                              Fig 1.1: Hardware, Sistema Operativo y Aplicaciones

Como sea que se decida definir los sistemas operativos, lo importante es no olvidar que constituyen una
parte integral del ambiente de cómputo y, por tanto, necesitan ser comprendidos en alguna medida por
todos los usuarios de computadoras.

                                       Universidad Autónoma de Nayarit                                     2
Sistemas Operativos                                                                    Unidad 1

1.2 ESTRUCTURA DE UN SISTEMA OPERATIVO
                                                         El esquema que suele usarse para el estudio de los
                                                         sistemas operativos recibe el nombre de “modelo
                                                         de cebolla”, debido a que esta formado por capas
                                                         concéntricas al rededor del núcleo (ver figura 1.2).



                                                         La parte interna del conjunto jerárquico de
                                                         programas que forman un sistema operativo
                                                         recibe el nombre de núcleo o kernel. Las otras
                                                         capas se encargan del manejo de la memoria, el
                                                         procesador, los dispositivos de E/S y los archivos.




¿Cómo está conforma do un sistema operativo?
Un sistema operativo está conformado básicamente por cuatro módulos:
   • Núcleo o Kernel.
   • Administrador de memoria.
   • Sistema de entrada/salida.
   • Administrador de archivos.

A veces se considera un quinto módulo: el intérprete de comandos o intérprete de instrucciones, también
llamado “shell”, el cual se encarga de "traducir" las órdenes que el usuario ingresa mediante el teclado u
otros dispositivos a un "lenguaje" que la máquina pueda entender.

Núcleo o Kernel
Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de
la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la
asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos
programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su
ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar
tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un
sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se
asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de
multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a
cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este
intervalo de tiempo, vuelve a la cola de programas.

Administrador de memoria
Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes
programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se
mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la
memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más
común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria
de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es.

                                      Universidad Autónoma de Nayarit                                      3
Sistemas Operativos                                                                  Unidad 1

Sistema de entrada/salida (E/S)
Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es
decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la
misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de
ellos (como su velocidad de operación).

Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se
almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool),
hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa
quede retenido porque el periférico no esté disponible.

Administrador de archivos
Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios
(que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo.

El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos,
manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera
con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria
principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria
principal y los medios de almacenamiento masivo para mantener la estructura de la misma.

1.3 CLASIFICACION DE LOS SISTEMAS OPERATIVOS
En esta sección se describirán las características que clasifican a los sistemas operativos, básicamente se
cubrirán tres clasificaciones:
   • sistemas operativos por su estructura (visión interna),
   • sistemas operativos por los servicios que ofrecen,
   • sistemas operativos por la forma en que ofrecen sus servicios (visión externa).
Sistemas Operativos por su Estructura
Estructura monolítica.
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 (Ver Fig. 2).




                                      Universidad Autónoma de Nayarit                                    4
Sistemas Operativos                                                                 Unidad 1

Las características fundamentales de este tipo de estructura son:
   • Construcción del programa final a base de módulos compilados separadamente que se unen a
       través del ligador.
   • Buena definición de parámetros 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 están hechos a medida, por lo que son eficientes y rápidos en su ejecución y
       gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o
       tipos de aplicaciones.
Estructura jerárquica o por capas.

A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organización
del software, del sistema operativo, donde una parte del sistema
contenía subpartes y esto organizado en forma de niveles.

Se dividió el sistema operativo en pequeñas partes, de tal forma que
cada una de ellas estuviera perfectamente definida y con un claro
interface con el resto de elementos.

Se constituyó una estructura jerárquica 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 didácticos (Ver Fig. 3). Se puede pensar también en estos sistemas como
si fueran `multicapa'. Multics y Unix caen en esa categoría.


En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra
forma de ver este tipo de sistema es la denominada de anillos concéntricos o "rings" (Ver Fig. 4).




                                      Universidad Autónoma de Nayarit                                   5
Sistemas Operativos                                                                   Unidad 1

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 más internas del sistema
operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más
externas. Las capas más internas serán, por tanto, más privilegiadas que las externas.
Máquina Virtual.

Se trata de un tipo de sistemas operativos
que presentan una interface a cada proceso,
mostrando una máquina que parece
idéntica a la máquina real subyacente.
Estos sistemas operativos separan dos
conceptos que suelen estar unidos en el
resto de sistemas: la multiprogramación y
la máquina extendida. El objetivo de los
sistemas operativos de máquina virtual es
el de integrar distintos sistemas operativos
dando la sensación de ser varias máquinas
diferentes.

El núcleo de estos sistemas operativos se
denomina monitor virtual y tiene como
misión llevar a cabo la multiprogramación,
presentando a los niveles superiores tantas
máquinas virtuales como se soliciten.
Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que
en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina
extendida al usuario (Ver Fig. 5).


Cliente-servidor ( Microkernel)

El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado
en la mayoría de las computadoras, ya sean grandes o pequeñas.

Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las
mismas actividades que los sistemas operativos convencionales.
Se separa el sistema operativo en módulos: Sistema de Archivos, Memoria, Procesos, etc. El kernel sólo
se dedica a pasar mensajes entre los módulos. La mayoría de los módulos en user-mode.
El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos
pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente
que llama al servidor correspondiente para acceder a un archivo o realizar una operación 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 núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y
procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar.
Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el
núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla
en su diseño este paradigma.


                                       Universidad Autónoma de Nayarit                                     6
Sistemas Operativos                                                                    Unidad 1

Sistemas Operativos por Servicios
Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. Esta
clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra en la Fig. 6.
                                                                       Monousuarios
                                                                       Los        sistemas         operativos
                                                                       monousuarios son aquéllos que
                                                                       soportan a un usuario a la vez, sin
                                                                       importar el número de procesadores
                                                                       que tenga la computadora o el
                                                                       número de procesos o tareas que el
                                                                       usuario pueda ejecutar en un mismo
                                                                       instante      de      tiempo.      Las
                                                                       computadoras                personales
                                                                       típicame nte se han clasificado en este
                                                                       renglón.
                                                                       Multiusuarios

                                                                       Los        sistemas        operativos
                                                                       multiusuarios son capaces de dar
                                                                       servicio a más 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 número de procesadores en la
                                                                       máquina ni el número de procesos
                                                                       que cada usuario puede ejecutar
                                                                       simultáneamente.
Monotareas
Los sistemas monotarea son aquellos que sólo 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 aquél que le permite al usuario estar realizando varias labores al
mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración
mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en
background.

Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un
rápido intercambio entre las tareas para el usuario, mejorando su productividad.

Uniproceso
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la
computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico
de este tipo de sistemas es el DOS y MacOS.

                                     Universidad Autónoma de Nayarit                                        7
Sistemas Operativos                                                                  Unidad 1

Multiproceso
Un sistema operativo multiproceso se refiere a l número de procesadores del sistema, que es más de uno y
éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de
dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, 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 demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja
de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de
los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de
trabajo bajo este esquema.

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
código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes.

Sistemas Operativos por la Forma de Ofrecer sus Servicios
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino
los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los
procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número
de sucesos o eventos.

Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como
control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el
ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo
muy rápidamente.
Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
   • Control de trenes.
   • Telecomunicaciones.
   • Sistemas de fabricación integrada.
   • Producción y distribución de energía eléctrica.
   • Control de edificios.
   • Sistemas multimedia.




Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.

                                      Universidad Autónoma de Nayarit                                    8
Sistemas Operativos                                                                Unidad 1

Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para
realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento
en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956
para aumentar la capacidad de procesamiento de los programas.

Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el
procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad
de la ejecución de los trabajos.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está
orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a
procesamiento académico.




Figura. Trabajos más comunes que realiza el Sis tema Operativo por lotes.


Sistemas Operativos de tiempo compartido.

Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una
petición a la computadora, esta la procesa tan pronto como le es posib le, y la respuesta aparecerá en la
terminal del usuario.

Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente
utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado
para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo,
principalmente en la administración de memoria principal y secundaria.




Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.

                                            Universidad Autónoma de Nayarit                            9
Sistemas Operativos                                                                 Unidad 1

Sistemas Operativos de Red

Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con
sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de
intercambiar información, 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, además de la ubicación 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
podría copiarlo a través 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.




                                Figura. Se muestra un Sistema Operativo en red.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000,
pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN
Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan
por algún recurso se puedan realizar o ejecutar al mismo tiempo.

En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma
interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo
usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente),
regresa a atender al usuario inmediatamente después de haber creado el proceso.

Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los
sistemas RS/6000 de IBM.

                                      Universidad Autónoma de Nayarit                                  10
Sistemas Operativos                                                                 Unidad 1

Sistemas Operativos Distribuídos

Los sistemas operativos distribuídos abarcan los servicios de los de red, logrando integrar recursos
(impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola
máquina virtual que el usuario acceda en forma transparente. Es decir, ahora el usuario ya no necesita
saber la ubicación 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 teórico de lo que se desearía tener como sistema operativo distribuído, 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 distribuídos y consolidar la
protección y seguridad entre los diferentes componentes del sistema y los usuarios.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone
otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite,
Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.




El sistema integrador de los microprocesadores que hace ver a las varias memorias, procesadores, y todos
los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuído.
Las razones para crear o adoptar sistemas distribuídos se dan por dos razones principales: por necesidad
(debido a que los problemas a resolver son inherentemente distribuídos) o porque se desea tener más
confiabilidad y disponibilidad de recursos.

En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la
república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de
cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo
caso, supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar
grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad.



                                      Universidad Autónoma de Nayarit                                  11
Sistemas Operativos                                                                    Unidad 1

La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores
diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos
cuantos y, más aún, se podría tener un sistema con discos en espejo ( mirror ) a través de la red, de manera
que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas
fallas, es decir, obtiene acceso a recursos en forma transparente.

Ventajas de los Sistemas Distribuídos
En general, los sistemas distribuídos (no solamente los sistemas operativos) exhiben algunas ventajas
sobre los sistemas centralizados que se describen enseguida.
   • Economía: El cociente precio/desempeño de la suma del poder de los procesadores separados
        contra el poder de uno solo centralizado es mejor cuando están distribuídos.
   • Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior.
   • Confiabilidad: Si una sola máquina fa lla, el sistema total sigue funcionando.
   • Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños sistemas, lo
        cual es mucho más difícil en un sistema centralizado y caro.

Por otro lado, los sistemas distribuídos también exhiben algunas ventajas sobre sistemas aislados. Estas
ventajas son:
   • Compartir datos: Un sistema distribuído permite compartir datos más fácilmente que los sistemas
       aislados, que tendrían que duplicarlos en cada nodo para lograrlo.
   • Compartir dispositivo s: Un sistema distribuído permite accesar dispositivos desde cualquier nodo
       en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuído logra
       un efecto sinergético.

Desventajas de los Sistemas Distribuídos
Así como los sistemas distribuídos exhiben grandes ventajas, también se pueden identificar algunas
desventajas, algunas de ellas tan serias que han frenado la producción comercial de sistemas operativos
en la actualidad. El problema más importante en la creación de sistemas distribuídos es el software: los
problemas de compartición de datos y recursos es tan complejo que los mecanismos de solución generan
mucha sobrecarga al sistema haciéndolo ineficiente. El checar, por ejemplo, quiénes tienen acceso a
algunos recursos y quiénes no, el aplicar los mecanismos de protección y registro de permisos consume
demasiados recursos. En general, las soluciones presentes para estos problemas están aún en pañales.

Otros problemas de los sistemas operativos distribuídos 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 código `paralelizable' es un trabajo ardúo, pero necesario para
dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr
la distribución. 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
distribuídos es aún má s complejo, y por lo tanto, necesitará de algoritmos más complejos con la inherente
sobrecarga esperada.

Por otro lado, en el tema de sistemas distribuídos existen varios conceptos importantes referentes al
hardware que no se ve remos en este momento: multicomputadoras, multiprocesadores, sistemas
acoplados débil y fuertemente, etc.


                                        Universidad Autónoma de Nayarit                                   12
Sistemas Operativos                                                                  Unidad 1

1.4 HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Historia de los Sistemas Operativos
Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales
características de un Sistema Operativo contemporáneo, es útil considerar como han ido evolucionando
éstos con el tiempo. Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas
Operativos.

La primera de estas versiones podría ser esta:
   • En los 40's, se introducen los programas bit a bit, por medio de interruptores mecánicos y después
       se introdujo el lenguaje máquina que trabajaba por tarjetas perforadas.
   • Con las primeras computadoras, desde finales de los años 40 hasta la mitad de los años 50, el
       programador interactuaba de manera directa con el hardware de la computadora, no existía
       realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de
       datos y los programas se realizaban a través del lenguaje máquina (bits) o a través de
       interruptores.
   • Durante los años 50's y 60's.- A principio de los 50's, la compañía General's Motors implanto el
       primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales
       permiten que los usuarios (que en ese tiempo eran programadores, diseñadores, capturistas, etc.),
       se encarguen de modificar sus programas. Establecían o apartaban tiempo, metían o introducían
       sus programas, corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en
       serie. Todo esto se traducía en pérdida de tiempo y tiempos de programas excesivos.
   • En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los
       procesos Ba tch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos
       juntos de una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el
       cual se considera como el primer tipo de Sistema Operativo.
   • En los 80's, inició el auge de la INTERNET en los Estados Unidos de América. A finales de los
       años 80's comienza el gran auge y evolución de los Sistemas Operativos. Se descubre el concepto
       de multiprogramación que consiste en tener cargados en memoria a varios trabajos al mismo
       tiempo, tema principal de los Sistemas Operativos actuales.
   • Los 90's y el futuro, entramos a la era de la computación distribuida y del multiprocesamiento a
       través de múltiples redes de computadoras, aprovechando el ciclo del procesador.
   • Se tendrá una configuración dinámica con un reconocimiento inmediato de dispositivos y
       software que se añada o elimine de las redes a través de procesos de registro y localizadores.
   • La conectividad se facilita gracias a estándares y protocolos de sistemas abiertos por
       organizaciones como la Org. Intern. de normas, fundación de software abierto, todo estará mas
       controlado por los protocolos de comunicación OSI y por la red de servicios digital ISDN.




                                      Universidad Autónoma de Nayarit                                   13
Sistemas Operativos                                                                  Unidad 1

Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o generaciones:
• Primera generación (1945-1955): bulbos y conexiones:

       o   Carencia de S. O.

       o   En los años cincuenta comienzan como transición entre trabajos, haciendo la misma más
           simple.

       o   Completo acceso al lenguaje de máquina.
•   Segunda generación (1955-1965): transistores y sistemas de procesamiento por lotes (batch):

       o   En los años sesenta aparecen los S. O. para sistemas compartidos con:

               §   Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo
                   en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a
                   otro.

               §   Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para
                   incrementar el poder de procesamiento.
       o   Posteriorme nte aparece la independencia de dispositivo:

               §   El programa del usuario especifica las características de los dispositivos que requieren
                   los archivos.

               §   El S. O. asigna los dispositivos correspondientes según los requerimientos y las
                   disponibilidades.
•   Tercera generación (1965-1980): circuitos integrados y multiprogramación:

       o   Difusión de la multiprogramación:

               §   Partición de la memoria en porciones, con trabajos distintos en cada una de ellas.

               §   Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para
                   utilizar la CPU para otros procesos.
       o   Protección por hardware del contenido de cada partición de memoria.

       o   Aparición de técnicas de spooling :

               §   Simultaneous Peripheral Operation On Line: operación simultánea y en línea de
                   periféricos.

               §   Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios rápidos
                   (discos), para disminuir el impacto de los periféricos más lentos.

       o   Son sistemas de modos múltiples, es decir que deben soportar sistemas de propósitos
           generales; son grandes y complejos pero muy poderosos.
       o   Interponen una capa de software entre el usuario y el hardware.



                                      Universidad Autónoma de Nayarit                                   14
Sistemas Operativos                                                                Unidad 1

       o   Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los
           recursos requeridos.

       o   Soportan timesharing (tiempo compartido), variante de la multiprogramación con usuarios
           conectados mediante terminales en línea, permitiendo la operación en modo interactivo o
           conversacional.

       o   Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes,
           especialmente para usos industriales o militares.
       o   Se difunden las computadoras de rango medio.
•   Cuarta generación (1980-1990): computadoras personales:

       o   Aparición de software amigable con el usuario, destinado a usuarios no profesionales y con
           una interfase gráfica muy desarrollada.
       o   Se hacen populares el MS-DOS y UNIX.

       o   Desarrollo de sistemas operativos de red y sistemas operativos distribuidos.

       o   Sistemas operativos de red:
              §   Los usuarios están conscientes de la existencia de varias computadoras conectadas.

              §   Cada máquina ejecuta su propio S. O. local.

              §   Son similares a los S. O. de un solo procesador pero con el agregado de:
                      §   Controlador de interfaz de la red y su software de bajo nivel.

                      §   Software para conexión y acceso a archivos remotos, etc.

       o   Sistemas operativos distribuidos:

              §   Aparece ante los usuarios como un S. O. de un solo procesador, aún cuando de soporte
                  a varios procesadores.

              §   Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se
                  encuentran sus archivos, ya que lo debe administrar el S. O. automáticamente.

       o   Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras
           personales (PC).

       o   Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones
           de datos.

       o   El S. O. crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del
           funcionamiento interno de la máquina.
       o   Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación

       o   Para los 90's el paradigma de la programación orientada a objetos cobra auge, así como el
           manejo de objetos desde los sistemas operativos.

                                     Universidad Autónoma de Nayarit                                   15
Sistemas Operativos                                                                   Unidad 1

1.5 ANÁLISIS DE LOS SISTEMAS OPERATIVOS MÁS COMERCIALES.

Windows 98
http://www.microsoft.com/windows98/ Este es uno de los sistemas operativos de escritorio con mayor
cantidad de usuarios en el mundo, ya que se encuentra a mitad de camino (en términos de tiempo) entre la
aparición de Windows 95 y de Windows 2000, entre sus principales características se encuentra el
soporte real a multitarea (en Win95 era simulado).
Windows 2000
http://www.microsoft.com/windows2000/ Win2000 es la nueva generación del sistema operativo para
redes de esta empresa (Windows NT), constituyéndose en una mejora significativa desde varias
perspectivas, entre las que cabe destacar la estabilidad.
Windows XP
http://www.microsoft.com/windowsxp Este sistema operativo hace uso del nuevo «motor de sistema»
que Microsoft desarrolló para Windows 2000, por lo tanto integra altas prestaciones gráficas junto a
características de trabajo corporativo (en redes) heredadas de Win2000.
Linux
Es un sistema libre desarrollado por miles de personas a través de Internet, y que es el sistema operativo
de mayor crecimiento en la actualidad, y el segundo de mayor uso en el mundo (tomando como uno sólo
a toda la gama de la familia Windows.
Mac OS X
http://www.apple.com/macosx/ Es un sistema operativo desarrollado por Apple Computer Inc., es una
reescritura prácticamente completa de su sistema operativo Macintosh, este nuevo sistema Mac está
basado en el sistema Darwin http://developer.apple.com/darwin/, un proyecto «OpenSource» (aunque
esta es la definición que da Apple, prefiero utilizar el termino «Libre»), el cual utiliza características de
otros sistemas UNIX como Mach, FreeBSD y otros, la idea detrás de Mac OS X y por supuesto de
Darwin es crear un completo sistema operativo con la flexibilidad y robustez de un UNIX y la facilidad
de uso que siempre a caracterisado a los MAC.
FreeBSD
 http://www.freebsd.org FreeBSD es un sistema operativo derivado del 386 BSD, es un sistema operativo
libre (y gratuito) creado por cientos de desarrolladores, es altamente usado como servidor de Internet
debido a sus altas prestaciones en comunicaciones,
NetBSD
 http://www.netbsd.org NetBSD es tal vez el sistema operativo más portado en el mundo, es otro
descendie nte de 4.4 BSD y 386 BSD, por lo cual también se distribuye bajo los términos de la licencia
BSD4.1 , lo que implica que puede ser libremente distribuido en forma binaria o de código fuente. El
principal objetivo de NetBSD es la portabilidad, obviamente sin descuidar seguridad y estabilidad como
la mayoría de derivados UNIX.
OpenBSD
 http://www.openbsd.org Este sistema operativo es derivado de NetBSD, sus principales metas son la
seguridad, la estandarización y la portabilidad, está catalogado como el sistema operativo más seguro del
mundo (aunque en términos de seguridad no se puede hablar de una verdad absoluta).

                                       Universidad Autónoma de Nayarit                                    16

Contenu connexe

Tendances

Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
laidysita
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
G Hoyos A
 
Vision general de los sistemas operativos
Vision general de los sistemas operativosVision general de los sistemas operativos
Vision general de los sistemas operativos
superone314
 
Trabajo Claudia Correa Sistema Operativo
Trabajo Claudia Correa Sistema OperativoTrabajo Claudia Correa Sistema Operativo
Trabajo Claudia Correa Sistema Operativo
CLAUPATY79
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
CESAR
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
fernel902
 

Tendances (17)

Sistemas operativos - trabajo darwin
Sistemas operativos -  trabajo darwinSistemas operativos -  trabajo darwin
Sistemas operativos - trabajo darwin
 
Sistemas[1]
Sistemas[1]Sistemas[1]
Sistemas[1]
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 
Vision general de los sistemas operativos
Vision general de los sistemas operativosVision general de los sistemas operativos
Vision general de los sistemas operativos
 
Cap1 2
Cap1 2Cap1 2
Cap1 2
 
Cap1 2
Cap1 2Cap1 2
Cap1 2
 
Presentación1
Presentación1Presentación1
Presentación1
 
Trabajo Claudia Correa Sistema Operativo
Trabajo Claudia Correa Sistema OperativoTrabajo Claudia Correa Sistema Operativo
Trabajo Claudia Correa Sistema Operativo
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
 
Fundamentos de sistemas operativos final
Fundamentos de sistemas operativos finalFundamentos de sistemas operativos final
Fundamentos de sistemas operativos final
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
 
Tarea de DFSO COBAEJ #10
Tarea de DFSO COBAEJ #10Tarea de DFSO COBAEJ #10
Tarea de DFSO COBAEJ #10
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Trabajo de arquitectura cerrada windows
Trabajo de arquitectura cerrada windowsTrabajo de arquitectura cerrada windows
Trabajo de arquitectura cerrada windows
 

En vedette (10)

Unidad4
Unidad4Unidad4
Unidad4
 
Programa admo. de redes de computadoras
Programa   admo. de redes de computadorasPrograma   admo. de redes de computadoras
Programa admo. de redes de computadoras
 
Ejemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNAEjemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNA
 
Programa fundamento de redes de datos
Programa   fundamento de redes de datosPrograma   fundamento de redes de datos
Programa fundamento de redes de datos
 
Unidad7
Unidad7Unidad7
Unidad7
 
Unidad6
Unidad6Unidad6
Unidad6
 
Programa sistemas-operativos
Programa  sistemas-operativosPrograma  sistemas-operativos
Programa sistemas-operativos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad4
Unidad4Unidad4
Unidad4
 
Modelos de organización
Modelos de  organizaciónModelos de  organización
Modelos de organización
 

Similaire à Unidad 1

5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
Martin Lautrerio
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
Martin Lautrerio
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
Noeljg69
 
Trabajo so
Trabajo soTrabajo so
Trabajo so
Noeljg69
 
1. CaracteríSticas Del Sistema Operativo
1. CaracteríSticas Del Sistema Operativo1. CaracteríSticas Del Sistema Operativo
1. CaracteríSticas Del Sistema Operativo
CANDIDO RUIZ
 
Ejercicios de sistemas operativos
Ejercicios de sistemas operativosEjercicios de sistemas operativos
Ejercicios de sistemas operativos
daw106
 

Similaire à Unidad 1 (20)

5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
 
que es un sistema operativo
 que es un sistema operativo que es un sistema operativo
que es un sistema operativo
 
TRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOSTRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOS
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Unidad 1 Sistemas Operativos
Unidad 1 Sistemas OperativosUnidad 1 Sistemas Operativos
Unidad 1 Sistemas Operativos
 
Trabajo so
Trabajo soTrabajo so
Trabajo so
 
Organizacion de los sistemas operativos
Organizacion de los sistemas operativosOrganizacion de los sistemas operativos
Organizacion de los sistemas operativos
 
1. CaracteríSticas Del Sistema Operativo
1. CaracteríSticas Del Sistema Operativo1. CaracteríSticas Del Sistema Operativo
1. CaracteríSticas Del Sistema Operativo
 
Concepto y definición de sistemas operativos
Concepto y definición de sistemas operativosConcepto y definición de sistemas operativos
Concepto y definición de sistemas operativos
 
Ejercicios de sistemas operativos
Ejercicios de sistemas operativosEjercicios de sistemas operativos
Ejercicios de sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos resumen
Sistemas operativos resumenSistemas operativos resumen
Sistemas operativos resumen
 
Actividad 2
Actividad 2Actividad 2
Actividad 2
 
Actividad 2 y 3
Actividad 2 y 3Actividad 2 y 3
Actividad 2 y 3
 
Actividad 2 y 3
Actividad 2 y 3Actividad 2 y 3
Actividad 2 y 3
 
Actividad 2 informtica
Actividad 2 informticaActividad 2 informtica
Actividad 2 informtica
 
Actividad
ActividadActividad
Actividad
 
actividad 2 y 3
actividad 2 y 3actividad 2 y 3
actividad 2 y 3
 

Plus de Universidad Autónoma de Nayarit

Plus de Universidad Autónoma de Nayarit (20)

Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8
 
Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7
 
Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6
 
Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5
 
Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4
 
Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3
 
Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2
 
Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1
 
Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9
 
Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2 Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2
 
Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1
 
Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9
 
Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8
 
Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7 Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7
 
Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6
 
Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5 Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5
 
Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4
 
Fundamento de Redes - Capitulo 3
Fundamento de Redes - Capitulo 3Fundamento de Redes - Capitulo 3
Fundamento de Redes - Capitulo 3
 
Unidad5
Unidad5Unidad5
Unidad5
 
Unidad3
Unidad3Unidad3
Unidad3
 

Unidad 1

  • 1. Sistemas Operativos Unidad 1 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS 1.1 CONCEPTO Y FUNCIONES DEL SISTEMA OPERATIVO Sin el software una computadora es en esencia una masa metálica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general, en 2 clases: los programas de sistema, que controlan la operación de la computadora en sí y los programas de aplicación, los cuales resuelven problemas para sus usuarios. El progr ama fundamental de todos los programas de sistema, es el Sistema Operativo, que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación. ¡Qué es un Sistema Operativo? Una de las definiciones más comúnmente aceptadas expresa: “Un Sistema Operativo es un grupo de programas de proceso con las rutinas de control necesarias para mantener continuamente operativos dichos programas”. Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. En base en lo anterior, el objetivo primario de un Sistema Operativo es: • Optimizar todos los recursos del sistema para soportar los requerimientos. El Sistema Operativo es el programa fundamental de todos los programas de sistema. El protege y libera a los programadores de la complejidad del hardware, colocándose un nivel de software por sobre el hardware para: • Controlar todas las partes del sistema. • Presentar al usuario una interfaz o máquina virtual. Una de las principales funciones del Sistema Operativo es ocultar toda esta complejidad y brindar al programador un conjunto más conveniente de instrucciones para trabajar. El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado. En los años sesenta, un sistema operativo se podría haber definido como el software que controla al hardware. Sin embargo, actualmente existe una tendencia significativa a la transferencia de las funciones del software al firmware, es decir, microcódigo. Dicha tendencia se ha pronunciado tanto que es probable que en algunos sistemas las funciones codificadas en firmware sobrepasen pronto a aquéllas codificadas en software. Es evidente que se necesita una nueva definición de sistema operativo. Se puede imaginar un sistema operativo como los programas, instalados en el software o el firmware, que hacen utilizable el hardware. Universidad Autónoma de Nayarit 1
  • 2. Sistemas Operativos Unidad 1 Un sistema operativo es un conjunto de programas que administran eficientemente los recursos de un sistema de cómputo, controlando la ejecución de programas de aplicación y actuando como una interfaz entre el usuario y la computadora (el hardware). Puede considerarse que un sistema operativo lleva a cabo tres funciones principales: • Comodidad: Un sistema operativo hace que una computadora sea más fácil de utilizar. • Eficiencia: Un sistema operativo permite que los recursos de un sistema informático se aprovechen de una manera más eficiente. • Capacidad de evolución: Un sistema operativo deberá construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y a la vez, no interferir en los servicios que brinda. Las principales características de los S. O. son: • Definir la “Interfaz del Usuario”. • Compartir el hardware entre usuarios. • Permitir a los usuarios compartir los datos entre ellos. • Planificar recursos entre usuarios. • Facilitar la entrada / salida. • Recuperarse de los errores. Los principales recursos administrados por los S. O. son: • Procesadores. • Almacenamiento. • Dispositivos de e / s. • Datos. Los sistemas operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware de la computadora: el procesador, los medios de almacenamiento, los dispositivos de E/S, los dispositivos de comunicación y los datos. Los sistemas operativos realizan muchas funciones, como proporcionar la interfaz con el usuario, permitir que los usuarios compartan entre sí el hardware y los datos, evitar que los usuarios se interfieran recíprocamente, planificar la distribución de los recursos entre los usuarios, facilitar la entrada y salida, recuperarse de los errores, contabilizar el uso de los recursos, facilitar las operaciones en paralelo, organizar los datos para lograr un acceso rápido y seguro, y manejar las comunicaciones en red. Fig 1.1: Hardware, Sistema Operativo y Aplicaciones Como sea que se decida definir los sistemas operativos, lo importante es no olvidar que constituyen una parte integral del ambiente de cómputo y, por tanto, necesitan ser comprendidos en alguna medida por todos los usuarios de computadoras. Universidad Autónoma de Nayarit 2
  • 3. Sistemas Operativos Unidad 1 1.2 ESTRUCTURA DE UN SISTEMA OPERATIVO El esquema que suele usarse para el estudio de los sistemas operativos recibe el nombre de “modelo de cebolla”, debido a que esta formado por capas concéntricas al rededor del núcleo (ver figura 1.2). La parte interna del conjunto jerárquico de programas que forman un sistema operativo recibe el nombre de núcleo o kernel. Las otras capas se encargan del manejo de la memoria, el procesador, los dispositivos de E/S y los archivos. ¿Cómo está conforma do un sistema operativo? Un sistema operativo está conformado básicamente por cuatro módulos: • Núcleo o Kernel. • Administrador de memoria. • Sistema de entrada/salida. • Administrador de archivos. A veces se considera un quinto módulo: el intérprete de comandos o intérprete de instrucciones, también llamado “shell”, el cual se encarga de "traducir" las órdenes que el usuario ingresa mediante el teclado u otros dispositivos a un "lenguaje" que la máquina pueda entender. Núcleo o Kernel Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas. Administrador de memoria Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es. Universidad Autónoma de Nayarit 3
  • 4. Sistemas Operativos Unidad 1 Sistema de entrada/salida (E/S) Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. Administrador de archivos Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma. 1.3 CLASIFICACION DE LOS SISTEMAS OPERATIVOS En esta sección se describirán las características que clasifican a los sistemas operativos, básicamente se cubrirán tres clasificaciones: • sistemas operativos por su estructura (visión interna), • sistemas operativos por los servicios que ofrecen, • sistemas operativos por la forma en que ofrecen sus servicios (visión externa). Sistemas Operativos por su Estructura Estructura monolítica. 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 (Ver Fig. 2). Universidad Autónoma de Nayarit 4
  • 5. Sistemas Operativos Unidad 1 Las características fundamentales de este tipo de estructura son: • Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador. • Buena definición de parámetros 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 están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones. Estructura jerárquica o por capas. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles. Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. Se constituyó una estructura jerárquica 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 didácticos (Ver Fig. 3). Se puede pensar también en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría. En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concéntricos o "rings" (Ver Fig. 4). Universidad Autónoma de Nayarit 5
  • 6. Sistemas Operativos Unidad 1 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 más internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas. Máquina Virtual. Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario (Ver Fig. 5). Cliente-servidor ( Microkernel) El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales. Se separa el sistema operativo en módulos: Sistema de Archivos, Memoria, Procesos, etc. El kernel sólo se dedica a pasar mensajes entre los módulos. La mayoría de los módulos en user-mode. El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operación 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 núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla en su diseño este paradigma. Universidad Autónoma de Nayarit 6
  • 7. Sistemas Operativos Unidad 1 Sistemas Operativos por Servicios Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. Esta clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra en la Fig. 6. Monousuarios Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicame nte se han clasificado en este renglón. Multiusuarios Los sistemas operativos multiusuarios son capaces de dar servicio a más 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 número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. Monotareas Los sistemas monotarea son aquellos que sólo 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 aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad. Uniproceso Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. Universidad Autónoma de Nayarit 7
  • 8. Sistemas Operativos Unidad 1 Multiproceso Un sistema operativo multiproceso se refiere a l número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, 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 demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema. 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 código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Sistemas Operativos por la Forma de Ofrecer sus Servicios Sistemas Operativos de tiempo real. Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes: • Control de trenes. • Telecomunicaciones. • Sistemas de fabricación integrada. • Producción y distribución de energía eléctrica. • Control de edificios. • Sistemas multimedia. Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Universidad Autónoma de Nayarit 8
  • 9. Sistemas Operativos Unidad 1 Sistemas Operativos por lotes. Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico. Figura. Trabajos más comunes que realiza el Sis tema Operativo por lotes. Sistemas Operativos de tiempo compartido. Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posib le, y la respuesta aparecerá en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Universidad Autónoma de Nayarit 9
  • 10. Sistemas Operativos Unidad 1 Sistemas Operativos de Red Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, 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, además de la ubicación 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 podría copiarlo a través 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. Figura. Se muestra un Sistema Operativo en red. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic. Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM. Universidad Autónoma de Nayarit 10
  • 11. Sistemas Operativos Unidad 1 Sistemas Operativos Distribuídos Los sistemas operativos distribuídos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina virtual que el usuario acceda en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación 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 teórico de lo que se desearía tener como sistema operativo distribuído, 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 distribuídos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. El sistema integrador de los microprocesadores que hace ver a las varias memorias, procesadores, y todos los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuído. Las razones para crear o adoptar sistemas distribuídos se dan por dos razones principales: por necesidad (debido a que los problemas a resolver son inherentemente distribuídos) o porque se desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad. Universidad Autónoma de Nayarit 11
  • 12. Sistemas Operativos Unidad 1 La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos cuantos y, más aún, se podría tener un sistema con discos en espejo ( mirror ) a través de la red, de manera que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente. Ventajas de los Sistemas Distribuídos En general, los sistemas distribuídos (no solamente los sistemas operativos) exhiben algunas ventajas sobre los sistemas centralizados que se describen enseguida. • Economía: El cociente precio/desempeño de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando están distribuídos. • Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. • Confiabilidad: Si una sola máquina fa lla, el sistema total sigue funcionando. • Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños sistemas, lo cual es mucho más difícil en un sistema centralizado y caro. Por otro lado, los sistemas distribuídos también exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son: • Compartir datos: Un sistema distribuído permite compartir datos más fácilmente que los sistemas aislados, que tendrían que duplicarlos en cada nodo para lograrlo. • Compartir dispositivo s: Un sistema distribuído permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuído logra un efecto sinergético. Desventajas de los Sistemas Distribuídos Así como los sistemas distribuídos exhiben grandes ventajas, también se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la producción comercial de sistemas operativos en la actualidad. El problema más importante en la creación de sistemas distribuídos es el software: los problemas de compartición de datos y recursos es tan complejo que los mecanismos de solución generan mucha sobrecarga al sistema haciéndolo ineficiente. El checar, por ejemplo, quiénes tienen acceso a algunos recursos y quiénes no, el aplicar los mecanismos de protección y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas están aún en pañales. Otros problemas de los sistemas operativos distribuídos 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 código `paralelizable' es un trabajo ardúo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la distribución. 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 distribuídos es aún má s complejo, y por lo tanto, necesitará de algoritmos más complejos con la inherente sobrecarga esperada. Por otro lado, en el tema de sistemas distribuídos existen varios conceptos importantes referentes al hardware que no se ve remos en este momento: multicomputadoras, multiprocesadores, sistemas acoplados débil y fuertemente, etc. Universidad Autónoma de Nayarit 12
  • 13. Sistemas Operativos Unidad 1 1.4 HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS Historia de los Sistemas Operativos Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales características de un Sistema Operativo contemporáneo, es útil considerar como han ido evolucionando éstos con el tiempo. Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas Operativos. La primera de estas versiones podría ser esta: • En los 40's, se introducen los programas bit a bit, por medio de interruptores mecánicos y después se introdujo el lenguaje máquina que trabajaba por tarjetas perforadas. • Con las primeras computadoras, desde finales de los años 40 hasta la mitad de los años 50, el programador interactuaba de manera directa con el hardware de la computadora, no existía realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y los programas se realizaban a través del lenguaje máquina (bits) o a través de interruptores. • Durante los años 50's y 60's.- A principio de los 50's, la compañía General's Motors implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los usuarios (que en ese tiempo eran programadores, diseñadores, capturistas, etc.), se encarguen de modificar sus programas. Establecían o apartaban tiempo, metían o introducían sus programas, corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se traducía en pérdida de tiempo y tiempos de programas excesivos. • En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los procesos Ba tch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el cual se considera como el primer tipo de Sistema Operativo. • En los 80's, inició el auge de la INTERNET en los Estados Unidos de América. A finales de los años 80's comienza el gran auge y evolución de los Sistemas Operativos. Se descubre el concepto de multiprogramación que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema principal de los Sistemas Operativos actuales. • Los 90's y el futuro, entramos a la era de la computación distribuida y del multiprocesamiento a través de múltiples redes de computadoras, aprovechando el ciclo del procesador. • Se tendrá una configuración dinámica con un reconocimiento inmediato de dispositivos y software que se añada o elimine de las redes a través de procesos de registro y localizadores. • La conectividad se facilita gracias a estándares y protocolos de sistemas abiertos por organizaciones como la Org. Intern. de normas, fundación de software abierto, todo estará mas controlado por los protocolos de comunicación OSI y por la red de servicios digital ISDN. Universidad Autónoma de Nayarit 13
  • 14. Sistemas Operativos Unidad 1 Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o generaciones: • Primera generación (1945-1955): bulbos y conexiones: o Carencia de S. O. o En los años cincuenta comienzan como transición entre trabajos, haciendo la misma más simple. o Completo acceso al lenguaje de máquina. • Segunda generación (1955-1965): transistores y sistemas de procesamiento por lotes (batch): o En los años sesenta aparecen los S. O. para sistemas compartidos con: § Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a otro. § Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento. o Posteriorme nte aparece la independencia de dispositivo: § El programa del usuario especifica las características de los dispositivos que requieren los archivos. § El S. O. asigna los dispositivos correspondientes según los requerimientos y las disponibilidades. • Tercera generación (1965-1980): circuitos integrados y multiprogramación: o Difusión de la multiprogramación: § Partición de la memoria en porciones, con trabajos distintos en cada una de ellas. § Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para utilizar la CPU para otros procesos. o Protección por hardware del contenido de cada partición de memoria. o Aparición de técnicas de spooling : § Simultaneous Peripheral Operation On Line: operación simultánea y en línea de periféricos. § Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios rápidos (discos), para disminuir el impacto de los periféricos más lentos. o Son sistemas de modos múltiples, es decir que deben soportar sistemas de propósitos generales; son grandes y complejos pero muy poderosos. o Interponen una capa de software entre el usuario y el hardware. Universidad Autónoma de Nayarit 14
  • 15. Sistemas Operativos Unidad 1 o Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los recursos requeridos. o Soportan timesharing (tiempo compartido), variante de la multiprogramación con usuarios conectados mediante terminales en línea, permitiendo la operación en modo interactivo o conversacional. o Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares. o Se difunden las computadoras de rango medio. • Cuarta generación (1980-1990): computadoras personales: o Aparición de software amigable con el usuario, destinado a usuarios no profesionales y con una interfase gráfica muy desarrollada. o Se hacen populares el MS-DOS y UNIX. o Desarrollo de sistemas operativos de red y sistemas operativos distribuidos. o Sistemas operativos de red: § Los usuarios están conscientes de la existencia de varias computadoras conectadas. § Cada máquina ejecuta su propio S. O. local. § Son similares a los S. O. de un solo procesador pero con el agregado de: § Controlador de interfaz de la red y su software de bajo nivel. § Software para conexión y acceso a archivos remotos, etc. o Sistemas operativos distribuidos: § Aparece ante los usuarios como un S. O. de un solo procesador, aún cuando de soporte a varios procesadores. § Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se encuentran sus archivos, ya que lo debe administrar el S. O. automáticamente. o Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras personales (PC). o Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos. o El S. O. crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del funcionamiento interno de la máquina. o Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación o Para los 90's el paradigma de la programación orientada a objetos cobra auge, así como el manejo de objetos desde los sistemas operativos. Universidad Autónoma de Nayarit 15
  • 16. Sistemas Operativos Unidad 1 1.5 ANÁLISIS DE LOS SISTEMAS OPERATIVOS MÁS COMERCIALES. Windows 98 http://www.microsoft.com/windows98/ Este es uno de los sistemas operativos de escritorio con mayor cantidad de usuarios en el mundo, ya que se encuentra a mitad de camino (en términos de tiempo) entre la aparición de Windows 95 y de Windows 2000, entre sus principales características se encuentra el soporte real a multitarea (en Win95 era simulado). Windows 2000 http://www.microsoft.com/windows2000/ Win2000 es la nueva generación del sistema operativo para redes de esta empresa (Windows NT), constituyéndose en una mejora significativa desde varias perspectivas, entre las que cabe destacar la estabilidad. Windows XP http://www.microsoft.com/windowsxp Este sistema operativo hace uso del nuevo «motor de sistema» que Microsoft desarrolló para Windows 2000, por lo tanto integra altas prestaciones gráficas junto a características de trabajo corporativo (en redes) heredadas de Win2000. Linux Es un sistema libre desarrollado por miles de personas a través de Internet, y que es el sistema operativo de mayor crecimiento en la actualidad, y el segundo de mayor uso en el mundo (tomando como uno sólo a toda la gama de la familia Windows. Mac OS X http://www.apple.com/macosx/ Es un sistema operativo desarrollado por Apple Computer Inc., es una reescritura prácticamente completa de su sistema operativo Macintosh, este nuevo sistema Mac está basado en el sistema Darwin http://developer.apple.com/darwin/, un proyecto «OpenSource» (aunque esta es la definición que da Apple, prefiero utilizar el termino «Libre»), el cual utiliza características de otros sistemas UNIX como Mach, FreeBSD y otros, la idea detrás de Mac OS X y por supuesto de Darwin es crear un completo sistema operativo con la flexibilidad y robustez de un UNIX y la facilidad de uso que siempre a caracterisado a los MAC. FreeBSD http://www.freebsd.org FreeBSD es un sistema operativo derivado del 386 BSD, es un sistema operativo libre (y gratuito) creado por cientos de desarrolladores, es altamente usado como servidor de Internet debido a sus altas prestaciones en comunicaciones, NetBSD http://www.netbsd.org NetBSD es tal vez el sistema operativo más portado en el mundo, es otro descendie nte de 4.4 BSD y 386 BSD, por lo cual también se distribuye bajo los términos de la licencia BSD4.1 , lo que implica que puede ser libremente distribuido en forma binaria o de código fuente. El principal objetivo de NetBSD es la portabilidad, obviamente sin descuidar seguridad y estabilidad como la mayoría de derivados UNIX. OpenBSD http://www.openbsd.org Este sistema operativo es derivado de NetBSD, sus principales metas son la seguridad, la estandarización y la portabilidad, está catalogado como el sistema operativo más seguro del mundo (aunque en términos de seguridad no se puede hablar de una verdad absoluta). Universidad Autónoma de Nayarit 16