Sie sind auf Seite 1von 45

1.

Introducción
2. Definición
3. Características
4. Evolución
5. Cliente-Servidor
6. Protocolo
7. Middleware
8. Objetos distribuidos
9. Base de datos distribuida
10. Desarrollo WEB
11. Tecnologías Inalámbricas
12. Ventajas de los Sistemas Distribuidos
13. Desventajas de los Sistemas Distribuidos
14. Desafíos
15. Aplicaciones
16. Conclusiones
17. Referencias
INTRODUCCIÓN
La computación desde sus inicios ha sufrido muchos cambios, desde los
grandes ordenadores que permitían realizar tareas en forma limitada y de uso
un tanto exclusivo de organizaciones muy selectas, hasta los actuales
ordenadores ya sean personales o portátiles que tienen las mismas e incluso
mayores capacidades que los primeros y que están cada vez más introducidos
en el quehacer cotidiano de una persona.
Los mayores cambios se atribuyen principalmente a dos causas, que se dieron
desde las décadas de los setenta:
1. El desarrollo de los microprocesadores, que permitieron reducir en
tamaño y costo a los ordenadores y aumentar en gran medida las
capacidades de los mismos y su acceso a más personas.
2. El desarrollo de las redes de área local y de las comunicaciones que
permitieron conectar ordenadores con posibilidad de transferencia de
datos a alta velocidad.
Es en este contexto que aparece el concepto de "Sistemas Distribuidos" que se
ha popularizado tanto en la actualidad y que tiene como ámbito de estudio las
redes como por ejemplo: Internet, redes de teléfonos móviles, redes
corporativas, redes de empresas, etc.
En consecuencia, el presente trabajo que lleva el título de "Sistemas
Distribuidos", tiene como principal objetivo: "describir panorámicamente los
aspectos relevantes que están involucrados en los Sistemas Distribuidos".
Para lograr el objetivo planteado se ha estructurado el trabajo de la siguiente
manera:
1. Introducción.- Donde especificamos el preámbulo del tema, el objetivo
del trabajo y el contenido del mismo.
2. Desarrollo.- Donde se describen los aspectos involucrados en los sistemas
distribuidos.
3. Referencias.- Donde especificamos las fuentes que fueron consultadas
para el presente estudio.
DESARROLLO
Sistemas Distribuidos
Definición:
"Sistemas cuyos componentes hardware y software, que están en ordenadores
conectados en red, se comunican y coordinan sus acciones mediante el paso de
mensajes, para el logro de un objetivo. Se establece la comunicación mediante
un protocolo prefijado por un esquema cliente-servidor".
Características:

• Concurrencia.- Esta característica de los sistemas distribuidos permite que los
recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios
y/o agentes que interactúan en la red.
• Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre
los diferentes componentes para la realización de una tarea, no tienen una
temporización general, esta más bien distribuida a los componentes.
• Fallos independientes de los componentes.- Cada componente del sistema puede
fallar independientemente, con lo cual los demás pueden continuar ejecutando sus
acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su
conjunto continua trabajando.
Evolución:
Procesamiento central (Host).- Uno de los primeros modelos de ordenadores
interconectados, llamados centralizados, donde todo el procesamiento de la organización se
llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios
empleaban sencillos ordenadores personales.
Los problemas de este modelo son:
• Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware del
Mainframe, lo cual es más costoso que añadir más computadores personales clientes o
servidores que aumenten las capacidades.

• El otro problema que surgió son las modernas interfases gráficas de usuario, las cuales
podían conllevar a un gran aumento de tráfico en los medios de comunicación y por
consiguiente podían colapsar.
Grupo de Servidores.- Otro modelo que entró a competir con el anterior, también un
tanto centralizado, son un grupo de ordenadores actuando como servidores, normalmente
de archivos o de impresión, poco inteligentes para un número de Minicomputadores que
hacen el procesamiento conectados a una red de área local.
Los problemas de este modelo son:
• Podría generarse una saturación de los medios de comunicación entre los servidores
poco inteligentes y los minicomputadores, por ejemplo cuando se solicitan archivos
grades por varios clientes a la vez, podían disminuir en gran medida la velocidad de
transmisión de información.
La Computación Cliente Servidor.- Este modelo, que predomina en la actualidad,
permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios
y de la visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos servidores
estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma
eficiente.
Cliente-Servidor
Definición:
Sistema donde el cliente es una máquina que solicita un determinado servicio y se
denomina servidor a la máquina que lo proporciona. Los servicios pueden ser:
• Ejecución de un determinado programa.
• Acceso a un determinado banco de información.

• Acceso a un dispositivo de hardware.


Es un elemento primordial, la presencia de un medio físico de comunicación entre las
máquinas, y dependerá de la naturaleza de este medio la viabilidad del sistema.
Categorías de Servidores:
A continuación se presenta una lista de los servidores más comunes:
• Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no
fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto
sería una gran opción de almacenamiento y procesamiento de archivos. El cliente
solicita los archivos y el servidor los ubica y se los envía.
• Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos
estructurados, se diferencian de los de archivos pues la información que se envía está ya
resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe
esa consulta (SQL) y extrae solo la información pertinente y envía esa respuesta al
cliente.
• Servidores de Software de Grupo.- El software de grupo es aquel, que permite
organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas
tareas. Por ejemplo: almacenar las listas de correo electrónico. El Cliente puede
indicarle, que se ha terminado una tarea y el servidor se lo envía al resto del grupo.
• Servidores WEB.- Son los que guardan y proporcionan Páginas HTML. El cliente
desde un browser o link hace un llamado de la página y el servidor recibe el mensaje y
envía la página correspondiente.

• Servidores de correo.- Gestiona el envío y recepción de correo de un grupo de


usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un
protocolo de correo.
• Servidor de objetos.- Permite almacenar objetos que pueden ser activados a
distancia. Los clientes pueden ser capaces de activar los objetos que se encuentran en el
servidor.

• Servidores de impresión.- Gestionan las solicitudes de impresión de los clientes. El


cliente envía la solicitud de impresión, el servidor recibe la solicitud y la ubica en la
cola de impresión, ordena a la impresora que lleve a cabo las operaciones y luego
avisa a la computadora cliente que ya acabo su respectiva impresión.
• Servidores de aplicación.- Se dedica a una única aplicación. Es básicamente una
aplicación a la que pueden acceder los clientes.
Componentes de Software:
Se distinguen tres componentes básicos de software:
• Presentación.- Tiene que ver con la presentación al usuario de un conjunto de objetos
visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los
devueltos por el servidor.
• Lógica de aplicación.- Esta capa es la responsable del procesamiento de la
información que tiene lugar en la aplicación.
• Base de datos.- Esta compuesta de los archivos que contienen los datos de la
aplicación.
Arquitecturas Cliente / Servidor
A continuación mostramos las arquitecturas cliente-servidor más populares:
• Arquitectura Cliente-Servidor de Dos Capas.- Consiste en una capa de
presentación y lógica de la aplicación; y la otra de la base de datos. Normalmente esta
arquitectura se utiliza en las siguientes situaciones:

○ Cuando se requiera poco procesamiento de datos en la organización.


○ Cuando se tiene una base de datos centralizada en un solo servidor.
○ Cuando la base de datos es relativamente estática.
○ Cuando se requiere un mantenimiento mínimo.

CLIENTE/SERVIDOR DE DOS CAPAS


• Arquitectura Cliente-Servidor de Tres Capas- Consiste en una capa de la
Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos.
Normalmente esta arquitectura se utiliza en las siguientes situaciones:

○ Cuando se requiera mucho procesamiento de datos en la aplicación.


○ En aplicaciones donde la funcionalidad este en constante cambio.
○ Cuando los procesos no están relativamente muy relacionados con los datos.
○ Cuando se requiera aislar la tecnología de la base de datos para que sea fácil de
cambiar.
○ Cuando se requiera separar el código del cliente para que se facilite el
mantenimiento.
○ Esta muy adecuada para utilizarla con la tecnología orientada a objetos.

CLIENTE/SERVIDOR DE TRES CAPAS


Clasificación de los sistemas cliente servidor:
A continuación mostramos la clasificación de de los sistemas cliente/servidor de acuerdo al
nivel de abstracción del servicio que ofrecen:

1.
2. Representación distribuida.- La interacción con el usuario se realiza en el
servidor, el cliente hace de pasarela entre el usuario y el servidor.

3. Representación Remota.-La lógica de la aplicación y la base de datos se


encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con
el usuario.

4. Lógica Distribuida.- El cliente se encarga de la interacción con el usuario y de


algunas funciones triviales de la aplicación. Por ejemplo controles de rango de
campos, campos obligatorios, etc. Mientras que el resto de la aplicación, junto con la
base de datos, están en el servidor.
5. Gestión Remota de Datos.- El cliente realiza la interacción con el usuario y ejecuta
la aplicación y el servidor es quien maneja los datos.

6. Base de Datos Distribuidas.- El cliente realiza la interacción con el usuario,


ejecuta la aplicación, debe conocer la topología de la red, así como la disposición y
ubicación de los datos. Se delega parte de la gestión de la base de datos al cliente.
7. Cliente servidor a tres niveles.- El cliente se encarga de la interacción con el
usuario, el servidor de la lógica de aplicación y la base de datos puede estar en otro
servidor.

