martes, 11 de septiembre de 2012

Sistemas Operativos I


1.1 DEFINICIÓN, OBJETIVOS Y FUNCIONES DE UN SISTEMA OPERATIVO.


DEFINICIÓN:


Es un conjunto de programas que tiene encontradas una serie de funciones diferentes cuyo objetivo es simplificar el manejo y la utilización de la computadora, haciendo seguro y eficiente, en la cual administra sus recursos de una manera eficaz; permitiendo al usuario interactuar con el ordenador, coordinando los procesos proporcionando la ayuda y los servicios necesarios para la mayoría de los programas.

Figura 1: Sistema Operativo



Figura 2: Conjunto de Programas

OBJETIVOS:


*Optimiza todos los recursos del sistema para soportar los requerimientos.
*Proveer una máquina virtual o un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente y segura, protegiéndolo de las complejidades del hardware.
*Controla y coordina el uso del hardware administrando memorias, impresora, monitor, etc.

Siendo el más importante el objetivo siguiente:

"OBTENER UNA MÁQUINA VIRTUAL DONDE FACILITE LA INTERACCIÓN ENTRE EL USUARIO Y EL HARDWARE PARA SOLUCIONAR UN PROBLEMA."


Figura 3: Esquema de la Interacción del usuario con el hardware.


FUNCIONES:


*Aceptar todos los trabajos y conservarlos hasta su finalización.
*Interpretación de comandos.
*Control de recursos
*Manejo de dispositivos de Entrada y Salida (organiza los archivos en  discos flexibles, discos duros, discos compactos).
*Manejo de errores y pérdida de datos.
* Secuencia de tareas definiendo el orden.
*Protección
* El usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
*Establece el costo que se le cobra a un usuario por utilizar determinados recursos.



1.2 HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS.

Los Sistemas Operativos han sufrido cambios revolucionarios conocidos como generaciones. En el caso del Hardware, las generaciones han sido marcadas porgrandes avances en los componentes utilizados, pasando de válvulas ( primera generación ) a transistores ( segunda generación ), a circuitos integrados (tercera generación), a circuitos integrados de gran y muy gran escala (cuarta generación).
Cada generación ha tenido reducciones en los costos, tamaño, emisión de calor y consumo de energía,  velocidad y capacidad.


Generación Cero (década de 1940):


Aquí los sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguaje de la máquina.Todas las instrucciones eran codificadas a mano.

Primera Generacion (década de 1950)

"VÁLVULAS"

Los sistemas operativos de los años cincuenta fueron diseñados para hacer más fluída la transición entre trabajos. Antes de este cambio, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Los trabajos se reunían por grupos. Cuando el trabajo estaba en ejecución, este tenia control total de la máquina. Al terminar cada trabajo, limpiaba y leía e iniciaba el trabajo siguiente.
Mejoran tarjetas perforadas (las cuales servían para introducir los programas de lenguajes de máquina), puesto que ya no había necesidad de utilizar los tableros enchufables.
Para poder correr un programa, tenían que escribirlo en papel en lenguaje ensamblador y después se perforaría en tarjetas. 
Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprendería la salida y la llevaría al cuarto de salida, para que la recogiera el programador.

FIGURA 4: Procedimiento de como manejaban las tarjetas perforadas.





FIGURA 5: TARJETA PERFORADA


Segunda Generacion (a mitad de la década de 1960)

"TRANSISTORES"

El programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad.
Se desarrollo sistemas compartidos, en la que los usuarios podían acoplarse directamente con el computador a través de terminales.
Surgieron sistemas de tiempo real caracterizándose por proveer una respuesta inmediata., en que los computadores fueron utilizados en el control de procesos industriales. 



FIGURA 6: Transistor



Tercera Generación  (mitad de década 1960 a mitad década de1970)

"CIRCUITOS INTEGRADOS"

