modelo von neumann final

31
Bryan Samuel Obando Mejía 0901-02-3840 Hugo Antonio Díaz 0901-06-2475 José María González Milian 0901-06-3053 Carlos Roberto Chicoj Boc 0901-03-3128 José René Alegría Caballero 0901-06-116

Upload: guestdd5493

Post on 09-Jul-2015

2.963 views

Category:

Technology


2 download

DESCRIPTION

Investigación de Sistemas Operativos Abiertos Universidad Mariano Galvez, grupo No. 3

TRANSCRIPT

Page 1: Modelo Von Neumann Final

Bryan Samuel Obando Mejía 0901-02-3840Hugo Antonio Díaz 0901-06-2475José María González Milian 0901-06-3053Carlos Roberto Chicoj Boc 0901-03-3128José René Alegría Caballero 0901-06-116

Page 2: Modelo Von Neumann Final

ALU

UC

Reloj del

Sistema

REGISTROS

PC

Reg. De Datos

Reg. De Direcciones

Punteros

Estado

PROCESADOR

BUSES DEDATOS,

DIRECCIONES Y CONTROL

CONTROLADORES

ROM

RAM

HDMMU Dir. Física

Pagineo

Dir. Física

Virtual

IRQMAPA DE MEMORIA

SO

B C P

Paginas del Proceso “A”

Gestión de Memoria

SWAPING

Procesos

Page 3: Modelo Von Neumann Final

ALULa Unidad Aritmética Lógica (ALU) es la encargada de manejar todas las operaciones aritméticas básicas (resta,suma, división y multiplicación) y de operaciones lógicas (OR, NOT, AND, etc.).

En general, la mayoría de las acciones de una computadora se realizan a través de una ALU.

Existen componentes que forman la ALU, estos componentes son:

• Dispositivo de adición, con el que realiza las operaciones aritméticas;• Los registros, que contienen a los operandos (proporcionados por la Unidad de Control y que son en losque se realizará la operación), a los resultados parciales y a los resultados finales.• Dispositivo de control de cálculo, que dirige y controla las operaciones.

Como se menciono antes, las operaciones que realiza la ALU son:•Operaciones aritméticas de números enteros (adición, sustracción y a veces multiplicación y división).•Operaciones lógicas (AND, NOT, OR, XOR, XNOR).•Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un número específico de bitshacia la izquierda o la derecha, con o sin extensión de signo). Los desplazamientos pueden serinterpretados como multiplicaciones o divisiones por 2.

Entradas y salidasLas entradas a la ALU son los datos en los que se harán las operaciones (llamados operandos) y un código desde launidad de control indicando qué operación realizar.Su salida es el resultado del cómputo de la operación.En muchos diseños la ALU también toma o genera como entradas o salidas un conjunto de códigos de condicióndesde o hacia un registro de estado. Estos códigos son usados para indicar casos como acarreo entrante osaliente, overflow, división por cero, etc.

Ver la

ALU fisi-ca-

men-te

Page 4: Modelo Von Neumann Final

REGRESAR AL DISEÑO

Características físicas de ALU

Storage = almacenamiento

Proceso delFuncionamiento de la ALU

Page 5: Modelo Von Neumann Final

CONTROL UNITLa UC o Control Unit, es la que se encarga de sincronizar las acciones que realiza cada uno de las unidades de lacomputadora.

•UC se encarga de interpretar las instrucciones•Secuencia de las operaciones

Para realizar estas acciones se apoya de la ALU.

EJEMLO DE UNA INSTRUCCION:El siguiente ejemplo muestra la secuencia que realiza la UC, al momento de que se crea una nueva instrucción.La instrucción es “Sumar la variable NUM (que se encuentra en Memoria ) al registro R1”

1. Traer la instrucción

2. Traer el primer operando (NUM)

3.Realizar la adición

4.Cargar el resultado en RI.

EL RELOJLa unidad de control lleva además un reloj electrónico que oscila con una frecuencia de millones de veces porsegundo llamado reloj de sistema.La velocidad a la que el procesador realiza las operaciones viene determinada por dicho reloj. La velocidad deoscilación se mide en MegaHerzios (Mhz), es decir millones de ciclos por segundo. Es decir un ordenador cuyoprocesador posea 50 Mhz oscilará el doble de rápido que uno que posea 25 Mhz. Los ordenadores con chipsPentium poseen una frecuencia a partir de 66 Mhz.

Ver Re-gis-tros

Page 6: Modelo Von Neumann Final

CONTROL UNIT RegistrosLos registros del procesador se usan para controlar las instrucciones en ejecución,manejar direccionamiento de memoria y apoyar a la ALU para todo lo aritmético.

