Sistema Operativo
"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
S on administrar los recursos del ordenador, coordinar el
hardware y organizar archivos y directorios en los dispositivos de
almacenamiento de nuestro ordenador.
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
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.
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:
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.
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.
C ada recurso
esta signado a un único proceso o esta disponible.
Los recursos
otorgados con anterioridad no pueden ser forzados a dejar un proceso. El
proceso que los posee debe liberarlos en forma explicita.
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.
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:
Ya que todos los procesos están esperando:
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:
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).

Procesos y Administración del Procesador
Entrada//Salida
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.
Liberar el recurso.
Para que se
presente un bloqueo se deben realizar las siguientes condiciones.
Condición de exclusión mutua.
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.
Condicion de espera circular.
MODELACIÓN DE
BLOQUEOS.
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 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:
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):
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).
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 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.

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.

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.

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.

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.
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.
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.
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])
*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])
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.
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
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.