PROTOCOLO
Definición:
Es un conjunto bien conocido de reglas y formatos que se utilizan para la
comunicación entre procesos que realizan una determinada tarea. Se
requieren dos partes:
• Especificación de la secuencia de mensajes que se han de intercambiar.
• Especificación del formato de los datos en los mensajes.
Un protocolo permite que componentes heterogéneos de sistemas distribuidos
puedan desarrollarse independientemente, y por medio de módulos de
software que componen el protocolo, haya una comunicación transparente
entre ambos componentes. Es conveniente mencionar que estos componentes
del protocolo deben estar tanto en el receptor como en el emisor.
Ejemplos de protocolos usados en los sistemas distribuidos:
• IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la
unidad básica de transferencia de datos y se encarga del direccionamiento de la
información, para que llegue a su destino en la red.
• TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte,
que permite dividir y ordenar la información a transportar en paquetes de menor
tamaño para su transporte y recepción.
• HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de
aplicación, que permite el servicio de transferencia de páginas de hipertexto entre el
cliente WEB y los servidores.
• SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de
aplicación, que permite el envío de correo electrónico por la red.
• POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que
permite la gestión de correos en Internet, es decir, le permite a una estación de trabajo
recuperar los correos que están almacenados en el servidor.
MIDDLEWARE
Definición:
Capa de software intermedio entre el cliente y el servidor. Es la capa de software que nos
permiten gestionar los mecanismos de comunicaciones. Ejemplo si se hace la petición de
una página web desde un browser en el cliente, el middleware determina la ubicación y
envía una petición para dicha página. El servidor Web, interpreta la petición y envía la
página al software intermedio, quien la dirige al navegador de la máquina cliente que la
solicitó.
Existen dos tipos:
• Software intermedio general. Servicios generales que requieren todos los clientes y
servidores, por ejemplo: software para las comunicaciones usando el TCP/IP, software
parte del sistema operativo que, por ejemplo, almacena los archivos distribuidos,
software de autenticación, el software intermedio de mensajes de clientes a servidores y
viceversa.
• Software intermedio de servicios. Software asociado a un servicio en particular,
por ejemplo: software que permite a dos BD conectarse a una red cliente/servidor
(ODBC: Conectividad abierta de BD), software de objetos distribuidos, por ejemplo la
tecnología CORBA permite que objetos distribuidos creados en distintos lenguajes
coexistan en una misma red (intercambien mensajes), software intermedio para
software de grupo, software intermedio asociado a productos de seguridad específicas
(Conexiones Seguras: Sockets), etc.
Características:
• Independiza el servicio de su implantación, del sistema operativo y de los protocolos de
comunicaciones.
• Permite la convivencia de distintos servicios en un mismo sistema.
• Permite la transparencia en el sistema.
• Modelo tradicional: Monitor de teleproceso o CICS, Tuxedo, Encina.
• Modelo OO: CORBA.
OBJETOS DISTRIBUIDOS
Definición:
En los sistemas Cliente/Servidor, un objeto distribuido es aquel que esta gestionado por un
servidor y sus clientes invocan sus métodos utilizando un "método de invocación remota".
El cliente invoca el método mediante un mensaje al servidor que gestiona el objeto, se
ejecuta el método del objeto en el servidor y el resultado se devuelve al cliente en otro
mensaje.
Tecnologías orientadas a los objetos distribuidos:
Las tres tecnologías importantes y más usadas en este ámbito son:
1. RMI.- Remote Invocation Method.- Fue el primer fremework para crear sistemas
distribuidos de Java. El sistema de Invocación Remota de Métodos (RMI) de Java
permite, a un objeto que se está ejecutando en una Máquina Virtual Java (VM), llamar
a métodos de otro objeto que está en otra VM diferente. Esta tecnología está asociada
al lenguaje de programación Java, es decir, que permite la comunicación entre objetos
creados en este lenguaje.
2. DCOM.- Distributed Component Object Model.- El Modelo de Objeto Componente
Distribuido, esta incluido en los sistemas operativos de Microsoft. Es un juego de
conceptos e interfaces de programa, en el cual los objetos de programa del cliente,
pueden solicitar servicios de objetos de programa servidores en otros ordenadores
dentro de una red. Esta tecnología esta asociada a la plataforma de productos
Microsoft.
3. CORBA.- Common Object Request Broker Architecture.- Tecnología introducida por
el Grupo de Administración de Objetos OMG, creada para establecer una plataforma
para la gestión de objetos remotos independiente del lenguaje de programación.
BASE DE DATOS DISTRIBUIDA
Definición:
Es una colección de datos (base de datos) construida sobre una red y que pertenecen,
lógicamente, a un solo sistema distribuido, la cual cumple las siguientes condiciones:
• La información de la base de datos esta almacenada físicamente en diferentes sitios de la
red.
• En cada sitio de la red, la parte de la información, se constituye como una base de datos
en sí misma.
• Las bases de datos locales tienen sus propios usuarios locales, sus propios DBMS y
programas para la administración de transacciones, y su propio administrador local de
comunicación de datos.
• Estas base de datos locales deben de tener una extensión, que gestione las funciones de
sociedad necesarias; la combinación de estos componentes con los sistemas de
administración de base de datos locales, es lo que se conoce como Sistema
Administrador de Base de Datos Distribuidas.
• Este gestor global permite que usuarios puedan acceder a los datos desde cualquier
punto de la red, como si lo hicieran con los datos de su base de datos local, es decir, para
el usuario, no debe existir diferencia en trabajar con datos locales o datos de otros sitios
de la red.
En consecuencia, la base de datos distribuida, es como una unidad virtual, cuyas partes se
almacenan físicamente en varias bases de datos "reales" distintas, ubicadas en diferentes
sitios.
Ejemplo de base de datos distribuida:
Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las
terminales de la misma y el sistema de cuentas. Cada computador con su sistema de
cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras están
conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales
de la sucursal necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la
misma red local, se les llaman aplicaciones locales.
Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de
algunas transacciones que acceden a información en más de una sucursal. Estas
transacciones son llamadas transacciones globales o transacciones distribuidas.
La existencia de transacciones globales será considerada como una característica que nos
ayude a discriminar entre las BDD y un conjunto de base de datos locales.
Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta
aplicación requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real
actualización en ambos sitios o en ninguno. Asegurar el buen funcionamiento de
aplicaciones globales es una tarea difícil.
Ventajas de las Base de Datos Distribuidas
• Descentralización.- En un sistema centralizado/distribuido, existe un administrador
que controla toda la base de datos, por el contrario en un sistema distribuido existe un
administrador global que lleva una política general y delega algunas funciones a
administradores de cada localidad para que establezcan políticas locales y así un trabajo
eficiente.
• Economía: Existen dos aspectos a tener en cuenta.

○ El primero son los costes de comunicación; si las bases de datos están muy dispersas
y las aplicaciones hacen amplio uso de los datos puede resultar más económico
dividir la aplicación y realizarla localmente.
○ El segundo aspecto es que cuesta menos crear un sistema de pequeños ordenadores
con la misma potencia que un único ordenador.
• Mejora de rendimiento: Pues los datos serán almacenados y usados donde son
generados, lo cual permitirá distribuir la complejidad del sistema en los diferentes sitios
de la red, optimizando la labor.
• Mejora de fiabilidad y disponibilidad: La falla de uno o varios lugares o el de un
enlace de comunicación no implica la inoperatividad total del sistema, incluso si
tenemos datos duplicados puede que exista una disponibilidad total de los servicios.
• Crecimiento: Es más fácil acomodar el incremento del tamaño en un sistema
distribuido, por que la expansión se lleva a cabo añadiendo poder de procesamiento y
almacenamiento en la red, al añadir un nuevo nodo.
• Flexibilidad: Permite acceso local y remoto de forma transparente.
• Disponibilidad: Pueden estar los datos duplicados con lo que varias personas pueden
acceder simultáneamente de forma eficiente. El inconveniente, el sistema administrador
de base de datos debe preocuparse de la consistencia de los mismos.
• Control de Concurrencia: El sistema administrador de base de datos local se
encarga de manejar la concurrencia de manera eficiente.
Inconvenientes de las base de datos distribuidas.
• El rendimiento que es una ventaja podría verse contradicho, por la naturaleza de la
carga de trabajo, pues un nodo puede verse abrumado, por las estrategias utilizadas de
concurrencia y de fallos, y el acceso local a los datos. Se puede dar esta situación cuando
la carga de trabajo requiere un gran número de actualizaciones concurrentes sobre datos
duplicados y que deben estar distribuidos.
• La confiabilidad de los sistemas distribuidos, esta entre dicha, puesto que, en este tipo
de base de datos existen muchos factores a tomar en cuanta como: La confiabilidad de
los ordenadores, de la red, del sistema de gestión de base de datos distribuida, de las
transacciones y de las tazas de error de la carga de trabajo.
• La mayor complejidad, juega en contra de este tipo de sistemas, pues muchas veces se
traduce en altos gastos de construcción y mantenimiento. Esto se da por la gran
cantidad de componentes Hardware, muchas cosas que aprender, y muchas aplicaciones
susceptibles de fallar. Por ejemplo, el control de concurrencia y recuperación de fallos,
requiere de personal muy especializado y por tal costoso.
• El procesamiento de base de datos distribuida es difícil de controlar, pues estos procesos
muchas veces se llevan a cabo en las áreas de trabajo de los usuarios, e incluso el acceso
físico no es controlado, lo que genera una falta de seguridad de los datos.
Desarrollo WEB
Caso particular de los sistemas Cliente-Servidor con representación remota.
En donde se dispone de un protocolo estándar: HTTP y un Middleware
denominado WebServer. En la actualidad la aplicación de sistemas
informáticos basados en Internet, es una herramienta fundamental para las
organizaciones que desean tener cierta presencia competitiva.
Tecnologías de la lógica de la aplicación en el servidor web:
a. CGI: Common Gateware Interface..- Son programas que se ejecutan en el servidor,
pueden servir como pasarela con una aplicación o base de datos o para generar
documentos html de forma automática. Cada petición http ejecuta un proceso, el cual
analiza la solicitud y genera un resultado. Son independientes del SO, y presentan la
ventaja de que, dado un programa escrito en un lenguaje cualquiera, es fácil adaptarlo
a un CGI. Entre los lenguajes que se usan para CGIs, el más popular es el Perl.
b. Servlets: Pequeños programas en Java que se ejecutan de forma persistente en el
servidor, y que, por lo tanto, tienen una activación muy rápida, y una forma más
simple de hacerlo. Estos programas procesan una petición y generan la página de
respuesta.

Al ser llamado por el navegador, el motor ASP del IIS (Internet Information Server) se
encarga automáticamente de ejecutarlo como se suele hacer con un programa
cualquiera, pero cuya salida siempre será a través del navegador que le invoca. Es un
entorno propietario de Microsoft y el lenguaje de secuencia de comandos
predeterminado del IIS es el VBScript, aunque puede cambiarse.
c. ASP (Active Server Pages): Una página ASP es un fichero de sólo texto que
contiene las secuencias de comandos, junto con el HTML necesario, y que se guarda
con la extensión ".asp".
d. JSP (Java Server Pages), que consisten en pequeños trozos de código en Java que se
insertan dentro de páginas web, de forma análoga a los ASPs. Ambas opciones, hoy en
día, son muy populares en sitios de comercio electrónico. Frente a los ASPs, la ventaja
que presentan es que son independientes del sistema operativo y del procesador de la
máquina.
Consideraciones a tomar en el desarrollo de un sistema WEB
e. PHP es un lenguaje cuyos programas se insertan también dentro de las páginas web,
al igual que los ASPs y JSPs; es mucho más simple de usar, y el acceso a bases de
datos desde él es muy simple. Es tremendamente popular en sitios de comercio
electrónico con poco tráfico, por su facilidad de desarrollo y rapidez de implantación.
a. Separar la lógica de la aplicación de la interfase de usuario.
b. Utilizar métodos estándar de comunicación entre la lógica de aplicación y la interfase
de usuario.
c. Herramientas que permitan una fácil adaptación de las aplicaciones a los nuevos
dispositivos que irán apareciendo.
d. Definir el coste en comunicaciones que debe asumir la organización.
e. Tener en cuenta los procesos de réplica, periodicidad y el ancho de banda que
consuman.
f. Replantear la idoneidad de la ubicación de cada proceso.
g. Extremar las pruebas al diseñar e implementar los protocolos de comunicación.
Tendencias Actuales de las arquitecturas de sistemas WEB:

Variante de los fabricantes de Base de Datos


Variante de los fabricantes de pasarelas:

