You are on page 1of 42

Experto en eLearning

Tecnologas y Mtodos
de Formacin en Red

Sistemas operativos, bases de datos y servidores Web

Susana lvarez Rosado


Sergio Bravo Martn
Ivn lvarez Navia
Departamento de Informtica y Automtica
Universidad de Salamanca
sar@usal.es
ser@usal.es
inavia@usal.es

Febrero 2007

1
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red

ndice
Introduccin
.......................................................................................................... 1
Algunas conceptos iniciales
................................................................................. 2
El Sistema Operativo
........................................................................................... 4
Denicin de Sistema operativo
................................................................................ 4
El sistema operativo como interfaz usuario/computador
................................... 5
El sistema operativo como administrador de recursos
....................................... 6
Historia
......................................................................................................................... 7
Prehistoria
............................................................................................................... 7
Primera etapa
.......................................................................................................... 7
Segunda etapa
......................................................................................................... 8
Tercera etapa
........................................................................................................... 9
Cuarta etapa
.......................................................................................................... 11
Sistemas operativos de mayor difusin
..................................................................... 12
MS Windows
......................................................................................................... 12
UNIX
.................................................................................................................... 14
Funciones de un Sistema Operativo
..........................................................................17
Mdulos de un Sistema Operativo
........................................................................... 18
El Ncleo
............................................................................................................... 18
Gestor de Memoria
.............................................................................................. 19
Gestor de E/S
....................................................................................................... 20
Gestor de Ficheros
.............................................................................................. 20
Asignacin de Recursos y Planicacin
............................................................. 20
Proteccin
..............................................................................................................21
Interfaz Usuario/Sistema Operativo
....................................................................21
El gestor de Bases de Datos
............................................................................... 22
Introduccin
............................................................................................................... 22
Componentes
............................................................................................................. 22
Datos
..................................................................................................................... 22
Hardware
............................................................................................................... 22
Software
................................................................................................................ 23
Usuarios
................................................................................................................. 23
Denicin
................................................................................................................... 25
Caractersticas
............................................................................................................ 25
Funcionalidades
.......................................................................................................... 25
Independencia de los datos
....................................................................................... 27
Arquitectura de los sistemas de bases de datos
....................................................... 27
Niveles
................................................................................................................... 27
Transformaciones
................................................................................................. 28
Servidores Web
................................................................................................... 30
Introduccin
............................................................................................................... 30

2
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Arquitectura de la Web
.............................................................................................. 31
Clientes Web
..........................................................................................................31
Servidores Web
......................................................................................................31
Protocolo de comunicacin HTTP
.................................................................... 32
Direccionamiento
................................................................................................. 32
Servidores Web
........................................................................................................... 33
Funcionamiento de un Servidor Web
.................................................................. 33
Estructura del Servidor Web
............................................................................... 34
Informacin del Servidor Web
............................................................................ 35
Ejemplos
................................................................................................................ 37
Apache Web Server
.............................................................................................. 37
Internet Information Server
................................................................................ 39

3
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Introduccin
En este captulo se presenta una visin general de los aspectos tecnolgicos involu-
crados en un sistema e-learning. Si bien es cierto que el e-learning no se limita ni-
camente a un conjunto de herramientas informticas, si resulta evidente que consti-
tuyen el esqueleto bsico sobre el que se construye. Por ello resulta necesario com-
prender el funcionamiento de las herramientas que ms habitualmente se encuen-
tran en este tipo de sistemas. La Fig. 1 muestra el esquema simplicado de funcio-
namiento de un sistema e-learning tpico.

Navegador WWW
(MS Internet Explorer,
Firefox, ...)

Internet

Envo Solicitud
Generacin pginas pginas
dinmica HTML HTML
pginas Solicitud
Cdigo
HTML pginas
SQL
HTML
Gestor Base de Datos Aplicacin Servidor Web
(MySQL, PosgresSQL, ...) (PHP, Perl, Java,...) Pginas (Apache, ...)
Datos HTML
generadas

Sistema Operativo
(MS Windows, GNU/Linux, Solaris, Mac OS X, ...)

Fig. 1: Esquema bsico de funcionamiento sistemas e-Learning

Un usuario, el estudiante, utiliza un navegador Web para conectar con el siste-


ma. Bsicamente lo que hace el navegador es solicitar a un servidor Web una pgina
HTML (HyperText Markup Language, lenguaje de marcas hipertextuales), y ste res-
ponde enviando la pgina solicitada. Entonces el navegador se encarga de mostrarla
correctamente al usuario. Sin embargo, el aspecto ms relevante de este tipo de sis-
temas es que la pgina enviada no es esttica, es decir, no exista tal cual se enva,
sino que se genera dinmicamente en funcin de la solicitud realizada y los conteni-
dos a enviar, dicha respuesta est adaptada a la peticin realizada y al contexto de
navegacin. El elemento encargado de generar la pgina es una aplicacin Web, ge-
neralmente escrita algn lenguaje como PHP, Java, ..., y que siguiendo unas pautas
claramente establecidas, plantillas y tomando informacin necesaria construye la
pgina solicitada y se la enva al Servidor Web. Generalmente, esta aplicacin preci-
sa informacin almacenada en un gestor de base de datos, para ello realiza una peti-
cin de dicha informacin mediante cdigo SQL (Structured Query Language, lengua-
je de consulta estructurado) al citado gestor y ste responde enviando los datos soli-
citados a la aplicacin.

1
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Como se puede apreciar las herramientas informticas que se encuentran invo-
lucradas en la construccin de un sistema e-learning, segn la Fig 1, son cuatro: el
servidor Web, la aplicacin Web (realmente es el sistema e-learning propiamente
dicho al ser la responsable de implementar la lgica de funcionamiento), el gestor de
base de datos y, por ltimo, el sistema operativo que proporciona el contexto ade-
cuado para que las anteriores puedan realizar adecuadamente sus tareas. Por lo tan-
to, en este captulo se realiza una descripcin de estas herramientas. Se comenzar
con una denicin de conceptos bsicos, como informtica, hardware y software. Y
a continuacin se centrar en aquellas que estn ms directamente relacionadas con
un sistema e-Learning segn la descripcin anterior: sistema operativo, gestor de
base de datos y servidor Web. Este software constituye el ncleo fundamental sobre
el que se puede construir un sistema de este tipo, aunque no nico. Otro tipo de
tecnologas como lenguajes de programacin, scripting, lenguajes de marcado, etc.
constituyen herramientas poderosas tambin involucradas en esta tarea.

Algunas conceptos iniciales


El trmino informtica es un vocablo que se deriva de la palabra francesa informa-
tique, formada por la contraccin de otras dos palabras informacin y automtica.
Se puede denir informtica como el conjunto de conocimientos cientcos y
tcnicas que hacen posible el tratamiento automtico de la informacin por medio
de ordenadores.
Otra denicin de informtica puede ser el campo de conocimiento que abarca
todos los aspectos del diseo y uso de los computadores [Prieto et al., 2002].
Existen otros trminos para referirse a la informtica, entre los cuales cabe des-
tacar ciencia de la computacin o ciencia de los computadores ya que es la traduc-
cin del trmino ingls Computer Science, el cual se utiliza con asiduidad en la biblio-
grafa anglosajona para referirse a la informtica.
Si el objetivo nal de la informtica es el procesamiento automtico de la in-
formacin, se necesita la mquina capaz de realizar dicho tratamiento, esto es el
ordenador o computador.
Deniciones de ordenador que pueden encontrarse en la bibliografa son:

Todo aparato o mquina destinada a procesar informacin, entendindose por proceso


las sucesivas fases, manipulaciones o transformaciones que su%e la informacin para re-
solver un problema determinado .
Mquina capaz de aceptar unos datos de entrada, efectuar con e)os operaciones lgicas y
aritmticas, y proporcionar la informacin resultante a travs de un medio de salida;
todo e)o sin intervencin de un operador humano y bajo el control de un programa de
instrucciones previamente almacenado en el propio ordenador .
Mquina electrnica digital para el tratamiento de la informacin.
Respecto a esta ltima denicin, aunque escueta, conviene hacer un repaso
por el signicado de cada uno de los trminos que la componen. As, la palabra elec-
trnica implica que un ordenador se construye usando componentes electrnicos de
estado slido, conocidos por circuitos integrados, o ms comnmente por chips. La
palabra digital hace referencia a que los ordenadores trabajan con datos en formato

2
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
digital; es decir, en cdigos que representan las letras o los dgitos de los nmeros.
Cualquier otro tipo de datos, como puedan ser grcos o sonido, se almacena tam-
bin en formato digital. El formato digital signica que se emplea el sistema binario,
esto es, los datos se almacenan en el ordenador por secuencias de ceros y unos. Esto
es as porque el ordenador es un conjunto de sistemas fsicos que slo pueden en-
tender dos estados. El trmino tratamiento de la informacin es un concepto gene-
ral que da cabida a un enorme rango de actividades y trabajos que un ordenador
puede llegar a realizar. Por ltimo, la palabra mquina hace referencia a que los or-
denadores estn en la misma lnea de sucesin que otras mquinas menos sostica-
das y, como una mquina que es, puede funcionar bien o mal, pero no es infalible
Cualquier ordenador se apoya en dos pilares bsicos que lo denen en s mismo
y le dan sentido a su existencia. Estos dos pilares son el soporte fsico y el soporte
lgico.
El soporte fsico, ms conocido por hardware, es la mquina en s, la parte
fsica y tangible de un ordenador. As pues, puede denirse el hardware como el
conjunto de dispositivos fsicos (cables, armarios...) y circuitos electrnicos (tarjetas
de red, controladoras, circuitos integrados...) que constituyen un ordenador.
El soporte lgico, que usualmente es conocido con el trmino software, es la
parte que permite la explotacin del hardware. El software se puede denir como
el conjunto de programas que dirigen el funcionamiento del ordenador.
El software y el hardware se encuentran ntimamente relacionados entre s. El
hardware establece la plataforma donde el software puede ejecutarse, y el software
le da sentido a unos elementos fsicos al ponerlos en explotacin.
Los programas que constituyen el software de un ordenador se pueden agrupar
en:
Software de control o sistema de explotacin
Es el software encargado de controlar el funcionamiento de los programas en
ejecucin, administrando los recursos hardware y facilitando la utilizacin del
ordenador de la forma ms eciente posible. Dentro de esta categora se en-
cuentran:
El sistema operativo
El interprete de rdenes
El software de diagnstico y mantenimiento
Utilidades
Conjunto de programas de servicio que, en cierta medida, se pueden conside-
rar como una extensin del sistema operativo. Incluye programas como edi-
tores de texto, traductores (compiladores, interpretes) y cargadores tiles en
la creacin de programas software por parte de los programadores y desarro-
lladores. Otro tipo de programas son: utilidades para la compresin de datos,
compactadores de discos, copias de seguridad, recuperacin de datos, antivi-
rus, ...
Software de aplicacin
Son todos aquellos programas relacionados con alguna aplicacin especca
como pueden ser:

3
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
procesadores de texto (MS Word, OpenOce, ...),
programas para resolver problemas estadsticos (SPSS),
clculo matemtico (MATEMTICA, MATLAB),
gestores de bases de datos (MySQL, PostgresSQL, MS ACCESS, ORA-
CLE, ...),
hojas de clculo (MS Excel, OpenOce),
agendas electrnicas y gestores de correo electrnico (MS Outlook,
Evolution),
navegadores Web (MS Ineternet Explorer, Firefox, Safari, Opera, ...),
mensajera (MSN, YAHOO, GTALK, ...)
A la vista de las deniciones de software y hardware puede parecer que son dos
conceptos claramente delimitados, pero esta frontera se diluye con el concepto de
rmware, que se puede denir como el conjunto de microprogramas empotrados
en memorias de slo lectura y destinados a resolver un proceso o problema particu-
lar y frecuente. Por lo tanto el rmware es un soporte para programas que no se
pueden alterar, siendo un estadio intermedio entre hardware y software.

