miércoles, 20 de septiembre de 2017

Sistema Operativo II

Sistema Operativo
Conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programas.
"el sistema operativo de la computadora es MS-DOS"



Ejemplos de sistemas operativos para PC
OS X.
Windows.
Unix.
Solaris.
FreeBSD.
OpenBSD.
Google Chrome OS.
Debian GNU/Linux (GNU/Linux)
Ubuntu Linux (GNU/Linux)
Wave OS
Mandriva (GNU/Linux)
Sabayon (GNU/Linux)
Fedora (GNU/Linux)
Puppy Linux (GNU/Linux)
Haiku (BeOS)
Plan 9
HP-UX
Exirion OS
ReactOSBeOSTuquito (GNU/Linux)Red Hat Enterprise
Exirion OS
ReactOS
BeOS
Tuquito (GNU/Linux)
Red Hat Enterprise Linux for Desktops or Workstations (GNU/Linux)
SUSE (GNU/Linux)
OpenSUSE (GNU/Linux)
Ejemplos de sistemas operativos para dispositivos móviles


Android
iOS
Bada
BlackBerry OS
BlackBerry 10
Windows Phone
Windows 10 Mobile
Symbian OS
HP webOS
Firefox OS
Ubuntu Phone OS
Tizen
Asha Platform
Palm OS
WebOS
CyanogenMod

Funciones básicas del Sistema Operativo
 Son administrar los recursos del ordenador, coordinar el hardware y organizar archivos y directorios en los dispositivos de almacenamiento de nuestro ordenador.
Algunas cosas más concretas que puede realizar un Sistema Operativo son:
- Múltiples programas se pueden ejecutar al mismo tiempo, el sistema operativo determina qué aplicaciones se deben ejecutar en qué orden y cuánto tiempo.
- Gestiona el intercambio de memoria interna entre múltiples aplicaciones.
Se ocupa de entrada y salida desde y hacia los dispositivos de hardware conectados, tales como discos duros, impresoras y puertos.
- Envía mensajes a cada aplicación o usuario interactiva (o a un operador del sistema) sobre el estado de funcionamiento y los errores que se hayan podido producir.

En los equipos que pueden proporcionar procesamiento en paralelo, un sistema operativo puede manejar la forma de dividir el programa para que se ejecute en más de un procesador a la vez.
Bloqueos
 Es la acción y efecto de bloquear (obstruir, interceptar, impedir el funcionamiento normal de algo, entorpecer la realización de un proceso, cerrar el paso). El concepto tiene diversos usos según el contexto. 

Los bloqueos pueden ser resueltos por el sistema operativo aunque en ocasiones pueden parar la maquina. Un conjunto de procesos se bloquea si cada proceso del conjunto espera un evento que solo puede ser provocado por otro proceso del mismo conjunto. Puesto que todos los procesos están esperando ninguno de ellos realizará el evento que pueda despertar a los demás y todos los procesos esperaran por siempre.

Cuando los recursos son compartidos entre usuarios: 

Pueden producirse interbloqueos en los cuales los procesos de algunos usuarios nunca podrán llegar a su término. Se debe considerar la prevención, evitación, detección y recuperación del interbloqueo y la postergación indefinida, que se da cuando un proceso, aunque no esté interbloqueado, puede estar esperando por un evento que probablemente nunca ocurrirá.

En algunos casos:
El precio de liberar interbloqueos en un sistema es demasiado alto.

El precio de liberar interbloqueos en un sistema es demasiado alto. Permitir el interbloqueo podría resultar catastrófico.

Los sistemas de cómputos tienen muchos recursos que solo pueden ser utilizados por un proceso a la vez: Ej.: impresoras, unidades de cinta, espacio de la tabla de nodos-i.

Los S. O. tienen la capacidad de otorgar temporalmente a un proceso el acceso exclusivo a ciertos recursos.

Frecuentemente un proceso necesita el acceso exclusivo no solo a un recurso, sino a varios.

Ej. de bloqueo:

Dos procesos desean imprimir grandes archivos en cinta.
El proceso “a” solicita la impresora, que se le concede.
El proceso “b” solicita la unidad de cinta, que se le concede.
El proceso “a” solicita la unidad de cinta, pero se deniega la solicitud hasta que “b” la libera.
El proceso “b” solicita la impresora y se produce el bloqueo (deadlock).

En este caso ambos procesos se quedan en un ciclo infinito debido a que cada uno de los procesos se queda esperando a que el dispositivo que necesita este libre. Cuando ocurren este tipo de bloqueos la única solución es sacrificar uno de los dos procesos.
Los recursos pueden ser de dos tipos:
Apropiables.
 Este tipo de recurso, es aquel que si no esta siendo utilizado por un proceso, el sistema operativo en caso de que otro proceso lo necesite se lo asigna a este proceso. Un ejemplo de este recurso es la memoria.
No apropiables.
Este tipo de recurso, es aquel es si un proceso lo esta necesitando, en este caso no se libera amenos que el proceso lo libere. Un ejemplo de este es la impresora.

Un proceso que desea utilizar un recurso sigue una serie de pasos, los cuales son lo siguientes:
Solicitar el recurso.
 Aquí el sistema operativo busca el recurso y checa si esta listo, si es así el recurso es asignado al proceso, pero si no esta listo el proceso tendrá que esperar.
Utilizar el recurso.
 Aquí el sistema operativo checa si el recurso asignado esta siendo ocupado si no es así, el sistema operativo se lo quita y libera el recurso.
Liberar el recurso.
 Aquí el sistema operativo no puede checar o liberar el recurso, lo que hace es avisar al usuario para que no use tanto el recurso.
  
 Para que se presente un bloqueo se deben realizar las siguientes condiciones.

Condición de exclusión mutua.
 Cada recurso esta signado a un único proceso o esta disponible.

Condición de posesión y espera.

 Los procesos que tienen en un momento dado recursos asignados con anterioridad pueden solicitar nuevos recursos.

Condición de no apropiación.
 Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita.

Condicion de espera circular.
   Debe existir una cadena circular de 2 o más procesos, cada uno de los cuales espera un recurso poseído por el siguiente elemento de la cadena.

  MODELACIÓN DE BLOQUEOS.
 La modelación de bloqueos se puede mostrar mediante gráficas dirigidas (Holt).


Concepto de Recursos:
En informática, los recursos son las aplicaciones, herramientas, dispositivos (periféricos) y capacidades con los que cuenta una computadora.

Por ejemplo, los recursos informáticos (de capacidad) pueden ser: la memoria, la capacidad de almacenamiento e incluso la CPU con la que cuenta una computadora.

Un recurso libre es la capacidad de un recurso con la que cuenta una computadora en un determinado momento. Por ejemplo, el recurso de memoria RAM libre en un determinado momento puede ser 450 MB de un total de memoria de 1 GB.

Un recurso también puede ser un dispositivo. Por ejemplo, una computadora que cuenta con una impresora, cuenta con ese recurso.

Las redes de computadoras no sólo se utilizan para compartir información, también pueden compartirse recursos informáticos. Por ejemplo, al compartir una impresora, capacidad de CPU o almacenamiento, etc.


Bloqueos y Condiciones Necesarias Para el Bloqueo
La secuencia de eventos necesarios para utilizar un recurso es la siguiente:

Solicitar el recurso.
Utilizar el recurso.
Liberar el recurso.

Si el recurso no está disponible cuando se lo solicita:
El proceso solicitante debe esperar.
En algunos S. O. el proceso se bloquea automáticamente y se despierta cuando dicho recurso está disponible.
En otros S. O. la solicitud falla y el proceso debe esperar para luego intentar nuevamente.
Un bloqueo se puede definir formalmente como sigue:
Un conjunto de procesos se bloquea si cada proceso del conjunto espera un evento que solo puede ser provocado por otro proceso del conjunto:

Ya que todos los procesos están esperando:
Ninguno realizará un evento que pueda despertar a los demás miembros del conjunto.

Todos los procesos esperarán por siempre.

