martes, 30 de octubre de 2012

Concepto de sistema operativo. Elementos y estructura

1. Introducción a los sistemas operativos
El Sistema operativo es el software básico del ordenador. Este software gestiona todos los recursos hardware del sistema informático y proporciona la base para la creación y ejecución del software de aplicación.
Podemos definir el SO como un conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware y del software. Para que el hardware tenga sentido en un ordenador, este tendrá que funcionar. Gracias al SO el hardware se reconoce y identifica al SO y el sistema informático empieza a funcionar. Gracias a los programas y aplicaciones que contiene el SO, nosotros podremos realizar determinadas funciones. Con el software completamos las necesidades del sistema informático.
El SO ofrece al usuario la forma de comunicarse con el ordenador ya sea a través de una interfaz de texto como podría ser el teclado, o mediante una interfaz gráfica como podrían ser la pantalla táctil y el ratón. El SO es lo que utilizamos para realizar las funciones en el ordenador.
El SO es el que hace todo el trabajo dentro del ordenador, nos hace transparente al hardware. Lo usamos y no nos tenemos que preocupar de administrarlo gracias a una interfaz de fácil uso.
Se puede hacer una primera clasificación de los sistemas operativos teniendo en cuenta la gestión que hacen del software y el hardware, y la forma en que los usuarios lo pueden usar:
- Sistemas operativos monousuarios (SOMO)
- Sistemas operativos multiusuarios (SOMU)
- Sistemas operativos en red
En los SOMO, los recursos hardware y software están a disponibles para un solo usuario.
En los SOMU, varios usuarios pueden utilizar los recursos de software y hardware de un mismo ordenador.
Actualmente los SOMU han dado paso a los nuevos Sistemas operativos en red (SORED) en los que un ordenador puede compartir con otro que este conectado en la misma red.
En los SOMO, la ejecución de un programa no implica demasiadas dificultades. El programa se mete por el teclado o se carga desde una unidad de almacenamiento externo. Este programa se mete en memoria ( Lo realiza el UCP).  Una vez esta aquí Primero actúa la Unidad de control y si hace falta la Unidad aritmético-lógica.
En los SOMU existe una sola UCP, La del ordenador principal. A este ordenador estan conectados teclados y monitores a forma de terminales, es decir,  no tienen un ordenador propiamente dicho, sino que tienen un teclado y un monitor para realizar el trabajo.
En estos, la única UCP existente realiza todos los trabajos. Existe, pues, un solo procesador o varios, un solo conjunto de Memorias RAM, uno o varios discos duros dentro del mismo equipo. En este tipo de SO el SO trabaja mucho mas ya que tiene que obtener muchas respuestas no una sola. La respuesta que se obtiene para la ejecución de las instrucciones del programa que ha lanzado sera superior a la que obtendría si estuviera en un SOMO.
De esta forma, todo se procesa en el ordenador principal. Primero se ejecutan unas instrucciones que manda el primer programa. Después queda detenido para que dar tiempo a la UCP al proceso que lanza otro usuario. La UCP no ejecuta dos instrucciones a la vez. El intervalo de tiempo de la ejecución es tan corto, que los usuarios no lo notan. Cuantos mas procesos mas lento y mas se aprecia su lentitud.
En los SORED, cada usuario tiene su propio ordenador, normalmente monousuario. Cada ordenador establecerá conexión con el ordenador principal del SORED, en este caso la ejecución de los programas es distinta puesto que se dispone de mas bloques, mas procesadores... ( Tantos como tenga cada ordenador).
Cuando los usuarios indican al ordenador principal, que es el que tiene el SORED, que van a ejecutar un programa, el ordenador principal puede actuar de varias formas: cargar todo el peso del programa en el ordenador del usuario que ha abierto el programa. De esta manera el ordenador principal solo hace de servidor de aplicaciones, pero ni su memoria, ni su procesador actúan  Si solicitan la ejecución de un programa a su ordenador cliente, y todo el proceso correrá a cargo del SO de cada usuario, su procesador y su memoria. En la mayoría de los casos estarán físicamente puestos en el servidor y no en los clientes.
Entre los diversos tipos de sistemas operativos también están los que cargan con casi todo el peso de las aplicaciones. Así  cuando un usuario pide la ejecución de un programa, el ordenador principal sera el que se encargue de ejecutarlo completamente. El cliente solo necesita un pequeño sistema operativo llamado SO cliente para poder trabajar con la aplicación o programa deseado. Cuando son distintos usuarios el servidor trabaja duramente para poner los programas en posiciones de memoria distintas.
El SO es el que controla todo y hace de intermediario entre hardware y software
2. Evolución histórica de los sistemas operativos
Los primeros SO se denominan monolíticos. La característica fundamental es que su software básico era prácticamente imposible de modificar una vez instalado en el sistema informático.
El hardware y el software evolucionan a la vez, nunca separados
La primera computadora fue diseñada por Charles Babbage. Este matemático ya tenia claro que para tratar automáticamente la información era: ENTRADA-PROCESO-SALIDA.
Posteriormente, George Boole elaboro la teoría de la lógica matemática y el álgebra de Boole. Gracias a este se empezó a pensar en la elaboración de procesos o programas.
- Primera generación ( 1945-1955) Se utilizaban las Válvulas de vació. Estas computadoras eran maquinas programadas en lenguaje de maquina puro. Eran muy grandes, consumían mucha energía y muy lentas. Las operaciones eran meramente cálculos matemáticos
Imagen de válvula de vació:











