La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora.

Presentaciones similares


Presentación del tema: "Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora."— Transcripción de la presentación:

1

2

3 Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora y tomar turnos usando la unidad central de procesamiento, cualquiera que haya usado Windows ®, Unix o Linux ha experimentado un entorno de multiprogramación porque estos sistemas pueden ejecutar un largo numero de programas de usuario aparentemente de manera simultanea en una sola unidad central de procesamiento. La sección que permite la multiprogramación en un sistema operativo se denomina Kernel, éste software consiste en un numero de procedimientos que llevan a cabo funciones como crear tareas, decidir cual tarea correrá en un momento dado, proveyendo un mecanismo para cambiar al procesador de una tarea a otra y provee formas primitivas de acceso controlado a recursos compartidos. Uno de los aspectos más importantes es la capacidad para multiprogramar. En general, un solo usuario no puede mantener la CPU o los dispositivos de E/S ocupados continuamente. La multiprogramación incrementa el uso de la CPU organizando los trabajos (códigos y datos) de modo que la CPU siempre tenga uno que ejecutar. Cuando un trabajo tiene que esperar, el sistema operativo conmuta a otro trabajo, y así sucesivamente. Los sistemas multiprogramados proporcionan un entorno en el que se usan de forma eficaz los diversos recursos del sistema, como por ejemplo la CPU, la memoria y los periféricos, aunque no proporcionan la interacción del usuario con el sistema informático.

4 TIMESHARING

5

6 Es la arquitectura más simple para un sistema operativo. Este sistema contiene todas las rutinas y funcionalidades disponibles (sistema de archivos, manejo de drivers, gestión de memoria y CPU, etc.) juntas dentro de un gran programa o núcleo. Su principal desventaja radica en que, debido a que todos los componentes del núcleo tienen acceso a todas las estructuras y rutinas internas, un error o un vulnerabilidad de seguridad puede expandirse y afectar a todo el núcleo. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa una técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre de llamar a cualquier otro tipo, si este proporciona cierto cálculo útil para el primero. Para construir el programa objeto del sistema mediante esta estructura, uno compila en forma individual los procedimientos o los archivos que contienen los procedimientos, y después los enlaza en un sólo archivo objeto con el ligador. Los sistemas monolíticos se describen en 3 procesos principales: un programa principal que invoca el procedimiento de servicio solicitado, un conjunto de procedemientos de servicio que llevan a cabo las llamadas del sistema y un conjunto de procedimientos de utilería que ayudan a los procedimientos del servicio. En teoria un procedimiento dado puede invocar a ciertos servicios, los cuales, a su vez, se verán ayudados por programas de utilería, los cuales, extraerán información importante para éste.

7 Los ejemplos típicos de este sistema son Unix, MS-DOS y Mac OS hasta Mac OS 8.6. Otros ejemplos son: I Linux I Syllable I Núcleos tipo DOS I DR-DOS I Familia Microsoft Windows 9x (95, 98, 98SE, Me)

8 Es una generalización del modelo de estructura simple para un sistema monolítico. En esta arquitectura, el sistema operativo se divide en una jerarquía de capas, donde cada capa solamente utiliza los servicios de la capa inferior y se enfoca en ofrecerle una interfaz clara y bien definida a la capa superior. En cada capa se encapsulan funciones específicas, así cada capa se encarga de una función individual del sistema operativo. Su principal ventaja redica en poseer un diseño mucho más modular, seguro y escalable que el monolítico. El primer modelo creado con esta estructura fue denominado THE: Technische Hogeschool Eindhoven (Holanda - Dijkstra, 1968).

9 El sistema consta de 6 capas: Ejemplos de sistemas por capas:

10 En este modelo, lo único que hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una parte del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, y cada parte es pequeña y controlable. Además, como todos los servidores se ejecutan como procesos en modo usuario y no en modo núcleo, no tienen acceso directo al hardware. En consecuencia, si hay un error en el servidor de archivos, éste puede fallar, pero esto no afectará en general a toda la máquina. Este modelo puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. Este sistema sirve para toda clase de aplicaciones, por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales. Los procesos pueden ser tanto servidores como clientes.

11 En este modelo, mediante software, se proporciona a los programas la emulación de un sistema el cual se quiere reproducir. El software emulador traduce las peticiones hechas a la máquina virtual en operaciones sobre la máquina real. Se pueden ejecutar varias máquinas virtuales al mismo tiempo, por ejemplo, mediante tiempo compartido. Los recursos reales se reparten entre las distintas máquinas virtuales.máquina virtualtiempo compartido Se separan totalmente las funciones de multiprogramación y de máquina virtual. Existe un elemento central llamado monitor de la máquina virtual que:multiprogramación Ejecuta en el hardware. Realiza la multiprogramación. Proporciona varias máquinas virtuales a la capa superior. Las máquinas virtuales instrumentan copias exactas del hardware, con su modo núcleo/usuario, E/S, interrupciones y todo lo demás que posee una máquina real. Pueden ejecutar cualquier sistema operativo que se ejecute en forma directa sobre el hardware. Las distintas máquinas virtuales pueden ejecutar distintos sistemas operativos, y en general, así lo hacen. Soportan periféricos virtuales.

12 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 núcleo, y es más seguro ya que los servicios corren en modo usuario. Algunas ventajas que podemos destacar de los Micronúcleos son los siguientes:  Uniformidad de interfaces: disponen de una interfaz única para las solicitudes de los procesos, el paso de mensajes.  Portabilidad: reduciendo el núcleo e implementando casi todo en servidores, para implementarlo en arquitecturas diferentes, sólo habría que modificar el núcleo haciendo más simple su portabilidad.  Fiabilidad: es más fácil corregir fallas en un sistema pequeño ya que se pueden realizar pruebas más rigurosas que en un sistema mucho más grande.

13  AIX  BeOS  Mach  MorphOS  QNX  Minix  Hurd  L4  RadiOS  Symbian  VSTa

14 La mayoría de los sistemas operativos modernos implementan este enfoque. Lo que caracteriza este tipo de estructura es que el kernel se compone por módulos, y cada uno de estos módulos se encuentra separado de forma independiente, tal que, si alguno falla no afecta a los otros, ni al núcleo, por ejemplo, si el módulo de software que se encarga de controlar el proceso de Telnet en una unidad se bloquea o es atacado, sólo este proceso se verá afectado. El resto de las operaciones siguen sus funciones habituales. Los módulos se pueden cargar dinámicamente en el núcleo cuando se necesiten, ya sea, en tiempo de ejecución o durante el arranque del sistema. El kernel dispone de los componentes fundamentales y se conectan directamente con servicios adicionales. Además otros componentes pueden cargarse dinámicamente al núcleo. Este enfoque modular utiliza la programación orientada a objetos. En general, esta estructura se parece bastante a la de capas, pero es mucho más flexible debido a que cualquier módulo de esta estructura puede llamar a otro. Es similar a la estructura de microkernel, pues el kernel también tiene las funciones esenciales, pero este es más eficiente ya que, no necesitan un mecanismo de paso de mensajes para comunicarse, sólo interfaces conocidas. Ejemplos de comandos Linux para gestionar módulos:  lsmod: Muestra todos los módulos que están cargados en el kernel Linux.  modprobe: Se utiliza para agregar, ver y eliminar módulos.  rmmod: Utilizado para descargar módulos del kernel, con la restricción de que no estén siendo utilizados y que no sean llamados por otros módulos.

15  Unix modernos  Solaris  Linux  Mac OSX

16  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida  Administración de Almacenamiento secundario  Subsistema de archivos  Sistema de protección


Descargar ppt "Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora."

Presentaciones similares


Anuncios Google