1 overview sistemas computacionales capítulo 1. 2 introducción un sistema operativo (so) explota...

29
1 Overview Sistemas Computacionales Capítulo 1

Upload: maximino-victorino

Post on 28-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

1

Overview Sistemas Computacionales

Capítulo 1

Page 2: 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

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

Page 3: 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

3

Componentes básicos de un sistema (Hw)

Page 4: 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

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)

Page 5: 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

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

Page 6: 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

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

Page 7: 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

7

Ejemplo de máquina hipotética

Page 8: 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

8

Ejemplo de ejecución de programa

Page 9: 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

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

Page 10: 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

10

Ejemplo con y sin interrupciones

Page 11: 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

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

Page 12: 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

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

Page 13: 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

13

Diagrama de tiempo basado en espera pequeña

Page 14: 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

14

Diagrama de tiempo basado en espera larga

Page 15: 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

15

Procesamiento de interrupción simple

Todo el estado del proceso en ejecución debe guardarse antes de ejecutar el manejador de interrupciones

Page 16: 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

16

Changes in Memory and Registers for an Interrupt

Page 17: 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

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

Page 18: 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

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

Page 19: 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

19

Ejemplo interrupciones con prioridades

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

Organización memoria cache-memoria principal

Page 25: 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

25

Operación de lectura con memoria cache

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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

Page 29: 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

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