- Segunda generación (1955-1965): Aparición de los transistores. Las computadoras se hacen mas pequeñas, baratas, consumen menos y despiden menos calor. En esta generación aparece lo que se define por procesamiento por lotes, proceso que implica 3 fases:
_ Introducción de datos a procesar en un componente hardware.
_ Llevar físicamente el soporte, cargado con los datos.
_ El soporte en el que se encuentran los resultados se llevan a otro dispositivo físico.
Ejemplo gráfico:









- Tercera generación (1965-1980): Aparecen los circuitos integrados. Se vuelve a reducir el tamaño y su consumo de energía, son mas baratos y mas rápidos y generan menos calor. Destaca el IBM 360 que era capaz de hacer cualquier operación ya fuera aritmética o lógica  Ya se diseña otro tipo de hardware y software que permite la ejecución de varios procesos a la vez.
- Cuarta generación (1980 hasta hoy): Aparecen los ordenadores personales  Su montaje se hace mas complicado debido a técnicas de integración y miniaturizacion de sus componentes hardware. Aparecen las memorias semiconductoras, dispositivos de almacenamiento externos reducidos...
3. Recursos. Funciones del sistema operativo
El fin del SO es coordinar la utilización que se hace del hardware que depende de los programas o aplicaciones que se están utilizando. Los programas habitualmente los elegimos los usuarios, pero en ocasiones es el propio SO.
La comunicación entre distintos niveles las hace posible las interfaces. Para hacer esto el SO necesita los servicios.
Servicios: Son aplicaciones que generalmente se ejecutan en un 2º plano. Estos incluyen ciertas funciones para poder utilizar los recursos del SO. Las aplicaciones son tipo: cliente-servidor; servidores web; servidores de base de datos y aplicaciones basadas en servidores a forma local o a través de una red.
Estos servicios se utilizan para:
_ Crear programas
_ Ejecutar esos programas
_ Acceder a los dispositivos de entrada y salida
_ Gestión de archivos
_ Acceso a la información
_ Supervisión y solución de problemas
_ Suministrar información estadística
La mayoría de estos servicios van instalados en el SO.
Estos son imprescindibles para el funcionamiento del SO y sus aplicaciones.
A estos servicios se les llama proceso en 2º plano o procesos en back-ground, en linux se les llama demonios.
4.1 Memoria
La parte del SO que se encarga de la memoria es el Administrador de memoria. Su función es clara: llevar en un registro las partes de memoria que se utilizan y las que no y libera el espacio de los procesos finalizados. También gestiona el intercambio de datos entre memoria y disco, solo si son muy grandes y no entran solo en una. La gestión de memoria es muy importante en los SO multitarea, ya que se trabaja con varios procesos a la vez.
La gestión de memoria en los SO monoproceso es sencilla, pero en los SO multitarea se complica ya que tiene que tener varios procesos simultáneamente en memoria.
La primera opción es dividir la memoria en particiones fijas. Para ello el SO dispone de una cola de procesos que solicitan entrar en memoria.
Vinculado con la multitarea esta el concepto de intercambio. Los procesos que están en espera pueden llevarse al disco y dejar libre el espacio para programas en ejecución.
La mayor dificultad en las particiones fijas esta en la correcta selección de tamaño de estas.
Con un conjunto de procesos dinámicos no es posible encontrar bien las particiones por eso se dispone de particiones variable. El problema que se plantea ahora es llevar un registro de las particiones libres y ocupadas que sea eficiente, tanto en tiempo como en aprovechamiento
4.2 Proceso y procesador
Un proceso, o tarea, se puede definir como programa en ejecución  Los procesos en un SO tienen las siguientes características:
_ Un proceso para empezar a ejecutarse tiene que estar en la memoria y tener los recursos que necesite
_ Cada proceso esta protegido del resto de procesos
_ Los procesos pueden ser del usuario y estarían en modo usuario o al SO que se ejecutarían en modo kernel o modo privilegio
_ Cada proceso tendrá una estructura de datos llamada bloque de control de procesos (BCP)
_ Los procesos pueden comunicarse entre si, sincronizarse y participar entre ellos.
A cada proceso se le asigna un espacio de direcciones lógicas en memoria. Este es igual al máximo que nuestro SO sea capaz de gestionar y aquí es donde entra la memoria virtual
Los procesos se dividen en trozos de tamaño igualatorio llamados frames.
Cuando se ejecuta el proceso, si la UCP quiere atender una parte que no esta en memoria interna o real ira a buscarlo a la memoria virtual.
Los procesos se pueden detener, parar, bloquear entre otras cosas.
Un programa no es un proceso se convierte en proceso cuando entra en ejecución.
Los procesos se ''pelean'' por los recursos hardware y aveces por los de software.
El reparto de los recursos del sistema entre los distintos procesos y su ejecución concurrente se conoce como multiprogramacion.
Cuantas mas instrucciones sea capaz de procesar un procesador, mayor velocidad del sistema, ya que tardan menos que la UCP.
4.3 Gestión de entrada/salida
Una de las tareas mas importantes del ordenador, y en particular de la unidad central de proceso, es relacionar y comunicar los periféricos.
Esta comunicación se produce en la placa base en el gestor de entrada/salida. Este componente, integrado en los circuitos de la placa base, se denomina chipset.
Cuando conectamos los periféricos a la placa base y les suministramos corriente, se produce la comunicación.
Un ordenador es dirigido y coordinado. En los ordenadores, esto se hace en la UCP mediante un sistema de buses de comunicación que la conecta con todos los elementos del ordenador.
Las interfaces comunican software y hardware pueden ser:
Interfaz tipo texto: Si el SO es de tipo texto, todo lo que nosotros introduzcamos o las respuestas que nos de el SO se verán mediante cadenas de caracteres.
- Interfaz tipo gráfica: La mayoría de los SO utilizan medios de comunicación entre ordenador y maquina tipo gráfico. En este tipo de interfaz se necesita un ratón o pantalla táctil.
- Interfaz mixta: A día de hoy la gran mayoría de ordenadores utilizan esta para poder comunicar al ordenador con nosotros.
5. Arquitectura y componentes
Si dejamos al margen los antiguos sistemas operativos monolítico, actualmente los SO se organizan en capas.
Un SO esta estructurado en varios niveles o capas, cada uno de los cuales se comunica con otro da igual que sea inferior o superior, para que estén coordinados y cumplan con el objetivo del SO.
Estos SO pueden funcionar en varias arquitecturas.
Los nuevos SO se pueden montar en plataformas Intel, AMD, MIPS, Alpha..., Sin que los que los manejan noten cambios, excepto en ocasiones.
Una maquina virtual es: Un archivo o conjunto de archivos. Son copias exactas del hardware real que gestiona el propio SO.
Una vez que el usuario termina de ejecutar el programa es cuando se produce la interacción real con el hardware.
6. Modos de explotación del sistema
Las formas de explotación de un SO responden a la forma en la que el usuario emplea los recursos hardware y software que componen el sistema informático. Explotar un SO es utilizarlo.
Si hablamos de SOMO, como solamente se esta ejecutando un programa, la cuestión no tiene mas importancia. Pero si estamos con un SOMU puede haber varios programas a la vez.
Para poder hablar de como se explota un SO habrá que tener en cuenta también las necesidades de los usuarios que los van a utilizar, y por supuesto, todo esta relacionado con el hardware en el que esta montado el SO.
A. Proceso en lotes.
Este sistema de explotación se empezó a utilizar en la 2ª generación
B. Proceso en tiempo real
Este tipo de explotación del ordenador es parecida a la anterior. La diferencia es que nosotros introducimos los datos y lanzamos el programa para el procesamiento de datos introducidos y el que obtiene la información procesada, todo esto en un mismo sistema informático, en muy poco tiempo.
C. Según el numero de usuarios
- Monousuario: Cuando solo un usuario trabaja en el ordenador
- Multiusuario: Varios usuarios pueden usar los recursos del sistema a la vez.
Este tipo de sistemas operativos son caracterizados porque varios usuarios podrán o no tener acceso a algunas cosas que otros si y viceversa.
D. Según el numero de procesos
Esta clasificación se hace atendiendo al numero de programas que puede ejecutar simultaneamente el ordenador o sistema informático.
Clasificación general de los SO según los programas o procesos que ejecutan a la vez:
- Monoprogramacion o monotarea: En este caso, el sistema solamente puede ejecutar un programa o proceso a la vez. Así los recursos del sistema serán dedicados al programa hasta que acabe su ejecución.
El que un SO sea monotarea no implica que pueda ser multiusuario, varios usuarios pueden intentar ejecutar sus programas en el mismo ordenador, pero de forma sucesiva.
- Multiprogramacion o multitarea: Este tipo de SO puede correr varios programas o procesos simultáneamente.
De esta forma, todos los procesos necesitaran individualmente mas tiempo para ejecutarse. Son SO multitarea.
E. Según el numero de procesadores del sistema informático
Esta clasificacion depende de los procesadores que el ordenador sea capaz de gestionar
- Monoprocesador: Consta de 1 solo procesador. Todos los trabajos que realizados pasaran por el.
- Multiprocesador: El ordenador cuenta con 2 o mas procesadores. Así  determinados SO pueden aprovechar las ventajas de este hardware.
Hay 2 formas de utilizar los diferentes procesadores por parte del SO:
a. Multiproceso simetrico (SMP): El SO utilizara la potencia de los procesadores de igual forma.
b. Multiproceso asimetrico (AMP): El SO reparte las tareas que esta haciendo a cada proceso con los que cuenta el SO.
Con estas 2 técnicas lo que se consigue, en cualquier casi, es que el tiempo de respuesta de la ejecución de varios programas en un mismo ordenador sea similar para todos ellos.
También se conoce el pseudomultitarea: Solamente afecta al SO de 2 windows (95 y 98) y Me, porque están capacitados para tener en su memoria cargados mas de un proceso y estar ejecutando aparentemente mas de 1.
El usuario cree que esta trabajando con mas de un programa a la vez, pasa algo parecido. Pero el procesador esta ejecutando secuencialmente y poco a poco cada uno de los procesos lanzados a la ejecución.
7. Sistemas operativos mas usuales.
La mayoría de los SO, a partir de los 32 bits, son abiertos y segmentados. Esto permite que sean fáciles de modificar, ya que los programas que lo componen están separados en bloques.
Los SO actuales se articulan en una estructura determinada por niveles. Cada nivel o parte del SO se encarga de una función. Así si se modifica solo afecta a parte del programa no a todo el SO.
Los SO por niveles, también llamados por capas, se encargan de control y ejecución de programas, gestión y control de usuarios, periféricos, memoria etc...
La ultima generación de sistemas operativos, a partir de los 32 bits, son aquellos que se denominan sistemas operativos de maquina virtual. A diferencia de los anteriores, estos tienen un núcleo que les permite emular el hardware.
Ya existen SO de 64 bits lo que permite que puedan manejar mas memoria RAM que los 4 GB que solo pueden usar los de 32 bits. Los procesos se ejecutan en estos últimos SO también se ejecutan en zonas independientes de memoria, lo que les da mucha estabilidad.

No hay comentarios:

Publicar un comentario