Sunteți pe pagina 1din 8

Cuaderno de problemas y cuestiones de Ingeniería de Computadores

Tema 2
Curso 2007–2008

o 1. Se tiene el siguiente listado que corresponde a un programa en (a) (b) (c)


ensamblador de la CPU teórica. Dicho listado forma parte del códi-
ORIGEN 2000 h ORIGEN 2000 h ORIGEN 2000 h
go de la Tarea 1. INICIO p r i m e r a INICIO p r i m e r a INICIO p r i m e r a
. PILA 30 h . PILA 30 h . PILA 30 h
. CODIGO . CODIGO . CODIGO
primera : primera : primera :
MOVL R1 , ’ 1 ’ CLI MOVL R1 , ’ 1 ’
MOVH R1 , 0 MOVL R1 , ’ 1 ’ MOVH R1 , 0
repite : MOVH R1 , 0 repite :
MOVL R7 , 2 h repite : XOR R0 , R0 , R0
1 CLI
MOVH R7 , 0 h MOVL R2 , 00 h MOVL R3 , 0C8h
2 MOVL R3 , 00 h
MOVL R2 , 00 h MOVH R2 , 01 h MOVH R3 , 80 h
3 MOVH R3 , 0E0h
MOVH R2 , 01 h ADD R1 , R1 , R2 MOV [ R3 ] , R0
4 XOR R2 , R2 , R2
ADD R1 , R1 , R2 INT 10 h MOVL R2 , 00 h
5 MOV [ R3 ] , R2
INT 10 h JMP r e p i t e MOVH R2 , 01 h
6 INC R2
JMP r e p i t e FIN ADD R1 , R1 , R2
7 M0VH R3 , 61 h
FIN INT 10 h
8 MOV [ R3 ] , R2
JMP r e p i t e
9 MOV [ R2 ] , R3
FIN

En particular, forman parte de una tarea ubicada en memoria a partir


de la dirección 2000h. Además de esta tarea, había otra tarea ubi-
cada a partir de la dirección 1000h y un pequeño sistema operativo
En la figura se muestran los espacios de direcciones ocupados por multitarea a partir de la dirección 8000h.
las tareas y el Sistema Operativo.
— ¿Qué deficiencias de la CPU teórica ponen de manifiesto cada
— Si intentásemos que la CPU teórica diera soporte a un siste- uno de los programas anteriores?
ma operativo multitarea moderno, ¿Cuál o cuáles de las ins-
trucciones anteriores causarían problemas según el compor- Programa (a): No hay conmutación automática de la pila cuando
tamiento esperado en un S.O. multitarea, y por qué causa? se transfiere el control al sistema operativo.
Contestar número de instrucción y causa.
Programa (b): Hay instrucciones como la CLI que sólo debería
Instrucción no 1 → Intento de ejecución por parte de la tarea de ejecutar el sistema operativo.
una instrucción “privilegiada”. Sólo podría ejecutarla el S.O.
Programa (c): El área de memoria asociada al sistema operativo
Instrucción no 5 → La tarea intenta escribir en el área de memo- es accesible a las tareas para su lectura o escritura.
ria del S.O.

Instrucción no 9 → La tarea intenta escribir en una estructura de


datos reservada del sistema, bajo control del S.O.
o 3. Se ha construido una CPU que requiere 4 ciclos (periodos de
reloj) para ejecutar cualquier instrucción. Tras probar diferentes pe-
riodos de reloj se comprueba que el periodo mínimo con el que es
capaz de trabajar correctamente es 2 ns.

— ¿Cuál es la máxima frecuencia de reloj que puede emplearse


en la CPU anterior?
o 2. Los programas (a), (b) y (c) siguientes han sido extraídos de una
sesión práctica en la que se mostraban las deficiencias de la CPU 500 MHz.
teórica para soportar sistemas operativos multitarea.
— ¿Cuántas instrucciones puede ejecutar por cada ciclo de reloj?
Ejemplo: 1,2 instrucciones/ciclo.

0,25 instrucciones/ciclo

— ¿Cuántas instrucciones por segundo puede ejecutar?

125 millones de instrucciones/segundo

1
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores

En la práctica, empleando la técnica de segmentación se consigue Al funcionar en paralelo, el periodo mínimo de reloj coincide con
incrementar notablemente la frecuencia de reloj de la CPU, el nú- la duración mínima de cada etapa, es decir, 100 ns/2 = 50 ns. Re-
mero de instrucciones que puede ejecutar por ciclo de reloj y por lo sulta una frecuencia máxima de reloj de 20 MHz. Como una CPU
tanto el número de instrucciones por segundo. segmentada es capaz de ejecutar a lo sumo 1 instrucción por ciclo
Para mejorar el rendimiento de la CPU anterior se ha dividido la de reloj, resulta que la CPU es capaz de ejecutar a lo sumo:
ejecución de todas las instrucciones en 20 etapas, cada una de las 20 millones de instrucciones/segundo
cuales requiere un ciclo de reloj. Se han hecho pruebas haciendo
que las 20 etapas trabajen en modo no segmentado (en este modo
no hay paralelismo en la ejecución, pues en cada ciclo sólo hay una
etapa activa) y se comprueba que la CPU es capaz de ejecutar a lo
sumo 100 millones de instrucciones por segundo.

— ¿Cuál es la máxima frecuencia de reloj que puede emplearse o 5. Se pretende realizar desde cero una CPU que implemente la ar-
una vez segmentada la CPU? quitectura PIC16x. Para ello, en primer lugar se ha diseñado una
versión preliminar no segmentada de la CPU, la cual es capaz de
2 GHz.
ejecutar 2,5 millones de instrucciones por segundo trabajando a la
máxima frecuencia. La ejecución de cualquier instrucción se divide
— ¿Cuántas instrucciones puede ejecutar la CPU segmentada ca- en cuatro etapas que funcionan de forma secuencial. Cada una de
da ciclo de reloj? Ejemplo: 1,2 instrucciones/ciclo. estas etapas necesita un ciclo de reloj para completarse.

1 instrucción/ciclo — ¿Cuál es la máxima frecuencia de reloj que puede emplearse


con dicha CPU?

— ¿Cuántas instrucciones por segundo puede ejecutar? 10 MHz

2000 millones de instrucciones/segundo


— ¿Cuál es tiempo mínimo necesario para ejecutar cualquier ins-
trucción dicha CPU? Contestar en microsegundos.
1
o 4. La técnica de la segmentación en la ejecución de instrucciones 2,5·106
= 0,4 µseg
se usa no sólo en potentes CPUs de propósito general que soportan
los sistemas multitarea actuales. También se emplea en pequeñas Una vez se ha realizado la versión inicial de la CPU, ésta se ha mo-
CPUs, como la CPU de 8 bits incorporada en los microcontrola- dificado empleando la técnica de segmentación. Para ello se permite
dores de la familia PIC16x de la empresa Microchip, usados para que las cuatro etapas funcionen en paralelo.
implementar sistemas de control simples de bajo coste.
— ¿Cuál es ahora el tiempo mínimo necesario para ejecutar cual-
Se pretende realizar desde cero una CPU que implemente la ar- quier instrucción, y cuántas instrucciones por segundo puede
quitectura PIC16x. Para ello, en primer lugar se ha diseñado una ejecutar, a lo sumo, la versión segmentada de la CPU?
versión preliminar no segmentada de la CPU, la cual es capaz de
ejecutar 10 millones de instrucciones por segundo trabajando a la Tiempo en microsegundos: 0,4
máxima frecuencia. La ejecución de cualquier instrucción se divide
en dos etapas que funcionan de forma secuencial: una etapa de bús- Número de instrucciones/s: 10 millones
queda de la instrucción y una etapa de ejecución propiamente dicha.
Cada una de estas etapas necesita un ciclo de reloj para completarse.
o 6. Se ha rediseñado la organización interna de la CPU teórica para
— ¿Cuál es tiempo mínimo necesario para ejecutar cualquier ins- soportar la segmentación en la ejecución de instrucciones. Para ello,
trucción en dicha CPU? la ejecución de cualquier instrucción se ha dividido en dos etapas
que pueden llevarse a cabo de forma concurrente. La primera etapa
100 ns
consiste en la búsqueda de la instrucción e incremento del contador
de programa, la cual requiere 1,5 ns. La segunda etapa consiste en la
— ¿Cuál es la máxima frecuencia de reloj que puede emplearse ejecución propiamente dicha, la cual requiere también 1,5 ns. Supo-
con dicha CPU? niendo que la CPU acaba de ser reiniciada, es decir, no ha ejecutado
aún ninguna instrucción, indicar el tiempo necesario para ejecutar
20 MHz el siguiente fragmento de código cuando la CPU se conecta a una
cache de primer nivel dividida y cuando se conecta a una cache de
Una vez se ha realizado la versión inicial de la CPU, ésta se ha mo- primer nivel unificada.
dificado empleando la técnica de segmentación. Para ello se permite Nota: No considerar limitaciones de la ALU.
que las dos etapas funcionen en paralelo.
1 MOVL R2 , 05 h
2 XOR R4 , R4 , R4
— ¿Cuántas instrucciones por segundo puede ejecutar, a lo sumo, 3 ADD R4 , R2 , R1
la versión segmentada de la CPU? Razona la respuesta. 4 MOV R3 , [ R4 ]
5 MOV [ R3 ] , R1
6 XOR R1 , R2 , R3
7 MOV R1 , [ R6 ]

