miércoles, 8 de abril de 2015

CUADRO COMPARATIVO DE LOS SISTEMAS OPERATIVOS

https://docs.google.com/document/d/1TxQVhEtKym0gAInH7MnL0rD6UEyBXkZI5VS15V-IykM/pub

MAQUINA VIRTUAL

Una máquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real. Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual". Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se des configure el sistema operativo primario.


TIPOS DE MAQUINAS VIRTUALES
Las máquinas virtuales se pueden clasificar en dos grandes categorías según su funcionalidad y su grado de equivalencia a una verdadera máquina.

Máquinas Virtuales de Sistema

Las máquinas virtuales de sistema, también llamadas máquinas virtuales de hardware, permiten a la máquina física subyacente multiplicarse entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de software que permite la virtualización se la llama monitor de máquina virtual o hypervisor. Un monitor de máquina virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("host operating system").

Máquinas Virtuales De Proceso

Una máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIta7Xb3NfalGtEvwK7ib4AI2hJ8_gqH3CL2hg_UIgDJBwYWKZ7AhKDckS08doeQTHNtxjVuUSR81HWHTsSobmT1Wx94oIcS2fbsgEKAO0sU5sfJ5uijt5GimBQfUkcWxzLYYdlEaHJQ8/s1600/blog.png

http://es.wikipedia.org/wiki/M%C3%A1quina_virtual

COMPONENTES DE UN SISTEMA OPERATIVO
Ø  Administración de procesos
Para comenzar debemos saber que es un proceso. Un proceso es un programa en memoria + CPU + acceso a dispositivos + otros recursos. Notemos que un proceso necesita de ciertos recursos (como CPU, memoria, archivos, dispositivos de E/S, etc.) para realizar su tarea. Podemos ver entonces que un proceso es una entidad activa, mientras que un programa una entidad pasiva. Sabiendo entonces que es un proceso, podemos decir entonces que el sistema operativo es el encargado de su administración. Es el encargado de proveer servicios para que cada proceso pueda realizar su tarea. Entre los servicios se encuentran:
ü  Crear y destruir procesos
ü  Suspender y reanudar procesos
ü  Proveer mecanismos para la sincronización y comunicación entre procesos
ü  Proveer mecanismos para prevenir dead-locks o lograr salir de ellos.

Ø  Administración de Memoria
La memoria es un área de almacenamiento común a los procesadores y dispositivos, donde se almacenan programas, datos, etc. El sistema deberá administrar el lugar libre y ocupado, y será el encargado de las siguientes tareas:
ü  Mantener que partes de la memoria están siendo usadas, y por quien.
ü  Decidir cuales procesos serán cargados a memoria cuando exista espacio de memoria disponible, pero no suficiente para todos los procesos que deseamos.
ü  Asignar y quitar espacio de memoria según sea necesario.

Ø  Subsistema de Entrada/Salida
El sistema operativo deberá ocultar las características específicas de cada dispositivo y ofrecer servicios comunes a todos.
Estos servicios serán, entre otros:
ü  Montaje y desmontaje de dispositivos
ü  Una interfaz entre el cliente y el sistema operativo para los device drivers.
ü  Técnicas de cache, buffering y spooling.
ü  Device drivers específicos

Ø  Administración de Almacenamiento secundario
Dado que la memoria RAM es volátil y pequeña para todos los datos y programas que se precisan guardar, se utilizan discos para guardar la mayoría de la información.
El sistema operativo será el responsable de:
ü  Administrar el espacio libre
ü  Asignar la información a un determinado lugar
ü  Algoritmos de planificación de disco (estos algoritmos deciden quien utiliza un determinado recurso del disco cuando hay competencia por él)
Ø  Subsistema de Archivos
 Proporciona una vista uniforme de todas las formas de almacenamiento, implementando el concepto de archivo como una colección de bytes.
El Sistema Operativo deberá proveer métodos para:
ü  Abrir, cerrar y crear archivos
ü  Leer y escribir archivos

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

