Está en la página 1de 30

Multitarea

Definicin
Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo corriendo sobre un procesador o sobre varios. Quienes hayan experimentado con sistemas MSDOS durante la dcada del 80 recordarn su incapacidad para realizar este tipo de actividades, algo que fue superado con los primeros Windows de Microsoft, aunque la multitarea era comn en otros sistemas operativos muchos aos antes, tal es el caso de Unix y derivados.

Tipos de multitarea:
Nula: El sistema operativo es mono tarea. El ejemplo tpico es MSDOS. An as puede lograrse a veces algo parecido a una multitarea implementndola en espacio de usuario, o usando trucos como los TSR de MS-DOS. Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemtica, puesto que si el proceso de usuario se cuelga y no cede la CPU al sistema operativo, todo el sistema quedar entonces colgado. Da lugar tambin a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo seria Windows, hasta la versin 3.11.

Tipos de multitarea:
Preferente: El sistema operativo es el encargado de administrar el/los procesador/es, repartiendo el tiempo de uso de este entre los procesos que estn esperando para utilizarlo. Cada proceso utiliza el procesador durante cortos periodos de tiempo, pero el resultado final es prcticamente igual que si estuviesen ejecutndose al mismo tiempo. Ejemplos de sistemas de este tipo serian Unix y clones (FreeBSD, Linux, etc.), VMS y derivados, AmigaOS, etc. Real: Solo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser tambin preferentes. Ejemplos de sistemas operativos con esa capacidad: Linux y OS X

Multitarea
Muchas ventajas pueden ser alcanzadas dividiendo una aplicacin frente / fondo con mltiples e independientes tareas, para poder hacer multitarea, de tal manera que todas las tareas parezcan correr concurrentemente, algn mecanismo debe existir para pasar el control del procesador y sus recursos de una tarea a otra. ste es el trabajo del planificador, parte del kernel que (entre otras labores) suspende una tarea para permitirle la ejecucin a otra cuando ciertas condiciones se cumplen. Hace esto almacenando el contador de programa para una tarea y restaurndolo para otra. Mientras ms rpido sea el planificador mejor el desempeo de toda la aplicacin, ya que el tiempo ocupado mientras se cambia de tarea es tiempo gastado sin tareas corriendo.

Multitarea Simple

La forma ms simple de multitarea involucra compartir el procesador equitativamente entre dos o ms tareas. Cada tarea corre, en su turno, por algn perodo de tiempo. Las tareas ciclan (mtodo conocido como Round-Robin), o se ejecutan una despus de la otra. Esto tiene una utilidad limitada. Eso es porque todas las tareas tienen un acceso igualitario al procesador y su secuencia de ejecucin tiende a ser fija.

Multitarea basada en prioridades

Aadir prioridades a las tareas cambia la situacin dramticamente. Porque al asignar prioridades a las tareas se puede garantizar que en cualquier instante, el procesador est corriendo la tarea ms importante en el sistema. Las prioridades pueden ser estticas o dinmicas. Las estticas son prioridades asignadas a las tareas en tiempo de compilacin y no cambian mientras corre la aplicacin. Con prioridades dinmicas una tarea puede cambiar su prioridad en tiempo de ejecucin.

Multitarea basada en eventos

Una tarea demorada est esperando a que su temporizador de retardo expire; la expiracin de un temporizador de retardo es un ejemplo de un evento, y estos pueden causar que una tarea cambie de estado; por lo tanto los eventos se usan para controlar la ejecucin de la tarea. Ejemplos de eventos pueden ser: Una interrupcin, Aparicin de un error, Un temporizador expirando, Una interrupcin peridica, Un recurso siendo liberado, Un pin de E/S cambiando de estado.

Multiproceso

Multiproceso
Multiprocesamiento o multiproceso es tradicionalmente conocido como el uso de mltiples procesos concurrentes en un sistema en lugar de un nico proceso en un instante determinado. Como la multitarea que permite a mltiples procesos compartir una nica CPU, mltiples CPUs pueden ser utilizados para ejecutar mltiples hilos dentro de un nico proceso.

Multiproceso
Existen dos tipos de diseos de sistemas multiprocesador:
Multiproceso asimtrico Multiproceso simtrico

Multiproceso asimtrico
Cada procesador se asigna a una tarea especfica. Un procesador maestro controla el sistema y el resto de los procesadores esperan que el maestro les de instrucciones o tienen asignadas tareas predefinidas. Este esquema define una relacin maestro - esclavo. El procesador maestro es el nico que ejecuta las funciones del sistema operativo y planifica el trabajo de los procesadores esclavos y se los asigna. (i12) Tiene el control sobre toda la memoria y de todos los recursos de E/S. Los esclavos slo ejecutan aplicaciones de usuario. Una vez que un proceso est activo y el esclavo necesitar un servicio de E/S le enva una solicitud al maestro y espera a que el servicio se lleve a cabo. Desventajas: el maestro puede ser un cuello de botella en el rendimiento, y todo depende de l: si falla, falla todo.