Cache dividida: 12 ns

Cache unificada: 15 ns

2
Ingeniería de Computadores Soluciones de los ejercicios del tema 2

o 7. Se dispone de una CPU segmentada en dos etapas para ejecutar — ¿Qué CPU proporciona un mayor rendimiento, la A15, que
programas de la CPU teórica, de forma que puedan llevarse a cabo trabaja a 1,5 Ghz, o la Super B30, que trabaja a 3 GHz? ¿Por
en paralelo la fase de búsqueda y ejecución propiamente dicha, de qué?
cada instrucción. Cada etapa se ejecuta en un ciclo de reloj. En es-
ta CPU se utiliza una cache unificada y no existe replicación de la La Super B30 al estar segmentada es capaz de ejecutar una ins-
ALU (no es posible realizar dos operaciones con la ALU simultá- trucción cada ciclo de reloj. Como su frecuencia de reloj es de 3
neamente). GHz, resulta que puede ejecutar 3000 MIPS, menor que los 3500
MIPS de la CPU A15. Por lo tanto, la CPU A15 proporciona un
1 MOVH R3 , 0BAh
2 MOVL R3 , 04 h
mayor rendimiento aunque tenga una frecuencia de reloj menor.
3 INC R3
4 MOV R2 , R3
5 XOR R4 , R4 , R4
6 ADD R4 , R2 , R3
7 MOV [ R3 ] , R4

— ¿Cuántos ciclos de reloj tarda en ejecutarse el fragmento de


código anterior, en esta CPU?
— ¿La CPU A15 es simplemente una CPU segmentada, o además
11 es superescalar? ¿Por qué?

Es superescalar, pues es capaz de ejecutar más de una ins-


Si en el conjunto de programas que ejecuta esta CPU existe un 25 %
trucción por ciclo de reloj. En particular, es capaz de ejecutar
de instrucciones que realizan accesos a memoria para leer o escribir
(3750/1500) = 2,5 instrucciones cada ciclo de reloj.
datos, un 15 % de instrucciones aritméticas y un 10 % de operacio-
nes lógicas,

— ¿cuál de las siguientes alternativas de rediseño del sistema


crees que resultaría más eficiente: a) dotar a la CPU de una
cache dividida o b) replicar la ALU? ¿Por qué?

Tanto las instrucciones de acceso a datos en memoria como las


instrucciones aritmético lógicas provocan una rotura de la seg-
mentación. La mejor alternativa pues será aquella que minimice o 9. Se dispone de una CPU segmentada que cuenta con dos etapas,
el número de roturas. Con la alternativa a) se reduciría en un 25 % una etapa de búsqueda y una etapa de ejecución. La interfaz con la
el número de roturas, mientras que con la alternativa b) se reduci- memoria es única y compartida entre las dos etapas. El tiempo que
ría en un (15 % + 10 %) = 25 % también. Luego en este caso el toma en contemplarse cada una de las etapas es de 10 nanosegun-
efecto sería el mismo. dos. Si esta CPU ejecuta la siguiente secuencia de instrucciones:
1 ADD R4 , R3 , R2
2 MOV R2 , [ R4 ]
3 AND R5 , R2 , R3
4 XOR R6 , R6 , R6

o 8. Dos compañías fabricantes de CPUs se disputan el mercado. La


