Clase Task
![]() |
Entorno. |
Esta clase hereda a la clase mensaje e incluye todo lo referido al TSS, tipo de la tarea, su pila, en fin, todo lo referente a la inicialización de una tarea cualquiera que sea el tipo de esta (Task, Btask, Teclado...) sin entrar en especificaciones propias de cada clase. Posee en la parte privada dos clases amigas, Plan y Teclado. Plan es la tarea padre de todas (planificador) y Teclado sirve para que el planificador pueda tener acceso a la parte protegida del Teclado de cada tarea que lo posea.
![]() |
Grafo. |
Vamos a ver cuales son los miembros atributo y los miembros función del Objeto:
La clase herede mensaje, y clases amigas son Plan y Teclado.
Task | |
Private:
Protected: |
tid tpid tarea tipo |
Protected:
Public: |
setState setCount Task ~Task getState getTid Terminada |
![]() |
Definicion de miembros. |
Atributos
tid
Tipo: ushort.
Cometido:Identifica la tarea. Tiene el mismo valor que su selector de TSS.
tpid
Tipo: ushort.
Cometido: Identifica a la tarea padre. Tiene el mismo valor que el selector de TSS del padre
tarea
Tipo: Ext_Task
Cometido: Estructura a bajo nivel de la tarea. Proviene de extensor.h y contiene los siguientes campos:
- Longitud_pila: uint=tamaño de la pila
- Longitud_LDT: uint=tamaño del LDT
- dpl: uchar=privilegio
- entrada: void *=entrada del código
y devuelve:
- Id: uchar=tid;
- TSS: Ext_TSS far *=devuelve el TSS
- LDT: Ext_LDT far *=Devuelve el LDT
tipo
Tipo:ushort
Cometido:Indica el tipo de tarea (Task, Btask...);
Funciones
setState
setState(m1)
Parametros:
- m1: ushort=Valor que indica activo o terminado.
Cometido: Modifica el estado del campo bits del TSS de la tarea.Puede establecer los valores activo o terminado.
Pseudocódigo:
setState(m1)
Inicio
(Tarea.TSS<>bits)=m1;
Fin.
setCount
setCount(m1)
Parametros:
Cometido: Modifica la variable countdown del TSS de la tarea asignando otro numero de cuantos de la ejecucion.
Pseudocodigo:
setCount(m1)
Inicio
(Tarea.TSS<>countdown)=m1;
Fin
getState
m1 getState()
Parametros:
- m1: ushort=Campo bits del TSS
Cometido: Devolver informacion del estado de la tarea contenido en el campo bits del TSS
Pseudocodigo:
getState()
Inicio
Devuelve (Tarea.TSS->bits)
Fin
getTid
m1 getTid()
Parametros:
- m1: ushort=tid de la tarea
Cometido: Devolver el id de la tarea contenido en el TSS
Pseudocodigo:
getTid()
Inicio
Devuelve(tid)
Fin
Terminada
m1 Terminada()
Parametros:
- m1: ushort=Funcion booleana;
Cometido: Devuelve distinto del cero si el bit 2 del campo bits del TSS es igual a 1, es decir, terminado.
Pseudocodigo:
Terminada()
Inicio
Devuelve(tarea.TSS->bits&0x2);
Fin
Task
Task(m1,m2,m3,m4)
Parametros:
- m1: void *=Puntero a inicio de codigo;
- m2: uint =2048=Tamaño de la pila.
- m3: uint=128=Tamaño del LDT.
- m4: uchar=0=Nivel de privilegio.
Cometido: Constructor de la clase Task.Se le pasan los parametros necesarios para crear una nueva tarea.
Pseudocodigo:
Task(m1,m2,m3,m4)
Inicio
Tarea.entrada=m1;
Tarea.longitud_pila=m2;
Tarea.longitud_LDT=m3;
Tarea.dpl=m4;
Crear_nueva_tarea(Ref. Tarea);
tid=Tarea.ID;
tpid=Identificador de la tarea actual;
tipo=0;
Fin
~Task
~Task()
Cometido: Eliminar la memoria asignada a la tarea y los selectores con su LDT y elimina su entrada de la GDT.
Pseudocodigo:
~Task()
Inicio
Liberar_Tarea();
Fin
Última actualización de la página: 12/03/99
Esta página está hospedada en Consigue tu Página
Web Gratis