0% encontró este documento útil (0 votos)
23 vistas24 páginas

Cap1 SO

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1/ 24

I Capitulo 1.

1.1 Conceptos de Sistema Operativo


En los aos 60 un Sistema Operativo se define como el software que controla el
hardware.
Esta definicin, sin embargo, se ha ido quedando obsoleta, porque progresivamente
hasta hoy una parte de las funciones del Sistema Operativo no estn implementadas
en software, sino en microcdigo.
Tambin se dice que un SO es un conjunto de programas que por medio de
abstracciones ponen el hardware del ordenador, de modo seguro, a disposicin del
usuario.
A continuacin se presentan otras definiciones de sistemas operativos dadas por los
siguientes autores:
H. Deitel: un SO es un programa que acta como interfaz entre el usuario de un
ordenador y el HW del mismo, ofreciendo el entorno necesario para que el usuario
pueda ejecutar programas
Katzan: conjunto de programas y datos que ayudan a crear otros programas y a
controlar su ejecucin
Madnik y Donovan: conjunto de programas que gestionan los recursos del sistema,
optimizan su uso y resuelven conflictos.
(Stallings) Un SO es un programa que controla la ejecucin de los programas de
aplicacin y que acta como interfaz entre el usuario del computador y el hardware del
mismo.
(Milenkovic): un SO puede ser contemplado como una coleccin organizada de
extensiones software del hardware, consistente en rutinas de control que hacen
funcionar un computador y proporcionan un entorno para la ejecucin de los
programas.

Podemos definir, hoy en da, un Sistema Operativo como un conjunto de programas,


implementados tanto en software como en firmware, que hacen accesible el hardware.
Este estar accesible significa: hacer el sistema disponible en la forma deseada, hacer
que aumente el Rendimiento Total del sistema. Podemos decir que el Rendimiento
Total se forma de dos partes:
1. Rendimiento Especfico (Throughput), que es el volumen de trabajo por unidad de
tiempo.
2. Tiempo de respuesta (Disponibilidad), que debe ser bueno.
Por tanto, el Sistema Operativo en s mismo es un interface entre el hardware del
computador y el usuario: es por esto que se suele denominar al Sistema Operativo
Gestor de Recursos.
Finalmente, tenemos los Programas y Aplicaciones que manejan los programadores:
Operador: el encargado de dirigir el Sistema
Programador de Sistema: de mantenerlo
Administrador de Sistema: de controlarlo
_

En fin, podemos concluir que el Sistema Operativo es un sistema de comunicacin


entre dos tipos de recursos, el hardware y el usuario: est formado por software y
firmware, y consigue un mayor rendimiento del sistema.

1.1.1 Funciones y caractersticas de los Sistemas Operativos


Funciones
El Sistema Operativo crea el entorno en el que se ejecutan los procesos y para ello
ofrece tanto a los procesos como a los usuarios una serie de funciones que varan
mucho de unos sistemas a otros.
Se pueden agrupar en tres grandes categora:

Gestin de los recursos de la computadora: asignacin de recursos, proteccin y


contabilidad.

Ejecucin de servicios para los programas

Ejecucin de los mandatos de los usuarios

U s u a rio s
P ro g ra m a s d e u s u a rio
S h e ll
S e rv ic io s
N c le o

A PI
S is te m a
o p e ra tiv o

H a rd w a re
Todo Sistema Operativo tiene que tener 3 prestaciones fundamentales:
1. Permitir que existan n usuarios trabajando sobre m aplicaciones (simultneamente
o no).
2. Adems tiene que tener una serie de facilidades: procesadores de texto,
compiladores, ensambladores, montadores...
3. Debe asegurar un flujo continuo de trabajo en forma de tareas batch o interactivas
multiacceso.
Las funciones de todo Sistema Operativo conforman las distintas partes con que se
construye un SO. Las funciones que tiene un Sistema Operativo de propsito general
varan mucho de unos a otros, pero las que todos tienen que tener son las siguientes:
- Multiacceso
- Gestin de memoria
- Secuenciamiento de trabajos
- Control de procesos
- Intrprete de OSCL
- Gestin de operaciones de E/S
- Gestin de dispositivos y ficheros
- Gestin de interrupciones
- Planificacin
- Control de errores y proteccin
2

- Contabilidad del sistema, etc.


Aunque todas estas funciones las podemos resumir en 2 funciones bsicas:
Funciones desde el punto de vista del usuario. Van a transformar el hardware
en una mquina ms tratable. Provisin de mquina virtual en varios aspectos:
_

1. En lo referente a la carga y ejecucin de programas


- Gestin de memoria. Que habr que presentarla en la forma y tamao adecuada a
cada programa y usuario, dependiendo de sus necesidades y no de las caractersticas
concretas de cada ordenador.
- Mecanismos de comunicacin o intercomunicacin entre procesos. Es decir,
que deber existir un lenguaje de control que transmita a la mquina las peticiones del
usuario: el OSCL. Adems, a ser posible, deber ser fcil y rpido de manejar.
- Gestin de interrupciones
2. En cuanto a las operaciones de E/S. Se trata de liberar al usuario de programas
los mecanismos hardware, presentndole facilidades de E/S sencillas pero igual de
potentes.
3. En cuanto al manejo de ficheros y dispositivos. El Sistema Operativo debe:
a. Proporcionar acceso fcilmente a la informacin mediante nombres simblicos.
b. Mantener la integridad de la informacin.
4. En cuanto a la deteccin y manejo de errores y proteccin. Diferentes equipos
hardware proporcionan niveles de proteccin muy diferentes, es el Sistema
Operativo el que tendr que incrementar el nivel de proteccin hasta el deseado.

Funciones internas. Dan soporte a la comparticin de recursos.

Motivos de la comparticin de recursos:


- Es ms barato
- Hay recursos -como la informacin- que por naturaleza son compartidos
- Nos permite trabajar usando trabajos ya creados (reutilizacin)
- Eliminacin de la redundancia de informacin.
Problemas que acarrea la comparticin de recursos:
- Cmo dar soporte a varios accesos y ejecuciones simultneas
- Dnde ubicar los recursos compartidos y cmo protegerlos
Funciones del Sistema Operativo para permitir la comparticin de recursos:
1. Asignacin de recursos
Se trata de lograr aumentar la disponibilidad y el uso de los recursos. Hay algunos
recursos (UCP, memoria...) que necesitan que el Sistema Operativo tenga algunos
programas especiales que se encarguen de asignarlos, liberarlos, conmutarlos... como
el Dispatcher quien se encarga de asignar la UCP.
Hay otros recursos (los llamados dispositivos) que se asignan gracias a programas
generales de asignacin y liberacin.
2. Proteccin
Cuanto ms comparticin halla, mayor nivel de proteccin hace falta. Tiene 3
aspectos:
a. Controlar la informacin en cuanto a usos y accesos
b. Mantener la integridad de la informacin
c. Controlar que no halla interferencias no deseadas sobre la informacin por parte
de otros programas o usuarios
3. System Accounting (contabilidad del sistema)
Consiste en llevar un registro del uso del sistema por parte de los distintos usuarios y
procesos. Tiene 3 vertientes:
a. Facturacin del servicio
3

b. Sacar estadsticas del uso de cada uno de los recursos


c. Nos permite hacer un tunning
Caractersticas
-