primera de ellas dispone de la CPU modelo A15, capaz de ejecutar — Completa adecuadamente el cronograma de ejecución.
3750 Millones de Instrucciones Por Segundo (MIPS), la cual trabaja Nota: la parte superior es para la etapa de búsqueda y la
a una frecuencia de 1,5 GHz. La segunda compañía pretende expul- inferior para la de ejecución. Escribe dentro el mnemónico
sar del mercado a la primera poniendo a la venta la CPU modelo apropiado.
Super B30, que trabaja a una frecuencia de 3 GHz e implementa el
mismo juego de instrucciones que la CPU de la competencia. Para
ADD MOV AND XOR
obtener este producto, la compañía parte de una CPU no segmenta-
da, modelo B0,25, que opera a 250 MHz y requiere una media de ADD MOV AND XOR
2,5 ciclos de reloj para ejecutar cualquier instrucción.

— ¿Cuál es el tiempo medio necesario para ejecutar una instruc- — ¿Cuántos nanosegundos más rápida es la ejecución segmenta-
ción en la CPU B0,25? da que la secuencial del conjunto de instrucciones considera-
1 ns do?
2,5 ciclos × 0,25 ciclos
= 10 ns
(8 × 10) − (6 × 10) = 20 nanosegundos
— La CPU Super B30 se obtiene dividiendo la ejecución de las
instrucciones en N etapas de duración 1 ciclo de reloj (de 3
GHz), las cuales funcionan de forma concurrente. ¿Cuál debe o 10. Se tiene una CPU que requiere 10 pasos para que se ejecute
ser el valor de N? una instrucción, a razón de un paso por ciclo de reloj.
10 ns
N= 1/3 ns
= 30 — ¿Cuál ha de ser la frecuencia de reloj de la CPU para que ésta
sea capaz de ejecutar 10 millones de instrucciones por segun-
do trabajando de forma no segmentada?

100 MHz

3
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores

— Si la frecuencia se mantiene constante en el valor anterior y — ¿Cuántas instrucciones por segundo puede ejecutar, a lo sumo,
deseamos que la CPU ejecute 5 veces más instrucciones, ¿qué la versión segmentada de la CPU?
técnica podemos utilizar y cuál es el número mínimo de etapas
necesarias para conseguir el objetivo buscado? 2 400 millones de instrucciones / seg

Técnica: Segmentación Etapas: 5


— ¿Una determinada instrucción dónde tarda más tiempo en eje-
cutarse, en la versión que emplea las doce etapas de forma se-
— Si ahora la CPU dispone de 10 etapas que trabajan en paralelo, cuencial, o en la versión que emplea las doce etapas de forma
requiriendo cada una de ellas 1 ciclo de reloj, con un reloj de paralela? ¿Por qué?
frecuencia 10 MHz, ¿cuántas instrucciones por segundo po-
dría ejecutar esta CPU? ¿Cuánto tiempo emplea en ejecutar Tarda lo mismo, pues en ambos casos son necesarios doce ciclos
cada una de las instrucciones? de reloj. La diferencia es que con la CPU segmentada se pueden
ejecutar doce instrucciones a la vez.
No de instrucciones: 10 millones de instrucciones por segundo

Tiempo por instrucción (µseg): 0,1 × 10 = 1 µseg

o 11. Se dispone de una CPU segmentada en 4 etapas, cada una de


las cuales necesita 2 ciclos de reloj para llevarse a cabo. Suponiendo
que la frecuencia de reloj que gobierna la CPU es de 100 MHz, — ¿Qué podría ocurrir si una tarea que se ejecuta sobre un siste-
ma operativo multitarea pudiese desactivar las interrupciones?
— ¿cuántas instrucciones por segundo teóricas puede ejecutar la ¿Por qué?
CPU?
Podría tomar el control de la máquina o cuando menos bloquearla.
50 millones
Esto es así porque al estar inhabilitadas las interrupciones el SO
no podría tomar el control a través de la interrupción generada por
— Si mediante la replicación de unidades funcionales de la CPU el temporizador periódico.
se dispusiera de 4 cauces de ejecución, ¿cuántas instrucciones
por segundo teóricamente podría ahora ejecutar la CPU?

200 millones

— Si ahora la CPU dispone de 10 etapas que trabajan en paralelo,