Los registros se dividen en:•Registros de segmento

Los registros de segmento se utilizan para referenciar áreas de memoria.

•Registros de apuntadores de instrucciones (PC)Indica la posición donde está el procesador en su secuencia de instrucciones.Contiene o la dirección de la instrucción que es ejecutada, o la dirección de la próxima instruccióna ser ejecutada.El contador de programa es incrementado automáticamente en cada ciclo de instrucción de talmanera que las instrucciones son leídas en secuencia desde la memoria.

•Registros de estadoEl registro de estado se utiliza para indicar cambios de estados y condiciones en los otros registros

existentes en el sistema informático. Estos cambios en la situación de los demás registros se producen

debido a las modificaciones del entorno a lo largo de la ejecución de los procesos realizados por el

sistema informático.•Registros de datos

Se utiliza en operaciones de multiplicación y división junto con AX. En operaciones de entrada/salida

de puertos IN/OUT, su mitad inferior DL, contiene el número de puerto.

•Registros de puntero a pilaEste Registro almacena la dirección de la zona de la memoria donde está situada la parte superior de la pila. La Pila es una zona de los registros de segmento de memoria que la unidad aritmética y lógica utiliza para almacenar temporalmente los datos que está manipulando. Cuando la cantidad de datos a manejar es demasiado grande u otras necesidades del proceso impiden que estos datos puedan almacenarse en los registros creados para ello se envían a la pila, donde se almacenan hasta que la unidad de control recupera la información para que la procese la unidad aritmética y lógica.

Registros de datos AX BX CX DX

Punteros de pila SP BP

Registros índice DI SI

Registros de segmento

CS DS ES SS

Registro de flags

REGRESAR AL DISEÑO

Page 7: Modelo Von Neumann Final

ROMROM, siglas para la memoria inalterable, memoria de computadora en la cual se han grabado deantemano los datos. Una vez que los datos se hayan escrito sobre un chip ROM, no pueden ser quitadosy pueden ser leídos solamente.Distinto de la memoria principal (RAM), la ROM conserva su contenido incluso cuando el ordenador seapaga. ROM se refiere como siendo permanente, mientras que la RAM es volátil.La mayoría de los ordenadores personales contienen una cantidad pequeña de ROM que salve programascríticos tales como el programa que inicia el ordenador. Además, las ROM se utilizan extensivamenteen calculadoras y dispositivos periféricos tales como impresoras láser, cuyas fuentes se salvan amenudo en las ROM.Una variación de una ROM es un PROM (memoria inalterable programable). PROM son manufacturadoscomo chips en blanco en los cuales los datos pueden ser escritos con dispositivo llamado programadorde PROM.es una clase de medio de almacenamiento utilizado en los ordenadores y otros dispositivos electrónicos.Los datos almacenados en la ROM no se puede modificar -al menos no de manera rápida o fácil- y seutiliza principalmente para contener el firmware (software que está estrechamente ligado a hardwareespecífico, y es poco probable que requiera actualizaciones frecuentes).

En su sentido más estricto, se refiere sólo a ROM máscara ROM -en inglés MROM- (el más antiguo tipode estado sólido ROM), que se fabrica con los datos almacenados en forma permanente, y por lotanto, nunca puede ser modificada. Sin embargo, las más modernas, como EPROM y Flash EEPROM sepuede borrar y volver a programar varias veces, aún siendo descritos como "memoria de sólo lectura(ROM), porque el proceso de reprogramación en general es poco frecuente, relativamente lento y, amenudo, no se permite la escritura en lugares aleatorios de la memoria.

Page 8: Modelo Von Neumann Final

CONTROLADORES• En inglés, device driver es un programa informático que permite al sistema operativo interactuar con un

periférico, haciendo una abstracción del hardware y proporcionando una interfaz Un driver o controlador técnicamente es un software o programa que sirve de intermediario entre un dispositivo de hardware y el sistema operativo

• técnicamente es un software o programa que sirve de intermediario entre un dispositivo de hardware y el sistema operativo.

• Existen tantos tipos de controladores como tipos de periféricos, y es común encontrar más de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiales (normalmente disponibles en la página web del fabricante), se pueden encontrar también los proporcionados por el sistema operativo, o también versiones no oficiales hechas por terceros.

• Debido a que el software de controladores de dispositivos se ejecuta como parte del sistema operativo, con acceso sin restricciones a todo el equipo, resulta esencial que sólo se permitan los controladores de dispositivos autorizados. La firmay el almacenamiento provisional de los paquetes de controladores de dispositivos en los equipos cliente, mediante las técnicas descritas en esta guía, proporcionan las ventajas siguientes:

Seguridad mejorada. Puesto que los usuarios estándar no pueden instalar controladores de dispositivos que no estén firmados o que estén firmados por un editor que no es de confianza, los administradores tendrán un control riguroso respecto a los controladores de dispositivos que pueden usarse en una organización.

Reducción de los costes de soporte técnico. Los usuarios sólo podrán instalar los dispositivos que hayan sido probados y admitidos por la organización. En consecuencia, el sistema permite mantener la seguridad del equipo, al tiempo que se reducen las solicitudes del departamento de soporte técnico.

Experiencia de usuario mejorada. Un paquete de controladores firmado por un editor de confianza y almacenado provisionalmente en el almacén de controladores funciona de modo automático, cuando el usuario conecta el dispositivo al equipo. No se requiere acción alguna por parte del usuario.

REGRESAR AL DISEÑO

Page 9: Modelo Von Neumann Final

MONITOR

Dispositivos de salida

• Es la pantalla en la que se ve la información suministrada por el ordenador. En el caso más habitual se trata de un aparato basado en un tubo de rayos catódicos (CRT) como el de los televisores, mientras que en los portátiles es una pantalla plana de cristal líquido (LCD).

Dispositivos de entrada

Pantalla Táctil:

• Pantalla diseñada o modificada para reconocer la situación de una presión en su superficie. Al tocar la pantalla, el usuario puede hacer una selección o mover el cursor. El tipo de pantalla táctil más sencillo está compuesto de una red de líneas sensibles, que determinan la situación de una presión mediante la unión de los contactos verticales y horizontales.

REGRESAR AL DISEÑO

Page 10: Modelo Von Neumann Final

MOUSE• A este periférico se le llamó así por su parecido con este roedor. Suelen estar constituidos por una caja con

una forma más o menos anatómica en la que se encuentran dos botones que harán los famosos clicks de ratón siendo transmitidos por el cable al puerto PS/II o al puerto de serie (COM1 normalmente). Dentro de esta caja se encuentra una bola que sobresale de la caja a la que se pegan 4 rodillos ortogonalmente dispuestos que serán los que definan la dirección de movimiento del ratón. El ratón se mueve por una alfombrilla ocasionando el movimiento de la bola que a su vez origina el movimiento de uno o varios de estos rodillos que se transforma en señales eléctricas y producen el efecto de desplazamiento del ratón por la pantalla del ordenador.

• Existen modelos modernos en los que la transmisión se hace por infrarrojos eliminando por tanto la necesidad de cableado. Otros presentan la bola en la parte superior de la caja no estando por tanto en contacto con la alfombrilla y teniendo que ser movida por los dedos del usuario aunque se origina el mismo efecto.

REGRESAR AL DISEÑO

Page 11: Modelo Von Neumann Final

TECLADO• Un teclado se compone de una serie de teclas agrupadas en funciones que podremos describir:

• Teclado alfanumérico: es un conjunto de 62 teclas entre las que se encuentran las letras, números, símbolos ortográficos, Enter, alt...etc.

• Teclado de Función: es un conjunto de 13 teclas entre las que se encuentran el ESC, tan utilizado en sistemas informáticos, más 12 teclas de función. Estas teclas suelen ser configurables pero por ejemplo existe un convenio para asignar la ayuda a F1.

• Teclado Numérico: se suele encontrar a la derecha del teclado alfanumérico y consta de los números así como de un Enter y los operadores numéricos de suma, resta,... etc.

• Teclado Especial: son las flechas de dirección y un conjunto de 9 teclas agrupadas en 2 grupos; uno de 6 (Inicio y fin entre otras) y otro de 3 con la tecla de impresión de pantalla entre ellas.

REGRESAR AL DISEÑO

Page 12: Modelo Von Neumann Final

USB• Una memoria USB (de Universal Serial Bus; en inglés pendrive, USB flash drive) es un dispositivo de

almacenamiento que utiliza memoria flash para guardar la información que puede requerir y no necesita baterías (pilas). La batería era necesaria en los primeros modelos, pero los más actuales ya no la necesitan. Estas memorias son resistentes a los rasguños (externos), al polvo, y algunos al agua –que han afectado a las formas previas de almacenamiento portátil-, como los disquetes, discos compactos y los DVD. En España son conocidas popularmente como pinchos o lápices, y en otros países como Honduras y Guatemala son conocidas como memorias.