Gestin y reparto del conjunto de recursos


Recursos escasos
Proteccin para preservar recursos y procesos
Cooperacin entre procesos

Cada uno de los administradores de los recursos, bsicamente debe:


1.Mantener actualizado un registro o contabilidad del estado o uso de los recursos.
2.Cumplir (en funcin de la poltica implementada a tal fin) con las demandas,
decidiendo quin, cmo, cundo y por cunto tiempo recibe determinado recurso.
3.Asignar dicho recurso a quien lo demande.
4.Recuperar el recurso despus que se ha utilizado.
5.Funcin de Proteccin
Se dice que el SO implementa como arbitro imparcial:
Una Poltica: dado que asigna prioridades (de uso y/o de acceso a los recursos).
Una Estrategia: ya que ordena los accesos y los conflictos
Una Autoridad pues debe recuperar los recursos otorgados a los procesos y ordenar
el uso de los mismos.
Una Proteccin: brindando seguridad a los usuarios entre s y preservando la
integridad de los recursos.
Una Contabilidad: para llevar el control del uso y disponibilidad de los recursos.
El S.O. ofrece:
Facilidades para crear, manipular y eliminar objetos sobre los que se quiere
realizar operaciones, a travs de la Gestin y Conservacin de la Informacin sobre
ellos.
Un ambiente para la ejecucin de trabajos, mediante la gestin del conjunto de
recursos que permiten ejecutar los mismos.
Facilidades para compartir el conjunto de recursos entre los usuarios, mediante un
planeamiento y ordenamiento de los trabajos.
La administracin del sistema consiste en el:
Manejo y conservacin de la informacin: ofrece a los usuarios facilidades para
crear, recuperar y eliminar objetos sobre los que se quieren realizar operaciones.
Manejo del conjunto de recursos: que permiten ejecutar programas: El sistema
crea el ambiente necesario para la ejecucin de los trabajos.
Planeamiento y ordenacin de trabajos mediante un adecuado manejo y reparto
del conjunto de recursos entre los usuarios.

I.

Evolucin y tendencias de los Sistemas Operativos

En los primeros tiempos de la Informtica slo existe el hardware. De esta forma,


cuando surge un problema y se intenta solucionar informticamente, hay que codificar
para ello un programa completo con todas las instrucciones en bits: tan slo un
montn de 1s y 0s (a esto se le llama sistemas de puerta abierta).
Una vez que el problema est codificado se reserva tiempo de ordenador, y el propio
usuario-analista-programador-operador enciende el aparato, carga el programa
mediante switches y sigue el desarrollo mediante los indicadores de la consola.
4

Para reservar el tiempo de utilizacin exista un esquema de reparto de tiempos, (dem


Horario del Centro de Clculo). Pero este esquema tena 2 problemas:

tiempos de no utilizacin de la mquina (me sobra tiempo del que haba reservado)
el tiempo reservado se me queda corto.

Como ventaja podemos citar que en el momento en que disponemos de la mquina


tambin disponemos de todos los recursos. Pero tambin existen varios
inconvenientes, como son:
el rendimiento es muy bajo porque los recursos muy caros estn infrautilizados
la interaccin es muy complicada (pensar en 1s y 0s es muy difcil)
I Generacin:
No existieron los sistemas operativos.
II Generacin:
Se paso de un procesamiento en serie a un procesamiento en lote para reducir
el tiempo de procesamiento.
Se escribieron los primeros programas en Fortran y
lenguaje ensamblador.
Aparecieron los primeros sistemas operativos FMS(Fortran
Monitor System) e IBSYS, el S.O 7094 de IBM .
III Generacin:
Se introdujo el S.O 360 para hacer clculos cientficos, aparecieron luego
tambin los S.O 370, 4300,3080, 3090. Aparecieron los S.O de tiempo compartido.
IV Generacin:
Aparecieron las Micros o estaciones de trabajo personales y con ellas los
sistemas operativos MS-DOS, DOS y UNIX, aparecieron tambin los S.O de Red y
Distribuidos.

1.2.1. Tendencias actuales


Podemos resumir las tendencias actuales en cuatro trminos:
1. Se tiende a que la mquina sea lo ms amistosa posible: que el interface
presentado por el Sistema Operativo proporcione un acceso y manejo fcil y
guiado. Por ejemplo, con mens, ayudas, mensajes, etc. (User Friendly)
2. Se trata de ocultar a los usuarios todas las complejidades o detalles fsicos de los
sistemas de forma que el usuario slo perciba lo que el Sistema Operativo le
muestra. (Mquina Virtual). Si unimos a esto la existencia de las redes, podramos
hacer que un trabajo que un usuario de la red mande ejecutar lo haga en otra
mquina que el usuario ni siquiera sabe que existe.
3. Se tiende a hacer un uso ms extensivo de los sistemas distribuidos, es decir,
sistemas que pueden cooperar con otros y a la vez trabajar de forma totalmente
independiente.
Esto consiste en que cada proceso haga operaciones locales y tome decisiones
locales, pero adems participe en decisiones que afectan a otros sistemas con los
que se comunica a travs de una red.
El proceso distribuido hace las comunicaciones cada vez ms baratas y las
velocidades de transmisin cada vez ms elevadas.
4. Procesos paralelos. Implica que existen varios procesadores trabajando en
paralelo. Esto es posible gracias a que cada vez hay una mayor escala de
integracin, lo cual se traduce en procesadores y memorias fsicamente pequeas
pero con una capacidad de almacenamiento y proceso mucho mayores.

Ejemplos de Sistemas Operativos


WINDOWS NT Sistema monousuario multitarea diseado para trabajar con PC
y Estaciones de trabajo. Incorpora los ltimos adelantos.
UNIX Sistema operativo multiusuario dirigido a todo tipo de computadoras.
Siempre en grandes redes. Compatibilidad absoluta.
OS/2 Sistemas de oficinas.

1.3 Tipos de Sistemas Operativos


Existen muchos criterios de clasificacin de los Sistemas Operativos, cada uno de los
cuales brinda una clasificacin propia. As, existen divisiones basadas en el tipo de
memoria, tipo de almacenamiento secundario, tipo de aplicaciones o reas
funcionales, accesibilidad, etc.

Segn el punto de vista del usuario


Aqu vamos a tomar como criterio la forma en la que el Sistema Operativo es percibido
por el usuario, ya que la forma en la que se percibe est en relacin directa con el uso
que se hace de l.
De esta manera podemos dividir a los Sistemas Operativos en 5 grupos:
- Sistemas Monousuario y multiusuario
- Sistemas de Tiempo Real
- Sistemas Transaccionales
- Sistemas "Time Sharing" y Multiprogramados
- Sistemas Multiprocesador
_

Monousuario

En estos sistemas, la mquina virtual (la presentada por el S.O., es decir, la que ve el
usuario) tiene un slo usuario y generalmente est dedicada a una sola funcin (crear
ficheros, nombrar ficheros, guardar ficheros, ejecutar programas, etc.).
El interface del S.O. constar, entonces, de un gestor de ficheros sencillo, utilidades
de E/S y un intrprete de comandos tambin sencillo.
Podemos enumerar las caractersticas de estos sistemas como sigue:
Caractersticas
- gestin de ficheros (crear, borrar, guardar...)
- componer, ejecutar y modificar nuevos programas
- transferir informacin entre programas y dispositivos de E/S
Funciones
- sistema de gestin de ficheros sencillo
- intrprete de OSCL sencillo
- facilidades para operaciones de E/S
Cualidades
- facilidad de uso, es decir, proporcionar un buen interface
- eficacia, dado que el resultado del soporte hardware suele ser limitado
- facilidad de mantenimiento y de extensin, tanto en cuanto a dispositivos como en
cuanto a programas
- fiabilidad
Multiusuario
- Sistema de consulta de informacin
6