Generalmente el evento que espera cada proceso es la liberación de cierto recurso que posee por el momento otro miembro del conjunto:
Cada miembro del conjunto de procesos bloqueados espera un recurso poseído por un proceso bloqueado.
Ninguno de los procesos bloqueados puede continuar su ejecución, ni liberar recursos, ni puede ser despertado.
Las condiciones necesarias para el bloqueo son (Coffman):
Los procesos reclaman control exclusivo de los recursos que piden (condición de exclusión mutua).
Los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales (condición de espera por).

Los recursos no pueden ser extraídos de los procesos que los tienen hasta su completa utilización (condición de no apropiatividad).
Existe una cadena circular de procesos en la que cada uno mantiene a uno o más recursos que son requeridos por el siguiente proceso de la cadena (condición de espera circular).

Un interbloqueo simple.



Procesos y Administración del Procesador


La administración del procesador es, prácticamente el tema central de la multiprogramación. Esta administración involucra las distintas maneras a través de las cuales el sistema operativo comparte los recursos del procesador entre distintos procesos que están compitiendo por su uso. Esto implica directamente la multiprogramación y conlleva simultáneamente la sincronización de los mismos.

La idea de administrar el procesador eficientemente está enfocada en dos aspectos: el primero es la cantidad de procesos por unidad de tiempo que se pueden ejecutar en un sistema; y el segundo, el que importa más al usuario, es el tiempo de respuesta de esos procesos.

Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada uno de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación. Esta definición varía ligeramente en el caso de sistemas operativos multadillo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (folk). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

 En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, está organizado en una serie del proceso secuenciales, o simplemente procesos. La idea clava aquí es que un proceso es una actividad de algún tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algún algoritmo de planificación para determinar cuándo debe de trabajar en un proceso para atender a uno distinto. Jerarquías de procesos Los sistemas operativos que manejan el concepto de proceso deben contar con algún mecanismo para crear todos los procesos necesarios. En los sistemas muy sencillos, o en los diseñados para ejecutar solo una aplicación. En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos. En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. 

El proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de proceso.

Administración de Memoria
Se le llama administración de memoria a los diversos métodos y operaciones destinados a obtener la máxima utilidad y provecho de una memoria informática, en pos del buen uso y funcionamiento del sistema en su totalidad.

Una memoria informática consiste en la serie de componentes, dispositivos y medios en una computadora que tienen el fin de retener y almacenar datos informáticos en forma circunstancial o permanente. Toda computadora moderna dispone de unidades de memoria que permiten el correcto funcionamiento del CPU o Unidad Central de Procesamiento.
Las hay de distintos tamaños y formatos. Una memoria puede ser un chip inserto en el interior de la computadora, pero también puede considerarse memoria al uso de unidades externas de almacenamiento como CDs, DVDs o memorias flash. A menudo una computadora dispone de una memoria principal, pero ésta puede ser complementada con otras unidades de memoria que se agreguen o con memorias movibles que permitan intercambiar datos entre varias computadoras.

La administración de memoria refiere, entonces, a la serie de métodos y procesos que se llevan adelante desde la parte usuaria a los efectos de obtener el mejor rendimiento posible por parte de estas unidades.

Estas operaciones son múltiples y tienen distintos usos y objetivos directos. Por ejemplo, una típica operación es trasladar la información a ser ejecutada dentro y fuera de la memoria principal, procurando maximixar el uso del procesador. Otras operaciones comunes son la protección de los procesos de interferencias de otros, uso compartido de datos, para que varios procesos compartan la misma información y memoria, partición de memoria en varias partes, limpieza de datos en la memoria que son poco utilizados o irrelevantes, formateo de disco y muchas otras.

Todos estos procesos son flexibles y dependen del uso y propósito del ordenador por parte del usuario para optimizar su rendimiento. Con frecuencia, la ejecución de estas operaciones brindará mayor espacio disponible para el almacenamiento de información y proporcionará una mayor agilidad en la gestión de procesos de diversa índole y nivel.