El Sistema Operativo
Un Sistema Operativo es un programa o conjunto de programas que acta como
interfaz entre el usuario de un computador y el hardware del mismo, ofreciendo el
entorno necesario para que el usuario pueda ejecutar programas de aplicacin.
Los dos objetivos fundamentales son:
Eciencia: Un sistema permite que se utilicen los recursos de forma eciente
Comodidad o facilidad de uso: Un sistema operativo hace que un computador
sea ms fcil y cmodo de usar
Estos objetivos no son fcilmente compatibles, si se consiguen, se logra un buen
sistema operativo. En los sistemas operativos modernos el objetivo fundamental es
gestionar y administrar ecientemente los recursos hardware, permitiendo que se
ejecuten concurrentemente varios programas, sin que haya conictos en el acceso
de cada uno de ellos a cada uno de los recursos que necesite, y sin que ningn pro-
grama monopolice alguno de ellos.

Definicin de Sistema operativo


Se puede denir un sistema operativo como un programa (o conjunto de progra-
mas) de control que tiene por objeto facilitar el uso del ordenador y conseguir
que sta se utilice ecientemente.
El sistema operativo es un programa de control, ya que se encarga de gestio-
nar y asignar los recursos hardware que requieren los programas. Los recursos son:
el procesador (UCP), la memoria, los dispositivos o perifricos de entrada/salida.
Por ejemplo, si varios usuarios estn utilizando la misma computadora, han de asig-
narse los recursos y evitar los conictos que puedan surgir cuando dos programas
requieran los mismos elementos (la misma unidad de disco o la impresora, por
ejemplo). Esta es una de las funciones del sistema operativo. Adems de esta fun-
cin de asignar los recursos a cada programa, el sistema operativo se encarga de

4
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
contabilizarlos y de la seguridad (de que un usuario no pueda acceder sin autoriza-
cin a la informacin de otro, por ejemplo).
Si consideramos el segundo objetivo, el sistema operativo facilita el uso del
ordenador. Por ejemplo, cada dispositivo de E/S, para ser utilizado, requiere varias
instrucciones mquina que establezcan un dilogo entre las unidades centrales y el
perifrico, enviando o captando el dato de salida o de entrada, respectivamente.
Estas instrucciones dependen considerablemente de las caractersticas concretas del
perifrico. Si se trata, por ejemplo, de una unidad de disco, hay que considerar el
ancho de los buses, el tamao de su memoria intermedia, el arranque (y parada) de
los motores de la unidad, el cdigo identicador de la posicin a donde hay que ac-
ceder, etc. Por otra parte, estas instrucciones u operaciones son comunes para gra-
bar o leer cual tipo de informacin (programas o datos), sea cual sea su naturaleza.
El sistema operativo, con objetivo de facilitar el trabajo de los programadores, con-
tiene mdulos de gestin de entradas/salidas que evitan a los usuarios tener que in-
cluir esas instrucciones cada vez que hacen una operacin de entrada o salida. Se
puede decir que estos programas del sistema operativo hacen transparente al usua-
rio las caractersticas hardware concretas de los dispositivos.
Y por ltimo, El sistema operativo tambin hace que el ordenador se utilice de
forma eciente. Para poner de maniesto cmo el sistema operativo puede incre-
mentar la eciencia considrese un ejemplo sencillo. Los programas tradicional-
mente se ejecutan secuencialmente, es decir, hasta que no concluye la ejecucin de
una instruccin no se ejecuta la siguiente. Supongamos que dentro de un programa
hay una instruccin que implica la escritura de una pgina en una impresora lser.
Hasta que no acabe de imprimirse dicha pgina el programa no puede continuar
ejecutndose. Para mejorar la eciencia del sistema en estas situaciones el sistema
operativo se encargar de gestionar y asignar recursos a los diferentes procesos que
se tengan ejecutando para optimizar el rendimiento.
As pues un Sistema Operativo es el soporte lgico (software) que controla el
funcionamiento del equipo fsico (hardware); eciencia, abilidad, facilidad de man-
tenimiento, y un pequeo tamao seran las caractersticas deseables de este soft-
ware.
Un sistema operativo es un conjunto de programas que supervisan y controlan
los programas de usuario para evitar errores y el uso inadecuado del computador. El
sistema operativo controla, as mismo, las operaciones de E/S; podemos pues, en-
tender por sistema operativo, una coleccin de programas cuya principal misin es
gestionar los recursos del computador, y en consecuencia ser el soporte lgico que
controla el funcionamiento del equipo fsico (hardware).

El sistema operativo como interfaz usuario/computador


El sistema operativo oculta los detalles del hardware a los usuarios y programadores
y proporciona una interfaz adecuada para utilizar el sistema. Acta como mediador
(ver Fig. 2), facilitando al usuario y a los programas de aplicacin el acceso y el uso
de los medios y servicios del sistema.
Un sistema informtico engloba los cinco puntos siguientes:

el hardware (UCP o Unidad Central de Proceso o simplemente procesador,


memoria, dispositivos de E/S)

5
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
el sistema operativo
software de utilidad
los programas de aplicacin (compiladores, sistemas de bases de datos, utili-
dades, videojuegos, programas de gestin... etc..)
los usuarios (personas, Mquinas u otros computadores)
Los recursos bsicos de un sistema informtico, son el hardware, el software y
los datos. El sistema operativo facilita los medios para la utilizacin adecuada de
estos recursos durante las operaciones en el sistema informtico.

Usuario final

Programador

Programas de aplicacin
Diseador
Utilidades del sistema
operativo
Sistema operativo

Hardware

Fig. 2: El sistema operativo como interfaz de servicios

Proporciona servicios en las siguientes reas:


Creacin de programas: Conjunto de utilidades que ayudan al programador en
sus tareas de elaboracin de programas (editores, compiladores, etc...).
Ejecucin de programas: Para ejecutar un programa es preciso realizar una serie
de tareas. Las instruccin y los datos deben cargarse en memoria principal, se
deben iniciar los dispositivos de E/S y los cheros , y deben prepararse otros re-
cursos.
Acceso a los dispositivos de E/S: Cada dispositivo de E/S necesita su propio con-
junto de instruccin y seales para poder operar. El S.O. asla al usuario de estas
particularidades, convirtindolas en simples operaciones de lectura/escritura.
Acceso controlado a los cheros: Adems de las particularidades del dispositivo
que se trate (disco, cinta) se debe controlar el formato del chero y el medio de
almacenamiento. Adems, en el caso de sistemas multiusuario deben existir me-
canismos de seguridad.
Acceso al sistema: En el caso de sistema compartido o pblico, el sistema opera-
tivo controla el acceso al sistema como un todo y a los recursos especcos del
sistema.
El sistema operativo como administrador de recursos
El ordenador es un conjunto de recursos para transferir, almacenar, y procesar datos
y para controlar esas funciones. El sistema operativo es el responsable de adminis-
trar esos recursos. Sin embargo, el control lo realiza de una forma muy particular:

6
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
El sistema operativo funciona de la misma forma que el software ordinario del
computador, es decir, se trata de un programa ejecutado por la UCP
El sistema operativo frecuentemente cede el control y depende de la UCP para
recuperarlo
Por lo tanto, el sistema operativo es un programa ms, pero con la diferencia de
su objetivo: dirigir a la UCP en el uso de otros recursos del sistema y en la tempori-
zacin de la ejecucin de otros programas.

Historia
En este apartado se va a presentar la evolucin histrica de los sistemas operativos,
haciendo especial hincapi en los avances tecnolgicos ms relevantes y agrupando
dichos avances en las etapas tiempo ms signicativas. Se terminar haciendo un
repaso a los sistemas operativos ms populares. En la bibliografa se suele agrupar la
evolucin en el tiempo de los avances de los sistemas operativos en cuatro etapas o
generaciones.
Prehistoria
Durante esta etapa, que cubre los aos cuarenta, se construyen los primeros orde-
nadores. Como ejemplo se puede citar el ENIAC (Electronic Numerical Integrator
Analyzer and Computer), nanciado por el Laboratorio de Investigacin Balstica de
los EEUU. La principal caracterstica de estos primeros ordenadores era que no
existan los sistemas operativos. La UCP slo poda ejecutar un programa de cada
vez (es lo que se conoce como monoprogramacin), que se introduca mediante tar-
jetas perforadas. Todos los trabajos se realizaban en serie; se introduca un programa
en el ordenador (manualmente), se ejecutaba y se impriman los resultados, y se vol-
va repetir el mismo proceso con el siguiente trabajo.
Una de las mejoras que se introdujo fue el manejo de la mquina por un especia-
lista en operacin (operador), cuya misin era:
controlar el sistema
cargar el programa que creaba el programador
obtener resultados
Estas operaciones no utilizaban toda la capacidad de proceso de la UCP, pues
dejaban tiempos de UCP sin ocupar, aun cuando se agrupaban los trabajos con una
necesidad comn de recursos (fsicos y lgicos), y se ejecutaban como si fueran un
bloque.
Primera etapa
En los aos cincuenta se observa que gran parte del trabajo que realizaba un opera-
dor era bastante mecnico y poda ser automatizado, ganando tiempo. Se desarroll
un pequeo programa que permaneca constantemente en memoria (residente), y
que transfera automticamente el control de un trabajo a otro. A este programa se
le denomin monitor y es considerado como el primer sistema operativo. La forma
de trabajar del monitor era la siguiente:
En el momento de encender la computadora se daba el control al monitor
El monitor preparaba la carga y ejecucin del primer trabajo o tarea a ejecutar
El monitor ceda el control al trabajo cargado

7
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Cuando el trabajo en ejecucin terminaba, el monitor tomaba de nuevo el con-
trol, dando paso al segundo de los trabajos, y as sucesivamente

El programa monitor contena las siguientes partes:
El secuenciador automtico de trabajos
El intrprete de tarjetas de control
Controladores software de entrada/salida (drivers)
Tanto la introduccin de las instrucciones de los programas, como los datos con
lo que deban trabajar y como las secuencias de control del monitor se realizaba
mediante tarjetas perforadas. Existan tres tipos de tarjetas:
Programa: introduccin de instrucciones del programa a ejecutar.
Datos: introduccin de datos del programa.
Control (JCL, Job Control Language): sirven para controlar e instruir al progra-
ma monitor.
Segunda etapa
Durante los aos 60 se comienza a estudiar mejoras de rendimiento atendiendo a
los periodos de tiempo en que el procesador est inactivo. Cuando un procesador
est trabajando, los dispositivos de E/S estn inactivos, y cuando un dispositivo de
E/S est actuando el resto de las unidades, incluido el procesador, permanecan inac-
tivos. Esta circunstancia supona un importante desaprovechamiento de prestacio-
nes. Se plantearon entonces las siguientes mejoras:
Operaciones OFF-LINE
Para realizar la comunicacin con los perifricos se desarrollaron los procesadores
satlites, que descargaban el trabajo del procesador central, optimizando el tiempo
de UCP. Los procesadores satlites se encargaban de grabar una imagen de las tarje-
tas perforadas en cintas magnticas (de acceso secuencial, pero mucho ms rpidas
que las lectoras de tarjetas), de donde las cargaba la UCP.
Memorias intermedias o buers
El Buering trata de mantener permanentemente ocupados tanto la UCP, como los
dispositivos de E/S, para ello se utiliza una zona de memoria intermedia, denomina-
da buer, en la propia memoria principal del computador. Los datos que se transmi-
ten de memoria al perifrico, y viceversa, son volcados en el buer donde estn dis-
ponibles para ser utilizados. Por ejemplo, para la salida de datos a un dispositivo de
salida:
La UCP vuelca los datos al buer (memoria intermedia) hasta que el dispositivo
de salida pueda aceptarlos.
Cuando el dispositivo de salida vace el buer, reclamar tiempo de UCP me-
diante un lnea de interrupcin habilitada para tal efecto, la UCP dejar la tarea
que est haciendo para atender la interrupcin, que en este caso consistir en
volver a llenar el buer e instruir al dispositivo para que inicie la lectura de los
datos.
Dependiendo de lo rpido que sea el dispositivo perifrico existen dos tipos de
dispositivos:
los que transeren informacin carcter a carcter (la pantalla y el teclado)

