Breve introducción a la arquitectura de 32 bits intel.

Slides:



Advertisements
Presentaciones similares
III - Gestión de memoria
Advertisements

UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
SISTEMAS OPERATIVOS GESTION DE MEMORIA INTEGRANTES Lizeth Chandi
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
Prototipo de compilador didáctico del lenguaje LC99
EQUIPO ·# 3 SISTEMAS OPERATIVOS
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Modelo de procesos de dos estados
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Funcionamiento, programación
Windows XP sp3.
Composición Interna de un Procesador
Direcciones físicas y direcciones virtuales (lógicas)
UNIDAD I Conceptos Básicos.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Administración de memoria
Sistemas Operativos Procesos.
Programación III Clase 07 Funciones.
PAGINACIÓN Y SEGMENTACIÓN
Secciones y Segmentos STARTUP
Administración de Memoria Memoria Virtual
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Conceptos Arquitectónicos del computador
Extendiendo Minix a Arquitecturas SMP Jesús M. Álvarez Llorente Juan Carlos Díaz Martín José Manuel Rodríguez García Departamento de Informática Universidad.
Administración de Memoria
Material de apoyo Unidad 4 Estructura de datos
Contenido Estructura del computador Ejecución de instrucciones
Introducción a los Sistemas Operativos
Introducción al tiempo real en sistemas empotrados
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
COMPONENTES DEL SISTEMA OPERATIVO.
introducción al Lenguaje Ensamblador
Administrador de procesos
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Gestión de Memoria.
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Familia x86.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Breve introducción a la arquitectura de 32 bits intel.
Punteros Recomendado: 1. Nivelación Funciones
Gestión de Memoria.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.

Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Elementos y tipos de sistemas operativos
CONJUNTO DE INSTRUCCIONES Maquinas Digitales
MEMORIA DINÁMICA.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Arquitectura de Computadores
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
El microprocesador y su arquitectura
SOFTWARE DE COMPUTADORAS
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Gestión de Memoria – Parte 2
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Transcripción de la presentación:

Breve introducción a la arquitectura de 32 bits intel

Modos de Operación Modo Protegido (Protected) Modo Protegido (Protected) Todas las características del procesador son aprovechadas. Todas las características del procesador son aprovechadas. Modo Virtual x86 Modo Virtual x86 Modo real dentro de un contexto protegido y multitarea Modo real dentro de un contexto protegido y multitarea Modo Real (Real-address) Modo Real (Real-address) Modo 8086 con extensiones. Modo 8086 con extensiones. (El arranque del procesador siempre se inicia en este modo) (El arranque del procesador siempre se inicia en este modo) Modo Gestion de sistema (management system) Modo Gestion de sistema (management system) Permite implementar funciones específicas dependientes de la plataforma (gestión de la alimentación, seguridad) Permite implementar funciones específicas dependientes de la plataforma (gestión de la alimentación, seguridad) Se entra a este modo con la interrupción SMI# Se entra a este modo con la interrupción SMI#

Entorno básico de ejecución Espacio de direcciones lineal 4GB (2 32 ) Espacio de direcciones lineal 4GB (2 32 ) Espacio de direcciones físico 64GB (2 36 ) Espacio de direcciones físico 64GB (2 36 ) Puertos I/O Puertos I/O 8 registros de propósito general 8 registros de propósito general 6 registros de segmento 6 registros de segmento EFLAGS, EIP EFLAGS, EIP X87 FPU unidad de punto flotante X87 FPU unidad de punto flotante MMX ejecución de instrucciones SIMD enteras MMX ejecución de instrucciones SIMD enteras XMM ejecución de insturcciones SIMD p.flot XMM ejecución de insturcciones SIMD p.flot

Recursos del sistema para la gestión de la ejecución Registros de control: CR*[0..4] Registros de control: CR*[0..4] Determinan el modo operativo del procesador y las características de la tarea actual Determinan el modo operativo del procesador y las características de la tarea actual Registros de control de acceso a memoria Registros de control de acceso a memoria GDTR, IDTR, LDTR GDTR, IDTR, LDTR Registros de depuración Registros de depuración Permiten monitorizar operaciones de depuración de procesos Permiten monitorizar operaciones de depuración de procesos Registros para asignar características a regiones de memoria Registros para asignar características a regiones de memoria MTRR’s (memory type range regs) MTRR’s (memory type range regs) Etc. Etc.

