Presentación contribuciones socioeconómicas del SUPV 2023
Curso Sistemas Operativos - Unidad Arquitectura del Computador
1. ARQUITECTURA DEL
COMPUTADOR
Juan Rafael Álvarez Correa
jalvarez at debian dot org
1
2. CAPITULOS
■ 0 – Arquitectura del computador
■ 1 – Introducción a los sistemas operativos
■ 2 – Procesos e hilos
■ 3 – Comunicación, concurrencia y bloqueos
■ 4 – Gestión de memoria
■ 5 – Entrada y salida
■ 6 – Gestión de archivos y directorios
■ 7 – Seguridad y protección
■ 8 – Sistemas distribuidos
2
3. CONTENIDO
■ Arquitecturas de computador
Von Neumann - Arquitectura Harvard
■ Bus
■ CPU
ALU, CU, FPU, Registros, ISA, Ciclo Fetch-Execute
■ Memoria
Interfaz de acceso, Jerarquia, Cache
■ Entrada y salida (Dispositivos)
Interfaz de acceso, Estrategias de I/O
■ Protección por hardware
Modo dual, I/O, Memoria, CPU 3
4. ANTES
■ Los dispositivos “electronicos” eran
diseñados para un proposito especifico
Para resolver el problema de la suma, se
diseñaban dispositivos para sumar
Este dispositivo no podia ser utilizado para otros
fines: resta, multiplicación, división
La corrección de errores en estos dispositivos se
realizaba mediante el rediseño de los mismos
4
5. ARQUITECTURA VON NEUMANN
■ Especifica el diseño de un dispositivo de
proposito general (problemas diferentes)
■ Introduce el concepto de programa
almacenado
■ Componentes
Memoria (utilizada para datos y codigo)
CPU = ALU + CU
➔ Instruction Set Architecture
Dispositivos: Entrada, salida, almacenamiento y
comunicación
Bus: Datos, control y direcciones 5
6. ARQUITECTURA VON NEUMANN
■ Ventajas y desventajas
Permite codigo automodificable
Arquitectura electronica “facil” de diseñar
Instrucciones y datos recuperados de forma
secuencial (Von Neumann Bottleneck)
Tomado de Universidad
de Canterbury
6
7. ARQUITECTURA HARVARD
■ Componentes
Memoria de datos
Buses de datos, control y direcciones para la
memoria de datos
Memoria de instrucciones
Buses de datos (instrucciones), control y
direcciones para la memoria de instrucciones
CPU = ALU + CU
7
8. ARQUITECTURA HARVARD
■ Ventajas y desventajas
Facilita la realización del pipelining
➔ Completación de la instruccion actual (operadores)
➔ Recuperación de la siguiente instrucción
Tomado de Universidad
de Canterbury 8
9. APLICACION DE ARQUITECTURAS
■ Arquitectura Von Neumann
Computadores actuales en el acceso de la CPU
a la memoria principal (RAM)
■ Arquitectura Harvard
Computadores actuales en el acceso de la CPU
a la memoria cache (dentro del procesador)
➔ Existen caches separados de instrucciones y datos
Microcontroladores
➔ PIC de Microchip
9
10. CPU: UNIDADES
■ CU: Unidad de Control
Unidad de obtención
Unidad de decodificación
Unidad funcional
➔ Selecciona y dirige el componente adecuado de la
ALU para el procesamiento
■ ALU: Unidad Aritmetico Logica
Realiza operaciones aritmeticas (+, -, *, /)
Realiza operaciones logicas (&&, ||, !)
■ FPU: Unidad de punto flotante
10
11. CPU: REGISTROS
■ Architectural registers (Arquitectonicos)
Registros de proposito general
➔ Registros de datos -enteros- (EAX, EBX, ECX, EDX)
➔ Registros de dirección (ESI, EDI, ESP, EBP)
➔ Registros de punto flotante (ST0 - ST7)
➔ Registros constantes (MIPS $0 – Motorola 88100 r0)
➔ Registros vectoriales (MMX0 - MMX7, SSE?, SSE2?)
Registros de proposito especifico
➔ Registros de segmento (CS, DS, SS, ES, FS, GS)
➔ Registro de estado (EFLAGS)
➔ Registro de puntero a instrucción (EIP -PC-)
11
12. CPU: REGISTROS
■ Non-Architectural Registers a.k.a
■ Machine/Model Specific Registers (MSR)
MAR: Memory Address Register
MDA: Memory Data Register
IR: Instruction Register (!= EIP)
IA32_BIOS_UPDT_TRIG (Actualizar microcodigo)
MSR_BPU_COUNTER0 (Registro de conteo)
➔ INSTRUCTIONS_EXECUTED (Evento de conteo)
■ Acceso y modificación de los MSR
Ver RDMSR y WRMSR
12
13. BUS
■ Jerarquia de bus (Cercania a la CPU)
Back Side Bus: CPU <-> Cache L2
Front Side Bus: CPU <-> Northbridge
Local bus: Southbridge <-> Controlador
External bus: Controlador <-> Dispositivo
■ Diseño
Seriales: Un unico hilo
Paralelos: Multiples hilos electricos
■ Información que transporta
Control – Datos - Direcciones
13
15. BUS
■ Front Side Bus
EV6 (Athlon y Alpha), GTL+/AGTL+ (Intel)
■ Internal bus – Paralelos
ISA, EISA, VESA, MCA, PCI, AGP
■ Internal bus – Seriales
PCI Express (PCIe), I2C, HyperTransport
■ External bus – Paralelos
ATA (aka IDE, EIDE, ATAPI), SCSI, PCMCIA
■ External bus – Seriales
SATA, USB, IEEE 1394 (FireWire)
15
16. INSTRUCTION SET ARCHITECTURE
■ Aspectos de la arquitectura visibles al
programador
Instrucciones
Registros
Modos de direccionamiento
Arquitectura de memoria
Manejo de interrupciones y excepciones
■ Tiene un conjunto de codigos de operación
que representan las instrucciones que
puede procesar la CPU
Cada opcode tiene asociado un mnemonico
16
17. INSTRUCTION SET ARCHITECTURE
■ Segun la complejidad de las instrucciones:
CISC: Complex Instruction Set Computer
➔ Sin compiladores, las instrucciones hacen demasiado
➔ Instrucciones complejas implican programas pequeños
➔ Ejecución en mas de un ciclo de reloj
➔ Menos operaciones de fetch a memoria
➔ Alta sobrecarga en el proceso de decodificación
➔ Diseño altamente complejo
17
18. INSTRUCTION SET ARCHITECTURE
■ Segun la complejidad de las instrucciones:
RISC: Reduced Instruction Set Computer
➔ Instrucciones pequeñas implican programas grandes
➔ Ejecución en un ciclo de reloj
➔ Compiladores no usan frecuentemente instrucciones
complejas
➔ Instrucciones complejas tienden a ser mas lentas que
instrucciones pequeñas que hacen lo mismo (INDEX)
➔ Para el diseñador de un procesador es dificil optimizar
todas las instrucciones de una ISA
➔ 98% de las constantes de un programa caben en 13b.
➔ Menos modos de direccionamiento, solo load-store.
18
19. INSTRUCTION SET ARCHITECTURE
■ Segun la tecnica de implementación
“Cablear” la ISA en un circuito integrado
➔ Mayor rapidez al estar implementado en hardware
➔ El diseño y las modificaciones son complejas
Microprogramar la ISA (CISC~=RISC) [SIMH]
➔ Cada macroinstrucción (mnemonico y opcode -CISC-)
se encuentra implementada con microinstrucciones
almacenadas en el Control Store.
➔ Las microinstrucciones -RISC- son cableadas en el CI
➔ Los procesadores son faciles de diseñar
➔ Se logra mayor flexibilidad
➔ Ejemplo de microasemblers: Meta29, Micro2, MIC1
19
20. INSTRUCTION SET ARCHITECTURE
■ Problemas que pudieron ser solucionados
rapidamente con ISAs microprogramadas
f00f bug en Intel Pentium (0xf00fc7c8)
cmpxchg8b {64bits} -> cmpxchg8b %eax
cmpxchg8b %eax
➔
➔ Compara el ECX+EBX con el operador si iguales
cargar en el operador, si diferentes cargar en registros
FDIV bug en Intel Pentium
➔ La división de punto flotante no funcionaba
adecuadamente con ciertos operadores
20
21. INSTRUCTION SET ARCHITECTURE
■ Implementaciones concretas de ISA
x86 Varios CISC
IA-64 Intel CISC
68k Motorola CISC
Alpha DEC RISC
SPARC Sun RISC
PowerPC Apple-IBM-Motorola RISC
MIPS MIPS RISC
ARM ARM Ltd RISC
TIMI over SLIC IBM
Java Virtual Machine Sun 21
22. INSTRUCTION SET ARCHITECTURE
// a = b + c
■ load r3, b
■ load r4, c
■ add r3, r4
■ store r3, a
// d = a - 100
■ load r4, =100
■ subs r3, r4
■ store r3, d
Tomado de Sistemas Operativos de Gary Nutt 22
23. HISTORIA DE UN PROGRAMA
■ Compilador
Entrada: Lenguaje de alto nivel (codigo fuente)
Salida: Lenguaje ensamblador (mnemonicos)
■ Ensamblador
Entrada: Lenguaje ensamblador (mnemonicos)
Salida: Codigo binario (codigos de operación)
■ Microprograma
Entrada: Codigo binario (codigos de operación)
Salida: Control fisico de las señales (HW)
23
24. SINTAXIS DE ASM PARA X86
■ Intel
Prefijos mov eax,1
Dirección de operandos mov dest,fuente
Operandos de memoria mov eax,[ebx+3]
Sufijos mov al,bl
■ AT&T
Prefijos movl %eax,$1
Dirección de operandos movl fuente,dest
Operandos de memoria movl 3(%ebx),%eax
Sufijos movb %bl,%al
24
25. CPU: CICLO LECTURA-EJECUCIÓN
PC = <dirección inicio maquina>;
indicadorParada = limpiar;
while (indicadorParada no activado)
{
IR = memoria [PC];
PC = PC + 1;
ejecutar (IR);
}
Tomado de Sistemas Operativos de Gary Nutt
25
26. MEMORIA
■ Interfaz de memoria
MAR: Memory Address Register
MDR: Memory Data Register
CMD: Command Register
■ Alineación
Restricción de la dirección de memoria que
puede tener un objeto en la misma
➔ Un objeto debe estar alojado en una dirección
multiplo de su tamaño
➔ byte (8), word (16), doubleword (32), quadword (64)
➔ Restricciones del bus de direcciones
- Cada byte de una palabra se almacena en un banco de
memoria diferente (bus tiene realmente 2 bits menos)
26
27. MEMORIA
■ Jerarquia de memoria
Registros 1 ciclo de reloj
Cache (L1, L2) 1,10 ciclos de reloj
Memoria principal (RAM) 100 ciclos de reloj
Almacenamiento en disco 10000 ciclos de reloj
■ Arriba en la jerarquia de memoria
+ velocidad (+ frecuencia de uso), - capacidad
■ Abajo en la jerarquia de memoria
- velocidad (- frecuencia de uso), + capacidad
27
28. PROXIMIDAD REFERENCIAL
■ Todos los datos de un programa no tienen
la misma probabilidad de ser accedidos
■ Tipos
Proximidad temporal (Cache)
➔ Si un dato es accedido, existe una alta probabilidad
de que este sea accedido de nuevo en el futuro
➔ Replacement Policy = Least Recent Used (LRU)
- El mas viejo
Proximidad espacial (Cache line)
➔ Si un dato es accedido, existe una alta probabilidad
de que los datos cercanos sean accedidos en el
futuro 28
29. PROXIMIDAD REFERENCIAL
■ Proximidad temporal
Los ciclos hacen que las instrucciones vuelvan a
ser utilizadas
El uso de variables de forma repetitiva
La invocación de subrutinas de forma reiterada
■ Proximidad espacial
Los programas son secuenciales a excepción de
los saltos.
Las estructuras de datos son generalmente
consecutivas en memoria.
29
30. CACHE: ACTORES
■ Backing storage
Puede ser la memoria prinicipal u otro cache
■ Cache
Memoria de alta velocidad que busca disminuir
el efecto del memory bound
➔ Cache hit: Hit rate/ratio
➔ Cache miss: Miss rate/ratio
■ Cliente del cache
Puede ser la CPU u otro cache
30
31. CACHE: COMPONENTES
■ Index
■ Tag
■ Cache line (Proximidad espacial)
Xeon 512bits = Bus de datos 64bits x 8 lecturas
Tomado de Wikipedia
31
32. CPU: CICLO LECTURA DE CACHE
recibir dirección de memoria de la CPU
if (dirección esta en el cache) {
referenciar el byte en el cache line
}
else {
traer de memoria el bloque que lo contiene
ubicar un cache line para el bloque
referenciar el byte en el cache line
}
entregar el byte a la CPU 32
33. CACHE: POLITICA DE UBICACIÓN
■ Direct mapped
Cada bloque de memoria solo puede estar en
una posición especifica del cache
➔ (Dirección del bloque) % (# de cache lines del cache)
■ Fully associative
Cada bloque de memoria puede estar en
cualquier posición del cache
■ Set associative
Cada bloque de memoria solo puede estar en un
conjunto especifico de posiciones del cache
➔ (Dirección del bloque) % (# de conjuntos en el cache)
33
34. CACHE: POLITICA DE UBICACIÓN
■ En un cache set associative, una vez ha
sido seleccionado la posición se puede
ubicar en cualquier posición del conjunto
■ Un cache direct mapped es un cache set
associative con conjuntos de tamaño 1
Cache direct cache = 1-way set associative
■ Un cache fully associative es un cache set
associative con 1 solo conjunto
Fully associative = m-way set associative
34
36. CACHE: POLITICA DE REMPLAZO
■ Criterio que indica cual cache line de un
cache set associative con n>1 debe
remplazarse
■ Aleatoria
Ignora la proximidad referecial (temporal)
■ LRU: Least Recent Used (Proximidad tempo)
■ LFU: Least Frecuently Used
Consideran la proximidad referencial (temporal)
■ ARC: Adaptive Replacement Cache
Inventado por IBM en el 2003 combina LRU y LFU
36
37. CACHE: POLITICA DE ESCRITURA
■ En un write hit
Write through: Cache y memoria-backing storage
➔ Los datos son consistentes entre ambos
➔ Perdida de velocidad durante la escritura
➔ Facil implementación
Write back: Cache y a memoria solo remplazo
➔ Multiples escrituras son una sola escritura a memoria
➔ Es necesario marcar los cache lines con el flag dirty
➔ Mayor velocidad
➔ Dificil de implementar
➔ Inconsistencia entre la memoria y el cache
37
38. CACHE: POLITICA DE ESCRITURA
■ En un write miss
Write allocate
➔ El bloque es ubicado en un cache line para luego ser
modificado
➔ Utilizado con la politica de write back, esperando que
las modificaciones siguientes queden en el cache
No write allocate
➔ La modificación ocurre en memoria sin ingresar el
nuevo valor en el cache
➔ Utilizado con la politica de write through, ya que de
igual forma igual forma la modificación ocurrira en
memoria
38
39. CACHE: COHERENCIA
■ Si un cache write-back tiene un cache-line
sucio y un DMA desea acceder esos datos,
el cache proporciona esa información en
vez de la memoria. Si no esta sucio es
marcado como invalido.
■ Mecanismos
Snooping: Leer el bus de direcciones
Snarfing: Leer el bus de direcciones y datos
■ Protocolos de coherencia de cache
MSI, MOSI, MESI, MOESI
Modified, Owned, Exclusive, Shared, Invalid
39
40. CACHE: COHERENCIA
■ Modified
Cache line incosistente y unica copia
■ Owned
Cache line consistente, multiples copias y con
derecho a actualizar las demas copias
■ Exclusive
Cache line consistente y unica copia
■ Shared
Cache line consistente y multiples copias
■ Invalid
Cache line invalida (stale) 40
41. CACHE: MULTINIVEL
■ Caches inclusivos (Intel)
Cache L[X+1] contiene L[X]
➔ L1=32KB, L2=512KB, L3=4MB == 4MB
➔ Solo el cache mas lento hace snoop. Luego se
sincronizan los demas caches. (Coherencia simple)
➔ Los accesos de coherencia acceden al cache de
mayor nivel que esta menos ocupado por la CPU que
el de menor nivel.
■ Caches exclusivos (AMD)
Cache L[X+1] no contiene L[X]
➔ L1=32KB, L2=512KB, L3=4MB == 4.53MB
➔ Todos los niveles deben hacer snoop
41
43. DISPOSITIVOS: DIRECCIONAMIENTO
■ MMIO: Memory Mapped I/O
En el espacio de direcciones de memoria esta
direccionada la memoria de los dispositivos
Se usan las mismas instrucciones de acceso a
memoria para acceder a la memoria de los disp.
➔ Se simplifica el diseño de la ISA
■ PMIO: Port Mapped I/O
Existe un espacio de direcciones separado para
la memoria y para los dispositivos (I/O port)
Se requieren instrucciones diferentes de la ISA
para acceder este espacio de direcciones
➔ Toda la memoria esta disponible 43
44. DISPOSITIVOS: DIRECCIONAMIENTO
■ MMIO: Memory Mapped I/O
Instrucciones en x86
➔ movb / movw / movd / cpuid
➔ Serialización de instrucciones (no especulación)
■ PMIO: Port Mapped I/O
Instrucciones de I/O en x86 ISA
➔ insb / insw / insd
➔ outb / outw / outd
Espacio de direcciones de I/O en x86 ISA
➔ 16 bits direccionables por bytes
➔ 65536 bytes
44
46. DISPOSITIVOS: INTERFAZ
■ Registro de estado [ocupado][hecho][error]
Ocioso [ 0 ][ 0 ]
➔ Se pueden colocar ordenes en el registro de ordenes
➔ Se han leido datos de los registros de datos
Finalizado [ 0 ][ 1 ]
➔ Se ha completado una operación de I/O
Trabajando [ 1 ][ 0 ]
➔ Se ha dado una orden
➔ Se ha iniciado la operación y aun no ha terminado
No definido [ 1 ][ 1 ]
46
47. DISPOSITIVOS: POLLING-(SONDEO)
¿Como saber que la operación termino?
■ Polling
La CPU lee permanentemente el registro de
estado de la memoria del dispositivo, para
determinar que el trabajo ha finalizado (espera-
activa o busy-wait)
➔ ocupado = 0 y hecho = 1
■ Desventajas
Sin DMA la CPU estaba ocupada transfiriendo
datos
Con polling la CPU esta ocupada verificando si
una operación termino
47
48. INTERRUPCIONES Y EXCEPCIONES
■ Eventos que indican que una condición
existe en el sistema y requiere atención del
procesador
■ Ventajas
Elimina las esperas activas
Permite utilizar la CPU para otras labores
■ El ciclo de lectura ejecución debe ser
modificado para verificar la existencia de
interrupciones
48
49. INTERRUPCIONES (RECIBIDAS)
■ Generadas por hardware externo a la CPU.
Se “reciben” y son asincronicas.
■ Tipos de interrupciones
Maskable Hardware Interrupt (IF en EFLAGS)
➔ Pin INTR (En x86)
➔ Operaciones de I/O finalizadas
Non-Maskable Interrupt
➔ Pin NMI (En x86)
➔ Errores irrecuperables (paridad en la RAM)
■ Origen
Hardware externo a la CPU
49
50. EXCEPCIONES (DETECTADAS)
■ Tipos de excepciones
Faults: Posiblemente recuperable (Page fault)
➔ Se ejecuta de nuevo la instrucción generadora
Traps: Depuración (EFLAGS – Trap Flag – Bit 8)
➔ Se continua ejecutando la siguiente instrucción
Aborts: Double fault excepcion (8)
➔ No se puede continuar con la ejecución
■ Origen de la excepción
Detectadas por el procesador
Programadas (INT, INTO)
Verificaciones de maquina 50
51. CICLO CON INTERRUPCION (HW)
... (igual que en el ciclo básico de la CPU)
while (indicadorParada no activado) {
IR = memoria [PC];
PC = PC + 1;
ejecutar (IR);
if (solicitudInterrupción activado) {
memoria [x] = PC;
PC = memoria [y];
}
}
Tomado de Sistemas Operativos de Gary Nutt
51
52. INTERRUPT SERVICE ROUTINE (SW)
■ Interrupt Service Routine o Interrupt Handler
FLIH: First Level Interrupt Handler
➔ Almacenar el estado del procesador (en control stack)
➔ Deshabilitar interrupciones iguales (evitar race
condition) o de menor prioridad (no expropiación)
➔ Almacenar la información solo disponible durante la
interrupción
➔ Planificar el manejo de la interrupción SLIH
➔ Restaurar el estado del procesador (en control stack)
➔ Retornar el control (x86 = IRET)
SLIH: Second Level Interrupt Handler
➔ Manejar la interrupción de forma planificada
52
53. VECTOR DE INTERRUPCIONES
■ Vector en la memoria que contiene las
direcciones de memoria donde se alojan los
FLIH de cada interrupción o excepción
■ El numero de la interrupción es el indice o
desplazamiento en el vector
■ Ubicación del vector de interrupciones
En x86 es indicado por el registro IDTR
Durante la inicialización de un x86 es = a la
dirección de memoria fisica 0x00000000
En Linux el vector de interrupciones se mueve a
otra posición de memoria (remplaza el del BIOS)
53
54. DISPOSITIVOS: PIC
■ Programmable Interrupt Controller
Dispositivo normalmente alojado en el
southbridge (x86 = Intel 8259A x 2)
Canaliza las interrupciones a una unica linea de
interrupción al procesador (x86 = INTR)
Encola interrupciones de menor prioridad o
iguales a la atendida actualmente por el FLIH
Se gestiona como un dispositivo, pues tiene I/O
(0x20-0x21) ports para recuperar la interrupcion
➔ Indicar cual fue la interrupción que ocurrio
➔ Indicar que ya fue manejada la interrupción
➔ Deshabilitar especificamente alguna interrupción
54
55. DISPOSITIVOS: CICLO I/O
■ Ciclo de I/O a memoria (I/O-to-memory)
load R2, =LONGITUD
ciclo: load R1, [memoria_cont, R2]
store R1, [memoria_ppal, R2]
dec R2
jnz ciclo
55
56. DISPOSITIVOS: DMA
■ Direct Memory Access
Evita que la CPU pierda tiempo realizando
escrituras entre los dispositivos y la memoria
Normalmente incluido en el Southbridge
Es un dispositivo (Intel 8237 / 82374)
➔ Controlador DMA 1 (4) canales: I/O ports 0x00–0x1f
➔ Controlador DMA 2 (4) canales: I/O ports 0xc0–0xdf
Interfaz para cada canal (programado x driver)
➔ Registro de orden (dirección de la transferencia)
➔ Registro de dirección de memoria principal (src o dst)
➔ Registro contador (cantidad de bytes a transferir)
56
58. FUNCIONAMIENTO DE DMA
■ Controlador solicita DMA: DRQ#=1
■ 8237 solicita el bus a la CPU: HQR=1
■ La CPU libera el bus: HLDA=1
■ El 8237 señala lo siguiente:
Bus direcciones = Direccion memoria principal
MEMW=1, MEMR=0, IOR=1, IOW=0
DMA confirma al controlador: ACK#=1
■ Controlador pone datos en el bus de datos
El I/O port origen esta cableado en el controlador
■ Si la transferencia termina: DRQ#=0
58
59. INSTRUCCIONES DE I/O
■ Categorias
Instrucciones de control
➔ Indican a un dispositivos las funciones que debe
realizar
Instrucciones de estado
➔ Verifica las condiciones de estado de un controlador
de dispositivo
Instrucciones de transferencia
➔ Leen o escriben los datos entre la memoria del
dispositivo y la memoria principal o los registros
59
60. ESTRATEGIAS DE ENTRADA/SALIDA
■ ¿La CPU es responsable de ...?
Estado: Determinar si la operación de E/S
finalizo
Transferencia: Transferir datos de la memoria
del dispositivo a la memoria principal
■ Tipos
I/O Directa con sondeo
I/O Por DMA con sondeo
➔ No aplica. Si tiene DMA debe tener interrupciones.
I/O Directa con interrupciones
I/O Por DMA con interrupciones
60
61. PROTECCIÓN POR HARDWARE
■ Otorgar mayores o menores privilegios de
acceso a recursos criticos a partir de la
confiabilidad del software
Sistema operativo
➔ Solo el sistema operativo esta habilitado para
realizar las operaciones criticas
Aplicaciones
➔ Las aplicaciones no deben modificar el sistema
operativo
➔ Las aplicaciones deben permitir que otras
aplicaciones se ejecuten
61
62. ANILLOS DE PROTECCIÓN
■ aka Niveles de privilegio
■ Nivel 0 (Software + critico + confiable)
Kernel mode (Kernel)
Mas privilegios de acceso
➔ Acceder a memoria de todos los anillos de protección
➔ Ejecutar todas las instrucciones de la ISA
■ Nivel 3 (Software – critico – confiable)
User mode (Aplicaciones)
Menos privilegios de acceso
62
63. PROTECCIÓN
■ Protección de I/O
Las instrucciones de entrada y salida son
instrucciones privilegiadas
■ Protección de memoria
Las aplicaciones no deben modificar ni código ni
estructuras de datos del sistema operativo
➔ Vector de interrupciones
➔ Interrupt Service Routines
■ Protección de CPU
Interrupciones (0) generadas periodicamente de
forma programada. PIT = Dispositivo 8253/4
63