8
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
los que lo hacen por bloques de caracteres (los discos, tanto jos como los ex-
traibles
Por ltimo, hay dispositivos de E/S que realizan acceso directo a memoria, sin
necesidad de ocupar tiempo de UCP, son los dispositivos con DMA (Direct Access
Memory, Acceso Directo a Memoria). Son dispositivos de E/S de velocidad con
transferencia de datos prxima a la de memoria, y que no necesitan de la UCP para
realizar la transferencia de informacin con la memoria.
Spooling
La idea es la misma que en los sistemas o-line pero se sustituye la cinta (acceso
secuencial, una vez escrita hay que rebobinarla antes de poder leerla) por el disco
(acceso directo, ms rpido). El funcionamiento es el siguiente:
Las tarjetas perforadas se leen directamente sobre el disco desde la lectora de
tarjetas.
La posicin de las imgenes de las tarjetas se registra en una tabla mantenida por
el sistema operativo. En la tabla se anota cada trabajo una vez ledo.
Cuando se ejecuta un trabajo sus peticiones de entrada desde la lectora de tarje-
tas se satisfacen leyendo el disco.
Anlogamente, cuando el trabajo solicita la salida de una lnea por la impresora,
esta lnea se copia en el buer del sistema y se escribe en el disco. Cuando la tarea se
ha completado, la salida se imprime realmente buscando los datos en el disco.
Las diferencias entre buering y spooling son que el buering solapa la E/S de un
trabajo con su propio tratamiento (procesamiento), y el spooling solapa la E/S de un
trabajo con el procesamiento de otro.
Se trabajaba con sistemas de colas simples o sistemas en batch, es decir, los tra-
bajos se colocan en una cola y se van ejecutando uno tras otro, de forma secuencial.
Comenzaron a aparecer distintas aproximaciones para conseguir un mayor rendi-
miento del sistema, evitando la situacin en que la UCP se quedaba sin trabajo.

Tercera etapa
Finales de los 60 y dcada de los 70. Se comienza a utilizar el concepto de multi-
programacin como remedio para incrementar el rendimiento. Un programa en
ejecucin en un ordenador se denomina proceso. Desde el punto de vista de ocu-
pacin de tiempo de procesador y de los dispositivos perifricos, se puede diferen-
ciar dos tipos bsicos:
Procesos limitados por procesamiento. Son aquellos que consumen la
mayor parte de su tiempo en el tratamiento de la informacin y muy poco en
operaciones de entrada/salida.
Procesos limitados por operaciones de E/S. Son aquellos que dedican la
mayor parte del tiempo a operaciones de E/S, haciendo poco uso de el proce-
sador, que se mantiene inactivo durante grandes perodos de tiempo.
Obviamente un proceso particular puede estar decantado hacia un lado u otro,
o bien situado en una situacin intermedia.

9
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
El segundo tipo de proceso dio lugar a una nueva tcnica denominada multipro-
gramacin, que consiste en aprovechar la inactividad del procesador durante la eje-
cucin de una operacin de E/S de un proceso, atendiendo a otro proceso.
En estas condiciones nos encontraremos con varios problemas:
Se deben realizar una serie de tareas que permitan la concurrencia de proce-
sos: cambio de contexto
Se hace necesario algn tipo de administracin de la memoria, ya que sta tie-
ne que ser compartida por los distintos procesos
Es necesaria una poltica de asignacin de recursos, para evitar situaciones de
abrazo mortal 1 cuando dos procesos intentan acceder simultneamente a dos
recursos bajo determinadas condiciones.
Con el uso de la multiprogramacin, el procesamiento en colas puede ser bas-
tante eciente. Sin embargo, en alguno casos es necesario un modo interactivo.
Igual que la multiprogramacin permite que el procesador ejecute varios procesos
de la cola en un intervalo de tiempo. Sin embargo, en este caso el cambio entre pro-
cesos ocurre tan frecuentemente que el usuario puede interactuar con cada progra-
ma mientras se est ejecutando.
Un sistema operativo de tiempo compartido utiliza una planicacin de la
UCP y multiprogramacin para proporcionar a cada usuario una pequea porcin
de tiempo de procesamiento, denominado cuantum (habitualmente 100 ms). El pro-
ceso se ejecuta realmente durante un corto periodo de tiempo antes de que, o bien
se termine su cuantum, o bien necesite realizar una operacin de E/S.
La operacin de E/S puede ser interactiva (suele ser habitual), es decir, se llevar
a cabo a velocidad humana, lo que implica que puede llevar un tiempo largo su
nalizacin.
La responsable de interrumpir la ejecucin de un proceso cuando termina su
cuantum es la UCP, dndole el control al S.O. que se encargar de realizar el corres-
pondiente cambio de contexto.
Si consideramos dos dimensiones podemos establecer la clasicacin de la tabla 1:
La primera dimensin especica si se trata de un sistema de colas (batch) o inte-
ractivo:
Sistema de colas: El programa de usuario se introduce en una cola junto con
programas de otros usuario, enviados todos por el operador del computador.
Sistema interactivo: El usuario/programador interacta directamente con el
computador para solicitar la ejecucin de un trabajo o incluso, dependiendo
de la aplicacin, comunicarse con la misma.
La segunda dimensin especica si un sistema es multiprogramado o no:
Sistema multiprogramado: Varios programas est cargados en memoria prin-
cipal del computador.
Sistema monoprogramado: Slo un programa en memoria principal, slo se
ejecuta un programa en cada momento.

1 Del ingls deadlock

10
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Atendiendo a estas dos dimensiones se pueden clasicar los sistemas operativos
segn esta tabla:

Sistema de colas Interactivo


Monoprogramado Simple Sistema dedicado

Multiprogramado Sofisticado Tiempo compartido

Tabla 1: Clasificacin de sistemas operativos.

Tambin aparecen otras aproximaciones de sistemas operativos multiprograma-


dos como los sistemas de tiempo real. En este tipo de sistemas se necesita un
tiempo de respuesta pequeo ante cualquier peticin. Suele emplearse en aplicacio-
nes dedicadas a sistemas de control con sensores como elementos de entrada, donde
es necesaria una respuesta rpida sobre el sistema a controlar. Podemos decir que un
sistema trabaja en tiempo real si el tiempo de respuesta permite controlar y regular
el medio sobre el que opera.
Cuarta etapa
Aproximadamente desde los aos 80 hasta la actualidad, se caracteriza por el desa-
rrollo de sistemas operativos para ordenadores personales (CP/M, MacOS, MS-
DOS, OS/2,...) y para estaciones de trabajo (UNIX, MS Windows NT,...) y, en los
ltimos aos, un avance muy signicativo en las interfaces grcas de usuario, IGU2
as como otros paradigmas de interaccin con el usuario como la realidad virtual o la
computacin ubicua.
Los avances tecnolgicos, el crecimiento de las redes (Internet) y la aparicin de
ordenadores con varios procesadores provocan una evolucin de los sistemas opera-
tivos para aprovechar al mximo dichos avances.
Sistemas Distribuidos
Una tendencia actual en sistemas informticos es la creacin de redes locales de
ordenadores, lo que permite:
Compartir recursos
Incrementar la velocidad de procesamiento. Procesamiento paralelo con me-
moria distribuida, mediante paso de mensajes
Fiabilidad
Comunicaciones. Correo electrnico, videoconferencia, etc.
Sistemas Multiprocesador
Uno de los problemas actuales en el proceso de datos ha sido la aparicin de aplica-
ciones que manejan gran cantidad de datos, que un nico procesador no es capaz de
procesar en el tiempo requerido.
Aunque puede ser resuelto por un sistema distribuido, hoy en da aparecen sis-
temas multiprocesadores con varios microprocesadores compartiendo memoria,
buses y reloj. Ms fciles de programar y ms rpidos, no hay una sobrecarga en
tiempo por el paso de mensajes, pero tecnolgicamente ms complejos.

2 En ingls GUI, Graphical User Interface

11
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Sistemas operativos de mayor difusin
MS Windows
Naci simplemente como una aplicacin que necesitaba del DOS (MS Windows 3.1)
pero el tiempo y los usuarios demandaron que se convirtiera en un sistema operati-
vo completo (MS Windows 95 y MS Windows 98). Es el ms utilizado hoy en da en
todo el mundo, lo que no signica que sea o no el mejor. Fue diseado para facilitar
la comunicacin entre el usuario y el ordenador. Para ello convierte la pantalla del
ordenador en una especie de escritorio (un conjunto de carpetas y una papelera). Es
lo que se denomina habitualmente como metfora del escritorio y fue populariza-
da inicialmente por Apple con su Mac OS.
Pone al alcance del usuario la tecnologa plug and play que simplica la tarea de
congurar los dispositivos perifricos que se conecten al ordenador, permite al
usuario etiquetar sus archivos como desee, facilita la tarea del intercambio de datos
entre programas diferentes y est especialmente diseado para que el usuario pueda
trabajar con las tecnologas multimedia. Entre sus caractersticas caben destacar las
siguientes: multitarea, una interfaz de usuario muy intuitiva y una estabilidad y se-
guridad slo relativas.
Tambin surgi entre los usuarios una demanda que oblig a Microsoft al desa-
rrollo de un sistema operativo que aprovechara la interfaz Windows, pero orientado
al mundo empresarial. Ese embrin fue denominado y posteriormente bautizado
como Windows NT.
Windows NT es un sistema operativo multiusuario y proyectado para actuar en
servidores de archivos, impresoras y otros sistemas, a los que se accede a travs de
redes de rea local (LAN) o Internet. Incluye funciones de seguridad para grupos de
usuario, autenticacin de usuarios y control de acceso a los recursos compartidos
de la red. Admite unidades RAID de discos. Entre otras caractersticas, aparece la
multiprogramacin, la alta estabilidad y seguridad. Sus inconvenientes principales
son los excesivos recursos que necesita para poder ser utilizado en una red media-
namente grande.
Las siguientes versiones basadas en la tecnologa NT de Microsoft fueron
Windows 2000, orientado a estaciones de trabajo en red, y Windows Server 2003.
El primero est disponible en cuatro versiones: Professional, Server, Advanced Ser-
ver y Detacenter Server y est orientado a usuarios nales. El segundo est ms
orientado a entornos de servidores.
La penltima versin, Windows XP esta enfocado a los usuarios, tanto domsti-
cos como profesionales. Se distribuye en cuatro versiones diferentes: XP Home
Edition (enfocada a los usuarios domsticos), XP Profesional (enfocada a usuarios
ms avanzados) y dos versiones especiales: XP Media Center Edition (especializada
en tecnologas multimedia) y XP Tablet PC Edition (versin exclusiva para la nueva
generacin de dispositivos Tablet PC). Windows CE es una versin simplicada
ideada para equipos informticos miniaturizados como PDAs o televisiones conec-
tables a Internet, etc.
Recientemente (febrero 2007) Microsoft ha publicado la ltima versin de sus
sistemas operativos: MS Windows Vista, orientado tanto al mercado empresarial

12
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
como al domstico, con amplias capacidades multimedia, de comunicacin y una
atencin especial a las cuestiones de seguridad, faceta muy criticada en sistemas
anteriores de la compaa. Otro aspecto muy cuidado de Vista es la interaccin con
el usuario, se mejora notablemente con atractivos efectos grcos en 3D.

Fig. 3: Captura MS Windows Vista. ALT-TAB cambio de aplicacin.

Fig. 4: Captura de MS Windows Vista. Barra lateral de gadgets activada.

13
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
UNIX
En la dcada de los 60 se lleva a cabo el proyecto Multics (GE-645), con el objetivo
de crear un sistema operativo multiusuario. Desarrollado por el MIT3, Bell Labora-
tories y GE. Al nal fracas, la tecnologa no estaba sucientemente madura.
En la dcada de los 70 Ken Tompson, Dennis Ritchie y otros investigadores de
Bell Laboratories desarrollan UNIX 4 partiendo de ideas simplicadas de MUL-
TICS en una PDP-7 y nalmente en una PDP-11. La principal caracterstica era que
un nico usuario puede crear fcilmente un proceso. En el ao 1973 se rescribe en
un lenguaje de alto nivel: lenguaje C en vez de ensamblador, con lo se gana en por-
tabilidad a otras arquitecturas.
Bell Laboratories controla las versiones de UNIX para investigacin, que se
numeran de 1 a 6. Entre las caractersticas ms relevantes se pueden citar:
Escrito en C, slo una pequea parte se mantiene en ensamblador y es espec-
ca del HW.
Distribucin de licencias y cdigo fuente a investigadores (Universidades).
Clave para su desarrollo y xito entre los usuarios. De hecho una de ellas, la
Universidad de California en Berkeley, inicia su propio desarrollo dando lugar
a una de las familias UNIX de ms xito: BSD (Berkeley Software Distributions).
Diseo que permite a un usuario ejecutar varios procesos simultneamente y
conectarlos mediante ujos de datos (streams).
En la dcada de los 80 Bell Laboratories/AT&T cambia la poltica de distribu-
cin de UNIX. Bajo esta nueva poltica se distribuyen, a partir de 1983, las edicio-
nes: System III, System IV y System V. Surgen tambin los grupos de desarrollado-
res y usuarios5, protagonistas fundamentales del rpido desarrollo de UNIX.
En la dcada de los 90 se produce la edicin de SYSTEM V, Release 4, junto
con un nuevo cambio en la poltica de licencia y distribucin. Surgen problemas y
litigios legales con otras lneas de desarrollo (BSD, Universidad de California, Berke-
ley). Se produce la adquisicin por parte de Novell de todos los derechos sobre el
cdigo fuente original UNIX de Bell Laboratories/AT&T, incluida la demanda por
licencias con la Universidad de California. A partir de entonces se produce un cam-
bio de nombre y la evolucin sobre la lnea UNIXware. Posteriormente Santa Cruz
Operation (SCO) adquiere la licencia y lo comienza a comercializar bajo el nombre
de SCO UNIX.
Y qu pasa con la rama BSD? En la dcada de los 80 la Universidad de Califor-
nia en Berkeley inicia y mantiene el desarrollo UNIX, partiendo de la rama princi-
pal. Bell Laboratories/AT&T establece unos acuerdos contractuales que permiten la

3 MIT acrnimo de Massachusetts Institute of Technology, Instituto Tecnolgico de Massachusetts

4El nombre surge como resultado de un juego de palabras con el nombre de su antecesor, MULTICS, siendo inicial-
mente UNICS

5USG: UNIX Support Group; USDL: UNIX System Development Laboratory; USL: UNIX System Laboratory, divisin
comercial de AT&T; PWB: Programmers Work Bench, a travs del USG

14
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
distribucin entre Universidades, lo que resulta fundamental en el xito de popula-
ridad de UNIX. Esta nueva familia pasa a denominarse Berkeley Software Distribu-
tions, BSD. Actualmente esta denominacin se ha vuelto a dividir, siendo las dos
ramas ms extendidas FreeBSD y NetBSD. Debido a problemas sobre la propiedad
intelectual del cdigo UNIX se produce un litigio con el USL.
Ya en la dcada de los 90, BSD gana el litigio a Novell, de hecho llegan a un
acuerdo extrajudicial por el que la Universidad de California, Berkeley, puede seguir
con sus distribuciones.

USG, USDL
y USL Bell Labs BSD

1969 Primera edicin

Sexta edicin

PWD 1 BSD
1980
System III Xenix 4 BSD

Sun OS
System V

1990
UNIXware Solaris

Linux 4.4 BSD

SCO UNIX Solaris 2


FreeBSD
2000

Fig. 5: Familias UNIX.

Un aspecto que suele sorprender al usuario no familiarizado con UNIX es la


variedad familias existentes. Las primeras ediciones de Bell Laboratories se distri-
buan en cdigo fuente, que adems poda ser modicado e, incluso, distribuido con
dichas modicaciones, por los usuarios. As, a lo largo de los aos, distribuciones
varias, litigios y acuerdos, se van produciendo varias escisiones y fusiones de dife-
rentes lneas o familias (Fig. 5) segn disposiciones legales de las licencias de uso y
distribucin activas en cada momento. Durante los aos 70-80 la familia ms rele-
vante, y la que marca el estndar UNIX es la familia de AT&T. Actualmente existen
mezclas de propiedad intelectual entre las diferentes familias.
Entre las familias UNIX ms conocidas se encuentran:

AT&T, la original de los Bell Laboratories. Considerada como la familia pura


de UNIX. Principales sistemas: SYSTEM III y SYSTEM V.

15
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
BSD, Universidad de California, Berkeley. Originada por el licenciamiento de
UNIX a Berkely. Incorporacin de su propia propiedad intelectual: protocolos
TCP/IP. Ampliamente difundida con licencias de cdigo abierto.
AIX, IBM. Licenciamiento de UNIX System III a IBM
Xenix, Santa Cruz Operation, SCO. Adquisicin de derechos originales de
AT&T por parte de SCO (primero por Novell)
GNU/Linux, software libre. Se trata del conjunto de herramientas GNU, ms
el kernel (ncleo) Linux. Cumple con el estndar POSIX. No deriva de una
rama ocial UNIX (Fig 6 y 7).
Las implementaciones son sistemas operativos UNIX distribuidos, bajo algn
tipo de licencia concreto, bien propietario por parte de alguna empresa, bien abier-
to, bien libre distribucin. Entre los ms relevantes tenemos:

Solaris, SUN MicroSystems. Rama BSD, actualmente parcialmente liberado.


HP-UX, Hewlett Packard.
AIX, IBM. System III y System V.
MacOS X, Apple Computer. Mach Microkernel, BSD (OpenDarwin) abierto.
Distribuciones GNU/Linux: Debian, Fedora (RedHat), Suse y OpenSuse (No-
vell), Ubuntu, ....
La denicin de estndares entorno a UNIX suponen un esfuerzo por conse-
guir una uniformidad entre todas las familias e implementaciones. Actualmente,
debido a la gran variedad de familias existen muchas divergencias a diferentes nive-
les (llamadas al sistema, rdenes UNIX, etc.). Los ms conocidos:

IEEE, POSIX y POSIX.2 (Portable Operating System Interface).


AT&T, SVID (System V Interface Denition).
Europa, X-OPEN, sigue el POSIX.

Fig. 6: Captura de OpenSuse, una de las distribuciones GNU/Linus ms populares.

16
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red

Fig. 7: Captura de OpenSuse, mostrando unos de los efectos 3D de su escritorio.

Funciones de un Sistema Operativo


Las funciones de un sistema operativo pueden clasicarse de forma general en:
Asignacin de tiempos de UCP: La asignacin de tiempos de UCP, consiste en
planicar las distintas actividades que tienen o van a tener lugar en el compu-
tador, y a las cuales habr que dedicar tiempo de UCP.
Control de recursos: El control de recursos consiste en asignar los recursos del
computador de una forma racional. Entre las tareas ms importantes a la hora
de asignar recursos se encuentran:
la divisin de la memoria del computador entre los programas
la asignacin de espacio en las unidades de almacenamiento masivo para
programas y datos
controlar las colas para los dispositivos de salida
Control de Entrada/Salida: El control de entrada/salida consiste en gestionar
los canales de datos hacia y desde los perifricos.
Control de Errores y Proteccin : El control de errores, y la proteccin frente
a stos, supone informar de cualquier condicin anmala al tiempo que se in-
tenta minimizar su efecto sobre el resto del sistema informtico.
Interfaz con el operador: La interfaz con el operador proporciona a la persona
que utiliza el computador, facilidad para el uso del computador.
Facilidades contables: Las facilidades contables permiten facturar a los usua-
rios el importe que supone su uso de los recursos del computador de acuerdo a
una tabla de costes previamente establecida.

17
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Mdulos de un Sistema Operativo
Para poder cumplir con las funciones anteriormente expuestas, un sistema operativo
contara, tpicamente, con los siguientes mdulos (Fig. 8):
Ncleo
Gestor de memoria
Gestor de Entrada/Salida
Planicador de procesos y asignacin de recursos
Administrador de almacenamiento masivo o de cheros
Otros elementos importantes en cualquier sistema operativo son:
Proteccin
Interfaz de usuario
Memoria virtual
Un esquema podra ser el siguiente:
El sistema operativo

Interfaz de usuario

Administrador de
Gestor de Gestor de
Gestor de E/S recursos
Memoria Ficheros
Planificador

Kernel o ncleo del SO

Hardware

Fig. 8: Mdulos de un sistema operativo.

El Ncleo
Es el mdulo de nivel ms bajo y descansa directamente sobre el hardware del com-
putador. Su funcin es proporcionar una serie de servicios de bajo nivel a las capas
superiores del sistema operativo. Entre las tareas que desempea el ncleo estn:
El manejo de interrupciones: Cuando el hardware del ordenador detecta una
interrupcin, el control se transere al mdulo de control de interrupciones
del ncleo, que analiza el carcter de la interrupcin y toma las acciones apro-
piadas. Estas acciones suelen consistir en transferir el control a otro mdulo
del sistema operativo, iniciar otro programa o continuar la ejecucin del pro-
grama interrumpido. Dado que muchas interrupciones tienen lugar por moti-
vos de entrada/salida, el mdulo de gestin de E/S, es uno de los mdulos a los
que el control se transere con ms frecuencia.

18
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
La asignacin de trabajo al procesador: Para asignar trabajo al procesador, el
ncleo transere el control al programa que el planicador ha determinado
que sea el prximo en ejecutarse.
El proporcionar una va de comunicacin entre los distintos programas: La
comunicacin entre programas se logra manteniendo una cola de mensajes en
espera, para cada uno de los programas activos. El ncleo, recibe los mensaje y
los va almacenado en la cola apropiada al destino en cuestin, para distribuir-
los cuando el programa destino se active.
La mayora de los procesadores disponen de instrucciones en lenguaje mquina
cuyo uso est restringido al ncleo del sistema operativo, es lo que se suele denomi-
nar modo dual de trabajo. Estas instrucciones restringidas suelen incluir rdenes
que transeren el control de un programa a otro, y as mismo, instrucciones que
acceden a determinados registros. Restringir las instrucciones es una forma de con-
trolar el funcionamiento global del computador y limitar los efectos de los errores.
Gestor de Memoria
El sistema operativo debe satisfacer una serie de requisitos, tanto de usuario como
del administrador del mismo. Para ello, el mdulo de gestin de memoria debe
cumplir con cuatro responsabilidades:
Aislamiento de procesos.
Asignacin dinmica de memoria a los procesos, transparente al usuario.
Soporte para la programacin modular.
Control de acceso y proteccin. Se debe dar soporte a la comparticin de
reas de memoria, sin que esto interera con el primer punto.
El espacio de direccionamiento lgico de un proceso tiene que encontrarse en
memoria fsica, antes de que el proceso pueda ser ejecutado. Esto es, la parte del
programa que se est ejecutando, debe estar cargada en memoria fsica.
La memoria virtual es una tcnica de gestin de memoria, que permite la
ejecucin de programas que no pueden hallarse en su totalidad en la memoria prin-
cipal, ya que ocupan ms memoria de la disponible. Se combinan hardware y soft-
ware, permitiendo la ejecucin de programas cargados parcialmente en memoria
principal. Con lo que se tienen las siguientes ventajas:
Si los programas se pueden ejecutar por partes, la memoria lgica puede ser
mayor que la real disponible.
Cuando los programas ocupan menos memoria que la memoria principal dis-
ponible, se puede elevar el ndice de multiprogramacin, y por tanto, la e-
ciencia del sistema.
La memoria virtual est basada en el uso de las siguientes tcnicas:
segmentacin
paginacin
una combinacin de segmentacin y paginacin

19
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Gestor de E/S
Los problemas asociados con la E/S de datos tienen como origen el que los disposi-
tivos de E/S tiene distintas caractersticas y diferentes velocidades. El mdulo de
control de E/S trata estos problemas presentando al programador la E/S como una
cuestin independiente del dispositivo.
Estas funciones que proporciona este mdulo del sistema operativo se activan
mediante lo que se denominan llamadas al sistema. Normalmente estas llamadas
son del tipo: abrir y cerrar el dispositivo, escribir y leer.
Una tcnica muy habitual es el uso de spoolers. Los datos se almacenan de forma
temporal en una cola hasta que el dispositivo est libre para recibir dichos datos.
Gestor de Ficheros
Los dispositivos de almacenamiento masivo de un computador constituyen el sis-
tema fsico, donde se depositan de una forma permanente los datos y los programas
de los usuarios. El mdulo encargado de la gestin de estos dispositivos tiene la mi-
sin de mantener la estructura de esta informacin y asegurar el uso eciente de
estos medios.
Los datos y programas de un dispositivo de almacenamiento masivo, se mantie-
nen en archivos. El mdulo de gestin supervisa la creacin, actualizacin y elimi-
nacin de los archivos. Lgicamente este mdulo debe cooperar con el mdulo de
gestin de memoria durante la transferencia de datos desde y hacia la memoria
principal.
Algunos archivos contienen informacin que puede ser compartida, otros son
de carcter privado e incluso secreto. Por tanto, cada archivo est dotado de un con-
junto de privilegios de acceso, que indican la extensin con la que se puede compar-
tir la informacin contenida en el archivo.
Asignacin de Recursos y Planificacin
La mayor parte del tiempo que un computador est funcionando, existe una de-
manda mayor de recursos que los que realmente existen, esta situacin implica la
necesidad de una poltica de asignacin de recursos.
La solucin sera sencilla si fuera posible utilizar una poltica directa del tipo se
atender primero al que antes lo solicite, sin embargo esta poltica puede llevar a
situaciones denominadas de abrazo mortal bajo determinadas condiciones:
Exclusin mutua.
Mantener y esperar.
Planicador no apropiativo.
Espera circular.
El planicador se ocupa fundamentalmente de asignar tiempo de procesador a
los programas, de acuerdo a una cierta poltica de planicacin, que vara notable-
mente de un sistema operativo a otro. Normalmente, se hace uso de una cierta je-
rarqua de prioridades, que determina la colocacin en la cola de espera de tiempos
de UCP, y en consecuencia, como se asignar el tiempo de UCP a cada programa.

20
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Las polticas de planicacin no deben ser muy complicadas, ya que sino el pro-
cesador emplear mucho tiempo en decidir que es lo que se debe de hacer a conti-
nuacin.
Proteccin
Cuando en un ordenador existen diferentes programas ejecutndose simultnea-
mente resulta imprescindible protegerlos entre s. Obviamente, el primer programa
a proteger ser el propio sistema operativo. La proteccin tiene lugar mayoritaria-
mente contra dos procesos:
errores
abusos deliberados de los recursos del sistema
Aunque es imposible el sistema operativo pueda prever los errores de los pro-
gramas de aplicacin, es esencial detectarlos y diagnosticarlos lo antes posible, para
limitar sus efectos. Especial inters tiene la seguridad de la memoria principal y de
los medios de almacenamiento masivo.
Algunos sistemas operativos asignan diversos niveles de privilegio a los progra-
mas que se estn ejecutando en el sistema. El ncleo del sistema operativo tiene el
grado ms alto, mientras que los programas de aplicacin se encuentran en el nivel
ms bajo.

Interfaz Usuario/Sistema Operativo


Es necesario facilitar el uso de los ordenadores, e independizar los recursos del sis-
tema, en cuanto a sus caractersticas de funcionamiento fsico, y su utilizacin.
En un sistema multiacceso la comunicacin, entre el usuario y el sistema opera-
tivo, es interactiva. El usuario puede ir dando rdenes al sistema operativo desde un
terminal y recibir, en el mismo terminal, los mensajes con los que responde el siste-
ma.
La interfaz entre el sistema y la persona responsable del sistema esta constituida
por rdenes y mensajes. El usuario puede dirigir gran parte de la funciones del sis-
tema operativo. Esto se aplica particularmente a la planicacin y asignacin de
recursos. En todo momento el usuario tiene el control global del computador.
Actualmente han ganado gran importancia las interfaces grcas de usuario.
Hacen uso de smbolos de la vida cotidiana6, fciles de relacionar con las tareas que
realizan, lo que ayuda al usuario en sus tareas cotidianas.

6 La metfora del escritorio, presente en todos los sistemas operativos actuales, se representa la informacin y la inte-
raccin con el usuario mediante la representacin grfica de objetos cotidianos y reconocibles, presentes en una ofici-
na real (carpeta, documento, papelera, etc.)

21
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
El gestor de Bases de Datos
Introduccin
Un sistema de base de datos es bsicamente un sistema computerizado cuya nali-
dad general es almacenar informacin y permitir a los usuarios recuperar y actuali-
zar esa informacin por medio de consultas o peticiones perfectamente denidas.
La informacin en cuestin puede ser cualquier cosa que sea de importancia para el
individuo u organizacin; en otras palabras, todo lo que sea necesario para auxiliarle
en el proceso de su administracin.

Componentes
Desde un punto de vista muy general, un sistema de base de datos comprende cua-
tro componentes principalmente: datos, hardware, software y usuarios. A continua-
cin consideramos brevemente estos cuatro componentes.
Datos
Los sistemas de bases de datos estn disponibles en mquinas que van desde las
computadoras personales ms pequeas hasta los grandes servidores o main%ames.
Por norma general, los sistemas que se encuentran en mquinas grandes tienden a
ser sistemas multiusuario, mientras que los que se ejecutan en mquinas pequeas
tienden a ser sistemas de un solo usuario. Un sistema de un solo usuario es aquel en
el que slo un usuario puede tener acceso a la base de datos en un momento dado;
un sistema multiusuario es aquel en el cual mltiples usuarios pueden tener acceso
simultneo a la base de datos 7. En general, el objetivo principal en los sistemas mul-
tiusuario es precisamente permitir que cada usuario se comporte como si estuviera
trabajando en un sistema de un solo usuario. La mayor parte de los problemas de un
sistema multiusuario son internos y no visibles por tanto al usuario nal.
En general, los datos de la base de datos al menos en un sistema grande se-
rn tanto integrados como compartidos. Gracias al concepto de datos integrados,
podemos imaginar la base de datos como una unicacin de varios archivos que de
otro modo seran distintos, con una redundancia entre ellos eliminada parcialmente.
Por otro lado, al ser los datos compartidos, las piezas individuales de datos pueden
ser compartidas entre diferentes usuarios y cada uno de ellos puede tener acceso a la
misma pieza de datos incluso con nes distintos.
Una determinada base de datos ser percibida de muchas formas diferentes por
los distintos usuarios. De hecho, aun cuando dos usuarios tengan la misma porcin
de la base de datos, su visin de dicha parte podra diferir considerablemente.
Hardware
Los componentes de hardware del sistema son bsicamente:
Los volmenes de almacenamiento secundario principalmente discos mag-
nticos que se emplean para contener los datos almacenados, junto con los
dispositivos asociados de E/S (unidades de disco, etc.), los controladores de
dispositivos, los canales de E/S, entre otros, y,

7 Toda aplicacin web que utilice un sistema de base de datos para el almacenamiento y recuperacin de la informa-
cin, obliga a que este ltimo sea un sistema multiusuario, ya que mltiples usuarios podrn interactuar simultnea-
mente dada la naturaleza distribuida de Internet.

22
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
los procesadores de hardware y la memoria principal asociada usados para
apoyar la ejecucin del software del sistema de base de datos.
Software
Entre la base de datos fsica es decir, los datos como estn almacenados fsicamen-
te y los usuarios del sistema, hay una capa de software conocida como servidor
de base de datos o ms comnmente como sistema gestor de base de datos 8
(SGBD). Todas las solicitudes de acceso a la base de datos son procesadas por el
SGBD; las operaciones de insercin, modicacin y eliminacin de datos en la base
de datos (junto con otras muchas funcionalidades) son caractersticas que propor-
ciona el SGBD. Por lo tanto, una de las funciones principales que ofrece el SGBD
consiste en ocultar a los usuarios de la base de datos los deta)es a nivel de hardware, propor-
cionando as, una independencia total de la implementacin de los datos y de la plataforma
hardware sobre la que stos se asientan. En otras palabras, el SGBD ofrece a los usuarios
una percepcin de la base de datos que est, en cierto modo, por encina del nivel
del hardware y que maneja las operaciones del usuario expresadas en trminos de un
nivel de percepcin ms alto.
Todo SGBD dispone de algn mecanismo para manipular la informacin de la
base de datos normalmente basado en algn lenguaje de consulta de alto nivel. El
Lenguaje de Consulta Estructurado (Structured Query Language, SQL) es un lenguaje
declarativo de acceso a bases de datos relacionales que permite especicar diversos
tipos de operaciones sobre las mismas. Ana caractersticas del lgebra y el clculo
relacional permitiendo lanzar consultas con el n de recuperar informacin de inte-
rs de una base de datos, de una forma sencilla9.
El SGBD es el componente software ms importante del sistema en general,
aunque no es el nico. Existen tambin otros componentes como bibliotecas de
funciones adicionales, utileras, herramientas de desarrollo de aplicaciones, genera-
dores de informes y (el ms importante) el administrador de transacciones.
En muchas ocasiones, utilizamos el trmino SGBD ( DBMS en ingls), para
referirnos en forma genrica a un producto determinado de algn fabricante; por
ejemplo, el producto Oracle fabricado por Oracle Corporation, o tambin, el sis-
tema gestor de bases de datos basado en software libre MySQL fabricado por
MySQL AB.