requiriendo cada una de ellas 1 ciclo de reloj, con un reloj de — Cuando una tarea llama a un servicio del sistema operativo se
frecuencia 10 MHz, ¿cuántas instrucciones por segundo po- produce, entre otras cosas, la conmutación de la pila de la tarea
dría ejecutar esta CPU? ¿Cuánto tiempo emplea en ejecutar a la pila del sistema operativo. La arquitectura IA-32 lleva a
cada una de las instrucciones? cabo una conmutación automática de la pila. ¿En qué consiste
este tipo de conmutación?
No de instrucciones: 10 millones de instrucciones por segundo
El registro puntero de pila de la tarea justo antes de producirse la
Tiempo por instrucción (µseg): 0,1 × 10 = 1 µseg transferencia se salva en la pila del sistema operativo y la CPU
carga de forma automática (sin que ninguna instrucción lo provo-
que) el puntero de pila del SO en el registro puntero de pila. Una
o 12. Se pretende realizar desde cero una CPU que implemente la vez recibe el control el sistema operativo, el manejador copia el
arquitectura PIC16x. Para ello, en primer lugar se ha diseñado una contenido del puntero de pila de la tarea en el área de datos donde
versión preliminar no segmentada de la CPU, la cual es capaz de el S.O. almacena el estado de la tarea.
ejecutar 200 millones de instrucciones por segundo trabajando a la
máxima frecuencia. La ejecución de cualquier instrucción se divi-
de en doce etapas que funcionan de forma secuencial. Cada una de
estas etapas necesita un ciclo de reloj para completarse.

— ¿Cuál es la máxima frecuencia de reloj que puede emplearse


o 13. Para comprobar el efecto de la replicación de unidades funcio-
con dicha CPU?
nales se considera el siguiente fragmento de código que se ejecuta
2,4 GHz sobre diferentes versiones segmentadas de la CPU teórica.
1 MOVL R3 , 00 h
Una vez se ha realizado la versión inicial de la CPU, ésta se ha mo- 2 MOVH R3 , 0E0h
3 XOR R2 , R2 , R2
dificado empleando la técnica de segmentación. Para ello se permite 4 MOV [ R3 ] , R2
que las doce etapas funcionen en paralelo. 5 INC R2
6 MOVH R3 , 61 h
7 MOV [ R3 ] , R2
— ¿Cuántas instrucciones por ciclo de reloj es capaz de ejecutar 8 MOV [ R2 ] , R3
la CPU segmentada?

1 instrucción / ciclo de reloj La primera versión es una segmentación en dos etapas: una de bús-
queda de instrucción e incremento del PC y otra de ejecución pro-
piamente dicha. En dicha versión se dispone de una única ALU, la

4
Ingeniería de Computadores Soluciones de los ejercicios del tema 2

cual se emplea tanto para el incremento del PC como para la ejecu- — Explica qué tendría que suceder para que la rutina de trata-
ción de las instrucciones aritméticas y lógicas. La segunda versión miento de la excepción anterior no tuviera éxito, y a dónde se
es análoga a la anterior, pero dispone de una ALU adicional, por lo devolvería el control en ese caso.
que se pueden realizar a la vez dos operaciones aritméticas o lógi-
cas. La rutina de tratamiento de la excepción falla si la página asociada
a la dirección no tiene almacenamiento físico asignado, ni en me-
Ambas versiones segmentadas emplean un reloj de 1 GHz, consu- moria, ni en el archivo de paginación. O si lo mismo ocurre con la
miendo un ciclo de reloj para cada etapa y están conectadas a una tabla de páginas. En este caso se produce un fallo no recuperable
cache dividida. La ÚNICA diferencia entre ellas es la posibilidad de y la tarea finaliza, el S.O. toma el control y lo cede a otra tarea
llevar a cabo una o dos operaciones aritméticas simultáneamente. para su ejecución.
— ¿Cuánto tiempo requiere la ejecución del fragmento de pro-
grama anterior en cada una de las versiones segmentadas de la
CPU? Responder en nanosegundos.

Segmentación y 1 ALU: 11 ns

Segmentación y 2 ALUs: 9 ns o 15. Teniendo en cuenta el contenido de los registros mostrados en


la tabla siguiente, se pide calcular la dirección lineal a la que se
accedería mediante las siguientes instrucciones:
o 14. En un momento dado, una CPU con arquitectura IA-32 y con
Sistema Operativo Windows, se encuentra ejecutando un programa. Contenido registro Dirección base almacenada en:
Se conoce:
EAX = 0000 001Bh Registro sombra de CS = 0040 0000h
La dirección contenida en el registro IDTR = 8000 0000h. EBX = 0000 001Ch Registro sombra de DS = 0050 0000h
El contenido de parte de la IDT, que se muestra en la figura. ECX = 0000 001Dh Registro sombra de SS = 0060 0000h
El sistema operativo trabaja según un modelo de memoria ESP = 0000 003Ch Registro sombra de FS = 0070 0000h
plano.