TECNOLOGÍAS INALÁMBRICAS
Las tecnologías inalámbricas, en los últimos años, están alcanzando la
madurez necesaria para permitir el acceso a una red, sin la necesidad de la
utilización de los cables tradicionales de conexión.
A continuación mostramos un conjunto de tecnologías que contribuyen al
desarrollo de las conexiones inalámbricas:
GSM (Global System for Mobile communications):
El sistema global para comunicaciones móviles, es un estándar para comunicación
utilizando teléfonos móviles que incorpora tecnología digital. Permite utilizar el sistema
SMS (servicio de mensajes cortos), para enviar y recibir mensajes de texto. Es la evolución
tecnológica de los teléfonos móviles análogos.
GPRS (General Packet Radio Service):
Es un sistema de transmisión que funciona en el entorno de la telefonía móvil. En este
sistema cada llamada de voz o cada conexión de datos, ocupa de manera exclusiva un canal
mientras dure esa llamada o conexión, por tanto, un usuario puede hacer uso de varios
canales y un mismo canal puede ser compartido por varios usuarios. Esta basado en la
conmutación de paquetes y permite la transmisión de datos a alta velocidad para el acceso a
Internet.
UMTS (Universal Mobile Telecommunications System):
El Sistema Universal de Telecomunicaciones Móviles, permitirá disponer de banda ancha
en telefonía móvil y transmitir un volumen de datos importante por la red. Con esta
tecnología de tercera generación serán posible las videoconferencias, descargar videos, el
intercambio de postales electrónicas, paseos 'virtuales' por casas en venta, etc... todo desde
el móvil.
WAP (Wireless Application Protocol)
El Protocolo de Aplicaciones Inalámbricas (WAP) es un servicio de mensajes digital
inteligente para teléfonos celulares y otras terminales móviles que te permitirán visualizar
contenidos de Internet en un formato de texto especial en un teléfono celular con tecnología
GSM.
WAP se ha convertido en el estándar global para proveer información a las terminales
inalámbricas.
WAP utiliza un microbrowser con un nuevo estándar llamado WML (similar al HTML)
optimizado para terminales móviles inalámbricas.
WAP esconde la complejidad del GSM en las aplicaciones, así como la Web lo ha hecho para
Internet. Expande una variedad de opciones de transporte y dispositivos, incluyendo SMS,
9.6 kbit/s GSM data y GPRS.
Bluetooth
Es la norma que define un estándar global de comunicación inalámbrica a cortas distancias,
que posibilita la transmisión de voz y datos entre diferentes equipos mediante un enlace por
radiofrecuencia. Los principales objetivos que se pretende conseguir con esta norma son:
• Facilitar las comunicaciones entre equipos móviles y fijos.
• Eliminar cables y conectores entre éstos.
• Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización
de datos entre nuestros equipos personales.
La tecnología Bluetooth comprende hardware, software y requerimientos de
interoperatividad.
WIFI (Wireless Fidelity):
Es la tecnología utilizada en una red o conexión inalámbrica, para la comunicación de datos
entre equipos situados dentro de una misma área (interior o exterior) de cobertura.
Conceptualmente, no existe ninguna diferencia entre una red con cables (cable coaxial,
fibra óptica, etc.) y una inalámbrica. La diferencia está en que las redes inalámbricas
transmiten y reciben datos a través de ondas electromagnéticas, lo que supone la
eliminación del uso de cables y, por tanto, una total flexibilidad en las comunicaciones.
WIMAX (Worldwide Interoperability for Microwave Access):
Es el nombre con el que se conoce la norma 802.16a, un estándar inalámbrico aprobado en
enero del 2003 en el WiMax Forum, formado por un grupo de 67 compañías, que ofrece un
mayor ancho de banda y alcance que la familia de estándares WiFi, compuesta por el
802.11a, 802.11b y 802.11g.
Como decimos, la diferencia entre estas dos tecnologías inalámbricas son su alcance y
ancho de banda. Mientras que WiFi está pensado para oficinas o dar cobertura a zonas
relativamente pequeñas, WiMax ofrece tasas de transferencia de 70mbps a distancias de
hasta 50 kilómetros de una estación base. Por comparación, la tasa de transferencia de WiFi
es de 11mbps y la distancia de hasta 350 metros en zonas abiertas.
VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Con respecto a Sistemas Centralizados:
• Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más
barato, añadir servidores y clientes cuando se requiere aumentar la potencia de
procesamiento.
• El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los robots tienen
sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema
distribuido.
• Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas
máquinas la falla de una de ellas no afecta a las demás, el sistema sobrevive como un
todo.
• Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema
incrementando su potencia en forma gradual según sus necesidades.
Con respecto a PCs Independientes:
• Se pueden compartir recursos, como programas y periféricos, muy costosos.
Ejemplo: Impresora Láser, dispositivos de almacenamiento masivo, etc.
1. Al compartir recursos, satisfacen las necesidades de muchos usuarios a la
vez. Ejemplo: Sistemas de reservas de aerolíneas.
• Se logra una mejor comunicación entre las personas. Ejemplo: el correo electrónico.
• Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes
ordenadores.
DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

• El principal problema es el software, es el diseño, implantación y uso del software
distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes
son los siguientes:

○ ¿Qué tipo de S. O., lenguaje de programación y aplicaciones son adecuados para


estos sistemas?.
○ ¿Cuánto deben saber los usuarios de la distribución?.
○ ¿Qué tanto debe hacer el sistema y qué tanto deben hacer los usuarios?.

La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una
gran diversidad de criterios y de interpretaciones al respecto.
• Otro problema tiene que ver con las redes de comunicación. Por ejemplo: -Perdida de
mensajes, saturación en el tráfico, etc.
• Un problema que puede surgir al compartir datos es la seguridad de los mismos.
En general se considera que las ventajas superan a las desventajas, si estas últimas se
administran seriamente.
DESAFÍOS

• Heterogeneidad de los componentes.- La interconexión, sobre todo cuando se usa
Internet, se da sobre una gran variedad de elementos hardware y software, por lo cual
necesitan de ciertos estándares que permitan esta comunicación. Los Middleware, son
elementos software que permiten una abstracción de la programación y el
enmascaramiento de la heterogeneidad subyacente sobre las redes. También el
middleware proporciona un modelo computacional uniforme.
• Extensibilidad.- Determina si el sistema puede extenderse y reimplementado en
diversos aspectos (añadir y quitar componentes). La integración de componentes
escritos por diferentes programadores es un autentico reto.
• Seguridad.- Reviste gran importancia por el valor intrínseco para los usuarios. Tiene
tres componentes:

○ Confidencialidad.- Protección contra individuos no autorizados.


○ Integridad.- Protección contra la alteración o corrupción.
○ Disponibilidad.- Protección contra la interferencia con los procedimientos de acceso
a los recursos.
• Escalabilidad.- El sistema es escalable si conserva su efectividad al ocurrir un
incremento considerable en el número de recursos y en el número de usuarios.
• Tratamiento de Fallos.- La posibilidad que tiene el sistema para seguir funcionando
ante fallos de algún componente en forma independiente, pero para esto se tiene que
tener alguna alternativa de solución. Técnicas para tratar fallos:

○ Detección de fallos. Algunos fallos son detectables, con comprobaciones por
ejemplo.
○ Enmascaramiento de fallos. Algunos fallos detectados pueden ocultarse o
atenuarse.
○ Tolerancia de fallos. Sobre todo en Internet se dan muchos fallos y no es muy
conveniente ocultarlos, es mejor tolerarlos y continuar. Ej: Tiempo de vida de una
búsqueda.
○ Recuperación frente a fallos. Tras un fallo se deberá tener la capacidad de volver
a un estado anterior.
○ Redundancia. Se puede usar para tolerar ciertos fallos (DNS, BD, etc.)
• Concurrencia. Compartir recursos por parte de los clientes a la vez.
• Transparencia. Es la ocultación al usuario y al programador de aplicaciones de la
separación de los componentes en un sistema distribuido. Se identifican 8 formas de
transparencia:

○ De Acceso. Se accede a recursos locales y remotos de forma idéntica.
○ De ubicación. Permite acceder a los recursos sin conocer su ubicación.
○ De concurrencia. Usar un recurso compartido sin interferencia.
○ De replicación. Permite utilizar varios ejemplares de cada recurso.
○ Frente a fallos. Permite ocultar los fallos.
○ De movilidad. Permite la reubicación de recursos y clientes sin afectar al sistema.
○ De prestaciones. Permite reconfigurar el sistema para mejorar las prestaciones
según su carga.
○ Al escalado. Permite al sistema y a las aplicaciones expandirse en tamaño sin
cambiar la estructura del sistema o los algoritmos de aplicación.
APLICACIONES

• Sistemas Comerciales.- Inicialmente fueron construidos con hardware dedicado y
entornos centralizados, son, por sus características de distribución geográfica y
necesidad de acceso a sistemas distintos, ideales para implementarse en sistemas
distribuidos. Requieren ciertas características de fiabilidad, seguridad y protección.
Algunos ejemplos son:

○ Sistemas de reservas de líneas aéreas.


○ Aplicaciones bancarias.
○ Cajas y gestión de grandes almacenes.
• Redes WAN.- Debido al gran crecimiento de este tipo de redes (Internet), ha tomado
gran importancia el intercambio de información a través de la red. Y para esto tenemos
los siguientes ejemplos:

○ Los servicios comunes que brinda Internet: Correo electrónico, servicio de noticias,
transferencia de archivos, la Wrld Wide Web, etc.
• Aplicaciones Multimedia.- Son las últimas incorporaciones a los sistemas
distribuidos. Estas aplicaciones imponen ciertas necesidades de hardware para poder
tener una velocidad y regularidad de transferencia de una gran cantidad de datos. Los
ejemplos de estos sistemas son:

○ Videoconferencia.
○ Televigilancia.
○ Juegos multiusuarios.
○ Enseñanza asistida por ordenador.
• Áreas de la informática aplicada a los Sistemas Distribuidos.- En este punto se
tienen en cuenta toda la variedad de aplicaciones de los sistemas distribuidos, pues su
diseño involucra a muchas áreas, por ejemplo:

○ Comunicaciones.
○ Sistemas operativos distribuidos.
○ Base de datos distribuidas.
○ Servidores distribuidos de ficheros.
○ Lenguajes de programación distribuidos.
○ Sistemas de tolerancia de fallos.
CONCLUSIONES

