La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema.

Presentaciones similares


Presentación del tema: "Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema."— Transcripción de la presentación:

1 Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema de cómputos. uP Tarea 1 Tarea 2 Tarea 3 Deshabilitada Placas de tareas Leds indicadores de «tarea activa» Llaves de habilitación de tareas Placa Base (Motherboard) RAM ROM Timer

2 Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema de cómputos. Recurso compartido: tiempo del procesador. El SOM asignará a cada una de las tareas que lo requieran un tiempo de maquina prefijado. Tarea1 SO Tarea2 SO Tarea3 SO Tarea1 SO Tarea2 SO Tarea3 SO … t1 t2 t3 Tiempo de máquina

3 Sistemas Digitales 2014 FIUNMDP RAM de Tarea E/S de Tarea ROM de Tarea ROM de SOM RAM de SOM E/S de SOM Timer uP 6800 NMI BUS de DIRECCIONES BUS de DATOS RAM de Tarea E/S de Tarea ROM de Tarea ROM de Tarea 1 RAM de Tarea 1 E/S de Tarea 1 Lógica de decodifica ción Multitarea Motherboard Placas de Tareas AccB PC IX SP CCR AccA

4 Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 C000 Mapeo del Sistema Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF DFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 8k 2k Libre de 0000-BFFF Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 Las tareas están paginadas, ocupan siempre la misma posición de memoria.

5 Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 C000 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF DFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 8k 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 Libre de 0000-BFFF ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k Mapeo del Sistema Placa base Tareas

6 Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k A11 A12 A13 A15 74138 0 1 2 3 4 5 6 7 G1 G2A G2B  2 A14 A15A14A13A12A11A10..A0Dir 110000..0C000 110001..1C7FF 110010..0C800 110011..1CFFF 110100..0D000 110101..1D7FF 110110..0E000 110111..1E7FF 111000..0E800 111001..1EFFF... Peso de cada línea 2k Lógica de decodificación

7 Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k A11 A12 A13 A15 74138 0 1 2 3 4 5 6 7 G1 G2A G2B  2 A14 A15A14A13A12A11A10..A0Dir 110000..0C000 110001..1C7FF 110010..0C800 110011..1CFFF 110100..0D000 110101..1D7FF 110110..0E000 110111..1E7FF 111000..0E800 111001..1EFFF... Peso de cada línea 2k Lógica de decodificación Primeros 2k ROM Tarea Segundos 2k ROM Tarea 2K E/S Tarea 2K RAM Tarea Primeros 2K E/S SOM

8 Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k F800-FFFF (ROM SOM) A11 A12 A13 A15 74138 0 1 2 3 4 5 6 7 G1 G2A G2B  2 A14 F000-F7FF (RAM SOM) E800-EFFF (E/S SOM Sel. Tarea) E000-E7FF (E/S SOM Timer) D800-DFFF (RAM Tarea n) D000-D7FF (E/S Tarea n) C800-CFFF (ROM tarea n) C000-C7FF (ROM tarea n) Zona de Tareas Peso de cada línea 2k Lógica de decodificación

9 Sistemas Digitales 2014 FIUNMDP Tarea 8 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea 1 74138 0 1 2 3 4 5 6 7 G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D2 74373 1D 2D 3D 1Q 2Q 3Q Vcc CS3CS0CS2CS1 Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 Circuito de Decodificación Selección de Tarea CS5 R/W A10 A0 E800 CS5 R/W A10 A0 E800

10 Sistemas Digitales 2014 FIUNMDP Tarea 8 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea 1 74138 0 1 2 3 4 5 6 7 G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D2 74373 1D 2D 3D 1Q 2Q 3Q Vcc CS3CS0CS2CS1 Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 Circuito de Decodificación Selección de Tarea CS5 R/W A10 A0 E800 CS5 R/W A10 A0 E800 Selecciona tarea 1: LDAA #%xxxxx000 STAA $E800 Lee si esta habilitada la tarea 1: LDAA $E800 ANDA #%xxxxxxx1

11 Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 Tareas: Todas los programas de tarea comienzan en la misma posición de memoria (C000) El sector de pila es libre en cada tarea (dentro de la RAM D800-DFFF) Todas las tareas en la dirección inicial (C000) tienen un número equivalente al tiempo que debe ejecutarse esa tarea. Todas las tareas tienen la rutina de atención al IRQ en la misma posición de memoria (ROM de tarea C000-CFFF). t de ejecución de tarea ROM de Tarea n E/S de Tarea n RAM de Tarea n C000 CFFF D000 D7FF D800 DFFF 4k 2k

