sistemas operativos, bases de datos, servidor web

42
Sistemas operativos, bases de datos y servidores Web Susana Álvarez Rosado Sergio Bravo Martín Iván Álvarez Navia Departamento de Informática y Automática Universidad de Salamanca [email protected] [email protected] [email protected] Febrero 2007 Experto en eLearning Tecnologías y Métodos de Formación en Red 1

Upload: doanthuan

Post on 10-Dec-2016

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sistemas Operativos, Bases de Datos, Servidor Web

Sistemas operativos, bases de datos y servidores Web

Susana Álvarez RosadoSergio Bravo MartínIván Álvarez Navia

Departamento de Informática y AutomáticaUniversidad de Salamanca

[email protected]@usal.es

[email protected]

Febrero 2007

Experto en eLearningTecnologías y Métodos de Formación en Red

1

Page 2: Sistemas Operativos, Bases de Datos, Servidor Web

Índice..........................................................................................................Introducción 1

.................................................................................Algunas conceptos iniciales 2...........................................................................................El Sistema Operativo 4

................................................................................Definición 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 difusión 12.........................................................................................................MS Windows 12

....................................................................................................................UNIX 14..........................................................................Funciones de un Sistema Operativo 17

...........................................................................Módulos de un Sistema Operativo 18...............................................................................................................El Núcleo 18

..............................................................................................Gestor de Memoria 19.......................................................................................................Gestor de E/S 20

..............................................................................................Gestor de Ficheros 20.............................................................Asignación de Recursos y Planificación 20

..............................................................................................................Protección 21....................................................................Interfaz Usuario/Sistema Operativo 21

...............................................................................El gestor de Bases de Datos 22...............................................................................................................Introducción 22.............................................................................................................Componentes 22

.....................................................................................................................Datos 22...............................................................................................................Hardware 22

................................................................................................................Software 23.................................................................................................................Usuarios 23

...................................................................................................................Definición 25............................................................................................................Características 25..........................................................................................................Funcionalidades 25

.......................................................................................Independencia de los datos 27.......................................................Arquitectura de los sistemas de bases de datos 27

...................................................................................................................Niveles 27.................................................................................................Transformaciones 28

...................................................................................................Servidores Web 30...............................................................................................................Introducción 30

Experto en eLearningTecnologías y Métodos de Formación en Red

2

Page 3: Sistemas Operativos, Bases de Datos, Servidor Web

..............................................................................................Arquitectura de la Web 31..........................................................................................................Clientes Web 31

......................................................................................................Servidores Web 31....................................................................Protocolo de comunicación HTTP 32

.................................................................................................Direccionamiento 32...........................................................................................................Servidores Web 33

..................................................................Funcionamiento de un Servidor Web 33...............................................................................Estructura del Servidor Web 34

............................................................................Información del Servidor Web 35................................................................................................................Ejemplos 37

..............................................................................................Apache Web Server 37................................................................................Internet Information Server 39

Experto en eLearningTecnologías y Métodos de Formación en Red

3

Page 4: Sistemas Operativos, Bases de Datos, Servidor Web

IntroducciónEn este capítulo se presenta una visión general de los aspectos tecnológicos 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 informáticas, si resulta evidente que consti-tuyen el esqueleto básico sobre el que se construye. Por ello resulta necesario com-prender el funcionamiento de las herramientas que más habitualmente se encuen-tran en este tipo de sistemas. La Fig. 1 muestra el esquema simplificado de funcio-namiento de un sistema e-learning típico.

PáginasHTML generadas

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

Aplicación(PHP, Perl, Java,...)

Servidor Web(Apache, ...)

Gestor Base de Datos(MySQL, PosgresSQL, ...)

CódigoSQL

Datos

Internet

Navegador WWW(MS Internet Explorer,

Firefox, ...)

SolicitudpáginasHTML

Generación dinámica páginas HTML

Solicitud páginasHTML

EnvíopáginasHTML

Fig. 1: Esquema básico de funcionamiento sistemas e-Learning

Un usuario, el estudiante, utiliza un navegador Web para conectar con el siste-ma. Básicamente lo que hace el navegador es solicitar a un servidor Web una página HTML (HyperText Markup Language, lenguaje de marcas hipertextuales), y éste res-ponde enviando la página solicitada. Entonces el navegador se encarga de mostrarla correctamente al usuario. Sin embargo, el aspecto más relevante de este tipo de sis-temas es que la página enviada no es estática, es decir, no existía tal cual se envía, sino que se genera dinámicamente en función de la solicitud realizada y los conteni-dos a enviar, dicha respuesta está adaptada a la petición realizada y al contexto de navegación. El elemento encargado de generar la página es una aplicación Web, ge-neralmente escrita algún lenguaje como PHP, Java, ..., y que siguiendo unas pautas claramente establecidas, plantillas y tomando información necesaria construye la página solicitada y se la envía al Servidor Web. Generalmente, esta aplicación preci-sa información almacenada en un gestor de base de datos, para ello realiza una peti-ción de dicha información mediante código SQL (Structured Query Language, lengua-je de consulta estructurado) al citado gestor y éste responde enviando los datos soli-citados a la aplicación.

Experto en eLearningTecnologías y Métodos de Formación en Red

1

Page 5: Sistemas Operativos, Bases de Datos, Servidor Web

Como se puede apreciar las herramientas informáticas que se encuentran invo-lucradas en la construcción de un sistema e-learning, según la Fig 1, son cuatro: el servidor Web, la aplicación Web (realmente es el sistema e-learning propiamente dicho al ser la responsable de implementar la lógica 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 capítulo se realiza una descripción de estas herramientas. Se comenzará con una definición de conceptos básicos, como informática, hardware y software. Y a continuación se centrará en aquellas que están más directamente relacionadas con un sistema e-Learning según la descripción anterior: sistema operativo, gestor de base de datos y servidor Web. Este software constituye el núcleo fundamental sobre el que se puede construir un sistema de este tipo, aunque no único. Otro tipo de tecnologías como lenguajes de programación, scripting, lenguajes de marcado, etc. constituyen herramientas poderosas también involucradas en esta tarea.

Algunas conceptos inicialesEl término informática es un vocablo que se deriva de la palabra francesa “informa-tique”, formada por la contracción de otras dos palabras información y automática.

Se puede definir informática como “el conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores”.

Otra definición de informática puede ser “el campo de conocimiento que abarca todos los aspectos del diseño y uso de los computadores” [Prieto et al., 2002].

Existen otros términos para referirse a la informática, entre los cuales cabe des-tacar ciencia de la computación o ciencia de los computadores ya que es la traduc-ción del término inglés Computer Science, el cual se utiliza con asiduidad en la biblio-grafía anglosajona para referirse a la informática.

Si el objetivo final de la informática es el procesamiento automático de la in-formación, se necesita la máquina capaz de realizar dicho tratamiento, esto es el ordenador o computador.

Definiciones de ordenador que pueden encontrarse en la bibliografía son:

• “Todo aparato o máquina destinada a procesar información, entendiéndose por proceso las sucesivas fases, manipulaciones o transformaciones que su%e la información para re-solver un problema determinado” .

• “Máquina capaz de aceptar unos datos de entrada, efectuar con e)os operaciones lógicas y aritméticas, y proporcionar la información resultante a través de un medio de salida; todo e)o sin intervención de un operador humano y bajo el control de un programa de instrucciones previamente almacenado en el propio ordenador” .

• “Máquina electrónica digital para el tratamiento de la información”.

Respecto a esta última definición, aunque escueta, conviene hacer un repaso por el significado de cada uno de los términos que la componen. Así, la palabra elec-trónica implica que un ordenador se construye usando componentes electrónicos de estado sólido, conocidos por circuitos integrados, o más comúnmente por chips. La palabra digital hace referencia a que los ordenadores trabajan con datos en formato

Experto en eLearningTecnologías y Métodos de Formación en Red

2

Page 6: Sistemas Operativos, Bases de Datos, Servidor Web

digital; es decir, en códigos que representan las letras o los dígitos de los números. Cualquier otro tipo de datos, como puedan ser gráficos o sonido, se almacena tam-bién en formato digital. El formato digital significa 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 físicos que sólo pueden en-tender dos estados. El término tratamiento de la información 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 máquina hace referencia a que los or-denadores están en la misma línea de sucesión que otras máquinas menos sofistica-das y, como una máquina que es, puede funcionar bien o mal, pero no es infalible

Cualquier ordenador se apoya en dos pilares básicos que lo definen en sí mismo y le dan sentido a su existencia. Estos dos pilares son el soporte físico y el soporte lógico.

El soporte físico, más conocido por hardware, es la máquina en sí, la parte física y tangible de un ordenador. Así pues, puede definirse el hardware como “el conjunto de dispositivos físicos (cables, armarios...) y circuitos electrónicos (tarjetas de red, controladoras, circuitos integrados...) que constituyen un ordenador”.

El soporte lógico, que usualmente es conocido con el término software, es la parte que permite la explotación del hardware. El software se puede definir 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 físicos al ponerlos en explotación.

Los programas que constituyen el software de un ordenador se pueden agrupar en:

• Software de control o sistema de explotación

Es el software encargado de controlar el funcionamiento de los programas en ejecución, administrando los recursos hardware y facilitando la utilización del ordenador de la forma más eficiente posible. Dentro de esta categoría se en-cuentran:

• El sistema operativo• El interprete de órdenes• El software de diagnóstico y mantenimiento

• Utilidades

Conjunto de programas de servicio que, en cierta medida, se pueden conside-rar como una extensión del sistema operativo. Incluye programas como edi-tores de texto, traductores (compiladores, interpretes) y cargadores útiles en la creación de programas software por parte de los programadores y desarro-lladores. Otro tipo de programas son: utilidades para la compresión de datos, compactadores de discos, copias de seguridad, recuperación de datos, antivi-rus, ...

• Software de aplicación

Son todos aquellos programas relacionados con alguna aplicación específica como pueden ser:

Experto en eLearningTecnologías y Métodos de Formación en Red

3

Page 7: Sistemas Operativos, Bases de Datos, Servidor Web

• procesadores de texto (MS Word, OpenOffice, ...), • programas para resolver problemas estadísticos (SPSS),

• cálculo matemático (MATEMÁTICA, MATLAB), • gestores de bases de datos (MySQL, PostgresSQL, MS ACCESS, ORA-

CLE, ...), • hojas de cálculo (MS Excel, OpenOffice), • agendas electrónicas y gestores de correo electrónico (MS Outlook,

Evolution), • navegadores Web (MS Ineternet Explorer, Firefox, Safari, Opera, ...), • mensajería (MSN, YAHOO, GTALK, ...)

A la vista de las definiciones de software y hardware puede parecer que son dos conceptos claramente delimitados, pero esta frontera se diluye con el concepto de firmware, que se puede definir como “el conjunto de microprogramas empotrados en memorias de sólo lectura y destinados a resolver un proceso o problema particu-lar y frecuente”. Por lo tanto el firmware es un soporte para programas que no se pueden alterar, siendo un estadio intermedio entre hardware y software.

El Sistema OperativoUn Sistema Operativo es un programa o conjunto de programas que actúa 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 aplicación.

Los dos objetivos fundamentales son:

• Eficiencia: Un sistema permite que se utilicen los recursos de forma eficiente• Comodidad o facilidad de uso: Un sistema operativo hace que un computador

sea más fácil y cómodo de usar

Estos objetivos no son fácilmente compatibles, si se consiguen, se logra un buen sistema operativo. En los sistemas operativos modernos el objetivo fundamental es gestionar y administrar eficientemente los recursos hardware, permitiendo que se ejecuten concurrentemente varios programas, sin que haya conflictos en el acceso de cada uno de ellos a cada uno de los recursos que necesite, y sin que ningún pro-grama monopolice alguno de ellos.

Definición de Sistema operativoSe puede definir 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 eficientemente.

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 periféricos de entrada/salida. Por ejemplo, si varios usuarios están utilizando la misma computadora, han de asig-narse los recursos y evitar los conflictos 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. Además de esta fun-ción de asignar los recursos a cada programa, el sistema operativo se encarga de

Experto en eLearningTecnologías y Métodos de Formación en Red

4

Page 8: Sistemas Operativos, Bases de Datos, Servidor Web