Usuarios
Consideramos tres grandes clases de usuarios:
En primer lugar hay programadores de aplicaciones. Son los responsables
de escribir los programa de aplicacin de base de datos en algn lenguaje de
programacin como COBOL, C/C++, Java o algn lenguaje de alto nivel de

8 En ingls Data Base Management System, DBMS.

9El trmino lenguaje de consulta, a pesar de ser comn, no es muy preciso, ya que el verbo consultar en lenguaje
natural sugiere slo una recuperacin, mientras que los lenguajes de consulta por lo regular (aunque no siempre) ofre-
cen tambin actualizacin y otras muchas operaciones.

23
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
4GL10 . Estos programas acceden a la base de datos emitiendo la solicitud
apropiada al SGBD (por lo regular una instruccin SQL). Los programas en s
pueden ser aplicaciones convencionales por lotes o pueden ser aplicaciones en
lnea, cuyo propsito es permitir al usuario nal el acceso a la base de datos
desde una estacin de trabajo o terminal en lnea. Las aplicaciones ms mo-
dernas pertenecen a esta variedad11 .
En consecuencia, la segunda clase de usuarios son los usuarios nales, quie-
nes interactan con el sistema de estaciones de trabajo o terminales en lnea.
Un usuario nal puede acceder a la base de datos a travs de las aplicaciones
en lnea mencionadas en el apartado anterior, o bien puede usar una interfaz
proporcionada como parte integral del software del sistema gestor de base de
datos. La mayora de los SGBD incluyen por lo menos una de estas aplicacio-
nes integradas, digamos un procesador de lenguaje de consulta, mediante
el cual el usuario puede emitir solicitudes a la base de datos (tambin conoci-
das como instrucciones o comandos), como SELECT e INSERT, en forma
interactiva con el SGBD. El lenguaje SQL mencionado anteriormente es un
ejemplo tpico de un lenguaje de consulta de bases de datos.
El tercer tipo de usuario, es el administrador de base de datos o DBA12. Es
la persona que toma las decisiones de estrategia y poltica respecto a los datos
de la empresa y proporciona el apoyo tcnico necesario para implementar di-
chas decisiones. Por lo tanto, el DBA es el responsable del control general del
sistema al nivel tcnico. Entre las tareas del administrador de base de datos
podemos destacar las siguientes:
Denir el esquema conceptual: decidir exactamente qu informacin con-
tendr la base de datos 13; en otras palabras, identicar las entidades de inte-
rs para la empresa e identicar la informacin que hay que registrar acerca
de dichas entidades. Por lo regular a este proceso se le conoce como diseo
lgico en ocasiones conceptual de la base de datos.
Denir el esquema interno: decidir la forma en que van a ser representados
los datos en la base de datos almacenada. A este proceso se le conoce co-
mnmente como diseo fsico de la base de datos. El diseo fsico deber
realizar posteriormente al diseo lgico y nunca al contrario.
Establecer un enlace con los usuarios asegurando que los datos necesarios
estn disponibles.
Denir las restricciones de seguridad y de integridad de los datos.

