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

Documentos relacionados
Construyendo Programas más Complejos

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

Arquitectura (Procesador familia 80 x 86 )

Tema 5: La pila, las macros y los procedimientos

SISTEMAS OPERATIVOS Arquitectura de computadores

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Tema 6 Organización y gestión de la memoria

Paso de parámetros y gestión del marco de pila

CICLOS DEL PROCESADOR

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

SUBSISTEMA DE ENTRADA-SALIDA. Arquitectura de Computadores I 4º tema

Introducción a la arquitectura de computadores

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

8.4. El software en los μprocesadores

El nivel ISA (II)! Conjunto de Instrucciones

Introducción a los Sistemas Operativos

Funcionamiento de la Pila (o stack)

Velocidades Típicas de transferencia en Dispositivos I/O

Tema 5.1: Presentación de datos en pantalla

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

Funcionamiento del 8086/8088

Qué es un programa informático?

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Tema: Microprocesadores

FUNCIONAMIENTO DEL ORDENADOR

Conceptos de Arquitectura de Computadoras Curso 2015

Tema 7: Sistemas de Entrada/Salida

Manejo de Entrada-Salida. Arquitectura de Computadoras

Gestión de Entrada-salida

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Arquitectura de Computadores. Apellidos, Nombre:

Unidad 1: Conceptos generales de Sistemas Operativos.

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

MEMORIA EJERCICIO 1 EJERCICIO 2

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Memoria Virtual. Memoria Virtual

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Tema 5. Presentación de datos por pantalla

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Ejercicios del tema 4. El procesador

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

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Manejo de Entrada-Salida. Arquitectura de Computadoras

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz.

El Diseño de un Lenguaje Máquina

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Tema 8 Gestión de la memoria en tiempo de ejecución.

EL ENTORNO DEL EDITOR

Arquitectura de Computadores II Clase #3

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Sistemas Operativos. Daniel Rúa Madrid

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Sistemas de E/S. Arquitectura de Computadores 3º Plan 96. Indice. 1. Problemática de la E/S 2. Módulos E/S 3. Instrucciones de E/S 4.

Manipulación de procesos

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Sistemas Operativos. Introducción. Tema 6

Comparaciones en lenguaje ensamblador

Tema 2 Introducción a la Programación en C.

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1

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

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del sistema operativo ULPGC - José Miguel Santos Espino

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Tabla de Símbolos. Programación II Margarita Álvarez

Programación estructurada (Introducción a lenguaje C)

Instrucciones de Control de Flujo y Usos de la Pila

Arquitectura de computadoras

Señal de petición de Interrupción

1.2.- EL MICROPROCESADOR.

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Definición de Memoria

Principios de Computadoras II

Microprocesadores, Tema 2:

Monoalgorítmez: modelo funcional

Funciones Tipos de funciones y Recursividad

LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS. PRÁCTICA #9 EL RATÓN DE UNA COMPUTADORA

Tema 3. Aplicaciones de Tipo Consola

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Programación. Test Autoevaluación Tema 3

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

1 La figura 1 muestra la estructura de la CPU de un computador con palabras y direcciones de 32 bits, cuya

Instituto Schneider Electric de Formación

Guía de uso del programa AVR-Studio

Herramientas Informáticas I Software: Sistemas Operativos

Memoria. Organización de memorias estáticas.

PROGRAMA de Organización de Computadoras

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

1

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de

Tema 4: SISTEMAS DE ENTRADA/SALIDA. Un computador no puede estar formado sólo por la CPU y la memoria.

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Transcripción:

Tema 3 SUBRUTINAS

ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

Subrutina: definición Los programas de alto nivel hacen uso de estos bloques de código a los que se les pasan unas variables (parámetros) con las que ejecuta una operación y calcula unos resultados (funciones, procedimientos o métodos). Subrutina: porción de código que realiza una operación en base a unos valores dados como parámetros y que puede ser invocado desde cualquier parte del código, incluso desde sí misma (contexto de lenguaje ensamblador)

Subrutina: ventajas División del problema en tareas más fáciles de escribir y depurar Evita código redundante Encapsulado del código las tareas se comunican a través del paso de parámetros y resultados, por lo que un cambio en una de las tareas no implica cambios en el resto del programa permite su reutilización en más de un programa (bibliotecas)