Servicios del Sistema Operativo
El sistema brindará un entorno de ejecución de programas donde se dispondrá de un conjunto de servicios. Los servicios principales serán:
ü  Ejecución de programas (el SO deberá ser capaz de cargar un programa a memoria y ejecutarlo. El programa deberá poder finalizar, de forma normal o anormal)
ü  Operaciones de E/S (el SO deberá proveer un mecanismo de acceso ya que por eficiencia y protección los usuarios no accederán directamente al dispositivo)
ü  Manipulación del Sistema de archivos (se deberá tener acceso al sistema de archivos y poder, como mínimo, leer, escribir, borrar y crear)
ü  Comunicación entre procesos (los procesos deberán poder comunicarse, ya sea que estén en el mismo computador o el diferentes)
ü  Manipulación de errores (el sistema deberá tomar decisiones adecuadas ante eventuales errores que ocurran, como fallo de un dispositivo de memoria, fallo en un programa, etc.)

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

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




Sistema en capas
El diseño se organiza en una jerarquía de capas, donde los servicios que brinda una capa son consumidos solamente por la capa superior. La capa 0 es del Hardware y la N es la de los procesos de Usuario.


Capa 0
El sistema consta de procesadores secuenciales, cada uno de los cuales se podría programar sin importar que varios proceso estuvieran ejecutándose en el mismo procesador, esta capa proporciona la multiprogramación básica de la CPU.

Capa 1
Se administra la memoria, al mismo tiempo se asignaba el espacio de memoria principal para los diversos procesos. En esta capa no se debe de preocupar que los procesos que estén en memoria o en el deposito, esto se debe que el software de esta capa se encarga de garantizar que las paginas lleguen a la memoria cuando fueran necesarias.

Capa 2
Esta capa es la encargada de la comunicación entre el proceso y la consola de usuario, arriba de esta capa cada proceso tiene su propia consola.

Capa 3
En esta capa es la que controla los dispositivos de entrada y salida y guarda en almacenes (buffers) los flujos de información entre ellos.

Capa 4
En esta capa se sitúa los programas de los usuarios, estos no tiene que preocuparse por el proceso, memoria, consola o control de E/S.

Capa 5
En esta fase es donde se localiza el proceso operador del sistema.

http://wiki.inf.utfsm.cl/images/thumb/e/e1/Figura11.png/300px-Figura11.png
                               




https://so2psm.files.wordpress.com/2013/10/solayers.jpg




















Sistema con micronúcleo
La idea consiste en tener un núcleo que brinde los servicios mínimos de manejo de procesos, memoria y que provea la comunicación entre procesos. Todos los restantes servicios se construyen como procesos separados del micronúcleo, que ejecutan en modo usuario. Estos sistemas tienen como ventaja un diseño simple y funcional, que aumenta la portabilidad y la escalabilidad. Para agregar un nuevo servicio no es necesario modificar el nucleo, y es más seguro ya que los servicios corren en modo usuario


MODELOS DE ESTADOS Y TRANSICIONES

miércoles, 4 de marzo de 2015

SISTEMAS OPERATIVOS DE MULTIPROGRAMACIÓN

Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización. 

Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno esta usando el procesador, o un procesador distinto, es decir, involucra maquinas con mas de una UCP. 

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea. 
Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:



  • Mejora productividad del sistema y utilización de recursos
  • Multiples recursos entre varios programas.
  • Generalmente soportan multiples usuarios.
  • Proporcionan facilidad para mantener el entorno.
  • Requieren validación de usuarios para seguridad y protección.



LINEA DE TIEMPO

http://www.dipity.com/smilena/Linea-De-Tiempo_1/#

PROCESADORES

Es el cerebro del computador, permite el procesamiento de información numérica, es decir información ingresada en formato binario, así como la ejecución de instrucciones almacenada en la memoria.

El primer microprocesador (intel 4004) se invento en 1971, era un dispositivo de calculo de 4 bits,  con una velocidad de 108 khz, desde entonces la potencia de los microprocesadores ha aumentado de manera exponencial.

A mayor numero de núcleos la computadora tendrá menos problemas para ejecutar varias aplicaciones a la vez, el sistema responderá de manera cómoda aunque una tarea monopolice el núcleo.

https://pablosr.files.wordpress.com/2010/06/cpu-23.jpg

El procesador está compuesto por la Parte Lógica y Física.

Partes Lógicas