10Lenguaje de cuarta generacin (4GL), el usuario no debe definir los pasos a seguir en un programa para realizar una
determinada tarea, tan slo debe definir una serie de parmetros que estas herramientas (4GL) utilizarn para generar
un programa de aplicacin.

11 Las herramientas de e-learning actuales (como por ejemplo, moodle) son un tipo de aplicacin en lnea para la ges-
tin de cursos en un entorno distribuido y de colaboracin como es Internet. Normalmente disponen de una interfaz
web programada para que el usuario realice todas las tareas afines a la herramienta de forma transparente al sistema
gestor de base de datos en el que se guardan los datos.

12 DBA, del ingls Data Base Administrator.

13Una herramienta de e-learning, destinada a la gestin de cursos, tendr en su base de datos informacin sobre los
alumnos, cursos, lecciones, cuestionarios de evaluacin, documentos de inters, foros, mensajes, etc.

24
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Denir las polticas salvaguarda y recuperacin de la informacin.
Supervisar el rendimiento y responder a los requerimientos cambiantes co-
mo consecuencia del aumento de la informacin o deterioro del sistema.

Definicin
Es comn referirse a los datos de la base de datos como persistentes. En forma
ms precisa, decimos que los datos de la base de datos persisten debido en primer
lugar a que una vez aceptados por el SGBD para entrar en la base de datos, en lo
sucesivo slo pueden ser removidos de la base de datos por alguna solicitud explcita
al SGBD, no como un mero efecto lateral de (por ejemplo) algn programa que ter-
mina su ejecucin. Esta nocin de persistencia nos permite dar una denicin ms
precisa del trmino base de datos: una base de datos es un conjunto de datos per-
sistente que es utilizado por los sistemas de aplicacin de alguna organizacin o
empresa dada.
Algunos ejemplos de datos persistentes son: datos de produccin, datos conta-
bles, datos de pacientes, datos de planeacin, datos de estudiantes, datos de cursos,
datos de lecciones, datos de cuestionarios, datos de exmenes, etctera.