Subrutina: generalidad Resolver un mismo problema ante diferentes datos (parámetros) dotarla de generalidad: Llamada y retorno de subrutina Paso de parámetros y resultados

Subrutina: llamada y retorno El proceso llamador, llama a la subrutina, pasándole unos parámetros para que realice los cálculos y le devuelva un resultado, tras lo cual seguirá su ejecución Proceso llamador Proceso llamador Llamada a subrutina subrutina dónde? fin subrutina subrutina Retorno de subrutina

Subrutina: llamada y retorno Necesitamos un mecanismo que permita la invocación anidada de subrutinas.

Instrucciones de control de secuencia Nombre Mnemónico Salto BR Branch Salto incondicional JMP Jump Avanzar SKP Skip Llamada a procedimiento CALL Call Retorno de procedimiento RET Return Comparación (resta) CMP Compare Comparación (AND) TEST Test

Subrutina: llamada y retorno Llamada a subrutina CALL etiqueta Retorno de subrutina RET (no tiene parámetros)

Subrutina: llamada y retorno Llamada a subrutina CALL etiqueta Salvar el actual valor del PC (dir. retorno) Cargar en el PC la dirección de la subrutina Retorno de subrutina RET no tiene parámetros Cargar la dirección de retorno en el PC

Subrutina: llamada y retorno Dónde salvamos la dirección de retorno? En un registro? En memoria? Impide el anidamiento de subrutinas RET requiere una posición conocida (implícita) Pila? Estructura LIFO que crece dinámicamente y cuya última posición siempre está disponible (SP) Es responsabilidad del programador que al terminar la ejecución de la subrutina la pila esté como al principio.

Subrutina: definición de la subrutina En la definición de la subrutina: Número de parámetros Tipo (número entero, cadena de caracteres, ) Cómo se van a pasar por valor (parámetro) por referencia (la dirección) Dónde registros memoria pila

Subrutina: paso de parámetros Paso de parámetros a través de registro El programa llamador y el llamado asumen que los parámetros se almacenan en ciertos registros específicos. Antes de la instrucción de llamada el programa llamador deposita los valores pertinentes en estos registros y la subrutina comienza a procesarlos directamente desventaja: número limitado de registros de propósito general (muy eficiente con subrutinas con pocos parámetros y un único resultado, ya que el procesador no requiere almacenar datos en memoria)

Subrutina: paso de parámetros Paso de parámetros a través de memoria Se define una zona de memoria conocida tanto para el programa llamador como para el llamado y en ella se copian el valor de los parámetros y el del resultado para su intercambio entre ambos programas ventaja: número arbitrario de parámetros desventaja: estas zonas han de estar previamente definidas; múltiples espacios de parámetros en el caso de subrutinas anidadas se requieren tantos espacios como invocaciones pendientes de terminar (igual que la dirección de retorno!)

Subrutina: paso de parámetros Paso de parámetros a través de la pila Parámetros y resultados son resultados temporales que sólo tienen vigencia en un periodo concreto; además el orden de creación y destrucción de estos parámetros en llamadas anidadas es el adecuado para los mecanismos de gestión de la pila. El orden de almacenamiento ha de ser conocido. cómo acceder a esta zona de parámetros? SP + direccionamiento indexado La pila puede variar durante la ejecución de la subrutina!

Subrutina: paso de parámetros Para poder acceder a la zona de parámetros y resultados con desplazamientos constantes las primeras instrucciones copian el valor de SP en otro registro (previa copia de su valor en la pila) puntero al bloque de activación Al terminar la ejecución de la subrutina se deshace la estructura de datos creada en la pila en orden inverso. Bloque de activación: porción de memoria de la pila que contiene el espacio para los resultados, los parámetros, la dirección de retorno y la copia del valor original del registro en el que se guardará el SP

Subrutina: bloque de activación Gestión del bloque de activación: programa llamador PC R SP