• Estas memorias se han convertido en el sistema de almacenamiento y transporte personal de datos más utilizado, desplazando en este uso a los tradicionales disquetes, y a los CD. Se pueden encontrar en el mercado fácilmente memorias de 1, 2, 4, 8, 16, 32, 64, 128 y hasta 256 GB; siendo impráctico a partir de los 64GB por su elevado costo. Esto supone, como mínimo, el equivalente a 180 CD de 700MB o 91.000 disquetes de 1.44 MB aproximadamente. Su gran popularidad le ha supuesto infinidad de denominaciones populares relacionadas con su pequeño tamaño y las diversas formas de presentación, sin que ninguna haya podido destacar entre todas ellas. El calificativo USB o el propio contexto permite identificar fácilmente el dispositivo informático al que se refieren.

REGRESAR AL DISEÑO

Page 13: Modelo Von Neumann Final

IMPRESORA• Dispositivo que sirve para captar la información que le envía la CPU e imprimirla en papel, plástico, etc. Hay

varios tipos:

• Matriciales: Ofrecen mayor rapidez pero una calidad muy baja.

• Inyección: La tecnología de inyección a tinta es la que ha alcanzado un mayor éxito en las impresoras de uso doméstico o para pequeñas empresas, gracias a su relativa velocidad, calidad y sobre todo precio reducidos, que suele ser la décima parte de una impresora de las mismas características.

• Hablamos de impresoras de color porque la tendencia del mercado es que la informática en conjunto sea en color. Esta tendencia empezó hace una década con la implantación de tarjetas gráficas y monitores en color. Todavía podemos encontrar algunos modelos en blanco y negro pero ya no son recomendables.

• Las impresoras de inyección cuentan a favor con elementos como el coste, tanto de adquisición como de mantenimiento, la sencillez de manejo y el tamaño. En contra tenemos su escasa velocidad y calidad frente a otras tecnologías.

• Láser: Ofrecen rapidez y una mayor calidad que cualquiera, pero tienen un alto coste y solo se suelen utilizar en la mediana y grande empresa. Por medio de un haz de láser imprimen sobre el material que le pongamos las imágenes que le haya enviado la CPU.

REGRESAR AL DISEÑO

Page 14: Modelo Von Neumann Final

ESCÁNER• Es un dispositivo utiliza un haz luminoso para detectar los patrones de luz y oscuridad (o los

colores) de la superficie del papel, convirtiendo la imagen en señales digitales que se pueden manipular por medio de un software de tratamiento de imágenes o con reconocimiento óptico de caracteres. Un tipo de escáner utilizado con frecuencia es el flatbed, que significa que el dispositivo de barrido se desplaza a lo largo de un documento fijo.

• Un tipo muy popular de escáner es el escáner de mano, también llamado hand-held, porque el usuario sujeta el escáner con la mano y lo desplaza sobre el documento. Estos escáneres tienen la ventaja de ser relativamente baratos, pero resultan algo limitados porque no pueden leer documentos con una anchura mayor a 12 o 15 centímetros.

REGRESAR AL DISEÑO

Page 15: Modelo Von Neumann Final

CÁMARA DE VIDEO

• Graba videos como si de una cámara normal se tratara, pero las ventajas que ofrece en estar en formato digital, que es mucho mejor la imagen, tiene una pantalla LCD por la que ves simultáneamente la imagen mientras grabas. Se conecta al PC y este recoge el video que has grabado, para poder retocarlo posteriormente con el software adecuado.

REGRESAR AL DISEÑO

Page 16: Modelo Von Neumann Final

CÁMARA DE FOTOS

• Cámara que se conecta al ordenador y le transmite las imágenes que capta, pudiendo ser modificada y retocada, o volverla a tomar en caso de que este mal.

• Una cámara digital es una cámara fotográfica que, en vez de capturar y almacenar fotografías en películas fotográficas como las cámaras fotográficas convencionales, lo hace digitalmente mediante un dispositivo electrónico, o en cinta magnética usando un formato analógico como muchas cámaras de video.

REGRESAR AL DISEÑO

Page 17: Modelo Von Neumann Final

MMUMMU (Unidad de Gestión de Memoria)

Está situada dentro del chip de la CPU o cerca de él, pero que desde un punto de vista lógico está entre la CPU y la memoria. Dicha MMU cuenta con dos

pares de registros de base y de límite, un par para el código del programa y otro par para los

datos. El contador de programa y todas las demás referencias al código del programa utilizan el

par 1, y las referencias a datos utilizan el par 2. En consecuencia, ahora es posible que varios

usuarios compartan el mismo programa, manteniendo una única copia de él en la memoria, algo

que era imposible con el primer esquema. Cuando se está ejecutando el programa 1, los cuatro