Caractersticas
Desde el punto de vista de un sistema monousuario y en comparacin los sistemas
de archivo manual, las bases de datos son ventajosas en muchos aspectos:
Compactan mucho la informacin sin necesidad de archivos en papel volumi-
nosos.
Las mquinas recuperan y almacenan la informacin ms rpidamente que un
humano. En particular, las consultas especcas pueden ser respondidas con
rapidez, sin necesidad de bsquedas manuales o visuales que llevan tiempo.
El trabajo es menos laborioso adems de que las mquinas siempre realizan
mejor las tareas mecnicas.
En el momento que lo necesitemos, tendremos a nuestra disposicin informa-
cin precisa y actualizada.
Si el entorno es multiusuario y la base de datos es ms grande y compleja los
benecios son mucho mayores. Es en este entorno, en el que se ofrece un valor aa-
dido, ya que la empresa ofrece a sus usuarios un sistema centralizado para el control
de sus datos.

Funcionalidades
Puede decirse, que la funcionalidad principal de un sistema de base de datos es la de
compartir la informacin entre usuarios y entre las aplicaciones existentes. Ade-
ms de que sea posible desarrollar nuevas aplicaciones para operar sobre los mismos
datos.
Tambin pueden mencionarse las siguientes funcionalidades:
Reducir la redundancia: En sistemas que no son de bases de datos, cada
aplicacin tiene sus propios archivos exclusivos. A menudo este hecho puede
conducir a una redundancia considerable de los datos almacenado, con el con-
secuente desperdicio de espacio de almacenamiento. Los sistemas de base de

25
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
datos permiten integrar y eliminar as la redundancia, en tanto en cuanto el
administrador sea consciente de los requerimientos de datos de ambas aplica-
ciones.
Evitar la inconsistencia: En ciertas ocasiones y desde el punto de vista se-
mntico del sistema de informacin, la actualizacin de ciertos datos de la
base de datos implican ms modicaciones. Si alguna de estas modicaciones
no se llevara a cabo, decimos que la base de datos es inconsistente. Resulta
claro que una base de datos en un estado inconsistente es capaz de proporcio-
nar a sus usuarios informacin incorrecta. Los sistemas de bases de datos dis-
ponen de mecanismos para evitar la inconsistencia, entre ellos por ejemplo: la
propagacin de actualizaciones.
Manejo adecuado de transacciones: Una transaccin es una unidad de
trabajo lgica, que por lo regular comprende varias operaciones. El ejemplo
ms comn es el de una transferencia bancaria. Es claro que aqu se necesitan
dos actualizaciones, una para retirar dinero de una cuenta A y la otra para de-
positarlos en otra cuenta B. Si el usuario declara que las dos actualizaciones
son parte de la misma transaccin, entonces el sistema puede garantizar que se
hagan ambas o ninguna de ellas, an cuando el sistema fallara a la mitad del
proceso. A esta caracterstica de las transacciones se la conoce por el nombre
de atomicidad14 . Para facilitar esta funcionalidad, los sistemas de bases de da-
tos se apoyan en dos operaciones bsicas:
COMMIT: para comprometer una transaccin que ha nalizado correcta-
mente.
ROLLBACK: para deshacer completamente una transaccin que ha fallado.
Mantener la integridad: El problema de la integridad es el de asegurar que
los datos de la base de datos estn correctos. La inconsistencia entre dos en-
tradas que pretender representar el mismo hecho es un ejemplo de la falta de
integridad. No obstante, an cuando no exista redundancia, la base de datos
podra seguir conteniendo informacin incorrecta. El control centralizado de
la base de datos puede ayudar a evitar estos problemas (en la medida de lo po-
sible) permitiendo que el administrador de datos dena y el DBA implemente
las restricciones de integridad (o reglas de negocio) que sern vericadas siem-
pre que se realice una operacin de actualizacin.
Mantener la seguridad: Al tener completa jurisdiccin sobre la base de da-
tos puede asegurar que el nico medio de acceso a la base de datos sea a travs
de los canales adecuados y por lo tanto puede denir las reglas o restriccio-
nes de seguridad que sern vericadas siempre que se intente acceder a da-
tos sensibles. Es posible denir diferentes restricciones para cada tipo de ac-
ceso (recuperacin, insercin, eliminacin, etctera) para cada parte de la in-
formacin de la base de datos.
Equilibrar los requerimientos: Al conocer los requerimientos generales de
la empresa, el DBA puede estructurar los sistemas de manera que ofrezcan un
servicio general que sea el mejor para la empresa. Por ejemplo elegir una re-

14 La transaccin se hace en su totalidad o nada.

26
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
presentacin fsica de los datos almacenados que proporcione un acceso rpi-
do para las aplicaciones ms importantes.
Cumplir los estndares: Es conveniente estandarizar la representacin de
datos, en particular como un mecanismo auxiliar para el intercambio de datos
o para el movimiento de datos entre sistemas. En forma similar, los estndares
en la asignacin de nombres y en la documentacin de los datos tambin son
muy convenientes.
Todas estas funcionalidades se convierten en ventajas. La mayora de ellas resul-
tan bastante obvias. Sin embargo, es necesario agregar a la lista un punto que podra
no ser tan obvio, aunque de hecho est implcito en otro; se trata de proporcionar la
independencia a los datos.

Independencia de los datos


Existen dos clases de independencia de los datos, fsica y lgica.
Las aplicaciones implementadas en sistemas ms antiguos (los sistemas anterio-
res a los relacionales o incluso anteriores a las bases de datos) tienden a ser depen-
dientes de los datos. Esto signica que la forma en que fsicamente son representa-
dos los datos en el almacenamiento secundario y la tcnica empleada para su acceso,
son dictadas por los requerimientos de la aplicacin en consideracin y ms an,
signica que el conocimiento de esa representacin fsica y esa tcnica de acceso
estn integrados dentro del cdigo de la aplicacin. Con este planteamiento, resulta
imposible modicar la representacin fsica (la forma en que los datos estn fsica-
mente representados en el almacenamiento) o la tcnica de acceso (la forma en que
son accedidos fsicamente) sin afectar a la aplicacin de manera drstica.
Sin embargo, en un sistema de base de datos, sera un inconveniente permitir
que las aplicaciones fuesen dependientes de los datos en el sentido descrito; por lo
menos por las dos razones siguientes:
Las aplicaciones requerirn visiones diferentes de los mismos datos.
El DBA debe tener la libertad de cambiar las representaciones fsicas o la tc-
nica de acceso en respuesta a los requerimientos cambiantes, sin tener que
modicar las aplicaciones existentes.
De aqu que dar independencia a los datos sea un objetivo principal de los sis-
temas de bases de datos.

Arquitectura de los sistemas de bases de datos


Niveles
La arquitectura ANSI/SPARC propone una divisin en tres niveles, conocidos co-
mo interno, conceptual y externo respectivamente. Hablando en trminos genera-
les:
El nivel interno (tambin conocido como nivel fsico) es el que est ms cer-
ca del almacenamiento fsico; es decir, es el que tiene que ver con la forma en
que los datos estn almacenados fsicamente. La vista interna es una represen-
tacin de bajo nivel de toda la base de datos y consiste en muchas ocurrencias
de cada uno de los diversos tipos de registros internos.

27
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
El nivel externo (tambin conocido como nivel lgico de usuario) es el ms
prximo a los usuarios; es decir, el que tiene que ver con la forma en que los
usuarios individuales ven los datos. Recordemos que un usuario puede ser un
programador de aplicaciones o bien un usuario nal con cualquier grado de
sosticacin. La vista externa es el contenido de una base de datos como lo ve
un usuario en particular.
El nivel conceptual (tambin conocido como el nivel lgico de la comuni-
dad, o en ocasiones slo como el nivel lgico, sin calicar) es un nivel interme-
dio entre los otros dos. La vista conceptual es una representacin de todo el
contenido de la informacin de la base de datos en una forma un poco abstrac-
ta comparada con la forma en la que por lo regular se almacenan los datos fsi-
camente.
Observe que el nivel externo tiene que ver con las percepciones de usuarios in-
dividuales, mientras que el nivel conceptual tiene que ver con la percepcin de una
comunidad de usuarios. En otras palabras, habr muchas vistas externas distintas,
cada una consistente en una representacin ms o menos abstracta de alguna parte
de la base de datos total, y habr precisamente una vista conceptual que del mis-
mo modo consiste en una representacin abstracta de la base de datos en su totali-
dad.

Nivel externo
(vista de usuarios individua-
les)

Nivel conceptual
(vista de la comunidad de
usuarios)

Nivel interno
(vista de almacenamiento)

Fig. 9: Los tres niveles de la arquitectura.

Transformaciones
Adems de los tres niveles como tales, la arquitectura comprende ciertas transfor-
maciones; en general, una transformacin conceptual/interna y varias transforma-
ciones externas/conceptual:
La transformacin conceptual/interna dene la correspondencia entre la vista
conceptual y la base de datos almacenada, y especica cmo estn representa-
dos los registros y campos conceptuales en el nivel interno. Si se modica la
estructura de la base de datos, es decir, si se hace un cambio a la denicin de
la estructura de almacenamiento, entonces por consiguiente ser necesario
modicar la transformacin conceptual/interna, de manera que el esquema
conceptual pueda permanecer invariable.

