Sie sind auf Seite 1von 19

Arquitectura y Organizacin del Computador II

Introduccin
Un Sistema Operativo es una parte importante de cualquier sistema de computacin. Un sistema de computacin puede dividirse en cuatro componentes: el hardware, el Sistema Operativo, los programas de aplicacin y los usuarios. El hardware (Unidad Central de Procesamiento (UCP), memoria y dispositivos de entrada/salida (E/S)) proporciona los recursos de computacin bsicos. Los programas de aplicacin (compiladores, sistemas de bases de datos, juegos de video y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computacin de los usuarios. Esto es a grandes rasgos un concepto de sistemas operativos en el contenido que a continuacin presentamos desarrollaremos de una forma amplia lo que significa el paralelismo en ejecucin y terminacin el cual nos orienta en el concepto de cmo se ejecutan las instrucciones en un computador, ms adelante se explica la carga en memoria, la memoria RAM, la Cach y la procesador.

Arquitectura y Organizacin del Computador II

1. Paralelismo en ejecucin y terminacin


Antes de comenzar a indagar en lo que significa Paralelismo en Ejecucin es importante saber como opera un CPU, es por ello que a continuacin se dar una breve descripcin sobre este tpico. La operacin fundamental de la mayora de los CPU, es ejecutar una secuencia de instrucciones almacenadas llamadas "programa". El programa es representado por una serie de nmeros que se mantienen en una cierta clase de memoria de computador. Hay cuatro pasos que casi todos los CPU de arquitectura de von Neumann usan en su operacin: fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y escribir).

Diagrama mostrando como es decodificada una instruccin Technologies 2005).