• Los sistemas distribuidos abarcan una cantidad de aspectos considerables, por lo cual su
desarrollo implica mucha complejidad.
• Existen ciertos aspectos que requieren extremo cuidado al desarrollarse e implantarse
como el manejo de fallos, el control de la concurrencia, etc.
• Existen muchos temas de investigación relacionados con los sistemas distribuidos, por
ejemplo los planteados en el apartado de Desafíos.
• Se nota también que muchas tecnologías están en constante desarrollo y maduración, lo
cual implica un minucioso estudio previo de muchos factores antes de apostar por
alguna tecnología en especial.
REFERENCIAS
Roger S. Presuman. Ingeniería de Software. Quinta Edición. McGraw-Hill
Interamericana. Madrid. 2002.
George Coulouris. Sistemas Distribuidos. Tercera Edición. Addison Wesley.
Madrid. 2001.
Guía Rápida de Internet, David Zurdo Saiz, Alejandro Sicilia Burgoa,
Fernando Acevedo Quero, Paraninfo. Madrid. 1997.
http://fmc.axarnet.es/redes/tema_04.htm (Sistemas Operativos).
http://www.fortunecity.es/sopa/chinchulines/812/informacion/noscs.htm (Sistemas
Operativos).
http://dmi.uib.es/~bbuades/sistdistr/sld007.htm (Sistemas Distribuidos).
http://members.fortunecity.es/lrmdl/SO7.htm#VSDRC (Sistemas Distribuidos).
http://sacbeob.8m.com/tutoriales/bddistribuidas/ (Base de Datos Distribuidas).
http://pdf.rincondelvago.com/bases-de-datos-distribuidas.html (Base de Datos
Distribuidas)
http://www-lt.ls.fi.upm.es/sistemas_dist/Introduccion.pdf (Sistemas Distribuidos).
http://www.dia.eui.upm.es/cgi-bin/asigfram.pl?cual=sis_dis&nombre=Sistemas-Distribu
%EDdos (Sistemas Distribuidos: Aplicaciones).
http://www.fisica.uson.mx/carlos/WebServices/WSOverview.htm (Objetos Distribuidos).
http://di002.edv.uniovi.es/~lourdes/publicaciones/bt99.pdf (Objetos Distribuidos).
http://www.iespana.es/darkstar/secciones/informatica/redes/tcpip/capas.html
(Protocolos).

OMAR HURTADO JARA


OmarH[arroba]ie.inf.uc3m.es
NUEVOS PARADIGMAS DE LOS SISTEMAS DE INFORMACIÓN
UNIVERSIDAD CARLOS III DE MADRID
DOCTORADO EN INGENIERÍA INFORMÁTICA
Comentarios
El comentario ha sido publicado.

Para dejar un comentario, regístrese gratis o si ya está registrado, inicie sesión.


Principio del formulario

Agregar un comentario Enviar comentario


Los comentarios están sujetos a los Términos y Condiciones
Final del formulario

Trabajos relacionados
• Análisis a las causas y consecuencias de los ataques de hackers en los computadores
del IUTA
Investigar un tema como el que se presenta pudiera parecer ante los ojos de los "expertos en informática"
una tarea muy ...
• Inteligencia artificial
La inteligencia: Diferentes teorías y definiciones. Inteligencias múltiples. Futuro de la IA. El termino
"inteligencia a...
• Sistemas distribuidos
Definición. Características. Evolución. Cliente-Servidor. Protocolo. Middleware. Objetos distribuidos. Base de
datos ist...
Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos
lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios
lógicos (pej. un servidor corriendo 2 maquinas virtuales) e interconectados por una red
de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento
autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases
de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos
están ligados por un sistema de comunicaciones de tal forma que, un usuario en
cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si
estos fueran accedidos de forma local.
Un sistema distribuido de bases de datos se almacenan en varias computadoras. Los
principales factores que distinguen un SBDD de un sistema centralizado son los
siguientes:
• Hay múltiples computadores, llamados sitios o nodos.
• Estos sitios deben de estar comunicados por medio de algún tipo de
red de comunicaciones para transmitir datos y órdenes entre los
sitios.

Contenido
[ocultar]
• 1 Historia
○ 1.1 Inicio de las bases de datos distribuidas
○ 1.2 Evolución
• 2 Componentes
○ 2.1 Hardware involucrado
○ 2.2 Software
 2.2.1 Sistema Manejador de Base de Datos Distribuida
(DDBMS)
 2.2.2 Administrador de transacciones distribuidas (DTM)
 2.2.3 Sistema Manejador de base de datos (DBMS)
 2.2.4 Nodo
• 3 Consideraciones importantes
○ 3.1 Calendarizador distribuido
○ 3.2 Detección de bloqueos y Concurrencia
 3.2.1 Bloqueos
 3.2.2 Concurrencia
 3.2.3 Soluciones
 3.2.3.1 Bloqueo de dos fases (2PL)
 3.2.3.2 Time-stamp
○ 3.3 Manejador de transacciones distribuido (DTM)
 3.3.1 Definición de transacciones
 3.3.1.1 Propiedades de las transacciones
 3.3.1.2 Tipos de transacciones
 3.3.2 Función del manejador
○ 3.4 Distribución de los datos
 3.4.1 Replicadas
 3.4.2 Particionadas
 3.4.3 Híbrida
 3.4.4 Criterios para escoger la distribución
○ 3.5 Seguridad
 3.5.1 Conceptos
 3.5.2 El problema de inferencia
○ 3.6 Tipos de arquitecturas/implementaciones
 3.6.1 Multi Base de Datos Distribuida
 3.6.2 Base de Datos Federada
 3.6.3 Objetivos de Implementación
• 4 Ventajas y Desventajas
○ 4.1 Ventajas
○ 4.2 Desventajas
• 5 Productos existentes
• 6 Bibliografía

[editar] Historia
La necesidad de almacenar datos de forma masiva dio paso a la creación de los sistemas
de bases de datos. En 1970 Edgar Frank Codd escribió un artículo con nombre: "A
Relational Model of Data for Large Shared Data Banks" ("Un modelo relacional para
grandes bancos de datos compartidos"). Con este artículo y otras publicaciones, definió
el modelo de bases de datos relacionales y reglas para poder evaluar un administrador
de bases de datos relacionales.
[editar] Inicio de las bases de datos distribuidas
Originalmente se almacenaba la información de manera centralizada, pero con el paso
del tiempo las necesidades aumentaron y esto produjo ciertos inconvenientes que no era
posible solucionarlos o volverlos eficientes de la forma centralizada. Estos problemas
impulsaron la creación de almacenamiento distribuido, los cuales hoy en día proveen
características indispensables en el manejo de información; es decir, la combinación de
las redes de comunicación y las bases de datos.
[editar] Evolución
Hay varios factores que han hecho que las bases de datos evolucionen a bases de datos
distribuidas. En el mundo de los negocios se ha dado una globalización y a la vez las
operaciones de las empresas son cada vez más descentralizadas geográficamente.
También el poder de las computadoras personales aumentó y el costo de los Mainframes
ya no tenía sentido. Además la necesidad de compartir datos ha hecho que crezca el
mercado de las bases de datos distribuidas.
[editar] Componentes
[editar] Hardware involucrado
El hardware utilizado no difiere mucho del hardware utilizado en un servidor normal. Al
principio se creía que si los componentes de una base de datos eran especializados
serían más eficientes y rápidos, pero se comprobó que el decentralizar todo y adoptar un
enfoque "nada compartido" (shared-nothing) resultaba más barato y eficaz. Por lo que
el hardware que compone una base de datos distribuida se reduce a servidores y la red.
[editar] Software
[editar] Sistema Manejador de Base de Datos Distribuida (DDBMS)
Este sistema está formado por las transacciones y los administradores de la base de
datos distribuidos. Un DDBMS implica un conjunto de programas que operan en
diversas computadoras, estos programas pueden ser subsistemas de un único DDBMS
de un fabricante o podría consistir de una colección de programas de diferentes fuentes.
[editar] Administrador de transacciones distribuidas (DTM)
Este es un programa que recibe las solicitudes de procesamiento de los programas de
consulta o transacciones y las traduce en acciones para los administradores de la base de
datos. Los DTM se encargan de coordinar y controlar estas acciones. Este DTM puede
ser propietario o desarrollado en casa.
[editar] Sistema Manejador de base de datos (DBMS)
Es un programa que procesa cierta porción de la base de datos distribuida. Se encarga de
recuperar y actualizar datos del usuario y generales de acuerdo con los comandos
recibidos de los DTM.
[editar] Nodo
Un nodo es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo de
transacción ejecuta un DTM y un nodo de base de datos ejecuta un DBM.
[editar] Consideraciones importantes
[editar] Calendarizador distribuido
El calendarizador está encargado de ordenar un conjunto de transacciones u operaciones
que se deseen realizar sobre una base de datos. Cualquier orden en el que se decidan
hacer este conjunto de operaciones se denomina calendarización. Parte del trabajo del
calendarizador es realizar estas operaciones de forma que sean serializables y
recuperables.
Dos calendarizaciones son serializables (o equivalentes) si
• Cada operación de lectura lee valores de los datos que son
producidos por la misma operación de escritura en ambas
calendarizaciones (es decir son iguales)
• La operación final de escritura en cada elemento de la data es la
misma en ambas calendarizaciones
[editar] Detección de bloqueos y Concurrencia
[editar] Bloqueos
Un bloqueo en general es cuando una acción que debe ser realizada está esperando a un
evento. Para manejar los bloqueos hay distintos acercamientos: prevención, detección, y
recuperación. También es necesario considerar factores como que hay sistemas en los
que permitir un bloqueo es inaceptable y catastrófico, y sistemas en los que la detección
del bloqueo es demasiado costosa.

En el caso específico de las bases de datos distribuidas usar bloqueo de recursos,


peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los
manejadores de transacciones y el calendarizador. Para esto existen dos formas básicas:
• Autónoma: cada nodo es responsable por sus propios bloqueos de
recursos.
○ Una transacción sobre un elemento con n replicas requiere 5n
mensajes
○ Petición del recurso
○ Aprobación de la petición
○ Mensaje de la transacción
○ Reconocimientos de transacción exitosa
○ Peticiones de liberación de recursos
• Copia Primaria: un nodo primario es responsable para todos los
bloqueos de recursos
○ Una transacción sobre un elemento con n copias requiere 2n+3
mensajes
○ Una petición del recurso
○ Una aprobación de la petición
○ n mensajes de la transacción
○ n reconocimientos de transacción exitosa
○ Una petición de liberación de recurso
Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si ambas
acceden a la misma data, y una de ellas es de escritura y si fueron realizadas por
transacciones distintas.
[editar] Concurrencia
El ejemplo más común de un bloqueo mutuo es cuando un recurso A está siendo
utilizado por una transacción A que a su vez solicita un recurso B que está siendo
utilizado por una transacción B que solicita el recurso A. Entre los ejemplos específicos
para las bases de datos distribuidas podemos destacar:
• Actualización perdida: cuando dos transacciones concurrentes borran
el efecto una de la otra
• La extracción inconsistente: acceder a información modificada
parcialmente por una transacción