Sistema Archivos
¿Qué son los sistemas de archivos?
Un sistema de archivos son los métodos y estructuras de datos que un sistema operativo utiliza para seguir la pista de los archivos de un disco o partición; es decir, es la manera en la que se organizan los archivos en el disco. El término también es utilizado para referirse a una partición o disco que se está utilizando para almacenamiento, o el tipo del sistema de archivos que utiliza. Así uno puede decir “tengo dos sistemas de archivo” refiriéndose a que tiene dos particiones en las que almacenar archivos, o que uno utiliza el sistema de “archivos extendido”, refiriéndose al tipo del sistema de archivos.

La diferencia entre un disco o partición y el sistema de archivos que contiene es importante. Unos pocos programas (incluyendo, razonablemente, aquellos que crean sistemas de archivos) trabajan directamente en los sectores crudos del disco o partición; si hay un archivo de sistema existente allí será destruido o corrompido severamente. La mayoría de programas trabajan sobre un sistema de archivos, y por lo tanto no utilizarán una partición que no contenga uno (o que contenga uno del tipo equivocado).

Antes de que una partición o disco sea utilizada como un sistema de archivos, necesita ser iniciada, y las estructura de datos necesitan escribirse al disco. Este proceso se denomina construir un sistema de archivos.

La mayoría de los sistema de archivos UNIX tienen una estructura general parecida, aunque los detalles exactos pueden variar un poco. Los conceptos centrales son superbloque, nodo-i, bloque de datos, bloque de directorio, y bloque de indirección. El superbloque tiene información del sistema de archivos en conjunto, como su tamaño (la información precisa aquí depende del sistema de archivos). Un nodo-i tiene toda la información de un archivo, salvo su nombre. El nombre se almacena en el directorio, junto con el número de nodo-i. Una entrada de directorio consiste en un nombre de archivo y el número de nodo-i que representa al archivo. El nodo-i contiene los números de varios bloques de datos, que se utilizan para almacenar los datos en el archivo. Sólo hay espacio para unos pocos números de bloques de datos en el nodo-i; en cualquier caso, si se necesitan más, más espacio para punteros a los bloques de datos son colocados de forma dinámica. Estos bloques colocados dinámicamente son bloques indirectos; el nombre indica que para encontrar el bloque de datos, primero hay que encontrar su número en un bloque indirecto.

Los sistemas de archivos UNIX generalmente nos permiten crear un agujero en un archivo (esto se realiza con la llamada al sistema lseek(); compruebe su página de manual), lo que significa que el sistema de archivos simplemente intenta que en un lugar determinado en el archivo haya justamente cero bytes, pero no existan sectores del disco reservados para ese lugar en el archivo (esto significa que el archivo utilizará un poco menos de espacio en disco). Esto ocurre frecuentemente en especial para pequeños binarios, librerías compartidas de Linux, algunas bases de datos, y algunos pocos casos especiales. (los agujeros se implementan almacenando un valor especial en la dirección del bloque de datos en el bloque indirecto o en el nodo-i. Esta dirección especial indica que ningún bloque de datos está localizado para esa parte del archivo, y por lo tanto, existe un agujero en el archivo).

Entrada//Salida
(Entrada y Salida) sirven básicamente para la comunicación de la computadora con el medio externo. Proveen el modo por el cual la información es transferida de afuera hacia adentro, y viceversa, además de compatibilizar esta transferencia a través del equilibrio de velocidad entre los diferentes medios. Entre estos componentes podemos mencionar el teclado, el monitor y la impresora. 

Teclado (Periférico de Entrada): Es el más importante medio de entrada de datos, el cual establece una relación directa entre el usuario y el equipo. 



Lecto/grabadora de CD/DVD (Periférico de Entrada y Salida): Tiene como función hacer girar el disco a una velocidad constante y transferir programas o datos desde el disco a la computadora o viceversa. Esa operación es realizada a través de un cabezal de lectura y grabación que se mueve hacia atrás y adelante sobre la superficie del disco. Los datos grabados en el disco pueden ser leídos y utilizados como fuente de consulta en una operación futura.

Perifericos de PC


Disco Duro, Disco Rígido o HD (Periférico de Entrada y Salida): Son unidades de almacenamiento que se caracterizan por la mayor capacidad de almacenamiento y la mayor velocidad de operación. 