Sistema de gestin de operaciones


Sistema de propsito general

Sistemas de Tiempo Real

Existen muchos tipos de sistemas de tiempo real, como los sistemas de control de
procesos, los de seguimiento de trayectorias, pilotaje de aviones, vigilancia mdica,
gestin de centrales telefnicas, control de robots, etc.
Todos estos sistemas tienen algo en comn, que es la limitacin de tiempo de proceso
informtico: tienen que dar respuestas a unas determinadas entradas en un tiempo
mnimo, tienen que responder casi instantneamente (de aqu lo de tiempo real).
Caractersticas
- respuesta en tiempo real, es decir, existe una limitacin del tiempo empleado en el
tratamiento informtico
- interconexin con elementos externos
- registro de informacin
- tratamiento de procesos prioritarios (sistemas de riesgo)
Funciones
- regulacin, es decir, la accin sobre elementos externos. Tanto para captar
informacin como para actuar sobre el proceso
- seguridad, es decir, debe haber una reaccin inmediata ante cualquier suceso o
evento externo
- grabacin. Debe llevarse un registro del comportamiento del sistema controlado
Cualidades
- fiabilidad
- disponibilidad, es decir, debe garantizarse la seguridad de los dispositivos
controlados cumpliendo las restricciones de tiempo dadas
- debe incluir servicios mnimos en caso de anormalidades

Sistemas Transaccionales
Ejemplos de estos sistemas son: reservas de plazas en lneas areas, gestin de
cuentas bancarias, consulta de documentos, etc.
Funciones
- gestionar un gran volumen de informacin (por ello, la Base de Datos suele estar
presente siempre)
- existencia de un gran nmero de puntos de acceso, a veces, geogrficamente
dispersos
- ejecutar operaciones predefinidas de forma interactiva
- existencia de un gran nmero de transacciones desarrollndose en forma paralela
(concurrencia)
Cualidades
- fiabilidad y seguridad. Deben existir unas reglas de integridad que aseguren la
coherencia de la informacin compartida
- disponibilidad, es decir, que haya una tolerancia a fallos y un tiempo de respuesta
adecuado
Sistemas "Time Sharing" y Multiprogramados
Caractersticas
7

- concurrencia, es decir, existen n procesos ejecutndose a la vez, lo cual implica que


el S.O. deber conmutar los recursos entre los distintos procesos
- debe dar servicio a m usuarios simultneamente
Se plantean una serie de problemas en los sistemas monousuarios y transaccionales:
- hay que dar servicio a cada usuario de forma que ste crea que tiene una mquina
individual
- servicios de comparticin de datos y comunicacin
Funciones
- definir la mquina virtual a asignar a cada usuario
- facilitar el uso compartido y la asignacin de recursos fsicos
- gestionar la informacin compartida
- gestionar la comunicacin entre usuarios y programas
Cualidades
Tienen que tener todas las cualidades tanto de los monousuario como de los
transaccionales, destacando:
- un buen interface, es decir, ser fcilmente accesibles para proporcionar numerosos
servicios
- deben ser fciles de extender y adaptar
- deben ser eficaces, con el fin de lograr un rendimiento total adecuado
- fiabilidad y seguridad
- disponibilidad
Sistemas Multiprocesador
Se caracterizan por la existencia de n procesadores, en los cuales se podrn ejecutar
instrucciones en paralelo, instrucciones que en su ejecucin compartirn a veces
memoria y/o perifricos.
Lgicamente, con cada procesador podr existir un sistema de los vistos
anteriormente. Por tanto, las funciones del interface en este caso sern todas las
funciones vistas en cada uno de los sistemas anteriores, adems de la funcin de
gestin de los n procesadores.
Funciones
- gestin de los n procesadores, es decir, asignacin, conmutacin... y esto sobre
todo en los sistemas fuertemente acoplados 7
- gestin de las comunicaciones, o gestin teleinformtica 8 . Sobre todo cuando los
procesadores estn geogrficamente dispersos (son los llamados sistemas
distribuidos)
Cualidades
- Todas las anteriores, con especial nfasis a la fiabilidad (para asegurar que la
informacin fluya de manera adecuada y sin problemas)

1.4

Arranque de la Computadora

El arranque de una computadora tiene dos fases: la fase de arranque de hardware y la


fase de arranque del sistema operativo.
La siguiente figura muestra las actividades ms importantes.
Test del hardware
Bajo el control del
iniciador ROM

Carga en memoria del cargado del SO


8

Bajo el control del


cargador (boot)
del SO

Carga en memoria componentes del SO

Inicializacin bajo
el control de la
parte residente del
SO

Test del sistema de archivos


Creacin de estructuras de datos internas
Completa la carga del SO residente
Creacin de procesos login

Arranque hardware
Software de E/S
(BIOS)

Programa
en ROM

Programa de
arranque
Seal elctrica

Iniciador ROM

1. Comprobacin del sistema que sirve para detectar


sus caractersticas (ejem. Cantidad de memoria
principal)
2. Fase de lectura y almacenamiento en memoria del
programa cargador del SO
3. Da control a este programa bifurcando a la
direccin de memoria en la que lo ha almacenado.
Para tener flexibilidad se hace que el programa
iniciador ROM sea independiente del SO

Reset

Ubicacin del sistema operativo

Iniciador ROM
extrae

Conversacin: sobre ubicacin, direccin


de arranque y tamao del cargador del
SO

Memoria
Principal

Programa
Cargador SO

enva

Arranque del sistema operativo


El programa cargador del SO tiene por misin traer a memoria principal alguno de los
componentes del SO. Una vez cargados estos componentes, se pasa a la fase de
iniciacin, que incluye las siguientes operaciones:

Comprobacin del sistema: Se completa pruebas de hardware iniciadas por ROM


y comprueba si el sistema de archivo tiene un estado coherente.

Se establecen las estructuras de informacin propias del SO, tales como tablas de
procesos, de memoria y las de E/S.

Se carga en memoria principal aquella parte del SO que ha de estar siempre en


memoria, parte que se denomina SO residente.

Se crea un proceso de inicio o login por cada terminal definido en el sistema, as


como una serie de procesos auxiliares y de demonios.

Programa cargador
(identificador)

Disco

Sistema operativo

1.5 Estructura de Sistemas Operativos


Es decir, cmo est construido el Sistema Operativo para que lleve a cabo sus
objetivos.
Podemos dividirlos en:
- Sistemas Monolticos
- Sistemas Operativos por niveles o por capas
- Sistemas Operativos de Mquina Virtual
- Sistemas Cliente-Servidor

