|
Un
Sistema Operativo es un programa que actúa como intermediario entre el
usuario y todos los recursos que conforman un computador; estos recursos no
tienen ninguna utilidad si no existe dicho sistema operativo. Son un
conjunto de dispositivos mecánicos con circuitos asociados, como las impresoras
o los discos rígidos, o solamente electrónicos, como las memorias o los procesadores,
pero sin utilidad en sí mismos. El propósito principal del sistema operativo
es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El
objetivo primario es, entonces, lograr que el sistema de computación se use
de manera cómoda, y en segundo lugar que los recursos del computador se empleen
de manera eficiente.
En
este punto sería adecuado definir dos conceptos que son ampliamente usados o
escuchados, pero que quizás muchos no tengan en claro de que se trata. Cuando
nos referimos a los recursos del computador que el sistema operativo tiene que
administrar, nos referimos al HARDWARE, los componentes físicos de los
computadores, por ejemplo, procesadores (Pentium, Celeron, PowerPC, Alpha),
memorias (RAM, ROM, Caché), dispositivos de almacenamiento (discos rígidos,
discos flexibles), otros dispositivos de entrada/salida (teclado, ratón, monitor).
Ahora, todo lo que no es físico es lógico y es llamado SOFTWARE. Son
los programas que se ejecutan sobre el hardware, por ejemplo, sistemas operativos
(Windows, Mac OS, Linux), aplicaciones (Word, Excel, Netscape, Real Player),
herramientas de desarrollo (Visual C++, JDK, Visual Basic).
Pero
por si queda alguna duda existen dos definiciones que clarificarán aún más a
estos dos conceptos:
“La
forma más fácil de ver la diferencia entre hardware y software es patearlo,
si le duele el pie, es hardware”, Carl Farrell, profesor de Ciencias
de la Computación en Hawaii Pacific University.
“El
hardware es la parte de un computador que deja de funcionar cuando derrama cerveza
sobre ella”, Dave Barry de Cyberspace.
UN POCO DE HISTORIA
A
finales de los 40's el uso de computadoras estaba restringido a aquellas empresas
o instituciones que podían pagar su alto precio, y no existían los sistemas
operativos. En su lugar, el programador debía tener un conocimiento y contacto
profundo con el hardware, y en el infortunado caso de que su programa fallara,
debía examinar los paneles de luces indicadoras del estado del computador para
determinar la causa del fallo y poder corregir su programa.
La
importancia de los sistemas operativos nace históricamente desde los 50's, cuando
se hizo evidente que el operar un computador por medio de tableros en la primera
generación se podía mejorar notoriamente, pues el operador realizaba siempre
una secuencia de pasos repetitivos. Se comenzó a ver que las tareas mismas del
operador podían plasmarse en un programa.
Surge
en la tercera generación de computadoras el concepto de la multiprogramación,
porque debido al alto costo de los computadores era necesario idear un esquema
de trabajo que la mantuviese más tiempo ocupada.
En
la cuarta generación la electrónica avanza hacia la integración a gran
escala, pudiendo crear circuitos con miles de transistores en un centímetro
cuadrado y ya se hace posible hablar de los computadores personales y las estaciones
de trabajo. Surgen los conceptos de interfaces amigables intentando así atraer
al público en general al uso de las computadoras como herramientas cotidianas.
Se hacen populares sistemas operativos como el MS-DOS y UNIX.
Para
mediados de los 80's, comienza el auge de las redes de computadores y la necesidad
de sistemas operativos en red y sistemas operativos distribuidos.
Internet se va haciendo accesible a toda clase de instituciones y se comienzan
a dar muchas soluciones al querer hacer convivir recursos residentes en computadores
con sistemas operativos diferentes.
Para
los 90's el paradigma de la programación orientada a objetos cobra auge, así
como el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan
crearse para ser ejecutadas en una plataforma específica y poder ver sus resultados
en la pantalla o monitor de otra diferente. Los niveles de interacción se van
haciendo cada vez más profundos.
CLASIFICACIÓN A TRAVÉS DEL TIEMPO
Con
el paso del tiempo, los sistemas operativos fueron clasificándose de diferentes
maneras, dependiendo del uso o de la aplicación que se les daba:
|
Por lotes Se
reúnen todos los trabajos con características similares para realizarlos
al mismo tiempo, evitando la espera entre dos o más trabajos como sucede
en el procesamiento en serie. El rasgo característico de un sistema por
lotes es la ausencia de interacción entre el usuario y el trabajo mientras
éste se ejecuta. El trabajo se prepara y se envía. Tiempo después se recibe
la salida.
|
|
De tiempo real Son
aquellos que tienen restricciones temporales bien definidas,
por lo que el procesamiento debe llevarse a cabo dentro
de ciertos límites o el sistema fallará. Por lo general,
están subutilizados sus recursos con la finalidad de prestar
atención a los procesos en el momento que lo requieran.
Suele usarse como dispositivo de control en una aplicación
dedicada.
|
|
De multiprogramación (o multitarea) Se
distinguen por sus habilidades para poder soportar la ejecución de dos
o más trabajos “aparentemente” al mismo tiempo. Normalmente asigna los
recursos disponibles (procesador, memoria, periféricos) de forma alternativa
a los programas que los solicitan, de manera que el usuario percibe que
todos funcionan a la vez.
|
|
De tiempo compartido Simulan
que todos los recursos del sistema se encuentran
disponibles para todos los usuarios. El usuario hace una
petición al computador, este la procesa tan pronto
como le es posible, y la respuesta aparecerá en la
terminal del usuario.
|
|
Distribuidos Permiten
distribuir trabajos, tareas o procesos, entre un conjunto de procesadores.
Puede ser que este conjunto de procesadores esté en un equipo o en diferentes,
en todos los casos es trasparente para el usuario. Los sistemas distribuidos
deben de ser muy confiables, ya que si un componente del sistema se descompone
otro componente similar debe de ser capaz de reemplazarlo.
|
|
De red Son
aquellos sistemas que mantienen a dos o más computadoras unidas a través
de algún medio de comunicación (físico o no), con el objetivo primordial
de poder compartir los diferentes recursos y la información del sistema.
|
SERVICIOS QUE DEBE PRESTAR UN SISTEMA OPERATIVO
Algunos
de los servicios que deben prestar los sistemas operativos son:
- Ejecución
de programas: el sistema tiene que ser capaz de cargar un programa
en memoria y ejecutarlo.
- Interpretación
de instrucciones: que permiten al usuario comunicarse con el ordenador.
- Control
y administración de recursos:coordina y manipula el hardware del computador,
como la memoria, las impresoras, las unidades de disco, el teclado o el
ratón.
- Manejo
de Archivos: un archivo es un conjunto de información, que se encuentra
almacenada o guardada en la memoria principal del computador, en el disco
duro, en el disquete flexible o en los discos compactos. El sistema operativo
debe facilitar las herramientas necesarias para que, por ejemplo, los
programas puedan leer, escribir y eliminar archivos.
- Detección
y recuperación de errores:el sistema operativo necesita constantemente
detectar posibles errores. Los errores pueden producirse en el procesamiento,
en los dispositivos de E/S o bien en el programa de usuario. Para cada
tipo de error, debe adoptar la iniciativa apropiada que garantice una
computación correcta y consistente.
- Secuencia
de tareas:El sistema operativo debe administrar la manera en que se
reparten los procesos.
- Protección:
Evitar que las acciones de un usuario o proceso afecten el trabajo que
esta realizando otro usuario u otro proceso.
CLASIFICACIÓN SEGÚN SUS CARACTERÍSTICAS
- Administración de tareas
- Monotarea:
si solamente puede ejecutar un programa (aparte de los procesos del propio
sistema operativo) en un momento dado.
- Multitarea:
si es capaz de ejecutar varios programas al mismo tiempo.
- Administración de usuarios
- Monousuario:
Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
- Multiusuario:
Si permite que varios usuarios ejecuten simultáneamente sus programas.
- Manejo de recursos
- Centralizado:
utiliza los recursos de un solo ordenador.
- Distribuido:
utiliza los recursos de más de un ordenador al mismo tiempo en forma transparente
para el usuario.
- Manejo de procesador
- Uniprocesador:
es aquél que es capaz de manejar solamente un procesador del computador.
- Multiprocesador:
es aquél que es capaz de distribuir la carga de trabajo entre dos o más
procesadores.
En nuestra próxima edición de Estr@tegia Magazine veremos un poco más en detalle
cuales son y como se clasifican los recursos de hardware que administran los
sistemas operativos.
|