Está compuesto por una serie de discos de material rígido, agrupados en un único eje, teniendo cada disco un cabezal. Los cabezales flotan sobre la superficie del disco apoyados en un colchón de aire, eso significa que deben ser conservados en cajas herméticamente cerradas para evitar problemas causados por el polvo y otros elementos extraños. 

Perifericos de la PC


Monitor (Periférico de Salida): Utilizado para la salida de información,el monitor es el canal por donde la computadora muestra la información al usuario. Está conectado a la placa de video de la computadora. 

Perifericos de PC

Mouse (Periférico de Entrada): El mouse se coloca sobre cualquier superficie plana y, cuando se mueve, mueve también el cursor en la pantalla con extrema agilidad. Así, una persona puede moverse a cualquier parte de la pantalla, presionar el botón y activar la operación deseada. 



Joystick (Periférico de Entrada): Generalmente es utilizado para juegos. La nave espacial, o cualquiera otro objeto controlado en la pantalla por el joystick, se mueve en la misma dirección que él. Cuando el joystick es movido para adelante, la nave espacial avanza en la pantalla



Impresoras (Periférico de Salida): Son utilizados para la impresión de datos sobre papel.

Existen tres tipos principales de impresoras: Matricial (o de Matriz de Puntos), chorro a Tinta y Láser. 

Perifericos de PC


Módem (Periférico de Entrada y Salida): El módem es un dispositivo de conversión de señales, que transmite datos a través de líneas telefónicas. La palabra MÓDEM es derivada de las palabras modulación y desmodulación. Utilizados para la conexión a internet. 



Escáner - Digitalizador de imagen - (Periférico de Entrada): Un digitalizador de imágenes es un dispositivo de entrada de datos, que permite la digitalización de imágenes a partir de material impreso (revistas, periódicos, carteles). 

Las imágenes escaneadas pueden ser modificadas y reproducidas nuevamente por equipos adecuados de impresión. De esta forma podemos confeccionar carteles o cualquier otro tipo de trabajo utilizando fotografías. 





INTRODUCCIÓN

El proyecto PROSOFT surge como una alternativa en la capacitación y formación de estudiantes y profesionales de la informática, a través de cursos, que Introducción a los Sistemas Distribuidos Modelo Paracurricular Desarrollador de Software 2004 comprenden desde temas básicos hasta avanzados, estructurados de acuerdo a Estrategias didácticas comprobadas y metas de aprendizaje alcanzables.

Especialmente, el curso de Introducción a los Sistemas Distribuidos comprende temas fundamentales como el paradigma cliente servidor, middleware y computación móvil. Temas que encierran aspectos representativos y novedosos de los ambientes distribuidos con aplicación práctica en plataforma de tecnologías como Java, .NET y CORBA.

Es importante destacar que por la intensidad de la temática del curso, en principiose aplican técnicas didácticas orientadas a un aprendizaje basado en problemas y que en conjunto con la comprobación de lecturas y ejercicios los participantes en forma individual y grupal estarán en posibilidades de alcanzar metas comunes

para:

• Proponer la solución de un problema.

• Decidir en el estudio de un caso.

• El diseño y desarrollo de un proyecto.

De tal forma que el curso esta organizado de la manera siguiente

para su mejor comprensión.




Ventajas de los sistemas Operativos Distribuidos con respecto a los centralizados


* Economía: es la razón número uno de la tendencia hacia los sistemas distribuidos ya que estos sistemas tienen en potencia una proporción precio/desempeño mucho mejor que la de un sistema centralizado.

*Velocidad: un sistema distribuido puede tener mayor poder de cómputo que una mainframe.

* Distribución inherente: otra razón para la construcción de un sistema distribuido es que ciertas aplicaciones son distribuidas en forma inherente; es decir, algunas aplicaciones utilizan máquinas que están separadas a cierta distancia.


*Confiabilidad: un sistema distribuido ofrece mayor confiabilidad: al distribuir ya que si un bloque se daña el resto sigue intacto

*Crecimiento por incrementos: si se necesita añadir poder de cómputo a la compañía, con un sistema distribuido, podrían solamente poder añadirse sólo más procesadores al sistema,que satifaser laq nesesidad .

