Hola,
Pongo mi solución al ejercicio. El que quiera hacer aportes, bienvenido sea :-)
Esta en casi C, o sea, hace un rato que no uso C así que use un pseudo C
void main {
//instalar interrupciones: interrumpir()
while true
}
void interrumpir(){
if (in(estado_1) & 1) then
atender1();
else if (in(estado_2) & 1) then
atender2();
else if (in(estado_3) & 1) then
atender3();
}
}
Saludos,
P8ej5 esta es mi solución, alguien la corrige?
Número de respuestas: 3
En respuesta a Juan Pablo Lorier Arismendi
Re: P8ej5 esta es mi solución, alguien la corrige?
Mi solución es similar a la tuya para la parte "a".
// habilito int
while (true) {
while (INT == 0) { // hace algo
}
}
// rutina interrupción, chequea el valor INT == in(Estado_1) & 1, etc
Tengo dudas si el while INT debe ir en el main o no.
Para la parte "b", usé una tabla con estado y prioridad, no se si me compliqué.
Saludos
// habilito int
while (true) {
while (INT == 0) { // hace algo
}
}
// rutina interrupción, chequea el valor INT == in(Estado_1) & 1, etc
Tengo dudas si el while INT debe ir en el main o no.
Para la parte "b", usé una tabla con estado y prioridad, no se si me compliqué.
Saludos
En respuesta a Rossana Guerra Celano
Re: P8ej5 esta es mi solución, alguien la corrige?
Hola Rossana,
Yo en la parte b lo que hice es un array en el que guardo la dirección de memoria de cada estado y asigno arreglo[pri(estado_x]=estado_x.
Como pri me da la prioridad del estado, va a quedar ubicado en la posición que le corresponde y luego simplemente recorro el arreglo de 0..2 con lo que la prioridad siempre se cumpliría. Como se me ocurre de que la prioridad cambia en el tiempo, lo hago cada vez que se llama la interrupción.
Es lo que se me ocurrió.
Yo en la parte b lo que hice es un array en el que guardo la dirección de memoria de cada estado y asigno arreglo[pri(estado_x]=estado_x.
Como pri me da la prioridad del estado, va a quedar ubicado en la posición que le corresponde y luego simplemente recorro el arreglo de 0..2 con lo que la prioridad siempre se cumpliría. Como se me ocurre de que la prioridad cambia en el tiempo, lo hago cada vez que se llama la interrupción.
Es lo que se me ocurrió.
En respuesta a Juan Pablo Lorier Arismendi
Re: P8ej5 esta es mi solución, alguien la corrige?
Gracias, tenía dudas yo hice una 'tabla' array de registros, estado-prioridad, tu solución ahorra eso. .
Saludos
Saludos