Está en la página 1de 19

Introducción

Un sistema informático esta formado por dos partes, la parte hardware (parte material)
y la parte software (parte inmaterial). Para que el hardware pueda realizar su trabajo se
necesita tener un conjunto de normas y órdenes para coordinar todos los procesos que
se van realizar. A este conjunto de normas, órdenes, etc. se le puede denominar como
software, con el cual se manejan todos los recursos del sistema informático.
El término software en su origen del inglés, significa producto etéreo,
pensamiento, y es producto de la inteligencia de las personas para solucionar
problemas. Estas ideas por si solas no las puede conocer el ordenador luego se tienen
que fijar en algún soporte físico para que pueda entenderlas la máquina.
El software se puede dividir en dos grandes grupos.
El primero se denomina software de sistema y esta compuesto por programas
imprescindibles para el funcionamiento del hardware y otros que están destinados para
hacer sencillo el uso del ordenador y sus recursos. El segundo grupo se denomina software
de aplicación y está compuesto por programas destinados al desarrollo de cualquier trabajo
controlado por el usuario.
El elemento más importante del software de sistema es el sistema operativo y se define
como un conjunto de programas y funciones que controlan el funcionamiento del hardware
y sus recursos (procesador, memoria interna, dispositivos de entrada/salida e información)
de una forma sencilla y transparente para el usuario.
Definición de Sistema Operativo
El objetivo fundamental de los sistemas operativos 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 programa monopolice alguno de ellos.
Un sistema operativo es un programa (o conjunto de programas) de control que tiene
por objeto facilitar el uso de la computadora y conseguir que ésta se utilice
eficientemente.
Es un programa de control, ya que se encarga de gestionar y asignar los
recursos hardware que requieren los programas. Los recursos son: el procesador
(CPU), la memoria, los dispositivos o periféricos de entrada/salida. Por ejemplo, si
varios usuarios están utilizando la misma computadora, han de asignarse 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 función de asignar los recursos a cada
programa, el sistema operativo se encarga de contabilizarlos y de la seguridad (de que
un usuario no pueda acceder sin autorización a la información de otro, por ejemplo).
El sistema operativo facilita el uso de la computadora. Véase el siguiente 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 acceder, etc. Por otra
parte, estas instrucciones u operaciones son comunes para grabar 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, contiene módulos de gestión de
entradas/salidas que evitan a los usuarios tener que incluir 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 usuario las características hardware concretas de
los dispositivos.
El sistema operativo también hace que la computadora se utilice de forma eficiente. Para
poner de manifiesto cómo el sistema operativo puede incrementar la eficiencia
considérese un ejemplo sencillo. Los programas tradicionalmente 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.
Evolución de los Sistemas Operativos
La evolución de los sistemas operativos ha sido consecuencia de los avances
producidos en el hardware de las computadoras, desde las primeras que se
construyeron, hasta la gran variedad de ellas que existen hoy en día. Por esta razón,
se consideran cuatro niveles o generaciones de sistemas operativos.