distribuye la carga de trabajo en muchas máquinas, la falla de un circuito descompondrá a lo más una máquina y el resto seguirá intacto. 

 
Ventajas de los Sistemas Distribuidos con respecto de las PC independientes



*Datos compartidos: Un sistema distribuido permite que varios usuarios tengan acceso a una base de datos común.

*Dispositivos compartidos: De igual manera, se pueden compartir periféricos entre diversos usuarios como puede ser una impresora

*Comunicación: un sistema distribuido facilita la comunicación entre computadoras aisladas con el e-mail, por ejemplo.

*Flexibilidad: Un sistema distribuido difunde la carga de trabajo entre las máquinas disponibles en la forma más eficaz en cuanto a los costos.


DESVENTAJAS


-El principal problema es el software, es el diseño, implantación y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:

-Las computadoras en un sistema pueden ser de diferentes tipos y ejecutar versiones diferentes de sistemas operativos. Esto significa que se requiere mas esfuerzo para gestionar y mantener en funcionamiento el sistema.

-Puede accederse al sistema desde varias computadoras diferentes, y el trafico en la red, puede estar sujeto a escuchas indeseadas (esto hace mas difícil mantener la integridad de los datos en el sistema y que los servicios no se degraden por ataques).

-Los sistemas distribuidos son mas complejos, esto provoca que sea mas difícil comprender sus propiedades.

-los sistemas distribuidos tienen un sistema impredecible. Como todos ellos pueden cambiar rápidamente, el tiempo requerido para responder a una petición de usuario puede variar dramáticamente, de una petición a otra.

En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente.



MULTIPROCESADORES CON BASE EN BUSES

Constan de cierto número de cpu conectadas a un bus común, junto con un módulo de memoria (ver Figura 7.1 [25, Tanenbaum])


http://luisddos.blogdiario.com/img/1.jpeg


Un bus típico posee al menos:

32 líneas de direcciones.
32 líneas de datos.
30 líneas de control.

Todos los elementos precedentes operan en paralelo.

Solo existe una memoria, la cual presenta la propiedad de la coherencia:
Las modificaciones hechas por una cpu se reflejan de inmediato en las subsiguientes lecturas de la misma o de otra cpu.

El problema de este esquema es que el bus tiende a sobrecargarse y el rendimiento a disminuir drásticamente; la solución es añadir una memoria caché de alta velocidad entre la cpu y el bus:
El caché guarda las palabras de acceso reciente.
Todas las solicitudes de la memoria pasan a través del caché.
Si la palabra solicitada se encuentra en el caché:
El caché responde a la cpu.
No se hace solicitud alguna al bus.
Si el caché es lo bastante grande:
La “tasa de encuentros” será alta y la cantidad de tráfico en el bus por cada cpu disminuirá drásticamente.
Permite incrementar el número de cpu.


Multiprocesadores con Conmutador
El esquema de multiprocesadores con base en buses resulta apropiado para hasta aproximadamente 64 procesadores.

Para superar esta cifra es necesario un método distinto de conexión entre procesadores (cpu) y memoria.

Una posibilidad es dividir la memoria en módulos y conectarlos a las cpu con un “conmutador de cruceta” (cross-bar switch):
Cada cpu y cada memoria tiene una conexión que sale de él.
En cada intersección está un “conmutador del punto de cruce” (crosspoint switch) electrónico que el hardware puede abrir y cerrar:
Cuando una cpu desea tener acceso a una memoria particular, el conmutador del punto de cruce que los conecta se cierra momentáneamente.
La virtud del conmutador de cruceta es que muchas cpu pueden tener acceso a la memoria al mismo tiempo:
Aunque no a la misma memoria simultáneamente.
Lo negativo de este esquema es el alto número de conmutadores:
Para “n” cpu y “n” memorias se necesitan “n” x “n” conmutadores ver Figura 7.2



Cada cpu tiene asociada cierta memoria local.
El acceso será muy rápido a la propia memoria local y más lento a la memoria de las demás cpu.
Esto se denomina esquema o “máquina NUMA” (Acceso No Uniforme a la Memoria):