28
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
La transformacin externa/conceptual dene la correspondencia entre una
vista externa en particular y la vista conceptual. En general, las diferencias que
puedan existir entre estos dos niveles son anlogas a aquellas que puedan exis-
tir entre la vista conceptual y la base de datos almacenada.
As como la transformacin conceptual/interna es la clave para la independencia
fsica de los datos, tambin las transformaciones externas/conceptual son la clave
para la independencia lgica de los datos. Un sistema proporciona la independen-
cia fsica de los datos si los usuarios y los programas de usuario son inmunes a los
cambios en la estructura fsica de la base de datos almacenada. De igual manera un
sistema proporciona la independencia lgica de los datos si los usuarios y los pro-
gramas de usuario tambin son inmunes a los cambios en la estructura lgica de la
base de datos (lo que signica cambios al nivel conceptual o lgico de la comuni-
dad).

29
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Servidores Web
Introduccin
La World Wide Web es el servicio multimedia ms extendido de Internet. Fue desa-
rrollado en el CERN (Centre Europen de la Recherche Nuclaire, Suiza) en 1992 y desde
entonces se ha extendido hasta ser uno de los servicios ms populares de Internet.
Cuando hablamos de Internet, en la mayora de las ocasiones nos referimos al
servicio Web, pero Internet est compuesto por ms servicios: correo electrnico,
noticias, transferencia de cheros, terminal remoto, etc. La Web es uno de los m-
todos ms importantes de comunicacin que existe en Internet. Consiste en un sis-
tema de informacin basado en hipertexto (texto que contiene enlaces a otras
secciones del documento o a otros documentos). La informacin reside en forma de
Pginas Web en computadores que se denominan Servidores Web. Estas mqui-
nas estn distribuidas por todo el mundo.
Un Servidor Web es un programa que implementa el protocolo de comunica-
cin HTTP (HyperText Transfer Protocol). Este protocolo est diseado para transfe-
rir lo que llamamos hipertextos, Pginas Web o pginas HTML (HyperText Markup
Language): textos complejos con enlaces, guras, formularios, botones y objetos in-
crustados como animaciones o reproductores de sonidos. Una de las capacidades
ms interesantes de las Pginas Web es la creacin de hipervnculos, enlaces a
otras Pginas Web.
Hay que destacar el hecho de que la palabra Servidor Web identica tanto al
programa como a la mquina en la que dicho programa se ejecuta. Existe, por tanto,
cierta ambigedad en el trmino, aunque no ser difcil diferenciar a cul de los dos
nos referimos en cada caso.
Un Servidor Web se encarga de mantenerse a la espera de peticiones HTTP. Las
peticiones son solicitadas por un cliente HTTP, denominado tradicionalmente Na-
vegador. El Navegador, por tanto, realiza una peticin al servidor y ste le respon-
de con el contenido que el cliente solicita.
Para ofrecer el servicio Web clsico se suele disponer de aplicaciones web. Estas
aplicaciones son fragmentos de cdigo que se ejecutan cuando se realizan ciertas
peticiones o respuestas HTTP. Podemos distinguir dos tipos:
Aplicaciones en el lado del cliente: Estas aplicaciones se ejecutan en el
cliente a travs del propio Navegador. Por norma general, el cdigo de estas
aplicaciones viene dado en algn lenguaje de script, por lo que el Navegador
deber tener la capacidad para ejecutar dichos programas.
Aplicaciones en el lado del servidor: el Servidor Web ejecuta la aplicacin;
sta, una vez ejecutada, genera cierto cdigo HTML; el servidor toma este
cdigo recin creado y lo enva al cliente por medio del protocolo HTTP. Las
aplicaciones de servidor suelen ser la opcin ms utilizada para realizar aplica-
ciones Web, debido a que al ejecutarse en el servidor y no en la mquina del
cliente, ste no necesita ninguna capacidad adicional. As pues, cualquier
cliente con un Navegador Web bsico puede utilizar este tipo de aplicaciones.

30
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Arquitectura de la Web
La Web presenta una arquitectura cliente-servidor de forma que los proveedores de
informacin (Servidores Web) atienden las peticiones de los programas cliente
(normalmente Navegadores), que son manejados por el usuario nal.
La comunicacin cliente-servidor se hace mediante un lenguaje comn o proto-
colo15 denominado HTTP (HiperText Transfer Protocol). Los archivos que se transe-
ren son documentos de hipertexto codicados en lenguaje HTML (HyperText
Marked Language).

Clientes Web
El Cliente Web (Navegador o Browser ), es un programa con el que interacciona
el usuario para solicitar a un servidor Web el envo de elementos de informacin.
Este programa se encarga de acceder al servidor y solicitar las pginas siguiendo
el protocolo HTTP. El Cliente Web debe interpretar los documentos recibidos para
poder mostrrselos al usuario con el formato adecuado. Adems, cuando lo que se
recibe no es un documento de texto, sino un objeto multimedia no reconocido por
el Cliente Web, ste deber encargarse de activar una aplicacin externa capaz de
gestionarlo.
Este software del cliente, es de muy fcil manejo y suele integrar programas que
acceden a otros servicios de Internet como, por ejemplo, el correo electrnico.
El Navegador puede considerarse como una interfaz de usuario universal. Den-
tro de sus funciones estn: la peticin de las Pginas Web, la representacin ade-
cuada de sus contenidos y la gestin de los posibles errores que puedan producirse.
Algunos de los Navegadores ms conocidos son: Netscape, Internet Explorer,
Mozi)a, Mosaic, Opera y Lynx (Navegador en modo texto).
A modo de ejemplo, al teclear una direccin Web en nuestro Navegador, ste
realiza una peticin HTTP al servidor de dicha direccin. El servidor responde al
cliente enviando el cdigo HTML de la pgina solicitada; el cliente, una vez recibi-
do el cdigo, lo interpreta y lo muestra en pantalla. Como vemos con este ejemplo,
el cliente es el encargado de interpretar el cdigo HTML, es decir, de mostrar las
fuentes, los colores y la disposicin de los textos y objetos de la pgina; el servidor
tan slo se limita a transferir el cdigo de la pgina al cliente.
Servidores Web
El software servidor consiste en una aplicacin que permanentemente est a la es-
pera de peticiones de clientes, recoge dichas peticiones y proporciona la informa-
cin deseada a los clientes. El dilogo con los clientes se hace mediante el protocolo
HTTP. En cada Servidor Web existe un conjunto de directorios en los cuales se de-
posita toda la informacin que se desea hacer pblica y donde se depositan los do-
cumentos Web disponibles para los clientes.
Las Pginas Web disponibles en el servidor se estructuran en lo que llamamos
Sitios Web o WebSites (denominados por algunos servidores tambin como Con-

15Protocolo: conjunto de reglas que gobiernan el intercambio de datos entre entidades dentro de una red. Es el len-
guaje comn que utilizan los ordenadores para hablar y entenderse entre s. Existen muchos tipos de protocolos
cada uno con sus reglas bien definidas, como por ejemplo: FTP, POP3, SMTP, ICMP, etc.

31
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
textos). Un Sitio Web puede ser el trabajo de una persona, una empresa u otra orga-
nizacin y est tpicamente dedicada a algn tema particular o propsito. Un Servi-
dor Web puede dar servicio a varios Sitios Web (o a varios Contextos).
A las pginas de un Sitio Web se accede desde una pgina raz, llamada portada
o pgina de inicio, que normalmente reside en el mismo servidor fsico. Dependien-
do de la conguracin y del tipo de servidor sta pgina de inicio tendr un nombre
y extensin especco (normalmente index con extensin htm, html, jsp, , de-
pendiendo del lenguaje con el que est codicada).
Protocolo de comunicacin HTTP
El protocolo HTTP es el protocolo utilizado para la transferencia de Pginas Web.
ste es el protocolo con el que dialogan cliente y servidor y por medio del cual pue-
de transmitirse informacin de todo tipo: texto, grcos, vdeo, etc.
Una de las caractersticas del protocolo HTTP es que no es permanente, es
decir, cada operacin HTTP implica una conexin con el servidor, que es liberada al
trmino de la misma. Adems, carece de estado. Cada peticin de un cliente a un
servidor no es inuida por las transacciones anteriores. El servidor trata cada peti-
cin como una operacin totalmente independiente del resto.

Direccionamiento
Cuando un Cliente Web quiere acceder a un documento es necesario conocer: cul
es su nombre?, dnde est? y cmo se puede acceder a l?.
A cada pgina se le asigna una URL (Uniform Resource Locator), mecanismo con
el cual la Web asigna una direccin nica a cada uno de los recursos de informacin
localizado en cualquier lugar de Internet. Consiste en un cdigo que contiene la
identicacin del servicio, la direccin del servidor (se puede especicar hasta el
nmero de puerto), y, si es necesario, el directorio donde se encuentran los cheros
dentro del servidor. De esta forma se direccionan los recursos accesibles a travs de
un Navegador Web.
El formato general de una URL es el siguiente:
protocolo o servicio://direccin_de_la_mquina:puerto/directorio/chero

protocolo o servicio: especica el protocolo a utilizar para acceder al objeto


(en la web http).
direccin de la mquina y puerto16: identican la mquina y el puerto. La
direccin de la mquina se puede especicar tanto en formato numrico o
mediante su nombre de dominio. El campo que hace referencia al puerto pue-
de eliminarse si el servicio est en su puerto estndar (80).
el directorio o camino (path): Aqu se especica la localizacin del recurso
dentro del Servidor Web.

16Un puerto es una forma genrica de denominar a una interfaz por la cual diferentes tipos de datos pueden ser envia-
dos y recibidos ( comunicacin cliente servidor)

32
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Servidores Web
Funcionamiento de un Servidor Web
El proceso completo, desde que el usuario solicita una pgina hasta que el Cliente
Web se la muestra con el formato adecuado, es el siguiente:
1. El usuario anota en el Cliente Web la direccin de la pgina que desea consul-
tar.
2. El cliente establece la conexin con el Servidor Web.
3. El cliente solicita la pgina deseada.
4. El servidor busca la pgina que ha sido solicitada en su sistema de cheros, Si
la encuentra, la enva al cliente; en caso contrario, devuelve un cdigo de error.
5. El cliente interpreta los cdigos HTML y muestra la pgina al usuario.
6. Se cierra y libera la conexin.

Navegador

Red

SERVIDOR WEB

Sistema Operativo

Recursos

Programas
CGI Ficheros
Servlets

Bases de
Datos

Fig. 10: Interaccin entre un servidor Web y el resto del entorno.

La gura superior muestra la interaccin entre un Servidor Web y el resto del


entorno. El servidor es el responsable de proporcionar el acceso a los recursos soli-
citados que estn bajo el control del sistema operativo.
Estos recursos pueden ser:

33
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Estticos, como pginas HTML o texto.
Dinmicos, cuando la pgina solicitada no existe fsicamente, sino que se
crea en el momento de su peticin (p. Ej., combinando una plantilla de docu-
mento con los resultados de la consulta a una base de datos). En estos casos el
Servidor Web cede el control al denominado Servidor de Aplicaciones,
encargado de construir la pgina. Posteriormente se pasa al Servidor Web,
quien a su vez la enva al cliente.
Volviendo sobre el modelo de las aplicaciones cliente-servidor, se puede decir
que se sigue el denominado modelo de transacciones: el cliente realiza una peticin,
el servidor la atiende e inmediatamente se cierra la comunicacin. Las transacciones
son, por tanto, independientes, y no se mantiene una memoria entre las sucesivas
peticiones. Esto es un grave inconveniente para muchas aplicaciones en las cuales
esta memoria es fundamental, como por ejemplo las operaciones de compra a travs
de la Web. No obstante, existen mecanismos para resolver el problema, como el uso
de cookies 17 o de bases de datos o variables de sesin.
Otro aspecto importante es el hecho de que se establece una conexin inde-
pendiente para cada documento u objeto que se transere. Por tanto, si una pgina
contiene, por ejemplo, cuatro imgenes, se establecen cinco conexiones individua-
les: una para la pgina propiamente dicha y otras cuatro para las imgenes respecti-
vas.
Estructura del Servidor Web
La arquitectura habitual de un Servidor Web es la que divide al servidor en dos ca-
pas:
Capa servidor. Esta capa contiene cinco subsistemas, que son los responsa-
bles de implementar la funcionalidad de un Servidor Web.
Subsistema de recepcin: representa la primera lnea de ataque y su labor
consiste en esperar las peticiones HTTP de los clientes que llegan por la red.
Tambin, analiza las peticiones y determina las capacidades de los navegado-
res (tipo, compatibilidad, etc.). Este subsistema contiene la lgica necesaria
para manejar mltiples peticiones.
Analizador de peticiones: encargado de traducir la localizacin del recurso
de la red al nombre del archivo local. Por ejemplo, la solicitud del recurso
http://www.usal.es se traduce al chero local /var/www/webles/index.html.
Control de acceso: sirve para autenticar y permitir el acceso a un recurso
de informacin.
Manejador de recursos: este subsistema es el responsable de determinar el
tipo de recurso solicitado; lo ejecuta y genera la respuesta.
Registro de transaccin: se encarga de registrar todas las peticiones y su re-
sultado.

