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

Post on 28-Jan-2016

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related