registros se establecen como indican las flechas a la izquierda de la Figura 1-9(b). Cuando se

está ejecutando el programa 2, se ajustan como indican las flechas a la derecha de esa figura.

REGRESAR AL DISEÑO

Page 18: Modelo Von Neumann Final

HDDUn disco duro consiste en una pila de platos de aluminio, aleación o vidrio de 5,25 o 3,5

pulgadas de diámetro (o incluso más pequeños en los ordenadores portátiles). En cada plato está

depositada una delgada capa de óxido metálico magnetizable. Después de la fabricación, no hay

ninguna información en ninguna parte del disco.

Para que el disco pueda utilizarse es necesario que cada plato reciba un formato de

bajo nivel realizado por software. El formato consiste de una serie de pistas concéntricas, cada

una de las cuales contiene cierto número de sectores, con cortos espacios vacíos entre ellos. En

la Figura 5-24 se muestra el formato de un sector. El preámbulo comienza con cierto patrón de bits que permite al hardware reconocer el

principio del sector. También contiene los números de cilindro y de sector y alguna otra

información. El programa de formateo de bajo nivel determina el tamaño de la porción de datos.

La mayoría de los discos utilizan sectores de 512 bytes. El campo ECC contiene información

redundante que puede servir para corregir errores de lectura.

Un sector de disco duro

REGRESAR AL DISEÑO

Page 19: Modelo Von Neumann Final

Reloj del SistemaTodo lo que el hardware de reloj hace es generar interrupciones a intervalos conocidos. Todo lo

demás relacionado con el tiempo corre por cuenta del software, el controlador del reloj. Lasobligaciones exactas del controlador del reloj varían de un sistema operativo a otro, perocasi siempre incluyen las siguientes:

1. Mantener la hora del día.

2. Evitar que los procesos se ejecuten durante mas tiempo del debido.

3. Contabilizar la utilización de la CPU

4. Manejar la llamada al sistema ALARM emitida por procesos de usuario.

5. Proveer temporizadores de vigilancia a partes del sistema mismo.

6. Preparar perfiles, vigilar y recabar datos estadísticos.

REGRESAR AL DISEÑO

Page 20: Modelo Von Neumann Final

PROCESADOREl “cerebro” del ordenador es la CPU, la cual toma instrucciones de la memoria y las

ejecuta. El ciclo básico de toda CPU consiste en tomar la primera instrucción de la memoria,

decodificarla para determinar su tipo y operandos, ejecutarla, y luego tomar, decodificar y

ejecutar las instrucciones subsiguientes. Es así como se ejecutan los programas.

Cada CPU ejecuta un repertorio de instrucciones específico. Por lo tanto, un Pentium no

puede ejecutar programas para un SPARC, y un SPARC no puede ejecutar programas para un

Pentium. Puesto que acceder a la memoria para extraer una instrucción o una palabra de datos

tarda mucho más que la ejecución de una instrucción, todas las CPUs contienen algunos

registros internos para guardar variables importantes y resultados temporales. El repertorio de

instrucciones incluye por lo general instrucciones para cargar una palabra de la memoria en un

registro, y para almacenar en la memoria una palabra que está en un registro. Otras

instrucciones combinan dos operandos tomados de los registros, de la memoria o de ambos,

para producir un resultado; por ejemplo, sumar dos palabras y almacenar el resultado en un

registro o en la memoria.

REGRESAR AL DISEÑO

Page 21: Modelo Von Neumann Final

MEMORIA RAM• Idealmente a todo programador le gustaría poder contar con una memoria infinitamente

• grande, infinitamente rápida y que fuese además no volátil, esto es, que no perdiese su

• contenido en ausencia de energía eléctrica. Llegados aquí, ¿porqué no pedir además que esa

• memoria sea también suficientemente barata? Desafortunadamente la tecnología no proporciona

• tales memorias. Consecuentemente, la mayoría de los ordenadores disponen de una jerarquía

• de memoria, con una pequeña cantidad de memoria caché muy rápida, cara y volátil, decenas

• de megabytes de memoria principal (RAM) moderadamente rápida, moderadamente cara y

• volátil, y decenas o cientos de gigabytes de memoria de disco lenta, barata y no volátil.

• Corresponde al sistema operativo coordinar la utilización de esos tres tipos de memoria.

REGRESAR AL DISEÑO

Page 22: Modelo Von Neumann Final

GESTION DE MEMORIALa parte del sistema operativo que gestiona la jerarquía de memoria se denomina el

gestor de memoria. Su trabajo es seguir la pista de qué partes de la memoria están en uso y