Subrutina: bloque de activación Gestión del bloque de activación: programa llamador PC R SP Dir. de retorno (PC) Parámetro 2 Parámetro 1 Espacio resultado 3 2 1 1. Reserva espacio para el resultado 2. Pasa los parámetros (en orden) 3. Llama a la subrutina (guarda en la pila la dirección de retorno y carga en el PC la dirección de la subrutina)

Subrutina: bloque de activación Gestión del bloque de activación: programa llamado (subrutina) PC R 2 SP Contenido de R2 Contenido de R1 Espacio variable 2 Espacio variable 1 Contenido de R Dir. de retorno (PC) Parámetro 2 Parámetro 1 Espacio resultado 4 3 1 1. Guarda en la pila el contenido del registro que usará como puntero al bloque de activación (R) 2. Guarda en R el valor actual del SP 3. Reserva espacio para variables locales 4. Guarda el contenido de los registros que utilizará durante la ejecución de la subrutina 5. Ejecuta la subrutina (direccionamiento indexado utilizando R)

Subrutina: bloque de activación Gestión del bloque de activación: programa llamado (subrutina) PC R SP Contenido de R2 Contenido de R1 Espacio variable 2 Espacio variable 1 Contenido de R Dir. de retorno (PC) Parámetro 2 Parámetro 1 Resultado 7 8 9 10 6 6. Guarda el resultado en el sitio reservado para el 7. Devolver a los registros que se utilizaron durante la ejecución de la subrutina el valor que tenían 8. Liberar el espacio para las variables locales (actualizar SP) 9. Devolver a R su valor inicial 10.Retorno de la subrutina (cargar en PC la dirección de retorno)

Subrutina: bloque de activación Gestión del bloque de activación: programa llamador PC R SP Parámetro 2 Parámetro 1 Resultado 4 5 4. Sacar los parámetros de la pila (liberar el espacio) 5. Recuperar el resultado

Interrupciones Estás en casa viendo una película cuando suena el timbre. Qué haces? inicio proceso ver película inicio proceso atender llamada fin proceso atender llamada Rutina atención a la interrupción fin proceso ver película

Interrupciones Cuando se da una interrupción, se rompe la ejecución normal del programa para ejecutar la rutina de servicio a la interrupción (RSI), volviendo tras esta a la ejecución normal del programa. Aunque se parece a la llamada a procedimiento, no es igual: 1. No la provoca una instrucción, sino una señal (externa/interna) no previsible. 2. La dirección del programa de atención se facilita mediante hardware (no hay campo de dirección). 3. Ante una interrupción hay que guardar la información del bloque de registros (o de parte), no sólo el PC.

Interrupciones Interrupción hardware Cuando un recurso hw requiere atención asíncrona (primero terminar la instrucción máquina en curso, luego atenderla): temporizador, fallo alimentación, dispositivos de E/S (multiproceso + recurso compartido (gestionado por el S.O.) polling ineficiente interrupción hw) Interrupción software o excepción Introducidas por el programador (sincronizada) (INT). Trampas (traps) Causadas por la CPU ante una condición de error: utilización errónea o ilegal de un conjunto de datos, división por cero, direccionamiento no permitido Introducidas por el programador aunque no intencionadamente (sincronizada).

Interrupciones Según importancia pueden ser Enmascarables No enmascarables Interrupción hw cómo sabe la CPU qué dispositivo ha interrumpido? 1. Multinivel (cada dispositivo una entrada; sencillo pero muy caro) 2. Línea única + polling (pregunta uno a uno) 3. Vectorizadas (además de la señal de interrupción, ponen en el bus de datos un vector que las identifica) (Periférico o controlador y gestión prioridad tema 5)

Ejemplo interrupción externa En este ejemplo la interrupción pone directamente la dirección de la rutina de servicio (RSI); si sólo indicase el vector que la identifica la CPU lo usaría como índice en una tabla dónde tiene las direcciones de las diferentes RSI.

Ejemplo interrupción externa Pasos tras la interrupción: SP SP-1 actualizar SP (hacer sitio en la pila) M[SP] PC guardar dirección de retorno SP SP-1 actualizar SP (hacer sitio en la pila) M[SP] PSR guardar la palabra de estado EI 0 deshabilitar interrupciones INTACK 1 acusar recepción PC IVAD dirección RSI