Tienen un mejor tiempo promedio de acceso que las máquinas basadas en redes omega.
La colocación de los programas y datos en memoria es crítica para lograr que la mayoría de los accesos sean a la memoria local de cada cpu.

SISTEMAS OPERATIVOS DE RED
Hace unas semanas Arnol en su artículo habló sobre OpenWRT, luego complementaron con MikroTik, EasyTomato, entre otros, los cuales me llamaron bastante la atención. Es por eso que quise profundizar un poco más en el tema y abarcar sistemas operativos de red en general. Por el Ing Ruiz y algunas de sus frases que debemos de descifrar (pincho, forro, capuchón, chorrada, entre otras  Rolling Eyes ) sabemos que un sistema operativo que trabaja en dispositivos de red (y en el cual se basan la mayoría) es el IOS (Internetwork Operating System) de Cisco, pero que hay de los sistemas operativos de red? No creen que sería necesario, útil e interesantes conocer un poco mas de cada uno de ellos? Para empezar veamos un poco de TEORIA.



SERVICIOS DE LOS SISTEMAS OPERATIVOS DE RED



Como vimos a principios del curso (para el primer parcial) todo sistema operativo debe cumplir dos funciones principales:



Gestionar los recursos del hardware.

Proveer servicios a los programas de apliacion.


En ese sentido, los principales tipos de servicios que brindan los sistemas operativos de red son:

Ejecución de programas. El sistema tiene que ser capaz de cargar un programa en memoria y ejecutarlo.

Operaciones de entrada/salida. Como un programa no puede acceder directamente a un dispositivo de E/S el sistema operativo debe facilitarle algunos medios para realizarlo.

Comunicaciones: Se refiere a todo lo que se envía a través del cable. La comunicación se realiza cuando por ejemplo, alguien entra a la red, copia un archivo, envía correo electrónico, o imprime.

Manipulación del sistema de archivos. El sistema operativo debe facilitar las herramientas necesarias para que los programas puedan leer, escribir y eliminar archivos.

Detección de errores. El sistema operativo necesita constantemente detectar posibles errores. Los errores pueden producirse en la CPU y en el hardware de la memoria, en los dispositivos de E/S o bien en el programa de usuario. Para cada tipo de error, el sistema operativo debe adoptar la iniciativa apropiada que garantice una computación correcta y consistente.

CARACTERÍSTICAS
 Después de cumplir todos los requerimientos de hardware para instalar una LAN, se necesita instalar un sistema operativo de red (Network Operating System, NOS), que administre y coordine todas las operaciones de dicha red. Los sistemas operativos de red tienen una gran variedad de formas y tamaños, debido a que cada organización que los emplea tiene diferentes necesidades. Algunos sistemas operativos se comportan excelentemente en redes pequeñas, así como otros se especializan en conectar muchas redes pequeñas en áreas bastante amplias. Pero en general, las características genéricas de un sistema operativo de red son:

  • Conecta todos los equipos y recursos de la red.
  • Gestión de usuarios centralizada.
  • Proporciona seguridad, controlando el acceso a los datos y recursos. Debe validar los accesos (claves, certificados, sistemas biométricos, etc.) y ver aplicar las políticas de seguridad.
  • Coordina las funciones de red, incluso con las propias del equipo.
  • Comparte recursos (lleva a cabo la coordinación y los privilegios a la hora de compartir). Por tanto, mejora notablemente la utilización de los recursos.
  • Permite monitorizar y gestionar la red y sus componentes.
  • Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
  • Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
  • Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cadaproceso una parte del procesador para poder compartir los recursos.
  • Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
  • Organizar datos para acceso rápido y seguro.
  • Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
  • Procesamiento por bytes de flujo a través del bus de datos.
  • Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.
  • Técnicas de recuperación de errores.
  • Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.
  • Generación de estadísticas.
  • Permite que se puedan compartir el hardware y los datos entre los usuarios.


EJEMPLOS DE SO DE RED






El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Existen diversos Sistemas Operativos de red capaces de gestionar una red dependiente de las arquitecturas de las máquinas que se utilicen; sin embargo, los más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX y LANtastic.