12 Sistemas Digitales 2014 FIUNMDP 2 LDAA #$7F LDAB D400 ABA BNE 03 EOR $D490 STAA $D4E0 LSR $D451 BRA E0 5 LDS #$D3FF LDAA #25 STAA $D400 CMP #30 BNE 03 ASR $D450 PSHA LSR $D451 PULLA LDAA $D430 ORAA $78 STAA $D457 LDAB #$56 DECB BRA 8F Reset SOM 5 LDS #$D3FF LDAA #25 STAA $D400 CMP #30 BNE 03 ASR $D450 PSHA LSR $D451 PULLA LDAA $D430 ORAA $78 STAA $D457 LDAB #$56 DECB BRA 8F 2 LDAA #$7F LDAB D400 ABA BNE 03 EOR $D490 STAA $D4E0 LSR $D451 BRA E0 SOM RTI NMI RTI NMI RTI NMI RTI NMI TAREA 1 TAREA 2 Dos tareas operando : El Timer produce un flanco a los 5ms generando una NMI El Timer produce un flanco a los 2ms generando una NMI El Timer produce un flanco a los 5ms generando una NMI Timer uP 6800 NMIOut D7-D0 tiempo C000:

13 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

14 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

15 Sistemas Digitales 2014 FIUNMDP Se prepara una tabla en la RAM del SOM para almacenar los SP de cada una de las 8 tareas. Programa de Inicialización (S.O.M.) RAM de SOM dirdato F000SP tarea 1 parte alta F001SP tarea 1 parte baja F002SP tarea 2 parte alta F003SP tarea 2 parte baja …… F00ESP tarea 8 parte alta F00FSP tarea 8 parte baja E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k

16 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

17 Sistemas Digitales 2014 FIUNMDP La primera vez todas las tareas arrancan desde el stack del programa monitor. Se completan todos los SP con el mismo valor = F0FF Inicializa Stack de tareas temporario: RAM de SOM dirdato F000F0SP tarea 1 parte alta F001FFSP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00EF0SP tarea 8 parte alta F00FFFSP tarea 8 parte baja RAM de SOM Zona inicial de stack de tareas dirdato F0FFlibreSP tarea inicial F100CCR F101AccB F102AccA F103IX parte alta F104IX parte baja F105C0PC parte alta F10601PC parte baja F000 F7FF RAM de SOM 2k

18 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI $MCT=0 ; en zona RAM de SOM Programa SOM

19 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDX #$EFFE Programa SOM

20 Sistemas Digitales 2014 FIUNMDP Usa el IX para moverse en esta tabla. Inicializa el IX con el valor $EFFE que es F000-2, porque va incrementando de a dos el IX porque cada puntero de SP ocupa dos lugares. Inicializa puntero a SP de tareas: RAM de SOM dirdato EFFE EFFF F000SP tarea 1 parte alta F001SP tarea 1 parte baja F002SP tarea 2 parte alta F003SP tarea 2 parte baja …… F00ESP tarea 8 parte alta F00FSP tarea 8 parte baja

21 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI INC $MCT  $MCT=1 (primera tarea) INX INX  IX=F000 (IX apunta al primer puntero de SP de tarea) Programa SOM

22 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDAA $MCT CMPA #$08 BEQ otra_ronda otra_ronda: Ya paso por las 8 tareas, reinicia a la tarea 1. Programa SOM

23 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDAA $E800 ;lee llave ANDA #$01 BEQ otra_tarea Programa SOM

24 Sistemas Digitales 2014 FIUNMDP R/W CS5 A10 A0 E800 CS0 CS1 CS3 CS2 Tarea 3 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea 1 74138 0 1 2 3 4 5 6 7 G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D2 74373 1D 2D 3D 1Q 2Q 3Q Vcc Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 A11 A12 A13 A15 74138 0 1 2 3 4 5 6 7 G1 G2A G2B  2 A14 CS0 CS1CS2 CS3CS4 CS5 CS6 CS7 ROM SOM RAM SOM E/S SOM Timer RAM Tarea n E/S Tarea n ROM tarea n E/S SOM Sel. Tarea Circuito de Decodificación Lee si esta habilitada la tarea 1: LDAA $E800 CS5 R/W A10 A0 E800 ROM tarea n