17 Una cookie es un fragmento de informacin que se almacena en el disco duro del visitante de una pgina web a
travs de su navegador, a peticin del servidor de la pgina

34
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red

Navegador

Recepcin

Analizador de Peticiones Registro de Transacciones

Control de Acceso Manejador de Recursos

Util Capa Abstracta del SO

Sistema Operativo

Subsistema Conexin de red Control deFlujo Dependencia

Fig. 11: Arquitectura de un servidor Web.

Capa soporte. Esta capa acta como una interfaz entre el sistema operativo
y el Servidor Web y, entre los propios subsistemas de la capa superior. Tiene
los subsistemas siguientes:
Util: contiene funciones que son utilizadas por el resto de subsistemas.
Capa abstracta del Sistema Operativo (OSAL):este subsistema encapsula el
funcionamiento especco del sistema operativo para facilitar la portabilidad
del Servidor Web a diferentes plataformas.
Informacin del Servidor Web
Las Pginas Web pueden consistir en archivos de texto esttico, Pgina Web Estti-
ca, o en una serie de archivos con cdigo que instruya al servidor cmo construir el
HTML para cada pgina que es solicitada, a esto se le conoce como Pgina Web
Dinmica.
Pginas Web estticas
Las pginas estticas generalmente usan la extensin de archivo htm o html.
HTML es un lenguaje de denicin de pginas sencillo y potente adems de porta-
ble a cualquier tipo de plataforma grca que permite combinar imgenes, textos,
enlaces y otros elementos. Las pginas HTML son archivos de texto plano que con-
tienen etiquetas para denir el aspecto de las pginas.

35
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
<HTML>
<HEAD><TITLE>Bienvenido</TITLE></
HEAD>
<BODY>
<CENTER>
<IMG SRC="home.gif" ALIGN=middle>
<P>Esta es mi <I>peque&ntilde;a</I>
p&aacute;gina personal. </P>
</CENTER>
</BODY>
</HTML>

Fig. 12: Pgina Web esttica.

Pginas Web dinmicas


Las pginas dinmicas usan extensiones que generalmente reejan el lenguaje o tec-
nologa que se utiliz para crear el cdigo, como php18 (Hypertext Preprocesor),
jsp (Java Server Pages), etc. En estos casos, el servidor debe estar congurado para
esperar y entender estas tecnologas. Es necesario utilizar, aparte del HTML, otros
lenguajes de programacin para ofrecer ese dinamismo, pero an as, el HTML si-
gue siendo la base del desarrollo de las Pginas Web. Existen dos tipos de pginas
dinmicas teniendo en cuenta donde se ejecutan:
Pginas dinmicas de Cliente
Se ejecutan en el cliente, por lo que toda la carga de procesamiento, de los efec-
tos y funcionalidades la soporta el Navegador.
Su principal desventaja es que dependen de las caractersticas del Navegador
(versiones). Como ventajas las pginas descargan al servidor de tareas, ofrecen
respuestas inmediatas a las acciones del usuario y permiten el uso recursos de la
mquina local.
El cdigo necesario para crear los efectos y funcionalidades se incluye dentro del
mismo archivo HTML y es llamado Script. El navegador interpreta los scripts de
cliente y los ejecuta para realizar los efectos y funcionalidades.
Los lenguajes de programacin utilizados son VBScript, JScript (ambos de Mi-
crosoft) y JavaScript (de Netscape), permiten realizar validaciones de datos reco-
gidos en las pginas antes de enviarlos al servidor y proporcionan un alto grado
de interaccin con el usuario dentro del documento.
Otras de las posibilidades de los navegadores es la gestin del llamado HTML
dinmico (Dinamic HTML, DHTML). ste est compuesto de HTML, hojas
de estilo en cascada, (Cascade Style Sheets, CSS), modelo de objetos y scripts de
programacin que permiten formatear y posicionar correctamente los distintos
elementos HTML de las Pginas Web, permitiendo un mayor control sobre la
visualizacin de las pginas.

18PHP es uno de los lenguajes de programacin ms utilizado por la comunidad de desarrolladores. Un ejemplo de ello
es la herramienta para la gestin de cursos en lnea Moodle.

36
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
En esta lnea, los navegadores han ido un poco ms all y permiten la visualiza-
cin de documentos XML (eXtensible Markup Language) despus de haber sido
transformados adecuadamente a HTML por las hojas de estilo extensibles (eX-
tensible Style Sheets, XSL). De esta manera se puede elegir visualizar ciertos
elementos y otros no, dependiendo de las circunstancias.
Adems, los navegadores permiten la ejecucin de aplicaciones dentro de los
documentos mostrados. Las dos posibilidades ms populares son la tecnologa
ActiveX y los applets Java.
Pginas dinmicas de Servidor
Se ejecutan en los servidores. Con ellas se puede hacer todo tipo de Aplicaciones
Web. Son tiles para procesar informacin situada en bases de datos localizadas
en el servidor Las pginas dinmicas del servidor se suelen escribir en el mismo
archivo HTML, mezclado con el cdigo HTML.
Las ventajas de este tipo de programacin son que el cliente no puede ver los
scripts, ya que se ejecutan y transforman en HTML antes de envirselos. Ade-
ms son independientes del Navegador utilizado, ya que el cdigo que reciben es
HTML.
Como desventajas se puede sealar que ser necesario un servidor ms potente
ya que toda la carga de procesamiento reside en l.
Para escribir pginas dinmicas de servidor existen diversos lenguajes. Entre
otros:
Common Gateway Interface (CGI) comnmente escritos en Lenguaje Perl
Active Server Pages (ASP)
Hipertext Preprocesor (PHP)
Java Server Pages (JSP).
Ejemplos
Bsicamente existen dos sistemas operativos dominantes en el mercado de los Ser-
vidores Web: Unix y Windows. Los Servidores Web ms utilizados son Apache Web
Server e Internet Information Server (IIS, fabricado por Microsoft) respectivamen-
te.
Otros servidores algo menos conocidos son los siguientes: 4D WebSTAR,
AOLserver, BadBlue, Baikonur Web App Server, Covalent Enterprise Ready Server,
ESAWEB, GoAhead WebServer, Hawkeye, iTools, Java Server, Jigsaw, RapidSite,
RomPager Embedded Web Server, Roxen WebServer, Sambar Server, Savant, Ser-
vertec, Shadow Web Server, SimpleServer:WWW, Sun Java System Web Server, Tcl
Web Server, URL Live!, Viking, vqServer, WN, WebBase, Xitami y Zeus Web Ser-
ver.
Existen otros servidores, ms simples pero ms rpidos, son lighttpd y thttpd.

Apache Web Server


El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la
Apache Software Foundation. Tiene amplia aceptacin en la red siendo el servidor
HTTP del 70% de los Sitios Web en el mundo y creciendo an su cuota de merca-
do. Es software libre cuya licencia te permite hacer lo que quieras con el cdigo

37
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
fuente siempre que les reconozcas su trabajo. La popularidad de este software li-
bre, grandemente reconocido en muchos mbitos empresariales y tecnolgicos, vie-
ne dada por sus caractersticas :
Apache es un Servidor Web potente y exible.
Es independiente de la plataforma, corre en una multitud de Sistemas Opera-
tivos, lo que lo hace prcticamente universal.
Apache es una tecnologa gratuita de cdigo fuente abierto. El hecho de ser
gratuita es importante pero no tanto como que se trate de cdigo fuente
abierto. Esto le da una transparencia a este software de manera que si quere-
mos ver que es lo que estamos instalando como servidor , lo podemos saber,
sin ningn secreto, sin ninguna puerta trasera ;).
Permite Autenticacin de diferentes tipos, por ejemplo, permite el uso de ba-
ses de datos para la autenticacin de usuarios. De esta forma se puede restrin-
gir el acceso a determinadas pginas de un sitio web de una forma sencilla y de
fcil mantenimiento.
Apache es un servidor altamente congurable de diseo modular. Es muy sen-
cillo ampliar las capacidades del Servidor Web Apache. Actualmente existen
muchos mdulos para Apache que son adaptables a este, y estn ah para que
los instalemos cuando los necesitemos. Otra cosa importante es que cualquie-
ra que posea una experiencia en la programacin del lenguaje C o Perl puede
escribir un modulo para realizar una funcin determinada. Este diseo permite
a los administradores de Sitios Web elegir que caractersticas van a ser inclui-
das en el servidor seleccionando que mdulos se van a cargar, ya sea al compi-
lar o al ejecutar el servidor (por ejemplo el mdulo PHP en la versin 2 y pos-
teriores de Apache).
Apache permite la creacin de Sitios Web Dinmicos mediante:
El uso de CGIs.
El uso de Server Side Includes (SSI).
El uso de lenguajes de Scripting como PHP, javascript, Python.
El uso de Java y pginas jsp.
Apache te permite personalizar la respuesta ante los posibles errores que se
puedan dar en el servidor. Es posible congurar Apache para que ejecute un
determinado script cuando ocurra un error en concreto.
Tiene una alta congurabilidad en la creacin y gestin de logs. Apache permi-
te la creacin de cheros de log a medida del administrador, de este modo
puedes tener un mayor control sobre lo que sucede en tu servidor . Apache
utiliza el formato Common Log Format (CLF) para la generacin de los logs de
error. Este formato es usado por varios Servidores Web y existen herramientas
para el anlisis de cheros con este formato
Tiene gran escalabilidad porque se pueden extender las caractersticas de Apa-
che hasta donde nuestra imaginacin y conocimientos lleguen debido a que
Apache soporta Dinamic Shared Object (DSO). Gracias a ello se pueden cons-
truir mdulos que le den nuevas funcionalidades que son cargadas en tiempos
de ejecucin.

38
Experto en eLearning
Tecnologas y Mtodos
de Formacin en Red
Apache nicamente fue criticado por la falta de una interfaz grca que ayude en su
conguracin.
Internet Information Server
IIS slo funciona bajo servidores Microsoft. Debe ser usado bajo licencia, esto es,
hay que pagar por l, con esto te ofrecen un servicio tcnico y cierto tipo de garan-
tas, como soporte ante fallos de seguridad y funcionamiento, disponiendo de par-
ches con cierta tranquilidad.
Originalmente era parte de un paquete de opciones de Windows NT. Poste-
riormente se fue integrando en otros sistemas operativos de Microsoft destinados a
ofrecer servicios, como Windows 2000 o 2003 Server. El Servidor Web IIS se basa
en varios mdulos que le dan capacidad para procesar distintos tipos de pginas, por
ejemplo Microsoft incluye los de Active Server Pages (ASP) y ASP.NET. Tambin
pueden ser incluidos los de otros fabricantes, como PHP o Perl.
IIS es ligeramente ms intuitivo que Apache, por el hecho de disponer de una
interfaz grca para su conguracin, pero su integracin total con el sistema hace
difcil distinguir qu opciones afectan al servidor y cules al sistema operativo. Por
otro lado, requiere de una gran cantidad de espacio de almacenamiento y es necesa-
rio tener la licencia adecuada para su uso.

39