Conmutación de Tareas

Documentos relacionados
Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro

Conmutación de Tareas

Procesamiento con Multitarea

Arquitectura de Computadores II. Arquitectura Intel 32 y modo protegido

Manejo Básico de Tareas

Procesadores IA-32 e Intel R 64 Inicialización

Procesadores de 64 bits

Microprocesadores. Procesador IA-32 e Intel R 64 Protección. Alejandro Furfaro

Arquitectura de procesadores (Introducción)

Cuadro Comparativo Registros de Microprocesadores

Estructura de los sistemas de cómputo

SISTEMAS OPERATIVOS Arquitectura de computadores

Procesadores IA-32 e Intel R 64 Gestión de Interrupciones

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Arquitectura Interna del 8088

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Sistemas Operativos. Curso 2016 Administración de memoria II

Máquinas Virtuales en arquitecturas de microkernel

Procesadores IA-32 e Intel R 64 Gestión de Interrupciones

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

El microprocesador 80386

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Arquitectura de Computadores II Clase #3

Tema 12: El sistema operativo y los procesos

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Velocidades Típicas de transferencia en Dispositivos I/O

Tema 1: Arquitectura de ordenadores, hardware y software

Arquitectura (Procesador familia 80 x 86 )

MANUAL DEL USUARIO J-UML

Taxonomía de los sistemas operativos. Programación de Sistemas. Características en Win3.1 (1/3) Características en Win3.1 (3/3)

Unidad IV: Programación de microcontroladores

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Recopilación presentada por 1

Capítulo 1 Conceptos arquitectónicos

Concurrencia y paralelismo

Ingeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador.

TEMA 2: Organización de computadores

Cuestionario 1-Parte 1

Procesos Definición y Estados

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

Microprocesadores. Procesador IA-32 - Gestión de Memoria. Alejandro Furfaro

4.3 Memoria virtual. move r1, [1000] Paginación

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana

Organización del Sistema Operativo

Manipulación de procesos

Sistemas Operativos. Curso 2017 Estructura de los sistemas operativos

CICLOS DEL PROCESADOR

ARQUITECTURA INTERNA DEL µp8086

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Conceptos y Estructuras de Sistemas Operativos

Sistemas Operativos Procesos Descripción y Control

Microprocesadores. Procesador IA-32 - Gestión de Memoria en 64 bits. Alejandro Furfaro

Tema 1: Introducción a los Sistemas Operativos

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Introducción a los Sistemas Operativos S.O.

Controlador de Floppy Disk - DMA

Interrupciones. Sistemas con Microcontroladores y Microprocesadores.

Threads, SMP y Microkernels. Proceso

Estructura Windows NT

El Diseño de un Lenguaje Máquina

Herramientas Informáticas I Software: Sistemas Operativos

9. Lenguaje ensamblador

Un. VIII. Generación de Código Objeto

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

GESTION DE LA MEMORIA

TEMA 1: Concepto de ordenador

Práctica 3: El teclado del PC

El Computador y sus Partes INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

Práctica 2: Sector de arranque

Funcionamiento de la computadora

Tema 1:Arquitectura de ordenadores

Unidad I: Organización del Computador. Ing. Marglorie Colina

Virtualización. (y Software Libre) Lic. Marcelo Fernández - UNLuX. fernandezm@gmail.com -

Práctica 3: El teclado del PC

Práctica 2: Sector de arranque

Requerimientos principales de un sistema operativo

Espacio de direcciones de un proceso

Transcripción:

Conmutación de Tareas

Conmutación de tareas Expira el tiempo de ejecución asignado por el procesador a la tarea N El procesador almacena en memoria el estado de máquina (contexto) de la tarea N. El procesador carga desde memoria el contexto de la tarea N+1 tal como lo había almacenado originalmente. El procesador reasume la ejecución de la tarea N+1. Expira el tiempo de ejecución asignado por el procesador a la tarea N+1... y así sucesivamente, hasta volver a la tarea N.

Manejo de Tareas Tarea: Es una unidad de trabajo que un procesador puede despachar, ejecutar, y detener a voluntad, bajo la forma de: La instancia de un programa (o, expresado en términos del Sistema Operativo, proceso). Un handler de interrupción. Un servicio del kernel (Núcleo del Sistema Operativo). Espacio de ejecución: Es el conjunto de segmentos de código, datos, y pila que componen la tarea. En un sistema operativo que utilice los mecanismos de protección del procesador se requiere un segmento de pila por cada nivel de privilegio.

Manejo de tareas (2) Contexto de ejecución: Es el conjunto de valores de los registros internos del procesador en cada momento. Para poder suspender la ejecución de una tarea y poder reasumirla posteriormente, es necesario almacenar este contexto en el momento de la suspensión. Espacio de Contexto de ejecución: Se compone de un segmento de memoria en el que el kernel del S.O. almacenará el contexto completo de ejecución del procesador. Se lo denomina Task State Segment (TSS)

Concepto de Máquina Virtual El Sistema Operativo pondrá a disposición de cada tarea una Máquina Virtual. Se entiende por tal al subconjunto del universo de recursos del sistema que serán asignados a cada tarea: CPU (% o rodaja de tiempo de ejecución) Memoria (un conjunto de segmentos / páginas del total, de memoria instalada en el sistema) Acceso a dispositivos de E/S (a través de módulos de software escritos por el fabricante llamados device drivers)