[editar] Soluciones
El control de concurrencia y detección y manejo de bloqueos es un área de mucho
estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo
aceptado para solucionar el problema. Esto se debe a varios factores de los cuales se
consideran a los siguientes tres los más determinantes:
1. La data puede estar duplicada en un BDD, por tanto, el manejador de
la BDD es responsable de localizar y actualizar la data duplicada.
2. Si un nodo falla o la comunicación con un nodo falla mientras se
realiza una actualización, el manejador debe asegurarse de que los
efectos se reflejen una vez el nodo se recupere del fallo.
3. La sincronización de transacciones en sitios o nodos múltiples es
difícil ya que los nodos no pueden obtener información inmediata de
las acciones realizadas en otros nodos concurrentemente.
Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y la
forma más simple y que la mayoría de productos utilizan es la implementación de un
tiempo máximo de espera en las peticiones de bloqueos.
Causa de estas dificultades más de 20 algoritmos de control de concurrencia se han
propuesto en el pasado, y aun así siguen apareciendo nuevos. Una revisión bibliográfica
muestra que la mayoría de los algoritmos son variantes del 2PL (2-phase locking o
bloqueo de dos fases) o el algoritmo de time-stamp. A continuación se explican estos
dos algoritmos básicos.
[editar] Bloqueo de dos fases (2PL)
El algoritmo 2PL utiliza bloqueos de lectura y escritura para prevenir conflictos entre
operaciones. Consiste en los siguientes pasos para una transacción T:
1. Obtiene bloqueo de lectura para un elemento L (bloqueo compartido)
2. Obtiene bloqueo de escritura para un elemento E (bloqueo exclusivo)
3. Lee el elemento L
4. Escribe en el elemento E
5. Libera el bloqueo de L
6. Libera el bloqueo de E
Las reglas básicas para manejar los bloqueos son: transacciones distintas no pueden
tener acceso simultáneamente a un elemento (lectura-escritura o escritura-escritura), y
una vez se libere un bloqueo no se puede pedir otro, es decir, los bloqueos de la
transacción crecerán mientras no libere ninguno y luego de liberar alguno solo puede
liberar los demás.
Ejemplos del algoritmo 2PL son
• La básica en la que se sigue el esquema previamente explicado con
la variante que el bloqueo de escritura se pide para todas las copias
del elemento.
• 2PL de copia primaria: en vez de pedir bloqueo para cada copia del
elemento de escritura se le pide a una copia primaria o principal.
• 2PL de voto: se pide a todos los nodos que voten para ver si se
concede el bloqueo.
• 2PL centralizado: el manejador de bloqueos está centralizado y todas
las peticiones de bloqueo las maneja el.
Antes de implementar un algoritmo de control de concurrencia 2PL es necesario
considerar distintos factores como cual es la unidad atómica más pequeña que el sistema
permite bloquear, cual es el intervalo de sincronización para todas las copias de un
elemento, donde se deben colocar las tablas con la información de los bloqueos y por
último que tan probable es que ocurra por los factores anteriores un bloqueo mutuo.
[editar] Time-stamp
Cada transacción realizada se le asigna un timestamp (literalmente: sello de tiempo)
único en el nodo que se originó. Este sello se adjunta a cada petición de lectura y
escritura. En el caso de que se dé un conflicto de que dos operaciones de escritura traten
de acceder al mismo elemento, este se resuelve serializandolo respecto a los sellos que
tengan. A pesar de que existen varios algoritmos de control de concurrencia basados en
timestamps, muy pocos son utilizados en aplicaciones comerciales. Esto es en gran parte
porque se requiere que el sistema distribuido cuente con un reloj sincronizado que es
raro que se tenga implementado.
[editar] Manejador de transacciones distribuido (DTM)
[editar] Definición de transacciones
Una transacción es una secuencia de una o más operaciones agrupadas como una
unidad. El inicio y el final de la transacción definen los puntos de consistencia de la
base de datos. Si una acción de la transacción no se puede ejecutar, entonces ninguna
acción dentro de la secuencia que conforma la transacción tendrá efecto.
[editar] Propiedades de las transacciones
• Atomicidad: Una transacción es una unidad atómica de
procesamiento, esta se realiza o no se realiza.
• Consistencia: Si se ejecuta una transacción sobre un estado
consistente, el resultado será un nuevo estado consistente.
• Aislamiento: Una transacción no hara visibles sus modificaciones a
otras transacciones hasta que termine de ejecutarse completamente.
Es decir, una transacción desconoce si otras transacciones se estén
ejecutando en el sistema.
• Durabilidad: Una vez una transacción se ejecuta exitosamente y
realiza cambios sobre el sistema, estos cambios nunca se deben
perder a causa de fallas en el sistema.

[editar] Tipos de transacciones


Una transacción puede clasificarse de diferentes maneras dependiendo básicamente de
tres criterios:
1. Áreas de aplicación. En primer lugar, las transacciones se pueden
ejecutar en aplicaciones no distribuidas. Las transacciones que
operan en datos distribuidos se les conoce como transacciones
distribuidas. Por otro lado, dado que los resultados de una
transacción que realiza un commit son durables, la única forma de
deshacer los efectos de una transacción con commit es mediante otra
transacción. A este tipo de transacciones se les conoce como
transacciones compensatorias. Finalmente, en ambientes
heterogéneos se presentan transacciones heterogéneas sobre los
datos.
2. Tiempo de duración. Tomando en cuenta el tiempo que transcurre
desde que se inicia una transacción hasta que se realiza un commit o
se aborta, las transacciones pueden ser de tipo batch o en línea.
Estas se pueden diferenciar también como transacciones de corta y
larga vida. Las transacciones en línea se caracterizan por tiempos de
respuesta muy cortos y por acceder un porción relativamente
pequeña de la base de datos. Por otro lado, las transacciones de tipo
batch toman tiempos relativamente largos y accedan grandes
porciones de la base de datos.
3. Estructura. Considerando la estructura que puede tener una
transacción se examinan dos aspectos: si una transacción puede
contener a su vez subtransacciones o el orden de las acciones de
lectura y escritura dentro de una transacción.
[editar] Función del manejador
El manejador de transacciones es el encargado de definir la estructura de las
transacciones, mantener la consistencia en la base de datos cuando se ejecuta una
transacción o se cancela la ejecución de una, mantener protocolos de fiabilidad,
implementar algoritmos para el control de la concurrencia y sincronizar las
transacciones que se ejecutan simultáneamente.
El manejador recibe solicitudes de procesamiento de transacciones y las traduce en
acciones para el calendarizador.
La operación COMMIT señala el término exitoso de la transacción: le dice al manejador
de transacciones que se ha finalizado con éxito una unidad lógica de trabajo, que la base
de datos esta (o debería estar) de nuevo en un estado consistente, y que se pueden hacer
permanentes todas las modificaciones efectuadas por esa unidad de trabajo.
La operación ROLLBACK, en cambio, señala el término no exitoso de la transacción:
le dice al manejador de transacciones que algo salió mal, que la base de datos podría
estar en un estado inconsistente y que todas las modificaciones efectuadas hasta el
momento por la unidad lógica de trabajo deben retroceder o anularse.
[editar] Distribución de los datos
Una de las decisiones más importantes que el diseñador de bases de datos distribuidas
debe tomar es el posicionamiento de la data en el sistema y el esquema bajo el cuál lo
desea hacer. Para esto existen cuatro alternativas principales: centralizada, replicada,
fragmentada, e híbrida. La forma centralizada es muy similar al modelo de
Cliente/Servidor en el sentido que la BDD está centralizada en un lugar y los usuarios
están distribuidos. Este modelo solo brinda la ventaja de tener el procesamiento
distribuido ya que en sentido de disponibilidad y fiabilidad de los datos no se gana nada.
[editar] Replicadas
El esquema de BDD de replicación consiste en que cada nodo debe tener su copia
completa de la base de datos. Es fácil ver que este esquema tiene un alto costo en el
almacenamiento de la información. Debido a que la actualización de los datos debe ser
realizada en todas las copias, también tiene un alto costo de escritura, pero todo esto
vale la pena si tenemos un sistema en el que se va a escribir pocas veces y leer muchas,
y dónde la disponibilidad y fiabilidad de los datos sea de máxima importancia.
[editar] Particionadas
Este modelo consiste en que solo hay una copia de cada elemento, pero la información
está distribuida a través de los nodos. En cada nodo se aloja uno o más fragmentos
disjuntos de la base de datos. Como los fragmentos no se replican esto disminuye el
costo de almacenamiento, pero también sacrifica la disponibilidad y fiabilidad de los
datos. Algo que se debe tomar en cuenta cuando se desea implementar este modelo es la
granularidad de la fragmentación. La fragmentación se puede realizar también de tres
formas:
• Horizontal: Los fragmentos son subconjuntos de una tabla (análogo a
un restringir)
• Vertical: Los fragmentos son subconjuntos de los atributos con sus
valores (análogo a un proyectar)
• Mixto: Se almacenan fragmentos producto de restringir y proyectar
una tabla.
Una ventaja significativa de este esquema es que las consultas (SQL) también se
fragmentan por lo que su procesamiento es en paralelo y más eficiente, pero también se
sacrifica con casos especiales como usar JUNTAR o PRODUCTO, en general casos que
involucren varios fragmentos de la BDD.
Para que una fragmentación sea correcta esta debe cumplir con las siguientes reglas:
• Debe ser Completa: Si una relación R se fragmenta en R1,R2, ... , Rn,
cada elemento de la data de R debe estar en algún Ri.
• Debe ser Reconstruible: Debe ser posible definir una operación
relacional que a partir de los fragmentos obtenga la relación.
• Los fragmentos deben ser Disjuntos: Si la fragmentación es
horizontal entonces si un elemento e está en Ri este elemento no
puede estar en ningún Rk (para k distinto a i). En el caso de
fragmentación vertical es necesario que se repitan las llaves
primarias y esta condición solo se debe cumplir para el conjunto de
atributos que no son llave primaria.