Unidad de Control: Unidad encargada de Activar o Desactivar los diferentes componentes del procesador, igualmente se encarga de Interpretar y ejecutar las diferentes instrucciones almacenadas en la memoria principal.
Unidad Aritmética y Lógica: Se encarga de realizar la operaciones de transformación de datos, especialmente las operaciones matemáticas, el cual es denominado(Floating Point Unit, Unidad de coma Flotante).
Registros: Se denominan a las áreas de almacenamiento temporal usadas durante la ejecución de las instrucciones.

Partes Físicas

Encapsulado: Es lo que rodea a la oblea de silicio, dándole consistencia y protección para impedir su deterioro.
Zocalo: Lugar donde se inserta el procesador, permitiendo la conexión con  el resto del equipo.
Chipset: Conjunto de Chips encargados del control de las determinadas funciones del equipo. 
Memoria Cache: Parte donde se almacenan los datos con mas frecuente.

lunes, 2 de marzo de 2015

GENERACIONES DE LOS SISTEMAS OPERATIVOS


http://timerime.com/es/evento/2297883/GENERACION+CERO/

Generación Cero (década de 1940)

Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano.








Primera Generación (década de 1950)

http://s1.hipertextual.com/wp-content/blogs.dir/16/files/2011/09/IBM-701-operator.jpg
Los sistemas operativos de los años cincuenta fueron diseñados para hacer mas fluida la transición entre trabajos. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenia control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente.

El laboratorio de investigación General Motors implementó el primer sistema operativo para la IBM 701. Los sistemas de los 50's generalmente ejecutaban una sola tarea, y la transición entre tareas se suavizaba para lograr la máxima utilización del sistema. Esto se conoce como sistemas de procesamiento por lotes de un sólo flujo, ya que los programas y los datos eran sometidos en grupos o lotes.


Segunda Generación (a mitad de la década de 1960)

La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabgeajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina.
http://www.computer-history.info/Page4.dir/pages/IBM.704.dir/images/IBM704b.jpg

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

Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación.

Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.


https://datosuno.files.wordpress.com/2009/03/ibm_as400_8401.jpg


Cuarta Generación (mitad de década de 1970 - 1983)





Microprocesador, Chips de memoria, Micro miniaturización

Dos mejoras en la tecnología de las computadoras marcan el inicio de la cuarta generación: el reemplazo de las memorias con núcleos magnéticos, por las de chips de silicio y la colocación de Muchos más componentes en un Chip: producto de la micro miniaturización de los circuitos electrónicos. El tamaño reducido del microprocesador y de chips hizo posible la creación de las computadoras personales (PC).

Esta generación de computadoras se caracterizó por grandes avances tecnológicos realizados en un tiempo muy corto. En 1977 aparecen las primeras microcomputadoras, entre las cuales, las más famosas fueron las fabricadas por Apple Computer, Radio Shack y Commodore Busíness Machines. IBM se integra al mercado de las microcomputadoras con su Personal Computer, de donde les ha quedado como sinónimo el nombre de PC, y lo más importante; se incluye un sistema operativo estandarizado, el MS- DOS (MicroSoft Disk Operating System).


Quinta Generación (1984-1999)

Las computadoras de quinta generación son computadoras basadas en inteligencia artificial. La quinta generación de computadoras fue un proyecto ambicioso lanzado por Japón a finales de los 70. Su objetivo era el desarrollo de una clase de computadoras que utilizarían técnicas de inteligencia artificial al nivel del lenguaje de máquina y serían capaces de resolver problemas complejos, como la traducción automática de una lengua natural a otra.

Surge la PC tal cual como la conocemos en la actualidad. IBM presenta su primera computadora personal y revoluciona el sector informativo. En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras.
https://watchtafur.files.wordpress.com/2013/03/cpu-1.gif


Sexta Generación (1999 hasta la fecha)

Las computadoras de esta generación cuentan con arquitecturas combinadas Paralelo / Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo (teraflops); las redes de área mundial (Wide Area Network, WAN) seguirán creciendo desorbitadamente utilizando medios de comunicación a través de fibras ópticas y satélites, con anchos de banda impresionantes. Las tecnologías de esta generación ya han sido desarrolladas o están en ese proceso. Algunas de ellas son: inteligencia / artificial distribuida; teoría del caos, sistemas difusos, holografía, transistores ópticos, etc








http://www.monografias.com/trabajos6/hiso/hiso.shtml#ixzz3TIcWa68E
http://www.monografias.com/trabajos28/generaciones-computadoras/generaciones-computadoras.shtml