Concepto de Máquina Virtual (2) No se incluyen en la máquina virtual los recursos hardware dependientes, ni algunas instrucciones que en un entorno de ejecución Multitasking son para uso exclusivo del código del Sistema Operativo. En cada momento la tarea activa posee entonces a su disposición una Máquina Virtual, que salvo los recursos para los que la tarea no debe tener acceso, es una imagen de la Máquina Base.

Estructuras asociadas al manejo de Tareas Segmento de estado de tarea (TSS). Descriptor de TSS Descriptor de Puerta de Tarea Registro de tarea Flag NT (bit 14 de EFLAGS)

TSS (Segmento de Estado de Tarea) Es el lugar de memoria en el que el S.O. Almacena el contexto de cada tarea. El tamaño mínimo de este segmento es de 67h bytes. Se guardan los valores de SS, ESP para los stacks de niveles 0, 1 y 2. El flag T genera una excepción de Debug cada vez que se conmuta a esta tarea.

TSS: Mapa de Permisos de E/S Por default en Modo Protegido, una tarea que ejecuta con CPL=11 no puede ejecutar instrucciones de acceso a E/S (IN, OUT, INS, OUTS). El procesador utiliza el par de bits IOPL del registro EFLAGS, para modificar este comportamiento default, de manera selectiva para cada tarea. Para una determinada tarea con CPL=11, se pone desde el S.O. IOPL en 11, se habilita el acceso a las direcciones de E/S cuyos bit correspondientes estén seteados en el Bit Mapa de permisos de E/S. Así se habilita el acceso a determinados ports para determinadas tareas. En este caso el TSS mide mas de 104 bytes (su límite será mayor que 67h)

Descriptor de TSS

Descriptor de TSS (2) El Bit B (Busy) sirve para evitar recursividad en el anidamiento de tareas. El Límite debe ser mayor o igual a 67h (mínimo tamaño del segmento es 68h, o 10310. De otro modo se genera una excepción tipo 0Ah o TSS inválido

Task Register

El DPL de la puerta de tarea (Task gate) es el nivel de privilegio mínimo que debe tener un proceso para invocarlo. Independientemente del nivel de privilegio que corra luego la tarea llamada. Con esto una tarea de nivel tres puede ejecutar un proceso en nivel cero.

Descriptor de puerta de tarea

Despacho de Tareas El procesador puede despachar una tarea de las siguientes formas posibles: Por medio de una instrucción CALL Por medio de una instrucción JMP Mediante una llamada implícita del procesador al handler de una interrupción manejado por una tarea. Mediante una llamada implícita del procesador al handler de una excepción manejado por una tarea. Mediante la ejecución de la instrucción IRET en una tarea cuando el flag NT (bit 14 del registro EFLAGS) es 1 para la tarea actual.

Despacho de Tareas (2) En cualquier caso se requiere poder identificar a la tarea. Se necesita un selector en la GDT que apunte a una puerta de tarea o a un Task State Segment (TSS). Este selector debe estar en la correspondiente posición dentro de la instrucción CALL o JMP.

Tareas Encadenadas Cuando se conmuta a una tarea mediante un CALL, una interrupción, o una excepción, el procesador copia el TR de la tarea actual en el campo Previous Task Link del TSS de la nueva tarea, y luego de completar el cambio de contexto, setea el bit NT del registro EFLAGS (bit 14). De este modo si la nueva tarea ejecuta en algún punto la instrucción IRET y el bit NT es 1, el procesador conmuta a la tarea anterior ya que tiene el selector de TSS de la tarea previa almacenado en el campo Previous Task Link del TSS de la tarea en ejecución. En cambio si la conmutación de tarea se efectúe con un JMP no se afecta el flag NT ni se completa el campo Previous Task Link.

Tareas Encadenadas (2)

Prevención de recursividad de tareas, Bit Busy El procesador utiliza el Bit Busy de un descriptor de TSS para prevenir la reentrancia en una tarea (esto ocasionaría la pérdida de los datos del contexto de ejecución). Cuando se avanza en anidamiento de tareas mediante un CALL o una interrupción, este bit debe permanecer seteado, en el descriptor de TSS de la tarea previa.

Prevención de recursividad de tareas, Bit Busy (2) El procesador generará una Excepción de Protección General (0Dh) si se intenta despachar mediante un CALL o una Interrupción una tarea en cuyo TSS está seteado el bit Busy. Esto no ocurre si la la tarea en cuestión se despacha con un IRET ya que es de esperar en esta condición que el bit Busy esté seteado. Cuando la tarea ejecuta IRET o bien mediante un JMP despacha una nueva tarea, el procesador asume que la tarea actual finalizará y se debe limpiar el bit Busy en su descriptor de TSS

TSS de 16 bits Por compatibilidad con el 80286 se manejan tareas de 16 bits. En eset caso el TSS tiene la siguiente estructura

Referencias Intel 64 and IA-32 Architectures Software Developer s Manual Volume 3A: System Programming Guide, Part 1 Capítulos 2 y 7 Intel 64 and IA-32 Architectures Software Developer s Manual Volume 1: Capítulo 13