Es un conjunto de programas del sistema de cómputo los cuales trabajan de manera colaborativa para desempeñar papeles esenciales en el funcionamiento del mismo, el sistema operativo tiene que cumplir las siguientes funciones:
Una interfaz entre el usuario y la máquina, oculta la complejidad inerte al control del hardware, si no existiera tendríamos que manipular cada parte del sistema de cómputo para poder utilizarlo. Esta función aplica tanto para los usuarios comunes como para los desarrolladores, el simple hecho de poder compilar un programa dentro de un entorno de desarrollo integrado de manera sencilla al presionar una tecla, es una muestra de cómo nos facilita el uso de la máquina.
Gestor de recursos
El algoritmo planificador administra los programas, los recursos necesarios para correrlos, principalmente el porcentaje de uso del procesador. El sistema operativo es especial pues puede ejecutarse en modo núcleo y acceder a los registros del procesador para así modificar la secuencia de ejecución del sistema. El sistema operativo debe contabilizar los recursos, concederlos, saber quién los está utilizando y resolver conflictos entre los programas en competencia.
Evolución de sistemas operativos
Al inicio (entre los años 40 y 50), no se contaba con un sistema operativo. El programa trabajaba directamente con la máquina y sus registros directamente. Las máquinas solían ser muy grandes y costosas. Con suerte los programas arrojaban la salida a través de una impresora. Había dificultad para manejar un sistema, no se podían dar cuenta de que existía un error hasta que se mandara la impresión o si después de mucho tiempo nunca salía dicha impresión. Se utilizaba el procesamiento en serie o en lotes.
Problemas iniciales
Durante la planificación se tenía que reservar tiempo máquina. Digamos que se daban 10 minutos para realizar una tarea y si la ejecución demoraba un segundo más, a los 10 minutos exactamente se cortaba el proceso y no generaba un resultado.
El tiempo de configuración era muy largo, para realizar un trabajo se tenía que:
- Cargar en memoria el compilador.
- Cargar en memoria el programa en lenguaje de alto nivel.
- Cargar y enlazar el programa objeto.
El monitor
Una pieza de software que intentaba resolver los anteriores problemas, fue el primer esbozo de un sistema operativo y se encargaba de planificar cuánto tiempo le tocaba a cada programa para ejecutarse y quién seguía en la serie para de esta manera poder automatizar el proceso. De esta manera:
- El usuario ya no interactuaba físicamente para realizar lo anterior.
- Se crea una secuencia de trabajo por lotes para que lo utilice el monitor.
- Cuando un trabajo finaliza se devuelve el control al monitor, quien carga el siguiente trabajo.
Desde el procesador, "se pasa el control al monitor" significa que el procesador ejecuta el programa monitor y este le da el control a los programas usuario, su rol el ejecutar los trabajos lo más rápido posible sin que tarde más de lo que necesitan. Se utiliza un lenguaje de control de trabajo (JCL), el cuál es un tipo de especial de lenguaje de programación que permite al monitor saber qué compilador se va a utilizar y que los programas usuarios regresen el control al programa monitor.
No hay comentarios:
Publicar un comentario