Primera generación
Está constituida por los sistemas operativos básicos. Surgieron en los años cincuenta,
con las primeras computadoras, donde el trabajo realizado consistía en controlar y
secuenciar la ejecución de programas y sus datos, que en aquella época estaban
sustentados por tarjetas perforadas.
Estas tarjetas tenían un funcionamiento más o menos simple: a cada número o
letra le corresponde una columna. Los números tienen una sola perforación por
columna, mientras que las letras tienen dos. También se pueden representar con
perforaciones símbolos especiales como (, . ; : - +, etc.) y algunos otros. Estos
símbolos pueden tener dos o tres perforaciones por columna. No todos los fabricantes
usaban los mismos símbolos y claves. Para introducir la información a una
computadora por tarjetas perforadas, éstas se alimentaban a una lectora de tarjetas la
cual contaba con unas escobillas o con celdas fotoeléctricas que detectan cuándo
existen agujeros y eran capaces de generar una serie de impulsos eléctricos que los
circuitos de la unidad de control sabían interpretar y enviar a la memoria o unidad
aritmética. Un lector de tarjetas típico podía "leer" de 100 a 2000 tarjetas por minuto.
Las tarjetas perforadas como mecanismo de salida solo actuaban de manera inversa,
en lugar de leerlas, un mecanismo de salida las perfora. Naturalmente se utilizaban las
mismas claves, de manera que una tarjeta que se obtuviera de una perforadora podía
ser leída seguidamente por una lectora de tarjetas sin ningún procesamiento adicional.
Apareció la denominada secuencia automática de trabajos, consistente en
intercalar entre las tarjetas de un programa y otro, una serie de tarjetas de control con
instrucciones o comandos del lenguaje de control de trabajos. El programa que
controlaba el secuenciamiento de los trabajos se denominó monitor y constituyó el
primer sistema operativo.
También aparece el concepto de nombres de archivo del sistema para lograr
independencia de información. Los laboratorios de investigación de General Motors fueron
los primeros en poner en operación un sistema operativo para su IBM 701.
Segunda generación
Tuvo lugar en la década de los sesenta y su ayuda a la programación y a la gestión de los
trabajos fue más decisiva, proporcionando nuevos métodos de trabajo con el fin de
incrementar el rendimiento de uso de procesador. La diferencia de velocidad entre el
procesador y los periféricos para la realización de operaciones de entrada/salida, hacen que
el tiempo libre de espera del procesador sea excesivamente grande y por ello, surgieron
métodos para minimizarlo.
Aparecen los procesos online y offline que consisten en conectar directamente dos
dispositivos más rápidos.
Otras técnicas para mejorar el rendimiento que han venido usando los sistemas operativos
de este nivel son las denominadas buffering y spooling consistentes en el almacenamiento
de datos procedentes de los periféricos en memorias intermedias (buffer) en el primer caso
o en discos magnéticos para el segundo caso. También se usan técnicas de acceso directo a
memoria (DMA) en las que el procesador no interviene para realizar operaciones de
lectura/escritura en la memoria.
Algunos dispositivos de entrada/salida envían datos a la memoria más rápido de lo que el
microprocesador puede manejar. El controlador de DMA (Direct Memory Access) es un
circuito integrado dedicado que puede enviar y recibir datos más rápido que el
microprocesador. Por ello, dispositivos como discos ópticos y magnéticos pueden utilizarlo
para acceder a la memoria del sistema. El controlador de DMA toma prestados los buses de
datos, de direcciones y de control del sistema y envía un número programado de bytes
desde un dispositivo de entrada/salida hasta la memoria.
A mediados de los sesenta las empresas MIT, AT&T y General Electric se juntaron para
realizar un gran proyecto, se trataba de desarrollar un sistema operativo de gran potencia al
que denominaron MULTICS. El proyecto fue un fracaso aunque uno de los programadores
del MIT que había trabajado en el proyecto, Ken Thompson, y un grupo de colaboradores
decidieron escribir una versión miniatura de MULTICS.
Uno de los compañeros de Thompson, Brian Kernigham, en una reunión de equipo
bromeando llamó al sistema de Ken Thompson, UNICS. Éste tuvo un gran éxito y Ken
decidió que UNIX era un nombre más atractivo que UNICS. Había nacido el tan hoy
extendido UNIX.
Tercera generación
Aparece en la década de los setenta. Para mejorar el rendimiento, se utiliza el concepto de
multiprogramación. Consiste en la ejecución en un mismo procesador, de varios programas a
la vez. Para ello existen las modalidades de proceso por lotes (batch), el tiempo compartido
(time sharing) y el tiempo real (real time) en el que, a través de políticas de asignación, se
ejecutan varios programas intercalando la ejecución de sus instrucciones en el procesador. El
proceso batch consiste en ir solicitando la ejecución de procesos que no requieren
interacción con el usuario y estas peticiones van situándose en una cola, siendo el sistema
operativo el que da entrada a un conjunto de ellos para su ejecución.
Los procesos actuales son, mayormente, interactivos o conversacionales y necesitan un
determinado diálogo con el usuario. Por ello aparece el tiempo compartido, consistente en
un conjunto de terminales que están continuamente solicitando atención del procesador,
siendo el sistema operativo quien va intercalando dicha atención entre los distintos
usuarios. Por último, el tiempo real es la posibilidad que tienen determinados procesos en
un sistema multiprogramado de obtener respuestas del procesador en un tiempo muy
pequeño. Estas tres modalidades pueden combinarse.
Por aquel entonces Apple sacó el primer ordenador personal tal. El éxito fue tal que
enseguida otras casas empezaron a desarrollar ordenadores personales, entre ellas emergió
IBM. Cada una de esas casas diseñó una serie de SSOO para sus máquinas: Apple con su
MacOS, IBM con el CP/M, que pronto fue sustituido por un sistema operativo que diseñaron
un jovencísimo Bill Gates y sus colegas, el DOS. Ambos SSOO para su época fueron
revolucionarios ya que el DOS intentaba incorporar el manejo de archivos del UNIX pero
limitando la potencia de éste a un solo usuario. Por contra, el MacOS representaba un
sistema totalmente nuevo basado en una interfaz gráfica, algo que rompió la tendencia de los
SSOO que se diseñaron hasta entonces. Mientras IBM optó por compartir sus licencias a todo
fabricante, Apple no lo hizo.
Esto fue la base del mercado de los PCs que conocemos hoy en día. Una arquitectura basada
en la conectividad de fabricantes: PC y compatibles, y una arquitectura totalmente particular
como son los Apple.
Cuarta generación
Está constituida por las últimas innovaciones técnicas en los sistemas operativos, a partir de
los años ochenta. En primer lugar, indicar que no se trata de incrementar la velocidad del
procesador en sí, sino de aumentar la seguridad, la velocidad de proceso y las prestaciones que
pueden ofrecerse al usuario. Hay sistemas que controlan lo que se denomina proceso
distribuido, consistente en la conexión en paralelo de varias computadoras compartiendo
memoria, buses y terminales con el fin de ganar seguridad en el servicio, debido a que el
sistema operativo va repartiendo el trabajo solicitado entre las distintas computadoras e
incluso ante el fallo o caída de una de ellas no se interrumpe el servicio por parte del resto.
Para incrementar la velocidad de proceso, existe el multiproceso, consistente en computadoras
que poseen más de un procesador, con lo que el sistema operativo controla el reparto de
trabajo entre los distintos procesadores, aumentando el número de instrucciones que la
máquina puede ejecutar por unidad de tiempo.
Por último, existen sistemas operativos en red para controlar el trabajo que se realiza en una
red de ordenadores y entornos operativos que permiten el uso de un sistema operativo con
mayor facilidad y además, aumentando sus prestaciones.
En cuanto a la historia, a mediados de los 80 surgió de la alianza Microsoft-IBM un SSOO que
en principio sería destinado a sustituir el DOS, el OS/2. Este sistema aprovechaba las
características innovadoras de los PCs de entonces e introdujo un concepto nuevo respecto al
DOS, la multitarea. Poco tiempo después se produjo una ruptura sonada, el dúo Microsoft-
IBM se rompía. Por un lado IBM seguiría con el OS/2 y por otro lado Microsoft desarrollaría
un programa basado en el carácter intuitivo del interfaz gráfico del Macintosh, el Windows.
Este programa, que en principio fue catalogado como “el juguete de los niños ricos”, ya que
imperaba el DOS sobre el PC, en poco tiempo se convirtió en el programa más vendido para
PCs. A finales de 1991 surge el fenómeno más revolucionario que ha existido en la
informática. Linus Torvalds, un estudiante de informática finlandés, quiere desarrollar
un clónico del UNIX, hasta entonces el único SO que se utilizaba a nivel empresarial era ése.
Este nuevo proyecto se llamaría Linux, en honor a su fundador.
Para ello se le ocurrió solicitar ayuda por Internet. Mucha gente empezó a trabajar en el
sistema. A partir de la versión 0.99, en navidades de 1993, comenzó la distribución masiva. Lo
que llamaba la atención de este proyecto es que era gratuito. Y totalmente anónimo. No había
empresa alguna detrás de él que se hiciera responsable del proyecto. En estos días que la
marca lo es todo, no sólo resultó romántico sino que mucha gente se interesó por el tema. Hoy
por hoy, Linux es el clónico UNIX más distribuido del mundo y no sólo eso, sino que debido a
que toda su distribución se encuentra por Internet, salen versiones cada vez mejores en muy
poco periodo de tiempo, hasta llegar al caso de que son más rápidas las versiones UNIX de
Linux que las de los propios fabricantes tales como Sun, IBM o SCO. Si a eso se le suma que
el año 1996 la NASA eligió como mejor SO de redes al Linux RedHat v4.1, se puede dar una
ligera idea del fenómeno que ha supuesto Linux en el mercado.
Esquema general de un sistema operativo
Un sistema operativo, en general, está compuesto por un conjunto
de programas que, según la función que realizan, se pueden
clasificar como se indica en el siguiente esquema:

Gestión del Procesador


Gestión de Memoria
Programas
Gestión de E/S
de control
Gestión de Datos
Gestión de Sistema
Sistema
Operativo Traductores
Programas
de proceso
Programas de Servicio

Esquema general de un sistema operativo


Un sistema operativo ha de encargarse de las siguientes funciones:
• Asignación de CPU: planificación temporal de las diversas actividades.
• Control de recursos: asignación de recursos de forma racional como por ejemplo la
división de la memoria del ordenador entre los programas, o el control de las colas de E/S.
• Control de E/S: gestión de la información procedente de los periféricos o destinada a
ellos.
• Control de los errores y protección: información y solución en la medida de lo posible de
las situaciones anómalas.
• Interfaz con el usuario: facilitar el uso en la mayor medida posible.
• Facilidades contables: cálculo de costes de uso de CPU.
Un sistema operativo se puede estructurar jerárquicamente del
siguiente modo:

Intérprete de
Comandos
Aplicación
de Usuario • Gestión de Información
• Gestión de Memoria
• Gestión de E/S
• Gestión de CPU

Estructura jerárquica de
un sistema operativo