1 overview sistemas computacionales capítulo 1. 2 introducción un sistema operativo (so) explota...
TRANSCRIPT
1
Overview Sistemas Computacionales
Capítulo 1
2
Introducción• Un Sistema Operativo (SO) explota los recursos de hardware de uno o más
procesadores
• Provee un conjunto de servicios a los usuarios del sistema
• Administra la memoria secundaria y los dispositivos de I/O
• Elementos de hardware:– Procesadores
– Memoria principal
• Volátil
• Memoria real o memoria primaria
– Módulos de I/O
• Dispositivos de memoria secundaria
• Comunicaciones
• Terminales
– Bus del sistema
• Comunica procesadores, memoria y dispositivos de I/O
3
Componentes básicos de un sistema (Hw)
4
Registros del Procesador• Registros visibles al usuario
– Pueden ser referenciados por lenguaje de máquina y están disponibles a todos los programas
– Permite optimizar el uso de registros y minimizar referencias a memoria principal – Registros de datos, direcciones, índices, Segment pointer (SP), Stack pointer (SP)
• Registros de control y status– Usado por el procesador para controlar actividades del procesador– Usado por rutinas privilegiadas del SO para la ejecución de programas– Program counter (PC): contiene la dirección de la próxima instrucción– Instruction register (IR): almacena la instrución más reciente– Memory address register (MAR): contiene la dirección de memoria de donde se
debe leer o escribir– Memory buffer register (MBR): almacena temporalmente el dato de escritura o
lectura– I/O register, I/O buffer register– Códigos de condición
• PSW (program status word)
5
Ciclo básico de Instrucción/Ejecución• Dos pasos
– Fetch: el procesador lee la próxima instrucción de memoria• PC almacena la dirección de dicha instrucción
• PC es incrementado después de cada fetch
– Ejecución: el procesador ejecuta la instrucción
6
Registro de instrucción• La instrucción recuperada (fetched) es puesta en el IR • Categorias de instrucciones
– Transferencia de datos entre procesador y memoria – Transferencia de datos entre procesador y dispositivo de I/O– Procesamiento de datos; operaciones aritméticas o lógicas– Control; alteramiento de la secuencia de ejecución
7
Ejemplo de máquina hipotética
8
Ejemplo de ejecución de programa
9
Interrupciones• Interrumpen el ciclo normal (básico) del procesador
• Utilizados para mejorar la utilizacion del procesador; la mayoría de los dispositivos de I/O son mucho más lentos que el procesador
10
Ejemplo con y sin interrupciones
11
El manejador de interrupciones
• Programa que se encarga de servir la interrupción, por ejemplo determinar la naturaleza de la interrupción y ejecutar otras rutinas de servicio
• Generalmente es parte del SO
• Suspends the normal sequence of execution
12
Ciclo de ejecución con interrupciones
• Al final de un ciclo de ejecución, el procesador chequea si existen interrupciones pendientes
• Si no, continua con otro ciclo de ejecución
• Si sí, suspende la ejecución del programa actual y ejecuta el manejador de interrupciones
13
Diagrama de tiempo basado en espera pequeña
14
Diagrama de tiempo basado en espera larga
15
Procesamiento de interrupción simple
Todo el estado del proceso en ejecución debe guardarse antes de ejecutar el manejador de interrupciones
16
Changes in Memory and Registers for an Interrupt
17
Procesamiento de interrupciones múltiples• Deshabilitar procesamiento de interrupciones mientras se atiende a
unainterrupción– Fácil, y simple
– Las interrupciones se sirven secuencialmente en el orden de llegada
– No considera operaciones críticas o con prioridades
18
Procesamiento de interrupciones múltiples• Define prioridades para las interrupciones
• Así, una interrupción de más alta prioridad puede interrumpir la ejecución de una interrupción de prioridad más baja
19
Ejemplo interrupciones con prioridades
20
Interrupciones y multiprogramación• Procesador tiene más de un programa para ejecutar • Los programas pueden ser ejecutados dependiendo de sus prioridades relativas
y dependiendo de si están o no esperando por una operación de I/O• En el caso de las interrupciones, después que el manejador de interrupciones ha
terminado, el control puede regresar a un programa distinto al que se estaba ejecutando al momento de la interrupción
21
Jerarquía de memoria
• Acceso más veloz, memoria más cara
• Mayor capacidad, memoria más barata
• Mayor capacidad, velocidad de acceso menor
• Mayor capacidad, menor frecuencia de acceso a la memoria por el procesador
• Ejemplo: Dos niveles de memoria– Nivel 1: 1000 bytes, tiempo acceso T1=0.1 us
– Nivel 2: 100000 bytes, tiempo acceso T2=1.0 us
– H: tasa de hit nivel 1
0 1Tie
mpo
pro
med
io d
e ac
ceso
T1
T2
T1+T2
Tasa de hit
Suponga H=0.95Tp= 0.95x0.1+0.05x(0.1+1.0)=0.15us
22
Memoria Cache• Motivación:
– Cada ciclo de instrucción involucra al menos un acceso a memoria. ¿Por qué?
– La velocidad del procesador siempre es mucho más veloz que el de la memoria (ciclo de memoria)
• Memoria cache es una memoria pequeña de alta velocidad ubicada (conceptualmente) entre el procesador y la memoria principal
• Invisible al SO
• Explota el principio de localidad
23
Principios de la memoria cache• Contiene una copia de una porción de memoria principal
• Cuando se necesita leer un byte (o puede ser una palabra) de memoria, primero se chequea la memoria cache
• Si no está ahí, se trae el bloque de datos que contiene el byte de memoria principal a la cache y luego al procesador
• Por el principio de localidad, es muy probable que las próximas referencias a memoria se satisfagan con el bloque recién traído de memoria principal
Organización memoria cache-memoria principal
25
Operación de lectura con memoria cache
26
Diseño de memoria cache• Tamaño de la cache
– Cache pequeñas proveen impacto significativo sobre el performance
• Tamaño del bloque (línea)– El bloque (o línea) es la unidad de datos intercambiada entre memoria principal y la
cache– Inicialmente, a medida que el tamaño del bloque crece, la tasa de hit aumentará– Si sigue aumentando, la probabilidad de usar los datos nuevos será menor a la
probabilidad de usar los datos que fueron sacados de la cache justamente para traer los nuevos
• Función de mapeo– Determina en que posición de la cache se almacena el bloque
• Algoritmo de reemplazo– Cuando todos los bloques están ocupados, ¿cuál de ellos puedo usar para traer un
nuevo bloque?
• Política de escritura– Determina cuándo debe ser escrito a memoria principal un bloque que ha sido
modificado• Write-back• Write-through
27
Técnicas de comunicación de I/O
• I/O Programado– Un módulo de I/O realiza la operación, pero no
interrumpe al procesador cuando la operación ha terminado
– Setea los bits apropiados en el registro de status de I/O
– El procesador debe chequear periódicamente el status del módulo de I/O
28
Técnicas de comunicación de I/O• I/O manejado por interrupciones
– El procesador guarda el context del programa en ejecución y transfiere el control al manejador de interrupciones
– El procesador es interrumpido cuando el módulo de I/O está listo para transferir los datos
– Consume mucho tiempo, por que cada palabra leída o escrita debe pasar por el procesador
29
Técnicas de comunicación de I/O• Acceso directo a memoria (DMA)
– Transfiere un bloque de datos directamente desde o hacia memoria
– El procesador es interrumpido sólo al final de la transferencia
– Mientras tanto, el procesador ejecuta otros programas
– Sin embargo, el procesador y el módulo de DMA compiten por el bus del sistema