1.5.1 Monolticos
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente
por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma
que cada una puede llamar a cualquier otra. Las caractersticas fundamentales de este
tipo de estructura son:
Construccin del programa final a base de mdulos compilados separadamente
que se unen a travs del enlace.
Buena definicin de parmetros de enlace entre las distintas rutinas existentes,
que puede provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como memoria, disco,
etc.
10

Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su


ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes
ambientes de trabajo o tipos de aplicaciones.
En estos casos el Sistema Operativo est formado por un conjunto de rutinas que se
compilan por separado, se llaman entre si y se montan juntas para formar un todo: el
Sistema Operativo. De ah que no tengan una estructura definida.
Cada rutina tiene un interface con las dems, es decir, cuando una rutina llama a otra
la primera le pasa una serie de parmetros y, cuando la rutina llamada finaliza su
tarea, devuelve unos resultados a la rutina madre.
En estos sistemas todas las rutinas se pueden llamar entre si. Esto implica que no hay
ocultamiento de informacin, es decir, cada rutina conoce -y puede usar-, por ejemplo,
las estructuras de datos de las dems.

1.5.2 Sistemas Operativos por niveles o por capas (jerrquicos)


A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron
los sistemas, se hizo necesaria una mayor organizacin del software, del sistema
operativo, donde una parte del sistema contena sub_partes y esto organizado en
forma de niveles.
Se dividi el sistema operativo en pequeas partes (funciones relacionadas) que
forman un nivel o capa, de tal forma que cada una de ellas estuviera perfectamente
definida y con un claro interface con el resto de elementos. Estas funciones se
implementan en mdulos, cada uno con sus interfaces y sus estructuras de datos bien
definidas. Luego, los distintos mdulos se agrupan en las distintas capas o niveles.
funciones mdulos niveles
En cada nivel se pueden utilizar las funciones implementadas en l y las de los niveles
inferiores, sin importarnos cmo estn implementados (a esto se le llama ocultamiento
de informacin extendido porque se realiza entre mdulos y niveles).
Cada nivel proporciona una serie de objetos y primitivas necesarias para su manejo.
El problema se plantea a la hora de establecer los distintos niveles del Sistema
Operativo. La divisin ms comn es la siguiente:
Descripcin de los niveles:
1. Ncleo. Es el que acta directamente sobre el hardware. Los objetivos que
manipula son los procesos y sus entornos de ejecucin: entornos necesarios para que
se ejecute el proceso.
2. E/S Bsica. Maneja todos los espacios de almacenamiento como si fueran lineales,
teniendo en cuenta, adems, que estos espacios de almacenamiento son fragmentos
del espacio total o bloques.
3. Gestin de memoria. Maneja agrupaciones de espacios. En este nivel los
espacios lineales del nivel anterior se agrupan lgicamente dependiendo de una serie
de parmetros.
4. Sistema de ficheros. Es el encargado del manejo de ficheros, directorios y
dispositivos.
5. Intrprete de comandos. Gracias a las facilidades que nos ofrecen los niveles
inferiores podemos aceptar comandos, o analizarlos y ejecutarlos. Este nivel es el que
proporciona el interface para la interrelacin con el usuario.

1.5.3 Sistemas Operativos de Mquina Virtual

11

Se trata de un tipo de sistemas operativos que presentan una interface a cada


proceso, mostrando una mquina que parece idntica a la mquina real subyacente.
Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto
de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas
operativos de mquina virtual es el de integrar distintos sistemas operativos dando la
sensacin de ser varias mquinas diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como
misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas
mquinas virtuales como se soliciten. Estas mquinas virtuales no son mquinas
extendidas, sino una rplica de la mquina real, de manera que en cada una de ellas
se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina
extendida al usuario.
El Sistema Operativo tiene 2 funciones fundamentales:
1. Crear una mquina tratable, es decir, adaptada a las necesidades de cada usuario
(mquina virtual)
2. Hacer posible la comparticin de recursos, es decir, soportar la multiprogramacin
En estos sistemas se mantiene por separado el software que implementa cada una de
estas funciones. Partiendo de un nico hardware a compartir se simula la existencia de
varias mquinas idnticas a la real. Para que esto sea posible hace falta un nuevo
elemento en el Sistema Operativo, es el llamado monitor de mquina virtual. ste hace
dos cosas:
1. Simula tantas mquinas virtuales idnticas a la real como haga falta
2. Gestiona los recursos de la mquina real
Para que esto se traduzca en una mquina tratable por el usuario sobre cada mquina
virtual se ejecuta un Sistema Operativo independiente, que se encarga de la segunda
funcin del Sistema Operativo (hacer posible la comparticin de recursos). Esto lo
hace a partir del hardware del que dispone. Un ej. puede ser el siguiente:
donde el usuario introduce un comando que el intrprete de comandos del Sistema
Operativo que maneja interpreta y genera la peticin correspondiente a la mquina
virtual.

1.5.4 Sistemas Cliente-Servidor (Microkernel)


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

12

En estos sistemas cada funcin del Sistema Operativo se implementa como un


programa independiente y se intenta ejecutar al mismo nivel que los programas de
usuario. El problema es que muchos de estos programas no pueden ejecutarse a nivel
de usuario porque actan directamente sobre el hardware y esas funciones son
competencia del ncleo de los Sistemas Operativos Cliente-Servidor.
Las partes del Sistema Operativo que se ejecutan a nivel de usuario se denominan
servidores. Estos programas tienen exactamente las mismas capacidades que un
programa de usuario y por tanto no tienen acceso directo al hardware.
Cuando un programa de usuario (denominado cliente) quiere un servicio del Sistema
Operativo lanza un mensaje al servidor correspondiente, pero siempre a un servidor de
su mismo nivel.
El ncleo desempea 2 funciones:
1. Soporta los mensajes a travs de los cuales se comunican los clientes y servidores
2. Manipula al hardware para responder a peticiones cuando se lo piden los
servidores.
Ventajas de estos sistemas
1. Siempre y cuando los servidores estn bien delimitados es posible eliminar un
servidor si ste no se utiliza
2. Siempre es posible sustituir un servidor por otro que haga lo mismo
3. Si falla un servidor el sistema sigue funcionando (pero con alguna funcin menos)
4. Estos sistemas se puede adaptar muy fcilmente a los sistemas distribuidos.
Un Sistema Operativo Distribuido es aquel en el que el Sistema Operativo no est en
una sola mquina sino que est repartido entre varias.
En este caso, el hardware que manipula el ncleo es ms complejo que antes pero
est manipulacin es transparente tanto para el usuario como para los servidores.
Cuando una mquina hace exclusivamente la funcin de un servidor a lo largo del
tiempo se dice que es un servidor dedicado, aunque hay otras mquinas que pueden
ser alternativamente clientes o servidores.

1.6. Componentes de un Sistema Operativo


El SO est formado por una serie de componentes especializados en determinadas
funciones. Cada SO estructura estos componentes de forma distinta. En esta seccin
describiremos primero los distintos componentes que conforman un SO, para
continuar con las diversas estructuras.

U s u a rio s
P r o g r a m a s d e u s u a r io

S h e ll 1

W in 3 2

V a ria s A P I

S h e ll 2
P O S IX

G e s ti n d e S e g u r id a d C o m u n ic a c .
G e s ti n d e G e s ti n d e G e s ti n d e
y
a r c h iv o s y
y
p ro c e s o s
m e m o r ia
la E /S
d ir e c to r io s p r o te c c i n s in c r o n iz .

S is te m a
o p e ra tiv o

N c le o
H a rd w a re

13

