Sistemas Operativos*
Necesidad
La nceseidad del SO se ve reflejada en su importancia de dicho sistema, ya que gestiona los recursos del hardware, simplifica el manejos de la computadora, permitiendo una ejecucion de los programas sin que haiga conflicto entre estos.
Importancia
La importancia de los sistemas operativos nace históricamente desde los años 50, cuando se hizo evidente que el operar un ordenador por medio de tableros enchufables en la primera generación y luego por medio del trabajo en lote en la segunda generación se podía mejorar notoriamente, pues el operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las características contempladas en la definición de lo que es un programa. Es decir, se comenzó a ver que las tareas mismas del operador podían plasmarse en un programa, el cual a través del tiempo y por su enorme complejidad se le llamó "Sistema Operativo". Así, tenemos entre los primeros sistemas operativos al Fortran Monitor System (FMS) y el IBSYS.
¿Que es?
El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos.
En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.
Existen diveros tipos de sistemas que son los siguientes.
*Sistemas operativos por lotes: Los sistemas operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Cuando estos sistema son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los sistemas operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.
*Sistemas operativos en tiempo real: Los sistemas operativos de tiempo real son aquellos en donde no tiene importancia el usuario, sino los procesos. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
*Sistemas operativos de multiprogramación(o sistemas de multitarea): Soporta la ejecución de dos o más trabajos activos al mismo tiempo, y tiene varias tareas en la memoria principal. Estos sistemas operativos se caracterizan por tener múltiples programas activos, compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.
*Sistemas operativos de tiempo compartido: Estos sistemas permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S; son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo.
*Sistemas operativos distribudios: Estos sistemas permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores; este conjunto de procesadores puede estar en un equipo o en diferentes, en este caso es transparente para el usuario.
*Sistemas operativos de red: Son aquellos que mantienen a dos o más computadoras unidas a través de algún medio de comunicación, con el objetivo de poder compartir los diferentes recursos y la información del sistema.
*Sistemas operativos paralelos: En estos sistemas se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
COMPONENTES DE UN SISTEMA OPERTIVO
Entre los componentes de un sistema operativo tenemos:
- *Gestion de proceso: Es un programa de ejecucion que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de crear y desctruir los procesos, parar y reanudar los procesos,ofrecer mecanismos para que se comuniquen y sincronicen.
- *Gestion de la memoria principal: Es una gran tabla de palabras o bytes que se referencian cada una mediante una direccion unica. Este almacen de datos de rapido accesos es compartido por la CPU y los dispositivos de E/S.
- *Gestion del almacenamiento secundario: Es necesario ya que la memoria principal es volatil y ademas muy pequeña para almacenar todos los programas y datos. Tambien es necesario mantener los datos que no convenga mantener en memoria principal.
- *El sistema E/S: Es un de almacenamiento temporal, una interfaz de manejadores de disositivos y otra para dispositivos concreto.
- *Sistema de archivos: Son colecciones de informacion relacionada,de finidas por sus creadores.Estos almacenan programas y datos tales como imagenes, textos, informacion, de bases de datos.
*Sistema de proteccion: Es el mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema el SO se encarga de didtinguir entre uso y autorizado y no autorizado, especificar los controles de seguridad a realizar.
*Sistemas de comunicaciones: para mantener las comunicaciones con otros sistemas es necesario poder controlar el envio y recepcion de informacion a traves de las interfaces de red. tambien hay que crear y mantener puntos de comunicaicon que sirva a las aplicaciones para enviar y mantener puntos de comunicaicon que sirva a las aplicaciones para enviar y recibir informacion, y crear y mantener conexiones virtuales entre aplicaciones que estan ejecuntandose localmante y otras que lo hacen remotamente.
Funciones basicas
Los sistemas operativos, en su condicion de capa software que posibilitan y simplifican el manejo de la computadora, desempeñan una serie de funciones basicas esenciales para la gestion del equipo. Entre las mas destacables mencionamos:
- Proporcionar mas comodidad en el uso de un computador.
- Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos.
- Brindar una interfaz al usuario, ejecutando instrucciones.
- Permitir que los cambios debidos al desarrollo del propio SO se pueden realizar sin interferir con los servicios que ya se prestaban.
Un sistema operativo desempeña 5 funciones basicas en la operacion de un sistema informatico; suministro de interfaz al usuario, administracion de recursos, administracion de archivos, administracion de tareas y servicio de soporte y utilidades.
Administracion de procesos.
Un proceso es simplemente, un prorama en ejecucion que necesita recursos para realizar su tarea.
Un programa consta, al menos, de un proceso, y un proceso, al menos, de un thread. Cuando un programa tiene varios procesos, lo normal es que cada uno ejecute un código distinto, los cuales se encuentran en ficheros ejecutables separados. Dos procesos solo pueden compartir una zona de memoria si esta es definida expresamente como tal. Así mismo, es en este caso cuando los sistemas de sincronización a la hora de compartir memoria se vuelven especialmente necesarios e importantes.
Estados y transiciones de los procesos:
Los estados en que pueden encontrarse los procesos los controla el S.O. y son transparentes al usuario.
Su división consta de:
Estados activos: Son aquellos que compiten por el procesador o están en condiciones de hacerlo:
En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc.
El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.
Estados inactivos: Son aquellos que no pueden competir por el procesador, pero pueden volver a hacerlo si se soluciona el problema que los ha dejado “en suspenso” (avería de un dispositivo E/S):
Suspendido bloqueado: proceso que ha sido suspendido y que además está a la espera de un evento para desbloquearse.
Suspendido preparado: proceso que ha sido simplemente suspendido.
Transiciones de estado de los procesos
De ejecución á Bloqueado: Al iniciar una operación de E/S, al realizar una operación WAIT sobre un semáforo a cero.
De ejecución á Listo: Por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.
De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificación de procesos).
De Bloqueado á Listo: Se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.