del MIPS32. (MIPS

El primer paso, leer (fetch), implica el recuperar una instruccin, (que es representada por un nmero o una secuencia de nmeros), de la memoria de programa. La localizacin en la memoria del programa es determinada por un contador de programa (PC), que almacena un nmero que identifica la posicin actual en el programa. En otras palabras, el contador de programa indica al CPU, el lugar de la instruccin en el programa actual. Despus de que se lee una instruccin, el Contador de Programa es incrementado por la longitud de la palabra de instruccin en trminos de unidades de memoria. Frecuentemente la instruccin a ser leda debe ser recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera que la instruccin sea retornada. Este problema es tratado en procesadores modernos en gran parte por los cachs y las arquitecturas pipeline. La instruccin que el CPU lee desde la memoria es usada para determinar qu deber hacer el CPU. En el paso de decodificacin, la instruccin es dividida en partes que tienen significado para otras unidades del CPU. La manera en que el valor de la instruccin numrica es
4

Arquitectura y Organizacin del Computador II

interpretado est definida por la arquitectura del conjunto de instrucciones (el ISA) del CPU. A menudo, un grupo de nmeros en la instruccin, llamados opcode, indica qu operacin realizar. Las partes restantes del nmero usualmente proporcionan informacin requerida para esa instruccin, como por ejemplo, operandos para una operacin de adicin. Tales operandos se pueden dar como un valor constante (llamado valor inmediato), o como un lugar para localizar un valor, que segn lo determinado por algn modo de direccin, puede ser un registro o una direccin de memoria. En diseos ms viejos las unidades del CPU responsables de decodificar la instruccin eran dispositivos de hardware fijos. Sin embargo, en CPUs e ISAs ms abstractos y complicados, es frecuentemente usado un microprograma para ayudar a traducir instrucciones en varias seales de configuracin para el CPU. Este microprograma es a veces reescribible de tal manera que puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso despus de que haya sido fabricado.

Diagrama de bloques de un CPU simple

Despus de los pasos de lectura y decodificacin, es llevado a cabo el paso de la ejecucin de la instruccin. Durante este paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operacin deseada. Si, por ejemplo, una operacin de adicin fue
5

Arquitectura y Organizacin del Computador II

solicitada, una unidad aritmtico lgica (ALU) ser conectada a un conjunto de entradas y un conjunto de salidas. Las entradas proporcionan los nmeros a ser sumados, y las salidas contendrn la suma final. La ALU contiene la circuitera para realizar operaciones simples de aritmtica y lgica en las entradas, como adicin y operaciones de bits (bitwise). Si la operacin de adicin produce un resultado demasiado grande para poder ser manejado por el CPU, tambin puede ser ajustada una bandera (flag) de desbordamiento aritmtico localizada en un registro de banderas (ver abajo la seccin sobre rango de nmeros enteros). El paso final, la escritura (writeback), simplemente "escribe" los resultados del paso de ejecucin a una cierta forma de memoria. Muy a menudo, los resultados son escritos a algn registro interno del CPU para acceso rpido por subsecuentes instrucciones. En otros casos los resultados pueden ser escritos a una memoria principal ms lenta pero ms barata y ms grande. Algunos tipos de instrucciones manipulan el contador de programa en lugar de directamente producir datos de resultado. stas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como bucles (loops), la ejecucin condicional de programas (con el uso de saltos condicionales), y funciones en programas. Muchas instrucciones tambin cambiarn el estado de dgitos en un registro de "banderas". Estas banderas pueden ser usadas para influenciar cmo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instruccin de "comparacin" considera dos valores y fija un nmero, en el registro de banderas, de acuerdo a cul es el mayor. Entonces, esta bandera puede ser usada por una posterior instruccin de salto para determinar el flujo de programa. Despus de la ejecucin de la instruccin y la escritura de los datos resultantes, el proceso entero se repite con el siguiente ciclo de instruccin, normalmente leyendo la siguiente instruccin en secuencia debido al valor incrementado en el contador de programa. Si la instruccin completada era un salto, el contador de programa ser modificado para contener la direccin de la instruccin a la cual se salt, y la ejecucin del programa contina normalmente. En CPUs ms complejos que el descrito aqu, mltiples instrucciones pueden ser ledas, decodificadas, y ejecutadas simultneamente. Esta seccin describe lo que es referido generalmente como el "entubado RISC clsico" (Classic RISC pipeline), que de

Arquitectura y Organizacin del Computador II

hecho es bastante comn entre los CPU simples usados en muchos dispositivos electrnicos, a menudo llamados microcontroladores.


Paralelismo en Ejecucin

La descripcin de la operacin bsica de un CPU ofrecida en la seccin anterior describe la forma ms simple que puede tomar un CPU. Este tipo de CPU, usualmente referido como subescalar, opera sobre y ejecuta una sola instruccin con una o dos piezas de datos a la vez. Este proceso da lugar a una ineficacia inherente en CPUs subescalares. Puesto que solamente una instruccin es ejecutada a la vez, todo el CPU debe esperar que esa instruccin se complete antes de proceder a la siguiente instruccin. Como resultado, el CPU subescalar queda "paralizado" en instrucciones que toman ms de un ciclo de reloj para completar su ejecucin. Incluso la adicin de una segunda unidad de ejecucin no mejora mucho el desempeo. En lugar de un camino quedando congelado, ahora dos caminos se paralizan y aumenta el nmero de transistores no usados. Este diseo, en donde los recursos de ejecucin del CPU pueden operar con solamente una instruccin a la vez, solo puede, posiblemente, alcanzar el desempeo escalar (una instruccin por ciclo de reloj). Sin embargo, el desempeo casi siempre es subescalar (menos de una instruccin por ciclo). Las tentativas de alcanzar un desempeo escalar y mejor, han resultado en una variedad de metodologas de diseo que hacen comportarse al CPU menos linealmente y ms en paralelo. Cuando se refiere al paralelismo en los CPU, generalmente son usados dos trminos para clasificar estas tcnicas de diseo.


El paralelismo a nivel de instruccin, en ingls Instruction Level Parallelism (ILP), busca aumentar la tasa en la cual las instrucciones son ejecutadas dentro de un CPU, es decir, aumentar la utilizacin de los recursos de ejecucin en la pastilla

El paralelismo a nivel de hilo de ejecucin, en ingls thread level parallelism (TLP), que se propone incrementar el nmero de hilos (efectivamente programas individuales) que un CPU pueda ejecutar simultneamente.

Arquitectura y Organizacin del Computador II

Cada metodologa se diferencia tanto en las maneras en las que estn implementadas, como en la efectividad relativa que producen en el aumento del desempeo del CPU para una aplicacin.


Funcionamiento del Paralelismo

Como ya dijimos anteriormente, el paralelismo consiste en ejecutar ms instrucciones en menos tiempo, aunque las instrucciones sigan tardando lo mismo en ejecutarse, mediante un simple truco, aunque algo difcil de explicar en detalle, estas instrucciones le dicen como tiene que ir modificando diferentes posiciones de memoria, y como debe ir modificando el flujo de ejecucin. Un microprocesador ejecuta instrucciones de cdigo mquina. Se tiende a pensar, errneamente, que un procesador con un reloj a 200 MHz (200 millones de ciclos por segundo) ejecuta 200 millones de estas operaciones por segundo. Esto no es as, por una sencilla razn. Una instruccin no se ejecuta en un solo ciclo de reloj, salvo alguna rara excepcin. De hecho, algunas instrucciones tardan bastantes ms ciclos, llegando algunas a necesitar 50 o ms ciclos para completarse. En cambio, las ms rpidas se ejecutan en tan slo 3 o 4 ciclos de reloj. Aqu es donde entra el paralelismo para solucionar este problema. Se puede dividir cualquier instruccin en fases ms o menos comunes a todas: -fetch (carga de la instruccin desde la memoria al procesador) -decodificacin (identificacin de qu instruccin nos hemos encontrado) -carga de operandos -operacin en s -escritura de resultados Este esquema, expresamente simplificado, nos da una idea de las fases que todo microprocesador tiene. Vamos a suponer un microprocesador ideal donde todas las operaciones que se pueden ejecutar en l tardan 15 ciclos, correspondientes a tres ciclos por cada una de las 5 fases que hemos descrito. Si ejecutramos tres de estas operaciones sin ningn tipo de paralelismo, tardaramos 45 ciclos, segn el siguiente esquema:
8

Arquitectura y Organizacin del Computador II

instr.1:111222333444555 instr.2:_________111222333444555 instr. 3:________111222333444555 Ahora supongamos que somos capaces de dividir el microprocesador en circuitos separados capaces cada uno de trabajar independientemente y ejecutar cada una de las 5 fases anteriores. Si logramos que sean independientes, cuando la instruccin uno ha acabado ya la fase de fetch y pasa a la decodificacin, deja libre el mdulo que se encarga del fetch, donde puede ir ya ejecutndose la segunda instruccin. De esta forma, logramos paralelizar las instrucciones. instr.1111222333444555 instr.2:___111222333444555 instr. 3:______111222333444555 Resultado: las tres instrucciones, por separado, siguen ejecutndose en el mismo tiempo, pero en conjunto ya no tardan 45 ciclos, sino solo 21 ciclos. Ms de un 45% de incremento en el rendimiento. De esta forma es como algunos procesadores muy paralelizados logran ejecutar, en promedio, ms de una instruccin por ciclo de reloj, aunque estas instrucciones tarden, por s mismas, ms de un ciclo en ejecutarse. En la realidad, como siempre, no todo es tan fcil y hay muchos problemas al disear un procesador con paralelismo. Por citar algunos de los problemas ms comunes, hay veces que una instruccin no se puede ejecutar ya que requiere un dato que quizs calculaba la operacin anterior (cosa muy habitual). Claro, si ante este problema detuviramos la anterior instruccin, bloqueara el procesador y se acabara el paralelismo hasta que acabara la primera instruccin y con ella se pudiera reanudar la segunda. Para evitar estos problemas se recurre a cortocircuitos, o lo que es lo mismo, se comunican diferentes fases del microprocesador internamente para pasarse antes los datos. Esto, sin embargo, tambin nos da otros problemas, ya mucho ms complicados, como el encontrarnos con que hay que decidir que datos son los correctos en cada momento. En estos problemas ya no entraremos, y
9

Arquitectura y Organizacin del Computador II

se podran resumir en que el procesador ha de decidir como paralelizar las instrucciones. Bien, todo lo que hemos visto sobre el paralelismo involucra nica y exclusivamente al microprocesador en s, y ms bien a su diseo. El software que se ejecuta sobre l ignora totalmente si hay paralelismo o no. Esto es el paralelismo implcito. Por el contrario, Intel implementa una solucin que de hecho ya deriva de ideas de principios de los aos 80. En el paralelismo explcito, el procesador ya no es el que decide cmo paralelizar las instrucciones, sino que es el compilador del software el que ha empaquetado las instrucciones para que el microprocesador pueda ejecutarlas paralelamente sin tantos problemas. De hecho, esta manera es mucho ms eficiente, porque el compilador tiene todo el tiempo del mundo para decidir cmo paralelizar y por supuesto, la lgica que puede aplicar es infinitamente ms potente que la que podemos encontrar implementada en cualquier microprocesador. Esto tambin redunda en una simplificacin de la circuitera de control del microprocesador, lo que permite acelerar an ms las instrucciones. Adems, queda libre ms espacio para incluir an ms registros y hacer los buses internos ms anchos, lo que permite ejecutar an ms instrucciones en paralelo. Paralelismo en software Definamos como paralelismo en software como la ejecucin de un programa sin tomar en cuenta el hardware con que va ser ejecutado. El paralelismo en software es considerado como el caso ideal de la ejecucin de las instrucciones que forman parte de un programa, ya que no toma en cuenta las limitantes del hardware con que el mismo va ser ejecutado. Paralelismo en hardware Definamos como paralelismo en hardware como la ejecucin de un programa tomando en consideracin el hardware con que va a ser ejecutado. El diagrama de paralelismo en Software representa el caso ideal con que dicho programa puede ser ejecutado. Ntese que la ejecucin de las 8 instrucciones se realiza solamente en tres ciclos de mquina. Por otro lado podemos observar las limitantes que genera la ejecucin de este mismo programa con un hardware en particular (procesador Superescalar con capacidad de ejecutar un acceso a la memoria y una operacin aritmtica simultneamente) obteniendo 6 ciclos de maquina para ejecutar el programa.

10

Arquitectura y Organizacin del Computador II

Tomando como base este ejemplo, la ejecucin paralela de las instrucciones de un programa se mide mediante el parmetro conocido como Promedio de Ejecucin Paralela de instrucciones (PEP). Este parmetro se define como la relacin entre el nmero de instrucciones del programa y el nmero de ciclos de mquina realizados en su ejecucin. Su expresin matemtica es: PEP = No. de Instrucciones / No. de Ciclos de Mquina Por consiguiente, el promedio de ejecucin paralela de instrucciones en software para este ejemplo es: 8/3 = 2,667 y el promedio de ejecucin paralela de instrucciones en hardware es: 8/6 = 1,333. El desarrollo de hardware y software es un proceso integral que busca soluciones que permitan satisfacer cada vez ms las condiciones de paralelismo con el fin de incrementar el promedio de ejecucin paralela de instrucciones. Para lograr este objetivo es necesario detectar y resolver las dependencias entre instrucciones. El proceso de deteccin y resolucin de dependencias entre instrucciones se conoce como el proceso de planificacin de instrucciones. Cuando la planificacin de instrucciones es llevada a cabo nicamente por el compilador se dice que la planificacin de instrucciones es esttica. Y cuando la planificacin de instrucciones es llevada a cabo nicamente por hardware (Ejemplo: microprocesador) se dice que la planificacin de instrucciones es dinmica. La planificacin de instrucciones en los microprocesadores sper escalares es un proceso de planificacin de instrucciones esttico y dinmico. Las tcnicas estticas de planificacin de instrucciones estn compuestas por tres grupos: Planificacin de instrucciones de bloques de un programa, Planificacin de instrucciones de lazos iterativos continuos y planificacin de instrucciones global. La tcnica de bloques consiste en dividir un programa en bloques para luego detectar y resolver solamente las dependencias entre las instrucciones de cada bloque. Esta tcnica es la mas utilizada en los ltimos 20 aos ya que es la ms simple de implementar. La tcnica de lazos iterativos consiste planificar las instrucciones que forman parte de los lazos continuos de un programa. Esta tcnica esta compuesta bsicamente por dos tcnicas: Unrolling y Software Pipeline. Y

11

Arquitectura y Organizacin del Computador II

por ultimo la tcnica global consiste en planificar todas las instrucciones que forman parte de un programa.

2. Carga de trabajo en memoria (RAM, Cach, Prcesador).




Carga en memoria.

Casi todas las mquinas tienen una parte de su S.O. en la ROM y lo dems se carga en memoria durante el proceso de arranque. Una de las pocas ocasiones en que el usuario debe comunicarse directamente con el S.O. es al arrancar una PC, momento en el que el S.O. aparece en primer plano y espera instrucciones. No todo el S.O. est en memoria permanentemente. La parte que reside siempre en memoria durante la ejecucin de los distintos programas se llama residente o supervisor. Una vez encendido el computador habr que cargar el residente en memoria para poder comenzar a ejecutar los distintos programas. Hay un primer programa especial (stand-alone), llamado IPL o BOOT, que forma parte del S.O., cuya nica misin es traer a memoria al segundo y principal programa, el residente. Este programa puede ser llamado pulsando una tecla; una vez que se encuentra en memoria, se comienza a ejecutar cumpliendo una serie de tareas que difieren de acuerdo al computador, entre ellas: pedir la fecha del da al operador (la primera y ms comn); permitir la ejecucin de programas stand-alone (todava no se ha cargado el supervisor); recibir la configuracin del equipo y la asignacin de memoria a las particiones; puede obtener estos datos: por parte del operador; o directamente de un archivo creado al efecto por un programa stand-alone (utilitario configurador). Finalmente, solicitar al operador el dispositivo donde deber buscar al residente para traerlo a memoria. Una vez cargado el residente en memoria, este programa desaparece. Por tanto el IPL o BOOT es un programa transiente del sistema operativo.


La RAM.

La memoria principal o RAM (acrnimo de Random Access Memory, Memoria de Acceso Aleatorio) es donde el ordenador guarda los datos que est utilizando en el momento presente. Se llama de acceso aleatorio porque el procesador accede a la informacin que est
12

Arquitectura y Organizacin del Computador II

en la memoria en cualquier punto sin tener que acceder la informacin anterior y posterior. Es la memoria que se actualiza constantemente mientras el ordenador est en uso y que pierde sus datos cuando el ordenador se apaga.


Proceso de carga en la memoria RAM:

Cuando las aplicaciones se ejecutan, primeramente deben ser cargadas en memoria RAM. El procesador entonces efecta accesos a dicha memoria para cargar instrucciones y enviar o recoger datos. Reducir el tiempo necesario para acceder a la memoria, ayuda a mejorar las prestaciones del sistema. La diferencia entre la RAM y otros tipos de memoria de almacenamiento, como los disquetes o discos duros, es que la RAM es mucho ms rpida, y se borra al apagar el ordenador. Es una memoria dinmica, lo que indica la necesidad de recordar los datos a la memoria cada pequeos periodos de tiempo, para impedir que esta pierda la informacin. Eso se llama Refresco. Cuando se pierde la alimentacin, la memoria pierde todos los datos. Random Access, acceso aleatorio, indica que cada posicin de memoria puede ser leda o escrita en cualquier orden. Lo contrario seria el acceso secuencial, en el cual los datos tienen que ser ledos o escritos en un orden predeterminado. Las memorias poseen la ventaja de contar con una mayor velocidad, mayor capacidad de almacenamiento y un menor consumo. En contra partida presentan el CPU, Memoria y Disco Duro los datos de instrucciones cuando se carga un programa, se carga en memoria (DMA). El inconveniente es que precisan una electrnica especial para su utilizacin, la funcin de esta electrnica es generar el refresco de la memoria. La necesidad de los refrescos de las memorias dinmicas se debe al funcionamiento de las mismas, ya que este se basa en generar durante un tiempo la informacin que contiene. Transcurrido este lapso, la seal que contena la clula biestable se va perdiendo. Para que no ocurra esta perdida, es necesario que antes que transcurra el tiempo mximo que la memoria puede mantener la seal se realice una lectura del valor que tiene y se recargue la misma.

13

Arquitectura y Organizacin del Computador II

Es preciso considerar que a cada bit de la memoria le corresponde un pequeo condensador al que le aplicamos una pequea carga elctrica y que mantienen durante un tiempo en funcin de la constante de descarga. Generalmente el refresco de memoria se realiza cclicamente y cuando esta trabajando el DMA. El refresco de la memoria en modo normal esta a cargo del controlador del canal que tambin cumple la funcin de optimizar el tiempo requerido para la operacin del refresco.

Posiblemente, en ms de una ocasin en el ordenador aparecen errores de en la memoria debido a que las memorias que se estn utilizando son de una velocidad inadecuada que se descargan antes de poder ser refrescadas. Las posiciones de memoria estn organizadas en filas y en columnas. Cuando se quiere acceder a la RAM se debe empezar especificando la fila, despus la columna y por ltimo se debe indicar si deseamos escribir o leer en esa posicin. En ese momento la RAM coloca los datos de esa posicin en la salida, si el acceso es de lectura o coge los datos y los almacena en la posicin seleccionada, si el acceso es de escritura. La cantidad de memoria Ram de nuestro sistema afecta notablemente a las prestaciones, fundamentalmente cuando se emplean sistemas operativos actuales. En general, y sobretodo cuando se ejecutan mltiples aplicaciones, puede que la demanda de memoria sea superior a la realmente existente, con lo que el sistema operativo fuerza al procesador a simular dicha memoria con el disco duro (memoria virtual). Una buena inversin para aumentar las prestaciones ser por tanto poner la mayor cantidad de RAM posible, con lo que minimizaremos los accesos al disco duro. Los sistemas avanzados emplean RAM entrelazada, que reduce los tiempos de acceso mediante la segmentacin de la memoria del sistema en dos bancos coordinados. Durante una solicitud particular, un banco suministra la informacin al procesador, mientras que el otro prepara datos para el siguiente ciclo; en el siguiente acceso, se intercambian los papeles. Los mdulos habituales que se encuentran en el mercado, tienen unos tiempos de acceso de 60 y 70 ns (aquellos de tiempos superiores deben ser desechados por lentos).
14

Arquitectura y Organizacin del Computador II

Es conveniente que todos los bancos de memoria estn constituidos por mdulos con el mismo tiempo de acceso y a ser posible de 60 ns. Hay que tener en cuenta que el bus de datos del procesador debe coincidir con el de la memoria, y en el caso de que no sea as, esta se organizar en bancos, habiendo de tener cada banco la cantidad necesaria de mdulos hasta llegar al ancho buscado. Por tanto, el ordenador slo trabaja con bancos completos, y stos slo pueden componerse de mdulos del mismo tipo y capacidad. Como existen restricciones a la hora de colocar los mdulos, hay que tener en cuenta que no siempre podemos alcanzar todas las configuraciones de memoria. Tenemos que rellenar siempre el banco primero y despus el banco nmero dos, pero siempre rellenando los dos zcalos de cada banco (en el caso de que tengamos dos) con el mismo tipo de memoria. Combinando diferentes tamaos en cada banco podremos poner la cantidad de memoria que deseemos.


La Cach.

La memoria cach es una clase de memoria RAM esttica (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y automtica para el usuario, que proporciona acceso rpido a los datos de uso ms frecuente. La ubicacin de la cach entre el microprocesador y la RAM, hace que sea suficientemente rpida para almacenar y transmitir los datos que el microprocesador necesita recibir casi instantneamente. La memoria cach es rpida, unas 5 6 veces ms que la DRAM (RAM dinmica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 20 veces ms que la memoria principal dinmica para la misma cantidad de memoria. La utilizacin de la memoria cach se describe a continuacin:


Acelerar el procesamiento de las instrucciones de memoria en la CPU. Los ordenadores tienden a utilizar las mismas instrucciones y (en menor medida), los mismos datos repetidamente, por ello la cach contiene las instrucciones ms usadas.

15

Arquitectura y Organizacin del Computador II

Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la memoria cach, tanto ms rpido ser el funcionamiento del ordenador. 1. La memoria cach se carga desde la RAM con los datos y/o instrucciones que ha buscado la CPU en las ltimas operaciones. La CPU siempre busca primero la informacin en la cach, lo normal es que va encontrar ah la mayora de las veces, con lo que el acceso ser muy rpido. Pero si no encuentra la informacin en la cach, se pierde un tiempo extra en acudir a la RAM y copiar dicha informacin en la cach para su disponibilidad. 2. Como estos fallos ocurren con una frecuencia relativamente baja, el rendimiento mejora considerablemente, ya que la CPU accede ms veces a la cach que a la RAM. En el siguiente diagrama se describe un proceso cuando la CPU requiere operacin de lectura de una instruccin, para ello se presentan dos casos:

Una forma de entender el funcionamiento de la memoria cach consiste en la analoga de un videoclub, equipado con un mostrador y una habitacin capaz de almacenar
16

Arquitectura y Organizacin del Computador II

cientos de vdeos. Ante la peticin de cada cliente, el dependiente deber acudir hasta el almacn, buscar la pelcula solicitada, volver al mostrador y entregar la cinta al cliente.


Procesador. Cuando se crea una mquina virtual, se configuran la memoria y el procesador con el

fin de ofrecer los recursos informticos apropiados para la carga de trabajo que se va a ejecutar en la mquina virtual. Esta carga de trabajo est formada por el sistema operativo invitado y todas las aplicaciones y los servicios que se ejecutarn simultneamente en la mquina virtual. Si necesita ajustar los recursos informticos de una mquina virtual, puede volverlos a configurar para satisfacer las necesidades cambiantes. Tambin puede especificar controles de recursos para automatizar la asignacin de los recursos a las mquinas virtuales. Configuracin de la memoria o los procesadores de una mquina virtual: Una mquina virtual debe tener asignada suficiente memoria para ejecutar la carga de trabajo. No obstante, cada mquina virtual solo consume memoria cuando est en ejecucin o pausada. El nmero de procesadores virtuales que se debe configurar depende del sistema operativo invitado. Hyper-V ofrece una configuracin de compatibilidad de procesadores para facilitar el uso de un sistema operativo antiguo y la realizacin de una migracin en vivo de una mquina virtual a otro equipo fsico con una versin de procesador distinta. Deben tenerse en cuenta las consideraciones siguientes sobre el escenario de migracin:


La opcin Migrar a un equipo fsico con una versin de procesador distinta garantiza que la mquina virtual solo usa las caractersticas del procesador que estn disponibles en todas las versiones de un procesador compatible con la virtualizacin del mismo fabricante de procesadores. No ofrece compatibilidad entre distintos fabricantes de procesadores.

Esta opcin resulta til para escenarios de alta disponibilidad y de copia de seguridad y recuperacin porque hace que resulte ms fcil mover una mquina virtual de alta

17

Arquitectura y Organizacin del Computador II

disponibilidad a otro nodo de un clster o restaurar la mquina virtual en un hardware distinto.

18

Arquitectura y Organizacin del Computador II

Conclusin
Para concluir se puede resumir que el paralelismo en ejecucin no es otra cosa que la ejecucin concurrente de ms de un programa a la vez. En realidad, una computadora slo puede ejecutar un programa a la vez, pero la velocidad de su procesamiento interno es tan rpida que se pueden distribuir por turno "porciones" del tiempo de la computadora entre varios programas. Esto hace que parezca que se ejecutan varios programas a la vez. Cuando un trabajo necesita un proceso de entrada/salida, otro puede iniciarse (o continuar) su realizacin; dos o ms programas independientes se ejecutan durante el mismo lapso al intercalar su ejecucin. La ventaja es que se puede intensificar el rendimiento total del sistema. Es posible aprovechar la gran velocidad de la unidad central y evitar los retrasos al esperar las operaciones de entrada/salida. El control de la ejecucin de la intercalacin o empalme lo realiza el S.O. (si prev esta modalidad de trabajo). Es decir que por medio de la multiprogramacin o paralelismo se efecta la administracin en paralelo de dos o ms programas que residen simultneamente en la memoria del computador. Con relacin a la carga de trabajo en memoria podemos decir que el trmino memoria identifica el almacenaje de datos que viene en forma chips, y el almacenaje de la palabra se utiliza para la memoria que existe en las cintas o los discos. Por otra parte, el trmino memoria se utiliza generalmente como taquigrafa para la memoria fsica, que refiere a los chips reales capaces de llevar a cabo datos. Algunos ordenadores tambin utilizan la memoria virtual, que ampla memoria fsica sobre un disco duro. Cada ordenador viene con cierta cantidad de memoria fsica, referida generalmente como memoria principal o RAM. Se puede pensar en memoria principal como arreglo de celdas de memoria, cada una de los cuales puede llevar a cabo un solo byte de informacin.
19

Arquitectura y Organizacin del Computador II

Un ordenador que tiene 1 megabyte de la memoria, por lo tanto, puede llevar a cabo cerca de 1 milln de bytes (o caracteres) de la informacin. La memoria funciona de manera similar a un juego de cubculos divididos usados para clasificar la correspondencia en la oficina postal. A cada bit de datos se asigna una direccin. Cada direccin corresponde a un cubculo (ubicacin) en la memoria. Para guardar informacin en la memoria, el procesador primero enva la direccin para los datos. El controlador de memoria encuentra el cubculo adecuado y luego el procesador enva los datos a escribir. Para leer la memoria, el procesador enva la direccin para los datos requeridos. De inmediato, el controlador de la memoria encuentra los bits de informacin contenidos en el cubculo adecuado y los enva al bus de datos del procesador.

20

Arquitectura y Organizacin del Computador II

Bibliografa
http://www.mitecnologico.com/Main/ParalelismoMultiprocesamiento http://www.worldlingo.com/ma/enwiki/es/Instruction_level_parallelism http://es.wikipedia.org/wiki/Efecto_memoria http://www.mailxmail.com/curso-componentes-pc-s/carga-inicial-sistema-operativo

21