Los servicios
se suelen agrupar segn su funcionalidad en varios
componentes, entre los cuales podemos mencionar:
Gestin de procesos: encargada de la creacin , planificacin, y destruccin
de procesos.
Gestin de memoria: componente encargada de saber que partes de la
memoria estn libres y cules ocupadas, as como de la asignacin y liberacin
de memoria segn la necesiten los procesos.
Gestin de E/S: se ocupa de facilitar el manejo de los dispositivos perifricos.
Gestin de archivos y directorios: se encarga del manejo de archivos y
directorios y de la administracin del almacenamiento secundario.
Comunicacin y sincronizacin entre procesos: encargada de ofrecer
mecanismos para que los procesos puedan comunicarse y sincronizarse.
Seguridad y proteccin: este componente debe encargarse de garantizar la
identidad de los usuarios y de definir lo que pueden hacer cada uno de ellos
con los recursos del sistema.
Se deben observar dos tipos de requisitos cuando se construye un sistema operativo,
los cuales son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado
al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma
de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y
flexibilidad.

1.6.2 Conceptos varios de los Sistemas Operativos


Procesos
Un proceso es una actividad o tarea de cierto tipo, tiene un programa, una
entrada, una salida y un estado.
Un concepto central en todos los sistemas operativos. Un proceso es
bsicamente, un programa en ejecucin Consta del programa ejecutable, sus datos y
su pila, contador y otros registros, adems de toda la informacin necesaria para
ejecutar un programa.
Es la unidad ms pequea de trabajo individualmente
planificable por un sistema operativo.
En muchos sistemas Operativos toda la
informacin relativa a un proceso, se almacena en una tabla del S,O, llamada tabla de
procesos.
Es parte de las llamadas al sistema de control, que son fundamentales para la
creacin y finalizacin de procesos. Ejemplo, interprete de comandos.
Archivos
Un archivo puede contener un informe, un programa ejecutable o un grupo de
ordenes para el S.O. El sistema de archivos debe ocultar a los usuarios todos los
aspectos especficos de dispositivos necesarios para la manipulacin de archivos y
proporcionarles una abstraccin de un espacio simple y uniforme de archivos con
nombre.
Para poder proporcionar un espacio donde almacenar los archivos, la mayoria
de los S.O, soportan el concepto de directorio, como una forma de agrupar los
archivos.
Shell
Es el intrprete de comandos, a pesar de no ser parte del sistema operativo,
hace un uso intenso de muchas caractersticas del S.O y por tanto sirve como un
buen ejemplo de la forma en que se pueden utilizar las llamadas al sistema. Tambin
es la interfaz primaria entre el usuario situado frente a su Terminal y el sistema
operativo.

14

Cuando un usuario entra al sistema un shell se inicia.


El Shell tiene la
Terminal como entrada y como salida estndar.
Este da iniciao al teclear la solicitud
de entrada, un carcter de signo de pesos, el cual indica al usuario que el shell est
esperando un comando.
En MS-DOS normalmente aparece la letra de la unidad,
seguida de dos puntos, el nombre del directorio en que se encuentra y por ltimo el
signo de mayor que. C:\>Ncleo o Kernel
Es el mdulo de ms bajo nivel de un sistema operativo, pues descansa directamente
sobre el hardware de la computadora. Entre las tareas que desempea reincluyen el
manejo delas interrupciones, la signacin de trabajo al procesador y el proporcionar
una va de comunicacin entre los distintos programas. En general el ncleo se
encarga de controlar el resto de los mdulos y sincronizar su ejecucin. El ncleo
contiene un submdulo denominado planificador, el cual se encarga de asignar tiempo
del procesador a los programas de acuerdo a una cierta poltica de planificacin que
varia de un sistema a otro. Normalmente se utiliza una jerarqua de prioridades que
determinan como se asignar el tiempo del CPU a cada programa. El Kernel o
Ejecutivo es el ncleo del sistema operativo. ste est permanente en memoria una
vez que el equipo inicia sus funciones normales. Es responsable por tareas como:
Traslado del control de un programa a otro
control y programacin de dispositivos perifricos
Manejo de interrupciones y condiciones de error
Comunicacin entre procesos
Cronogramacin de tareas
Manejo de la memoria
Manejo de archivos
Demonio: (Daemond)
Es un procedimiento , programa, o utilidad que funciona por s misma, sin que
ningn operador, ni persona se encargue del mismo.

1.6.3 Sistemas Operativos por Servicios


Esta clasificacin es la ms comnmente usada y conocida desde el punto de vista del
usuario final.
Monousuarios
Los sistemas operativos monousuarios son aquellos que soportan a un usuario a la
vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de
procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las
computadoras personales tpicamente se han clasificado en este rengln.
Multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un
usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora
o por medio de sesiones remotas en una red de comunicaciones. No importa el
nmero de procesadores en la mquina ni el nmero de procesos que cada usuario
puede ejecutar simultneamente.
Monotareas
Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por
usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se
admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo
solo una tarea a la vez.

15

Multitareas
Un sistema operativo multitarea es aqul que le permite al usuario estar realizando
varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de
un programa durante su depuracin mientras compila otro programa, a la vez que est
recibiendo correo electrnico en un proceso en background. Es comn encontrar en
ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un
rpido intercambio entre las tareas para el usuario, mejorando su productividad.
Uniproceso
Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un
procesador de la computadora, de manera que si la computadora tuviese ms de uno
le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS.
Multiproceso
Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema,
que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de
trabajo. Generalmente estos sistemas trabajan de dos formas: simtrica o
asimtricamente. Cuando se trabaja de manera asimtrica, el sistema operativo
selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y
servir como pivote para distribuir la carga a los dems procesadores, que reciben el
nombre de esclavos. Cuando se trabaja de manera simtrica, los procesos o partes de
ellos (threads) son enviados indistintamente a cualesquiera de los procesadores
disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de
trabajo bajo este esquema.
Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual
puede consistir de un rea de memoria, un conjunto de registros con valores
especficos, la pila y otros valores de contexto. Us aspecto importante a considerar en
estos sistemas es la forma de crear aplicaciones para aprovechar los varios
procesadores. Existen aplicaciones que fueron hechas para correr en sistemas
monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el
compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al
mismo tiempo en procesadores diferentes. Por otro lado, el programador puede
modificar sus algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima
opcin las ms de las veces es costosa en horas hombre y muy tediosa, obligando al
programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el
algoritmo inicial.

1.6.4. Acceso a los servicios del Sistema Operativo


Existen dos formas bsicas de prestacin de servicios por parte del sistema:
1. Mediante llamadas al sistema
2. Mediante programas del sistema
Llamadas al sistema (conocido tambin como servicios)
Sirven para obtener los servicios de ms bajo nivel y constituyen el interface entre los
programas en ejecucin y el Sistema Operativo.
Los programas del usuario se comunican con el sistema operativo y le solicitan
servicio mediante las llamadas al sistema. A cada una de estas llamadas le
corresponde un procedimiento de la biblioteca que pueden llamar los programas del
usuario en forma de interfaz de programacin o API (Application Programming
Interface). Este procedimiento pone los parmetros de la llamada al sistema en un
lugar especfico, como pueden ser los registros de la mquina, para despus ejecutar
una instruccin. Trap (un tipo de llamada de procedimiento protegido) para iniciar el
16