25 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI STAA $E800 Programa SOM

26 Sistemas Digitales 2014 FIUNMDP CS5 R/W A10 A0 E800 CS0 CS1 CS3 CS2 Tarea 3 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea 1 74138 0 1 2 3 4 5 6 7 G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D2 74373 1D 2D 3D 1Q 2Q 3Q Vcc Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 A11 A12 A13 A15 74138 0 1 2 3 4 5 6 7 G1 G2A G2B  2 A14 CS0 CS1CS2 CS3CS4 CS5 CS6 CS7 ROM SOM RAM SOM RAM Tarea n E/S Tarea n ROM tarea n Circuito de Decodificación Selecciona tarea 1: LDAA #%xxxxx000 STAA $E800 CS5 R/W A10 A0 E800 CS5 E/S SOM Sel. Tarea E/S SOM Timer

27 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDAB $C000; lee 1ra posc de ROM deTarea 1 STAB $E000 Programa SOM

28 Sistemas Digitales 2014 FIUNMDP CS5 R/W A10 A0 E800 CS5 R/W A10 A0 E800 Tarea 3 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea 1 74138 0 1 2 3 4 5 6 7 G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D2 74373 1D 2D 3D 1Q 2Q 3Q Vcc Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 74138 0 1 2 3 4 5 6 7 G1 G2A G2B  2 CS0 CS1CS2 CS3 CS4 CS5 CS6 CS7 ROM SOM RAM SOM E/S SOM Timer RAM Tarea n E/S Tarea n ROM tarea n E/S SOM Sel. Tarea CS3 CS2 CS0 CS1 Circuito de Decodificación Una vez seleccionada la tarea, se puede acceder a la ROM, RAM y E/S de dicha tarea A11 A12 A13 A15 A14

29 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDS 0,x STX $Mx Programa SOM

30 Sistemas Digitales 2014 FIUNMDP Carga el SP con lo que esta en la posición que indica el IX, en la tarea 1 IX=F000. Inicialmente sera SP=F0FF y apunta a zona de RAM del SOM. Pero la próxima vuelta va a tener el SP real que se guardo cuando se interrumpió la tarea, apuntara a zona de RAM de la tarea 1. IX F000 Queda el SP señalando F0FF cuando venga el RTI se incrementa y carga los registros con los datos iniciales LDS 0,x RAM de SOM dirdato F000F0SP tarea 1 parte alta F001FFSP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00EF0SP tarea 8 parte alta F00FFFSP tarea 8 parte baja Carga SP de tarea N: RAM de SOM Zona inicial de stack de tareas dirdato F0FFlibreSP tarea inicial F100CCR_iniCCR F101AccB_iniAccB F102AccA_iniAccA F103IX_hi_iniIX parte alta F104IX_low_iniIX parte baja F105C0PC parte alta F10601PC parte baja

31 Sistemas Digitales 2014 FIUNMDP Carga el SP con lo que esta en la posición que indica el IX, en la tarea 1 IX=F000. La próxima vuelta va a tener el SP real que se guardo cuando se interrumpió la tarea, apuntara a zona de RAM de la tarea 1. IX F000 Queda el SP señalando D800 cuando venga el RTI se incrementa y carga los registros con los datos que se guardaron con el NMI LDS 0,x RAM de SOM dirdato F000D8SP tarea 1 parte alta F00100SP tarea 1 parte baja F002D8SP tarea 2 parte alta F00311SP tarea 2 parte baja ……… F00ED9SP tarea 8 parte alta F00FF0SP tarea 8 parte baja STX $Mx Guarda el IX en una poscision de RAM del SOM para recueprarlo cuando interrumpa la NMI y saber donde guardar el SP de la tarea que se estaba ejecutando: Carga SP de tarea N: RAM de Tarea 1 Zona de stack de la tarea 1 dirdato D800libreSP tarea inicial D80101CCR D80290AccB D80320AccA D80410IX parte alta D80511IX parte baja D806C0PC parte alta D80706PC parte baja

32 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

33 Sistemas Digitales 2014 FIUNMDP Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNE 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k 5 LDS #$D3FF LDAA #25 STAA $D400 CMP #30 BNE 03 ASR $D450 PSHA LSR $D451 PULLA LDAA $D430 ORAA $78 STAA $D457 LDAB #$56 DECB BRA 8F NMI