contabilizarlos y de la seguridad (de que un usuario no pueda acceder sin autoriza-ción a la información 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 máquina que establezcan un diálogo entre las unidades centrales y el periférico, enviando o captando el dato de salida o de entrada, respectivamente. Estas instrucciones dependen considerablemente de las características concretas del periférico. Si se trata, por ejemplo, de una unidad de disco, hay que considerar el ancho de los buses, el tamaño de su memoria intermedia, el arranque (y parada) de los motores de la unidad, el código identificador de la posición a donde hay que ac-ceder, etc. Por otra parte, estas instrucciones u operaciones son comunes para gra-bar o leer cual tipo de información (programas o datos), sea cual sea su naturaleza. El sistema operativo, con objetivo de facilitar el trabajo de los programadores, con-tiene módulos de gestión de entradas/salidas que evitan a los usuarios tener que in-cluir esas instrucciones cada vez que hacen una operación de entrada o salida. Se puede decir que estos programas del sistema operativo hacen transparente al usua-rio las características hardware concretas de los dispositivos.

Y por último, El sistema operativo también hace que el ordenador se utilice de forma eficiente. Para poner de manifiesto cómo el sistema operativo puede incre-mentar la eficiencia considérese un ejemplo sencillo. Los programas tradicional-mente se ejecutan secuencialmente, es decir, hasta que no concluye la ejecución de una instrucción no se ejecuta la siguiente. Supongamos que dentro de un programa hay una instrucción que implica la escritura de una página en una impresora láser. Hasta que no acabe de imprimirse dicha página el programa no puede continuar ejecutándose. Para mejorar la eficiencia 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 lógico (software) que controla el funcionamiento del equipo físico (hardware); eficiencia, fiabilidad, facilidad de man-tenimiento, y un pequeño tamaño serían las características 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 colección de programas cuya principal misión es gestionar los recursos del computador, y en consecuencia será el soporte lógico que controla el funcionamiento del equipo físico (hardware).

El sistema operativo como interfaz usuario/computadorEl sistema operativo oculta los detalles del hardware a los usuarios y programadores y proporciona una interfaz adecuada para utilizar el sistema. Actúa como mediador (ver Fig. 2), facilitando al usuario y a los programas de aplicación el acceso y el uso de los medios y servicios del sistema.

Un sistema informático engloba los cinco puntos siguientes:

• el hardware (UCP o Unidad Central de Proceso o simplemente procesador, memoria, dispositivos de E/S)

Experto en eLearningTecnologías y Métodos de Formación en Red

5

Page 9: Sistemas Operativos, Bases de Datos, Servidor Web

• el sistema operativo• software de utilidad

• los programas de aplicación (compiladores, sistemas de bases de datos, utili-dades, videojuegos, programas de gestión... etc..)

• los usuarios (personas, Máquinas u otros computadores)

Los recursos básicos de un sistema informático, son el hardware, el software y los datos. El sistema operativo facilita los medios para la utilización adecuada de estos recursos durante las operaciones en el sistema informático.

Hardware

Sistema operativo

Utilidades

Programas de aplicación

Diseñador del sistema operativo

Programador

Usuario final

Fig. 2: El sistema operativo como interfaz de servicios

Proporciona servicios en las siguientes áreas:

• Creación de programas: Conjunto de utilidades que ayudan al programador en sus tareas de elaboración de programas (editores, compiladores, etc...).

• Ejecución de programas: Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucción y los datos deben cargarse en memoria principal, se deben iniciar los dispositivos de E/S y los ficheros , y deben prepararse otros re-cursos.

• Acceso a los dispositivos de E/S: Cada dispositivo de E/S necesita su propio con-junto de instrucción y señales para poder operar. El S.O. aísla al usuario de estas particularidades, convirtiéndolas en simples operaciones de lectura/escritura.

• Acceso controlado a los ficheros: Además de las particularidades del dispositivo que se trate (disco, cinta) se debe controlar el formato del fichero y el medio de almacenamiento. Además, en el caso de sistemas multiusuario deben existir me-canismos de seguridad.

• Acceso al sistema: En el caso de sistema compartido o público, el sistema opera-tivo controla el acceso al sistema como un todo y a los recursos específicos del sistema.

El sistema operativo como administrador de recursosEl 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:

Experto en eLearningTecnologías y Métodos de Formación en Red

6

Page 10: Sistemas Operativos, Bases de Datos, Servidor Web

• 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 más, pero con la diferencia de su objetivo: dirigir a la UCP en el uso de otros recursos del sistema y en la tempori-zación de la ejecución de otros programas.

Historia En este apartado se va a presentar la evolución histórica de los sistemas operativos, haciendo especial hincapié en los avances tecnológicos más relevantes y agrupando dichos avances en las etapas tiempo más significativas. Se terminará haciendo un repaso a los sistemas operativos más populares. En la bibliografía se suele agrupar la evolución en el tiempo de los avances de los sistemas operativos en cuatro etapas o generaciones.

PrehistoriaDurante esta etapa, que cubre los años cuarenta, se construyen los primeros orde-nadores. Como ejemplo se puede citar el ENIAC (Electronic Numerical Integrator Analyzer and Computer), financiado por el Laboratorio de Investigación Balística de los EEUU. La principal característica de estos primeros ordenadores era que no existían los sistemas operativos. La UCP sólo podía ejecutar un programa de cada vez (es lo que se conoce como monoprogramación), que se introducía mediante tar-jetas perforadas. Todos los trabajos se realizaban en serie; se introducía un programa en el ordenador (manualmente), se ejecutaba y se imprimían los resultados, y se vol-vía repetir el mismo proceso con el siguiente trabajo.

Una de las mejoras que se introdujo fue el manejo de la máquina por un especia-lista en operación (operador), cuya misión 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 común de recursos (físicos y lógicos), y se ejecutaban como si fueran un bloque.

Primera etapaEn los años cincuenta se observa que gran parte del trabajo que realizaba un opera-dor era bastante mecánico y podía ser automatizado, ganando tiempo. Se desarrolló un pequeño programa que permanecía constantemente en memoria (residente), y que transfería automáticamente 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 ejecución del primer trabajo o tarea a ejecutar• El monitor cedía el control al trabajo cargado

Experto en eLearningTecnologías y Métodos de Formación en Red

7

Page 11: Sistemas Operativos, Bases de Datos, Servidor Web

• Cuando el trabajo en ejecución terminaba, el monitor tomaba de nuevo el con-trol, dando paso al segundo de los trabajos, y así sucesivamente

El programa monitor contenía las siguientes partes:

• El secuenciador automático de trabajos• El intérprete de tarjetas de control• Controladores software de entrada/salida (drivers)

Tanto la introducción de las instrucciones de los programas, como los datos con lo que debían trabajar y como las secuencias de control del monitor se realizaba mediante tarjetas perforadas. Existían tres tipos de tarjetas:

• Programa: introducción de instrucciones del programa a ejecutar.• Datos: introducción de datos del programa.• Control (JCL, Job Control Language): sirven para controlar e instruir al progra-

ma monitor.

Segunda etapaDurante los años 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 están inactivos, y cuando un dispositivo de E/S está actuando el resto de las unidades, incluido el procesador, permanecían inac-tivos. Esta circunstancia suponía un importante desaprovechamiento de prestacio-nes. Se plantearon entonces las siguientes mejoras: Operaciones OFF-LINEPara realizar la comunicación con los periféricos se desarrollaron los procesadores satélites, que descargaban el trabajo del procesador central, optimizando el tiempo de UCP. Los procesadores satélites se encargaban de grabar una imagen de las tarje-tas perforadas en cintas magnéticas (de acceso secuencial, pero mucho más rápidas que las lectoras de tarjetas), de donde las cargaba la UCP.Memorias intermedias o buffersEl Buffering 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 buffer, en la propia memoria principal del computador. Los datos que se transmi-ten de memoria al periférico, y viceversa, son volcados en el buffer donde están dis-ponibles para ser utilizados. Por ejemplo, para la salida de datos a un dispositivo de salida:• La UCP vuelca los datos al buffer (memoria intermedia) hasta que el dispositivo

de salida pueda aceptarlos. • Cuando el dispositivo de salida vacíe el buffer, reclamará tiempo de UCP me-

diante un línea de interrupción habilitada para tal efecto, la UCP dejará la tarea que esté haciendo para atender la interrupción, que en este caso consistirá en volver a llenar el buffer e instruir al dispositivo para que inicie la lectura de los datos.

Dependiendo de lo rápido que sea el dispositivo periférico existen dos tipos de dispositivos:

• los que transfieren información carácter a carácter (la pantalla y el teclado)

Experto en eLearningTecnologías y Métodos de Formación en Red

8

Page 12: Sistemas Operativos, Bases de Datos, Servidor Web

• los que lo hacen por bloques de caracteres (los discos, tanto fijos 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 próxima a la de memoria, y que no necesitan de la UCP para realizar la transferencia de información con la memoria.

SpoolingLa idea es la misma que en los sistemas off-line pero se sustituye la cinta (acceso secuencial, una vez escrita hay que rebobinarla antes de poder leerla) por el disco (acceso directo, más rápido). El funcionamiento es el siguiente:• Las tarjetas perforadas se leen directamente sobre el disco desde la lectora de

tarjetas.• La posición de las imágenes de las tarjetas se registra en una tabla mantenida por

el sistema operativo. En la tabla se anota cada trabajo una vez leído.• Cuando se ejecuta un trabajo sus peticiones de entrada desde la lectora de tarje-

tas se satisfacen leyendo el disco.

Análogamente, cuando el trabajo solicita la salida de una línea por la impresora, esta línea se copia en el buffer 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 buffering y spooling son que el buffering 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 situación en que la UCP se quedaba sin trabajo.

Tercera etapaFinales de los 60 y década de los 70. Se comienza a utilizar el concepto de multi-programación como remedio para incrementar el rendimiento. Un programa en ejecución en un ordenador se denomina proceso. Desde el punto de vista de ocu-pación de tiempo de procesador y de los dispositivos periféricos, se puede diferen-ciar dos tipos básicos:

• Procesos limitados por procesamiento. Son aquellos que consumen la mayor parte de su tiempo en el tratamiento de la información 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 períodos de tiempo.

Obviamente un proceso particular puede estar decantado hacia un lado u otro, o bien situado en una situación intermedia.

Experto en eLearningTecnologías y Métodos de Formación en Red

9

Page 13: Sistemas Operativos, Bases de Datos, Servidor Web

El segundo tipo de proceso dio lugar a una nueva técnica denominada multipro-gramación, que consiste en aprovechar la inactividad del procesador durante la eje-cución de una operación 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 algún tipo de administración de la memoria, ya que ésta tie-ne que ser compartida por los distintos procesos

• Es necesaria una política de asignación de recursos, para evitar situaciones de “abrazo mortal1” cuando dos procesos intentan acceder simultáneamente a dos recursos bajo determinadas condiciones.

Con el uso de la multiprogramación, el procesamiento en colas puede ser bas-tante eficiente. Sin embargo, en alguno casos es necesario un modo interactivo. Igual que la multiprogramación 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 planificación de la UCP y multiprogramación para proporcionar a cada usuario una pequeña porción 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 operación de E/S.

La operación 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 finalización.

La responsable de interrumpir la ejecución de un proceso cuando termina su cuantum es la UCP, dándole el control al S.O. que se encargará de realizar el corres-pondiente cambio de contexto.

Si consideramos dos dimensiones podemos establecer la clasificación de la tabla 1:• La primera dimensión especifica 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 interactúa directamente con el

computador para solicitar la ejecución de un trabajo o incluso, dependiendo de la aplicación, comunicarse con la misma.

• La segunda dimensión especifica si un sistema es multiprogramado o no:

• Sistema multiprogramado: Varios programas está cargados en memoria prin-cipal del computador.

• Sistema monoprogramado: Sólo un programa en memoria principal, sólo se ejecuta un programa en cada momento.

Experto en eLearningTecnologías y Métodos de Formación en Red

10

1 Del inglés deadlock

Page 14: Sistemas Operativos, Bases de Datos, Servidor Web

Atendiendo a estas dos dimensiones se pueden clasificar los sistemas operativos según esta tabla:

Sistema de colas Interactivo

Monoprogramado Simple Sistema dedicado

Multiprogramado Sofisticado Tiempo compartido

Tabla 1: Clasificación de sistemas operativos.

También 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 pequeño ante cualquier petición. Suele emplearse en aplicacio-nes dedicadas a sistemas de control con sensores como elementos de entrada, donde es necesaria una respuesta rápida 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 etapaAproximadamente desde los años 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 años, un avance muy significativo en las interfaces gráficas de usuario, IGU2 así como otros paradigmas de interacción con el usuario como la realidad virtual o la computación ubicua.

Los avances tecnológicos, el crecimiento de las redes (Internet) y la aparición de ordenadores con varios procesadores provocan una evolución de los sistemas opera-tivos para aprovechar al máximo dichos avances.

Sistemas DistribuidosUna tendencia actual en sistemas informáticos es la creación 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 electrónico, videoconferencia, etc.

Sistemas MultiprocesadorUno de los problemas actuales en el proceso de datos ha sido la aparición 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 día aparecen sis-temas multiprocesadores con varios microprocesadores compartiendo memoria, buses y reloj. Más fáciles de programar y más rápidos, no hay una sobrecarga en tiempo por el paso de mensajes, pero tecnológicamente más complejos.

Experto en eLearningTecnologías y Métodos de Formación en Red

11

2 En inglés GUI, Graphical User Interface

Page 15: Sistemas Operativos, Bases de Datos, Servidor Web

Sistemas operativos de mayor difusiónMS Windows

Nació simplemente como una aplicación 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 más utilizado hoy en día en todo el mundo, lo que no significa que sea o no el mejor. Fue diseñado para facilitar la comunicación 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 “metáfora del escritorio” y fue populariza-da inicialmente por Apple con su Mac OS.

Pone al alcance del usuario la tecnología plug and play que simplifica la tarea de configurar los dispositivos periféricos 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 diseñado para que el usuario pueda trabajar con las tecnologías multimedia. Entre sus características caben destacar las siguientes: multitarea, una interfaz de usuario muy intuitiva y una estabilidad y se-guridad sólo relativas.

También 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 embrión 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 través de redes de área local (LAN) o Internet. Incluye funciones de seguridad para grupos de usuario, autentificación de usuarios y control de acceso a los recursos compartidos de la red. Admite unidades RAID de discos. Entre otras características, aparece la multiprogramación, 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 tecnología 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 finales. El segundo está más orientado a entornos de servidores.

La penúltima versión, Windows XP esta enfocado a los usuarios, tanto domésti-cos como profesionales. Se distribuye en cuatro versiones diferentes: XP Home Edition (enfocada a los usuarios domésticos), XP Profesional (enfocada a usuarios más avanzados) y dos versiones especiales: XP Media Center Edition (especializada en tecnologías multimedia) y XP Tablet PC Edition (versión exclusiva para la nueva generación de dispositivos Tablet PC). Windows CE es una versión simplificada ideada para equipos informáticos miniaturizados como PDA’s o televisiones conec-tables a Internet, etc.

Recientemente (febrero 2007) Microsoft ha publicado la última versión de sus sistemas operativos: MS Windows Vista, orientado tanto al mercado empresarial

Experto en eLearningTecnologías y Métodos de Formación en Red

12

Page 16: Sistemas Operativos, Bases de Datos, Servidor Web

como al doméstico, con amplias capacidades multimedia, de comunicación y una atención especial a las cuestiones de seguridad, faceta muy criticada en sistemas anteriores de la compañía. Otro aspecto muy cuidado de Vista es la interacción con el usuario, se mejora notablemente con atractivos efectos gráficos en 3D.

Fig. 3: Captura MS Windows Vista. ALT-TAB cambio de aplicación.

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

Experto en eLearningTecnologías y Métodos de Formación en Red

13

Page 17: Sistemas Operativos, Bases de Datos, Servidor Web

UNIXEn la década 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 final fracasó, la tecnología no estaba suficientemente madura.

En la década de los 70 Ken Tompson, Dennis Ritchie y otros investigadores de Bell Laboratories desarrollan UNIX4 partiendo de ideas simplificadas de MUL-TICS en una PDP-7 y finalmente en una PDP-11. La principal característica era que un único usuario puede crear fácilmente un proceso. En el año 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 investigación, que se numeran de 1 a 6. Entre las características más relevantes se pueden citar:

• Escrito en C, sólo una pequeña parte se mantiene en ensamblador y es especí-fica del HW.

• Distribución de licencias y código 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 más éxito: BSD (Berkeley Software Distributions).

• Diseño que permite a un usuario ejecutar varios procesos simultáneamente y conectarlos mediante flujos de datos (streams).

En la década de los 80 Bell Laboratories/AT&T cambia la política de distribu-ción de UNIX. Bajo esta nueva política se distribuyen, a partir de 1983, las edicio-nes: System III, System IV y System V. Surgen también los grupos de desarrollado-res y usuarios5, protagonistas fundamentales del rápido desarrollo de UNIX.

En la década de los 90 se produce la edición de SYSTEM V, Release 4, junto con un nuevo cambio en la política de licencia y distribución. Surgen problemas y litigios legales con otras líneas de desarrollo (BSD, Universidad de California, Berke-ley). Se produce la adquisición por parte de Novell de todos los derechos sobre el código 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 evolución sobre la línea 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 década 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

Experto en eLearningTecnologías y Métodos de Formación en Red

14

3 MIT acrónimo de Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts

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

5 USG: UNIX Support Group; USDL: UNIX System Development Laboratory; USL: UNIX System Laboratory, división comercial de AT&T; PWB: Programmer’s Work Bench, a través del USG

Page 18: Sistemas Operativos, Bases de Datos, Servidor Web

distribución 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 denominación se ha vuelto a dividir, siendo las dos ramas más extendidas FreeBSD y NetBSD. Debido a problemas sobre la propiedad intelectual del código UNIX se produce un litigio con el USL.

Ya en la década 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.

Primera edición

Sexta edición

PWD

System III

System V

Linux

SCO UNIX

UNIXware

Xenix

Solaris 2

Solaris

Sun OS

FreeBSD

4.4 BSD

4 BSD

1 BSD

1969

1980

1990

2000

USG, USDL

y USL Bell Labs BSD

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-buían en código fuente, que además podía ser modificado e, incluso, distribuido con dichas modificaciones, por los usuarios. Así, a lo largo de los años, distribuciones varias, litigios y acuerdos, se van produciendo varias escisiones y fusiones de dife-rentes líneas o familias (Fig. 5) según disposiciones legales de las licencias de uso y distribución activas en cada momento. Durante los años 70-80 la familia más rele-vante, y la que marca el estándar UNIX es la familia de AT&T. Actualmente existen mezclas de propiedad intelectual entre las diferentes familias.

Entre las familias UNIX más 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.

Experto en eLearningTecnologías y Métodos de Formación en Red

15

Page 19: Sistemas Operativos, Bases de Datos, Servidor Web

• BSD, Universidad de California, Berkeley. Originada por el licenciamiento de UNIX a Berkely. Incorporación de su propia propiedad intelectual: protocolos TCP/IP. Ampliamente difundida con licencias de código abierto.

• AIX, IBM. Licenciamiento de UNIX System III a IBM• Xenix, Santa Cruz Operation, SCO. Adquisición de derechos originales de

AT&T por parte de SCO (primero por Novell)• GNU/Linux, software libre. Se trata del conjunto de herramientas GNU, más

el kernel (núcleo) Linux. Cumple con el estándar POSIX. No deriva de una rama oficial UNIX (Fig 6 y 7).

Las implementaciones son sistemas operativos UNIX distribuidos, bajo algún tipo de licencia concreto, bien propietario por parte de alguna empresa, bien abier-to, bien libre distribución. Entre los más 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 definición de estándares 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 más conocidos:

• IEEE, POSIX y POSIX.2 (Portable Operating System Interface).• AT&T, SVID (System V Interface Definition).• Europa, X-OPEN, sigue el POSIX.

Fig. 6: Captura de OpenSuse, una de las distribuciones GNU/Linus más populares.

Experto en eLearningTecnologías y Métodos de Formación en Red

16

Page 20: Sistemas Operativos, Bases de Datos, Servidor Web

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

Funciones de un Sistema OperativoLas funciones de un sistema operativo pueden clasificarse de forma general en:

• Asignación de tiempos de UCP: La asignación de tiempos de UCP, consiste en planificar 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 más importantes a la hora de asignar recursos se encuentran: • la división de la memoria del computador entre los programas

• la asignación 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 periféricos.

• Control de Errores y Protección : El control de errores, y la protección frente a éstos, supone informar de cualquier condición anómala al tiempo que se in-tenta minimizar su efecto sobre el resto del sistema informático.

• 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.

Experto en eLearningTecnologías y Métodos de Formación en Red

17

Page 21: Sistemas Operativos, Bases de Datos, Servidor Web

Módulos de un Sistema OperativoPara poder cumplir con las funciones anteriormente expuestas, un sistema operativo contaría, típicamente, con los siguientes módulos (Fig. 8):

• Núcleo• Gestor de memoria• Gestor de Entrada/Salida• Planificador de procesos y asignación de recursos• Administrador de almacenamiento masivo o de ficheros

Otros elementos importantes en cualquier sistema operativo son:

• Protección• Interfaz de usuario• Memoria virtual

Un esquema podría ser el siguiente:

El sistema operativo

Kernel o núcleo del SO

Gestor de E/SGestor de Ficheros

Gestor de Memoria

Administrador de recursos

Planificador

Hardware

Interfaz de usuario

Fig. 8: Módulos de un sistema operativo.

El NúcleoEs el módulo de nivel más bajo y descansa directamente sobre el hardware del com-putador. Su función es proporcionar una serie de servicios de bajo nivel a las capas superiores del sistema operativo. Entre las tareas que desempeña el núcleo están:

• El manejo de interrupciones: Cuando el hardware del ordenador detecta una interrupción, el control se transfiere al módulo de control de interrupciones del núcleo, que analiza el carácter de la interrupción y toma las acciones apro-piadas. Estas acciones suelen consistir en transferir el control a otro módulo del sistema operativo, iniciar otro programa o continuar la ejecución del pro-grama interrumpido. Dado que muchas interrupciones tienen lugar por moti-vos de entrada/salida, el módulo de gestión de E/S, es uno de los módulos a los que el control se transfiere con más frecuencia.

Experto en eLearningTecnologías y Métodos de Formación en Red

18

Page 22: Sistemas Operativos, Bases de Datos, Servidor Web

• La asignación de trabajo al procesador: Para asignar trabajo al procesador, el núcleo transfiere el control al programa que el planificador ha determinado que sea el próximo en ejecutarse.

• El proporcionar una vía de comunicación entre los distintos programas: La comunicación entre programas se logra manteniendo una cola de mensajes en espera, para cada uno de los programas activos. El núcleo, recibe los mensaje y los va almacenado en la cola apropiada al destino en cuestión, para distribuir-los cuando el programa destino se active.

La mayoría de los procesadores disponen de instrucciones en lenguaje máquina cuyo uso está restringido al núcleo del sistema operativo, es lo que se suele denomi-nar modo dual de trabajo. Estas instrucciones restringidas suelen incluir órdenes que transfieren 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 MemoriaEl sistema operativo debe satisfacer una serie de requisitos, tanto de usuario como del administrador del mismo. Para ello, el módulo de gestión de memoria debe cumplir con cuatro responsabilidades:

• Aislamiento de procesos.• Asignación dinámica de memoria a los procesos, transparente al usuario.• Soporte para la programación modular.• Control de acceso y protección. Se debe dar soporte a la compartición de áreas de memoria, sin que esto interfiera con el primer punto.

El espacio de direccionamiento lógico de un proceso tiene que encontrarse en memoria física, antes de que el proceso pueda ser ejecutado. Esto es, la parte del programa que se esté ejecutando, debe estar cargada en memoria física.

La memoria virtual es una técnica de gestión de memoria, que permite la ejecución de programas que no pueden hallarse en su totalidad en la memoria prin-cipal, ya que ocupan más memoria de la disponible. Se combinan hardware y soft-ware, permitiendo la ejecución 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 lógica 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 multiprogramación, y por tanto, la efi-ciencia del sistema.

La memoria virtual está basada en el uso de las siguientes técnicas:

• segmentación

• paginación• una combinación de segmentación y paginación

Experto en eLearningTecnologías y Métodos de Formación en Red

19

Page 23: Sistemas Operativos, Bases de Datos, Servidor Web

Gestor de E/SLos problemas asociados con la E/S de datos tienen como origen el que los disposi-tivos de E/S tiene distintas características y diferentes velocidades. El módulo de control de E/S trata estos problemas presentando al programador la E/S como una cuestión independiente del dispositivo.

Estas funciones que proporciona este módulo 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 técnica 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 FicherosLos dispositivos de almacenamiento masivo de un computador constituyen el sis-tema físico, donde se depositan de una forma permanente los datos y los programas de los usuarios. El módulo encargado de la gestión de estos dispositivos tiene la mi-sión de mantener la estructura de esta información y asegurar el uso eficiente de estos medios.

Los datos y programas de un dispositivo de almacenamiento masivo, se mantie-nen en archivos. El módulo de gestión supervisa la creación, actualización y elimi-nación de los archivos. Lógicamente este módulo debe cooperar con el módulo de gestión de memoria durante la transferencia de datos desde y hacia la memoria principal.

Algunos archivos contienen información que puede ser compartida, otros son de carácter privado e incluso secreto. Por tanto, cada archivo está dotado de un con-junto de privilegios de acceso, que indican la extensión con la que se puede compar-tir la información contenida en el archivo.

Asignación de Recursos y PlanificaciónLa mayor parte del tiempo que un computador está funcionando, existe una de-manda mayor de recursos que los que realmente existen, esta situación implica la necesidad de una política de asignación de recursos.

La solución sería sencilla si fuera posible utilizar una política directa del tipo “se atenderá primero al que antes lo solicite”, sin embargo esta política puede llevar a situaciones denominadas de abrazo mortal bajo determinadas condiciones:

• Exclusión mutua.• Mantener y esperar.• Planificador no apropiativo.

• Espera circular.

El planificador se ocupa fundamentalmente de asignar tiempo de procesador a los programas, de acuerdo a una cierta política de planificación, que varía notable-mente de un sistema operativo a otro. Normalmente, se hace uso de una cierta je-rarquía de prioridades, que determina la colocación en la cola de espera de tiempos de UCP, y en consecuencia, como se asignará el tiempo de UCP a cada programa.

Experto en eLearningTecnologías y Métodos de Formación en Red

20

Page 24: Sistemas Operativos, Bases de Datos, Servidor Web

Las políticas de planificación 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-nuación.

ProtecciónCuando en un ordenador existen diferentes programas ejecutándose simultánea-mente resulta imprescindible protegerlos entre sí. Obviamente, el primer programa a proteger será el propio sistema operativo. La protección 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 aplicación, es esencial detectarlos y diagnosticarlos lo antes posible, para limitar sus efectos. Especial interés 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 están ejecutando en el sistema. El núcleo del sistema operativo tiene el grado más alto, mientras que los programas de aplicación se encuentran en el nivel más bajo.

Interfaz Usuario/Sistema OperativoEs necesario facilitar el uso de los ordenadores, e independizar los recursos del sis-tema, en cuanto a sus características de funcionamiento físico, y su utilización.

En un sistema multiacceso la comunicación, 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 planificación y asignación de recursos. En todo momento el usuario tiene el control global del computador.

Actualmente han ganado gran importancia las interfaces gráficas de usuario. Hacen uso de símbolos de la vida cotidiana6, fáciles de relacionar con las tareas que realizan, lo que ayuda al usuario en sus tareas cotidianas.

Experto en eLearningTecnologías y Métodos de Formación en Red

21

6 La metáfora del escritorio, presente en todos los sistemas operativos actuales, se representa la información y la inte-racción con el usuario mediante la representación gráfica de objetos cotidianos y reconocibles, presentes en una ofici-na real (carpeta, documento, papelera, etc.)

Page 25: Sistemas Operativos, Bases de Datos, Servidor Web

El gestor de Bases de DatosIntroducción

Un sistema de base de datos es básicamente un sistema computerizado cuya finali-dad general es almacenar información y permitir a los usuarios recuperar y actuali-zar esa información por medio de consultas o peticiones perfectamente definidas. La información en cuestión puede ser cualquier cosa que sea de importancia para el individuo u organización; en otras palabras, todo lo que sea necesario para auxiliarle en el proceso de su administración.

ComponentesDesde un punto de vista muy general, un sistema de base de datos comprende cua-tro componentes principalmente: datos, hardware, software y usuarios. A continua-ción consideramos brevemente estos cuatro componentes.

DatosLos sistemas de bases de datos están disponibles en máquinas que van desde las computadoras personales más pequeñas hasta los grandes servidores o main%ames. Por norma general, los sistemas que se encuentran en máquinas grandes tienden a ser sistemas multiusuario, mientras que los que se ejecutan en máquinas pequeñas tienden a ser sistemas de un solo usuario. Un sistema de un solo usuario es aquel en el que sólo un usuario puede tener acceso a la base de datos en un momento dado; un sistema multiusuario es aquel en el cual múltiples usuarios pueden tener acceso simultáneo a la base de datos7. 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 final.

En general, los datos de la base de datos – al menos en un sistema grande – se-rán tanto integrados como compartidos. Gracias al concepto de datos integrados, podemos imaginar la base de datos como una unificación de varios archivos que de otro modo serían 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 fines 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 porción de la base de datos, su visión de dicha parte podría diferir considerablemente.

HardwareLos componentes de hardware del sistema son básicamente:

• Los volúmenes de almacenamiento secundario – principalmente discos mag-néticos – 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,

Experto en eLearningTecnologías y Métodos de Formación en Red

22

7 Toda aplicación web que utilice un sistema de base de datos para el almacenamiento y recuperación de la informa-ción, obliga a que este último sea un sistema multiusuario, ya que múltiples usuarios podrán interactuar simultánea-mente dada la naturaleza distribuida de Internet.

Page 26: Sistemas Operativos, Bases de Datos, Servidor Web

• los procesadores de hardware y la memoria principal asociada usados para apoyar la ejecución del software del sistema de base de datos.

SoftwareEntre la base de datos física – es decir, los datos como están almacenados físicamen-te – y los usuarios del sistema, hay una capa de software conocida como servidor de base de datos o más comúnmente como sistema gestor de base de datos8 (SGBD). Todas las solicitudes de acceso a la base de datos son procesadas por el SGBD; las operaciones de inserción, modificación y eliminación de datos en la base de datos (junto con otras muchas funcionalidades) son características 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 implementación de los datos y de la plataforma hardware sobre la que éstos se asientan. En otras palabras, el SGBD ofrece a los usuarios una percepción 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 términos de un nivel de percepción más alto.

Todo SGBD dispone de algún mecanismo para manipular la información de la base de datos normalmente basado en algún 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 especificar diversos tipos de operaciones sobre las mismas. Aúna características del álgebra y el cálculo relacional permitiendo lanzar consultas con el fin de recuperar información de inte-rés de una base de datos, de una forma sencilla9.

El SGBD es el componente software más importante del sistema en general, aunque no es el único. Existen también otros componentes como bibliotecas de funciones adicionales, utilerías, herramientas de desarrollo de aplicaciones, genera-dores de informes y (el más importante) el administrador de transacciones.

En muchas ocasiones, utilizamos el término SGBD (ó DBMS en inglés), para referirnos en forma genérica a un producto determinado de algún fabricante; por ejemplo, el producto “Oracle” fabricado por Oracle Corporation, o también, el sis-tema gestor de bases de datos basado en software libre “MySQL” fabricado por MySQL AB.

UsuariosConsideramos tres grandes clases de usuarios:

• En primer lugar hay programadores de aplicaciones. Son los responsables de escribir los programa de aplicación de base de datos en algún lenguaje de programación como COBOL, C/C++, Java o algún lenguaje de alto nivel de

Experto en eLearningTecnologías y Métodos de Formación en Red

23

8 En inglés Data Base Management System, DBMS.

9 El término “lenguaje de consulta”, a pesar de ser común, no es muy preciso, ya que el verbo “consultar” en lenguaje natural sugiere sólo una recuperación, mientras que los lenguajes de consulta por lo regular (aunque no siempre) ofre-cen también actualización y otras muchas operaciones.

Page 27: Sistemas Operativos, Bases de Datos, Servidor Web

4GL10. Estos programas acceden a la base de datos emitiendo la solicitud apropiada al SGBD (por lo regular una instrucción SQL). Los programas en sí pueden ser aplicaciones convencionales por lotes o pueden ser aplicaciones en línea, cuyo propósito es permitir al usuario final el acceso a la base de datos desde una estación de trabajo o terminal en línea. Las aplicaciones más mo-dernas pertenecen a esta variedad11.

• En consecuencia, la segunda clase de usuarios son los usuarios finales, quie-nes interactúan con el sistema de estaciones de trabajo o terminales en línea. Un usuario final puede acceder a la base de datos a través de las aplicaciones en línea 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 mayoría 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 (también conoci-das como instrucciones o comandos), como SELECT e INSERT, en forma interactiva con el SGBD. El lenguaje SQL mencionado anteriormente es un ejemplo típico 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 política respecto a los datos de la empresa y proporciona el apoyo técnico necesario para implementar di-chas decisiones. Por lo tanto, el DBA es el responsable del control general del sistema al nivel técnico. Entre las tareas del administrador de base de datos podemos destacar las siguientes:• Definir el esquema conceptual: decidir exactamente qué información con-

tendrá la base de datos13; en otras palabras, identificar las entidades de inte-rés para la empresa e identificar la información que hay que registrar acerca de dichas entidades. Por lo regular a este proceso se le conoce como diseño lógico – en ocasiones conceptual – de la base de datos.

• Definir 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-múnmente como diseño físico de la base de datos. El diseño físico deberá realizar posteriormente al diseño lógico y nunca al contrario.

• Establecer un enlace con los usuarios asegurando que los datos necesarios estén disponibles.

• Definir las restricciones de seguridad y de integridad de los datos.

Experto en eLearningTecnologías y Métodos de Formación en Red

24

10 Lenguaje de cuarta generación (4GL), el usuario no debe definir los pasos a seguir en un programa para realizar una determinada tarea, tan sólo debe definir una serie de parámetros que estas herramientas (4GL) utilizarán para generar un programa de aplicación.

11 Las herramientas de e-learning actuales (como por ejemplo, moodle) son un tipo de aplicación en línea para la ges-tión de cursos en un entorno distribuido y de colaboración 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 inglés Data Base Administrator.

13 Una herramienta de e-learning, destinada a la gestión de cursos, tendrá en su base de datos información sobre los alumnos, cursos, lecciones, cuestionarios de evaluación, documentos de interés, foros, mensajes, etc.

Page 28: Sistemas Operativos, Bases de Datos, Servidor Web

• Definir las políticas salvaguarda y recuperación de la información.• Supervisar el rendimiento y responder a los requerimientos cambiantes co-

mo consecuencia del aumento de la información o deterioro del sistema.

DefiniciónEs común referirse a los datos de la base de datos como “persistentes”. En forma más 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 sólo pueden ser removidos de la base de datos por alguna solicitud explícita al SGBD, no como un mero efecto lateral de (por ejemplo) algún programa que ter-mina su ejecución. Esta noción de persistencia nos permite dar una definición más precisa del término “base de datos”: una base de datos es un conjunto de datos per-sistente que es utilizado por los sistemas de aplicación de alguna organización o empresa dada.

Algunos ejemplos de datos persistentes son: datos de producción, datos conta-bles, datos de pacientes, datos de planeación, datos de estudiantes, datos de cursos, datos de lecciones, datos de cuestionarios, datos de exámenes, etcétera.

CaracterísticasDesde el punto de vista de un sistema monousuario y en comparación los sistemas de archivo manual, las bases de datos son ventajosas en muchos aspectos:

• Compactan mucho la información sin necesidad de archivos en papel volumi-nosos.

• Las máquinas recuperan y almacenan la información más rápidamente que un humano. En particular, las consultas específicas pueden ser respondidas con rapidez, sin necesidad de búsquedas manuales o visuales que llevan tiempo.

• El trabajo es menos laborioso además de que las máquinas siempre realizan mejor las tareas mecánicas.

• En el momento que lo necesitemos, tendremos a nuestra disposición informa-ción precisa y actualizada.

Si el entorno es multiusuario y la base de datos es más grande y compleja los beneficios son mucho mayores. Es en este entorno, en el que se ofrece un valor aña-dido, ya que la empresa ofrece a sus usuarios un sistema centralizado para el control de sus datos.

FuncionalidadesPuede decirse, que la funcionalidad principal de un sistema de base de datos es la de compartir la información entre usuarios y entre las aplicaciones existentes. Ade-más de que sea posible desarrollar nuevas aplicaciones para operar sobre los mismos datos.

También pueden mencionarse las siguientes funcionalidades:

• Reducir la redundancia: En sistemas que no son de bases de datos, cada aplicación 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

Experto en eLearningTecnologías y Métodos de Formación en Red

25

Page 29: Sistemas Operativos, Bases de Datos, Servidor Web

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-mántico del sistema de información, la actualización de ciertos datos de la base de datos implican más modificaciones. Si alguna de estas modificaciones 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 información incorrecta. Los sistemas de bases de datos dis-ponen de mecanismos para evitar la inconsistencia, entre ellos por ejemplo: la propagación de actualizaciones.

• Manejo adecuado de transacciones: Una transacción es una unidad de trabajo lógica, que por lo regular comprende varias operaciones. El ejemplo más común 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 transacción, entonces el sistema puede garantizar que se hagan ambas o ninguna de ellas, aún cuando el sistema fallara a la mitad del proceso. A esta característica 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 básicas:• COMMIT: para comprometer una transacción que ha finalizado correcta-

mente.• ROLLBACK: para deshacer completamente una transacción que ha fallado.

• Mantener la integridad: El problema de la integridad es el de asegurar que los datos de la base de datos estén correctos. La inconsistencia entre dos en-tradas que pretender representar el mismo “hecho” es un ejemplo de la falta de integridad. No obstante, aún cuando no exista redundancia, la base de datos podría seguir conteniendo información 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 defina y el DBA implemente las restricciones de integridad (o reglas de negocio) que serán verificadas siem-pre que se realice una operación de actualización.

• Mantener la seguridad: Al tener completa jurisdicción sobre la base de da-tos puede asegurar que el único medio de acceso a la base de datos sea a través de los canales adecuados y por lo tanto puede definir las reglas o restriccio-nes de seguridad que serán verificadas siempre que se intente acceder a da-tos sensibles. Es posible definir diferentes restricciones para cada tipo de ac-ceso (recuperación, inserción, eliminación, etcétera) para cada parte de la in-formación 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-

Experto en eLearningTecnologías y Métodos de Formación en Red

26

14 La transacción se hace en su totalidad o nada.

Page 30: Sistemas Operativos, Bases de Datos, Servidor Web

presentación física de los datos almacenados que proporcione un acceso rápi-do para las aplicaciones más importantes.

• Cumplir los estándares: Es conveniente estandarizar la representación 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 estándares en la asignación de nombres y en la documentación de los datos también son muy convenientes.

Todas estas funcionalidades se convierten en ventajas. La mayoría de ellas resul-tan bastante obvias. Sin embargo, es necesario agregar a la lista un punto que podría no ser tan obvio, aunque de hecho está implícito en otro; se trata de proporcionar la independencia a los datos.

Independencia de los datosExisten dos clases de independencia de los datos, física y lógica.

Las aplicaciones implementadas en sistemas más 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 significa que la forma en que físicamente son representa-dos los datos en el almacenamiento secundario y la técnica empleada para su acceso, son dictadas por los requerimientos de la aplicación en consideración y más aún, significa que el conocimiento de esa representación física y esa técnica de acceso están integrados dentro del código de la aplicación. Con este planteamiento, resulta imposible modificar la representación física (la forma en que los datos están física-mente representados en el almacenamiento) o la técnica de acceso (la forma en que son accedidos físicamente) sin afectar a la aplicación de manera drástica.

Sin embargo, en un sistema de base de datos, sería 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 requerirán visiones diferentes de los mismos datos.• El DBA debe tener la libertad de cambiar las representaciones físicas o la téc-

nica de acceso en respuesta a los requerimientos cambiantes, sin tener que modificar 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

NivelesLa arquitectura ANSI/SPARC propone una división en tres niveles, conocidos co-mo interno, conceptual y externo respectivamente. Hablando en términos genera-les:

• El nivel interno (también conocido como nivel físico) es el que está más cer-ca del almacenamiento físico; es decir, es el que tiene que ver con la forma en que los datos están almacenados físicamente. La vista interna es una represen-tación de bajo nivel de toda la base de datos y consiste en muchas ocurrencias de cada uno de los diversos tipos de registros internos.

Experto en eLearningTecnologías y Métodos de Formación en Red

27

Page 31: Sistemas Operativos, Bases de Datos, Servidor Web

• El nivel externo (también conocido como nivel lógico de usuario) es el más próximo 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 final con cualquier grado de sofisticación. La vista externa es el contenido de una base de datos como lo ve un usuario en particular.

• El nivel conceptual (también conocido como el nivel lógico de la comuni-dad, o en ocasiones sólo como el nivel lógico, sin calificar) es un nivel interme-dio entre los otros dos. La vista conceptual es una representación de todo el contenido de la información 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 físi-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 percepción de una comunidad de usuarios. En otras palabras, habrá muchas “vistas externas” distintas, cada una consistente en una representación más 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 representación abstracta de la base de datos en su totali-dad.

Nivel interno(vista de almacenamiento)

Nivel conceptual(vista de la comunidad de usuarios)

Nivel externo(vista de usuarios individua-les)

Fig. 9: Los tres niveles de la arquitectura.

Transformaciones

Además de los tres niveles como tales, la arquitectura comprende ciertas transfor-maciones; en general, una transformación conceptual/interna y varias transforma-ciones externas/conceptual:

• La transformación conceptual/interna define la correspondencia entre la vista conceptual y la base de datos almacenada, y especifica cómo están representa-dos los registros y campos conceptuales en el nivel interno. Si se modifica la estructura de la base de datos, es decir, si se hace un cambio a la definición de la estructura de almacenamiento, entonces por consiguiente será necesario modificar la transformación conceptual/interna, de manera que el esquema conceptual pueda permanecer invariable.

Experto en eLearningTecnologías y Métodos de Formación en Red

28

Page 32: Sistemas Operativos, Bases de Datos, Servidor Web

• La transformación externa/conceptual define la correspondencia entre una vista externa en particular y la vista conceptual. En general, las diferencias que puedan existir entre estos dos niveles son análogas a aquellas que puedan exis-tir entre la vista conceptual y la base de datos almacenada.

Así como la transformación conceptual/interna es la clave para la independencia física de los datos, también las transformaciones externas/conceptual son la clave para la independencia lógica de los datos. Un sistema proporciona la independen-cia física de los datos si los usuarios y los programas de usuario son inmunes a los cambios en la estructura física de la base de datos almacenada. De igual manera un sistema proporciona la independencia lógica de los datos si los usuarios y los pro-gramas de usuario también son inmunes a los cambios en la estructura lógica de la base de datos (lo que significa cambios al nivel conceptual o “lógico de la comuni-dad”).

Experto en eLearningTecnologías y Métodos de Formación en Red

29

Page 33: Sistemas Operativos, Bases de Datos, Servidor Web

Servidores WebIntroducción

La World Wide Web es el servicio multimedia más extendido de Internet. Fue desa-rrollado en el CERN (Centre Européen de la Recherche Nucléaire, Suiza) en 1992 y desde entonces se ha extendido hasta ser uno de los servicios más populares de Internet.

Cuando hablamos de Internet, en la mayoría de las ocasiones nos referimos al servicio Web, pero Internet está compuesto por más servicios: correo electrónico, noticias, transferencia de ficheros, terminal remoto, etc. La Web es uno de los mé-todos más importantes de comunicación que existe en Internet. Consiste en un sis-tema de información basado en hipertexto (texto que contiene enlaces a otras secciones del documento o a otros documentos). La información reside en forma de Páginas Web en computadores que se denominan Servidores Web. Estas máqui-nas están distribuidas por todo el mundo.

Un Servidor Web es un programa que implementa el protocolo de comunica-ción HTTP (HyperText Transfer Protocol). Este protocolo está diseñado para transfe-rir lo que llamamos hipertextos, Páginas Web o páginas HTML (HyperText Markup Language): textos complejos con enlaces, figuras, formularios, botones y objetos in-crustados como animaciones o reproductores de sonidos. Una de las capacidades más interesantes de las Páginas Web es la creación de hipervínculos, enlaces a otras Páginas Web.

Hay que destacar el hecho de que la palabra Servidor Web identifica tanto al programa como a la máquina en la que dicho programa se ejecuta. Existe, por tanto, cierta ambigüedad en el término, aunque no será difícil diferenciar a cuál 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 petición al servidor y éste le respon-de con el contenido que el cliente solicita.

Para ofrecer el servicio Web clásico se suele disponer de aplicaciones web. Estas aplicaciones son fragmentos de código 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 través del propio Navegador. Por norma general, el código de estas aplicaciones viene dado en algún 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 aplicación; ésta, una vez ejecutada, genera cierto código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP. Las aplicaciones de servidor suelen ser la opción más utilizada para realizar aplica-ciones Web, debido a que al ejecutarse en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad adicional. Así pues, cualquier cliente con un Navegador Web básico puede utilizar este tipo de aplicaciones.

Experto en eLearningTecnologías y Métodos de Formación en Red

30

Page 34: Sistemas Operativos, Bases de Datos, Servidor Web

Arquitectura de la WebLa Web presenta una arquitectura cliente-servidor de forma que los proveedores de información (Servidores Web) atienden las peticiones de los programas cliente (normalmente Navegadores), que son manejados por el usuario final.

La comunicación cliente-servidor se hace mediante un lenguaje común o proto-colo15 denominado HTTP (HiperText Transfer Protocol). Los archivos que se transfie-ren son documentos de hipertexto codificados 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 envío de elementos de información.

Este programa se encarga de acceder al servidor y solicitar las páginas siguiendo el protocolo HTTP. El Cliente Web debe interpretar los documentos recibidos para poder mostrárselos al usuario con el formato adecuado. Además, 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 aplicación externa capaz de gestionarlo.

Este software del cliente, es de muy fácil manejo y suele integrar programas que acceden a otros servicios de Internet como, por ejemplo, el correo electrónico.

El Navegador puede considerarse como una interfaz de usuario universal. Den-tro de sus funciones están: la petición de las Páginas Web, la representación ade-cuada de sus contenidos y la gestión de los posibles errores que puedan producirse.

Algunos de los Navegadores más conocidos son: Netscape, Internet Explorer, Mozi)a, Mosaic, Opera y Lynx (Navegador en modo texto).

A modo de ejemplo, al teclear una dirección Web en nuestro Navegador, éste realiza una petición HTTP al servidor de dicha dirección. El servidor responde al cliente enviando el código HTML de la página solicitada; el cliente, una vez recibi-do el código, lo interpreta y lo muestra en pantalla. Como vemos con este ejemplo, el cliente es el encargado de interpretar el código HTML, es decir, de mostrar las fuentes, los colores y la disposición de los textos y objetos de la página; el servidor tan sólo se limita a transferir el código de la página al cliente.

Servidores WebEl software servidor consiste en una aplicación que permanentemente está a la es-pera de peticiones de clientes, recoge dichas peticiones y proporciona la informa-ción deseada a los clientes. El diálogo 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 información que se desea hacer pública y donde se depositan los do-cumentos Web disponibles para los clientes.

Las Páginas Web disponibles en el servidor se estructuran en lo que llamamos Sitios Web o WebSites (denominados por algunos servidores también como Con-

Experto en eLearningTecnologías y Métodos de Formación en Red

31

15 Protocolo: conjunto de reglas que gobiernan el intercambio de datos entre entidades dentro de una red. Es el len-guaje común “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.

Page 35: Sistemas Operativos, Bases de Datos, Servidor Web

textos). Un Sitio Web puede ser el trabajo de una persona, una empresa u otra orga-nización y está típicamente dedicada a algún tema particular o propósito. Un Servi-dor Web puede dar servicio a varios Sitios Web (o a varios Contextos).

A las páginas de un Sitio Web se accede desde una página raíz, llamada portada o página de inicio, que normalmente reside en el mismo servidor físico. Dependien-do de la configuración y del tipo de servidor ésta página de inicio tendrá un nombre y extensión específico (normalmente index con extensión htm, html, jsp, …, de-pendiendo del lenguaje con el que esté codificada).

Protocolo de comunicación HTTPEl protocolo HTTP es el protocolo utilizado para la transferencia de Páginas Web. Éste es el protocolo con el que dialogan cliente y servidor y por medio del cual pue-de transmitirse información de todo tipo: texto, gráficos, vídeo, etc.

Una de las características del protocolo HTTP es que no es permanente, es decir, cada operación HTTP implica una conexión con el servidor, que es liberada al término de la misma. Además, carece de estado. Cada petición de un cliente a un servidor no es influida por las transacciones anteriores. El servidor trata cada peti-ción como una operación totalmente independiente del resto.

DireccionamientoCuando un Cliente Web quiere acceder a un documento es necesario conocer: ¿cuál es su nombre?, ¿dónde está? y ¿cómo se puede acceder a él?.

A cada página se le asigna una URL (Uniform Resource Locator), mecanismo con el cual la Web asigna una dirección única a cada uno de los recursos de información localizado en cualquier lugar de Internet. Consiste en un código que contiene la identificación del servicio, la dirección del servidor (se puede especificar hasta el número de puerto), y, si es necesario, el directorio donde se encuentran los ficheros dentro del servidor. De esta forma se direccionan los recursos accesibles a través de un Navegador Web.

El formato general de una URL es el siguiente:

protocolo o servicio://dirección_de_la_máquina:puerto/directorio/fichero

• protocolo o servicio: especifica el protocolo a utilizar para acceder al objeto (en la web http).

• dirección de la máquina y puerto16: identifican la máquina y el puerto. La dirección de la máquina se puede especificar tanto en formato numérico o mediante su nombre de dominio. El campo que hace referencia al puerto pue-de eliminarse si el servicio está en su puerto estándar (80).

• el directorio o camino (path): Aquí se especifica la localización del recurso dentro del Servidor Web.

Experto en eLearningTecnologías y Métodos de Formación en Red

32

16 Un puerto es una forma genérica de denominar a una interfaz por la cual diferentes tipos de datos pueden ser envia-dos y recibidos ( comunicación cliente– servidor)

Page 36: Sistemas Operativos, Bases de Datos, Servidor Web

Servidores WebFuncionamiento de un Servidor Web

El proceso completo, desde que el usuario solicita una página hasta que el Cliente Web se la muestra con el formato adecuado, es el siguiente: 

1. El usuario anota en el Cliente Web la dirección de la página que desea consul-tar.

2. El cliente establece la conexión con el Servidor Web.3. El cliente solicita la página deseada.4.El servidor busca la página que ha sido solicitada en su sistema de ficheros, Si

la encuentra, la envía al cliente; en caso contrario, devuelve un código de error.5. El cliente interpreta los códigos HTML y muestra la página al usuario.6. Se cierra y libera la conexión. 

Navegador

Red

SERVIDOR WEB

Sistema Operativo

FicherosProgramas

CGIServlets

Recursos

Bases de Datos

Fig. 10: Interacción entre un servidor Web y el resto del entorno.

La figura superior muestra la interacción entre un Servidor Web y el resto del entorno. El servidor es el responsable de proporcionar el acceso a los recursos soli-citados que están bajo el control del sistema operativo.

Estos recursos pueden ser:

Experto en eLearningTecnologías y Métodos de Formación en Red

33

Page 37: Sistemas Operativos, Bases de Datos, Servidor Web

• Estáticos, como páginas HTML o texto.• Dinámicos, cuando la página solicitada no existe físicamente, sino que se

crea en el momento de su petición (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 página. Posteriormente se pasa al Servidor Web, quien a su vez la envía 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 petición, el servidor la atiende e inmediatamente se cierra la comunicación. 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 través de la Web. No obstante, existen mecanismos para resolver el problema, como el uso de cookies17 o de bases de datos o variables de sesión.

Otro aspecto importante es el hecho de que se establece una conexión inde-pendiente para cada documento u objeto que se transfiere. Por tanto, si una página contiene, por ejemplo, cuatro imágenes, se establecen cinco conexiones individua-les: una para la página propiamente dicha y otras cuatro para las imágenes respecti-vas.

Estructura del Servidor WebLa 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 recepción: representa la primera “línea de ataque” y su labor

consiste en esperar las peticiones HTTP de los clientes que llegan por la red. También, analiza las peticiones y determina las capacidades de los navegado-res (tipo, compatibilidad, etc.). Este subsistema contiene la lógica necesaria para manejar múltiples peticiones.

• Analizador de peticiones: encargado de traducir la localización del recurso de la red al nombre del archivo local. Por ejemplo, la solicitud del recurso http://www.usal.es se traduce al fichero local /var/www/webfiles/index.html.

• Control de acceso: sirve para autentificar y permitir el acceso a un recurso de información.

• Manejador de recursos: este subsistema es el responsable de determinar el tipo de recurso solicitado; lo ejecuta y genera la respuesta.

• Registro de transacción: se encarga de registrar todas las peticiones y su re-sultado.

Experto en eLearningTecnologías y Métodos de Formación en Red

34

17 Una cookie es un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página

Page 38: Sistemas Operativos, Bases de Datos, Servidor Web

Fig. 11: Arquitectura de un servidor Web.

• Capa soporte. Esta capa actúa 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 específico del sistema operativo para facilitar la portabilidad del Servidor Web a diferentes plataformas.

Información del Servidor WebLas Páginas Web pueden consistir en archivos de texto estático, Página Web Estáti-ca, o en una serie de archivos con código que instruya al servidor cómo construir el HTML para cada página que es solicitada, a esto se le conoce como Página Web Dinámica.

Páginas Web estáticasLas páginas estáticas generalmente usan la extensión de archivo “htm” o “html”.HTML es un lenguaje de definición de páginas sencillo y potente además de porta-ble a cualquier tipo de plataforma gráfica que permite combinar imágenes, textos, enlaces y otros elementos. Las páginas HTML son archivos de texto plano que con-tienen etiquetas para definir el aspecto de las páginas.

Navegador

Util Capa Abstracta del SO

Sistema Operativo

Analizador de Peticiones Registro de Transacciones

Control de Acceso Manejador de Recursos

DependenciaConexión de red Control deFlujoSubsistema

Recepción

Experto en eLearningTecnologías y Métodos de Formación en Red

35

Page 39: Sistemas Operativos, Bases de Datos, Servidor Web

<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: Página Web estática.

Páginas Web dinámicasLas páginas dinámicas usan extensiones que generalmente reflejan el lenguaje o tec-nología que se utilizó para crear el código, como “php”18 (Hypertext Preprocesor), “jsp” (Java Server Pages), etc. En estos casos, el servidor debe estar configurado para esperar y entender estas tecnologías. Es necesario utilizar, aparte del HTML, otros lenguajes de programación para ofrecer ese dinamismo, pero aún así, el HTML si-gue siendo la base del desarrollo de las Páginas Web. Existen dos tipos de páginas dinámicas teniendo en cuenta donde se ejecutan:

Páginas dinámicas 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 características del Navegador (versiones). Como ventajas las páginas descargan al servidor de tareas, ofrecen respuestas inmediatas a las acciones del usuario y permiten el uso recursos de la máquina local.

El código 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 programación utilizados son VBScript, JScript (ambos de Mi-crosoft) y JavaScript (de Netscape), permiten realizar validaciones de datos reco-gidos en las páginas antes de enviarlos al servidor y proporcionan un alto grado de interacción con el usuario dentro del documento.

Otras de las posibilidades de los navegadores es la gestión del llamado HTML dinámico (Dinamic HTML, DHTML). Éste está compuesto de HTML, hojas de estilo en cascada, (Cascade Style Sheets, CSS), modelo de objetos y scripts de programación que permiten formatear y posicionar correctamente los distintos elementos HTML de las Páginas Web, permitiendo un mayor control sobre la visualización de las páginas.

Experto en eLearningTecnologías y Métodos de Formación en Red

36

18 PHP es uno de los lenguajes de programación más utilizado por la comunidad de desarrolladores. Un ejemplo de ello es la herramienta para la gestión de cursos en línea Moodle.

Page 40: Sistemas Operativos, Bases de Datos, Servidor Web

En esta línea, los navegadores han ido un poco más allá y permiten la visualiza-ción de documentos XML (eXtensible Markup Language) después 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.

Además, los navegadores permiten la ejecución de aplicaciones dentro de los documentos mostrados. Las dos posibilidades más populares son la tecnología ActiveX y los applets Java.

Páginas dinámicas de ServidorSe ejecutan en los servidores. Con ellas se puede hacer todo tipo de Aplicaciones Web. Son útiles para procesar información situada en bases de datos localizadas en el servidor Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML, mezclado con el código HTML.

Las ventajas de este tipo de programación son que el cliente no puede ver los scripts, ya que se ejecutan y transforman en HTML antes de enviárselos. Ade-más son independientes del Navegador utilizado, ya que el código que reciben es HTML.

Como desventajas se puede señalar que será necesario un servidor más potente ya que toda la carga de procesamiento reside en él.

Para escribir páginas dinámicas de servidor existen diversos lenguajes. Entre otros:

• Common Gateway Interface (CGI) comúnmente escritos en Lenguaje Perl• Active Server Pages (ASP)

• Hipertext Preprocesor (PHP)• Java Server Pages (JSP).

EjemplosBásicamente existen dos sistemas operativos dominantes en el mercado de los Ser-vidores Web: Unix y Windows. Los Servidores Web más 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, más simples pero más rápidos, son lighttpd y thttpd.

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

Experto en eLearningTecnologías y Métodos de Formación en Red

37

Page 41: Sistemas Operativos, Bases de Datos, Servidor Web

fuente siempre que les reconozcas su trabajo. La popularidad de este software li-bre, grandemente reconocido en muchos ámbitos empresariales y tecnológicos, vie-ne dada por sus características :

• Apache es un Servidor Web potente y flexible.• Es independiente de la plataforma, corre en una multitud de Sistemas Opera-

tivos, lo que lo hace prácticamente universal. • Apache es una tecnología gratuita de código fuente abierto. El hecho de ser

gratuita es importante pero no tanto como que se trate de código 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 ningún secreto, sin ninguna puerta trasera ;).

• Permite Autenticación de diferentes tipos, por ejemplo, permite el uso de ba-ses de datos para la autenticación de usuarios. De esta forma se puede restrin-gir el acceso a determinadas páginas de un sitio web de una forma sencilla y de fácil mantenimiento.

• Apache es un servidor altamente configurable de diseño modular. Es muy sen-cillo ampliar las capacidades del Servidor Web Apache. Actualmente existen muchos módulos para Apache que son adaptables a este, y están ahí para que los instalemos cuando los necesitemos. Otra cosa importante es que cualquie-ra que posea una experiencia en la programación del lenguaje C o Perl puede escribir un modulo para realizar una función determinada. Este diseño permite a los administradores de Sitios Web elegir que características van a ser inclui-das en el servidor seleccionando que módulos se van a cargar, ya sea al compi-lar o al ejecutar el servidor (por ejemplo el módulo PHP en la versión 2 y pos-teriores de Apache).

• Apache permite la creación de Sitios Web Dinámicos mediante:• El uso de CGI’s.

• El uso de Server Side Includes (SSI).• El uso de lenguajes de Scripting como PHP, javascript, Python.• El uso de Java y páginas jsp.

• Apache te permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor. Es posible configurar Apache para que ejecute un determinado script cuando ocurra un error en concreto.

• Tiene una alta configurabilidad en la creación y gestión de logs. Apache permi-te la creación de ficheros 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 generación de los logs de error. Este formato es usado por varios Servidores Web y existen herramientas para el análisis de ficheros con este formato

• Tiene gran escalabilidad porque se pueden extender las características de Apa-che hasta donde nuestra imaginación y conocimientos lleguen debido a que Apache soporta Dinamic Shared Object (DSO). Gracias a ello se pueden cons-truir módulos que le den nuevas funcionalidades que son cargadas en tiempos de ejecución.

Experto en eLearningTecnologías y Métodos de Formación en Red

38

Page 42: Sistemas Operativos, Bases de Datos, Servidor Web

Apache únicamente fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

Internet Information ServerIIS sólo funciona bajo servidores Microsoft. Debe ser usado bajo licencia, esto es, hay que pagar por él, con esto te ofrecen un servicio técnico y cierto tipo de garan-tías, 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 módulos que le dan capacidad para procesar distintos tipos de páginas, por ejemplo Microsoft incluye los de Active Server Pages (ASP) y ASP.NET. También pueden ser incluidos los de otros fabricantes, como PHP o Perl.

IIS es ligeramente más intuitivo que Apache, por el hecho de disponer de una interfaz gráfica para su configuración, pero su integración total con el sistema hace difícil distinguir qué opciones afectan al servidor y cuáles 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.

Experto en eLearningTecnologías y Métodos de Formación en Red

39