miércoles, 30 de octubre de 2013
SINCRONIZACION ENTRE PROCESOS
En muchos casos, los procesos se reúnen para realizar tareas en conjunto, a este tipo de relación se le llama procesos cooperativos. Para lograr la comunicación, los procesos deben sincronizarse, de no ser así pueden ocurrir problemas no deseados. La sincronización es la transmisión y recepción de señales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinación y cooperación de un conjunto de procesos para asegurar la comparación de recursos de cómputo. La sincronización entre procesos es necesaria para prevenir y/o corregir errores de sincronización debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronización entre procesos también permite intercambiar señales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones específicas de precedencia impuestas por el problema que se resuelve. Sin una sincronización adecuada entre procesos, la actualización de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difíciles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras se actualizan. una aproximación para resolver este problema es realizar actualizaciones de variables compartidas de manera mutuamente exclusiva. Se pueden mejorar permitiendo que a lo mas un proceso entre a la vez en la sección critica de código en la que se actualiza una variable compartida o estructura de datos en particular. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecución de un proceso. Los principales mecanismos de sincronización que ofrecen los sistemas operativos son:
Señales
Tuberías
Semáforos
Mutex y variables condicionales
Paso de mensajes
Señales
Tuberías
Semáforos
Mutex y variables condicionales
Paso de mensajes
TRANSACCION DE PROCESOS
Proceso de Transacciones en Sistemas Distribuidos
Las transacciones son un mecanismo que ayuda a simplificar la construcción de sistemas confiables a través de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:
* Operaciones de compartición de datos.
* Aseguramiento de la seriabilidad de las transacciones con otras.
* Atomicidad en su comportamiento.
* Recuperación de fallas provocadas en red y nodos.
El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tenía 3 reglas básicas:
• Consistencia: Obedecer ciertas reglas.
• Atomicidad: Debe ocurrir completo o abortar.
• Durabilidad: Una vez iniciada una transacción y terminada completamente no puede ser abortada.
• Dentro del área de los sistemas computacionales el concepto de transacciones fue inicialmente utilizado para definir la consistencia entre múltiples usuarios de una base de datos.
Motivos del uso de transacciones.
Los sistemas distribuidos tienen varios aspectos que representan problemas para la integridad de los recursos, los cuales motivan el uso de transacciones:
1. Dificultad para mantener consistencia en los datos.
2. Una misma vía de comunicación no siempre puede ser utilizada para proveer interacción entre 2 procesos.
3. Requerimientos de procesamiento en paralelo.
4. Manejo interactivo de uno o más usuarios
Las transacciones son un mecanismo que ayuda a simplificar la construcción de sistemas confiables a través de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:
* Operaciones de compartición de datos.
* Aseguramiento de la seriabilidad de las transacciones con otras.
* Atomicidad en su comportamiento.
* Recuperación de fallas provocadas en red y nodos.
El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tenía 3 reglas básicas:
• Consistencia: Obedecer ciertas reglas.
• Atomicidad: Debe ocurrir completo o abortar.
• Durabilidad: Una vez iniciada una transacción y terminada completamente no puede ser abortada.
• Dentro del área de los sistemas computacionales el concepto de transacciones fue inicialmente utilizado para definir la consistencia entre múltiples usuarios de una base de datos.
Motivos del uso de transacciones.
Los sistemas distribuidos tienen varios aspectos que representan problemas para la integridad de los recursos, los cuales motivan el uso de transacciones:
1. Dificultad para mantener consistencia en los datos.
2. Una misma vía de comunicación no siempre puede ser utilizada para proveer interacción entre 2 procesos.
3. Requerimientos de procesamiento en paralelo.
4. Manejo interactivo de uno o más usuarios
FRAGMENTACION EHC
La fragmentación interna es la pérdida de espacio en disco debido al hecho de que el tamaño de un determinado archivo sea inferior al tamaño del cluster, ya que teóricamente el archivo estaría obligado a ser referenciado como un cluster completo. Los cluster(s) son contiguos de forma que desde el último bit del archivo situado en el cluster "a" hasta el primer bit del archivo situado en el cluster contiguo (es decir "b") queda un espacio sobrante siempre teniendo la condición de que el archivo del cluster "a" fuera más pequeño que el cluster en sí. Por eso se sugiere no disponer de un gran tamaño de partición en los discos nuevos donde la capacidad es muy importante. Por ejemplo si nuestro clúster es de 18KB (18.432 bytes) por más que un archivo ocupe menos, en nuestro disco ocupara 18KB. Esto sugiere una pérdida de ese espacio que dice utilizar pero no utiliza. Por eso, en nuestro ejemplo, un archivo de 3KB ocupara en nuestro disco lo mismo que uno de 10KB, o sea 18 KB. Esa pérdida de espacio se denomina fragmentación interna, y no se corrige con el desfragmentado, sino disminuyendo el tamaño del clúster, algo que habitualmente los usuarios solo pueden conseguir creando particiones más pequeñas. Este tipo de fragmentación aparece como consecuencia de las distintas políticas de ajuste de bloques que tiene un sistema de ficheros, o al utilizar asignaciones dinámicas de bloques en el caso de la memoria. En el sistema de ficheros, la sucesiva creación y eliminación de ficheros de distintos tamaños puede conducir al aislamiento de los bloques libres de un disco y, dependiendo de la política de ajuste, su no elección para futuros ficheros. En la memoria del sistema la fragmentación se produce cuando los procesos asignados han ocupado posiciones no contiguas de memoria dejando demasiados bloques libres de pequeño tamaño, en los que no "caben" nuevos procesos. En sistemas de ficheros la desfragmentación trata de resolver este problema, alineando los bloques de datos contiguos y juntando los bloques libres, produciendo así fragmentos mayores que sí serán elegidos para futuros ficheros. En la memoria principal se soluciona compactando los procesos para que estos ocupen posiciones contiguas y dejar los bloques libres juntos, o también se soluciona con la paginación de memoria.
MONOPROGRAMACION
En un sistema de monoprogramación todos
los recursos del ordenador. CPU, memoria, E/S, etc. Se abocan a la ejecución de
un solo programa a la vez. Esto conlleva a una baja utilización de los
recursos, por ejemplo; Cuando el programa en ejecución realiza una operación de
E/S se introduce la orden precisa en el registro de órdenes. El controlador
responde a esto traduciendo esas órdenes al dispositivo, y poniendo a uno el
bit de ocupación para indicar que el dispositivo está ocupado realizando una
operación de E/S. Cuando termine la operación, el controlador pone a cero este
bit para indicar que la operación concluyó, y el dispositivo está desocupado.
Para saber cuándo termina la E/S, el programa, después de mandar la orden,
tiene que ejecutar un ciclo del siguiente estilo:
ØLeer el registro de estado
ØMientras (el bit de ocupación esté a uno)
ØLeer el registro de estado
ØFin Mientras
Esto
nos conlleva a que en un momento dado la
CPU este realizando una acción sin ocupar la E/S y esta ultima quede ociosa o
bien la E/S este siendo ocupada y la CPU revisando la finalización de algún
ciclo; cómo podemos ver en la imagen (grafico), donde los rectángulos rellenos
a trazas representan el ciclo de comprobación. Para dar una medida de la
infrautilización de los recursos que conlleva esta forma de realizar las E/S,
piénsese que en el tiempo en que una impresora imprime una línea, la CPU, en
lugar de ejecutar el ciclo de comprobación que aparece líneas más arriba,
podría ejecutar millones de instrucciones de otro programa. A esta forma de
realizar la E/S de los sistemas de monoprogramación se le llama E/S controlada
por programa.
lunes, 23 de septiembre de 2013
EL PROCESADOR
El procesador, también
conocido como CPU o micro, es el cerebro del PC. Se encarga de hacer funcionar
a las aplicaciones y el sistema operativo dando respuesta a las órdenes que le
envías a través de los periféricos de entrada como el teclado o el ratón.
Físicamente,
el micro, no es más que una pastilla de silicio. En un PC se coloca sobre la placa base en un conector que se
denomina socket. En un laptop es normal que te lo
encuentres soldado. La placa permite la conexión con los restantes dispositivos
de tu equipo como son la memoria, la tarjeta gráfica o el disco duro usando para ello un
conjunto de circuitos y chips denominado chipset.
Es
uno de los elementos del PC que más ha evolucionado a lo largo del tiempo. Cada
nueva generación ha permitido reducir el tamaño de los transistores que se encuentran en su interior
permitiendo integrar un mayor número de bloques funcionales. Puedes ver los
transistores como pequeños ladrillos que unidos dan forma al micro.
Estas
mejoras han permitido aumentar la integración permitiendo incluir más bloques
funcionales en su interior. En un principio fue el controlador de memoria,
después la tarjeta gráfica y en un futuro muy cercano, pasaremos del concepto
de procesador a lo que se denomina SOC, es decir, un chip con todos los
elementos de la placa base integrados.
¿Qué partes internas tiene un procesador?
Ten en cuenta que no
todos son iguales pero la mayoría de ellos incluyen entre otros elementos:
Núcleos. Un núcleo no es más que un
procesador en miniatura. Tener varios integrados permite trabajar con más de
una aplicación al mismo tiempo y además puedes acelerar ciertos tipos de
procesamiento.
Cache. Uno de los sistemas
más importantes dentro de un PC es su sistema de memoria el cual está compuesto
por varios elementos. La memoria cache, interna al
procesador, se usa para mejorar la velocidad de los accesos a la memoria RAM.
Si un dato está en la cache ya no tendremos que ir a buscarlo y por lo tanto el
procesado es mucho más rápido.
Esta organizada en
varios niveles. Será tarea del micro dejar los datos que más se usen lo más
cerca del micro.
Controlador de memoria. Al incorporar el controlador de memoria en el interior del
procesador y quitarlo de la placa base se consigue que el acceso a la memoria
RAM sea más eficiente. Esto tiene un inconveniente y es que sólo puedes usar el
tipo de memoria para la que tu procesador esté preparado.
Tarjeta gráfica. Si integran este
componente ya no hablamos de CPUs sino de APUs.
Ya no estaríamos ante un micro convencional si no ante un hibrido entre
procesador y tarjeta gráfica.
Otros elementos. Los micros han incorporado
otros elementos que se encontraban antes sobre la placa base. Por ejemplo, el
controlador de PCI Express, aumentando la
velocidad con la que el micro es capaz de comunicarse con una tarjeta gráfica discreta.
¿Cómo funciona de forma interna un procesador?
El funcionamiento de un procesador se puede dividir en
las siguientes etapas:
Se lee una instrucción de memoria. Para que te puedas hacer una idea de la
complejidad de un procesador actual su conjunto de instrucciones está compuesto por
más de mil diferentes y va creciendo con el tiempo. Se busca siempre mejorar
las prestaciones.
Se buscan los datos necesarios. No todas las
instrucciones son iguales y algunas necesitaran de datos, los cuales
normalmente estarán en la memoria RAM, para poder llevar a cabo su trabajo. Si
este es el caso hay que esperar a tenerlos disponibles. Es muy importante que
el flujo de datos y de instrucciones sea lo más rápido posible para que no se
produzcan bloqueos.
Se realiza la operación. Una vez que se tiene
todo se ejecuta la operación, para esto puede ser necesario el trabajo de
varios bloques dentro del propio procesador como puede ser la unidad aritmética lógica o la de punto flotante.
Se pasa a la siguiente instrucción. Que no es siempre es
la que se encuentra a continuación en la memoria. Muchas instrucciones pueden
cambiar el flujo del programa y permitir saltos o repetir ciertas acciones
hasta que se cumpla una condición.
El
procesador es el cerebro del sistema, encargado de procesar toda la
información. Es el componente donde es usada la tecnología más reciente.
Existen en el mundo sólo cuatro grandes empresas con tecnología para fabricar
procesadores competitivos para computadoras: Intel (que domina más de un
70% del mercado), AMD, Vía (que compró la antigua Cyrix) e IBM, que fabrica
procesadores para otras empresas, como Transmite.
Algunos
de los modelos más modernos, y los cuales cuentan con la tecnología más
avanzada de la actualidad son el Intel Core
Sandy Bridge en sus variables i3, i5 e i7, el AMD Fusión y FX, los cuales pueden incorporar
hasta 8 núcleos.
Los
anteriormente mencionados cubren la mayoría de las necesidades en computadoras
de escritorio, mientras que para dispositivos portátiles como celulares
y tablets podemos contar con
procesadores ARM, Atom, Tegra2 y Snapdragon.
El
procesador es el componente más complejo y frecuentemente más caro, pero
él no puede hacer nada solo. Como todo cerebro, necesita de un cuerpo, que es
formado por los otros componentes de la computadora, incluyendo la memoria, el disco duro, la placa de vídeo y de red, monitor, teclado y
mouse.
Para que sirven los
Coolers?
Generalmente los procesadores, debido a su estructura, y a la velocidad, calientan, y para evitar ese sobrecalentamiento, se usan los Coolers.
En las computadoras actuales la refrigeración de los procesadores es realizada a través de un disipador de calor, fabricado en aluminio o cobre, con un pequeño ventilador sobre el y un conducto de aire que extrae el aire caliente del gabinete.
Generalmente los procesadores, debido a su estructura, y a la velocidad, calientan, y para evitar ese sobrecalentamiento, se usan los Coolers.
En las computadoras actuales la refrigeración de los procesadores es realizada a través de un disipador de calor, fabricado en aluminio o cobre, con un pequeño ventilador sobre el y un conducto de aire que extrae el aire caliente del gabinete.
En el siguiente video podremos
observar las características de rendimiento de uno de los más novedosos
procesadores de la actualidad, el AMD Fusion.
SO Distribuidos (INFORMACION A FONDO)
Sistemas Operativos Distribuidos
Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados.
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin
embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseño el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable.
Transparencia
El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara.
En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un único archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificación y en general, la unicidad de los recursos y el control de la concurrencia.
El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuario como los programadores vean el núcleo del sistema distribuido como un único procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizarla a través de varios ordenadores.
Eficiencia
La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo.
Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados.
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin
embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseño el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable.
Transparencia
El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara.
En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un único archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificación y en general, la unicidad de los recursos y el control de la concurrencia.
El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuario como los programadores vean el núcleo del sistema distribuido como un único procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizarla a través de varios ordenadores.
Eficiencia
La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo.
Para lograr un sistema eficiente hay que descartar la idea de ejecutar un
programa en un único procesador de todo el sistema, y pensar en distribuir
las tareas a los procesadores libres más rápidos en cada momento.
La idea de que un procesador vaya a realizar una tarea de forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero también la localidad del procesador, los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un trabajo de impresión a un ordenador que no tenga conectada una impresora de forma local.
Flexibilidad
Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciación entre las dos diferentes arquitecturas del núcleo del sistema operativo: el núcleo monolítico y el micronúcleo. Las diferencias entre ambos son los servicios que ofrece el núcleo del sistema operativo. Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema integradas en el núcleo, el micronúcleo incorpora solamente las fundamentales, que incluyen únicamente el control de los procesos y la comunicación entre ellos y la memoria. El resto de servicios se cargan dinámicamente a partir de servidores en el nivel de usuario.
Núcleo monolítico
Como ejemplo de sistema operativo de núcleo monolítico está UNIX. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la parada de todo el sistema y la recompilación del núcleo.
Micronúcleo
La arquitectura de micronúcleo ofrece la alternativa al núcleo monolítico. Se basa en una programación altamente modular, y tiene un tamaño mucho menor que el núcleo monolítico. Como consecuencia, el refinamiento y el control de errores son más rápidos y sencillos. Además, la actualización de los servicios es más sencilla y ágil, ya que sólo es necesaria la recompilación del servicio y no de todo el núcleo. Como contraprestación, el rendimiento se ve afectado negativamente.
En la actualidad la mayoría de sistemas operativos distribuidos en desarrollo tienden a un diseño de micronúcleo. Los núcleos tienden a contener menos errores y a ser más fáciles de implementar y de corregir. El
La idea de que un procesador vaya a realizar una tarea de forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero también la localidad del procesador, los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un trabajo de impresión a un ordenador que no tenga conectada una impresora de forma local.
Flexibilidad
Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciación entre las dos diferentes arquitecturas del núcleo del sistema operativo: el núcleo monolítico y el micronúcleo. Las diferencias entre ambos son los servicios que ofrece el núcleo del sistema operativo. Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema integradas en el núcleo, el micronúcleo incorpora solamente las fundamentales, que incluyen únicamente el control de los procesos y la comunicación entre ellos y la memoria. El resto de servicios se cargan dinámicamente a partir de servidores en el nivel de usuario.
Núcleo monolítico
Como ejemplo de sistema operativo de núcleo monolítico está UNIX. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la parada de todo el sistema y la recompilación del núcleo.
Micronúcleo
La arquitectura de micronúcleo ofrece la alternativa al núcleo monolítico. Se basa en una programación altamente modular, y tiene un tamaño mucho menor que el núcleo monolítico. Como consecuencia, el refinamiento y el control de errores son más rápidos y sencillos. Además, la actualización de los servicios es más sencilla y ágil, ya que sólo es necesaria la recompilación del servicio y no de todo el núcleo. Como contraprestación, el rendimiento se ve afectado negativamente.
En la actualidad la mayoría de sistemas operativos distribuidos en desarrollo tienden a un diseño de micronúcleo. Los núcleos tienden a contener menos errores y a ser más fáciles de implementar y de corregir. El
sistema pierde ligeramente en rendimiento, pero a cambio consigue un gran
aumento de la flexibilidad.
Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debería no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos, etc.
Aunque este punto sería muy deseable, puede que las soluciones válidas para unos cuantos ordenadores no sean aplicables para varios miles. Del mismo modo el tipo de red condiciona tremendamente el rendimiento del sistema, y puede que lo que funcione para un tipo de red, para otro requiera un nuevo diseño.
La escalabilidad propone que cualquier ordenador individual ha de ser capaz de trabajar independientemente como un sistema distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas.
Fiabilidad
Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe estar ligado a ciertas máquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle.
La forma más evidente de lograr la fiabilidad de todo el sistema está en la redundancia. La información no debe estar almacenada en un solo servidor de archivos, sino en por lo menos dos máquinas. Mediante la redundancia de los principales archivos o de todos evitamos el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idéntica de los archivos en otro equipo.
Otro tipo de redundancia más compleja se refiere a los procesos. Las tareas críticas podrían enviarse a varios procesadores independientes, de forma que el primer procesador realizaría la tarea normalmente, pero ésta pasaría a ejecutarse en otro procesador si el primero hubiera fallado.
Comunicación
La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes.
Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debería no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos, etc.
Aunque este punto sería muy deseable, puede que las soluciones válidas para unos cuantos ordenadores no sean aplicables para varios miles. Del mismo modo el tipo de red condiciona tremendamente el rendimiento del sistema, y puede que lo que funcione para un tipo de red, para otro requiera un nuevo diseño.
La escalabilidad propone que cualquier ordenador individual ha de ser capaz de trabajar independientemente como un sistema distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas.
Fiabilidad
Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe estar ligado a ciertas máquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle.
La forma más evidente de lograr la fiabilidad de todo el sistema está en la redundancia. La información no debe estar almacenada en un solo servidor de archivos, sino en por lo menos dos máquinas. Mediante la redundancia de los principales archivos o de todos evitamos el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idéntica de los archivos en otro equipo.
Otro tipo de redundancia más compleja se refiere a los procesos. Las tareas críticas podrían enviarse a varios procesadores independientes, de forma que el primer procesador realizaría la tarea normalmente, pero ésta pasaría a ejecutarse en otro procesador si el primero hubiera fallado.
Comunicación
La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes.
Tipos de SISTEMAS OPERATIVOS DISTRIBUIDOS
Sistemas Operativos Distribuidos
Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados.
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:
Chorus Solaris-MC Sprite Mach Amoeba Taos Spring
miércoles, 22 de mayo de 2013
Segmentacion y Paginacion
PAGINACIÓN Y SEGMENTACIÓN
La paginación y la
segmentación puras son métodos de manejo de memoria bastante efectivos, aunque
la mayoría de los sistemas operativos modernos implantan esquemas combinados,
es decir, combinan la paginación y la segmentación.
La idea de
combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos
de la división lógica de los programas (segmentos) con la granularidad de las
páginas. De esta forma, un proceso estará repartido en la memoria real en
pequeñas unidades (paginas) cuya liga son los segmentos. También es factible
así el compartir segmentos a medida que las partes necesitadas de los mismos se
van reverenciando (paginas).
Para comprender
este esquema, nuevamente se verá cómo se traduce una dirección virtual en una
localidad de memoria real. Para la paginación y segmentación puras se puede
decir que el direccionamiento es `bidimensional' porque se necesitan dos
valores para hallar la dirección real.
Para el caso
combinado, se puede decir que se tiene un direccionamiento
`tridimensional'.
El sistema debe
contar con una tabla de procesos (TP). Por cada renglón de esa tabla se tiene
un número de proceso y una dirección a una tabla de segmentos. Es decir, cada
proceso tiene una tabla de segmentos. Cuando un proceso hace alguna referencia
a memoria, se consulta TP para encontrar la tabla de segmentos de ese proceso.
En cada tabla de segmentos de proceso (TSP) se tienen los números de los
segmentos que componen a ese proceso.
Por cada segmento
se tiene una dirección a una tabla de páginas. Cada tabla de páginas tiene las
direcciones de las páginas que componen a un solo segmento. Por ejemplo, el
segmento `A' puede estar formado por las paginas reales `a','b','c','p' y `x'.
El segmento `B' puede estar compuesto de las paginas `f','g','j','w' y
`z'. Otro aspecto importante es la
estrategia para cargar páginas (o segmentos) a la memoria RAM.
Se usan más
comúnmente dos estrategias: cargado de páginas por demanda y cargado de páginas
anticipada. La estrategia de cargado por demanda consiste en que las páginas
solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo
referencia a una dirección que cae dentro de ellas.
La carga
anticipada consiste en tratar de adivinar que paginas serán solicitadas en el
futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no
ocurran fallos de página.
Ese `adivinar'
puede ser que se aproveche el fenómeno de localidad y que las páginas que se
cargan por anticipado sean aquellas que contienen direcciones contiguas a la
dirección que se acaba de referenciar. De hecho, el sistema operativo VMS usa
un esquema combinado para cargar páginas: cuando se hace referencia a una
dirección cuya página no está en RAM, se provoca un fallo de página y se carga
esa página junto con algunas páginas adyacentes. En este caso la página
solicitada se cargó por demanda y las adyacentes se cargaron por anticipación.
Administracion de memoria
ADMINISTRACIÓN DE MEMORIA
La administración de memoria se refiere a los
distintos métodos y operaciones que se encargan de obtener la máxima utilidad
de la memoria, organizando los procesos y programas que se ejecutan de manera
tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operación principal que
realiza es la de trasladar la información que deberá ser ejecutada por el
procesador, a la memoria principal. Actualmente esta administración se conoce
como Memoria Virtual ya que no es la memoria física del procesador sino una
memoria virtual que la representa. Entre algunas ventajas, esta memoria permite
que el sistema cuente con una memoria más extensa teniendo la misma memoria
real, con lo que esta se puede utilizar de manera más eficiente. Y por
supuesto, que los programas que son utilizados no ocupen lugar innecesario.
Las técnicas que existen para la carga de programas en
la memoria son: partición fija, que es la división de la memoria libre en
varias partes (de igual o distinto tamaño) y la partición dinámica, que son las
particiones de la memoria en tamaños que pueden ser variables, según la
cantidad de memoria que necesita cada proceso.
Entre las principales operaciones que desarrolla la
administración de memoria se encuentran la reubicación, que consiste en
trasladar procesos activos dentro y fuera e la memoria principal para maximizar
la utilización del procesador; la protección, mecanismos que protegen los
procesos que se ejecutan de interferencias de otros procesos; uso compartido de
códigos y datos, con lo que el mecanismo de protección permite que ciertos
procesos de un mismo programa que comparten una tarea tengan memoria en común.
miércoles, 17 de abril de 2013
Animaciones acerca de la CPU.
ANIMACION DE COMO SE CORREN LOS PROCESOS EN EL SISTEMA OPERATIVO.
ANIMACION DE COMO DE PLANIFICACION DE PROCESAS DE LA CPU.
Sistemas Operativos de Silberschatz
RESUMEN COMPLETO DE LOS CAPITULOS 3, 4 Y 5 DE SISTEMAS OPERATIVOS DE
Silberschatz
Fundamentos de Sistemas Operativos es un libro de Sistemas Operativos de calidad y de un autor reconocido. Se trata de un libro que se adapta a la asignatura de sistemas operativos genérica, pero sin dejar de ser un texto actualizado, con los aspectos más relevantes bien marcados y adaptado a las nuevas necesidades de los cursos. Esta séptima edición no sólo presenta los sistemas más recientes y relevantes, sino que también los analiza más en profundidad para presentar los conceptos fundamentales que han permanecido constantes a lo largo de la evolución de los sistemas operativos actuales. Con esta fuerte base conceptual, los estudiantes pueden comprender con mayor facilidad los detalles relacionados con cada sistema específico.
miércoles, 27 de febrero de 2013
Equipo realizador del Blog.
El siguiente Blog fue realizado gracias al siguiente equipo:
José Jesús Ramírez Córdova
Jesús Antonio Rios
Osvaldo Calderon Hernandez
Eduardo Hernández Correa
Lizeth Arely Caceres Zurita
Tipos de Sistemas Operativos.
Hay dos tipos básicos de sistemas operativos:
Para una tarea:
permite solamente un programa a la vez. Esto significa que si usted está trabajando en una planilla de cálculo y desea escribir un memorando, deberá cerrar la aplicación del procesador de textos y abrir la planilla de cálculo . Esto resulta molesto, especialmente si desea usar algún dato que está en la planilla para mencionarlo en el texto que está escribiendo en el memo! Por ésta causa, los nuevos sistemas operativos se diseñaron para permitir el uso de programas múltiples simultáneamente
Multitareas:
Lo que esto significa realmente, es que los programas van turnándose en el procesador. Permite así que un sólo usuario tenga abiertos al mismo tiempo la planilla de cálculos y el editor de textos y más aún. Ya que puede ver los datos copiados de un programa al otro. ¡Magnífico!
MS-DOS
PC-DOS
Windows 3.1
Windows 95
Windows 98
Windows Me
Windows NT
Windows 2000
Windows XP
Windows Vista
Windows CE
MAC-OS
Mac OS X
OS/2
UNIX
Linux
Para una explicacion detallada de los diferentes tipos de Sistemas Operativos y su funcionamiento haz click en el enlace para descar un archivo PDF.
SISTEMAS OPERATIVOS.PDF
Suscribirse a:
Comentarios (Atom)