Organización de la memoria Modelo Plano de memoria (+ paginado opcional) Modelo Plano de memoria (+ paginado opcional) Un simple espacio de direcciones contiguas ( ). Contiene datos, código y stack. Dirección lineal. Un simple espacio de direcciones contiguas ( ). Contiene datos, código y stack. Dirección lineal. Modelo Segmentado de memoria ( + paginado opcional) Modelo Segmentado de memoria ( + paginado opcional) El espacio de direcciones es dividido en secciones llamadas segmentos. Dirección lógica (Segmento+Offset). Un Selector de Segmento identica el segmento al que se quiere acceder. El espacio de direcciones es dividido en secciones llamadas segmentos. Dirección lógica (Segmento+Offset). Un Selector de Segmento identica el segmento al que se quiere acceder. Es posible manejar segmentos de hasta 2 32 bytes cada uno Es posible manejar segmentos de hasta 2 32 bytes cada uno Modelo Real-address de memoria Modelo Real-address de memoria

Registros de propósito general

Registros de proposito general EAX- Acumulador para operandos y resultados EAX- Acumulador para operandos y resultados EBX-Puntero a datos en segmento DS EBX-Puntero a datos en segmento DS ECX-Contador para strings y bucles ECX-Contador para strings y bucles EDX-Puntero para operaciones I/O EDX-Puntero para operaciones I/O ESI-Puntero para datos en DS y fuente en operaciones de cadena ESI-Puntero para datos en DS y fuente en operaciones de cadena EDI-Puntero para datos en ES y destino en operaciones de cadena EDI-Puntero para datos en ES y destino en operaciones de cadena ESP-Puntero de pila ESP-Puntero de pila EBP-Puntero para datos en la pila EBP-Puntero para datos en la pila

Registros de segmento Más propiamente contienen selectores de segmento. Más propiamente contienen selectores de segmento. El selector apunta a una estructura en memoria que se denomina Descriptor de Segmento El selector apunta a una estructura en memoria que se denomina Descriptor de Segmento El descriptor de segmento contiene entre otras cosas la dirección lineal del segmento. El descriptor de segmento contiene entre otras cosas la dirección lineal del segmento.

Registros selectores de segmento

Registro de Flags

Algunos flags IOPL IOPL Indica el nivel de privilegio que debe tener una tarea para poder ejecutar instrucciones de entrada salida Indica el nivel de privilegio que debe tener una tarea para poder ejecutar instrucciones de entrada salida VM VM Se activa para entrar en modo virtual x86 Se activa para entrar en modo virtual x86

Modos de direccionamiento

Selectores, Descriptores y Tablas de descriptores. Un selector, que se carga en un registro de segmento, es un apuntador a una Tabla de Descriptores Un selector, que se carga en un registro de segmento, es un apuntador a una Tabla de Descriptores Una Tabla de Descriptores es una lista de posibles descriptores de segmento que puede utilizar la tarea que se ejecuta actualmente. Una Tabla de Descriptores es una lista de posibles descriptores de segmento que puede utilizar la tarea que se ejecuta actualmente. El Descriptor es una estructura de datos que describe un segmento El Descriptor es una estructura de datos que describe un segmento

Selector

Selector. Para confeccionar una dirección lineal hace falta acceder al descriptor de segmento y obtener los datos de chequeo, dirección base y límite. Para confeccionar una dirección lineal hace falta acceder al descriptor de segmento y obtener los datos de chequeo, dirección base y límite. La parte oculta del registro de segmento se cargan tras el primer acceso y quedan almacenadas para los sucesivos La parte oculta del registro de segmento se cargan tras el primer acceso y quedan almacenadas para los sucesivos

Descriptor de segmento

Tablas de descriptores La Tabla Local (LDT) es propia del proceso actual, mientras que la Tabla Global es compartida por todos los procesos del sistema.

Modo Protegido. Niveles de protección Se basan en niveles de privilegio: Se basan en niveles de privilegio: mayor privilegio, 3 menor privilegio mayor privilegio, 3 menor privilegio Los mecanismos operan: Los mecanismos operan: A nivel de segmento A nivel de segmento A nivel de página A nivel de página Cada referencia a memoria es chequeada para verificar que satisface una serie de requerimientos. Cada referencia a memoria es chequeada para verificar que satisface una serie de requerimientos. Comprobación de límites Comprobación de límites Comprobación de tipo de datos Comprobación de tipo de datos Chequeo de niveles de privilegio Chequeo de niveles de privilegio Restriccion de dominios accesibles Restriccion de dominios accesibles Restricción de puntos de entrada a procedimientos Restricción de puntos de entrada a procedimientos Restricción del conjunto de instrucciones ejecutable según nivel de privilegio Restricción del conjunto de instrucciones ejecutable según nivel de privilegio

Niveles de privilegio