34 Sistemas Digitales 2014 FIUNMDP Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNE 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD RAM tarea 1 dirdato SP=DFFF 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k SP cuando interrumpe la NMI

35 Sistemas Digitales 2014 FIUNMDP RAM tarea 1 dirdato 82CCR=82 51AccB=51 33AccA=33 0FIX=0F20 20 C0PC=C00D SP=DFFF0D 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea n D800 DFFF D000 D7FF C000 CFFF E/S de Tarea n RAM de Tarea n 2k 4k Guarda Vect estado SP cuando interrumpe la NMI Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNE 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD

36 Sistemas Digitales 2014 FIUNMDP RAM tarea 1 dirdato SP=DFF8 82CCR=82 51AccB=51 33AccA=33 0FIX=0F20 20 C0PC=C00D SP=DFFF0D 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea n D800 DFFF D000 D7FF C000 CFFF E/S de Tarea n RAM de Tarea n 2k 4k Guarda Vect estado SP de Tarea 1 final SP cuando interrumpe la NMI Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNI 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD

37 Sistemas Digitales 2014 FIUNMDP 1) Atención a la NMI 2) Se transfiere el control al S. O. M.  El programa que esta en la dirección guardada en FFFC y FFFD es programa del SOM (zona ROM de SOM)  Tiene que guardar el valor del SP de la tarea que se venia ejecutando, para esto tiene zona de RAM de SOM, dos Bytes para cada Tarea. 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea n D800 DFFF D000 D7FF C000 CFFF E/S de Tarea n RAM de Tarea n 2k 4k RAM de SOM dirdato F000DFSP tarea 1 parte alta F001F8SP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00nF0SP tarea n parte alta F00nFFSP tarea n parte baja SP de Tarea 1 Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer:

38 Sistemas Digitales 2014 FIUNMDP Atención de la NMI: LDX $Mx ; Recupero el IX que guarda la dirección de almacenamiento de la tarea 1 STS 0,X JMP otra_tarea RAM de SOM dirdato F000DFSP tarea 1 parte alta F001F8SP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00nF0SP tarea n parte alta F00nFFSP tarea n parte baja $Mx=F0, $Mx+1=00  IX= F000 Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea n hasta que llega un NMI activado por el Timer: 1) Atención a la NMI 2) Se transfiere el control al S. O. M.  El programa que esta en la dirección guardada en FFFC y FFFD es programa del SOM (zona ROM de SOM)  Tiene que guardar el valor del SP de la tarea que se venia ejecutando, para esto tiene zona de RAM de SOM, dos Bytes para cada Tarea.

39 Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI $MCT=0 INC $MCT INX LDAA $E800 ;lee llave ANDA #$01 BEQ otra_tarea LDS 0,x, STX $Mx STAA $E800 LDAB $C000 STAB $E000 LDX $Mx STS 0,x jmp otra_tarea LDAA $MCT CMPA #$08 BEQ otra_ronda otra_ronda: otra_tarea: LDX #$EFFE Programa SOM

40 Sistemas Digitales 2014 FIUNMDP

41 Mecanismo de transferencia de control de programa con condiciones iniciales: Vector de estado, registros del uP (AccA, AccB, IX, SP, CCR) M082 M151 M233 M30F M420 M52B M600 M710 M80A LDS $M7 ;SP=100A LDAA $M6 PSHA LDAA $M5 PSHA... LDAA $M0 PSHA PROGRAMA EL TIMER RTI 82  CCR=82 51  AccB=51 33  AccA=33 0F  IX=0F20 20 2B  PC=2B00 100A00 SP RTI Retoma el control la Tarea n. Se comienza a ejecutar el programa que hay a partir de la posición almacenada (En el ejemplo 2B00) Para que interrumpa el uP mediante NMI cuando se cumple el tiempo destinado a esa Tarea.

42 Sistemas Digitales 2014 FIUNMDP Se prepara una tabla en la RAM del SOM para almacenar los SP de cada tarea. La primera vez todas las tareas arrancan desde el stack del programa monitor. Programa de Inicialización (S.O.M.) E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) 2k RAM de SOM dirdato F000F0SP tarea 1 parte alta F001FFSP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00nF0SP tarea n parte alta F00nFFSP tarea n parte baja


Descargar ppt "Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema."

Presentaciones similares


Anuncios Google