sistema operativo. La finalidad del procedimiento de biblioteca es ocultar los detalles


de la instruccin Trap y hacer que las llamadas al sistema parezcan llamadas comunes
a un procedimiento. Ejemplo de una llamada Read desde un programa en C,
Count = read(file, buffer, nbytes);
Claro est, el tipo de llamadas al sistema vara de un sistema operativo a otro.
Generalmente estas funciones del Sistema Operativo estn implementadas en
ensamblador o en algn otro lenguaje que permita la manipulacin del hardware.
Las llamadas al sistema en un programa de usuario, o son una instruccin especial o
estn encubiertas en llamadas a funciones de librera.
Cuando se realiza una de estas llamadas se tiene que especificar la operacin que se
quiere realizar, y para ello ser necesario pasarle todos los parmetros esenciales.
Podemos hacerlo de tres formas:
a. Dejar el valor de dichos parmetros en los registros del sistema. Puesto que el
sistema tiene acceso a los registros puede leerlos de ah .
b. Guardar el valor de los parmetros en memoria y meter en los registros la direccin
donde se guardan dichos parmetros.
c. Utilizar la pila de ejecucin del propio Sistema Operativo, aunque hay mquinas en
las que el sistema de proteccin no permite esto.
Principales llamadas del sistema.
Existen 5 grupos:
Control de procesos y trabajos.
Estas llamadas permiten la terminacin de un programa, tanto de manera normal
como de manera anormal.
En los sistemas generalmente se trabaja con lo que se denominan niveles de error.
Por ejemplo, podemos detectar -y tratar- un cierto tipo de error que no produce un
break del programa pero que puede servir para controlar su ejecucin.
Nos permiten generar nuevos procesos a partir de un proceso en ejecucin, es decir,
hacer que un proceso cree otro. Adems, el proceso padre y el hijo deben
sincronizarse mediante llamadas que permitan generar esperas tanto en el padre
como en el hijo. Tambin hay otras llamadas que nos permiten leer y modificar los
atributos de un proceso (prioridad de proceso, tamao de memoria...).
Manipulacin de ficheros.
Nos deben permitir abrir, cerrar, escribir, leer, posicionarse en ellos, crear, destruir... En
caso de que el sistema disponga de una jerarqua de directorios, se aplicarn las
mismas llamadas al directorio que sirven para leer y modificar atributos de ficheros y
directorios.
Gestin de dispositivos.
Las llamadas al sistema para manejar dispositivos son las mismas que para manejar
ficheros, aadiendo las necesarias para solicitar y liberar el uso de dicho dispositivo.
Mantenimiento de la informacin.
Son aquellas que sirven para transferir informacin de carcter general desde el
sistema hasta el programa de usuario, por ejemplo, obtener la fecha y la hora del
sistema, la versin y nombre del sistema operativo, algn parmetro de su
funcionamiento, cunto tamao libre de memoria hay...
Llamadas para las comunicaciones.
Para realizar el paso de mensajes ser necesario abrir y aceptar una conexin, poder
leer y escribir los mensajes y, cuando se ha terminado, cerrar esa conexin.

Programas del sistema

17

Constituyen una interfaz entre el usuario y el sistema operativo. Incluyen llamadas al


sistema y proporcionan la funcionalidad bsica para resolver problemas comunes de
los usuarios. Adems, permiten crear un entorno adecuado para el desarrollo y la
ejecucin de los programas de usuario. En resumidas cuentas, es lo que usuario ve
del Sistema Operativo.
Son el mtodo ms usado en los Sistemas Operativos modernos, de hecho, los
Sistemas Operativos modernos se suelen suministrar en dos partes:
- el supervisor o ncleo
- un amplio conjunto de programas de usuario
A modo de resumen, son la otra forma de acceder a los servicios del sistema y
permiten crear un entorno adecuado para el desarrollo y la ejecucin de los programas
de usuario.
La idea que un usuario tiene de un sistema es la que le dan los propios programas del
sistema. Disear estos programas -esta interface- es una tarea muy difcil. Pueden
darse dos circunstancias:
- el sistema operativo es muy bueno pero interface psimo (UNIX)
- el sistema operativo es malo pero con un interface muy bueno (WINDOWS95)
aunque un mismo Sistema Operativo puede tener varios interfaces distintos (X-WINDOWS
en UNIX).
Los programas del sistema se pueden dividir en varias categoras:
Manipulacin de archivos. Estos programas crean, eliminan, copian, renombran,
imprimen, vuelcan, muestran y en general manipulan archivos y directorios.
Informacin de estado. Algunos programas simplemente solicitan al sistema
fecha, hora, espacio de memoria o disco disponible, nmero de usuarios o
informacin de estado similar. A esta informacin se le da formato y se imprime en
la terminal u otro dispositivo o en un archivo.
Modificacin de archivos. Puede haber varios editores de texto para crear y
modificar el contenido de archivos almacenados en cinta o disco.
Apoyo a lenguajes de programacin. Con frecuencia, con el sistema operativo
se ofrecen compiladores, ensambladores e intrpretes para los lenguajes de
programacin habituales (como FORTRAN, COBOL, Pascal, BASIC, C, LISP, etc.).
Carga y ejecucin de programas. Una vez ensamblado o compilado el programa,
se debe cargar en la memoria para ejecutarlo. El sistema puede ofrecer
cargadores absolutos, cargadores relocalizables, editores de enlace y cargadores
de superposicin. Tambin se necesitan los sistemas de depuracin para lenguajes
de alto nivel o de mquina.
Comunicaciones. Estos programas proporcionan el mecanismo para crear
conexiones virtuales entre procesos, usuarios y diferentes sistemas de
computacin; permiten a los usuarios enviar mensajes a las pantallas de los
dems, enviar mensajes ms grandes en forma de correo electrnico o transferir
archivos de una mquina a otra, e incluso conectarse en forma remota a otros
computadores.
Programas de aplicacin. La mayora de los sistemas operativos se entregan con
programas tiles para solucionar problemas comunes, o para efectuar operaciones
comunes. Estos programas incluyen compiladores de compiladores, formadores de
texto, paquetes generadores de grficos, sistemas de bases de datos, hojas de
clculo, paquetes de anlisis estadstico, juegos, etctera.
El programa del sistema ms importante es el intrprete de comandos, que se puede
implementar de dos formas distintas.
1. Incluir, dentro del intrprete de comandos, el cdigo correspondiente a cada
comando. Su ejecucin es muy rpida pero el tamao del intrprete crece de forma
desmesurada.

18

Adems es poco flexible porque cada vez que queremos que reconozca un nuevo
comando necesitamos hacer las modificaciones en el cdigo fuente, volverlo a
compilar y linkar.
2. Implementar cada comando como un programa del sistema. En este caso el
intrprete de comandos no ejecuta el comando, lo nico que hace es usar ese
comando para buscar un programa del sistema que se llame igual. Y cuando se
encuentre, el programa ser cargado en memoria y ejecutado.
Ventajas (con respecto a la primera forma de implementacin):
- Es reducido su tamao
- Su tamao no depende del nmero de comandos que reconozca
- Es flexible (para aadir un nuevo comando basta aadir al sistema un nuevo
programa llamado igual que el nuevo comando a reconocer y cuyo cdigo sea el
correspondiente a la funcin realizada por ese comando).
Inconvenientes:
- Es ms lento
- Los parmetros tienen que fluir del intrprete de comandos al programa del sistema,
por tanto, hay que ofrecer mecanismos para transmitir esta informacin.
En cualquiera de los dos casos, deben establecerse a priori unas reglas de diseo
para que los usuarios sepan cmo llamar a los comandos y pasarles los parmetros
adecuadamente.