[editar] Híbrida
Este esquema simplemente representa la combinación del esquema de partición y
replicación. Se particiona la relación y a la vez los fragmentos están selectivamente
replicados a través del sistema de BDD.
[editar] Criterios para escoger la distribución
• Localidad de la data: la data debería ser colocada donde ésta se
accede más seguido. El diseñador debe analizar las aplicaciones y
determinar como colocar la data de tal forma que se optimicen los
accesos a la data locales.
• Fiabilidad de la data: Almacenando varias copias de la data en
lugares geográficamente apartados se logra maximizar la
probabilidad de que la data va a ser recuperable en caso de que
ocurra daño físico en cualquier sitio.
• Disponibilidad de la data: como en la fiabilidad, almacenar varias
copias asegura que los usuarios tengan a su disponibilidad los
elementos de la data, aún si el nodo al que usualmente acceden no
está disponible o falla.
• Capacidades y costos de almacenamiento: a pesar de que los costos
de almacenamiento no son tan grandes como los de transmisión, los
nodos pueden tener diferentes capacidades de almacenamiento y
procesamiento. Esto se debe analizar cuidadosamente para
determinar donde poner la data. El costo de almacenamiento se
disminuye significativamente minimizando la cantidad de copias de la
data.
• Distribución de la carga de procesamiento: una de las razones por la
cual se escoge un sistema de BDD es porque se desea poder
distribuir la carga de procesamiento para hacer este más eficiente.
• Costo de comunicación: el diseñador debe considerar también el
costo de usar las comunicaciones de la red para obtener data. Los
costos de comunicación se minimizan cuando cada sitio tiene su
propia copia de la data, por otro lado cuando la data es actualizada
se debe actualizar en todos los nodos.
• Uso del sistema: debe tomarse en consideración cual será el tipo
principal de uso del sistema de BDD. Factores como la importancia en
la disponibilidad de la data, la velocidad de escritura y la capacidad
de recuperación de daños físicos deben tomarse en cuenta para
escoger el esquema correcto.
[editar] Seguridad
Desde hace ya varios años las bases de datos son ampliamente utilizadas en
departamentos de gobiernos, empresas comerciales, bancos, hospitales, etc.
Actualmente se está cambiando el esquema bajo el cuál se utilizan las bases de datos, ya
no son utilizadas únicamente de forma interna, sino que se tiene muchos accesos
externos de tipos distintos. Estos cambios que se han introducido en el uso de las bases
de datos ha creado la necesidad mejorar las prácticas de seguridad ya que el ambiente ya
no es tan controlado como el esquema antiguo.
[editar] Conceptos
Los problemas de mayor importancia en seguridad son autenticación, identificación, y
refuerzo de los controles de acceso apropiados. El sistema de seguridad de niveles
múltiples. Éste consiste en muchos usuarios con distintos niveles de permisos para una
misma base de datos con información de distintos niveles. En las bases de datos
distribuidas se han investigado dos acercamientos a este modelo: data distribuida y
control centralizado, y data y control distribuidos.
En el acercamiento de data distribuida y control centralizado se divide en dos
soluciones: particionado y replicado. En el primero de estos lo que se tiene es un
conjunto de nodos y cada uno de ellos opera a cierto nivel de seguridad, así el usuario
con nivel de permisos X accede al servidor que maneja la data para X. El replicado
surgió debido a que si alguien con altos derechos de seguridad deseaba consultar data
con de bajo nivel de seguridad debía enviar su petición a un servidor de bajo nivel de
seguridad por lo cual se podría divulgar información sensible. En el esquema replicado
entonces la data se repite en cascada de tal forma que el nivel más alto tiene una copia
entera de la base de datos, y el más bajo solamente la información de más bajo nivel. El
otro acercamiento de data y control distribuido cada nodo contiene información de
distintos niveles y está diseñado para aceptar peticiones de cualquier nivel de usuario.
[editar] El problema de inferencia
El problema de inferencia consiste en usuarios tratando de ejecutar consultas sobre la
BD y estos infiriendo información sobre la respuesta legítima que la base de datos debe
responder. Las herramientas para minería de datos hacen este problema aún más
peligroso ya que hacen que sea más fácil para cualquier novato poder deducir patrones e
información importantes de simplemente probar consultas.
[editar] Tipos de arquitecturas/implementaciones
En un sistema de bases de datos distribuidas, existen varios factores que deben tomar en
consideración que definen la arquitectura del sistema:
1. Distribución: Los componentes del sistema están localizados en la
misma computadora o no.
2. Heterogeneidad: Un sistema es heterogéneo cuando existen en él
componentes que se ejecutan en diversos sistemas operativos, de
diferentes fuentes, etc.
3. Autonomía: Se puede presentar en diferentes niveles, los cuales se
describen a continuación:
• Autonomía de diseño: Habilidad de un componente del sistema para
decidir cuestiones relacionadas a su propio diseño.
• Autonomía de comunicación: Habilidad de un componente del
sistema para decidir como y cuando comunicarse con otros SGBD
(Sistema Gestor de Bases de Datos).
• Autonomía de ejecución: Habilidad de un componente del sistema
para ejecutar operaciones locales como quiera.

[editar] Multi Base de Datos Distribuida


Cuando una base de datos distribuida es muy homogénea se dice que es multi base de
datos distribuida.
[editar] Base de Datos Federada
Cuando una base de datos distribuida tiene mucha autonomía local se dice que es
federada.
[editar] Objetivos de Implementación
Al implementar una base de datos distribuida se tienen ciertos objetivos comunes:
• Transparencia de ubicación. Permite a los usuarios tener acceso a
los datos sin que tenga conocimiento de la ubicación de éstos. Se
puede conseguir este nivel de transparencia al utilizar los
administradores de transacciones distribuidas, los cuales son capaces
de determinar la localización de los datos y de emitir acciones a los
calendarizadores apropiados, lo cual puede ejecutarse cuando los
administradores de transacciones distribuidas poseen acceso a los
directorios de localizaciones de los datos.
• Transparencia de duplicación. Para que la transparencia de
duplicación sea posible, los administradores de transacciones deben
traducir las solicitudes de procesamiento de transacción en acciones
para el administrador de datos. Para las lecturas el administrador de
transacciones selecciona uno de los nodos que almacena los datos y
ejecuta la lectura. Para optimizar el proceso, el administrador de
transacciones necesita información sobre el rendimiento de varios
nodos respecto al sitio de consulta, así podrá seleccionar el nodo de
mejor rendimiento. La actualización y escritura de datos duplicados
suelen ser más complicadas, ya que el manejador de transacciones
debe emitir una acción de escritura para cada uno de los
calendarizadores que almacena una copia de los datos.
• Transparencia de concurrencia. Cuando varias transacciones se
ejecuten al mismo tiempo, los resultados de las transacciones no
deberán afectarse. La trasparencia de concurrencia se logra si los
resultados de todas las transacciones concurrentes son consistentes
de manera lógica con los resultados que se habrían obtenido si las
transacciones se hubieran ejecutado una por una, en cualquier orden
secuencial.
• Transparencia de fallas. Significa que a pesar de fallas las
transacciones sean procesadas de un modo correcto. Frente a una
falla, las transacciones deben ser atómicas, significa que se procesen
todas o ninguna de ellas. Para este tipo de problemas es importante
tener resguardo de la base de datos, y así poder restaurarla cuando
sea conveniente. El sistema debe detectar cuándo falla una localidad
y tomar las medidas necesarias para recuperarse del fallo. El sistema
no debe seguir utilizando la localidad que falló. Por último, cuando se
recupere o repare esta localidad, debe contarse con mecanismos
para reintegrarla al sistema con el mínimo de complicaciones.
• Localidad del procesamiento. Los datos se deben distribuir lo más
cerca posible de las aplicaciones que los usan para maximizar la
localidad del procesamiento, este principio responde a minimizar el
acceso remoto a los datos. Diseñar una distribución que maximice
localidad del procesamiento puede hacerse añadiendo la cantidad de
referencias locales y remotas correspondientes a cada fragmentación
candidata y asignar la fragmentación eligiendo la mejor solución.
Independencia de configuración. La independencia de configuración
permite añadir o reemplazar hardware sin tener que cambiar
componentes de software existentes en el sistema de base de datos
distribuida.
• Particionado de la Base de Datos. La base de datos se distribuye
de modo que no haya solapamiento o duplicación de los datos
mantenidos en las diferentes localidades, como no hay duplicaciones
de los datos, se evitan los costos asociados con el almacenamiento y
mantenimiento de datos redundantes. Si un mismo segmento de
datos se usa en más de una localidad se ve limitada la disponibilidad
de los datos. La fiabilidad también puede verse limitada cuando se
produce un fallo en el sistema de cálculo de una localidad se afecta la
disponibilidad de los datos de esa localidad no estén disponible para
los usuarios en cualquier parte del sistema.
• Fragmentación de datos. Consiste en subdividir las relaciones y
distribuirlas entre los sitios de la red, tiene como objetivo buscar
formas alternativas de dividir una las instancias (tablas) de relaciones
en otras más pequeñas. La fragmentación se puede realizar por
tuplas individuales (fragmentación horizontal), por atributos
individuales fragmentación vertical) o una combinación de ambas
(fragmentación híbrida). El principal problema de la fragmentación
radica en encontrar la unidad apropiada de distribución. Una relación
no es una buena unidad por muchas razones. Normalmente las vistas
de una relación están formadas por subconjuntos de relaciones.
Además, las aplicaciones acceden localmente a subconjuntos de
relaciones. Por ello, es necesario considerar a los subconjuntos de
relaciones como unidad de distribución. Al descomponer de una
relación en fragmentos, tratados cada uno de ellos como una unidad
de distribución, permite el proceso concurrente de las transacciones.
El conjunto de estas relaciones, provocará la ejecución paralela de
una consulta al ser dividida en una serie de subconsultas que operará
sobre los fragmentos. Cuando las vistas definidas sobre una relación
son consideradas como unidad de distribución que se ubican en
diferentes sitios de la red, podemos optar por dos alternativas
diferentes: La relación no estará replicada y se almacena en un único
sitio, o existe réplica en todos o algunos de los sitios en los cuales
reside la aplicación. Las consecuencias de esta estrategia son la
generación de un volumen de accesos remotos que pueden ser
innecesarios con un mal manejo de estas replicas. Además, las
réplicas innecesarias pueden causar problemas en la ejecución de las
actualizaciones y puede no ser deseable si el espacio de
almacenamiento está limitado. Los inconvenientes de la
fragmentación están dados en que si las pueden estar definidas por
fragmentos mutuamente exclusivos y al recuperar los datos de dos
fragmentos situados en sitios diferentes es necesario trasmitir los
datos de un sitio a otro y realizar sobre ellos la operación de unión
(Join), lo cual puede ser costoso. El control semántico cuando los
atributos implicados en una dependencia una relación se
descompone en diferentes fragmentos y estos se ubican en sitios
diferentes puede ser muy costos porque es necesario hacer
búsquedas en un gran número de sitios.

[editar] Ventajas y Desventajas


[editar] Ventajas
• Refleja una estructura organizacional - los fragmentos de la base de
datos se ubican en los departamentos a los que tienen relación.
• Autonomía local - un departamento puede controlar los datos que le
pertenecen.
• Disponibilidad - un fallo en una parte del sistema solo afectará a un
fragmento, en lugar de a toda la base de datos.
• Rendimiento - los datos generalmente se ubican cerca del sitio con
mayor demanda, también los sistemas trabajan en paralelo, lo cual
permite balancear la carga en los servidores.
• Economía - es más barato crear una red de muchas computadoras
pequeñas, que tener una sola computadora muy poderosa.
• Modularidad - se pueden modificar, agregar o quitar sistemas de la
base de datos distribuida sin afectar a los demás sistemas (módulos).
[editar] Desventajas
• Complejidad - Se debe asegurar que la base de datos sea
transparente, se debe lidiar con varios sistemas diferentes que puden
presentar dificultades únicas. El diseño de la base de datos se tiene
que trabajar tomando en cuenta su naturaleza distribuida, por lo cual
no podemos pensar en hacer joins que afecten varios sistemas.
• Economía - la complejidad y la infraestructura necesaria implica que
se necesitará una mayor mano de obra.
• Seguridad - se debe trabajar en la seguridad de la infraestructura así
como cada uno de los sistemas.
• Integridad - Se vuelve difícil mantener la integridad, aplicar las reglas
de integridad a través de la red puede ser muy caro en términos de
transmisión de datos.
• Falta de experiencia - las bases de datos distribuidas son un campo
relativamente nuevo y poco común por lo cual no existe mucho
personal con experiencia o conocimientos adecuados.
• Carencia de estándares - aún no existen herramientas o metodologías
que ayuden a los usuarios a convertir un DBMS centralizado en un
DBMS distribuido.
• Diseño de la base de datos se vuelve más complejo - además de las
dificultades que generalmente se encuentran al diseñar una base de
datos, el diseño de una base de datos distribuida debe considerar la
fragmentación, replicación y ubicación de los fragmentos en sitios
específicos.
[editar] Productos existentes
• Microsoft SQL Server 2008
• Oracle 11g
• Apache Cassandra