cuáles no lo están, con el fin de poder asignar memoria a los procesos cuando la necesiten, y

recuperar esa memoria cuando dejen de necesitarla, así como gestionar el intercambio entre

memoria principal y el disco cuando la memoria principal resulte demasiado pequeña para contenera todos los procesos. Los sistemas de gestión de memoria pueden dividirse en dos clases: losque mueven procesos de la memoria principal al disco y del disco a la memoria principaldurante su ejecución (intercambio y paginación), y los que no lo hacen. Los segundos son mássencillos, por lo que vamos a estudiarlos primero. Más tarde en el capitulo examinaremos elintercambio y la paginación. A lo largo de este capítulo el lector debe tener presente que elintercambio y la paginación son principalmente mecanismos artificiales motivados por la faltade memoria principal suficiente para contener todos los programas a la vez. Si la memoriaprincipal llegara a ser tan grande que siempre hubiera la suficiente, los argumentos a favorde un tipo de esquema de gestión de memoria u otro podrían volverse obsoletos. Acontinuación una grafica del rendimiento del procesador en función de los procesos enmemoria.

REGRESAR AL DISEÑO

Page 23: Modelo Von Neumann Final

MAPA DE MEMORIAEn el caso más sencillo, la traducción de direcciones virtuales a direcciones físicas se realiza como acabamos de describir. La dirección virtual se divide en un número de página virtual (bits de orden alto) y un desplazamiento (bits de orden bajo). Por ejemplo, con direcciones virtuales de 16 bits y páginas de 4 KB, los 4 bits superiores especifican una de las 16 páginas virtuales y los 12 bits inferiores especifican el desplazamiento del byte (0 a 4095) dentro de la página seleccionada. Sin embargo también es posible una división con 3 o 5 o algún otro número de bits para la página. Diferentes divisiones implican diferentes tamaños de página. El número de página virtual se usa como un índice en la tabla de páginas para encontrar la entrada de esa página virtual. De la entrada de la tabla de páginas se obtiene el número de

marco de página (sólo en el caso de que la página esté presente en memoria). El número de marco de página se pone a continuación del desplazamiento, reemplazando al número de página virtual, para formar una dirección física que puede enviarse ya a la memoria. El propósito de la tabla de páginas es establecer una correspondencia aplicando las páginas virtuales sobre los marcos de página. Matemáticamente hablando, la tabla de páginas es una función, con el número de página virtual como argumento y el número de marco de página como resultado. Utilizando el resultado de esta función, el campo de página virtual de una dirección virtual puede reemplazarse por un campo de marco de página, formando así una

dirección de memoria física. A pesar de lo sencillo de esta descripción, hay que resolver los siguientes problemas:

1. La tabla de páginas puede ser extremadamente grande.

2. La traducción de direcciones debe realizarse muy rápidamente.

REGRESAR AL DISEÑO

Page 24: Modelo Von Neumann Final

INTERCAMBIO (SWAPPING)En un sistema en batch es simple y efectivo organizar la memoria en particiones fijas.

Cada trabajo se carga en una partición cuando llega a la cabeza de la cola, y se queda en la

memoria hasta que termina. Mientras puedan mantenerse suficientes trabajos en la memoria

como para que la CPU esté ocupada todo el tiempo, no hay ninguna razón para utilizar un

esquema más complicado.

Con los sistemas de tiempo compartido o con los ordenadores personales orientados a

gráficos, la situación es distinta. A veces no hay suficiente memoria principal para contener a

todos los procesos actualmente activos, así que los procesos de más deben mantenerse en el

disco y cargarse en la memoria para ejecutarse de forma dinámica.

Pueden utilizarse dos enfoques generales para la gestión de la memoria, dependiendo

(en parte) del hardware disponible. La estrategia más sencilla, llamada intercambio (swapping),

consiste en cargar en la memoria un proceso entero, ejecutarlo durante un rato y volver a

guardarlo en el disco. La otra estrategia, llamada memoria virtual, permite que los programas

se ejecuten incluso cuando tan sólo una parte de ellos esté cargada en la memoria principal. A

continuación estudiaremos el intercambio.

REGRESAR AL DISEÑO

Page 25: Modelo Von Neumann Final

MEMORIA VIRTUALHace ya muchos años que aparecieron los primeros programas demasiado grandes para

caber en la memoria disponible. La solución usualmente adoptada fue dividir el programa en

trozos, llamados recubrimientos (overlays). El recubrimiento 0 era el que se ejecutaba primero.

Cuando terminaba, llamaba a otro recubrimiento. Algunos sistemas de recubrimientos eran

