Cuando
surgió la informática sólo tenían acceso las organizaciones que podían pagar
los altos precios; además se veía restringida sólo para aquellos que tenían
conocimiento, ya que si fallaba debían analizar las luces para saber cual era
el fallo; también se requería de los usuarios cierto conocimiento técnico y una
alta complejidad a la hora de escribir un programa y ejecutarlo.
Luego, como
una mejora, se introdujeron las tarjetas perforadas, como métodos de ingreso y
salida de información.
A 10 años
del comienzo de la informática se introdujeron los primeros sistemas operativos
llamados “monitor”. Actualmente, lo que un programador desea es una abstracción
simple de alto nivel con la cual trabajar. El sistema operativo es, en este
caso, el programa que oculta la verdad del hardware al programador y los
usuarios, presentándola de una forma simple y accesible; por eso, el sistema
operativo es el que presenta al hardware de una manera más sencilla que el
hardware implícito.
Las
computadoras actuales cuentan con procesadores, memoria, discos, relojes,
interfaces de red, dispositivos de almacenamiento, etc. En esta visión, el
sistema operativo permite ofrecer una distribución ordenada y controlada de los
procesadores, memorias y dispositivos de E/S entre los diversos programas que
compiten con ellos. El sistema operativo es el que maneja y protege la memoria.
Una de las tareas más complejas que realizan las computadoras es la
comunicación a través de los periféricos. También incluye programas que se
encargan de los detalles de comunicación con los periféricos o con el hardware
que controla estos periféricos.
En el caso
de las computadoras monousuario el
sistema operativo puede verificar que el usuario que trata de utilizar el
equipo está habilitado para ello. Más aún puede tener derechos sobre
determinados recursos del equipo pero no sobre todos los recursos. Cuando se
trata de computadoras multiusuario, o en el caso de redes de computadoras, la
tarea de administración de usuarios del sistema operativo es más compleja, ya
que los derechos de cada usuario pueden ser diferentes sobre cada máquina, cada
base de datos o cada periférico.
En general,
un sistema operativo puede definirse como el lugar donde se incorporan las
funciones de control del hardware de una computadora, de administración de sus
recursos físicos y de sus usuarios, así como el control efectivo de la
ejecución de los programas que en ella se carguen. Para que este funcione debe
haber un programa funcionando constantemente junto con las demás aplicaciones.
Las dos
funciones principales de un sistema operativo son: administrar los recursos de
hardware y software de la computadora y brindar facilidades a los usuarios para
su utilización. Pero, además, se puede definir como el administrador de los
recursos ofrecidos por el hardware para alcanzar un rendimiento eficaz de los
mismos. Los sistemas operativos construyen recursos de alto nivel, denominados
virtuales, a base de encubrir los realmente existentes de bajo nivel,
denominados fisicos. De esta manera, desde el punto de vista del usuario o de
un proceso, la máquina física es convertida por el sistema operativo en una
máquina virtual o máquina extendida, que, a diferencia de la física, ofrece
muchas más funciones y es más fácil de utilizar. También otra definición es,
como el conjunto de programas y funciones que ocultan los detalles del
hardware, ofreciendo al usuario una manera sencilla y flexible de acceder al
mismo. Este ocultamiento tiene dos objetivos: a) la abstracción, por la cual el
software da una visión global y abstracta de la computadora haciendo fácil su
uso ocultando por completo la gestión interna y b) la seguridad, necesaria para
restringir determinadas operaciones a los usuarios creando varios niveles de
privilegio, de tal forma que cada usuario tenga protegida su información y sus
procesos.
La buena
ejecución de un programa requiere una comunicación permanente con el sistema
operativo para acceder a los recursos de la computadora, recursos que el
sistema operativo controla y verifica. De este modo se puede detectar que una
orden de impresión escrita en un programa es imposible de ejecutar porque la
impresora no está encendida, o que un dato de un archivo no se puede recuperar
porque falla el dispositivo periférico, o que la ejecución de un programa ha
tardado más de un tiempo máximo determinado, etc. También el sistema operativo
monitorea el resultado de la ejecución para trasmitir al usuario el mensaje
adecuado resultante de la evolución de la ejecución.
Las
computadoras multiusuario (que tienen terminales conectadas a un gran
procesador central y permiten que sean utilizadas por varios usuarios a la
vez), las redes de computadoras o las modernas computadoras paralelas con
varios procesadores internos, pueden tener varios trabajos ejecutándose al
mismo tiempo (procesamiento concurrente). Esto exige que el sistema operativo
controle que hace cada proceso y permita que los mismos compartan datos y
recursos (es decir se comuniquen y se sincronicen). Por otra parte estos
múltiples procesos pueden tener diferente prioridad para acceder a los
recursos, lo que debe ser controlado también por el sistema operativo.
Por otra
parte, cada error de ejecución de una aplicación termina entregando el control
al sistema operativo que debe manejar la solución al error y también la
comunicación clara al usuario de sus causas.
Al poder
procesar concurrentemente varios trabajos, el sistema operativo debe controlar
la forma de usar la memoria de la computadora, de tal modo que un trabajo no
invada el espacio físico de otro. Los esquemas de administración de memoria
pueden ser muy sencillos o más sofisticada de modo de asignar y liberar memoria
en forma dinámica según los requerimientos y prioridades de los procesos.
Los datos
que se almacenan en la computadora se pueden proteger gracias al sistema
operativo; además este sistema debe facilitar las herramientas necesarias para
leer, escribir y eliminar archivos. Un sistema de archivos es una estructura de
directorios con algún tipo de organización el cual nos permite almacenar, crear
y borrar archivos en diferentes formatos. Los usuarios y las aplicaciones tienen
la necesidad de almacenar datos en algún medio, a veces por períodos largos y a
veces por instantes, cada aplicación y cada usuario debe tener ciertos derechos
con sus datos, como son el poder crearlos y borrarlos, o cambiarlos de lugar;
además de poder preservarlos de los demás.
Ahora, ya
habiendo analizado lo anterior, podemos hablar de las distintas partes que
componen el sistema de una computadora: a- Sistemas operativos: monousuarios (son
aquéllos que soportan a un usuario a la vez, sin importar el número de
procesadores que tenga la computadora o el número de procesos o tareas que el
usuario pueda ejecutar en un mismo instante de tiempo), multiusuarios (son
capaces de dar servicio a más de un usuario a la vez, ya sea por medio de
varias terminales conectadas a la computadora o por medio de sesiones remotas
en una red de comunicaciones); monotareas (son aquellos que sólo permiten una
tarea a la vez por usuario), multitareas (le permite al usuario estar
realizando varias tareas al mismo tiempo); uniproceso (es capaz de manejar
solamente un procesador de la computadora) y multiproceso (se refiere al número
de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos
para distribuir su carga de trabajo. Pueden trabajar de manera simétrica o
asimétrica: cuando se
trabaja de manera asimétrica, el sistema operativo selecciona a uno de los
procesadores el cual será el procesador maestro y será el encargado de
distribuir la carga de trabajo a los demás procesadores. Cuando se trabaja de
manera simétrica, los procesos o partes de ellos son enviados indistintamente a
cualquiera de los procesadores disponibles, teniendo una mejor distribución y
equilibrio.).
Como el
sistema operativo solo permite utilizar recursos del Hardware se tuvo que
incluir el sistema de aplicación que está a la altura de los requerimientos del
usuario. Estos últimos se dividen en aplicaciones: de negocios (como los
procesadores de textos, planillas de cálculo, autoedición, administración de
bases de datos, aplicaciones gráficas, aplicaciones corporativas, etc.),
utilitarios (permiten administrar y mantener la computadora, tales como antivirus, anti-espías, herramientas de mantenimiento de sistemas de
archivos, herramientas para mejorar rendimiento, recuperadores de bases de
datos, etc.), personales (para uso personal, como agendas, tareas para hacer,
correo electrónico, etc.) y entretenimiento (son los programas dedicados a los
juegos interactivos, también incluyen los programas educativos).
Fuente: conceptos de software, aulas virtuales, Unlu.