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

Sistemas Digitales 2014 FIUNMDP

MultitareaSistema Operativo Multitarea (SOM):Conjunto de programas que permiten administrar los recursos de un sistema de cómputos.

uP

Tarea

1Tar

ea 2

Tarea

3

Deshab

ilita

da

Placas de tareas

Leds indicadores de «tarea activa» Llaves de habilitación de

tareas

Placa Base (Motherboard)

RAM

ROM

Timer

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

Sistemas Digitales 2014 FIUNMDP

MultitareaSistema 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 t1 t2 t3 Tiempo de máquina

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

Sistemas Digitales 2014 FIUNMDP

RAM de

Tarea

E/S de

Tarea

ROM de

TareaROM

deSOM

RAM de

SOM

E/S de

SOMTimer

uP6800

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

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

Sistemas Digitales 2014 FIUNMDP

2

Tarea 8

C000

Mapeo del Sistema

Multitarea

E000E7FFE800EFFFF000F7FFF800FFFF

DFFF

ROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas8k

2k

2k

2k

2k

Libre de 0000-BFFF

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1

Las tareas están paginadas, ocupan siempre la misma posición de memoria.

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

Sistemas Digitales 2014 FIUNMDP

2

Tarea 8

C000

Multitarea

E000E7FFE800EFFFF000F7FFF800FFFF

DFFF

ROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas8k

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1

Libre de 0000-BFFF

ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4k

Mapeo del Sistema

Placa base

Tareas

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

Sistemas Digitales 2014 FIUNMDP

2

Tarea 8Multitarea

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4kA11A12A13

A15

741380

1

2

3

4

5

6

7G1 G2A G2B

2A14

A15 A14 A13 A12 A11 A10..A0 Dir

1 1 0 0 0 0..0 C000

1 1 0 0 0 1..1 C7FF

1 1 0 0 1 0..0 C800

1 1 0 0 1 1..1 CFFF

1 1 0 1 0 0..0 D000

1 1 0 1 0 1..1 D7FF

1 1 0 1 1 0..0 E000

1 1 0 1 1 1..1 E7FF

1 1 1 0 0 0..0 E800

1 1 1 0 0 1..1 EFFF

. . .

Peso de cada línea 2k

Lógica de decodificación

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

Sistemas Digitales 2014 FIUNMDP

2

Tarea 8Multitarea

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4kA11A12A13

A15

741380

1

2

3

4

5

6

7G1 G2A G2B

2A14

A15 A14 A13 A12 A11 A10..A0 Dir

1 1 0 0 0 0..0 C000

1 1 0 0 0 1..1 C7FF

1 1 0 0 1 0..0 C800

1 1 0 0 1 1..1 CFFF

1 1 0 1 0 0..0 D000

1 1 0 1 0 1..1 D7FF

1 1 0 1 1 0..0 E000

1 1 0 1 1 1..1 E7FF

1 1 1 0 0 0..0 E800

1 1 1 0 0 1..1 EFFF

. . .

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

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

Sistemas Digitales 2014 FIUNMDP

2

Tarea 8Multitarea

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4k

F800-FFFF (ROM SOM)

A11A12A13

A15

741380

1

2

3

4

5

6

7G1 G2A G2B

2A14

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 2kLógica de decodificación

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

Sistemas Digitales 2014 FIUNMDP

Tarea 8

2Tarea 1

ROM de Tarea 1

E/S de Tarea 1

RAM de Tarea 1

74138 012

34567

G1 G2A G2B

Hab. Tarea 1

Vcc

Hab. Tarea 2Hab. Tarea 3

Hab. Tarea 4

Hab. Tarea 5Hab. Tarea 6

Hab. Tarea 7Hab. Tarea 8

D0D1D2

74373

1D2D3D

1Q2Q3Q

Vcc

CS3

CS0

CS2

CS1

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

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

Sistemas Digitales 2014 FIUNMDP

Tarea 8

2Tarea 1

ROM de Tarea 1

E/S de Tarea 1

RAM de Tarea 1

74138 012

34567

G1 G2A G2B

Hab. Tarea 1

Vcc