— POP ECX
Dirección lineal: 0060 0000h + 0000 003Ch = 0060 003Ch

— MOV EBX, [EAX]


Dirección lineal: 0050 0000h + 0000 001Bh = 0050 001Bh

o 16. En un momento dado, una CPU basada en la arquitectura IA-32


Si en el transcurso del programa se ejecuta la instrucción INT 2Eh: muestra el contenido de los registros que se indican en la tabla.
Si, se pretende ejecutar secuencialmente las instrucciones siguientes
— ¿A partir de qué dirección lineal se ubica la entrada de la IDT
(es decir, son consecutivas en memoria), indica qué rangos de direc-
correspondiente a esta instrucción?
ciones serán accedidas en cada instrucción. Recuerda que por cada
8000 0000h + (2Eh × 8) = 8000 0170h instrucción pueden ser necesarios 2 accesos a memoria y supón que
el código de una instrucción es de 32 bits.

— ¿A qué tipo de transferencia de control al S.O. corresponde la Contenido registro Dirección base almacenada en:
instrucción anterior?
EAX = 0000 001Bh Registro sombra de CS = 001A D000h
Llamada a servicio del S.O. EBX = 0000 001Ch Registro sombra de DS = 56FB 9000h
ECX = 0000 001Dh Registro sombra de FS = 6098 A000h
Sobre la misma CPU, se procede en otro momento a ejecutar
una instrucción de acceso a datos, ubicada en la dirección lógica ESP = 0000 003Ch Registro sombra de SS = B987 C000h
CS:07B9 4891h, a la que le sigue, otra instrucción con dirección EIP = 0000 003Ch Registro sombra de ES = CFD4 5000h
lógica CS:07B9 4897h.
Se sabe que la primera de estas instrucciones produce un fallo de
— MOV EAX, [EBX]
página:
Búsqueda: CS:EIP = 001A D025h – 001A D028h
— ¿En qué dirección lineal se encuentra la rutina que se encarga
de tratar este tipo de excepción? Ejecución: DS:EBX = 56FB 9032h – 56FB 9035h
87CF 9500h
— POP ECX
— Si la rutina de tratamiento de la excepción tiene éxito, ¿a qué Búsqueda: CS:EIP = 001A D029h – 001A D02Ch
dirección lineal devolverá el control?
Ejecución: SS:ESP = B987 C0F3h – B987 C0F6h
07B9 4891h (la misma instrucción que causó la excepción)

5
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores

o 17. Una tarea ejecutada sobre un PC con sistema operativo Micro- B) La excepción de división por 0 en la arquitectura IA-32 es de
soft Windows XP tiene como código fuente el indicado a continua- tipo FALLO.
ción. Dicho código fuente contiene varias instrucciones que al ser C) Las CPUs que gracias a la replicación de componentes son ca-
ejecutadas generan excepciones. paces de trabajar sobre varias instrucciones simultáneamente
1 # i n c l u d e < s t d i o . h> reciben el nombre de superescalares.
2 v o i d main ( ) D) En modo protegido la instrucción CLI puede ser ejecutada con
3 {
4 int var_local = 0; el nivel de privilegio de usuario.
5 unsigned p a g _ v i r t u a l ; E) La CPU con nivel de privilegio de usuario puede acceder a las
6 u n s i g n e d ∗ d i r _ v i r t u a l _ e t p = NULL ;
7 direcciones de memoria asociadas al sistema operativo.
8 / ∗ C a l c u l a l a i n v e r s a de l a v a r i a b l e l o c a l ∗ / F) La IDT de un PC puede contener como máximo 256 entradas.
9 var_local = 1 / var_local ;
10
11 /∗ I n i c i a l i z a c i e r t o s r e g i s t r o s ∗/ B, C y F
12 _asm
13 {
14 mov ah , 10
15 cli o 20. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
16 } TAS. Contesta “Ninguna” si crees que ninguna lo es.
17
18 / ∗ Pág . v i r t u a l a s o c i a d a a v a r _ l o c a l ∗ /
19 p a g _ v i r t u a l = ( ( u n s i g n e d )&v a r _ l o c a l ) >> 1 2 ; A) El primer procesador que implementó la arquitectura IA-32
20 fue el 80386.
21 / ∗ D i r e c c i ó n v i r t u a l en l a que s e a l m a c e n a l a ETP ∗ /
22 d i r _ v i r t u a l _ e t p = ( v o i d ∗) ( 0 xC0000000 + p a g _ v i r t u a l ∗4) ; B) El modelo de memoria plano de la arquitectura IA-32 reduce
23 la segmentación a su mínima expresión, haciendo que el des-
24 / ∗ E s c r i b e e l v a l o r de l a ETP ∗ /
25 p r i n t f ( " V a l o r de l a ETP = %X \ n " , ∗ d i r _ v i r t u a l _ e t p ) ;
plazamiento de la dirección lógica coincida con la dirección
26 } lineal.
C) En la arquitectura IA-32 el nivel de privilegio de ejecución
— ¿Qué instrucciones C o ensamblador habría que comentar en viene dado por el campo RPL, llamado CPL, del registro CS.
el programa anterior para que no se generasen excepciones? D) El espacio de direcciones lógicas en la arquitectura IA-32 tie-
¿Por qué? Si no es necesario comentar ninguna instrucción ne un tamaño mayor de 1 Tbyte.
responde “Ninguna”. E) La IDT es la tabla descriptores de interrupción en la arqui-
tectura IA-32, la cual se ubica en el espacio de direcciones
var_local = 1 / var_local. Se trata de una instrucción que trata de lineales a partir de la dirección 0000 0000h.
llevar a cabo una división por cero.
A, B, C y D
cli. Es una instrucción ensamblador que sólo puede ejecutar el sis-
tema operativo.
o 21. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
printf(). Trata de acceder a una dirección ubicada en los 2 Gbytes
TAS. Contesta “Ninguna” si crees que ninguna lo es.
más altos del E.D. virtuales, accesibles sólo por el sistema opera-
tivo. A) Implementando un modelo de memoria plano en la arquitec-
tura IA-32, la protección de la memoria es proporcionada por
el mecanismo de segmentación.
B) Empleando el modelo de memoria plano, las direcciones vir-
o 18. En las situaciones que se describen a continuación se produce tuales que llegan al sistema de paginación coinciden con los
la transferencia del control al Sistema Operativo. desplazamientos de las direcciones segmentadas.
C) Las CPUs IA-32 llevan a cabo una conmutación automática
— ¿A cuál de los tres tipos posibles de transferencia de control al de la pila de usuario a la de supervisor cuando se transfiere el
Sistema Operativo corresponde cada una de las situaciones? control al sistema operativo.
D) En las CPUs modernas todas las tareas pueden acceder a cual-
Fallo de página → Excepción.
quier posición de memoria sin restricciones.
Lectura de un fichero → Llamada a servicio del S.O. E) En la arquitectura IA-32 el mecanismo de segmentación pue-
de desactivarse mediante un bit de un registro de control.
Pulsación de una tecla → Interrupción.
ByC
División por cero → Excepción.

Clic del ratón → Interrupción.

Ejecución en modo traza → Excepción.

o 19. Indica cuál o cuáles de las siguientes afirmaciones son CIER-


TAS. Contesta “Ninguna” si crees que ninguna lo es.

A) La técnica de segmentación consiste en dividir la ejecución


de instrucciones en etapas pero las etapas no es necesario que
trabajen en paralelo.

6
Ingeniería de Computadores Soluciones de los ejercicios del tema 2

o 22. Indica cuál o cuáles de las siguientes afirmaciones son CIER- o 25. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
TAS. Contesta “Ninguna” si crees que ninguna lo es. TAS. Contesta “Ninguna” si crees que ninguna lo es.

