Multitarea

Solo disponible en BuenasTareas
  • Páginas : 6 (1317 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de noviembre de 2011
Leer documento completo
Vista previa del texto
Universidad del Valle de Guatemala Facultad de Ingeniería Departamento de Ciencia de la Computación CC3005 Programación en Assembler CC4010 Taller de Assembler

Semestre 2 de 2,011

SIMULACIÓN DE MULTITAREA (TIEMPO COMPARTIDO) Temas: 1. Interrupciones externas (de hardware) INT 08H INT 09H : Cronómetro : Teclado

2. Uso de la pila (stack) en las llamadas a procedimientos Registros SS, BP,SP Programa principal: 1. Inicializar área de datos 2. Indicar el modo de video a utilizar (texto o gráfico), por medio de la interrupción correspondiente. 3. Preparar tantas pilas (stacks) como procedimientos quieran ejecutarse simultáneamente 4. Obtener las direcciones de las interrupciones de cronómetro y teclado y programar las direcciones nuevas en la tabla de interrupciones 5. Programar lasnuevas interrupciones de: a. Cronómetro b. Teclado 6. Llamar a proceso 1, en el cual se entra a la simulación a. es el único proceso que se llama con CALL b. Este proceso debe tener el control de la salida del ciclo infinito, con ayuda de la nueva interrupción de teclado c. RECOMENDACIÓN IMPORTANTE: los procesos que se corren como multitasking no deben tener CALL a los mismos procedimientos, puespueden perderse los parámetros, tampoco deben usar las mismas variables, y si desean hacerlo, ver más adelante como debe hacerse push y pop de estas variables. 7. Regresar a las interrupciones normales de: a. Cronómetro b. Teclado

Universidad del Valle de Guatemala Facultad de Ingeniería Departamento de Ciencia de la Computación CC3005 Programación en Assembler CC4010 Taller de AssemblerSemestre 2 de 2,011

1. Inicializar área de datos RelojViejo TecladoViejo VectorBP VectorSP Contador Teclazo dd dw dw db db dd ? ; ? ; 4 dup(?) ; 4 dup(?) ; 0 ; ? ; guarda direcciones antiguas para ser restauradas una posición por proceso (4) vectores de control circulares contador de procesos bandera para terminar

2. Preparación de stacks a. El tamaño total del segmento de stack (SS) es de 64K,dividirlo en partes iguales: Proceso Proceso Proceso Proceso 1: 2: 3: 4: guardar SP y BP actuales 1000H (BP y SP iniciales) 2000H(BP y SP iniciales) 3000H (BP y SP iniciales)

NOTA: las direcciones 1000H, 2000H, 3000H se escogieron como un ejemplo, no tienen que ser necesariamente las mismas direcciones. Para seleccionarlas tomen en cuenta que queden suficientemente separadas para que no setraslapen.

VectorBP DW 4 DUP (?) VectorSP DW 4 DUP (?) ; por ejemplo, para el proceso 2 mov [vectorBP + 02], 1000H mov [vectorSP + 02], 1000H b. Guardar en variables temporales los registros SP, BP (se van a cambiar) c. Para cada proceso vamos a armar las pilas artificiales de la siguiente forma:
Actualizar BP y SP con el valor de BP y SP iniciales definidos en la preparación de stacks, en unaposición del vector determinada. Inicializar AX, BX con el inicio del procedimiento, que es el mismo nombre con que lo invoca la instrucción CALL, utilizando los operadores SEG y OFFSET. o Operador SEG: regresa la dirección del segmento en el que una variable o etiqueta especificada es colocada. Ejemplo:

Universidad del Valle de Guatemala Facultad de Ingeniería Departamento de Ciencia de laComputación CC3005 Programación en Assembler CC4010 Taller de Assembler

Semestre 2 de 2,011

ejemplo proc near ... ejemplo endp mov ax, seg ejemplo
o Operador OFFSET: regresa la dirección de desplazamiento, es decir la dirección relativa dentro del segmento de datos, dentro de una variable o etiqueta. Ejemplo:

mov bx, offset ejemplo
o Los pasos anteriores (operador SEG, operador OFFSET)pueden reemplazarse por las instrucciones, que evitan el paso intermedio por los registros AX,BX:

push seg ejemplo push offset ejemplo
Ingresar en la pila actual los siguientes registros (PUSH): o Registro de banderas o Registro que contiene el segmento (seg) o Registro que contiene el desplazamiento (offset) o Todos los registros (el correspondiente pop estará en la nueva interrupción de...
tracking img