Caractersticas de los programas del Sistema.


1. Fiabilidad y seguridad, que quiere decir que el sistema operativo est libre de error
y pueda responder ante cualquier evento.
2. Determinismo e indeterminismo. Un sistema operativo tiene que ser determinista
en el sentido de que los mismos programas con los mismos datos tiene que dar los
mismos resultados, pero tambin tiene que ser no determinista en relacin a que debe
responder a cualquier suceso imprevisto.
3. Flexibilidad y generalidad. Debe adaptarse a las distintas necesidades del usuario
y debe ser portable, es decir, debe poder funcionar sobre distintas plataformas.
4. Facilidad de uso. Debe ser fcil de acceder y de usar, es decir, User Friendly.
5. Seguridad e integridad. Tanto datos como programas deben estar protegidos de
cualquier intento de acceso no permitido y posibles corrupciones.
6. Visibilidad u opacidad. El sistema operativo debe dejar ver el usuario slo lo que
necesita y en la forma ms adecuada.
7. Eficiencia y disponibilidad. El sistema operativo tiene que ser rpido, funcionar
bien y proporcionar el mayor nmero de funciones posibles.
Estas caractersticas se miden con parmetros como:
- el tiempo de respuesta
- el tiempo entre tareas
- los tiempos muertos de UCP
- el uso de recursos
- el throughtput
- ...
8. Mantenibilidad y extensibilidad. Dos ideas:
a. El sistema operativo debe ser fcil de mantener y ampliar
b. El sistema operativo debe estar programado de forma modular
9. El tamao del sistema operativo. No debe ser excesivo y no debe afectar a la
productividad del sistema (consumiendo pocos recursos).

19

1.6.4 Sistemas Operativos por la Forma de Ofrecer sus Servicios


Esta clasificacin tambin se refiere a una visin externa, que en este caso se refiere a
la del usuario, el cmo accesa los servicios. Bajo esta clasificacin se pueden detectar
dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos.

Sistemas Operativos de Red


Los 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
transmisin con el objeto de intercambiar informacin, transferir archivos, ejecutar
comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas
es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al
sistema para ejecutar estas operaciones, adems de la ubicacin de los recursos que
desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el
archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora
fisc99 bajo el sistema operativo UNIX, dicho usuario podra copiarlo a travs de la red
con los comandos siguientes:

Sistemas Operativos Distribuidos


Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando
integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades
centrales de proceso ) en una sola mquina virtual que el usuario accesa en forma
transparente. Es decir, ahora el usuario ya no necesita saber la ubicacin de los
recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos
fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco terico de lo
que se deseara tener como sistema operativo distribuido, pero en la realidad no se ha
conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos
en las varias unidades de procesamiento, reintegrar sub-resultados, resolver
problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos
distribuidos y consolidar la proteccin y seguridad entre los diferentes componentes
del sistema y los usuarios
Ventajas de los Sistemas Distribuidos
En general, los sistemas distribuidos (no solamente los sistemas operativos) exhiben
algunas ventajas sobre los sistemas centralizados que se describen enseguida.
Economa: El cociente precio/desempeo de la suma del poder de los
procesadores separados contra el poder de uno solo centralizado es mejor
cuando estn distribuidos.
Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy
superior.
Confiabilidad: Si una sola mquina falla, el sistema total sigue funcionando.
Crecimiento: El poder total del sistema puede irse incrementando al aadir
pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado y
caro.
Distribucin: Algunas aplicaciones requieren de por s una distribucin fsica.
Por otro lado, los sistemas distribuidos tambin exhiben algunas ventajas sobre
sistemas aislados. Estas ventajas son:
Compartir datos: Un sistema distribudo permite compartir datos ms fcilmente
que los sistemas aislados, que tendrian que duplicarlos en cada nodo para
lograrlo.
Compartir dispositivos: Un sistema distribudo permite accesar dispositivos
desde cualquier nodo en forma transparente, lo cual es imposible con los
sistemas aislados. El sistema distribudo logra un efecto sinergtico.
20

Comunicaciones: La comunicacin persona a persona es factible en los


sistemas distribuidos, en los sistemas aislados no. _ Flexibilidad: La
distribucin de las cargas de trabajo es factible en el sistema distribuidos, se
puede incrementar el poder de cmputo.

Desventajas de los Sistemas Distribuidos