altamente complejos, permitiendo tener varios recubrimientos en memoria a la vez. Los

recubrimientos se mantenían en el disco y el sistema operativo los intercambiaba entre el disco

y la memoria, dinámicamente según se iban necesitando. Aunque el sistema realizaba el trabajo real de intercambiar los recubrimientos, el programador tenía que encargarse de dividir en trozos apropiados el programa. La tarea de dividir programas grandes en pequeños trozos modulares era laboriosa y tediosa, así que no pasó mucho tiempo antes de que alguien idease una manera de dejar todo ese trabajo para el ordenador. El método ideado (Fotheringham, 1961) se conoce ahora como memoria virtual. La idea básica detrás de la memoria virtual es que el tamaño combinado del programa, sus datos y su pila pueden exceder la cantidad de memoria física disponible. El sistema operativo mantiene en la memoria principal aquellas partes del programa que se están usando en cada momento, manteniendo el resto de las partes del programa en el disco. Por ejemplo, un programa de 16 MB puede ejecutarse sobre una máquina de 4 MB eligiendo cuidadosamente qué 4 MB se tendrán en la memoria en cada instante, e intercambiando partes del programa entre el disco y la memoria, según sea necesario.

REGRESAR AL DISEÑO

Page 26: Modelo Von Neumann Final

DIRECCION FISICAEJEMPLO DIRECCION FISICA

La dirección virtual 0 se envía a la MMU. La MMU ve que esa dirección virtual cae en la página

0 (0 a 4095), que de acuerdo a su correspondencia está en el marco de página 2 (8192 a 12287).

La MMU transforma entonces la dirección a 8192 y coloca la dirección 8192 en el bus. La

memoria no tiene ningún conocimiento de la MMU y lo único que ve es una petición de lectura

o escritura de la dirección 8192, que lleva a cabo. Por lo tanto, la MMU transforma

efectivamente todas las direcciones virtuales entre 0 y 4095 en las direcciones físicas entre 8192

y 12287.

De forma similar, una instrucción

MOV REG,8192

se transforma efectivamente en

MOV REG,24576

debido a que la dirección virtual 8192 está en la página virtual 2,

la cual corresponde al marco de página físico 6 (direcciones físicas

24576 a 28671). Como un tercer ejemplo, la dirección virtual 20500

está 20 bytes después del comienzo de la página virtual 5 (direcciones

virtuales 20480 a 24575) por lo que se corresponde con la dirección física

12288 + 20 = 12308.

REGRESAR AL DISEÑO

Page 27: Modelo Von Neumann Final

PROCESOSUn concepto clave en todos los sistemas operativos es el de proceso. Un proceso es

básicamente un programa en ejecución. Todo proceso tiene asociado un espacio de direcciones,

es decir una lista de posiciones de memoria desde algún mínimo (normalmente 0) hasta algún

máximo, que el proceso puede leer y en las que puede escribir. El espacio de direcciones

contiene el programa ejecutable, sus datos y su pila. Cada proceso tiene asociado también algún

conjunto de registros, incluido el contador de programa, el puntero de pila y otros registros

hardware, así como toda la demás información necesaria para ejecutar el programa.

Trataremos con mucho mayor detalle el concepto de proceso en el capítulo 2, pero por

ahora la mejor forma de conseguir una buena percepción intuitiva de lo qué es un proceso es

pensar en los sistemas de tiempo compartido. Periódicamente, el sistema operativo decide dejar

de ejecutar un proceso y comenzar a ejecutar otro, por ejemplo, porque el primero ya ha

recibido más de su porción de tiempo de CPU en el último segundo.

Cuando a un proceso se le suspende temporalmente como al anterior, posteriormente es

necesario poder proseguir con su ejecución a partir de exactamente el mismo estado que tenía

cuando se le suspendió. Eso significa que toda la información acerca del proceso debe guardarse

de forma explícita en algún lado durante su suspensión. Por ejemplo, el proceso podría tener

varios ficheros abiertos para su lectura de forma simultánea.

REGRESAR AL DISEÑO

Page 28: Modelo Von Neumann Final

INTERRUPCIONES (IRQ)Utilizando el modelo de los procesos, es mucho más fácil pensar sobre lo que está

sucediendo dentro del sistema. Algunos de los procesos ejecutan programas correspondientes a

comandos tecleados por un usuario. Otros procesos son parte del sistema y desarrollan tareas

tales como procesar peticiones de servicio de ficheros o gestionar los detalles del manejo de un

disco o una unidad de cinta. Cuando llega una interrupción procedente del disco, el sistema

toma la decisión de detener la ejecución del proceso actual y ejecutar el proceso asociado al