Hab. Tarea 2Hab. Tarea 3

Hab. Tarea 4

Hab. Tarea 5Hab. Tarea 6

Hab. Tarea 7Hab. Tarea 8

D0D1D2

74373

1D2D3D

1Q2Q3Q

Vcc

CS3

CS0

CS2

CS1

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 #%xxxxx000STAA $E800

Lee si esta habilitada la tarea 1:

LDAA $E800ANDA #%xxxxxxx1

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

Sistemas Digitales 2014 FIUNMDP

2

Tarea 8

Zona de TareasZona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 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

2k

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

Sistemas Digitales 2014 FIUNMDP

2LDAA #$7FLDAB D400ABABNE 03EOR $D490STAA $D4E0LSR $D451BRA E0

5LDS #$D3FFLDAA #25STAA $D400CMP #30BNE 03ASR $D450PSHALSR $D451PULLALDAA $D430ORAA $78STAA $D457LDAB #$56DECBBRA 8F

Reset

SOM

5LDS #$D3FFLDAA #25STAA $D400CMP #30BNE 03ASR $D450PSHALSR $D451PULLALDAA $D430ORAA $78STAA $D457LDAB #$56DECBBRA 8F

2LDAA #$7FLDAB D400ABABNE 03EOR $D490STAA $D4E0LSR $D451BRA E0

SOM SOM SOM

RTI

NMI

RTINMI

RTI

NMI

RTI

NMI

TAREA 1 TAREA 1TAREA 2 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 2ms generando una NMI

El Timer produce un flanco a los 5ms generando una NMI

Timer

uP6800

NMIOutD7-D0

tiempo

C000: C000: C000: C000:

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

Programa SOM

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

Programa SOM

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

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

dir dato

F000 SP tarea 1 parte alta

F001 SP tarea 1 parte baja

F002 SP tarea 2 parte alta

F003 SP tarea 2 parte baja

… …

F00E SP tarea 8 parte alta

F00F SP tarea 8 parte baja

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 1ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4k

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

Programa SOM

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

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

dir dato

F000 F0 SP tarea 1 parte alta

F001 FF SP tarea 1 parte baja

F002 F0 SP tarea 2 parte alta

F003 FF SP tarea 2 parte baja

… … …

F00E F0 SP tarea 8 parte alta

F00F FF SP tarea 8 parte baja

RAM de SOM

Zona inicial de stack de

tareas

dir dato

F0FF libre SP tarea inicial

F100 CCR

F101 AccB

F102 AccA

F103 IX parte alta

F104 IX parte baja

F105 C0 PC parte alta

F106 01 PC parte baja

F000F7FFRAM de SOM2k

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

$MCT=0 ; en zona RAM de SOM

Programa SOM

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

LDX #$EFFE

Programa SOM

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

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

dir dato

EFFE

EFFF

F000 SP tarea 1 parte alta

F001 SP tarea 1 parte baja

F002 SP tarea 2 parte alta

F003 SP tarea 2 parte baja

… …

F00E SP tarea 8 parte alta

F00F SP tarea 8 parte baja

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

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

EjecutaTarea N

NMIGuarda 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

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

LDAA $MCTCMPA #$08BEQ otra_ronda

otra_ronda:

Ya paso por las 8 tareas, reinicia a la tarea 1.

Programa SOM

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

LDAA $E800 ;lee llaveANDA #$01BEQ otra_tarea

Programa SOM

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

Sistemas Digitales 2014 FIUNMDP

R/W

CS5A10

A0

E800

CS0

CS1

CS3

CS2

Tarea 3

2Tarea 1

ROM de Tarea 1

E/S de Tarea 1

RAM de Tarea 1

74138 012

34567

G1 G2A G2B

Hab. Tarea 1

Vcc

Hab. Tarea 2Hab. Tarea 3

Hab. Tarea 4

Hab. Tarea 5Hab. Tarea 6

Hab. Tarea 7Hab. Tarea 8

D0D1D2

74373

1D2D3D

1Q2Q3Q

Vcc

Tarea 2

Led indicador de tarea habilitada

Switch hab tarea 1

Puente de seguridad