Chequeo de privilegios CPL: Current Privilege Level Nivel de privilegio de la tarea que se ejecuta en un determinado momento. DPL: Descriptor Privilege Level Indica habitualmente el mínimo nivel de privilegio que debe tener una tarea para acceder a un segmento. RPL: Request Privilege Level Indica el nivel de privilegio del selector con el cual se accede a un segmento. Puede sobreescribir a CPL según el caso.

Chequeo de privilegio para acceso a segmento de datos -El menor privilegio entre CPL y RPL es el que domina -Procesos o descriptores con mayor privilegio acceden a segmentos con menor requerimiento de privilegios

Chequeo de privilegios para accesos segmentos de código

Conforming-NonConforming Conforming- non conforming es una característica de los segmentos de código Conforming- non conforming es una característica de los segmentos de código Relacionada con la capacidad de ese segmento para ser invocado desde otros niveles. Relacionada con la capacidad de ese segmento para ser invocado desde otros niveles. El acceso a un segmento nonconforming solo (?) es permitido a un código con su mismo nivel de privilegio (CPL==DPL) El acceso a un segmento nonconforming solo (?) es permitido a un código con su mismo nivel de privilegio (CPL==DPL) El acceso a un segmento conforming está permitido a todo proceso con menor o igual nivel de privilegio El acceso a un segmento conforming está permitido a todo proceso con menor o igual nivel de privilegio En ningún caso implica un cambio del nivel de privilegio del proceso invocante. En ningún caso implica un cambio del nivel de privilegio del proceso invocante.

Puertas Las puertas facilitan la transferencia del control de ejecución entre niveles de privilegio. Las puertas facilitan la transferencia del control de ejecución entre niveles de privilegio. La capacidad de un proceso con determinado nivel de privilegio de invocar a una tarea ejecutándose en un nivel más (¿o menos?) privilegiado. La capacidad de un proceso con determinado nivel de privilegio de invocar a una tarea ejecutándose en un nivel más (¿o menos?) privilegiado. Se invocan mediante un call o jump, pero en lugar de aportar un selector de segmento aportan un descriptor de puerta. Se invocan mediante un call o jump, pero en lugar de aportar un selector de segmento aportan un descriptor de puerta.

Descriptor de Puerta 1.Especifica el segmento de código a ser accedido 2.Define un punto de entrada a un procedimiento 3.Especifica el nivel de privilegio que requiere el proceso invocante 4.Define el número de parámetros requerido

Vector de interrupciones o IDT (Tabla de descriptores de interrupción) Las rutinas de atención a las interrupciones se ejecutan en niveles altos de protección, por lo que se requieren puertas en vez de simples descriptores de segmento.

Vector de interrupciones

Gestion de Tareas. TSS El procesador proporciona mecanismos para gestionar las tareas: lanzar su ejecución, suspenderla conservando el estado, conmutar a otra tarea. Para ello mantiene una estructura de datos conveniente, TSS

Descriptor de la tarea Los datos que permiten conservar el estado de una tarea son: Los datos que permiten conservar el estado de una tarea son: El espacio de ejecución actual de la tarea definido por sus registros de segmento El espacio de ejecución actual de la tarea definido por sus registros de segmento El estado de los registros de propósito general, los flags y el puntero de instrucción. El estado de los registros de propósito general, los flags y el puntero de instrucción. El estado de registros de control como CR3 (paginado) y TR El estado de registros de control como CR3 (paginado) y TR El estado del registro apuntador a la tabla de descriptores locales LDTR El estado del registro apuntador a la tabla de descriptores locales LDTR El mapa de I/O accesible. El mapa de I/O accesible. El estado de los puntero a los stacks en cada nivel de privilegio El estado de los puntero a los stacks en cada nivel de privilegio Un apuntador a la tarea previamente ejecutada Un apuntador a la tarea previamente ejecutada

El descriptor de todas las tareas que se están ejecutando actualmente en el sistema está almacenado en la tabla de descriptores Global.

Acceso a I/O Las instrucciones de in/out no son privilegiadas, sin embargo el acceso al espacio de entrada salida está regulado. Las instrucciones de in/out no son privilegiadas, sin embargo el acceso al espacio de entrada salida está regulado. Flag IOPL Flag IOPL Establece el nivel de privilegio mínimo para ejecutar instrucciones I/O Establece el nivel de privilegio mínimo para ejecutar instrucciones I/O Mapa de permisos I/O en el TSS Mapa de permisos I/O en el TSS Salvaría la prohibición de IOPL solo para aquellas direcciones permitidas Salvaría la prohibición de IOPL solo para aquellas direcciones permitidas

Mapa de permisos I/O

fin Bibliografía Bibliografía IA-32 Developers Manual IA-32 Developers Manual Arquitectura IA-32 Arquitectura IA-32