PONTIFICIA UNIVERSIDAD CATÓLICA MADRE Y MAESTRA RECINTO SANTO TOMAS DE AQUINO
“CONCEPTOS ARQUITECTONICOS DE LA COMPUTADORA”
PROFESOR JOSÉ CLETO ASIGNATURA SISTEMA OPERATIVO 1 PRESENTADO POR: VÍCTOR DE LA ROSA 2004- 5747
FECHA DE ENTREGA: 14 DE ENERO DEL 2007
Conceptos arquitectónicos de la computadora Víctor Ramón De La Rosa Santo Domingo, República Dominicana 1.1 Estructura Computadora
y
Fundamentos
De
La
Una computadora es una máquina que procesas datos, para llevar a cabo este proceso se realizan dos flujos de información el de los datos y el de las instrucciones. Para llevar a cabo el procesamiento una máquina tipo Newman esta compuesto por cuatro componentes básicos los cuales se muestran en la figura siguiente:
4. 5.
ejecución de las instrucciones almacenar el resultado de cada instrucción
La unidades de control tienen asociado varios registros entre los cuales podemos encontrar: el contador del programa (indica la siguiente dirección de la instrucción a ejecutar), el puntero de pila (que sirve para el cómodo manejo de las pilas en la memoria principal), el registro de instrucción (permite almacenar la instrucción de máquina a ejecutar), el registro de estado (maneja la información proveniente de las últimas aplicaciones ejecutadas y informa sobre el comportamiento de la computadora),. Finalmente podemos decir que los dispositivos de entrada y de salida se encargan de pasar la información entre el registro principal o memoria y de los periféricos.
La unidad lógica es aquella que permite realizar varias operaciones lógicas y aritmética sobre uno o dos operando, los datos con los que trabajan estos operadores están almacenados en los registros y cuando van e salida se guardan al igual en registros. La Unidad de control es el que se encarga del funcionamiento de conjuntos y para estos la misma realiza 4 funciones: 1.
2. 3.
leer de memoria las instrucciones que forman parte del programa interpretar cada instrucción leída leer los datos de memoria referenciados para cada instrucción
1.2 Modelo De Computadora:
Programación
De
La
El modelo de programación de una computadora a bajo nivel de una computadora se caracteriza por los siguientes aspectos: Elementos de Almacenamientos: en este resumen lo consideraremos como aquellos como aquellos elementos de la computadora que son visibles a las instrucciones de máquina. En esta categoría podemos incluir los registros generales, el contador del programa, el puntero de fila, el registro de estado, la memoria principal y el mapa de entrada/salida.
1.2.1
Juegos de Instrucciones: con un correspondiente modo de diccionario (encargado de especificar la identidad de los elementos de almacenamientos que interviene en las instrucciones de máquina), es la que se encarga de verificar si es posible verificar si se puede realiza una tarea en el ordenador.
Mas adelante veremos que los niveles de ejecución se les incluyen a las computadoras para brindar soporte al sistema operativo, por cuestiones de seguridad es que estos niveles ponen restricciones a los niveles de usuarios mientras que por otro lado el sistema operativo se ejecuta al nivel de núcleo brindándole libertad.
Secuencia de Funcionamiento: define el modo en que se van a ejecutar las instrucciones de máquinas, un aspecto que se dan en todas las computadoras que no son simple es que se dispone de mas de un nivel de ejecución.
La unidad de establecimiento de control es la que rige el funcionamiento del sistema operativo, este funcionamiento sigue una secuencia sencilla que se basa en: 1 – Lectura de la memoria principal y de la instrucción de máquina apuntada por el controlador del problema, 2- Incremento del contador del programa para apuntar a la siguiente instrucción de máquina, 3 – Ejecución de la instrucción. Esta secuencia tiene dos funciones particulares, una es que su funcionamiento el lineal y la otra es que se desarrolla en un bucle infinito para el paso de instrucción. Se muestra mejor en la figura lo antes explicado.
Niveles de Ejecución:
Entre los niveles que se presentan en las computadoras (no sencillas) esta el nivel de usuario, en el cual la computadora solo ejecuta un conjunto de las instrucciones de máquina y dejando prohibidas las demás. Hace esto tanto con varios registros, determinadas zonas de memoria, ect; a este le podemos denominar el nivel menos permisivo.
1.2.2
Secuencia de Funcionamiento De la Computadora:
En el nivel más permisivo denominado nivel de núcleo, la computadora ejecuta todas las instrucciones y no pone límite de accesos brindando total libertad. En la figura se muestra claramente la diferencia Podemos concluir que la computadora lo que hace es repetir secuencias de manera rápidamente, por lo cual debemos velar porque cada proceso se este realizando adecuadamente y se estén dando los pasos correctos de un cambio de registro a otro, ect. Lo esencia de esto que esta secuencia a mediad que se ejecuta va modificando el contenido del contador del programa, otros segmentos del programa y lo realiza de manera sencilla.
Los Tres mecanismos básicos ruptura de secuencia son los siguientes.
de
La instrucción de máquina salto que permite terminado con la ejecución de un segmento de programa y pasando a otro. La interrupción interna o externa que hace que la unidad de control que permite modificar el valor del contador cuando se realiza el santo del programa. La instrucción de máquina TRAP que es similar a la de interrupción. 1.2.3
Desbordamiento: indica si en la última operación aritmética Hubo desbordamiento. - bits de nivel de ejecución: indica nivel en el que se esta ejecutando procesador. - bits de control de interrupción: establece las interrupciones que se pueden realizar.
5.
Registro de Control y Estado:
Estos son los registros que se relacionan a la unidad de control y entre los más importantes podemos destacar los siguientes: Contador de programa PC. Contiene la siguiente instrucción de máquina. 2. Puntero de pila SP. Contiene la dirección de la cabeza de la pila. 3. Registro de instrucción RI. 4. Registro de estado, que contiene, entre otro, los bits siguientes: - bits de estados aritméticos: Signo: contiene el signo de la última operación aritmética
6.
Registro identificador de espacio de direccionamiento RIED, indica el espacio de mapa de memoria que puede utilizar el programa en ejecución. Otros registros de gestión de memoria, como pueden ser los registros de protección de memoria.
1.
1.3 Interrupción Se solicita mediante una señal que llega a la unidad de control, el solicitante de ésta debe emitir la señal al momento en que se valla a ejecutar en el programa, cuando se termina la instrucción de máquina que se este ejecutando, si la interrupción solicitada puede considerarse habilitada se realiza un ciclo de aceptación, este ciclo consiste en realizar las siguientes operaciones:
Realizada. Acarreo: contiene el acarreo de la última suma o resta realizada Cero: se activa si el resultado de la última operación lógica o aritmética fue cero
Salvar algunos registros del procesador, como lo son el de estado y control de programa. Elevar el nivel de ejecución del procesador pasándolo a núcleo. Carga un nuevo valor en el contador del programa, por lo que pasa a ejecutar otro programa.
Veamos esta figura que nos ilustra sobre este proceso:
Este término se aplica a las computadoras con tres acepciones diferentes las cuales son: a)
Señal que maneja el ritmo de ejecución de las instrucciones de máquina b) Generador de interrupciones periódicas. c) Contador de fecha y hora.
Las interrupciones se pueden realizar por diferentes causas, y las podemos clasificar en:
Excepciones de programas, cuando se produce un error en el programa debe haber una interrupción para permitir al sistema operativo analizar la falla. Interrupciones de reloj Interrupciones de E/S, que con estas estos dispositivos indican que han terminado una operación o un conjunto de éstas. Excepciones de hardware, la detención de un error de paridad en la memoria o corriente se avisan mediante interrupciones. Instrucciones de TRAP. Estas instrucciones permite que un programa genere una interrupción.
Existe una instrucción de máquina llamada RETI, el efecto de esta es restituir los registros salvados al momento de realizarse la interrupción desde el lugar en el que fueron salvados. 1.4 Reloj
El oscilador que se encarga de las fases de ejecución de las instrucciones de máquinas se denomina reloj, la señal generada por el reloj se divide mediante un divisor de frecuencia para generar una interrupción, esta interrupción se llama interrupción de reloj y se produce para que los programas no puedan tener monopolizado el uso del computador. El tercer funcionamiento que nos permite tener el reloj es el de conocer la fecha y la hora, este contador se va incrementando con cada interrupción de reloj y va haciendo los cálculos necesarios.
1.5 Jerarquía de Memoria La memoria necesita almacenar tanto información que estará utilizando permanentemente y información que solo necesitar por un momento, por lo cual la administración de la memoria es muy importante para aprovechar al máximo y desarrollar de manera rápida los procesos que estemos ejecutando, la jerarquía de la memoria la podemos visualizar en esta imagen:
El mecanismo de migración automática requiere tener la información necesaria en un nivel k y que se puede acceder de manera rápida a ella, para esto este mecanismo ya debe saber el tipo de información que se necesita para tenerlo disponibles y no buscar en otros niveles como k+1 la información que necesita. Este mecanismo se basa en las siguientes partes: • Es importante saber como funciona la jerarquía de la memoria que va de la mano con la información que la memoria almacena y por cuanto tiempo lo hace, también la unidad de disco duro entra en juego cuando se trata de ejecutar programas de manera permanente y de forma rápida ya que este puede también almacenar la información permanente brindando mas recursos y haciendo más rápida la memoria, también el sistema operativo entrar en juego con el manejo de la memoria con lo que es la memoria virtual. Antes de avanzar veamos una lista de los valores típicos de la jerarquía de la memoria.
• • •
Tamaños de los bloques trasferidos Política de extracción Política de reemplazo Política de ubicación
1.5.2 Parámetros característicos de la jerarquía de memoria La eficiencia de la jerarquía de la memoria se mide en dos parámetros los cuales son: • •
1.5.1
Migración de la información
Para aprovechar al máximo lo que es la jerarquía de memoria la información no puede estar estática en un solo sitio, sino que debe estar emigrando a diferentes sitios dependiendo del lugar en que se necesite para su uso, entonces para realizar la migración de la información se puede hacer de dos maneras, una es que el programa pida la información que necesita esta se puede denominar migración demandante que se utiliza en diferentes niveles a la migración automática que se utiliza para hacer las migraciones sin que los programas se den cuenta, este tipo de migración se utiliza para en las memorias caches, memorias virtuales, ect.
Tasa de aciertos o hit ratio(hr) Tiempo medio de acceso efectivo (tef).
La tasa de acierto del hrk a un nivel k se define como la probabilidad de encontrar en ese nivel k la información referenciada, los factores más importantes que determinan hrk son los siguientes: tamaño de la porción que se transmite al nivel k, capacidad de almacenamiento del nivel k, política de reemplazo, política de ubicación, programa específico que se este ejecutando. El tiempo de acceso y de acierto a una información dependerá de si falla el nivel de k, es decir que si la información que búscanos no se encuentra en el nivel k denominamos el proceso penalización de fallo ya que hemos fallado en la búsqueda. 1.5.3 Coherencia Este término se utiliza cuando hay varios trozos de copias en diferentes niveles, es
decir que si se escribe en el nivel k por ejemplo se produce una falta de coherencia con el nivel k + 1 y a esto se le llama falta de coherencia, existen varias políticas de actualización de la información creada que se caracterizan por el instante en que se copia la información de manera permanente. 1.5.4 Direccionamiento Existe un problema con el acceso e la información en lo que se refiere a tiempo ya que si tengo un programa da una dirección x para localizar una información en especifico, como consecuente tendremos la dirección de k + 1 lo cual nos lleva a nuestro destino pero el proceso se vuelve mas lento, por lo que es mejor ubicar la localización de k para que sea mas rápida la búsqueda, visualicemos el problema en la imagen:
Entonces el direccionamiento es una operación que se realiza para obtener la diferencia de nivel entre k y k+1 y así poder acceder a la información de manera más cómoda y rápida posible mediante el direccionamiento. 1.5.5 La Proximidad Referencial La proximidad referencial es la que hace visible la jerarquía de memoria, ya que un programa para su ejecución va a necesitar en un momento una pequeña parte de toda la información que usa, para partir de un concepto mas general decimos que la este concepto es parecido al de taza que es la lista de todos los componentes que necesita un programa para ser ejecutado.
La proximidad referencial muestra dos componentes: la proximidad espacial que nos dice que si tenemos dos direcciones a y b próximas en el tiempo existe una alta probabilidad de que su distancia sea muy pequeña y la proximidad secuencial es cuando se tiene muchos trozos de programas y mucha estructura de datos esas se recorren de manea secuencial dándonos una alta probabilidad de que el sitio al que apunte sea la siguiente dirección de memoria. La proximidad temporal nos dice que un programa en ejecución tiende a emplear direcciones utilizadas direcciones antes utilizadas, es decir es muy probable que la siguiente referencia ya se halle empleado en una dirección antes empleada. La proximidad temporal se explica si se tienen en cuenta los siguientes componentes: los bucles producen proximidad temporal además de proximidad espacial, el uso de parámetros o datos de manera repetitiva produce aproximación temporal, las llamadas repetidas a subrutinas también son muy frecuente y producen aproximación temporal.
1.6 Memoria Virtual
o
En un sistema sin memoria virtual el sistema lo que hace es que divide la memoria principal en varios trozos y los divide entre los programas como se muestra en la figura:
o
Existe una unidad de hardware denominada MMU que traduce las direcciones virtuales a direcciones de memoria principal. Dado que cada instante determinado solamente reside en memoria principal una fracción de las páginas del programa, la traducción no siempre es posible.
Los fallos de páginas son atendidos por el sistema operativo. Al crear estas memorias virtuales se realizan de gran tamaño los hay de 32, 48 y hasta de 64 bits. 1.6.1
Concepto de Memoria Virtual 1.6.2
La memoria virtual utiliza dos niveles de jerarquía de la memoria, la memoria principal y la memoria de respaldo, la gestión de la misma es automática y la crea el sistema operativo, alguno de los aspectos principales en lo que se basa la memoria son los siguientes: o
o
o
o o
Las direcciones generadas por las instrucciones de máquina, tanto para referirse a datos como a otras instrucciones El mapa virtual asociado a un programa en ejecución esta soportado físicamente por la zona del disco, denominado de intercambio o swap y por una zona de memoria principal. Aunque el programa genera direcciones virtuales, para que este pueda generarse, han de residir en memoria principal las instrucciones y los datos utilizados a cada momento. El espacio virtual y físico se divide en páginas. Cada marco de página es capaz de albergar una página virtual cualquiera sin ninguna restricción o direccionamiento.
Las Tablas de Páginas
Las tablas de página se utilizan para decirnos donde se encuentran las páginas del programa de ejecución y saber si estos mismos están ejecutados en memoria principal, como habíamos dicho antes la memoria virtual ocupa mucho espacio en varios casos y si utilizamos tablas de páginas estas ocuparan el mismo espacio lo cual será mucho, pero como hemos visto el sistema operativo se encarga de darle el espacio necesario a los programas para su ejecución lo cual no se convierte en un problema, en la figura vemos como funciona este proceso:
Ahora, sabemos que los programas están formados por varios elementos como lo son la fila, el programa en si, entre otro, por lo que existe la función de usar tablas de referencias a nivel, que es una tabla de referencia divididas en niveles evitando así tener una solo referencia y utilizar todo el espacio que los programas usan, sino utilizar varias referencias a diferentes niveles y de esta forma ahorrar espacio, veamos como su manejo mediante una imagen.
ese momento, pero a todos hay que brindarle memoria para su ejecución, en el caso del MMU que ha de usar las tablas de páginas correspondientes al programa que están en ejecución, para facilitarla la referencia el trozo del programa que se este ejecutando el procesador tiene un registro identificador de espacio de direccionamiento (Reid), este registro facilita al MMU la referencia del programa en ejecución. 1.6.4
Asignación de memoria principal y memoria virtual.
Existe una migración de páginas desde la memoria principal a la virtual para la ejecución de programas, este proceso de extracción y remplazo el sistema operativo lo usa para que no se encuentre todas las páginas de trozo de programa en la memoria principal. Por esto se denomina conjunto de trabajo de un programa en ejecución en el intervalo [J, K] al conjunto de páginas referidas del elemento k y la taza de q referida. Por otro lado se denomina conjunto residente a la parte del proceso que esta realmente en memoria principal en el instante.
Aunque el sistema operativo es el encargado de manejar, administrar y crear la memoria virtual y las páginas como las referencias no se encarga de dar el direccionamiento a las mismos, de esto se encarga el MMU ya que este proceso se debe hacer de forma rápida para evitar retrasos con la ejecución de los programas en lo que es el tiempo.
1.6.3
Casos de varios programas activos 1.7 Entrada / Salida
Es un hecho que podemos trabajar con varios programas a la vez y que podemos tener varios programas abiertos, para esto el sistema operativo trabaja con el que este en ejecución en
Estos tienen como objetivo principal intercambiar información entre los periféricos y la memoria de los registros de proceso.
1.71 periféricos Veamos como funcionan mediante una imagen:
los
periféricos
E/S las cuales son: E/S programables exige que el procesador esté ejecutando un programa de E/S, en el E/S con interrupciones tras enviar la orden al periférico puede dedicarse a la ejecución de otro programa y el E/S por DMA el controlador se encarga de transferir directamente al controlador sin molestar el procesador. 1.8 Protección
En esta imagen el registro de datos sirve para el intercambio de datos, el registro de estado sirve para verificar que se puede trasferir algo y el de control sirve para avisar al controlar de las operaciones que hay que realizar. El periférico más importante que tenemos es el disco magnético, pues sirve de espacio de intercambio para la memoria virtual, tiene almacenamiento constante para la ejecución de los programas y la gestión de este periférico esta a cargo del sistema operativo. Podemos dividir los dispositivos en dos grandes grupos los bloques y los de caracteres, los de bloques los que se requiere que se lea un bloque o escriba uno de información por ejemplo CD, DVD, controladores de red, estos dispositivos son importantes ya que brindan espacio y facilidades para la memoria en ejecución de programas. Los de caracteres viene siendo como el teclado funcionan de esta forma en lo que es la transmisión de caracteres. 1.7.2 E/S y concurrencia Los periféricos de E/S funcionan mucho mas lento que el procesador por lo que el mismo no puede quedarse en un buque de espera esperando respuesta de estos periféricos si puede ir haciendo otras utilidades, la computadora presenta tres modos básicos de operaciones de
Básicamente como su nombre lo dice es la protección de que un usuario no pueda ver lo del otro. Por ejemplo el mecanismo del protección del procesador se basa en sus niveles de ejecución, es decir si es a nivel de usuario o a nivel de núcleo. En el caso de la memoria se debe velar porque un programa no obtenga dirección de memoria que no le corresponda, para evitar eso existen varios métodos como la creación de varios registros entre otras. 1.9 multiprocesador y multicomputadora El multiprocesador son un conjunto de procesadores que comparten acceso a una memoria principal común, una ventaja de esto es que el acceso a datos comunes en muy simple. La multicomputadora es una máquina compuesta por varios nodos, estando cada nodo formando un procesador, su memoria principal, y en su caso elementos de E/S. Ejemplo de estos podemos ver en las figuras:
Referencias: Sistemas operativos Una visión aplicada Por:
Autores del libro a analizar Jesús Carretero Pérez Féliz García caballería Pedro de miguel Fernando Pérez