CD4503B

D0

A11

A12

A13

A15

74138 01234567

G1 G2A G2B2A14

CS0

CS1

CS2

CS3

CS4

CS5

CS6

CS7ROM 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

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

STAA $E800

Programa SOM

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

Sistemas Digitales 2014 FIUNMDP

CS5

R/W

A10

A0

E800

CS0

CS1

CS3

CS2

Tarea 3

2Tarea 1

ROM de Tarea 1

E/S de Tarea 1

RAM de Tarea 1

74138 012

34567

G1 G2A G2B

Hab. Tarea 1

Vcc

Hab. Tarea 2Hab. Tarea 3

Hab. Tarea 4

Hab. Tarea 5Hab. Tarea 6

Hab. Tarea 7Hab. Tarea 8

D0D1D2

74373

1D2D3D

1Q2Q3Q

Vcc

Tarea 2

Led indicador de tarea habilitada

Switch hab tarea 1

Puente de seguridad

CD4503B

D0

A11

A12

A13

A15

74138 01234567

G1 G2A G2B2A14

CS0

CS1

CS2

CS3

CS4

CS5

CS6

CS7ROM SOM

RAM SOM

RAM Tarea n

E/S Tarea n

ROM tarea n

ROM tarea n

Circuito de Decodificación Selecciona tarea 1:

LDAA #%xxxxx000STAA $E800

CS5

R/W

A10

A0

E800CS5

E/S SOM Sel. Tarea

E/S SOM Timer

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

LDAB $C000; lee 1ra posc de ROM deTarea 1

STAB $E000

Programa SOM

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

Sistemas Digitales 2014 FIUNMDP

CS5

R/W

A10

A0

E800

CS5

R/W

A10

A0

E800

Tarea 3

2Tarea 1

ROM de Tarea 1

E/S de Tarea 1

RAM de Tarea 1

74138 012

34567

G1 G2A G2B

Hab. Tarea 1

Vcc

Hab. Tarea 2Hab. Tarea 3

Hab. Tarea 4

Hab. Tarea 5Hab. Tarea 6

Hab. Tarea 7Hab. Tarea 8

D0D1D2

74373

1D2D3D

1Q2Q3Q

Vcc

Tarea 2

Led indicador de tarea habilitada

Switch hab tarea 1

Puente de seguridad

CD4503B

D0

74138 01234567

G1 G2A G2B2

CS0

CS1

CS2

CS3

CS4

CS5

CS6

CS7ROM SOM

RAM SOM

E/S SOM Timer

RAM Tarea n

E/S Tarea n

ROM tarea n

ROM tarea n

E/S SOM Sel. Tarea

CS3

CS2

CS0

CS1

Circuito de DecodificaciónUna vez seleccionada la tarea, se puede acceder a la ROM, RAM y E/S de dicha tarea

A11

A12

A13

A15A14

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

LDS 0,x STX $Mx

Programa SOM

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

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

dir dato

F000 F0 SP tarea 1 parte alta

F001 FF SP tarea 1 parte baja

F002 F0 SP tarea 2 parte alta

F003 FF SP tarea 2 parte baja

… … …

F00E F0 SP tarea 8 parte alta

F00F FF SP tarea 8 parte baja

Carga SP de tarea N:

RAM de SOM

Zona inicial de stack de tareas

dir dato

F0FF libre SP tarea inicial

F100 CCR_ini CCR

F101 AccB_ini AccB

F102 AccA_ini AccA

F103 IX_hi_ini IX parte alta

F104 IX_low_ini IX parte baja

F105 C0 PC parte alta

F106 01 PC parte baja

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

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

dir dato

F000 D8 SP tarea 1 parte alta

F001 00 SP tarea 1 parte baja

F002 D8 SP tarea 2 parte alta

F003 11 SP tarea 2 parte baja

… … …

F00E D9 SP tarea 8 parte alta

F00F F0 SP 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

dir dato

D800 libre SP tarea inicial

D801 01 CCR

D802 90 AccB

D803 20 AccA

D804 10 IX parte alta

D805 11 IX parte baja

D806 C0 PC parte alta