As como los sistemas distribuidos exhiben grandes ventajas, tambin se pueden
identificar algunas desventajas, algunas de ellas tan serias que han frenado la
produccin comercial de sistemas operativos en la actualidad. El problema ms
importante en la creacin de sistemas distribuidos es el software: los problemas de
comparticin de datos y recursos es tan complejo que los mecanismos de solucin
generan mucha sobrecarga al sistema hacindolo ineficiente. El verificar, por ejemplo,
quines tienen acceso a algunos recursos y quines no, el aplicar los mecanismos de
proteccin y registro de permisos consume demasiados recursos. En general, las
soluciones presentes para estos problemas estn an en paales.
Otros problemas de los sistemas operativos distribuidos surgen debido a la
concurrencia y al paralelismo. Tradicionalmente las aplicaciones son creadas para
computadoras que ejecutan secuencialmente, de manera que el identificar secciones
de cdigo `paralelizable' es un trabajo ardo, pero necesario para dividir un proceso
grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para
lograr la distribucin. Con la concurrencia se deben implantar mecanismos para evitar
las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y
estar esperando otro, las condiciones de espera circulares y , finalmente, los "abrazos
mortales" (deadlocks). Estos problemas de por s se presentan en los sistemas
operativos multiusuarios o multitareas, y su tratamiento en los sistemas distribuidos es
an ms complejo, y por lo tanto, necesitar de algoritmos ms complejos con la
inherente sobrecarga esperada.

1.7 Activacin del Sistema Operativo


El trabajo del SO puede provenir de las siguientes fuentes:

Llamadas al sistema emitidas por los programas


Interrupciones producidas por los perifricos
Condiciones de excepcin o error del hardware

En todos estos casos se deja de ejecutar el proceso en ejecucin y se entra a ejecutar


el SO. Los mecanismos para romper la secuencia de ejecucin son dos: las
instrucciones de bifurcacin (no invoca al SO, puesto que el proceso ejecuta a nivel de
usuario y el SO es a nivel de ncleo y en espacio de direcciones distintos; significa que
los servicios del SO no se pueden solicitar mediante llamadas a procedimientos o
funciones) y las interrupciones.
Por lo tanto la activacin del SO solo se realiza mediante el mecanismo de
interrupciones (instruccin TRAP).
La figura siguiente muestra todos los pasos involucrados
en una
Compuesta
de: llamada al SO,
indicando el cdigo que interviene en cada uno de ellos. Inicialmente prepara los
Biblioteca del
Sistema

Solicitud
de
servicio
al SO

Llamada a
una Funcin

SO

parmetros del servicio de


acuerdo con la forma en que
los espera el SO
Instruccin TRAP que realiza
el paso al SO
Finalmente, recupera los
parmetros de contestacin
del SO, para devolverles al
21
programa que lo llam

1.8 Interfaces
Estn:
A. Las interfaces del programador, es la que recupera los servicios y llamadas
al sistema que los usuarios pueden utilizar directamente des sus programas.
En la actualidad hay dos interfaces: POSIX y los servicios de Win32.
POSIX
POSIX (Portable Operating System Interface for UNIX- Computer Enviroment). Es
un conjunto de normas definidas por el Instituto de Ingenieros Elctricos y
Electrnicos (IEEE) con el fin de crear interfaces que permitan la portabilidad del
software (distintos entornos UNIX) entre diferentes sistemas operativos abiertos o
sistemas abiertos.
La norma se ha implementado no slo en muchas versiones de UNIX, sino
tambin en otros sistemas operativos como Windows NT, VMS, etc. Se trata de un
conjunto de 23 normas, identificadas como IEEE 1003.0 a IEEE 1003.22, o
tambin POSIX.0 a POSIX.22, de las cuales el subsistema POSIX soporta la
POSIX.1 (conocido tambin como P1003.1), que define un conjunto de llamadas
al sistema en lenguaje C. El subsistema sirve las llamadas interactuando con el
Executive. Se encarga tambin de definir aspectos especficos del s.o. UNIX,
como pueden ser las relaciones jerrquicas entre procesos padres e hijos (las
cuales no existen en el subsistema Win32, por ejemplo, y que por consiguiente no
aparecen implementadas directamente en el Executive). Entre las reas cubiertas
por los estndares POSIX estn las llamadas al sistema, bibliotecas,
herramientas, interfaces, verificacin y prueba, caractersticas en tiempo real y
seguridad.
WIN32
En realidad, Win32 significa "Windows 32 bits". En otras palabras, hace referencia
a todas las plataformas de 32 bits del sistema operativo Windows: Windows NT,
Windows 95, Windows 98, Windows CE.
Es el ms importante, ya que atiende no slo a las aplicaciones nativas de
Windows NT, sino que para aquellos programas no Win32, reconoce su
tipo y los lanza hacia el subsistema correspondiente. En el caso de que la
aplicacin sea MS-DOS o Windows de 16 bits (Windows 3.11 e inferiores), lo que
hace es crear un nuevo subsistema protegido. As, la aplicacin DOS o Win16 se
ejecutara en el contexto de un proceso llamado VDM (Virtual DOS Machine,
mquina virtual DOS), que no es ms que un simulador de un ordenador
funcionando bajo MS-DOS. Las llamadas al API Win16 seran correspondidas con
las homnimas en API Win32. Microsoft llama a esto WOW (Windows On Win32).
El subsistema soporta una buena parte del API Win32. As, se encarga de todo lo
22

relacionado con la interfaz grfica con el usuario (GUI), controlando las entradas
del usuario y salidas de la aplicacin
Win32 permite la comunicacin entre la pantalla y el teclado, as como varios de
los procesos grficos y bibliotecas propias de windows.
B. Interfaz del usuario del SO, utilizado por el usuario al momento que interacta
con el SO para poder llevar a cabo operaciones tales como ejecutar un
programa, borrar archivo, sin necesidad de escribir un programa que realice
dicha operacin utilizando los servicios del SO. Hay dos tipos de interfaz de
usuario: alfanumrica (comandos) y la grfica (GUI, Graphical User Interface).

1.9 Diseo e Implementacin de Sistemas Operativos


Caractersticas de Diseo
Se debe tener fundamentalmente en cuenta los siguientes puntos:
1.Conocer el procesador en profundidad, (Hardware).
2.Conocer ampliamente el Set de instrucciones del procesador.
3.Conocer profundamente tcnicas algortmicas.
4.Definir las caractersticas que deben incorporarse en el diseo.
Adems los objetivos de diseo de un Sistema Operativo deben cumplir los siguientes
requerimientos:
1.Simple.
2.Portable.
3.Estructurado (modular).
4.Confiable.
5.Soporte de mltiples usuarios o procesos.
6.Soporte de red o procesamiento distribuido.
7.Etc.
Caractersticas de un sistema operativo
En general, se puede decir que un Sistema Operativo tiene las
siguientes
caractersticas:
Conveniencia: Un Sistema Operativo hace ms conveniente el uso de una
computadora.
Eficiencia: Un Sistema Operativo permite que los recursos de la computadora se
usen de la manera ms eficiente posible.
Habilidad para evolucionar: Un Sistema Operativo deber construirse de manera
que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del
sistema sin interferir con el servicio del mismo.
Encargado de administrar el hardware: El Sistema Operativo se encarga de
manejar de una mejor manera los recursos de la computadora en cuanto a hardware
se refiere, esto es, asignar a cada proceso una parte del procesador para poder
compartir los recursos.
Relacionar dispositivos (gestionar a travs del kernel): El Sistema Operativo se
debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo
requiera.
Organizar datos: para acceso rpido y seguro.
Manejar las comunicaciones en red: El Sistema Operativo permite al usuario
manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de
computadoras.
Procesamiento por bytes: de flujo a travs del bus de datos.
23

Facilitar las entradas y salidas: Un Sistema Operativo debe hacerle fcil al usuario
el acceso y manejo de los dispositivos de Entrada / Salida de la computadora.
Tcnicas de recuperacin de errores: El sistema operativo debe proveer las rutinas
necesarias para protegerse, y poder recuperarse de los errores (ya sean de hardware,
o de software), con el menor perjuicio para los usuarios.
Evita que otros usuarios interfieran: El Sistema Operativo evita que los usuarios se
bloqueen entre ellos, informndoles si esa aplicacin esta siendo ocupada por otro
usuario.
Generacin de estadsticas: Para poder cobrarle a los diferentes usuarios del centro
de costos la parte proporcional que les corresponde del gasto generado por el
mantenimiento del mismo.
Permite que se pueda compartir: tanto el hardware como los datos de los usuarios y
entre los usuarios.
Requisitos Funcionales

Los procesos son creados en respuesta a peticiones explcitas o implcitas de los


usuarios.
El sistema operativo proporciona varias funciones supervisoras y de control para
una gestin de procesos.
La administracin de memoria que es esencial para la asignacin de los procesos
cuando lo soliciten.
El almacenamiento de los datos a largo plazo, incluidos los programas y datos.
Los entornos multiusuarios y de multiprogramacin imponen algunos requisitos
funcionales adicionales para la manipulacin y almacenamiento de archivos.
A los sistemas multiusuarios tambin deben proporcionar formas ms elaboradas
de proteccin y mecanismos de seguridad.
Los sistemas distribuidos deben proporcionar facilidades para denominacin global
y acceso a recursos.

La ocultacin de la informacin es otro de los factores a considerar, en la cual se crea


una jerarqua de niveles de abstraccin de modo que en cada nivel los detalles de
operacin de los niveles inferiores puedan ser ignorados.
Estos niveles son:
Nivel 1: Ncleo (procesos, semforos)
Nivel 2: E/S bsica (bloque de datos)
Nivel 3: Administracin de memoria (segmentos, pginas)
Nivel 4: Sistema de archivos (archivos, dispositivos)
Nivel 5: Intrprete del lenguaje de rdenes (datos del entorno)

24

También podría gustarte