NETWARE DE NOVELL
Este sistema operativo de red es una suite de protocolos diseñados en base a la arquitectura del protocolo XNS. Proporciona soporte integral para la mayoría de los sistemas operativos de escritorio en el mercado, incluyendo DOS, Windows, Macintosh, OS/2 y Unix. Novell también soporta redes de área local y comunicaciones asíncronas de área amplia.


LAN MANAGER


LAN Manager es un sistema operativo de red creado por Microsoft y que funciona como una aplicación de servidor. Se ejecuta bajo Microsoft OS/2 y fue desarrollado en conjunto con 3Com. El servidor de archivos puede ser usado de forma concurrente para otras tareas como servicios de bases de datos. En otras palabras, el sistema proporciona una buena función multitareas. También soporta la mayoría de los sistemas operativos de escritorio como DOS, Windows y clientes OS/2. Actualmente la herramienta LAN Manager ha sido reemplazada por Microsoft Windows NT Server y su mayor parte está siendo usada en Windows NT y Windows 2000.


WINDOWS NT

Desde que Microsoft lanzó el primer Windows NT en 1993 como sistema operativo de red, no ha dejado de evolucionar y de ampliar funciones y interoperabilidad con otros sistemas operativos como Netware. Windows NT combina el sistema operativo del equipo y de red en un mismo sistema y trabaja sobre un modelo de dominio. Está formado por Windows NT Server, que configura un equipo para trabajar como servidor, y Windows NT Workstation, que proporciona a un equipo las funciones de cliente. Después de Windows NT, se presentaron Windows Server 2000 y Server 2003.



REDES UNIX

UNIX es un sistema operativo de propósito general, multiusuario y multitarea, siendo las dos versiones más conocidas Linux y Solaris. Un sistema UNIX está constituido por un equipo central y múltiples terminales para los usuarios. Este sistema operativo ha sido diseñado específicamente para grandes redes, pero también presenta algunas aplicaciones para equipos personales. La característica principal de los sistemas Unix es que todos ellos están basados en el protocolo TCP/IP.



LANTASTIC DE ARTISOFT

LANtastic soporta una gran variedad de sistemas operativos para PC como Windows NT 4.0/2000/2003 (para estación de trabajo y/o servidor) y Windows XP. Tiene un soporte mejorado para multi-plataformas. La instalación y operación del sistema es rápida y fácil de usar, además de tener una interfaz mejorada que permite que todas las PCs conectadas a la red puedan comunicarse usando únicamente la herramienta de Chat. No es necesario que los usuarios empleen un servidor dedicado o tener un administrador de red de tiempo completo, debido a que el 
sistema es simple y sencillo de mantener.




BANYAN VINES


El servicio de red integrado virtual Banyan (VINES o Virtual Integrated Network Service en inglés) es un sistema operativo de red basado en una familia de protocolos propietaria. El protocolo se deriva básicamente de los protocolos de los sistemas de red Xerox (XNS o Xerox Network Systems en inglés), en los que se usa una arquitectura cliente-servidor que permite a los clientes solicitar servicios específicos a los servidores, como acceso a archivos y a impresoras.



SISTEMAS OPERATIVOS DE APPLE

El sistema operativo de red Appletalk está completamente integrado en el sistema operativo de cada equipo que ejecuta el Mac OS. La implementación actual de AppleTalk permite posibilidades de interconexión Trabajo en Grupo de alta velocidad entre equipos Apple, así como interoperabilidad con otros equipos y sistemas operativos de red.


CONCLUSIONES

Como conclusión, podemos destacar que existen diferentes SO, entre ellos Sisteamas Operativos de red, y dentro de ellos a su vez una infinidad de variedades. Pero todos y cada uno de ellos presentan características similares, las mismas que fueron descritas a lo largo del artículo. Si son como Ted y leyeron todo, genial! no perdí horas realizando el artículo en vano, pero si les dio flojera y solo vieron el título pero aún así desean saber más sobre el tema, les dejo dos videos que explican ciertas cosas presentes en el artículo.













Si están aún más interesados en saber mas sobre el tema, les dejo algunos links y bibliografía que emplé para realizar el artículo y en los cuales encontrarán mayor información. Espero les haya gustado el artículo y la información sea útil.