Download Transparencias

Document related concepts

Interrupción wikipedia , lookup

RTAI wikipedia , lookup

Sistema operativo wikipedia , lookup

Proceso (informática) wikipedia , lookup

Ataque de arranque en frío wikipedia , lookup

Transcript
Sistema Operativo
Repaso de Estructura de
Computadores
Capítulo 1
Elementos Básicos
• Procesador
• Memoria Principal
– referida como memoria real o memoria primaria
– volátil
• Módulos de entrada/salida (I/O)
– dispositivos de memoria secundaria
– equipos de comunicación
– terminales
• Bus del sistema
– comunicación entre procesos, memoria, y módulos
de entrada/salida
• Explota los recursos hardware de uno o
más procesadores
• Proporciona un conjunto de servicios a
los usuarios del sistema
• Gestiona la memoria secundaria y los
dispositivos de entrada/salida (I/O)
Componentes Hardware
Registros del Procesador
• Registros visibles por el Usuario
– Permiten al programador minimizar las
referencias a la memoria principal mediante
la optimización del uso de registros
• Registros de Control y Estado
– Usados por el procesador para control de la
operatividad del propio procesador
– Usados por las rutinas del sistema operativo
para controlar la ejecución de los programas
Registros Visibles por el Usuario
• Registros de Dirección
– Índice (index)
• supone sumar un índice a un valor base para
obtener una dirección
– Puntero a Segmento (segment pointer)
• Cuando la memoria está dividida en segmentos,
la memoria se referencia por un segmento y un
desplazamiento (offset)
– Puntero a la Pila (stack pointer)
• apunta a la cima de la pila
Registros Visibles por el Usuario
• Pueden ser referenciados por el lenguaje
máquina
• Disponibles para todos los programas
(aplicaciones y programas del sistema)
• Tipos de registros
– Datos
– Dirección
• Índice (Index)
• Puntero a Segmento (Segment pointer)
• Puntero a la Pila (Stack pointer)
Registros de Control y Estado
• Contador del Programa (Program Counter:PC)
– Contiene la dirección de la instrucción que se requiere
• Registro del Instrucción (Instruction Register:IR)
– Contiene la última instrucción requerida
• Palabra de Estado (Program Status Word:PSW)
– Códigos de condición
– Habilitación/Inhibición de Interrupciones
– Modo Supervisor/usuario
Registros de Control y Estado
Ciclo de Instrucción
• Banderas o Códigos de Condición
– Conjuntos de Bits del hardware del
procesador como resultados de operaciones
– Pueden ser consultados por un programa
pero no alterados
– Ejemplos
•
•
•
•
resultado positivo
resultado negativo
cero
desbordamiento
Búsqueda y Ejecución de la
Instrucción
• El contador del programa (PC) tiene la
dirección de la instrucción a buscar.
• El procesador busca (fetch) la instrucción
en la memoria
• El Contador de Programa se incrementa
después de cada búsqueda
Registro de Instrucción
• Las instrucciones buscadas se cargan en el
registro de instrucción
• Tipos de instrucciones
– Procesador-memoria
• transfieren datos entre el procesador y la memoria
– Procesador-Entrada/Salida
• transfieren desde o hacia un dispositivo periférico
– Procesamiento de datos
• operaciones aritméticas o lógicas sobre datos
– Control
• alteran la secuencia de la ejecución
Ejemplo de Ejecución de un
Programa
Acceso Directo a Memoria (DMA)
• Los intercambios de entrada/salida se
realizan directamente con la memoria
• El procesador le otorga al módulo de
entrada/salida autoridad para leer y escribir
en la memoria
• Libera al procesador de la responsabilidad
del intercambio de datos
• El procesador queda libre para realizar
otras tareas
Interrupciones
• Una interrupción de la secuencia normal de
ejecución
• Mejora la eficiencia del procesamiento
• Permite al procesador ejecutar otras
instrucciones mientras una operación de
entrada/salida está en marcha
• Una suspensión del proceso causada por un
evento externo al proceso realizada de tal
manera que el proceso pueda ser reanudado
Tipos de Interrupciones
• Programa
–
–
–
–
rebosamiento aritmético
división por cero
ejecución de instrucción ilegal
referencia fuera del espacio de memoria del
usuario
• Temporizador (Timer)
• Entrada/salida (I/O)
• Fallo Hardware
Rutina de Tratamiento de la
Interrupción (RTI)
• Un programa que determina la
naturaleza de la interrupción y realiza la
acción que se necesite
• El control se transfiere a este programa
• Normalmente es una parte del sistema
operativo
• En inglés: interrupt handler
Ciclo de Interrupción
• El procesador comprueba las
interrupciones
• Si no hay peticiones, busca la siguiente
instrucción del programa de usuario
• Si hay una interrupción pendiente,
suspende la ejecución del programa y
ejecuta la RTI
Ciclo de Interrupción
Interrupciones Múltiples
• Deshabilitar las
interrupciones
mientras una
interrupción está en
proceso
– El procesador
ignora cualquier
nueva señal de
petición de
interrupción
Interrupciones Múltiples
Prioridades
• Las interrupciones de mayor prioridad:
– hacen esperar a las interrupciones de menor
prioridad
– interrumpen a las RTI de interrupciones de
menor prioridad
• p.e.: cuando llega un dato de una línea de
comunicación, éste debe ser absorbido
rápidamente para dejar sitio a más datos
Interrupciones Múltiples
Orden Secuencial
• Deshabilitar las interrupciones de manera
que el procesador pueda completar la tarea
• La interrupción queda pendiente hasta que el
procesador permite interrupciones
• Cuando acaba la rutina de tratamiento de la
interrupción (RTI), el procesador comprueba
si hay interrupciones pendientes
Multiprogramación
• El procesador tiene más de un programa que
ejecutar
• La secuencia de programas a ejecutar depende
de la prioridad relativa y de cuando éstos están
esperando una entrada/salida
• Después de finalizar una RTI, el control puede
que no se devuelva al programa que se estaba
ejecutando cuando se produjo la interrupción
Jerarquía de Memoria
Bajando a través de la jerarquía
•
•
•
•
Decremento del coste por bit
Incremento de la capacidad
Incremento del tiempo de acceso (latencia)
Decremento de la frecuencia de acceso por
parte del procesador
– localidad de referencia
Cache de disco
• Una porción de la memoria principal
usada como almacén temporal de datos
del disco
• Las escrituras al disco se agrupan
• Algunos datos escritos pueden ser leídos
otra vez. Los datos se recuperan más
rápidamente desde la cache software que
desde el disco
Memoria cache
• Invisible al sistema operativo
• Incrementa la velocidad de la memoria
• El procesador es más veloz que la memoria
Memoria Cache
Cache/Main Memory System
• Contiene una porción de la memoria
principal
• El procesador primero busca en la cache
• Si no se encuentra en cache, el bloque
que contiene la información buscada se
copia en la cache
Diseño Cache
• Tamaño de la cache
– incluso pequeñas caches tienen un impacto
significativo en el rendimiento
• Tamaño del bloque (línea cache)
– es la unidad de transferencia de ‘datos’ entre
la cache y la memoria principal
– Acierto significa que el dato está en la cache
– mayores bloques de cache dan lugar a más
aciertos, mientras la probabilidad de usar los
nuevos datos sea mayor que la probabilidad
de usar datos reemplazados de la cache
Diseño Cache
• Política de ubicación (mapping function)
– determina qué posición de cache ocupa un
bloque
• Algoritmo de reemplazo
– determina qué bloque se reemplaza
– Algoritmos: FIFO, Least-Recently-Used
(LRU), LRU jerárquico, …
Diseño Cache
• Política de escritura
– Cuando tiene lugar una operación de
escritura en memoria
– siempre que se actualice un bloque en cache
– sólo cuando es bloque es reemplazado
• Minimiza las operaciones de memoria
• Problemas de consistencia de datos
Entrada/salida por interrupción
• El procesador es interrumpido
cuando un módulo de I/O está listo
para intercambiar datos
• El procesador queda libre para
realizar otras tareas
• No requiere tiempos de espera
• Consume tiempo de CPU porque
cada palabra que se lee o escribe
pasa a través del procesador
Entrada/salida programada
• El módulo de entrada/salida realiza
la acción, no el procesador
• Se activan los bits adecuados en el
registro de estado de entrada/salida
• No se producen interrupciones
• El procesador comprueba el estado
hasta que finaliza la operación
Acceso Directo a Memoria
• Transfiere un bloque de
datos directamente a o desde
la memoria
• Se envía una interrupción
cuando se completa la
transferencia
• El procesador sólo está
implicado en el inicio y fin
de la transferencia