A) El valor del campo IOPL en la arquitectura IA-32, establece A) En la arquitectura IA-32 el modelo de memoria plano consiste
el privilegio de acceso al espacio de direcciones de E/S. en que todas las tareas comparten el rango de 4GB del espacio
B) En el modelo de memoria de la arquitectura IA-32, se pue- de memoria física.
de utilizar tanto segmentación, como paginación, si bien ésta B) En el modelo de memoria de la arquitectura IA-32 se puede
última se puede desactivar. utilizar tanto segmentación como paginación, si bien esta úl-
C) En la arquitectura IA-32, el modelo de memoria plano con- tima se puede desactivar.
siste en que todas las tareas comparten el rango de 4GB del C) La IDT, en la arquitectura IA-32, es una tabla de descriptores
espacio de memoria física. de segmento especiales que comienza en la dirección indicada
D) La IDT, en la arquitectura IA-32, es una tabla de descriptores en el registro IDTR.
de segmento especiales que comienza en la dirección indicada D) El valor del campo IOPL en la arquitectura IA-32 establece el
en el registro IDTR. privilegio necesario para acceder al espacio de direcciones de
E) El descriptor de segmento, en la arquitectura IA-32, sirve para E/S.
obtener el desplazamiento de la dirección virtual al que pre- E) El descriptor de segmento, en la arquitectura IA-32, sirve para
tende acceder la CPU. obtener el desplazamiento de la dirección virtual al que pre-
tende acceder la CPU.
A, B y D
B, C y D

o 23. Una de las siguientes afirmaciones sobre la CPU es FALSA.


Indica cuál es y por qué. o 26. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
TAS. Contesta “Ninguna” si crees que ninguna lo es.
A) Cuando se realiza la transferencia de control en un S.O. multi-
tarea, guardar el registro de estado y el contador de programa A) La protección de memoria usando el modelo de memoria
en la pila de la tarea en ejecución puede llegar a provocar un plano se consigue mediante la paginación.
mal funcionamiento del sistema. B) Empleando el modelo de memoria plano la dirección física
B) El modelo de memoria plano evita que el programador tenga del operando de memoria de la instrucción MOV EAX, [ECX]
que manejar registros de segmento. coincide con el valor de ECX.
C) Las CPUs IA-32 en modo protegido sitúan la tabla de vectores C) Dependiendo del tipo de acceso a memoria (datos, pila o có-
de interrupción en el primer KB de la memoria física. digo), se emplean diferentes registros segmento por defecto.
D) En las CPUs IA-32 cada tarea puede utilizar dos tablas de des- D) Los servicios en la arquitectura IA-32 son llamados emplean-
criptores de segmento diferentes. do la instrucción INT.
E) El registro EFLAGS contiene un bit que permite deshabilitar
La C es falsa. En el modo protegido se utiliza la tabla IDT, apun- las interrupciones.
tada por el registro IDTR.
A, C, D y E

o 27. Indica cuál o cuáles de las siguientes afirmaciones son CIER-


TAS. Contesta “Ninguna” si crees que ninguna lo es.

A) La protección de memoria en Windows se lleva a cabo con la


segmentación.
B) Empleando el modelo de memoria plano en la arquitectura
o 24. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
IA-32, sólo hay dos niveles de privilegio disponibles.
TAS. Contesta “Ninguna” si crees que ninguna lo es.
C) Cuando una tarea llama a un servicio del sistema operativo se
A) En el caso de las CPUs modernas la mejora del rendimiento produce una excepción.
es un aspecto que no se tiene en cuenta. D) La llamada a los servicios nativos de Windows mejora la por-
B) Los primeros procesadores que implementaban la arquitectura tabilidad de las aplicaciones.
IA-32 no soportaban los S.O. multitarea. E) DOS es un sistema operativo que implementa mecanismos de
C) Las CPUs que gracias a la replicación de componentes son ca- protección.
paces de trabajar sobre varias instrucciones simultáneamente
reciben el nombre de superescalares. B
D) En las CPUs modernas todas las tareas pueden acceder a cual-
quier posición de memoria sin restricciones. o 28. Indica cuál o cuáles de las siguientes afirmaciones, referidas a
E) El establecimiento de niveles de privilegio permite el control la arquitectura AMD64, son CIERTAS. Contesta “Ninguna” si crees
de ejecución de instrucciones en las CPUs modernas. que ninguna lo es.

CyE A) La arquitectura AMD64 mantiene la compatibilidad con las


arquitecturas de 32 bits, a diferencia de la IA-64 representada
por el Itanium.
B) En el modo de funcionamiento largo existen los siguientes tres
submodos: Protegido, 8086 virtual y Real.

7
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores

C) El controlador de memoria está integrado en el procesador.


D) Aunque idealmente se podrían utilizar 64 líneas de direccio-
nes, en la práctica sólo se emplean 48, dando lugar a un espa-
cio de direcciones físicas de 256 Terabytes.
E) El número de registros de propósito general en esta arquitec-
tura se amplia también de 8 a 64.

A, C y D

S-ar putea să vă placă și