[editar] Bibliografía
• (2007) Historia de las bases de datos en Ciencia de la Información [1]
• Juan Vargas, Marco Mendoza, et al; Fundamentos teóricos de bases
de datos distribuidas [2]
• Tecnomaestros; Bases de Datos Distribuidas (Visitado 12 de agosto
de 2008) [3]
• SACBEOB; INFORMACIÓN DE BASES DE DATOS DISTRIBUIDAS POR
RUBI #ICQ 44323906 (Visitado 12 de agosto de 2008) [4]
• David J. DeWitt, Jim Gray; Parallel Database Systems: The Future of
High Performance Database Processing (1992) [5]
• Michael Ho, (2002); Distributed Database Management Systems [6]
• Dr. William Perrizo; DISTRIBUTED DATABASE MANAGEMENT SYSTEM
(DDBMS) [7]
• Amjad Umar; DISTRIBUTED DATABASE MANAGEMENT SYSTEMS:
ISSUES AND APPROACHES, University of Michigan [8]
• R. Wrembel; Designing Distributed Databas [9]
• Universidad de Colima; Sistemas de Bases de Datos Distribuidas [10]
• Ilker Köse, (2002); Distributed Database Security
• Michael Gertz; Distributed Transaction Management [11]
• Guillermo Álvarez Carrión; Integración de esquemas en bases de
datos heterogéneas fuertemente acopladas [12]
• Fernando Andrés Mas; Procesamiento de Transacciones en Sistemas
Distribuidos [13]
• Lic. Maidel de la Rosa Téllez; Ministerio de Educación Superior de la
República de Cuba, Centro Universitario Vladimir Ilich Lenin. Bases de
Datos Distribuidas[14]
Categoría: Bases de datos
Partes: 1, 2

1. Tipos de sistemas operativos


2. Sistemas operativos mas utilizados
3. Diferencias entre Windows y Linux
4. Diferencias entre Windows y Unix
5. Ventajas de Linux
6. Desventajas de Linux
7. Desventajas de Windows
8. Principales ventajas
9. Unix
10.Ventajas de Unix
11.Desventajas de Unix
12.Bibliografía
Un sistema operativo (cuyo acrónimo es SO) es un conjunto de programas
destinados a permitir la comunicación del usuario con un computador y gestionar
sus recursos de una forma eficaz. Comienza a trabajar cuando se enciende el
computador, y gestiona el hardware de la máquina desde los niveles más básicos.

Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos


