DEFINICIÓN DE SISTEMA OPERATIVO.
Las computadoras sin software no ofrecen ninguna utilidad. El software para computadoras puede ser clasificado en dos tipos: los programas de sistema que controlan la operación de la computadora y los programas de aplicación, los cuales resuelven los problemas de los usuarios. Dentro de los programas de sistemas, los más importantes son los Sistemas Operativos debido a que son estos los que permiten controlar los recursos de la computadora y constituyen la base sobre la que se ejecutan los sistemas de aplicación.
Los sistemas de computación modernos están por lo general compuestos por uno o mas procesadores, bloques de memoria, relojes, discos, terminales, interfaces de red y otros dispositivos de E/S, es decir, son sistemas complejos cuyos componentes intervienen en comunidad para el cumplimiento de determinadas funciones. Confeccionar programas capaces de utilizar y controlar estos componentes de una forma eficaz, resulta una labor muy compleja. Si además de los problemas particulares que se presentan en la programación de sistemas de aplicación, los programadores tuvieran que programar el control del funcionamiento básico de cada elemento de la computadora, seria prácticamente imposible escribir todos los programas requeridos a tal efecto, dentro de un marco de tiempo y recursos lógico.
El sistema operativo constituye una interfaz entre los componentes de Hardware del sistema de cómputo y los programas de aplicación. Puede verse como una representación virtual de las funciones básicas de la computadora a un nivel de abstracción menor que el ofrecido por los distintos niveles del hardware.
El sistema operativo libera a los programadores de la complejidad inherente al control directo de los dispositivos y proporciona un conjunto de instrucciones más simples para su uso.
Por arriba del sistema Operativo esta el resto del software de sistema. El interprete de comando (Shell), compiladores, editores y programas de aplicación independientes similares a ellos. Definitivamente, estos programas no forman parte del sistema operativo, aunque el fabricante de la computadora los incluya con el. El sistema operativo es esa parte del software que se ejecuta en modo central o modo supervisión. Esta protegida contra la alteración por parte del usuario y por el hardware (no se consideran microprocesadores antiguos que no tenían ninguna protección por hardware). Los compiladores y editores se ejecutan en modo usuario. Si el usuario no desea utilizar un compilador en particular, tiene la libertad de escribir el suyo propio, si lo desea, sin embargo no puede escribir su propio controlador de interrupciones del disco, que es parte del sistema operativo y que por lo general queda protegido por el hardware de los intentos de escritura en él por parte del usuario.
La definición de sistema operativo es un tanto difícil debido a que el mismo cumple dos papeles fundamentales:
El sistema operativo como una maquina extendida
La arquitectura a nivel de lenguaje de maquina (conjunto de instrucciones, organización de la memoria, E/S y estructura del BUS) de la mayoría de las computadoras es primitiva y difícil de programar, sobre todo las funciones de entrada y salida.
Los programadores normalmente prefieren un nivel de abstracción más sencillo y de más alto nivel con el cual trabajar. Una visión más sencilla de los dispositivos de almacenamiento consiste en tratarlos como una colección de archivos, donde cada uno tiene un nombre para su identificación. Cada archivos puede ser abierto para lectura o escritura, después se lee o se escribe en el y por ultimo se cierra. Los detalles para el control directo de los elementos físicos del sistema y su coordinación no aparecen en este nivel de representación.
El sistema operativo es el programa que se encarga de lograr que al programador le resulte transparente una gran cantidad de detalles involucrados en el control de la E/S, provocando que el usuario programador reciba una interfaz mas sencilla a un nivel de abstracción mucho mas simple y fácil de utilizar que el hardware subyacente.
En esta perspectiva la función del sistema operativo es presentar al usuario el equivalente de una maquina extendida o maquina virtual que es mas fácil de programar que el hardware subyacente.
El sistema operativo como controlador de recursos
El sistema operativo existe además para controlar todas las piezas de un sistema complejo. Debido a que las computadoras modernas constan de procesadores, memorias, cronómetros, disco, terminales, interfaces de red, entre otros dispositivos, la labor del sistema operativo es la de proporcionar una asignación ordenada y controlada de los procesos, memorias y dispositivos de E/S para los programas que compiten por ellos.
Si una computadora tiene varios usuarios, es todavía más evidente la necesidad de control y protección de la memoria, los dispositivos de E/S y demás recursos. Esta necesidad surge porque a menudo los usuarios necesitan compartir costosos recursos. Sin señalar el aspecto económico, también se requiere a menudo compartir la información entre aquellos usuarios que trabajan en conjunto. Desde este punto de vista el sistema operativos sostiene su principal tarea que es la de llevar un registro de la utilización de los recursos, dar paso a las solicitudes de recursos, llevar la cuenta de su uso y mediar entre las solicitudes en conflicto de los distintos usuarios y programas.