domingo, 18 de enero de 2015

ESTRUCTURA DE LOS SISTEMAS OPERATIVOS:

ESTRUCTURA DE LOS SISTEMAS OPERATIVOS:

En esta sección veremos los componentes de un sistema operativo, los servicios que él
brinda y sus posibles estructuras.
1. Componentes de un sistema operativo
• Administración de procesos
• Administración de memoria
• Subsistema de Entrada/Salida
• Administración de Almacenamiento secundario
• Subsistema de archivos
• Sistema de protección
Administración de Procesos

Para comenzar debemos saber que es un proceso. Un proceso es un programa en
memoria + CPU + acceso a dispositivos + otros recursos. Notemos que un proceso
necesita de ciertos recursos (como CPU, memoria, archivos, dispositivos de E/S, etc.)
para realizar su tarea.

Podemos ver entonces que un proceso es una entidad activa, mientras que un programa
una entidad pasiva.

Sabiendo entonces que es un proceso, podemos decir entonces que el sistema operativo
es el encargado de su administración. Es el encargado de proveer servicios para que
cada proceso pueda realizar su tarea. Entre los servicios se encuentran:

• Crear y destruir procesos
• Suspender y reanudar procesos
• Proveer mecanismos para la sincronización y comunicación entre procesos
• Proveer mecanismos para prevenir dead-locks o lograr salir de ellos.

Administración de Memoria
La memoria es un área de almacenamiento común a los procesadores y dispositivos,
donde se almacenan programas, datos, etc. El sistema deberá administrar el lugar libre y
ocupado, y será el encargado de las siguientes tareas:

• Mantener que partes de la memoria están siendo usadas, y por quien.

• Decidir cuales procesos serán cargados a memoria cuando exista espacio de
memoria disponible, pero no suficiente para todos los procesos que deseamos.

• Asignar y quitar espacio de memoria según sea necesario.
Subsistema de Entrada/Salida

El sistema operativo deberá ocultar las características específicas de cada dispositivo y
ofrecer servicios comunes a todos. Estos servicios serán, entre otros:

• Montaje y desmontaje de dispositivos

• Una interfaz entre el cliente y el sistema operativo para los device drivers.

• Técnicas de cache, buffering y spooling.

• Device drivers específicos2

Administración de Almacenamiento secundario

Dado que la memoria RAM es volátil y pequeña para todos los datos y programas que
se precisan guardar, se utilizan discos para guardar la mayoría de la información. El
sistema operativo será el responsable de:

• Administrar el espacio libre

• Asignar la información a un determinado lugar

• Algoritmos de planificación de disco (estos algoritmos deciden quien utiliza un
determinado recurso del disco cuando hay competencia por él)

Subsistema de Archivos

Proporciona una vista uniforme de todas las formas de almacenamiento, implementando
el concepto de archivo como una colección de bytes. El Sistema Operativo deberá
proveer métodos para:

• Abrir, cerrar y crear archivos
• Leer y escribir archivos

Sistema de protección

Antes que nada, tener en cuenta que por protección nos referimos a los mecanismos por
los que se controla el acceso de los procesos a los recursos.
En un sistema multiusuario donde se ejecutan procesos de forma concurrente se deben
tomar medidas que garanticen la ausencia de interferencia entre ellos. Estas medidas
deben incorporar la posibilidad de definir reglas de acceso, entre otras cosas.

2. Servicios del Sistema Operativo

El sistema brindará un entorno de ejecución de programas donde se dispondrá de un
conjunto de servicios. Los servicios principales serán:

• Ejecución de programas (el SO deberá ser capaz de cargar un programa a
memoria y ejecutarlo. El programa deberá poder finalizar, de forma normal o
anormal)

• Operaciones de E/S (el SO deberá proveer un mecanismo de acceso ya que por
eficiencia y protección los usuarios no accederán directamente al dispositivo)

• Manipulación del Sistema de archivos (se deberá tener acceso al sistema de
archivos y poder, como mínimo, leer, escribir, borrar y crear)

• Comunicación entre procesos (los procesos deberán poder comunicarse, ya sea
que estén en el mismo computador o el diferentes)

• Manipulación de errores (el sistema deberá tomar decisiones adecuadas ante
eventuales errores que ocurran, como fallo de un dispositivo de memoria, fallo
en un programa, etc.)

3. Estructura del Sistema

La estructura interna de los sistemas operativos pueden ser muy diferentes, ya que se
debe tener en cuenta las metas de los usuarios (fácil uso, confiable, rápido, etc.) y las del
sistema (fácil de diseñar, implementar y mantener, eficiente, etc.).
Veremos 3 posibles diseños del sistema.3

• Sistema Monolítico

Estos sistemas no tienen una estructura definida, sino que son escritos como una
colección de procedimientos donde cualquier procedimiento puede invocar a otro.
Ejemplos de estos sistemas pueden ser MS-DOS o Linux (aunque incluye algo de
capas). Es importante tener en cuenta que ningún sistema es puramente de un tipo.

• Sistema en capas

