You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Se han añadido las llamadas a los metodos que muestran los tics de reloj antes de cada mensaje
3
-
Ej 2:
4
-
a: añadido el CLOCKINT_BIT=9 al interruptLines_CPU del Processor.h. Además tambien hubo que inicializar el vector de interrupciones
5
-
b: Creada la funcion de manejo de interrupciones de reloj
6
-
c: En OperatingSystem_InterruptLogic se ha añadido otro case para CLOCKINT_BIT que llame a OperatingSystem_HandleClockInterrupt
7
-
d: En Clock_Update se ha añadido un if para controlar si han pasado intervalBetweenInterrupts unidades de tiempo. Por alguna razon, si llamo a Processor_RaiseInterruption, entra en bucle infinito, por lo que de momento he llamado a OperatingSystem_InterruptLogic
8
-
Ej 3:
9
-
a: Añadido INTERRUPT_MASKED_BIT=15 a PSW_BITS en Processor.h
10
-
b: Añadidas las lineas que se ordenan en Processor_ShowPSW
11
-
c/e: En Processor_ManageInterrupts se ha hecho la llamada a Processor_ActivatePSW_Bit(INTERRUPT_MASKED_BIT) para que active tambien el bit de enmascarado
12
-
Ej 4:
13
-
Añadidas las llamadas a las funciones debugMessage y showTime en OperatingSystem_HandleClockInterrupt()
14
-
Ej 5:
15
-
Introducida la nueva llamada al sistema de procesos bloqueados
16
-
Añadidas las variables necesarias en el PCB y en OperatingSystem.c y OperatingSystem.h
17
-
Añadida la llamada SYSCALL_SLEEP y en su case correspondiente, llamada a la funcion OperatingSystem_MoveToTheBLOCKEDState, donde se calcula whenToWakeUp y se hacen otras operaciones necesarias
18
-
, ademas de llamar a PintStatus al final del metodo
19
-
Ej 6:
20
-
Añadido un bucle en la funcion OperatingSystem_HandleClockInterrupt para comprobar qué procesos tienen que ser despertados. Si tienen que despertarse se llama a una funcion que lo hace
21
-
Tras mostrar el estado del simulador si ha habido algun cambio, se comprueba si el proceso actual es el que mas prioridad tiene. Si no es asi, se echa y se ejecuta el mas prioritario mostrando el mensaje pertinente
22
-
Si ha habido algun cambio de proceso, se vuelve a imprimir el estado del sistema
23
-
Ej 7:
24
-
Se llama a PrintStatus en los puntos indicados: Al final del tratamiento de SYSCALL_YIELD si ha habido cambio de proceso; al final del tratamiento de SYSCALL_END; al final del manejador de excepciones y al final de la ejecucion del PLP si se ha creado algun proceso
25
-
Ej 8:
26
-
Se ha comentado la llamada a la funcion que imprime la cola de listos dentro de la funcion OperatingSystem_MoveToTheREADYState
0 commit comments