En 1964, se crean computadores Sistemas/360 de IBM y Chips siendo compatibles con el hardware, ofreciendo mayor poder computacional a como iba avanzando el usuario en las series. Los usuarios interactivos se comunicaban con la computadora vía terminales que están en línea conectadas directamente a la computadora. Son más fiables y de menor tamaño , estando conformadas por circuitos impresos y chips, nuevos modelos de ordenadores.
Los usuarios que necesitaban de algunas aplicaciones particulares que no requerían de este tipo de poder pagaban caro el elevado tiempo de ejecución , tiempo de depuración, mantenimiento, etc.
Siendo sistemas de modos múltiples. Algunos soportan simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. 
El SO tuvo muchos errores, pero comenzaron a colocarle parches para mejorarlo, pero fue en vano ya que afectaron el sistema y solo produjo más errores, haciéndolo más complejo, de este modo surgieron los SO actuales. 



FIGURA 7: Circuitos Integrados

Cuarta Generacion (mitad de década de 1970 en adelante)

"CIRCUITOS INTEGRADOS DE GRAN Y MUY ALTA ESCALA"

Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.
Los sistemas de seguridad se ha incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación.
Se codifican los datos personales o de gran intimidad para que al ser expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.
El concepto de maquinas virtuales es utilizado. 
El usuario ve un panorama llamado maquina virtual creado por el sistema operativo.


FIGURA 8: AVANCE EN LA TECNOLOGÍA ACTUAL

1.3 SUBSISTEMAS  DE UN SISTEMA OPERATIVO.

SISTEMA OPERATIVO DE MAINFRAME

Es un ordenador de grandes dimensiones pensando en el tratamiento de grandísimos volúmenes de datos y elevada capacidad, lo usan en Hacienda, aerolíneas,  la Banca, etc. 
Tiene su procesador, sus propios canales de E/S, memoria a los que van conectados los dispositivos como discos, terminales, impresoras, etc. 


FIGURA 9:  MAINFRAME


SISTEMA OPERATIVO DEL SERVIDOR

Aquí las computadoras son más potentes, dando servicio a múltiples usuarios a través de la red, compartiendo recursos del hardware y software y prestan servicios de Web.



FIGURA 10: SISTEMA OPERATIVO DEL SERVIDOR

SISTEMA OPERATIVO MULTIPROCESADOR

Es un Sistema Operativo para trabajar con computadoras paralelas, multicomputadoras o multiprocesadores.
Suelen ser Sistema Operativo de servidor, sólo que con funciones añadidas especiales para comunicación y conectividad.


FIGURA 11: SISTEMA OPERATIVO MULTIPROCESADOR



SISTEMA OPERATIVO PARA ORDENADORES PERSONALES

Aquí se presenta una excelente interfaz a un solo usuario, llevando a cabo un procesamiento de acceso a internet, procesamiento de textos, hojas de cálculos, etc.


FIGURA 12: ORDENADORES PERSONALES

SISTEMA OPERATIVO DE TIEMPO REAL

Se exige una corrección en  sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea determinado en tiempo de ejecución.


FIGURA 13: SISTEMA OPERATIVO EN TIEMPO REAL



1.4 ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS

MANERA EN QUE ESTA DISEÑADO UN SISTEMA OPERATIVO.


ESTRUCTURA MONOLÍTICA

Conjunto de funciones que  forman un programa, donde cada una de ellas tiene una cierta tarea específica, donde estas dependen de la ejecución de otras distintas para poder ejecutarse de manera correcta.*UNIX
*LINUX




FIGURA 13: Estructura Monolitica

ESTRUCTURA JERÁRQUICA

Hay una mayor organización del software, del sistema operativo, donde una parte del sistema contenía contenía subpartes y esto organizado en forma de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos.
Donde una función llama a otra más interna, debemos ir recorriendo una por una en orden.


FIGURA 14: ESTRUCTURA JERARQUICA.

ESTRUCTURA CLIENTE - SERVIDOR

Es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes.
Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo  multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. 
* servidores web
*servidores de archivo
*los servidores del correo .

FIGURA 15: CLIENTE- SERVIDOR


La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta.



ESTRUCTURA ORIENTADA A OBJETOS

Usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.  


FIGURA 16: ESTRUCTURA ORIENTADA A OBJETOS