El diseño se organiza en una jerarquía de capas, donde los servicios que brinda una capa
son consumidos solamente por la capa superior. La capa 0 es del Hardware y la N es la
de los procesos de Usuario.
Estos sistemas tienen como ventaja que son
modulares y la verificación se puede hacer a
cada capa por separado (son más mantenibles).
Sin embargo el diseño es muy costoso y es
menos eficiente que el sistema monolítico ya
que pierde tiempo pasando por cada capa.

• Sistema con micro núcleo

La idea consiste en tener un núcleo que brinde los servicios mínimos de manejo de
procesos, memoria y que provea la comunicación entre procesos. Todos los restantes
servicios se construyen como procesos separados del micro núcleo, que ejecutan en
modo usuario.

Estos sistemas tienen como ventaja un diseño simple y funcional, que aumenta la
portabilidad y la escalabilidad. Para agregar un nuevo servicio no es necesario modificar
el núcleo, y es más seguro ya que los servicios corren en modo usuario.

Con el paso de los tiempos los sistemas operativos fueron cambiando de muchas maneras, por ejemplo:
·         Sistemas Operativos de multitarea: con este sistema operativo es que la computadora procesa diferentes tareas al mismo tiempo. Existen varios tipos de multitareas. Estos sistemas Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
Los sistemas operativos que soportan estas multitareas son: UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2.

·         Sistema Operativo Monotareas: los sistemas operativos monotareas son más primitivos y es todo lo contrario a los de multitareas es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. El sistema operativo que soporta el monotareas  es DOS.


·         Sistema Operativo Monousuario: Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se está utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuarios. Los sistemas operativos que soportan el monousuario son DOS e incluso  en  el actual Windows XP y sus predecesores.  

·         Sistema Operativo Multiusuario: Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.                                                                                     Los sistemas operativos que soportan el multiusuario son con el Linux, Windows 2003 y sus predecesores.


·         Sistemas Operativos por lotes: Con este sistema operativo procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas,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. Los sistemas operativos que soportan por lotes son el SCOPE, del DC6600, y el EXEC II para el UNIVAC 1107.


·         Sistemas Operativos de tiempo real: este sistema operativo de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.Los sistemas operativos que soportan el tiempo real son  VxWorks, Solaris, Lyns OS y Spectra.



·         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. Los sistemas operativos que soportan el tiempo compartido son  Multics, OS/360 y DEC-10.

·      Sistemas Operativos distribuidos: Este sistema operativo permite distribuir trabajos, tareas o procesos entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.  

·         Sistemas Operativos de red: Los 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 (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.  Los sistemas operativos  más utilizados que soportan la red son Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

·         Sistemas Operativos paralelos: En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo. Así, en lugar de esperar a que el proceso termine de ejecutarse, regresa a atender al usuario inmediatamente.Los sistemas operativos que soportan a los paralelos sonAlpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.


OBJETIVOS DE UN SISTEMA OPERATIVO:
Un Sistema Operativo, tiene como objetivo, hacer mas fácil la interacción entre el Usuario y el Hardware del computador, podría denominarse como el "intermediario" entre estos dos. Ademas de hacer mas fácil su interacción, lo hace mas cómodo de manejar. 
En un principio una computadora no podía ser usada por cualquier persona ya que se requerían amplios conocimientos en programación, ya que no contaban con una GUI (Interfaz Grafica de Usuario en español), eran kilómetros y  de código para que funcionara.. 
¿Que paso con la llegada del primer computador personal (PC) ? 
Fue el nacimiento de un Sistema Operativo, ¿Que tiene de novedoso? 
Simple.. Se integro una Interfaz Gráfica de Usuario.. 
Ahora ya existen ventanitas, escritorio, barra de tareas, puntero, un ratón, etc. 
Con esto cualquier persona puede utilizar una computadora. 
En concreto el objetivo de un SO es que todo el trabajo que se realize en un computador personal, ya sea en el entorno de MAC OS, Windows, Linux, Ubuntu, o cualquier otro Sistema Operativo, sea mas fácil y cómodo de Realizar. 

SHELL:
La Shell, es una interfaz usada para interactuar con el núcleo de un sistema operativo.

INTERFAZ GUI Y CLI.
GUI
Graphic User Interface
Interfaz Gráfica de Usuario

CLI
Command Line Interface
Interfaz de Línea de Comando

Previo al uso de Microsoft Windows, Linux Ubuntu y cientos de sistemas operativos con entorno gráfico (denominados GUI), el manejo de los equipos se basaba en la escritura de instrucciones que la computadora ejecutaba de a una por vez.  A dichas instrucciones se las denomina "comandos" y a la pantalla de trabajo se la denomina "consola", "terminal" o "línea de comandos" (denominados CLI).

SISTEMA OPERATIVO DE RED (NOS):
Un sistema de red, también llamado NOS (del inglés Network Operating System), es un software  que le permite la interconexión de ordenadores para poder acceder los servicios y recursos, hardware y software, creando redes de computadoras. Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. Consiste en un software que posibilita la comunicación de un sistema informático con los otros equipos de una red.

No hay comentarios:

Publicar un comentario