Concepto de Sistema Operativo desde el punto de vista del Usuario o como Gestor de Recursos. Definición de Sistema Operativo. Gráfico de máquina extendida
CONCEPTO DE SISTEMA OPERATIVO
Una computadora es una máquina de origen electrónico con una o más unidades de proceso y equipos periféricos controlados por programas almacenados en su memoria, que pueden realizar una gran variedad de trabajos. Todo este componente físico es denominado comúnmente Hardware.
Ahora bien, tiene que contar con información que le indique cómo utilizar todas sus unidades físicas o herramientas que la componen, esta información es lo que denominamos soporte lógico o Software.
Un Sistema Operativo es el soporte lógico que controla el funcionamiento del equipo físico. En la actualidad, su definición pueden darse desde distintos puntos de vista:
- Punto de vista del USUARIO
- Un Sistema Operativo es un conjunto de programas y funciones que ocultan los detalles del hardware, ofreciendo al usuario una vía sencilla y flexible de acceso al mismo. La ocultación tiene dos objetivos:
- Abstracción. El objetivo es dar una visión global y abstracta de la computadora haciendo fácil su uso ocultando por completo la gestión interna.
- Seguridad. Es necesario 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.
Punto de vista de GESTOR DE RECURSOS/ Seguridad
Un Sistema Operativo es el administrador de recursos ofrecidos por el hardware para alcanzar un eficaz rendimiento de los mismos.
Los recursos fundamentales que administra son:
- El procesador.
- La memoria.
- La entrada/salida.
- La información.
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, también conocida como máquina extendida, que, a diferencia de la física, ofrece muchas más funciones y más cómodas de utilizar
El sistema operativo proporciona, además, servicios de los que no dispone el hardware, como pueden ser, por ejemplo, la utilización por varios usuarios simultáneamente, interacción entre usuario y programa, etc.
SISTEMA OPERATIVO
Conjunto de programas que ordenadamente relacionados entre sí, contribuyen a que la computadora lleve a cabo correctamente su trabajo.
Como resumen, podemos decir que los sistemas operativos cubren dos objetivos fundamentales:
- Facilitar el trabajo al usuario.
- Gestionar de forma eficiente los recursos.
Existen dos tipos de programas (no todo el software se considera como sistema
Operativo):
• Programas del sistema. Son los que manejan el hardware, controlan los procesos, hacen
más cómodo el entorno de trabajo, etc.
• Programas de aplicación. Son los que resuelven un problema concreto de los usuarios
y que no son suministrados con el sistema operativo.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
En un principio se dio más importancia a la gestión eficiente, mientras que hoy en día se atribuye más importancia al uso sencillo. Haremos un breve resumen de la historia de los sistemas operativos.
Las primeras computadoras – Monoprogramación
En los comienzos de la historia de las computadoras destacan Aiken, que en 1944 construyó la primera computadora electromecánica MARK-I y March 1 Y Eckert, que construyeron la primera computadora electrónica a base de válvulas de vacío UNIVAC Diversos factores, como el gran tamaño de las máquinas, el precio, la dificultad de uso y la escasez de recursos, hacían necesario buscar la forma de rentabilizar aquello de lo que se disponía.
Estas enormes máquinas eran gestionadas por el usuario desde un tablero enchufable, donde apenas existía sistema operativo, y el único lenguaje de programación posible era el lenguaje máquina, En estas primeras computadoras sólo era posible lo que se denomina monoprogramación: la ejecución de un solo programa que se introducía generalmente a través de una lectora de tarjetas controlando el proceso desde la consola
Accesos por operador
La forma de gestión de una computadora a la que acceden los usuarios de uno en uno es de alto coste económico. Para resolver este problema, a partir de 1955 se produjo una separación entre las distintas tareas que se realizaban en entornos informáticos y se establecieron puestos de programadores, operadores y personal de mantenimiento.
El procedimiento de trabajo era el siguiente: los programadores daban al operador los trabajos a realizar, éste los reunía y los ejecutaba uno detrás de otro en la computadora, y recogía los resultados obtenidos entregándoles a cada programador Una segunda solución más eficaz que la primera fue la siguiente: el operador agrupa los trabajos con una necesidad de recursos físicos y lógicos similares y los ejecutaba como si fuesen un bloque. (se conseguía cargar el compilador una sola vez: considerable ahorro de tiempo)
1.3.3. Secuencia automática de trabajos
El trabajo que desempeñaba un operador era bastante mecánico y podría ser automatizado en gran parte, con lo que surgió lo que se denomina secuencia automática de trabajos.
Se diseñó un pequeño programa (Monitor Residente) que transfería automáticamente el control de un trabajo a otro. Este programa puede ser considerado como el primer sistema operativo y permanecía constantemente en memoria.
En el momento de encender la computadora se daba control al programa monitor, éste a su vez daba control al primer trabajo y cuando terminaba su ejecución tomaba el control de nuevo, dando paso al segundo de los trabajos, y así sucesivamente Para que el monitor supiera qué programa debía ejecutar y qué datos iba a tratar, se añadía al paquete de tarjetas que contenía el programa y los datos, un conjunto de tarjetas de control con las indicaciones necesarias.
Que es el proceso Off-line y On-line
Mejora del rendimiento
Aún quedaba mucho tiempo el procesador ocioso, con la siguiente pérdida Económica. (Fundamentalmente por la diferencia de velocidad entre el procesador y los dispositivos de entrada/salida)
. • Off-line
Con el tiempo aparecieron las cintas magnéticas, cuya velocidad era mayor que la de las lectoras de tarjetas, pero el acceso para escribir directamente en ellas era complicado. Por ello, se impuso una técnica consistente en perforar los programas en tarjetas, que eran leídas por una lectora de tarjetas y grabadas en una cinta magnética directamente. Esta cinta pasaba a la computadora en bloque para la ejecución de los programas, grabandose los resultados en una nueva cinta. Por último, la cinta de resultados se volcaba sobre una impresora. Las acciones de copiado de tarjetas a cinta y de cinta a impresora, al ser lentas y separarse del control de la computadora, permitían a ésta realizar otros trabajos distintos. Este tratamiento es el que se conoce como Off-line
La ventaja principal de este sistema fue que se podían tener varias lectoras de tarjetas produciendo cintas de entrada, con lo que se mantenía ocupado el procesador la mayor parte del tiempo. Por otra parte, existía la desventaja de que un usuario tenía que esperar a que se llenara la cinta con otros trabajos para que el suyo fuese transferido a la computadora.
Que es el proceso de Buffering (punto 1.3.4 )
• Buffering
En el caso anterior, se consume un tiempo adicional debido al protocolo o conversación que se establece entre el procesador y la unidad de cinta Una forma de mejorar el tiempo que se pierde en los procesos de carga de las cintas es utilizar una memoria intermedia, Buffer, donde la cinta va grabando datos hasta que se llena, volcándose éstos en la memoria de una vez, y mientras el procesador realiza operaciones con los datos recibidos, en paralelo se vuelve a cargar el buffer. A esta forma de trabajo se le denomina Buffering
La misión principal de las técnicas de buffering es mantener tanto el procesador como los dispositivos de entrada/salida ocupados el mayor tiempo posible. Las técnicas de buffering son difíciles de aplicar
Que es el proceso de Spooling
• Spooling
Con la aparición del disco magnético desapareció el problema que representaban las cintas magnéticas (que sólo podían ser escritas después de ser leídas por completo) Las técnicas de SPOOL (Simultaneous Peripheral Operation On-Une) permiten que la salida de un programa se escriba en un buffer y posteriormente sea llevada a un disco magnético en espera de poder ser enviada a una impresora o cualquier otro periférico. Se podría ver como una cola de archivos en espera de que llegue su turno.
En general, cada dispositivo de entrada/salida tiene su propio sistema de SPOOL. Al igual que en los sistemas de Buffering, el sistema de Spooling trata de mantener ocupados al procesador ya los dispositivos de entrada/salida el mayor tiempo posible, pero con la diferencia de que ahora se solapan operaciones de E/S de unos trabajos con el proceso de otros.
Que es la Multiprogramación
1.3.5. Multiprogramación
La multiprogramación es un modo de trabajo en el que se pueden ejecutar varios programas simultáneamente con el fin de aprovechar al máximo los recursos de la computadora.
.Un trabajo realizado en una computadora puede ser de dos tipos:
• Trabajos limitados por proceso. Son aquellos que consumen la mayor parte de su tiempo en el tratamiento de la información y muy poco en operaciones de entrada/salida.
• Trabajos limitados por operaciones de entrada/salida. Son los que dedican la mayor parte de su tiempo en operaciones de entrada/salida, haciendo poco uso del procesador (que se mantiene inactivo)
El segundo tipo de procesos dio lugar a una nueva técnica denominada multiprogramación, que consiste en aprovechar la inactividad del procesador durante la ejecución de una operación de entrada/salida de un proceso, en atender a otro proceso.
Este sistema trae consigo diversos problemas:
• El acceso al procesador debe seguir algún tipo de reglas
• Se hace necesario algún tipo de administración de la memoria
• Problemas de concurrencia.
Surge entonces, el concepto de planificar el procesador y una nueva estructura interna: un núcleo central (kernel) compuesto de rutinas para la gestión de la memoria central, el procesador, los dispositivos y el resto de recursos disponibles.
Que es el proceso por Lotes (Batch)
- Proceso por lotes (Batch) Se denomina proceso por lotes en sistemas multiprogramados al que no precisa intervención del usuario (en general de trabajos largos entran en cola de espera del tipo FlFO) y que se van tomando en un grupo determinado realizándose en paralelo'
Que es el proceso de Tiempo Compartido. Cuáles son sus características (Time Sharing)
- Ser muy conversacionales.
- Atender a varios usuarios simultáneamente.
- tiempos de respuesta cortos
- Mantener interrogación secuencial de peticiones de usuarios
- Fuerte gestión de archivos
- Utilizar técnicas de buffering y spooling.
- Gestionar memoria virtual
Que es el proceso de Tiempo real (Real Time). Características principales.
- Fuertes restricciones en el tiempo de respuesta (milisegundos).
- Información permanentemente actualizada.
- El sistema debe permanecer inactivo para atender lo más rápido posible ante eventos.
- Manejo eficaz de interrupciones.
- Manejo sencillo de prioridades.
- Gestión de memorial real.
Proceso Distribuido
El siguiente paso en la evolución de los sistemas operativos fue el proceso distribuido, que consiste en la conexión de computadoras entre sí a través de una gran variedad de dispositivos
Existiendo varias modalidades :conexión de varias computadoras compartiendo un mismo almacenamiento principal o aquellos que se conectan a una misma red nacional o internacional para el intercambio de información.
Que es el Multiproceso. Graficar la diferencia de tiempos de 4 procesos en monoprogramación, multiprogramación y multiproceso
Multiproceso
Uno de los problemas actuales en el proceso de datos ha sido la aparición de aplicaciones que manejan tal cantidad de información. Podemos citar el caso de los sistemas expertos, donde el volumen de datos es extremadamente grande y se necesitan unos tiempos de respuesta extremadamente pequeños; además, los algoritmos que manejan estos datos son complicados y necesitan muchas operaciones para la obtención de los resultados.
En estos casos, las computadoras convencionales no satisfacen las necesidades, por lo que se hizo necesaria la descomposición de algoritmos en subalgoritmos más sencillos. Estos subalgoritmos pueden trabajar en paralelo, tratando cada uno su porción de información al mismo tiempo.
Para ello, se están desarrollando en el momento actual diversas máquinas que, siendo una sola computadora, contienen varios procesadores que pueden trabajar conjuntamente, en este tipo de computadoras, el sistema operativo es complejo debido a que tiene que administrar varios procesadores de tal manera que. La carga y reparto de los trabajos debe equilibrar y optimizar al máximo el proceso global.
Para finalizar este recorrido por los diferentes tipos de sistemas operativos y modos de trabajo, veamos en la las diferencias existentes en la ejecución de cuatro procesos A, B, C y D en tres sistemas con métodos de monoprogramación, multiprogramación y multiproceso.