electrónicos que podamos utilizar sin necesidad de estar conectados a una computadora
y que utilicen microprocesadores para funcionar, ya que gracias a estos podemos
entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles,
reproductores de DVD, autoradios... y computadoras).
A.Tipos de sistemas operativos
1 Sistemas Operativos por su Estructura
Según [Alcal92], se deben observar dos tipos de requisitos cuando se construye un
sistema operativo, los cuales son:
Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al
uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de
operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
A continuación se describen las distintas estructuras que presentan los actuales sistemas
operativos para satisfacer las necesidades que de ellos se quieren obtener.
1.1 Estructura monolítica.
Es la estructura de los primeros sistemas operativos constituídos 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). 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.
1.2 Estructura jerárquica.
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.
[Feld93].
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).

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.
1.3 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).
1.4 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.
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." [Alcal92].
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.
2 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.
2.1 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ípicamente se han clasificado en este renglón.
2.2 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.
2.3 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.
2.4 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.
2.5 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.
2.6 Multiproceso
Un sistema operativo multiproceso se refiere al 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 cualesquira de los procesadores disponibles, teniendo, teóricamente,
una mejor distribución 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 específicos,
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
código 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 opción las más de las veces es costosa en
horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a
la paralelización que a elaborar el algoritmo inicial.
3. Sistemas Operativos por la Forma de Ofrecer sus Servicios
Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la
del usuario, el cómo accesa los servicios. Bajo esta clasificación se pueden detectar dos
tipos principales: sistemas operativos de red y sistemas operativos distribuídos.
3.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/código 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.
3.2 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 máquina virtual que el usuario accesa 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 simplementa 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 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 protección y seguridad entre los diferentes componentes del sistema y los
usuarios. [Tan92].
Los avances tecnológicos en las redes de área local y la creación de microprocesadores
de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente
poder en forma autónoma para desafiar en cierto grado a los mainframes, y a la vez se
dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos
muy pesados en cálculo en unidades más pequeñas y distribuirlas en los varios
microprocesadores para luego reunir los sub-resultados, creando así una máquina virtual
en la red que exceda en poder a un mainframe.
El sistema integrador de los microprocesadores que hacer ver a las varias memorias,
procesadores, y todos los demás recursos como una sola entidad en forma transparente
se le llama sistema operativo distribuido. Las razones para crear o adoptar sistemas
distribuidos se dan por dos razones principales: por necesidad ( debido a que los
problemas a resolver son inherentemente distribuidos ) o porque se desea tener 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. 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.
3.2.1 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.
• 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 falla, 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.
• Distribución: Algunas aplicaciones requieren de por sí una distribución
física.
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 tendrian que duplicarlos en
cada nodo para lograrlo.
• Compartir dispositivos: 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.
• Comunicaciones: La comunicación persona a persona es factible en
los sistemas distribuídos, en los sistemas aislados no. _ Flexibilidad:
La distribución de las cargas de trabajo es factible en el sistema
distribuídos, se puede incrementar el poder de cómputo.
3.2.2 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 aplicaiones 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.
Características
Administración de tareas:
Monotarea: Si solamente puede ejecutar un proceso (aparte de los procesos del propio
S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará
haciéndolo hasta su finalización o interrupción.
Multitarea: Si es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O.
normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma
alternada a los procesos que los solicitan, de manera que el usuario percibe que todos
funcionan a la vez, de forma concurrente.
Administración de usuarios:
Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas,
accediendo a la vez a los recursos de la computadora. Normalmente estos SS.OO.
utilizan métodos de protección de datos, de manera que un programa no pueda usar o
cambiar los datos de otro usuario.
Manejo de recursos:
Centralizado: Si permite utilizar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de
más de una computadora al mismo tiempo.
A. Los sistemas operativos más utilizados en los PC son DOS, OS/2, y
Windows, pero hay otros que también se utilizan, como por ejemplo Linux
y Unix.
B. Sistemas operativos mas utilizados
Si comparamos Linux con Windows 95/98/XP encontramos las siguientes
ventajas e inconvenientes:
Precio:
Linux es libre, flexible, gratuito, configurable, eficiente, no requiere hardware
caro, no obliga a cambiar continuamente la versión del software.
Windows es un software no gratuito y poco flexible, ademas de que
continuamente cambia la versión de software.
Compatibilidad:
Linux requiere mas conocimientos de informática, no hay sustituto directo para
todas las aplicaciones, algunos dispositivos de última generación no están
soportados (cada vez son menos).
Windows es un software mucho mas compatible, tiene mucho mayor soporte en
cuanto a dispositivos y requiere el mínimo de conocimientos de informática.
Usuarios:
Linux es un software menos comercial por lo cual es menos utilizado ya que
como es gratuito la mayoría de usuarios no le tienen toda la confianza.
Windows es un software muy publicitado lo cual lo convierte en un producto
muy comercial además de que cuenta con un numero mucho mayor de usuarios
alrededor del mundo.
Seguridad:
Windows no es el único sistema operativo donde podemos encontrar
vulnerabilidades. En realidad, cualquier sistema construido por el hombre está
potencialmente afectado.
Linux no es una excepción, solo que en relación a Windows es mucho menos
vulnerable.
Bien es cierto que las vulnerabilidades encontradas son en número menores,
pero también es verdad que el ímpetu con el que se buscan los agujeros en
Windows es mucho mayor, debido a que algunos informáticos utilizan buena
parte de su tiempo y se divierten buscando manchas en el expediente de
Microsoft.
Sin embargo, la desventaja más negativa resulta que Microsoft va "jubilando"
sus sistemas operativos con el tiempo. Por ejemplo, con la entrada de 2003 ha
calificado de obsoletos a sus sistemas MS-DOS, Windows 3.x, Windows 95 y
Windows NT 3.5. Windows ME, con tan sólo unos pocos años de vida, se
jubilaron el 31 de diciembre de 2003.
A partir de entonces, Microsoft no ofrece más asistencia ni actualizaciones para
ellos, lo que puede dejar desprotegidos a miles de usuarios de todo el mundo,
que deberán actualizar su sistema operativo para disponer actualizaciones de
seguridad.
C. Diferencias entre Windows Y Linux
Unix y Windows parten de paradigmas completamente diferentes para la carga
de código en tiempo de ejecución. Antes de intentar construir un módulo con
carga dinámica, se debe comprender cómo funciona el sistema final del usuario.
En Unix, un fichero objeto compartido (shared object, .so) contiene código que
será utilizado por el programa junto con los nombres de las funciones y datos
que espera encontrar en el programa. Cuando el fichero se une al programa, se
cambian todas las referencias a dichas funciones y datos para que apunten a sus
direcciones de memoria reales en el programa. A grandes rasgos, se realiza una
operación de enlace.
En Windows, un fichero de biblioteca de enlace dinámico, (dynamic-link
library, .dll) no tiene referencias pendientes. En lugar de ello, todo acceso a
funciones y datos pasa por una tabla de consulta. Por ello, no hay que arreglar el
código de la DLL para que haga referencia a la memoria del programa. El
programa ya utiliza la tabla de búsquedas, lo que cambia en tiempo de ejecución
es la tabla de búsquedas para apuntar a las funciones y datos finales.
En Unix, sólo hay un tipo de fichero de biblioteca (.a) que contiene código de
varios ficheros objeto (.o). En el paso de enlace para crear un fichero objeto
compartido (.so), el enlazador puede encontrarse que desconoce dónde se define
un identificador. El enlazador lo buscará en los ficheros objeto y en las
bibliotecas. Si lo encuentra, incluirá todo el código del fichero objeto.
En Windows, existen dos tipos de biblioteca, una biblioteca estática y una
biblioteca de importación (ambas llamadas .lib). Una biblioteca estática es como
un fichero .a de Unix: contiene código que se incluirá si es necesario. Una
biblioteca de importación se usas sólo para asegurar al enlazador que un
identificador concreto es legal y estará presente en el programa cuando se cargue
la DLL. Por ello, el enlazador utiliza la información de la biblioteca de
importación para construir la tabla de consulta para usar los identificadores no
incluidos en la DLL. Cuando se enlaza una aplicación o DLL, puede generarse
una biblioteca de importación, que tendrá que usarse para futuras DLLs que
dependan de los símbolos de la aplicación o DLL.
Supóngase que se están construyendo dos módulos de carga dinámica, B y C,
que han de compartir otro bloque de código A. En Unix, no se pasaría A.a al
enlazador para B.so y C.so; eso causaría que se incluyera dos veces y tanto B
como C tendrían su propio ejemplar. En Windows, al construir A.dll se
construiría A.lib. Sí se pasaría A.lib al enlazador tanto en B como en C. A.lib no
contiene código, sólo información que se usará en tiempo de ejecución para
acceder al código de A.
En Windows, usar una biblioteca de importación es análogo a usar "import
spam"; proporciona acceso a los nombres de spam, pero no genera una copia
aparte. En Unix, enlazar con una biblioteca es más como "from spam import *";
sí genera una copia aparte.
D.Diferencias entre Windows y Unix
Linux Contra Unix
En Los términos de características, Unix y Linux son bastante semejantes. Sin
embargo, el mayor la diferencia entre Unix y Linux es que Unix se diseñó
específicamente Para el networking. Linux corre perfectamente multa como un
sistema personal de Unix y En camareros grandes. Linux sostiene una mucha
gran variedad de ferretería que Unix y a causa del modelo Abierto de la Fuente,
cualquier conductor con toda seguridad ferretería Puede ser escrito para Linux
tan largo como alguien tiene el tiempo a hace así. Muchos las universidades y
las compañías comienzan al uso Linux en vez de Unix porque puede
proporcionar la funcionalidad de una estación de trabajo en la ferretería de PC
En una fracción del costo. Hay otras versiones libres de Unix disponibles Tal
como FreeBSD. FreeBSD y Linux son semejantes pero basados en diferente Las
metas y por lo tanto diseñó diferentemente. La meta de Linux debía desarrollar
un sistema libre de Unix que se podría correr en ambos un nivel personal y en
grande Los camareros de la red. FreeBSD buscado sólo a modifica el código
existente de BSD Unix. Otra implementación económica de Unix es Minix, un
Unix académico Clone sobre que las versiones más temprano de Linux se
basaron en. Sin embargo, a pesar de todos los otros sistemas de Unix para se
desarrollar y para ser vendidos, pueden ser claramente Visto que cada vez mas
usuarios giran hacia Linux a corre sus sistemas.
E. Diferencia entre Linux y Unix

F. Ventajas de Linux
1. Linux es básicamente un duplicado de UNIX, lo que significa que
incorpora muchas de las ventajas de este importante sistema
operativo.
2. En Linux pueden correr varios procesos a la vez de forma
ininterrumpida como un servidor de red al tiempo que un procesador
de textos, una animación, copia de archivos o revisar el correo
electrónico.
3. Seguridad porque es un sistema operacional diseñado con la idea de
Cliente - Servidor con permisos de acceso y ejecución a cada usuario.
Esto quiere decir que varios usuarios pueden utilizar una misma
maquina al tiempo sin interferir en cada proceso.
4. Linux es software libre, casi gratuito. Linux es popular entre
programadores y desarrolladores e implica un espíritu de
colaboración.
5. Linux integra una implementación completa de los diferentes
protocolos y estándares de red, con los que se puede conectar
fácilmente a Internet y acceder a todo tipo de información disponible.
6. Su filosofía y sus programas están dictados por el movimiento ``Open
Source'' que ha venido crecido en los últimos años y ha adquirido el
suficiente fortaleza para hacer frente a los gigantes de la industria del
software.
7. Linux puede ser utilizado como una estación personal pero también
como un potente servidor de red.
8. Linux incorpora una gama de sistemas de interfaz gráfica (ventanas)
de igual o mejor calidad que otras ofrecidas en muchos paquetes
comerciales.
9. Posee el apoyo de miles de programadores a nivel mundial.
10.El paquete incluye el código fuente, lo que permite modificarlo de
acuerdo a las necesidades del usuario.
11.Utiliza varios formatos de archivo que son compatibles con casi todos
los sistemas operacionales utilizados en la actualidad.

A.Desventajas de Linux
1. Linux no cuenta con una empresa que lo respalde, por lo que no
existe un verdadero soporte como el de otros sistemas operativos.
2. La pendiente de aprendizaje es lenta.
3. No es tan fácil de usar como otros sistemas operativos, aunque
actualmente algunas distribuciones están mejorando su facilidad de
uso, gracias al entorno de ventanas, sus escritorios y las aplicaciones
diseñadas específicamente para él, cada día resulta más sencillo su
integración y uso.
4. Documentación y terminología muy técnica.
5. Para usuarios corrientes, todavía no es un sistema de escritorio.
6. Funciona únicamente con proveedores de hardware que accedieron a
la licencia GPL y en algunas instancias no es compatible con variedad
de modelos y marcas.
7. Requiere consulta, lectura e investigación en lista, foros o en
bibliografía dedicada al tema.
8. La configuración de dispositivos de entrada y salida no es trivial.
9. Muy sensible al hardware.
10.Muchas distribuciones e idiomas.
11.Hay que leer y entender código.

A.Desventajas de Windows
Las limitaciones más importantes de esta versión en relación con XP Home son las
siguientes:
• Limitaciones de actualización de Hardware.
• Resolución máxima de pantalla permitida: 1024 x 768 pixeles.
• No permite actualizar el sistema (no se puede hacer un upgrade a XP
Home o Profesional)
• Sólo se pueden abrir 3 programas a la vez con 3 ventanas de cada
programa. Por ejemplo, sólo se permiten 3 conversaciones
simultáneas del Messenger.
• No se pueden compartir recursos (por ejemplo una impresora).
• No hay posibilidad de conectarse en red.
• No pueden crearse perfiles de distintos usuarios
• No permite crear una contraseña de protección del sistema.

A.Principales ventajas
• El tour de inicio al Wndows XP Starter es más detallado.
• Cuenta con varios videos de introducción en castellano para el
usuario principiante. Se puede aprender desde como usar el Mouse
hasta saber lo que es un Firewall.
• Tiene una gran cantidad de tutoriales.
• Viene con 3 wallpapers del país de destino. El protector de pantalla
es la bandera nacional.
• Opción de configuración automática para el PC
• No viene con CD de instalación o de recuperación. El Starter posee
una imagen en el disco rígido de la nueva computadora.
• Incluye los programas clásicos y habituales de Windows en versiones
integras pero limitadas de acuerdo a las prestaciones anteriormente
reseñadas: Paint, Wordpad, Internet Explorer, Outlook Express,
Windows Media Player, Windows Messenger 4.7, Service Pack 2.
A. Unix es un sistema operativo de tiempo compartido, controla los recursos de una
computadora y los asigna entre los usuarios. Permite a los usuarios correr sus
programas. Controla los dispositivos de periféricos conectados a la máquina.
Además es un sistema multiusuario, en el que existe la portabilidad para la
implementación de distintas computadoras.
Características
Es un sistema operativo de tiempo compartido, controla los recursos de una
computadora y los asigna entre los usuarios. Permite a los usuarios correr sus
programas. Controla los dispositivos de periféricos conectados a la máquina.
Posee las siguientes características:
- Es un sistema operativo multiusuario, con capacidad de simular
multiprocesamiento y procesamiento no interactivo.
- Está escrito en un lenguaje de alto nivel: C.
- Dispone de un lenguaje de control programable llamado SHELL.
- Ofrece facilidades para la creación de programas y sistemas y el ambiente
adecuado para las tareas de diseños de software.
- Emplea manejo dinámico de memoria por intercambio o paginación.
- Tiene capacidad de interconexión de procesos.
- Permite comunicación entre procesos.
- Emplea un sistema jerárquico de archivos, con facilidades de protección de
archivos, cuentas y procesos.
- Tiene facilidad para redireccionamiento de Entradas/Salidas.
- Garantiza un alto grado de portabilidad.
El sistema se basa en un Núcleo llamado Kernel, que reside permanentemente en
la memoria, y que atiende a todas las llamadas del sistema, administra el acceso
a los archivos y el inicio o la suspensión de las tareas de los usuarios.
La comunicación con el sistema UNIX se da mediante un programa de control
llamado SHELL. Este es un lenguaje de control, un intérprete, y un lenguaje de
programación, cuyas características lo hacen sumamente flexible para las tareas
de un centro de cómputo.
Como lenguaje de programación abarca los siguientes aspectos:
- Ofrece las estructuras de control normales: secuenciación, iteración
condicional, selección y otras.
- Paso de parámetros.
- Sustitución textual de variables y Cadenas.
- Comunicación bidireccional entre órdenes de shell.
- El shell permite modificar en forma dinámica las características con que se
ejecutan los programas en UNIX:
- Las entradas y salidas pueden ser redireccionadas o redirigidas hacia archivos,
procesos y dispositivos;
- Es posible interconectar procesos entre sí.
Unix es uno de los sistemas operativos más ampliamente usados en
computadoras que varían desde las personales hasta las macro. Existen versiones
para máquinas uniprocesador hasta multiprocesadores.
B. Unix
Multiusuario.
Multitarea.
Soporta acceso remoto.
Soporte nativo de TCP/IP (Fácil conexión a Internet y otras redes)
Contiene xFree86, que es una interfaz gráfica de usuario basada en los
estándares de X-Windows, y también es gratuita.
Al instalar el sistema operativo, también se tiene la posibilidad de instalar varios
programas, tales como: hojas de cálculo, bases de datos, procesadores de texto,
varios lenguajes de programación, paquetes de telecomunicaciones y juegos.
Cumple los estándares POSIX y de Sistemas Abiertos, esto es que tiene la
capacidad de comunicarse con sistemas distintos a él.
Existe mucha documentación sobre éste.
C. Ventajas de Unix
D.Desventajas de Unix
Carencia de soporte técnico.
No ofrece mucha seguridad.
Problemas de hardware, no soporta todas las plataformas, y no es compatible con
algunas marcas específicas.
No existe un control de calidad al momento de elaborar software para Linux, pues
muchas veces las aplicaciones se hacen y se liberan sin control alguno.
Es poco probable que aplicaciones para DOS y OS/2, se ejecuten correctamente bajo
Linux.
No hay forma segura de instalarlo sin reparticionar el disco duro.
El reparticionar el disco duro, implica borrar toda la información del mismo y después
restablecerla.
Se requiere experiencia y conocimiento del sistema para administrarlo, pues como es un
sistema por línea de comandos, estos poseen muchas opciones y en ocasiones es difícil
realizar algunas tareas, que en otros sistemas operativos de red son triviales.

Das könnte Ihnen auch gefallen