Multiproceso simtrico
Simtrico: Los microprocesadores del sistema comparten los recursos del sistema, como la entrada salida de memoria y disco. Se distribuye uniformemente la carga de trabajo a los procesadores disponibles, de modo que uno no est inactivo mientras otro tiene un exceso de trabajo con una tarea especfica. Las prestaciones se incrementan para todas las tareas al aadir microprocesadores, su desventaja es que los sistemas operativos que soportan este tipo de multiprocesamiento son ms difciles de disear.

Multiprocesamiento Simtrico: Copias del sistema operacional en cada procesador. Comunicacin entre los procesadores. Escalonamiento de tareas para las CPU.

Multiprocesamiento Asimtrico: Un procesador maestro controla el sistema. Cada procesador con una tarea. Los Procesadores pueden tener tareas pr-definidas.

Dos factores clave para la extensin de los Multiprocesadores: Flexibilidad: El mismo sistema puede usarse para un nico usuario incrementado el rendimiento en la ejecucin de una nica aplicacin o para varios usuarios y aplicaciones en un entorno compartido. Coste-rendimiento: Actualmente estos sistemas se basan en procesadores comerciales, por lo que su costo se ha reducido drsticamente. La inversin ms fuerte se hace en la memoria y la red de interconexin. Como su nombre indica son aquellos sistemas operativos que estn montados sobre computadoras que estn compuestas por ms de un procesador, supongamos un computadora que en vez de tener un procesador, tuviera dos o ms procesadores conectados entre s dentro de la misma placa base, esto sera un sistema multiprocesador.

Metas de los sistemas de multiprocesamiento Las metas de los sistemas de multiprocesamiento generalmente son la confiabilidad y la disponibilidad muy altas, como as tambin el incremento del poder de computacin. El diseo modular proporciona una flexibilidad importante y facilita la expansin de la capacidad. Ventajas del multiprocesamiento. El beneficio del multiprocesamiento es el procesamiento en paralelo, donde un solo proceso o aplicacin es separado en mltiples partes que pueden ejecutarse simultneamente en diversos CPUs. Hasta recientemente el procesamiento en paralelo normalmente requera una programacin especial de aplicaciones y por ello fue usado en supercomputadoras y sistemas similares. Ahora las tcnicas multi-hilos han trado esta capacidad a los nuevos sistemas multiprocesadores.

Definicin de Multiprogramacin
Es la tcnica que permite que dos o ms programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo. As por ejemplo mientras se ejecutan operaciones de entrada y salida de un programa, la unidad central de proceso puede ocuparse en realizar operaciones distintas de las de entrada y salida pertenecientes a otros programas. La multiprogramacin se refiere a dos o mas programas corriendo o procesndose al mismo tiempo; la multiprogramacin se controla a travs del sistema operativo, el cual observa los programas y los vigila hasta que estn concluidos. El numero de programas que pueden multiprogramarse en forma efectiva, depende de una combinacin de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad de los recursos perifricos que tenga conectados, as como de la eficiencia del sistema operativo.

Multiprogramacin
La seccin que permite la multiprogramacin en un sistema operativo que 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.

Multiprogramacin con particiones variables


Cuando se emplean particiones variables, el nmero y tamao de los procesos de la memoria varan en forma dinmica todo el da, de la misma forma las particiones varan en el nmero, localidad y tamao de las particiones, para lograr lo anterior se realizan procesos de compresin de memoria que permiten tener particiones grandes en la memoria, disponibles a los procesos provocando mayor complejidad en la asignacin y des-asignacin de la memoria as como el control de la misma.

Multiprogramacin con particiones variables


Los diseadores de SO, al observar los problemas de multiprogramacin de particin fija, decidieron que una mejora notable sera permitir que los trabajos ocuparan tanto espacio como necesitaran, es decir no haba ningn lmite fijo (ms que el espacio disponible en el almacenamiento principal, memoria-).

Multiprogramacin con particiones variables

Multiprogramacin con particiones variables


En este tipo de multiprogramacin a medida que llegan los trabajos, si los mecanismos de planificacin deciden que deben proceder, se les proporcionar todo el almacenamiento necesario. Aqu no hay desperdicio, la particin de un trabajo es exactamente su tamao. Su principal desventaja se da cuando los trabajos comienzan a terminar y dejan agujeros en el almacenamiento principal, en donde se ve evidenciado el desperdicio.

También podría gustarte