disco, que estaba anteriormente bloqueado esperando a que llegara esa interrupción. Así, en vez

de pensar en términos de interrupciones, podemos pensar en términos de procesos de usuario,

procesos de disco, procesos de terminal, etc., que se bloquean cuando tienen que esperar a que

ocurra algo. Cuando el disco ha terminado de leerse, o el carácter por fin se teclea, el proceso

que esperaba ese suceso se desbloquea y pasa a ser elegible para ejecutarse de nuevo.

REGRESAR AL DISEÑO

Page 29: Modelo Von Neumann Final

BLOQUE COMUN DEL PROCESOPara implementar el modelo de los procesos el sistema operativo mantiene una tabla (un

array de registros o estructuras), denominada la tabla de procesos, con una entrada por proceso.

Algunos autores denominan a cada una de esas entradas descriptor de proceso o bloque de

control de proceso. Estas entradas contienen información sobre el estado de cada proceso, su

contador de programa, su puntero de pila, su asignación de memoria, el estado de sus ficheros

abiertos, la información relativa a su planificación y a la contabilidad de los recursos que ha

consumido, así como cualquier otra información sobre el proceso que deba guardarse cuando el

proceso conmute del estado de en ejecución al estado de preparado o bloqueado, de forma que

su ejecución pueda retomarse posteriormente como si nunca se hubiera detenido.

Los campos más importantes que aparecen en el descriptor de proceso de cualquier sistema operativo típico. Los campos en la primera columna están relacionados con la gestión de los procesos. Las otras dos columnas tienen que ver con la gestión de memoria y la gestión de ficheros, respectivamente. Hay que señalar que los campos concretos que tienen los descriptores de la tabla de procesos varían mucho de un sistema operativo a otro, pero la figura da una idea general del tipo de información que es necesario mantener para la gestión de los procesos.

REGRESAR AL DISEÑO

Page 30: Modelo Von Neumann Final

ROMAdemás de los tipos de memoria mencionados, muchos ordenadores tienen una pequeña

cantidad de memoria de acceso aleatorio no volátil. A diferencia de la RAM, la memoria no

volátil no pierde su contenido cuando se corta el suministro de electricidad. La ROM (Read

Only Memory; memoria de sólo lectura) se programa en la fábrica y no puede modificarse

posteriormente. La ROM es rápida y económica. En algunos ordenadores el programa de

arranque del ordenador está almacenado en ROM. Además, algunas tarjetas de E/S llevan

incorporada su propia ROM con rutinas que se encargan del control del dispositivo a bajo nivel.

La EEPROM (Electrically Erasable Programable ROM; ROM borrable y programable

eléctricamente) y la flash RAM tampoco son volátiles, pero en contraste con la ROM, su

contenido puede borrarse y volver a escribirse. Sin embargo, su escritura tarda varios órdenesde

magnitud más que la escritura en RAM, por lo que se usan de la misma manera que la ROM,

con la única diferencia de que en su caso es posible corregir errores en los programas que

contienen, y reescribirlos en el mismo lugar donde se encuentran.

REGRESAR AL DISEÑO

Page 31: Modelo Von Neumann Final

BUSLa CPU, la memoria y los dispositivos de E/S están todos conectados por el bus del sistema y se comunican entre sí a través de él. Los ordenadores personales modernos tienen una estructura más complicada en la que intervienen varios buses. Este sistema tiene ocho buses (caché, local, memoria, PCI, SCSI, USB, IDE e ISA), cada uno con una velocidad de transferencia y función diferente. El sistema operativo debe estar al tanto de todos ellos para configurarlos y gestionarlos. Los dos principales buses son el bus ISA (Industry Standard Architecture; Arquitectura Estándar de la Industria) original del PC de IBM y su sucesor, el bus PCI (Peripheral Component Interface; Interfaz de Componentes Periféricos). El bus ISA, que fue originalmente el bus del PC/AT de IBM, opera a 8,33 MHz y puede transferir dos bytes a la vez, para dar una velocidad máxima de 16,67 MB/s. Se incluyó para mantener la compatibilidad con las tarjetas de E/S antiguas y lentas. El bus PCI fue inventado por Intel como un sucesor del bus ISA. Puede operar a 66 MHz y transferir 8 bytes a la vez, para dar una tasa de datos de 528 MB/s. La mayoría de los dispositivos de E/S de alta velocidad utilizan ahora el bus PCI. Incluso algunos ordenadores que no son de Intel utilizan el bus PCI, debido al gran número de tarjetas de E/S disponibles para ese bus.

REGRESAR AL DISEÑO