D807 06 PC parte baja

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

Programa SOM

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

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

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4k

5LDS #$D3FFLDAA #25STAA $D400CMP #30BNE 03ASR $D450PSHALSR $D451PULLALDAA $D430ORAA $78STAA $D457LDAB #$56DECBBRA 8F

NMI

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

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

dir dato

SP= DFFF

2

Tarea 8

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea 1

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea 1

RAM de Tarea 12k

2k

4k

SP cuando interrumpe la NMI

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

Sistemas Digitales 2014 FIUNMDP

RAM tarea 1

dir dato

82 CCR=82

51 AccB=51

33 AccA=33

0F IX=0F20

20

C0 PC=C00D

SP= DFFF 0D

2

Tarea 8

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea n

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea n

RAM de Tarea n2k

2k

4k

GuardaVectestado

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

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

Sistemas Digitales 2014 FIUNMDP

RAM tarea 1

dir dato

SP= DFF8

82 CCR=82

51 AccB=51

33 AccA=33

0F IX=0F20

20

C0 PC=C00D

SP= DFFF 0D

2

Tarea 8

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea n

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea n

RAM de Tarea n2k

2k

4k

GuardaVectestado

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

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

Sistemas Digitales 2014 FIUNMDP

1) Atención a la NMI2) 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

E000E7FFE800EFFFF000F7FFF800FFFFROM de SOM

RAM de SOM

E/S de SOM (Sel Tarea)

E/S de SOM (Timer)

Zona de Tareas

2k

2k

2k

2k

Zona de Tareas

Zona de Tareas

Zona de Tareas

Tarea 7Tarea 6

Tarea 5Tarea 4

Tarea 3Tarea 2

Tarea 1ROM de Tarea n

D800

DFFF

D000D7FF

C000

CFFF

E/S de Tarea n

RAM de Tarea n2k

2k

4k

RAM de SOM

dir dato

F000 DF SP tarea 1 parte alta

F001 F8 SP tarea 1 parte baja

F002 F0 SP tarea 2 parte alta

F003 FF SP tarea 2 parte baja

… … …

F00n F0 SP tarea n parte alta

F00n FF SP 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:

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

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

dir dato

F000 DF SP tarea 1 parte alta

F001 F8 SP tarea 1 parte baja

F002 F0 SP tarea 2 parte alta

F003 FF SP tarea 2 parte baja

… … …

F00n F0 SP tarea n parte alta

F00n FF SP tarea n parte baja

$Mx=F0, $Mx+1=00IX= 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 NMI2) 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.

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

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

EjecutaTarea N

NMIGuarda SP de tarea N

en tabla de SP de tareas

RTI

$MCT=0

INC $MCT INX INX

LDAA $E800 ;lee llaveANDA #$01BEQ otra_tarea

LDS 0,x, STX $Mx

STAA $E800

LDAB $C000

STAB $E000

LDX $Mx STS 0,xjmp otra_tarea

LDAA $MCTCMPA #$08BEQ otra_ronda

otra_ronda:

otra_tarea:

LDX #$EFFE

Programa SOM

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

Sistemas Digitales 2014 FIUNMDP

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

Sistemas Digitales 2014 FIUNMDP

Mecanismo de transferencia de control de programa con condiciones iniciales:Vector de estado, registros del uP (AccA, AccB, IX, SP, CCR)

M0 82

M1 51

M2 33

M3 0F

M4 20

M5 2B

M6 00

M7 10

M8 0A

LDS $M7 ;SP=100ALDAA $M6PSHALDAA $M5PSHA

...LDAA $M0PSHA

PROGRAMA EL TIMER

RTI

82 CCR=82

51 AccB=51

33 AccA=33

0F IX=0F20

20

2B PC=2B00

100A 00SP

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.

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

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

2k

2k

2k

RAM de SOM

dir dato

F000 F0 SP tarea 1 parte alta

F001 FF SP tarea 1 parte baja

F002 F0 SP tarea 2 parte alta

F003 FF SP tarea 2 parte baja

… … …

F00n F0 SP tarea n parte alta

F00n FF SP tarea n parte baja


Top Related