diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..eda67ed
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1759521263644
+
+
+ 1759521263644
+
+
+
+
+ 1759597799461
+
+
+
+ 1759597799461
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/interrupts b/bin/interrupts
new file mode 100644
index 0000000..b9d40a1
Binary files /dev/null and b/bin/interrupts differ
diff --git a/bin/interrupts.exe b/bin/interrupts.exe
new file mode 100644
index 0000000..34b7879
Binary files /dev/null and b/bin/interrupts.exe differ
diff --git a/build.sh b/build.sh
index 1742687..845408e 100644
--- a/build.sh
+++ b/build.sh
@@ -1,6 +1,6 @@
if [ ! -d "bin" ]; then
mkdir bin
else
- rm bin/*
+ rm bin/*
fi
-g++ -g -O0 -I . -o bin/interrupts interrupts.cpp
\ No newline at end of file
+g++ -g -O0 -I . -o bin/interrupts interrupts.cpp
diff --git a/execution.txt b/execution.txt
new file mode 100644
index 0000000..0caaa33
--- /dev/null
+++ b/execution.txt
@@ -0,0 +1,1119 @@
+0, 14, CPU burst
+14, 1, switch to kernel mode
+15, 10, context saved
+25, 1, find vector 5 in memory position 0x000A
+26, 1, load address 0X048B into the PC
+27, 40, ISR for device 5
+67, 40, ISR for device 5
+107, 40, ISR for device 5
+147, 40, ISR for device 5
+187, 40, ISR for device 5
+227, 11, ISR for device 5
+238, 1, IRET
+239, 78, CPU burst
+317, 1, switch to kernel mode
+318, 10, context saved
+328, 1, find vector 5 in memory position 0x000A
+329, 1, load address 0X048B into the PC
+330, 40, ISR for device 5
+370, 40, ISR for device 5
+410, 40, ISR for device 5
+450, 40, ISR for device 5
+490, 40, ISR for device 5
+530, 11, ISR for device 5
+541, 1, IRET
+542, 84, CPU burst
+626, 1, switch to kernel mode
+627, 10, context saved
+637, 1, find vector 16 in memory position 0x0020
+638, 1, load address 0X02DF into the PC
+639, 40, ISR for device 16
+679, 40, ISR for device 16
+719, 40, ISR for device 16
+759, 40, ISR for device 16
+799, 40, ISR for device 16
+839, 40, ISR for device 16
+879, 40, ISR for device 16
+919, 40, ISR for device 16
+959, 40, ISR for device 16
+999, 40, ISR for device 16
+1039, 40, ISR for device 16
+1079, 40, ISR for device 16
+1119, 40, ISR for device 16
+1159, 40, ISR for device 16
+1199, 40, ISR for device 16
+1239, 40, ISR for device 16
+1279, 40, ISR for device 16
+1319, 40, ISR for device 16
+1359, 40, ISR for device 16
+1399, 40, ISR for device 16
+1439, 40, ISR for device 16
+1479, 40, ISR for device 16
+1519, 40, ISR for device 16
+1559, 36, ISR for device 16
+1595, 1, IRET
+1596, 70, CPU burst
+1666, 1, switch to kernel mode
+1667, 10, context saved
+1677, 1, find vector 16 in memory position 0x0020
+1678, 1, load address 0X02DF into the PC
+1679, 40, ISR for device 16
+1719, 40, ISR for device 16
+1759, 40, ISR for device 16
+1799, 40, ISR for device 16
+1839, 40, ISR for device 16
+1879, 40, ISR for device 16
+1919, 40, ISR for device 16
+1959, 40, ISR for device 16
+1999, 40, ISR for device 16
+2039, 40, ISR for device 16
+2079, 40, ISR for device 16
+2119, 40, ISR for device 16
+2159, 40, ISR for device 16
+2199, 40, ISR for device 16
+2239, 40, ISR for device 16
+2279, 40, ISR for device 16
+2319, 40, ISR for device 16
+2359, 40, ISR for device 16
+2399, 40, ISR for device 16
+2439, 40, ISR for device 16
+2479, 40, ISR for device 16
+2519, 40, ISR for device 16
+2559, 40, ISR for device 16
+2599, 36, ISR for device 16
+2635, 1, IRET
+2636, 35, CPU burst
+2671, 1, switch to kernel mode
+2672, 10, context saved
+2682, 1, find vector 9 in memory position 0x0012
+2683, 1, load address 0X036C into the PC
+2684, 40, ISR for device 9
+2724, 40, ISR for device 9
+2764, 40, ISR for device 9
+2804, 36, ISR for device 9
+2840, 1, IRET
+2841, 51, CPU burst
+2892, 1, switch to kernel mode
+2893, 10, context saved
+2903, 1, find vector 9 in memory position 0x0012
+2904, 1, load address 0X036C into the PC
+2905, 40, ISR for device 9
+2945, 40, ISR for device 9
+2985, 40, ISR for device 9
+3025, 36, ISR for device 9
+3061, 1, IRET
+3062, 72, CPU burst
+3134, 1, switch to kernel mode
+3135, 10, context saved
+3145, 1, find vector 2 in memory position 0x0004
+3146, 1, load address 0X0695 into the PC
+3147, 40, ISR for device 2
+3187, 40, ISR for device 2
+3227, 40, ISR for device 2
+3267, 30, ISR for device 2
+3297, 1, IRET
+3298, 99, CPU burst
+3397, 1, switch to kernel mode
+3398, 10, context saved
+3408, 1, find vector 2 in memory position 0x0004
+3409, 1, load address 0X0695 into the PC
+3410, 40, ISR for device 2
+3450, 40, ISR for device 2
+3490, 40, ISR for device 2
+3530, 30, ISR for device 2
+3560, 1, IRET
+3561, 69, CPU burst
+3630, 1, switch to kernel mode
+3631, 10, context saved
+3641, 1, find vector 11 in memory position 0x0016
+3642, 1, load address 0X01F8 into the PC
+3643, 40, ISR for device 11
+3683, 40, ISR for device 11
+3723, 40, ISR for device 11
+3763, 40, ISR for device 11
+3803, 40, ISR for device 11
+3843, 40, ISR for device 11
+3883, 40, ISR for device 11
+3923, 40, ISR for device 11
+3963, 40, ISR for device 11
+4003, 40, ISR for device 11
+4043, 40, ISR for device 11
+4083, 40, ISR for device 11
+4123, 40, ISR for device 11
+4163, 3, ISR for device 11
+4166, 1, IRET
+4167, 70, CPU burst
+4237, 1, switch to kernel mode
+4238, 10, context saved
+4248, 1, find vector 11 in memory position 0x0016
+4249, 1, load address 0X01F8 into the PC
+4250, 40, ISR for device 11
+4290, 40, ISR for device 11
+4330, 40, ISR for device 11
+4370, 40, ISR for device 11
+4410, 40, ISR for device 11
+4450, 40, ISR for device 11
+4490, 40, ISR for device 11
+4530, 40, ISR for device 11
+4570, 40, ISR for device 11
+4610, 40, ISR for device 11
+4650, 40, ISR for device 11
+4690, 40, ISR for device 11
+4730, 40, ISR for device 11
+4770, 3, ISR for device 11
+4773, 1, IRET
+4774, 62, CPU burst
+4836, 1, switch to kernel mode
+4837, 10, context saved
+4847, 1, find vector 19 in memory position 0x0026
+4848, 1, load address 0X0765 into the PC
+4849, 40, ISR for device 19
+4889, 40, ISR for device 19
+4929, 40, ISR for device 19
+4969, 40, ISR for device 19
+5009, 40, ISR for device 19
+5049, 40, ISR for device 19
+5089, 40, ISR for device 19
+5129, 40, ISR for device 19
+5169, 40, ISR for device 19
+5209, 40, ISR for device 19
+5249, 40, ISR for device 19
+5289, 40, ISR for device 19
+5329, 40, ISR for device 19
+5369, 40, ISR for device 19
+5409, 40, ISR for device 19
+5449, 40, ISR for device 19
+5489, 12, ISR for device 19
+5501, 1, IRET
+5502, 34, CPU burst
+5536, 1, switch to kernel mode
+5537, 10, context saved
+5547, 1, find vector 19 in memory position 0x0026
+5548, 1, load address 0X0765 into the PC
+5549, 40, ISR for device 19
+5589, 40, ISR for device 19
+5629, 40, ISR for device 19
+5669, 40, ISR for device 19
+5709, 40, ISR for device 19
+5749, 40, ISR for device 19
+5789, 40, ISR for device 19
+5829, 40, ISR for device 19
+5869, 40, ISR for device 19
+5909, 40, ISR for device 19
+5949, 40, ISR for device 19
+5989, 40, ISR for device 19
+6029, 40, ISR for device 19
+6069, 40, ISR for device 19
+6109, 40, ISR for device 19
+6149, 40, ISR for device 19
+6189, 12, ISR for device 19
+6201, 1, IRET
+6202, 85, CPU burst
+6287, 1, switch to kernel mode
+6288, 10, context saved
+6298, 1, find vector 15 in memory position 0x001E
+6299, 1, load address 0X0584 into the PC
+6300, 40, ISR for device 15
+6340, 28, ISR for device 15
+6368, 1, IRET
+6369, 73, CPU burst
+6442, 1, switch to kernel mode
+6443, 10, context saved
+6453, 1, find vector 15 in memory position 0x001E
+6454, 1, load address 0X0584 into the PC
+6455, 40, ISR for device 15
+6495, 28, ISR for device 15
+6523, 1, IRET
+6524, 26, CPU burst
+6550, 1, switch to kernel mode
+6551, 10, context saved
+6561, 1, find vector 10 in memory position 0x0014
+6562, 1, load address 0X07B0 into the PC
+6563, 40, ISR for device 10
+6603, 40, ISR for device 10
+6643, 40, ISR for device 10
+6683, 40, ISR for device 10
+6723, 40, ISR for device 10
+6763, 40, ISR for device 10
+6803, 40, ISR for device 10
+6843, 40, ISR for device 10
+6883, 40, ISR for device 10
+6923, 40, ISR for device 10
+6963, 40, ISR for device 10
+7003, 40, ISR for device 10
+7043, 40, ISR for device 10
+7083, 40, ISR for device 10
+7123, 4, ISR for device 10
+7127, 1, IRET
+7128, 89, CPU burst
+7217, 1, switch to kernel mode
+7218, 10, context saved
+7228, 1, find vector 10 in memory position 0x0014
+7229, 1, load address 0X07B0 into the PC
+7230, 40, ISR for device 10
+7270, 40, ISR for device 10
+7310, 40, ISR for device 10
+7350, 40, ISR for device 10
+7390, 40, ISR for device 10
+7430, 40, ISR for device 10
+7470, 40, ISR for device 10
+7510, 40, ISR for device 10
+7550, 40, ISR for device 10
+7590, 40, ISR for device 10
+7630, 40, ISR for device 10
+7670, 40, ISR for device 10
+7710, 40, ISR for device 10
+7750, 40, ISR for device 10
+7790, 4, ISR for device 10
+7794, 1, IRET
+7795, 15, CPU burst
+7810, 1, switch to kernel mode
+7811, 10, context saved
+7821, 1, find vector 7 in memory position 0x000E
+7822, 1, load address 0X00BD into the PC
+7823, 40, ISR for device 7
+7863, 40, ISR for device 7
+7903, 40, ISR for device 7
+7943, 32, ISR for device 7
+7975, 1, IRET
+7976, 24, CPU burst
+8000, 1, switch to kernel mode
+8001, 10, context saved
+8011, 1, find vector 7 in memory position 0x000E
+8012, 1, load address 0X00BD into the PC
+8013, 40, ISR for device 7
+8053, 40, ISR for device 7
+8093, 40, ISR for device 7
+8133, 32, ISR for device 7
+8165, 1, IRET
+8166, 23, CPU burst
+8189, 1, switch to kernel mode
+8190, 10, context saved
+8200, 1, find vector 10 in memory position 0x0014
+8201, 1, load address 0X07B0 into the PC
+8202, 40, ISR for device 10
+8242, 40, ISR for device 10
+8282, 40, ISR for device 10
+8322, 40, ISR for device 10
+8362, 40, ISR for device 10
+8402, 40, ISR for device 10
+8442, 40, ISR for device 10
+8482, 40, ISR for device 10
+8522, 40, ISR for device 10
+8562, 40, ISR for device 10
+8602, 40, ISR for device 10
+8642, 40, ISR for device 10
+8682, 40, ISR for device 10
+8722, 40, ISR for device 10
+8762, 4, ISR for device 10
+8766, 1, IRET
+8767, 57, CPU burst
+8824, 1, switch to kernel mode
+8825, 10, context saved
+8835, 1, find vector 10 in memory position 0x0014
+8836, 1, load address 0X07B0 into the PC
+8837, 40, ISR for device 10
+8877, 40, ISR for device 10
+8917, 40, ISR for device 10
+8957, 40, ISR for device 10
+8997, 40, ISR for device 10
+9037, 40, ISR for device 10
+9077, 40, ISR for device 10
+9117, 40, ISR for device 10
+9157, 40, ISR for device 10
+9197, 40, ISR for device 10
+9237, 40, ISR for device 10
+9277, 40, ISR for device 10
+9317, 40, ISR for device 10
+9357, 40, ISR for device 10
+9397, 4, ISR for device 10
+9401, 1, IRET
+9402, 11, CPU burst
+9413, 1, switch to kernel mode
+9414, 10, context saved
+9424, 1, find vector 4 in memory position 0x0008
+9425, 1, load address 0X0292 into the PC
+9426, 40, ISR for device 4
+9466, 40, ISR for device 4
+9506, 40, ISR for device 4
+9546, 40, ISR for device 4
+9586, 40, ISR for device 4
+9626, 40, ISR for device 4
+9666, 10, ISR for device 4
+9676, 1, IRET
+9677, 100, CPU burst
+9777, 1, switch to kernel mode
+9778, 10, context saved
+9788, 1, find vector 4 in memory position 0x0008
+9789, 1, load address 0X0292 into the PC
+9790, 40, ISR for device 4
+9830, 40, ISR for device 4
+9870, 40, ISR for device 4
+9910, 40, ISR for device 4
+9950, 40, ISR for device 4
+9990, 40, ISR for device 4
+10030, 10, ISR for device 4
+10040, 1, IRET
+10041, 73, CPU burst
+10114, 1, switch to kernel mode
+10115, 10, context saved
+10125, 1, find vector 11 in memory position 0x0016
+10126, 1, load address 0X01F8 into the PC
+10127, 40, ISR for device 11
+10167, 40, ISR for device 11
+10207, 40, ISR for device 11
+10247, 40, ISR for device 11
+10287, 40, ISR for device 11
+10327, 40, ISR for device 11
+10367, 40, ISR for device 11
+10407, 40, ISR for device 11
+10447, 40, ISR for device 11
+10487, 40, ISR for device 11
+10527, 40, ISR for device 11
+10567, 40, ISR for device 11
+10607, 40, ISR for device 11
+10647, 3, ISR for device 11
+10650, 1, IRET
+10651, 18, CPU burst
+10669, 1, switch to kernel mode
+10670, 10, context saved
+10680, 1, find vector 11 in memory position 0x0016
+10681, 1, load address 0X01F8 into the PC
+10682, 40, ISR for device 11
+10722, 40, ISR for device 11
+10762, 40, ISR for device 11
+10802, 40, ISR for device 11
+10842, 40, ISR for device 11
+10882, 40, ISR for device 11
+10922, 40, ISR for device 11
+10962, 40, ISR for device 11
+11002, 40, ISR for device 11
+11042, 40, ISR for device 11
+11082, 40, ISR for device 11
+11122, 40, ISR for device 11
+11162, 40, ISR for device 11
+11202, 3, ISR for device 11
+11205, 1, IRET
+11206, 34, CPU burst
+11240, 1, switch to kernel mode
+11241, 10, context saved
+11251, 1, find vector 4 in memory position 0x0008
+11252, 1, load address 0X0292 into the PC
+11253, 40, ISR for device 4
+11293, 40, ISR for device 4
+11333, 40, ISR for device 4
+11373, 40, ISR for device 4
+11413, 40, ISR for device 4
+11453, 40, ISR for device 4
+11493, 10, ISR for device 4
+11503, 1, IRET
+11504, 65, CPU burst
+11569, 1, switch to kernel mode
+11570, 10, context saved
+11580, 1, find vector 4 in memory position 0x0008
+11581, 1, load address 0X0292 into the PC
+11582, 40, ISR for device 4
+11622, 40, ISR for device 4
+11662, 40, ISR for device 4
+11702, 40, ISR for device 4
+11742, 40, ISR for device 4
+11782, 40, ISR for device 4
+11822, 10, ISR for device 4
+11832, 1, IRET
+11833, 77, CPU burst
+11910, 1, switch to kernel mode
+11911, 10, context saved
+11921, 1, find vector 15 in memory position 0x001E
+11922, 1, load address 0X0584 into the PC
+11923, 40, ISR for device 15
+11963, 28, ISR for device 15
+11991, 1, IRET
+11992, 31, CPU burst
+12023, 1, switch to kernel mode
+12024, 10, context saved
+12034, 1, find vector 15 in memory position 0x001E
+12035, 1, load address 0X0584 into the PC
+12036, 40, ISR for device 15
+12076, 28, ISR for device 15
+12104, 1, IRET
+12105, 18, CPU burst
+12123, 1, switch to kernel mode
+12124, 10, context saved
+12134, 1, find vector 6 in memory position 0x000C
+12135, 1, load address 0X0639 into the PC
+12136, 40, ISR for device 6
+12176, 40, ISR for device 6
+12216, 40, ISR for device 6
+12256, 40, ISR for device 6
+12296, 40, ISR for device 6
+12336, 40, ISR for device 6
+12376, 25, ISR for device 6
+12401, 1, IRET
+12402, 84, CPU burst
+12486, 1, switch to kernel mode
+12487, 10, context saved
+12497, 1, find vector 6 in memory position 0x000C
+12498, 1, load address 0X0639 into the PC
+12499, 40, ISR for device 6
+12539, 40, ISR for device 6
+12579, 40, ISR for device 6
+12619, 40, ISR for device 6
+12659, 40, ISR for device 6
+12699, 40, ISR for device 6
+12739, 25, ISR for device 6
+12764, 1, IRET
+12765, 39, CPU burst
+12804, 1, switch to kernel mode
+12805, 10, context saved
+12815, 1, find vector 6 in memory position 0x000C
+12816, 1, load address 0X0639 into the PC
+12817, 40, ISR for device 6
+12857, 40, ISR for device 6
+12897, 40, ISR for device 6
+12937, 40, ISR for device 6
+12977, 40, ISR for device 6
+13017, 40, ISR for device 6
+13057, 25, ISR for device 6
+13082, 1, IRET
+13083, 41, CPU burst
+13124, 1, switch to kernel mode
+13125, 10, context saved
+13135, 1, find vector 6 in memory position 0x000C
+13136, 1, load address 0X0639 into the PC
+13137, 40, ISR for device 6
+13177, 40, ISR for device 6
+13217, 40, ISR for device 6
+13257, 40, ISR for device 6
+13297, 40, ISR for device 6
+13337, 40, ISR for device 6
+13377, 25, ISR for device 6
+13402, 1, IRET
+13403, 95, CPU burst
+13498, 1, switch to kernel mode
+13499, 10, context saved
+13509, 1, find vector 14 in memory position 0x001C
+13510, 1, load address 0X0165 into the PC
+13511, 40, ISR for device 14
+13551, 40, ISR for device 14
+13591, 40, ISR for device 14
+13631, 40, ISR for device 14
+13671, 40, ISR for device 14
+13711, 40, ISR for device 14
+13751, 40, ISR for device 14
+13791, 40, ISR for device 14
+13831, 40, ISR for device 14
+13871, 40, ISR for device 14
+13911, 40, ISR for device 14
+13951, 16, ISR for device 14
+13967, 1, IRET
+13968, 16, CPU burst
+13984, 1, switch to kernel mode
+13985, 10, context saved
+13995, 1, find vector 14 in memory position 0x001C
+13996, 1, load address 0X0165 into the PC
+13997, 40, ISR for device 14
+14037, 40, ISR for device 14
+14077, 40, ISR for device 14
+14117, 40, ISR for device 14
+14157, 40, ISR for device 14
+14197, 40, ISR for device 14
+14237, 40, ISR for device 14
+14277, 40, ISR for device 14
+14317, 40, ISR for device 14
+14357, 40, ISR for device 14
+14397, 40, ISR for device 14
+14437, 16, ISR for device 14
+14453, 1, IRET
+14454, 24, CPU burst
+14478, 1, switch to kernel mode
+14479, 10, context saved
+14489, 1, find vector 2 in memory position 0x0004
+14490, 1, load address 0X0695 into the PC
+14491, 40, ISR for device 2
+14531, 40, ISR for device 2
+14571, 40, ISR for device 2
+14611, 30, ISR for device 2
+14641, 1, IRET
+14642, 26, CPU burst
+14668, 1, switch to kernel mode
+14669, 10, context saved
+14679, 1, find vector 2 in memory position 0x0004
+14680, 1, load address 0X0695 into the PC
+14681, 40, ISR for device 2
+14721, 40, ISR for device 2
+14761, 40, ISR for device 2
+14801, 30, ISR for device 2
+14831, 1, IRET
+14832, 90, CPU burst
+14922, 1, switch to kernel mode
+14923, 10, context saved
+14933, 1, find vector 15 in memory position 0x001E
+14934, 1, load address 0X0584 into the PC
+14935, 40, ISR for device 15
+14975, 28, ISR for device 15
+15003, 1, IRET
+15004, 76, CPU burst
+15080, 1, switch to kernel mode
+15081, 10, context saved
+15091, 1, find vector 15 in memory position 0x001E
+15092, 1, load address 0X0584 into the PC
+15093, 40, ISR for device 15
+15133, 28, ISR for device 15
+15161, 1, IRET
+15162, 37, CPU burst
+15199, 1, switch to kernel mode
+15200, 10, context saved
+15210, 1, find vector 14 in memory position 0x001C
+15211, 1, load address 0X0165 into the PC
+15212, 40, ISR for device 14
+15252, 40, ISR for device 14
+15292, 40, ISR for device 14
+15332, 40, ISR for device 14
+15372, 40, ISR for device 14
+15412, 40, ISR for device 14
+15452, 40, ISR for device 14
+15492, 40, ISR for device 14
+15532, 40, ISR for device 14
+15572, 40, ISR for device 14
+15612, 40, ISR for device 14
+15652, 16, ISR for device 14
+15668, 1, IRET
+15669, 28, CPU burst
+15697, 1, switch to kernel mode
+15698, 10, context saved
+15708, 1, find vector 14 in memory position 0x001C
+15709, 1, load address 0X0165 into the PC
+15710, 40, ISR for device 14
+15750, 40, ISR for device 14
+15790, 40, ISR for device 14
+15830, 40, ISR for device 14
+15870, 40, ISR for device 14
+15910, 40, ISR for device 14
+15950, 40, ISR for device 14
+15990, 40, ISR for device 14
+16030, 40, ISR for device 14
+16070, 40, ISR for device 14
+16110, 40, ISR for device 14
+16150, 16, ISR for device 14
+16166, 1, IRET
+16167, 92, CPU burst
+16259, 1, switch to kernel mode
+16260, 10, context saved
+16270, 1, find vector 19 in memory position 0x0026
+16271, 1, load address 0X0765 into the PC
+16272, 40, ISR for device 19
+16312, 40, ISR for device 19
+16352, 40, ISR for device 19
+16392, 40, ISR for device 19
+16432, 40, ISR for device 19
+16472, 40, ISR for device 19
+16512, 40, ISR for device 19
+16552, 40, ISR for device 19
+16592, 40, ISR for device 19
+16632, 40, ISR for device 19
+16672, 40, ISR for device 19
+16712, 40, ISR for device 19
+16752, 40, ISR for device 19
+16792, 40, ISR for device 19
+16832, 40, ISR for device 19
+16872, 40, ISR for device 19
+16912, 12, ISR for device 19
+16924, 1, IRET
+16925, 24, CPU burst
+16949, 1, switch to kernel mode
+16950, 10, context saved
+16960, 1, find vector 19 in memory position 0x0026
+16961, 1, load address 0X0765 into the PC
+16962, 40, ISR for device 19
+17002, 40, ISR for device 19
+17042, 40, ISR for device 19
+17082, 40, ISR for device 19
+17122, 40, ISR for device 19
+17162, 40, ISR for device 19
+17202, 40, ISR for device 19
+17242, 40, ISR for device 19
+17282, 40, ISR for device 19
+17322, 40, ISR for device 19
+17362, 40, ISR for device 19
+17402, 40, ISR for device 19
+17442, 40, ISR for device 19
+17482, 40, ISR for device 19
+17522, 40, ISR for device 19
+17562, 40, ISR for device 19
+17602, 12, ISR for device 19
+17614, 1, IRET
+17615, 74, CPU burst
+17689, 1, switch to kernel mode
+17690, 10, context saved
+17700, 1, find vector 16 in memory position 0x0020
+17701, 1, load address 0X02DF into the PC
+17702, 40, ISR for device 16
+17742, 40, ISR for device 16
+17782, 40, ISR for device 16
+17822, 40, ISR for device 16
+17862, 40, ISR for device 16
+17902, 40, ISR for device 16
+17942, 40, ISR for device 16
+17982, 40, ISR for device 16
+18022, 40, ISR for device 16
+18062, 40, ISR for device 16
+18102, 40, ISR for device 16
+18142, 40, ISR for device 16
+18182, 40, ISR for device 16
+18222, 40, ISR for device 16
+18262, 40, ISR for device 16
+18302, 40, ISR for device 16
+18342, 40, ISR for device 16
+18382, 40, ISR for device 16
+18422, 40, ISR for device 16
+18462, 40, ISR for device 16
+18502, 40, ISR for device 16
+18542, 40, ISR for device 16
+18582, 40, ISR for device 16
+18622, 36, ISR for device 16
+18658, 1, IRET
+18659, 11, CPU burst
+18670, 1, switch to kernel mode
+18671, 10, context saved
+18681, 1, find vector 16 in memory position 0x0020
+18682, 1, load address 0X02DF into the PC
+18683, 40, ISR for device 16
+18723, 40, ISR for device 16
+18763, 40, ISR for device 16
+18803, 40, ISR for device 16
+18843, 40, ISR for device 16
+18883, 40, ISR for device 16
+18923, 40, ISR for device 16
+18963, 40, ISR for device 16
+19003, 40, ISR for device 16
+19043, 40, ISR for device 16
+19083, 40, ISR for device 16
+19123, 40, ISR for device 16
+19163, 40, ISR for device 16
+19203, 40, ISR for device 16
+19243, 40, ISR for device 16
+19283, 40, ISR for device 16
+19323, 40, ISR for device 16
+19363, 40, ISR for device 16
+19403, 40, ISR for device 16
+19443, 40, ISR for device 16
+19483, 40, ISR for device 16
+19523, 40, ISR for device 16
+19563, 40, ISR for device 16
+19603, 36, ISR for device 16
+19639, 1, IRET
+19640, 26, CPU burst
+19666, 1, switch to kernel mode
+19667, 10, context saved
+19677, 1, find vector 1 in memory position 0x0002
+19678, 1, load address 0X029C into the PC
+19679, 40, ISR for device 1
+19719, 40, ISR for device 1
+19759, 20, ISR for device 1
+19779, 1, IRET
+19780, 55, CPU burst
+19835, 1, switch to kernel mode
+19836, 10, context saved
+19846, 1, find vector 1 in memory position 0x0002
+19847, 1, load address 0X029C into the PC
+19848, 40, ISR for device 1
+19888, 40, ISR for device 1
+19928, 20, ISR for device 1
+19948, 1, IRET
+19949, 43, CPU burst
+19992, 1, switch to kernel mode
+19993, 10, context saved
+20003, 1, find vector 19 in memory position 0x0026
+20004, 1, load address 0X0765 into the PC
+20005, 40, ISR for device 19
+20045, 40, ISR for device 19
+20085, 40, ISR for device 19
+20125, 40, ISR for device 19
+20165, 40, ISR for device 19
+20205, 40, ISR for device 19
+20245, 40, ISR for device 19
+20285, 40, ISR for device 19
+20325, 40, ISR for device 19
+20365, 40, ISR for device 19
+20405, 40, ISR for device 19
+20445, 40, ISR for device 19
+20485, 40, ISR for device 19
+20525, 40, ISR for device 19
+20565, 40, ISR for device 19
+20605, 40, ISR for device 19
+20645, 12, ISR for device 19
+20657, 1, IRET
+20658, 80, CPU burst
+20738, 1, switch to kernel mode
+20739, 10, context saved
+20749, 1, find vector 19 in memory position 0x0026
+20750, 1, load address 0X0765 into the PC
+20751, 40, ISR for device 19
+20791, 40, ISR for device 19
+20831, 40, ISR for device 19
+20871, 40, ISR for device 19
+20911, 40, ISR for device 19
+20951, 40, ISR for device 19
+20991, 40, ISR for device 19
+21031, 40, ISR for device 19
+21071, 40, ISR for device 19
+21111, 40, ISR for device 19
+21151, 40, ISR for device 19
+21191, 40, ISR for device 19
+21231, 40, ISR for device 19
+21271, 40, ISR for device 19
+21311, 40, ISR for device 19
+21351, 40, ISR for device 19
+21391, 12, ISR for device 19
+21403, 1, IRET
+21404, 95, CPU burst
+21499, 1, switch to kernel mode
+21500, 10, context saved
+21510, 1, find vector 1 in memory position 0x0002
+21511, 1, load address 0X029C into the PC
+21512, 40, ISR for device 1
+21552, 40, ISR for device 1
+21592, 20, ISR for device 1
+21612, 1, IRET
+21613, 98, CPU burst
+21711, 1, switch to kernel mode
+21712, 10, context saved
+21722, 1, find vector 1 in memory position 0x0002
+21723, 1, load address 0X029C into the PC
+21724, 40, ISR for device 1
+21764, 40, ISR for device 1
+21804, 20, ISR for device 1
+21824, 1, IRET
+21825, 47, CPU burst
+21872, 1, switch to kernel mode
+21873, 10, context saved
+21883, 1, find vector 8 in memory position 0x0010
+21884, 1, load address 0X06EF into the PC
+21885, 40, ISR for device 8
+21925, 40, ISR for device 8
+21965, 40, ISR for device 8
+22005, 40, ISR for device 8
+22045, 40, ISR for device 8
+22085, 40, ISR for device 8
+22125, 40, ISR for device 8
+22165, 40, ISR for device 8
+22205, 40, ISR for device 8
+22245, 40, ISR for device 8
+22285, 40, ISR for device 8
+22325, 40, ISR for device 8
+22365, 40, ISR for device 8
+22405, 40, ISR for device 8
+22445, 40, ISR for device 8
+22485, 40, ISR for device 8
+22525, 40, ISR for device 8
+22565, 40, ISR for device 8
+22605, 40, ISR for device 8
+22645, 40, ISR for device 8
+22685, 40, ISR for device 8
+22725, 40, ISR for device 8
+22765, 40, ISR for device 8
+22805, 40, ISR for device 8
+22845, 40, ISR for device 8
+22885, 1, IRET
+22886, 20, CPU burst
+22906, 1, switch to kernel mode
+22907, 10, context saved
+22917, 1, find vector 8 in memory position 0x0010
+22918, 1, load address 0X06EF into the PC
+22919, 40, ISR for device 8
+22959, 40, ISR for device 8
+22999, 40, ISR for device 8
+23039, 40, ISR for device 8
+23079, 40, ISR for device 8
+23119, 40, ISR for device 8
+23159, 40, ISR for device 8
+23199, 40, ISR for device 8
+23239, 40, ISR for device 8
+23279, 40, ISR for device 8
+23319, 40, ISR for device 8
+23359, 40, ISR for device 8
+23399, 40, ISR for device 8
+23439, 40, ISR for device 8
+23479, 40, ISR for device 8
+23519, 40, ISR for device 8
+23559, 40, ISR for device 8
+23599, 40, ISR for device 8
+23639, 40, ISR for device 8
+23679, 40, ISR for device 8
+23719, 40, ISR for device 8
+23759, 40, ISR for device 8
+23799, 40, ISR for device 8
+23839, 40, ISR for device 8
+23879, 40, ISR for device 8
+23919, 1, IRET
+23920, 29, CPU burst
+23949, 99, CPU burst
+24048, 38, CPU burst
+24086, 1, switch to kernel mode
+24087, 10, context saved
+24097, 1, find vector 19 in memory position 0x0026
+24098, 1, load address 0X0765 into the PC
+24099, 40, ISR for device 19
+24139, 40, ISR for device 19
+24179, 40, ISR for device 19
+24219, 40, ISR for device 19
+24259, 40, ISR for device 19
+24299, 40, ISR for device 19
+24339, 40, ISR for device 19
+24379, 40, ISR for device 19
+24419, 40, ISR for device 19
+24459, 40, ISR for device 19
+24499, 40, ISR for device 19
+24539, 40, ISR for device 19
+24579, 40, ISR for device 19
+24619, 40, ISR for device 19
+24659, 40, ISR for device 19
+24699, 40, ISR for device 19
+24739, 12, ISR for device 19
+24751, 1, IRET
+24752, 75, CPU burst
+24827, 1, switch to kernel mode
+24828, 10, context saved
+24838, 1, find vector 19 in memory position 0x0026
+24839, 1, load address 0X0765 into the PC
+24840, 40, ISR for device 19
+24880, 40, ISR for device 19
+24920, 40, ISR for device 19
+24960, 40, ISR for device 19
+25000, 40, ISR for device 19
+25040, 40, ISR for device 19
+25080, 40, ISR for device 19
+25120, 40, ISR for device 19
+25160, 40, ISR for device 19
+25200, 40, ISR for device 19
+25240, 40, ISR for device 19
+25280, 40, ISR for device 19
+25320, 40, ISR for device 19
+25360, 40, ISR for device 19
+25400, 40, ISR for device 19
+25440, 40, ISR for device 19
+25480, 12, ISR for device 19
+25492, 1, IRET
+25493, 16, CPU burst
+25509, 1, switch to kernel mode
+25510, 10, context saved
+25520, 1, find vector 4 in memory position 0x0008
+25521, 1, load address 0X0292 into the PC
+25522, 40, ISR for device 4
+25562, 40, ISR for device 4
+25602, 40, ISR for device 4
+25642, 40, ISR for device 4
+25682, 40, ISR for device 4
+25722, 40, ISR for device 4
+25762, 10, ISR for device 4
+25772, 1, IRET
+25773, 23, CPU burst
+25796, 1, switch to kernel mode
+25797, 10, context saved
+25807, 1, find vector 4 in memory position 0x0008
+25808, 1, load address 0X0292 into the PC
+25809, 40, ISR for device 4
+25849, 40, ISR for device 4
+25889, 40, ISR for device 4
+25929, 40, ISR for device 4
+25969, 40, ISR for device 4
+26009, 40, ISR for device 4
+26049, 10, ISR for device 4
+26059, 1, IRET
+26060, 47, CPU burst
+26107, 1, switch to kernel mode
+26108, 10, context saved
+26118, 1, find vector 11 in memory position 0x0016
+26119, 1, load address 0X01F8 into the PC
+26120, 40, ISR for device 11
+26160, 40, ISR for device 11
+26200, 40, ISR for device 11
+26240, 40, ISR for device 11
+26280, 40, ISR for device 11
+26320, 40, ISR for device 11
+26360, 40, ISR for device 11
+26400, 40, ISR for device 11
+26440, 40, ISR for device 11
+26480, 40, ISR for device 11
+26520, 40, ISR for device 11
+26560, 40, ISR for device 11
+26600, 40, ISR for device 11
+26640, 3, ISR for device 11
+26643, 1, IRET
+26644, 17, CPU burst
+26661, 1, switch to kernel mode
+26662, 10, context saved
+26672, 1, find vector 11 in memory position 0x0016
+26673, 1, load address 0X01F8 into the PC
+26674, 40, ISR for device 11
+26714, 40, ISR for device 11
+26754, 40, ISR for device 11
+26794, 40, ISR for device 11
+26834, 40, ISR for device 11
+26874, 40, ISR for device 11
+26914, 40, ISR for device 11
+26954, 40, ISR for device 11
+26994, 40, ISR for device 11
+27034, 40, ISR for device 11
+27074, 40, ISR for device 11
+27114, 40, ISR for device 11
+27154, 40, ISR for device 11
+27194, 3, ISR for device 11
+27197, 1, IRET
+27198, 39, CPU burst
+27237, 1, switch to kernel mode
+27238, 10, context saved
+27248, 1, find vector 19 in memory position 0x0026
+27249, 1, load address 0X0765 into the PC
+27250, 40, ISR for device 19
+27290, 40, ISR for device 19
+27330, 40, ISR for device 19
+27370, 40, ISR for device 19
+27410, 40, ISR for device 19
+27450, 40, ISR for device 19
+27490, 40, ISR for device 19
+27530, 40, ISR for device 19
+27570, 40, ISR for device 19
+27610, 40, ISR for device 19
+27650, 40, ISR for device 19
+27690, 40, ISR for device 19
+27730, 40, ISR for device 19
+27770, 40, ISR for device 19
+27810, 40, ISR for device 19
+27850, 40, ISR for device 19
+27890, 12, ISR for device 19
+27902, 1, IRET
+27903, 48, CPU burst
+27951, 1, switch to kernel mode
+27952, 10, context saved
+27962, 1, find vector 19 in memory position 0x0026
+27963, 1, load address 0X0765 into the PC
+27964, 40, ISR for device 19
+28004, 40, ISR for device 19
+28044, 40, ISR for device 19
+28084, 40, ISR for device 19
+28124, 40, ISR for device 19
+28164, 40, ISR for device 19
+28204, 40, ISR for device 19
+28244, 40, ISR for device 19
+28284, 40, ISR for device 19
+28324, 40, ISR for device 19
+28364, 40, ISR for device 19
+28404, 40, ISR for device 19
+28444, 40, ISR for device 19
+28484, 40, ISR for device 19
+28524, 40, ISR for device 19
+28564, 40, ISR for device 19
+28604, 12, ISR for device 19
+28616, 1, IRET
+28617, 45, CPU burst
+28662, 1, switch to kernel mode
+28663, 10, context saved
+28673, 1, find vector 12 in memory position 0x0018
+28674, 1, load address 0X03B9 into the PC
+28675, 40, ISR for device 12
+28715, 40, ISR for device 12
+28755, 40, ISR for device 12
+28795, 25, ISR for device 12
+28820, 1, IRET
+28821, 83, CPU burst
+28904, 1, switch to kernel mode
+28905, 10, context saved
+28915, 1, find vector 12 in memory position 0x0018
+28916, 1, load address 0X03B9 into the PC
+28917, 40, ISR for device 12
+28957, 40, ISR for device 12
+28997, 40, ISR for device 12
+29037, 25, ISR for device 12
+29062, 1, IRET
+29063, 68, CPU burst
+29131, 100, CPU burst
+29231, 61, CPU burst
+29292, 1, switch to kernel mode
+29293, 10, context saved
+29303, 1, find vector 11 in memory position 0x0016
+29304, 1, load address 0X01F8 into the PC
+29305, 40, ISR for device 11
+29345, 40, ISR for device 11
+29385, 40, ISR for device 11
+29425, 40, ISR for device 11
+29465, 40, ISR for device 11
+29505, 40, ISR for device 11
+29545, 40, ISR for device 11
+29585, 40, ISR for device 11
+29625, 40, ISR for device 11
+29665, 40, ISR for device 11
+29705, 40, ISR for device 11
+29745, 40, ISR for device 11
+29785, 40, ISR for device 11
+29825, 3, ISR for device 11
+29828, 1, IRET
+29829, 96, CPU burst
+29925, 1, switch to kernel mode
+29926, 10, context saved
+29936, 1, find vector 11 in memory position 0x0016
+29937, 1, load address 0X01F8 into the PC
+29938, 40, ISR for device 11
+29978, 40, ISR for device 11
+30018, 40, ISR for device 11
+30058, 40, ISR for device 11
+30098, 40, ISR for device 11
+30138, 40, ISR for device 11
+30178, 40, ISR for device 11
+30218, 40, ISR for device 11
+30258, 40, ISR for device 11
+30298, 40, ISR for device 11
+30338, 40, ISR for device 11
+30378, 40, ISR for device 11
+30418, 40, ISR for device 11
+30458, 3, ISR for device 11
+30461, 1, IRET
+30462, 88, CPU burst
+30550, 1, switch to kernel mode
+30551, 10, context saved
+30561, 1, find vector 2 in memory position 0x0004
+30562, 1, load address 0X0695 into the PC
+30563, 40, ISR for device 2
+30603, 40, ISR for device 2
+30643, 40, ISR for device 2
+30683, 30, ISR for device 2
+30713, 1, IRET
+30714, 42, CPU burst
+30756, 1, switch to kernel mode
+30757, 10, context saved
+30767, 1, find vector 2 in memory position 0x0004
+30768, 1, load address 0X0695 into the PC
+30769, 40, ISR for device 2
+30809, 40, ISR for device 2
+30849, 40, ISR for device 2
+30889, 30, ISR for device 2
+30919, 1, IRET
+30920, 41, CPU burst
+30961, 1, switch to kernel mode
+30962, 10, context saved
+30972, 1, find vector 3 in memory position 0x0006
+30973, 1, load address 0X042B into the PC
+30974, 40, ISR for device 3
+31014, 40, ISR for device 3
+31054, 40, ISR for device 3
+31094, 40, ISR for device 3
+31134, 40, ISR for device 3
+31174, 40, ISR for device 3
+31214, 40, ISR for device 3
+31254, 20, ISR for device 3
+31274, 1, IRET
+31275, 73, CPU burst
+31348, 1, switch to kernel mode
+31349, 10, context saved
+31359, 1, find vector 3 in memory position 0x0006
+31360, 1, load address 0X042B into the PC
+31361, 40, ISR for device 3
+31401, 40, ISR for device 3
+31441, 40, ISR for device 3
+31481, 40, ISR for device 3
+31521, 40, ISR for device 3
+31561, 40, ISR for device 3
+31601, 40, ISR for device 3
+31641, 20, ISR for device 3
+31661, 1, IRET
+31662, 52, CPU burst
diff --git a/execution_trace_1.txt b/execution_trace_1.txt
new file mode 100644
index 0000000..2c55708
--- /dev/null
+++ b/execution_trace_1.txt
@@ -0,0 +1,139 @@
+0, 75, CPU burst
+75, 1, switch to kernel mode
+76, 10, context saved
+86, 1, find vector 5 in memory position 0x000A
+87, 1, load address 0X048B into the PC
+88, 40, ISR for device 5
+128, 40, ISR for device 5
+168, 40, ISR for device 5
+208, 40, ISR for device 5
+248, 40, ISR for device 5
+288, 11, ISR for device 5
+299, 1, IRET
+300, 84, CPU burst
+384, 1, switch to kernel mode
+385, 10, context saved
+395, 1, find vector 5 in memory position 0x000A
+396, 1, load address 0X048B into the PC
+397, 40, ISR for device 5
+437, 40, ISR for device 5
+477, 40, ISR for device 5
+517, 40, ISR for device 5
+557, 40, ISR for device 5
+597, 11, ISR for device 5
+608, 1, IRET
+609, 22, CPU burst
+631, 1, switch to kernel mode
+632, 10, context saved
+642, 1, find vector 10 in memory position 0x0014
+643, 1, load address 0X07B0 into the PC
+644, 40, ISR for device 10
+684, 40, ISR for device 10
+724, 40, ISR for device 10
+764, 40, ISR for device 10
+804, 40, ISR for device 10
+844, 40, ISR for device 10
+884, 40, ISR for device 10
+924, 40, ISR for device 10
+964, 40, ISR for device 10
+1004, 40, ISR for device 10
+1044, 40, ISR for device 10
+1084, 40, ISR for device 10
+1124, 40, ISR for device 10
+1164, 40, ISR for device 10
+1204, 4, ISR for device 10
+1208, 1, IRET
+1209, 80, CPU burst
+1289, 1, switch to kernel mode
+1290, 10, context saved
+1300, 1, find vector 10 in memory position 0x0014
+1301, 1, load address 0X07B0 into the PC
+1302, 40, ISR for device 10
+1342, 40, ISR for device 10
+1382, 40, ISR for device 10
+1422, 40, ISR for device 10
+1462, 40, ISR for device 10
+1502, 40, ISR for device 10
+1542, 40, ISR for device 10
+1582, 40, ISR for device 10
+1622, 40, ISR for device 10
+1662, 40, ISR for device 10
+1702, 40, ISR for device 10
+1742, 40, ISR for device 10
+1782, 40, ISR for device 10
+1822, 40, ISR for device 10
+1862, 4, ISR for device 10
+1866, 1, IRET
+1867, 79, CPU burst
+1946, 1, switch to kernel mode
+1947, 10, context saved
+1957, 1, find vector 6 in memory position 0x000C
+1958, 1, load address 0X0639 into the PC
+1959, 40, ISR for device 6
+1999, 40, ISR for device 6
+2039, 40, ISR for device 6
+2079, 40, ISR for device 6
+2119, 40, ISR for device 6
+2159, 40, ISR for device 6
+2199, 25, ISR for device 6
+2224, 1, IRET
+2225, 68, CPU burst
+2293, 1, switch to kernel mode
+2294, 10, context saved
+2304, 1, find vector 6 in memory position 0x000C
+2305, 1, load address 0X0639 into the PC
+2306, 40, ISR for device 6
+2346, 40, ISR for device 6
+2386, 40, ISR for device 6
+2426, 40, ISR for device 6
+2466, 40, ISR for device 6
+2506, 40, ISR for device 6
+2546, 25, ISR for device 6
+2571, 1, IRET
+2572, 71, CPU burst
+2643, 1, switch to kernel mode
+2644, 10, context saved
+2654, 1, find vector 4 in memory position 0x0008
+2655, 1, load address 0X0292 into the PC
+2656, 40, ISR for device 4
+2696, 40, ISR for device 4
+2736, 40, ISR for device 4
+2776, 40, ISR for device 4
+2816, 40, ISR for device 4
+2856, 40, ISR for device 4
+2896, 10, ISR for device 4
+2906, 1, IRET
+2907, 97, CPU burst
+3004, 1, switch to kernel mode
+3005, 10, context saved
+3015, 1, find vector 4 in memory position 0x0008
+3016, 1, load address 0X0292 into the PC
+3017, 40, ISR for device 4
+3057, 40, ISR for device 4
+3097, 40, ISR for device 4
+3137, 40, ISR for device 4
+3177, 40, ISR for device 4
+3217, 40, ISR for device 4
+3257, 10, ISR for device 4
+3267, 1, IRET
+3268, 84, CPU burst
+3352, 1, switch to kernel mode
+3353, 10, context saved
+3363, 1, find vector 7 in memory position 0x000E
+3364, 1, load address 0X00BD into the PC
+3365, 40, ISR for device 7
+3405, 40, ISR for device 7
+3445, 40, ISR for device 7
+3485, 32, ISR for device 7
+3517, 1, IRET
+3518, 38, CPU burst
+3556, 1, switch to kernel mode
+3557, 10, context saved
+3567, 1, find vector 7 in memory position 0x000E
+3568, 1, load address 0X00BD into the PC
+3569, 40, ISR for device 7
+3609, 40, ISR for device 7
+3649, 40, ISR for device 7
+3689, 32, ISR for device 7
+3721, 1, IRET
+3722, 90, CPU burst
diff --git a/execution_trace_2.txt b/execution_trace_2.txt
new file mode 100644
index 0000000..598dec7
--- /dev/null
+++ b/execution_trace_2.txt
@@ -0,0 +1,87 @@
+0, 95, CPU burst
+95, 1, switch to kernel mode
+96, 10, context saved
+106, 1, find vector 6 in memory position 0x000C
+107, 1, load address 0X0639 into the PC
+108, 40, ISR for device 6
+148, 40, ISR for device 6
+188, 40, ISR for device 6
+228, 40, ISR for device 6
+268, 40, ISR for device 6
+308, 40, ISR for device 6
+348, 25, ISR for device 6
+373, 1, IRET
+374, 26, CPU burst
+400, 1, switch to kernel mode
+401, 10, context saved
+411, 1, find vector 6 in memory position 0x000C
+412, 1, load address 0X0639 into the PC
+413, 40, ISR for device 6
+453, 40, ISR for device 6
+493, 40, ISR for device 6
+533, 40, ISR for device 6
+573, 40, ISR for device 6
+613, 40, ISR for device 6
+653, 25, ISR for device 6
+678, 1, IRET
+679, 72, CPU burst
+751, 1, switch to kernel mode
+752, 10, context saved
+762, 1, find vector 17 in memory position 0x0022
+763, 1, load address 0X05B3 into the PC
+764, 40, ISR for device 17
+804, 40, ISR for device 17
+844, 40, ISR for device 17
+884, 40, ISR for device 17
+924, 40, ISR for device 17
+964, 35, ISR for device 17
+999, 1, IRET
+1000, 50, CPU burst
+1050, 1, switch to kernel mode
+1051, 10, context saved
+1061, 1, find vector 17 in memory position 0x0022
+1062, 1, load address 0X05B3 into the PC
+1063, 40, ISR for device 17
+1103, 40, ISR for device 17
+1143, 40, ISR for device 17
+1183, 40, ISR for device 17
+1223, 40, ISR for device 17
+1263, 35, ISR for device 17
+1298, 1, IRET
+1299, 88, CPU burst
+1387, 1, switch to kernel mode
+1388, 10, context saved
+1398, 1, find vector 14 in memory position 0x001C
+1399, 1, load address 0X0165 into the PC
+1400, 40, ISR for device 14
+1440, 40, ISR for device 14
+1480, 40, ISR for device 14
+1520, 40, ISR for device 14
+1560, 40, ISR for device 14
+1600, 40, ISR for device 14
+1640, 40, ISR for device 14
+1680, 40, ISR for device 14
+1720, 40, ISR for device 14
+1760, 40, ISR for device 14
+1800, 40, ISR for device 14
+1840, 16, ISR for device 14
+1856, 1, IRET
+1857, 31, CPU burst
+1888, 1, switch to kernel mode
+1889, 10, context saved
+1899, 1, find vector 14 in memory position 0x001C
+1900, 1, load address 0X0165 into the PC
+1901, 40, ISR for device 14
+1941, 40, ISR for device 14
+1981, 40, ISR for device 14
+2021, 40, ISR for device 14
+2061, 40, ISR for device 14
+2101, 40, ISR for device 14
+2141, 40, ISR for device 14
+2181, 40, ISR for device 14
+2221, 40, ISR for device 14
+2261, 40, ISR for device 14
+2301, 40, ISR for device 14
+2341, 16, ISR for device 14
+2357, 1, IRET
+2358, 52, CPU burst
diff --git a/execution_trace_3.txt b/execution_trace_3.txt
new file mode 100644
index 0000000..40b7d22
--- /dev/null
+++ b/execution_trace_3.txt
@@ -0,0 +1,1017 @@
+0, 49, CPU burst
+49, 1, switch to kernel mode
+50, 10, context saved
+60, 1, find vector 6 in memory position 0x000C
+61, 1, load address 0X0639 into the PC
+62, 40, ISR for device 6
+102, 40, ISR for device 6
+142, 40, ISR for device 6
+182, 40, ISR for device 6
+222, 40, ISR for device 6
+262, 40, ISR for device 6
+302, 25, ISR for device 6
+327, 1, IRET
+328, 99, CPU burst
+427, 1, switch to kernel mode
+428, 10, context saved
+438, 1, find vector 6 in memory position 0x000C
+439, 1, load address 0X0639 into the PC
+440, 40, ISR for device 6
+480, 40, ISR for device 6
+520, 40, ISR for device 6
+560, 40, ISR for device 6
+600, 40, ISR for device 6
+640, 40, ISR for device 6
+680, 25, ISR for device 6
+705, 1, IRET
+706, 72, CPU burst
+778, 1, switch to kernel mode
+779, 10, context saved
+789, 1, find vector 13 in memory position 0x001A
+790, 1, load address 0X06C7 into the PC
+791, 40, ISR for device 13
+831, 40, ISR for device 13
+871, 40, ISR for device 13
+911, 40, ISR for device 13
+951, 40, ISR for device 13
+991, 40, ISR for device 13
+1031, 40, ISR for device 13
+1071, 40, ISR for device 13
+1111, 40, ISR for device 13
+1151, 40, ISR for device 13
+1191, 40, ISR for device 13
+1231, 40, ISR for device 13
+1271, 40, ISR for device 13
+1311, 40, ISR for device 13
+1351, 40, ISR for device 13
+1391, 36, ISR for device 13
+1427, 1, IRET
+1428, 29, CPU burst
+1457, 1, switch to kernel mode
+1458, 10, context saved
+1468, 1, find vector 13 in memory position 0x001A
+1469, 1, load address 0X06C7 into the PC
+1470, 40, ISR for device 13
+1510, 40, ISR for device 13
+1550, 40, ISR for device 13
+1590, 40, ISR for device 13
+1630, 40, ISR for device 13
+1670, 40, ISR for device 13
+1710, 40, ISR for device 13
+1750, 40, ISR for device 13
+1790, 40, ISR for device 13
+1830, 40, ISR for device 13
+1870, 40, ISR for device 13
+1910, 40, ISR for device 13
+1950, 40, ISR for device 13
+1990, 40, ISR for device 13
+2030, 40, ISR for device 13
+2070, 36, ISR for device 13
+2106, 1, IRET
+2107, 19, CPU burst
+2126, 1, switch to kernel mode
+2127, 10, context saved
+2137, 1, find vector 8 in memory position 0x0010
+2138, 1, load address 0X06EF into the PC
+2139, 40, ISR for device 8
+2179, 40, ISR for device 8
+2219, 40, ISR for device 8
+2259, 40, ISR for device 8
+2299, 40, ISR for device 8
+2339, 40, ISR for device 8
+2379, 40, ISR for device 8
+2419, 40, ISR for device 8
+2459, 40, ISR for device 8
+2499, 40, ISR for device 8
+2539, 40, ISR for device 8
+2579, 40, ISR for device 8
+2619, 40, ISR for device 8
+2659, 40, ISR for device 8
+2699, 40, ISR for device 8
+2739, 40, ISR for device 8
+2779, 40, ISR for device 8
+2819, 40, ISR for device 8
+2859, 40, ISR for device 8
+2899, 40, ISR for device 8
+2939, 40, ISR for device 8
+2979, 40, ISR for device 8
+3019, 40, ISR for device 8
+3059, 40, ISR for device 8
+3099, 40, ISR for device 8
+3139, 1, IRET
+3140, 66, CPU burst
+3206, 1, switch to kernel mode
+3207, 10, context saved
+3217, 1, find vector 8 in memory position 0x0010
+3218, 1, load address 0X06EF into the PC
+3219, 40, ISR for device 8
+3259, 40, ISR for device 8
+3299, 40, ISR for device 8
+3339, 40, ISR for device 8
+3379, 40, ISR for device 8
+3419, 40, ISR for device 8
+3459, 40, ISR for device 8
+3499, 40, ISR for device 8
+3539, 40, ISR for device 8
+3579, 40, ISR for device 8
+3619, 40, ISR for device 8
+3659, 40, ISR for device 8
+3699, 40, ISR for device 8
+3739, 40, ISR for device 8
+3779, 40, ISR for device 8
+3819, 40, ISR for device 8
+3859, 40, ISR for device 8
+3899, 40, ISR for device 8
+3939, 40, ISR for device 8
+3979, 40, ISR for device 8
+4019, 40, ISR for device 8
+4059, 40, ISR for device 8
+4099, 40, ISR for device 8
+4139, 40, ISR for device 8
+4179, 40, ISR for device 8
+4219, 1, IRET
+4220, 11, CPU burst
+4231, 1, switch to kernel mode
+4232, 10, context saved
+4242, 1, find vector 4 in memory position 0x0008
+4243, 1, load address 0X0292 into the PC
+4244, 40, ISR for device 4
+4284, 40, ISR for device 4
+4324, 40, ISR for device 4
+4364, 40, ISR for device 4
+4404, 40, ISR for device 4
+4444, 40, ISR for device 4
+4484, 10, ISR for device 4
+4494, 1, IRET
+4495, 21, CPU burst
+4516, 1, switch to kernel mode
+4517, 10, context saved
+4527, 1, find vector 4 in memory position 0x0008
+4528, 1, load address 0X0292 into the PC
+4529, 40, ISR for device 4
+4569, 40, ISR for device 4
+4609, 40, ISR for device 4
+4649, 40, ISR for device 4
+4689, 40, ISR for device 4
+4729, 40, ISR for device 4
+4769, 10, ISR for device 4
+4779, 1, IRET
+4780, 100, CPU burst
+4880, 1, switch to kernel mode
+4881, 10, context saved
+4891, 1, find vector 18 in memory position 0x0024
+4892, 1, load address 0X060A into the PC
+4893, 40, ISR for device 18
+4933, 40, ISR for device 18
+4973, 40, ISR for device 18
+5013, 3, ISR for device 18
+5016, 1, IRET
+5017, 41, CPU burst
+5058, 1, switch to kernel mode
+5059, 10, context saved
+5069, 1, find vector 18 in memory position 0x0024
+5070, 1, load address 0X060A into the PC
+5071, 40, ISR for device 18
+5111, 40, ISR for device 18
+5151, 40, ISR for device 18
+5191, 3, ISR for device 18
+5194, 1, IRET
+5195, 10, CPU burst
+5205, 1, switch to kernel mode
+5206, 10, context saved
+5216, 1, find vector 12 in memory position 0x0018
+5217, 1, load address 0X03B9 into the PC
+5218, 40, ISR for device 12
+5258, 40, ISR for device 12
+5298, 40, ISR for device 12
+5338, 25, ISR for device 12
+5363, 1, IRET
+5364, 76, CPU burst
+5440, 1, switch to kernel mode
+5441, 10, context saved
+5451, 1, find vector 12 in memory position 0x0018
+5452, 1, load address 0X03B9 into the PC
+5453, 40, ISR for device 12
+5493, 40, ISR for device 12
+5533, 40, ISR for device 12
+5573, 25, ISR for device 12
+5598, 1, IRET
+5599, 12, CPU burst
+5611, 1, switch to kernel mode
+5612, 10, context saved
+5622, 1, find vector 15 in memory position 0x001E
+5623, 1, load address 0X0584 into the PC
+5624, 40, ISR for device 15
+5664, 28, ISR for device 15
+5692, 1, IRET
+5693, 57, CPU burst
+5750, 1, switch to kernel mode
+5751, 10, context saved
+5761, 1, find vector 15 in memory position 0x001E
+5762, 1, load address 0X0584 into the PC
+5763, 40, ISR for device 15
+5803, 28, ISR for device 15
+5831, 1, IRET
+5832, 93, CPU burst
+5925, 1, switch to kernel mode
+5926, 10, context saved
+5936, 1, find vector 11 in memory position 0x0016
+5937, 1, load address 0X01F8 into the PC
+5938, 40, ISR for device 11
+5978, 40, ISR for device 11
+6018, 40, ISR for device 11
+6058, 40, ISR for device 11
+6098, 40, ISR for device 11
+6138, 40, ISR for device 11
+6178, 40, ISR for device 11
+6218, 40, ISR for device 11
+6258, 40, ISR for device 11
+6298, 40, ISR for device 11
+6338, 40, ISR for device 11
+6378, 40, ISR for device 11
+6418, 40, ISR for device 11
+6458, 3, ISR for device 11
+6461, 1, IRET
+6462, 56, CPU burst
+6518, 1, switch to kernel mode
+6519, 10, context saved
+6529, 1, find vector 11 in memory position 0x0016
+6530, 1, load address 0X01F8 into the PC
+6531, 40, ISR for device 11
+6571, 40, ISR for device 11
+6611, 40, ISR for device 11
+6651, 40, ISR for device 11
+6691, 40, ISR for device 11
+6731, 40, ISR for device 11
+6771, 40, ISR for device 11
+6811, 40, ISR for device 11
+6851, 40, ISR for device 11
+6891, 40, ISR for device 11
+6931, 40, ISR for device 11
+6971, 40, ISR for device 11
+7011, 40, ISR for device 11
+7051, 3, ISR for device 11
+7054, 1, IRET
+7055, 38, CPU burst
+7093, 1, switch to kernel mode
+7094, 10, context saved
+7104, 1, find vector 8 in memory position 0x0010
+7105, 1, load address 0X06EF into the PC
+7106, 40, ISR for device 8
+7146, 40, ISR for device 8
+7186, 40, ISR for device 8
+7226, 40, ISR for device 8
+7266, 40, ISR for device 8
+7306, 40, ISR for device 8
+7346, 40, ISR for device 8
+7386, 40, ISR for device 8
+7426, 40, ISR for device 8
+7466, 40, ISR for device 8
+7506, 40, ISR for device 8
+7546, 40, ISR for device 8
+7586, 40, ISR for device 8
+7626, 40, ISR for device 8
+7666, 40, ISR for device 8
+7706, 40, ISR for device 8
+7746, 40, ISR for device 8
+7786, 40, ISR for device 8
+7826, 40, ISR for device 8
+7866, 40, ISR for device 8
+7906, 40, ISR for device 8
+7946, 40, ISR for device 8
+7986, 40, ISR for device 8
+8026, 40, ISR for device 8
+8066, 40, ISR for device 8
+8106, 1, IRET
+8107, 12, CPU burst
+8119, 1, switch to kernel mode
+8120, 10, context saved
+8130, 1, find vector 8 in memory position 0x0010
+8131, 1, load address 0X06EF into the PC
+8132, 40, ISR for device 8
+8172, 40, ISR for device 8
+8212, 40, ISR for device 8
+8252, 40, ISR for device 8
+8292, 40, ISR for device 8
+8332, 40, ISR for device 8
+8372, 40, ISR for device 8
+8412, 40, ISR for device 8
+8452, 40, ISR for device 8
+8492, 40, ISR for device 8
+8532, 40, ISR for device 8
+8572, 40, ISR for device 8
+8612, 40, ISR for device 8
+8652, 40, ISR for device 8
+8692, 40, ISR for device 8
+8732, 40, ISR for device 8
+8772, 40, ISR for device 8
+8812, 40, ISR for device 8
+8852, 40, ISR for device 8
+8892, 40, ISR for device 8
+8932, 40, ISR for device 8
+8972, 40, ISR for device 8
+9012, 40, ISR for device 8
+9052, 40, ISR for device 8
+9092, 40, ISR for device 8
+9132, 1, IRET
+9133, 53, CPU burst
+9186, 1, switch to kernel mode
+9187, 10, context saved
+9197, 1, find vector 13 in memory position 0x001A
+9198, 1, load address 0X06C7 into the PC
+9199, 40, ISR for device 13
+9239, 40, ISR for device 13
+9279, 40, ISR for device 13
+9319, 40, ISR for device 13
+9359, 40, ISR for device 13
+9399, 40, ISR for device 13
+9439, 40, ISR for device 13
+9479, 40, ISR for device 13
+9519, 40, ISR for device 13
+9559, 40, ISR for device 13
+9599, 40, ISR for device 13
+9639, 40, ISR for device 13
+9679, 40, ISR for device 13
+9719, 40, ISR for device 13
+9759, 40, ISR for device 13
+9799, 36, ISR for device 13
+9835, 1, IRET
+9836, 10, CPU burst
+9846, 1, switch to kernel mode
+9847, 10, context saved
+9857, 1, find vector 13 in memory position 0x001A
+9858, 1, load address 0X06C7 into the PC
+9859, 40, ISR for device 13
+9899, 40, ISR for device 13
+9939, 40, ISR for device 13
+9979, 40, ISR for device 13
+10019, 40, ISR for device 13
+10059, 40, ISR for device 13
+10099, 40, ISR for device 13
+10139, 40, ISR for device 13
+10179, 40, ISR for device 13
+10219, 40, ISR for device 13
+10259, 40, ISR for device 13
+10299, 40, ISR for device 13
+10339, 40, ISR for device 13
+10379, 40, ISR for device 13
+10419, 40, ISR for device 13
+10459, 36, ISR for device 13
+10495, 1, IRET
+10496, 85, CPU burst
+10581, 1, switch to kernel mode
+10582, 10, context saved
+10592, 1, find vector 19 in memory position 0x0026
+10593, 1, load address 0X0765 into the PC
+10594, 40, ISR for device 19
+10634, 40, ISR for device 19
+10674, 40, ISR for device 19
+10714, 40, ISR for device 19
+10754, 40, ISR for device 19
+10794, 40, ISR for device 19
+10834, 40, ISR for device 19
+10874, 40, ISR for device 19
+10914, 40, ISR for device 19
+10954, 40, ISR for device 19
+10994, 40, ISR for device 19
+11034, 40, ISR for device 19
+11074, 40, ISR for device 19
+11114, 40, ISR for device 19
+11154, 40, ISR for device 19
+11194, 40, ISR for device 19
+11234, 12, ISR for device 19
+11246, 1, IRET
+11247, 81, CPU burst
+11328, 1, switch to kernel mode
+11329, 10, context saved
+11339, 1, find vector 19 in memory position 0x0026
+11340, 1, load address 0X0765 into the PC
+11341, 40, ISR for device 19
+11381, 40, ISR for device 19
+11421, 40, ISR for device 19
+11461, 40, ISR for device 19
+11501, 40, ISR for device 19
+11541, 40, ISR for device 19
+11581, 40, ISR for device 19
+11621, 40, ISR for device 19
+11661, 40, ISR for device 19
+11701, 40, ISR for device 19
+11741, 40, ISR for device 19
+11781, 40, ISR for device 19
+11821, 40, ISR for device 19
+11861, 40, ISR for device 19
+11901, 40, ISR for device 19
+11941, 40, ISR for device 19
+11981, 12, ISR for device 19
+11993, 1, IRET
+11994, 19, CPU burst
+12013, 1, switch to kernel mode
+12014, 10, context saved
+12024, 1, find vector 9 in memory position 0x0012
+12025, 1, load address 0X036C into the PC
+12026, 40, ISR for device 9
+12066, 40, ISR for device 9
+12106, 40, ISR for device 9
+12146, 36, ISR for device 9
+12182, 1, IRET
+12183, 30, CPU burst
+12213, 1, switch to kernel mode
+12214, 10, context saved
+12224, 1, find vector 9 in memory position 0x0012
+12225, 1, load address 0X036C into the PC
+12226, 40, ISR for device 9
+12266, 40, ISR for device 9
+12306, 40, ISR for device 9
+12346, 36, ISR for device 9
+12382, 1, IRET
+12383, 48, CPU burst
+12431, 1, switch to kernel mode
+12432, 10, context saved
+12442, 1, find vector 3 in memory position 0x0006
+12443, 1, load address 0X042B into the PC
+12444, 40, ISR for device 3
+12484, 40, ISR for device 3
+12524, 40, ISR for device 3
+12564, 40, ISR for device 3
+12604, 40, ISR for device 3
+12644, 40, ISR for device 3
+12684, 40, ISR for device 3
+12724, 20, ISR for device 3
+12744, 1, IRET
+12745, 35, CPU burst
+12780, 1, switch to kernel mode
+12781, 10, context saved
+12791, 1, find vector 3 in memory position 0x0006
+12792, 1, load address 0X042B into the PC
+12793, 40, ISR for device 3
+12833, 40, ISR for device 3
+12873, 40, ISR for device 3
+12913, 40, ISR for device 3
+12953, 40, ISR for device 3
+12993, 40, ISR for device 3
+13033, 40, ISR for device 3
+13073, 20, ISR for device 3
+13093, 1, IRET
+13094, 88, CPU burst
+13182, 1, switch to kernel mode
+13183, 10, context saved
+13193, 1, find vector 11 in memory position 0x0016
+13194, 1, load address 0X01F8 into the PC
+13195, 40, ISR for device 11
+13235, 40, ISR for device 11
+13275, 40, ISR for device 11
+13315, 40, ISR for device 11
+13355, 40, ISR for device 11
+13395, 40, ISR for device 11
+13435, 40, ISR for device 11
+13475, 40, ISR for device 11
+13515, 40, ISR for device 11
+13555, 40, ISR for device 11
+13595, 40, ISR for device 11
+13635, 40, ISR for device 11
+13675, 40, ISR for device 11
+13715, 3, ISR for device 11
+13718, 1, IRET
+13719, 20, CPU burst
+13739, 1, switch to kernel mode
+13740, 10, context saved
+13750, 1, find vector 11 in memory position 0x0016
+13751, 1, load address 0X01F8 into the PC
+13752, 40, ISR for device 11
+13792, 40, ISR for device 11
+13832, 40, ISR for device 11
+13872, 40, ISR for device 11
+13912, 40, ISR for device 11
+13952, 40, ISR for device 11
+13992, 40, ISR for device 11
+14032, 40, ISR for device 11
+14072, 40, ISR for device 11
+14112, 40, ISR for device 11
+14152, 40, ISR for device 11
+14192, 40, ISR for device 11
+14232, 40, ISR for device 11
+14272, 3, ISR for device 11
+14275, 1, IRET
+14276, 61, CPU burst
+14337, 1, switch to kernel mode
+14338, 10, context saved
+14348, 1, find vector 1 in memory position 0x0002
+14349, 1, load address 0X029C into the PC
+14350, 40, ISR for device 1
+14390, 40, ISR for device 1
+14430, 20, ISR for device 1
+14450, 1, IRET
+14451, 20, CPU burst
+14471, 1, switch to kernel mode
+14472, 10, context saved
+14482, 1, find vector 1 in memory position 0x0002
+14483, 1, load address 0X029C into the PC
+14484, 40, ISR for device 1
+14524, 40, ISR for device 1
+14564, 20, ISR for device 1
+14584, 1, IRET
+14585, 48, CPU burst
+14633, 1, switch to kernel mode
+14634, 10, context saved
+14644, 1, find vector 1 in memory position 0x0002
+14645, 1, load address 0X029C into the PC
+14646, 40, ISR for device 1
+14686, 40, ISR for device 1
+14726, 20, ISR for device 1
+14746, 1, IRET
+14747, 33, CPU burst
+14780, 1, switch to kernel mode
+14781, 10, context saved
+14791, 1, find vector 1 in memory position 0x0002
+14792, 1, load address 0X029C into the PC
+14793, 40, ISR for device 1
+14833, 40, ISR for device 1
+14873, 20, ISR for device 1
+14893, 1, IRET
+14894, 91, CPU burst
+14985, 1, switch to kernel mode
+14986, 10, context saved
+14996, 1, find vector 14 in memory position 0x001C
+14997, 1, load address 0X0165 into the PC
+14998, 40, ISR for device 14
+15038, 40, ISR for device 14
+15078, 40, ISR for device 14
+15118, 40, ISR for device 14
+15158, 40, ISR for device 14
+15198, 40, ISR for device 14
+15238, 40, ISR for device 14
+15278, 40, ISR for device 14
+15318, 40, ISR for device 14
+15358, 40, ISR for device 14
+15398, 40, ISR for device 14
+15438, 16, ISR for device 14
+15454, 1, IRET
+15455, 41, CPU burst
+15496, 1, switch to kernel mode
+15497, 10, context saved
+15507, 1, find vector 14 in memory position 0x001C
+15508, 1, load address 0X0165 into the PC
+15509, 40, ISR for device 14
+15549, 40, ISR for device 14
+15589, 40, ISR for device 14
+15629, 40, ISR for device 14
+15669, 40, ISR for device 14
+15709, 40, ISR for device 14
+15749, 40, ISR for device 14
+15789, 40, ISR for device 14
+15829, 40, ISR for device 14
+15869, 40, ISR for device 14
+15909, 40, ISR for device 14
+15949, 16, ISR for device 14
+15965, 1, IRET
+15966, 99, CPU burst
+16065, 1, switch to kernel mode
+16066, 10, context saved
+16076, 1, find vector 3 in memory position 0x0006
+16077, 1, load address 0X042B into the PC
+16078, 40, ISR for device 3
+16118, 40, ISR for device 3
+16158, 40, ISR for device 3
+16198, 40, ISR for device 3
+16238, 40, ISR for device 3
+16278, 40, ISR for device 3
+16318, 40, ISR for device 3
+16358, 20, ISR for device 3
+16378, 1, IRET
+16379, 50, CPU burst
+16429, 1, switch to kernel mode
+16430, 10, context saved
+16440, 1, find vector 3 in memory position 0x0006
+16441, 1, load address 0X042B into the PC
+16442, 40, ISR for device 3
+16482, 40, ISR for device 3
+16522, 40, ISR for device 3
+16562, 40, ISR for device 3
+16602, 40, ISR for device 3
+16642, 40, ISR for device 3
+16682, 40, ISR for device 3
+16722, 20, ISR for device 3
+16742, 1, IRET
+16743, 22, CPU burst
+16765, 1, switch to kernel mode
+16766, 10, context saved
+16776, 1, find vector 17 in memory position 0x0022
+16777, 1, load address 0X05B3 into the PC
+16778, 40, ISR for device 17
+16818, 40, ISR for device 17
+16858, 40, ISR for device 17
+16898, 40, ISR for device 17
+16938, 40, ISR for device 17
+16978, 35, ISR for device 17
+17013, 1, IRET
+17014, 66, CPU burst
+17080, 1, switch to kernel mode
+17081, 10, context saved
+17091, 1, find vector 17 in memory position 0x0022
+17092, 1, load address 0X05B3 into the PC
+17093, 40, ISR for device 17
+17133, 40, ISR for device 17
+17173, 40, ISR for device 17
+17213, 40, ISR for device 17
+17253, 40, ISR for device 17
+17293, 35, ISR for device 17
+17328, 1, IRET
+17329, 55, CPU burst
+17384, 1, switch to kernel mode
+17385, 10, context saved
+17395, 1, find vector 14 in memory position 0x001C
+17396, 1, load address 0X0165 into the PC
+17397, 40, ISR for device 14
+17437, 40, ISR for device 14
+17477, 40, ISR for device 14
+17517, 40, ISR for device 14
+17557, 40, ISR for device 14
+17597, 40, ISR for device 14
+17637, 40, ISR for device 14
+17677, 40, ISR for device 14
+17717, 40, ISR for device 14
+17757, 40, ISR for device 14
+17797, 40, ISR for device 14
+17837, 16, ISR for device 14
+17853, 1, IRET
+17854, 80, CPU burst
+17934, 1, switch to kernel mode
+17935, 10, context saved
+17945, 1, find vector 14 in memory position 0x001C
+17946, 1, load address 0X0165 into the PC
+17947, 40, ISR for device 14
+17987, 40, ISR for device 14
+18027, 40, ISR for device 14
+18067, 40, ISR for device 14
+18107, 40, ISR for device 14
+18147, 40, ISR for device 14
+18187, 40, ISR for device 14
+18227, 40, ISR for device 14
+18267, 40, ISR for device 14
+18307, 40, ISR for device 14
+18347, 40, ISR for device 14
+18387, 16, ISR for device 14
+18403, 1, IRET
+18404, 51, CPU burst
+18455, 1, switch to kernel mode
+18456, 10, context saved
+18466, 1, find vector 15 in memory position 0x001E
+18467, 1, load address 0X0584 into the PC
+18468, 40, ISR for device 15
+18508, 28, ISR for device 15
+18536, 1, IRET
+18537, 61, CPU burst
+18598, 1, switch to kernel mode
+18599, 10, context saved
+18609, 1, find vector 15 in memory position 0x001E
+18610, 1, load address 0X0584 into the PC
+18611, 40, ISR for device 15
+18651, 28, ISR for device 15
+18679, 1, IRET
+18680, 39, CPU burst
+18719, 1, switch to kernel mode
+18720, 10, context saved
+18730, 1, find vector 17 in memory position 0x0022
+18731, 1, load address 0X05B3 into the PC
+18732, 40, ISR for device 17
+18772, 40, ISR for device 17
+18812, 40, ISR for device 17
+18852, 40, ISR for device 17
+18892, 40, ISR for device 17
+18932, 35, ISR for device 17
+18967, 1, IRET
+18968, 80, CPU burst
+19048, 1, switch to kernel mode
+19049, 10, context saved
+19059, 1, find vector 17 in memory position 0x0022
+19060, 1, load address 0X05B3 into the PC
+19061, 40, ISR for device 17
+19101, 40, ISR for device 17
+19141, 40, ISR for device 17
+19181, 40, ISR for device 17
+19221, 40, ISR for device 17
+19261, 35, ISR for device 17
+19296, 1, IRET
+19297, 96, CPU burst
+19393, 1, switch to kernel mode
+19394, 10, context saved
+19404, 1, find vector 19 in memory position 0x0026
+19405, 1, load address 0X0765 into the PC
+19406, 40, ISR for device 19
+19446, 40, ISR for device 19
+19486, 40, ISR for device 19
+19526, 40, ISR for device 19
+19566, 40, ISR for device 19
+19606, 40, ISR for device 19
+19646, 40, ISR for device 19
+19686, 40, ISR for device 19
+19726, 40, ISR for device 19
+19766, 40, ISR for device 19
+19806, 40, ISR for device 19
+19846, 40, ISR for device 19
+19886, 40, ISR for device 19
+19926, 40, ISR for device 19
+19966, 40, ISR for device 19
+20006, 40, ISR for device 19
+20046, 12, ISR for device 19
+20058, 1, IRET
+20059, 88, CPU burst
+20147, 1, switch to kernel mode
+20148, 10, context saved
+20158, 1, find vector 19 in memory position 0x0026
+20159, 1, load address 0X0765 into the PC
+20160, 40, ISR for device 19
+20200, 40, ISR for device 19
+20240, 40, ISR for device 19
+20280, 40, ISR for device 19
+20320, 40, ISR for device 19
+20360, 40, ISR for device 19
+20400, 40, ISR for device 19
+20440, 40, ISR for device 19
+20480, 40, ISR for device 19
+20520, 40, ISR for device 19
+20560, 40, ISR for device 19
+20600, 40, ISR for device 19
+20640, 40, ISR for device 19
+20680, 40, ISR for device 19
+20720, 40, ISR for device 19
+20760, 40, ISR for device 19
+20800, 12, ISR for device 19
+20812, 1, IRET
+20813, 97, CPU burst
+20910, 1, switch to kernel mode
+20911, 10, context saved
+20921, 1, find vector 8 in memory position 0x0010
+20922, 1, load address 0X06EF into the PC
+20923, 40, ISR for device 8
+20963, 40, ISR for device 8
+21003, 40, ISR for device 8
+21043, 40, ISR for device 8
+21083, 40, ISR for device 8
+21123, 40, ISR for device 8
+21163, 40, ISR for device 8
+21203, 40, ISR for device 8
+21243, 40, ISR for device 8
+21283, 40, ISR for device 8
+21323, 40, ISR for device 8
+21363, 40, ISR for device 8
+21403, 40, ISR for device 8
+21443, 40, ISR for device 8
+21483, 40, ISR for device 8
+21523, 40, ISR for device 8
+21563, 40, ISR for device 8
+21603, 40, ISR for device 8
+21643, 40, ISR for device 8
+21683, 40, ISR for device 8
+21723, 40, ISR for device 8
+21763, 40, ISR for device 8
+21803, 40, ISR for device 8
+21843, 40, ISR for device 8
+21883, 40, ISR for device 8
+21923, 1, IRET
+21924, 39, CPU burst
+21963, 1, switch to kernel mode
+21964, 10, context saved
+21974, 1, find vector 8 in memory position 0x0010
+21975, 1, load address 0X06EF into the PC
+21976, 40, ISR for device 8
+22016, 40, ISR for device 8
+22056, 40, ISR for device 8
+22096, 40, ISR for device 8
+22136, 40, ISR for device 8
+22176, 40, ISR for device 8
+22216, 40, ISR for device 8
+22256, 40, ISR for device 8
+22296, 40, ISR for device 8
+22336, 40, ISR for device 8
+22376, 40, ISR for device 8
+22416, 40, ISR for device 8
+22456, 40, ISR for device 8
+22496, 40, ISR for device 8
+22536, 40, ISR for device 8
+22576, 40, ISR for device 8
+22616, 40, ISR for device 8
+22656, 40, ISR for device 8
+22696, 40, ISR for device 8
+22736, 40, ISR for device 8
+22776, 40, ISR for device 8
+22816, 40, ISR for device 8
+22856, 40, ISR for device 8
+22896, 40, ISR for device 8
+22936, 40, ISR for device 8
+22976, 1, IRET
+22977, 30, CPU burst
+23007, 1, switch to kernel mode
+23008, 10, context saved
+23018, 1, find vector 4 in memory position 0x0008
+23019, 1, load address 0X0292 into the PC
+23020, 40, ISR for device 4
+23060, 40, ISR for device 4
+23100, 40, ISR for device 4
+23140, 40, ISR for device 4
+23180, 40, ISR for device 4
+23220, 40, ISR for device 4
+23260, 10, ISR for device 4
+23270, 1, IRET
+23271, 77, CPU burst
+23348, 1, switch to kernel mode
+23349, 10, context saved
+23359, 1, find vector 4 in memory position 0x0008
+23360, 1, load address 0X0292 into the PC
+23361, 40, ISR for device 4
+23401, 40, ISR for device 4
+23441, 40, ISR for device 4
+23481, 40, ISR for device 4
+23521, 40, ISR for device 4
+23561, 40, ISR for device 4
+23601, 10, ISR for device 4
+23611, 1, IRET
+23612, 85, CPU burst
+23697, 1, switch to kernel mode
+23698, 10, context saved
+23708, 1, find vector 13 in memory position 0x001A
+23709, 1, load address 0X06C7 into the PC
+23710, 40, ISR for device 13
+23750, 40, ISR for device 13
+23790, 40, ISR for device 13
+23830, 40, ISR for device 13
+23870, 40, ISR for device 13
+23910, 40, ISR for device 13
+23950, 40, ISR for device 13
+23990, 40, ISR for device 13
+24030, 40, ISR for device 13
+24070, 40, ISR for device 13
+24110, 40, ISR for device 13
+24150, 40, ISR for device 13
+24190, 40, ISR for device 13
+24230, 40, ISR for device 13
+24270, 40, ISR for device 13
+24310, 36, ISR for device 13
+24346, 1, IRET
+24347, 47, CPU burst
+24394, 1, switch to kernel mode
+24395, 10, context saved
+24405, 1, find vector 13 in memory position 0x001A
+24406, 1, load address 0X06C7 into the PC
+24407, 40, ISR for device 13
+24447, 40, ISR for device 13
+24487, 40, ISR for device 13
+24527, 40, ISR for device 13
+24567, 40, ISR for device 13
+24607, 40, ISR for device 13
+24647, 40, ISR for device 13
+24687, 40, ISR for device 13
+24727, 40, ISR for device 13
+24767, 40, ISR for device 13
+24807, 40, ISR for device 13
+24847, 40, ISR for device 13
+24887, 40, ISR for device 13
+24927, 40, ISR for device 13
+24967, 40, ISR for device 13
+25007, 36, ISR for device 13
+25043, 1, IRET
+25044, 18, CPU burst
+25062, 44, CPU burst
+25106, 53, CPU burst
+25159, 1, switch to kernel mode
+25160, 10, context saved
+25170, 1, find vector 6 in memory position 0x000C
+25171, 1, load address 0X0639 into the PC
+25172, 40, ISR for device 6
+25212, 40, ISR for device 6
+25252, 40, ISR for device 6
+25292, 40, ISR for device 6
+25332, 40, ISR for device 6
+25372, 40, ISR for device 6
+25412, 25, ISR for device 6
+25437, 1, IRET
+25438, 69, CPU burst
+25507, 1, switch to kernel mode
+25508, 10, context saved
+25518, 1, find vector 6 in memory position 0x000C
+25519, 1, load address 0X0639 into the PC
+25520, 40, ISR for device 6
+25560, 40, ISR for device 6
+25600, 40, ISR for device 6
+25640, 40, ISR for device 6
+25680, 40, ISR for device 6
+25720, 40, ISR for device 6
+25760, 25, ISR for device 6
+25785, 1, IRET
+25786, 72, CPU burst
+25858, 1, switch to kernel mode
+25859, 10, context saved
+25869, 1, find vector 4 in memory position 0x0008
+25870, 1, load address 0X0292 into the PC
+25871, 40, ISR for device 4
+25911, 40, ISR for device 4
+25951, 40, ISR for device 4
+25991, 40, ISR for device 4
+26031, 40, ISR for device 4
+26071, 40, ISR for device 4
+26111, 10, ISR for device 4
+26121, 1, IRET
+26122, 25, CPU burst
+26147, 1, switch to kernel mode
+26148, 10, context saved
+26158, 1, find vector 4 in memory position 0x0008
+26159, 1, load address 0X0292 into the PC
+26160, 40, ISR for device 4
+26200, 40, ISR for device 4
+26240, 40, ISR for device 4
+26280, 40, ISR for device 4
+26320, 40, ISR for device 4
+26360, 40, ISR for device 4
+26400, 10, ISR for device 4
+26410, 1, IRET
+26411, 87, CPU burst
+26498, 1, switch to kernel mode
+26499, 10, context saved
+26509, 1, find vector 5 in memory position 0x000A
+26510, 1, load address 0X048B into the PC
+26511, 40, ISR for device 5
+26551, 40, ISR for device 5
+26591, 40, ISR for device 5
+26631, 40, ISR for device 5
+26671, 40, ISR for device 5
+26711, 11, ISR for device 5
+26722, 1, IRET
+26723, 63, CPU burst
+26786, 1, switch to kernel mode
+26787, 10, context saved
+26797, 1, find vector 5 in memory position 0x000A
+26798, 1, load address 0X048B into the PC
+26799, 40, ISR for device 5
+26839, 40, ISR for device 5
+26879, 40, ISR for device 5
+26919, 40, ISR for device 5
+26959, 40, ISR for device 5
+26999, 11, ISR for device 5
+27010, 1, IRET
+27011, 11, CPU burst
+27022, 1, switch to kernel mode
+27023, 10, context saved
+27033, 1, find vector 15 in memory position 0x001E
+27034, 1, load address 0X0584 into the PC
+27035, 40, ISR for device 15
+27075, 28, ISR for device 15
+27103, 1, IRET
+27104, 74, CPU burst
+27178, 1, switch to kernel mode
+27179, 10, context saved
+27189, 1, find vector 15 in memory position 0x001E
+27190, 1, load address 0X0584 into the PC
+27191, 40, ISR for device 15
+27231, 28, ISR for device 15
+27259, 1, IRET
+27260, 19, CPU burst
+27279, 1, switch to kernel mode
+27280, 10, context saved
+27290, 1, find vector 4 in memory position 0x0008
+27291, 1, load address 0X0292 into the PC
+27292, 40, ISR for device 4
+27332, 40, ISR for device 4
+27372, 40, ISR for device 4
+27412, 40, ISR for device 4
+27452, 40, ISR for device 4
+27492, 40, ISR for device 4
+27532, 10, ISR for device 4
+27542, 1, IRET
+27543, 69, CPU burst
+27612, 1, switch to kernel mode
+27613, 10, context saved
+27623, 1, find vector 4 in memory position 0x0008
+27624, 1, load address 0X0292 into the PC
+27625, 40, ISR for device 4
+27665, 40, ISR for device 4
+27705, 40, ISR for device 4
+27745, 40, ISR for device 4
+27785, 40, ISR for device 4
+27825, 40, ISR for device 4
+27865, 10, ISR for device 4
+27875, 1, IRET
+27876, 50, CPU burst
+27926, 1, switch to kernel mode
+27927, 10, context saved
+27937, 1, find vector 5 in memory position 0x000A
+27938, 1, load address 0X048B into the PC
+27939, 40, ISR for device 5
+27979, 40, ISR for device 5
+28019, 40, ISR for device 5
+28059, 40, ISR for device 5
+28099, 40, ISR for device 5
+28139, 11, ISR for device 5
+28150, 1, IRET
+28151, 28, CPU burst
+28179, 1, switch to kernel mode
+28180, 10, context saved
+28190, 1, find vector 5 in memory position 0x000A
+28191, 1, load address 0X048B into the PC
+28192, 40, ISR for device 5
+28232, 40, ISR for device 5
+28272, 40, ISR for device 5
+28312, 40, ISR for device 5
+28352, 40, ISR for device 5
+28392, 11, ISR for device 5
+28403, 1, IRET
+28404, 23, CPU burst
diff --git a/execution_trace_4.txt b/execution_trace_4.txt
new file mode 100644
index 0000000..dc082a0
--- /dev/null
+++ b/execution_trace_4.txt
@@ -0,0 +1,997 @@
+0, 86, CPU burst
+86, 1, switch to kernel mode
+87, 10, context saved
+97, 1, find vector 9 in memory position 0x0012
+98, 1, load address 0X036C into the PC
+99, 40, ISR for device 9
+139, 40, ISR for device 9
+179, 40, ISR for device 9
+219, 36, ISR for device 9
+255, 1, IRET
+256, 61, CPU burst
+317, 1, switch to kernel mode
+318, 10, context saved
+328, 1, find vector 9 in memory position 0x0012
+329, 1, load address 0X036C into the PC
+330, 40, ISR for device 9
+370, 40, ISR for device 9
+410, 40, ISR for device 9
+450, 36, ISR for device 9
+486, 1, IRET
+487, 27, CPU burst
+514, 1, switch to kernel mode
+515, 10, context saved
+525, 1, find vector 17 in memory position 0x0022
+526, 1, load address 0X05B3 into the PC
+527, 40, ISR for device 17
+567, 40, ISR for device 17
+607, 40, ISR for device 17
+647, 40, ISR for device 17
+687, 40, ISR for device 17
+727, 35, ISR for device 17
+762, 1, IRET
+763, 19, CPU burst
+782, 1, switch to kernel mode
+783, 10, context saved
+793, 1, find vector 17 in memory position 0x0022
+794, 1, load address 0X05B3 into the PC
+795, 40, ISR for device 17
+835, 40, ISR for device 17
+875, 40, ISR for device 17
+915, 40, ISR for device 17
+955, 40, ISR for device 17
+995, 35, ISR for device 17
+1030, 1, IRET
+1031, 92, CPU burst
+1123, 1, switch to kernel mode
+1124, 10, context saved
+1134, 1, find vector 8 in memory position 0x0010
+1135, 1, load address 0X06EF into the PC
+1136, 40, ISR for device 8
+1176, 40, ISR for device 8
+1216, 40, ISR for device 8
+1256, 40, ISR for device 8
+1296, 40, ISR for device 8
+1336, 40, ISR for device 8
+1376, 40, ISR for device 8
+1416, 40, ISR for device 8
+1456, 40, ISR for device 8
+1496, 40, ISR for device 8
+1536, 40, ISR for device 8
+1576, 40, ISR for device 8
+1616, 40, ISR for device 8
+1656, 40, ISR for device 8
+1696, 40, ISR for device 8
+1736, 40, ISR for device 8
+1776, 40, ISR for device 8
+1816, 40, ISR for device 8
+1856, 40, ISR for device 8
+1896, 40, ISR for device 8
+1936, 40, ISR for device 8
+1976, 40, ISR for device 8
+2016, 40, ISR for device 8
+2056, 40, ISR for device 8
+2096, 40, ISR for device 8
+2136, 1, IRET
+2137, 36, CPU burst
+2173, 1, switch to kernel mode
+2174, 10, context saved
+2184, 1, find vector 8 in memory position 0x0010
+2185, 1, load address 0X06EF into the PC
+2186, 40, ISR for device 8
+2226, 40, ISR for device 8
+2266, 40, ISR for device 8
+2306, 40, ISR for device 8
+2346, 40, ISR for device 8
+2386, 40, ISR for device 8
+2426, 40, ISR for device 8
+2466, 40, ISR for device 8
+2506, 40, ISR for device 8
+2546, 40, ISR for device 8
+2586, 40, ISR for device 8
+2626, 40, ISR for device 8
+2666, 40, ISR for device 8
+2706, 40, ISR for device 8
+2746, 40, ISR for device 8
+2786, 40, ISR for device 8
+2826, 40, ISR for device 8
+2866, 40, ISR for device 8
+2906, 40, ISR for device 8
+2946, 40, ISR for device 8
+2986, 40, ISR for device 8
+3026, 40, ISR for device 8
+3066, 40, ISR for device 8
+3106, 40, ISR for device 8
+3146, 40, ISR for device 8
+3186, 1, IRET
+3187, 19, CPU burst
+3206, 1, switch to kernel mode
+3207, 10, context saved
+3217, 1, find vector 1 in memory position 0x0002
+3218, 1, load address 0X029C into the PC
+3219, 40, ISR for device 1
+3259, 40, ISR for device 1
+3299, 20, ISR for device 1
+3319, 1, IRET
+3320, 33, CPU burst
+3353, 1, switch to kernel mode
+3354, 10, context saved
+3364, 1, find vector 1 in memory position 0x0002
+3365, 1, load address 0X029C into the PC
+3366, 40, ISR for device 1
+3406, 40, ISR for device 1
+3446, 20, ISR for device 1
+3466, 1, IRET
+3467, 90, CPU burst
+3557, 13, CPU burst
+3570, 12, CPU burst
+3582, 1, switch to kernel mode
+3583, 10, context saved
+3593, 1, find vector 13 in memory position 0x001A
+3594, 1, load address 0X06C7 into the PC
+3595, 40, ISR for device 13
+3635, 40, ISR for device 13
+3675, 40, ISR for device 13
+3715, 40, ISR for device 13
+3755, 40, ISR for device 13
+3795, 40, ISR for device 13
+3835, 40, ISR for device 13
+3875, 40, ISR for device 13
+3915, 40, ISR for device 13
+3955, 40, ISR for device 13
+3995, 40, ISR for device 13
+4035, 40, ISR for device 13
+4075, 40, ISR for device 13
+4115, 40, ISR for device 13
+4155, 40, ISR for device 13
+4195, 36, ISR for device 13
+4231, 1, IRET
+4232, 23, CPU burst
+4255, 1, switch to kernel mode
+4256, 10, context saved
+4266, 1, find vector 13 in memory position 0x001A
+4267, 1, load address 0X06C7 into the PC
+4268, 40, ISR for device 13
+4308, 40, ISR for device 13
+4348, 40, ISR for device 13
+4388, 40, ISR for device 13
+4428, 40, ISR for device 13
+4468, 40, ISR for device 13
+4508, 40, ISR for device 13
+4548, 40, ISR for device 13
+4588, 40, ISR for device 13
+4628, 40, ISR for device 13
+4668, 40, ISR for device 13
+4708, 40, ISR for device 13
+4748, 40, ISR for device 13
+4788, 40, ISR for device 13
+4828, 40, ISR for device 13
+4868, 36, ISR for device 13
+4904, 1, IRET
+4905, 51, CPU burst
+4956, 1, switch to kernel mode
+4957, 10, context saved
+4967, 1, find vector 10 in memory position 0x0014
+4968, 1, load address 0X07B0 into the PC
+4969, 40, ISR for device 10
+5009, 40, ISR for device 10
+5049, 40, ISR for device 10
+5089, 40, ISR for device 10
+5129, 40, ISR for device 10
+5169, 40, ISR for device 10
+5209, 40, ISR for device 10
+5249, 40, ISR for device 10
+5289, 40, ISR for device 10
+5329, 40, ISR for device 10
+5369, 40, ISR for device 10
+5409, 40, ISR for device 10
+5449, 40, ISR for device 10
+5489, 40, ISR for device 10
+5529, 4, ISR for device 10
+5533, 1, IRET
+5534, 49, CPU burst
+5583, 1, switch to kernel mode
+5584, 10, context saved
+5594, 1, find vector 10 in memory position 0x0014
+5595, 1, load address 0X07B0 into the PC
+5596, 40, ISR for device 10
+5636, 40, ISR for device 10
+5676, 40, ISR for device 10
+5716, 40, ISR for device 10
+5756, 40, ISR for device 10
+5796, 40, ISR for device 10
+5836, 40, ISR for device 10
+5876, 40, ISR for device 10
+5916, 40, ISR for device 10
+5956, 40, ISR for device 10
+5996, 40, ISR for device 10
+6036, 40, ISR for device 10
+6076, 40, ISR for device 10
+6116, 40, ISR for device 10
+6156, 4, ISR for device 10
+6160, 1, IRET
+6161, 87, CPU burst
+6248, 1, switch to kernel mode
+6249, 10, context saved
+6259, 1, find vector 5 in memory position 0x000A
+6260, 1, load address 0X048B into the PC
+6261, 40, ISR for device 5
+6301, 40, ISR for device 5
+6341, 40, ISR for device 5
+6381, 40, ISR for device 5
+6421, 40, ISR for device 5
+6461, 11, ISR for device 5
+6472, 1, IRET
+6473, 55, CPU burst
+6528, 1, switch to kernel mode
+6529, 10, context saved
+6539, 1, find vector 5 in memory position 0x000A
+6540, 1, load address 0X048B into the PC
+6541, 40, ISR for device 5
+6581, 40, ISR for device 5
+6621, 40, ISR for device 5
+6661, 40, ISR for device 5
+6701, 40, ISR for device 5
+6741, 11, ISR for device 5
+6752, 1, IRET
+6753, 17, CPU burst
+6770, 1, switch to kernel mode
+6771, 10, context saved
+6781, 1, find vector 3 in memory position 0x0006
+6782, 1, load address 0X042B into the PC
+6783, 40, ISR for device 3
+6823, 40, ISR for device 3
+6863, 40, ISR for device 3
+6903, 40, ISR for device 3
+6943, 40, ISR for device 3
+6983, 40, ISR for device 3
+7023, 40, ISR for device 3
+7063, 20, ISR for device 3
+7083, 1, IRET
+7084, 66, CPU burst
+7150, 1, switch to kernel mode
+7151, 10, context saved
+7161, 1, find vector 3 in memory position 0x0006
+7162, 1, load address 0X042B into the PC
+7163, 40, ISR for device 3
+7203, 40, ISR for device 3
+7243, 40, ISR for device 3
+7283, 40, ISR for device 3
+7323, 40, ISR for device 3
+7363, 40, ISR for device 3
+7403, 40, ISR for device 3
+7443, 20, ISR for device 3
+7463, 1, IRET
+7464, 93, CPU burst
+7557, 12, CPU burst
+7569, 88, CPU burst
+7657, 1, switch to kernel mode
+7658, 10, context saved
+7668, 1, find vector 14 in memory position 0x001C
+7669, 1, load address 0X0165 into the PC
+7670, 40, ISR for device 14
+7710, 40, ISR for device 14
+7750, 40, ISR for device 14
+7790, 40, ISR for device 14
+7830, 40, ISR for device 14
+7870, 40, ISR for device 14
+7910, 40, ISR for device 14
+7950, 40, ISR for device 14
+7990, 40, ISR for device 14
+8030, 40, ISR for device 14
+8070, 40, ISR for device 14
+8110, 16, ISR for device 14
+8126, 1, IRET
+8127, 79, CPU burst
+8206, 1, switch to kernel mode
+8207, 10, context saved
+8217, 1, find vector 14 in memory position 0x001C
+8218, 1, load address 0X0165 into the PC
+8219, 40, ISR for device 14
+8259, 40, ISR for device 14
+8299, 40, ISR for device 14
+8339, 40, ISR for device 14
+8379, 40, ISR for device 14
+8419, 40, ISR for device 14
+8459, 40, ISR for device 14
+8499, 40, ISR for device 14
+8539, 40, ISR for device 14
+8579, 40, ISR for device 14
+8619, 40, ISR for device 14
+8659, 16, ISR for device 14
+8675, 1, IRET
+8676, 93, CPU burst
+8769, 1, switch to kernel mode
+8770, 10, context saved
+8780, 1, find vector 1 in memory position 0x0002
+8781, 1, load address 0X029C into the PC
+8782, 40, ISR for device 1
+8822, 40, ISR for device 1
+8862, 20, ISR for device 1
+8882, 1, IRET
+8883, 94, CPU burst
+8977, 1, switch to kernel mode
+8978, 10, context saved
+8988, 1, find vector 1 in memory position 0x0002
+8989, 1, load address 0X029C into the PC
+8990, 40, ISR for device 1
+9030, 40, ISR for device 1
+9070, 20, ISR for device 1
+9090, 1, IRET
+9091, 68, CPU burst
+9159, 1, switch to kernel mode
+9160, 10, context saved
+9170, 1, find vector 3 in memory position 0x0006
+9171, 1, load address 0X042B into the PC
+9172, 40, ISR for device 3
+9212, 40, ISR for device 3
+9252, 40, ISR for device 3
+9292, 40, ISR for device 3
+9332, 40, ISR for device 3
+9372, 40, ISR for device 3
+9412, 40, ISR for device 3
+9452, 20, ISR for device 3
+9472, 1, IRET
+9473, 58, CPU burst
+9531, 1, switch to kernel mode
+9532, 10, context saved
+9542, 1, find vector 3 in memory position 0x0006
+9543, 1, load address 0X042B into the PC
+9544, 40, ISR for device 3
+9584, 40, ISR for device 3
+9624, 40, ISR for device 3
+9664, 40, ISR for device 3
+9704, 40, ISR for device 3
+9744, 40, ISR for device 3
+9784, 40, ISR for device 3
+9824, 20, ISR for device 3
+9844, 1, IRET
+9845, 48, CPU burst
+9893, 1, switch to kernel mode
+9894, 10, context saved
+9904, 1, find vector 14 in memory position 0x001C
+9905, 1, load address 0X0165 into the PC
+9906, 40, ISR for device 14
+9946, 40, ISR for device 14
+9986, 40, ISR for device 14
+10026, 40, ISR for device 14
+10066, 40, ISR for device 14
+10106, 40, ISR for device 14
+10146, 40, ISR for device 14
+10186, 40, ISR for device 14
+10226, 40, ISR for device 14
+10266, 40, ISR for device 14
+10306, 40, ISR for device 14
+10346, 16, ISR for device 14
+10362, 1, IRET
+10363, 87, CPU burst
+10450, 1, switch to kernel mode
+10451, 10, context saved
+10461, 1, find vector 14 in memory position 0x001C
+10462, 1, load address 0X0165 into the PC
+10463, 40, ISR for device 14
+10503, 40, ISR for device 14
+10543, 40, ISR for device 14
+10583, 40, ISR for device 14
+10623, 40, ISR for device 14
+10663, 40, ISR for device 14
+10703, 40, ISR for device 14
+10743, 40, ISR for device 14
+10783, 40, ISR for device 14
+10823, 40, ISR for device 14
+10863, 40, ISR for device 14
+10903, 16, ISR for device 14
+10919, 1, IRET
+10920, 72, CPU burst
+10992, 1, switch to kernel mode
+10993, 10, context saved
+11003, 1, find vector 8 in memory position 0x0010
+11004, 1, load address 0X06EF into the PC
+11005, 40, ISR for device 8
+11045, 40, ISR for device 8
+11085, 40, ISR for device 8
+11125, 40, ISR for device 8
+11165, 40, ISR for device 8
+11205, 40, ISR for device 8
+11245, 40, ISR for device 8
+11285, 40, ISR for device 8
+11325, 40, ISR for device 8
+11365, 40, ISR for device 8
+11405, 40, ISR for device 8
+11445, 40, ISR for device 8
+11485, 40, ISR for device 8
+11525, 40, ISR for device 8
+11565, 40, ISR for device 8
+11605, 40, ISR for device 8
+11645, 40, ISR for device 8
+11685, 40, ISR for device 8
+11725, 40, ISR for device 8
+11765, 40, ISR for device 8
+11805, 40, ISR for device 8
+11845, 40, ISR for device 8
+11885, 40, ISR for device 8
+11925, 40, ISR for device 8
+11965, 40, ISR for device 8
+12005, 1, IRET
+12006, 82, CPU burst
+12088, 1, switch to kernel mode
+12089, 10, context saved
+12099, 1, find vector 8 in memory position 0x0010
+12100, 1, load address 0X06EF into the PC
+12101, 40, ISR for device 8
+12141, 40, ISR for device 8
+12181, 40, ISR for device 8
+12221, 40, ISR for device 8
+12261, 40, ISR for device 8
+12301, 40, ISR for device 8
+12341, 40, ISR for device 8
+12381, 40, ISR for device 8
+12421, 40, ISR for device 8
+12461, 40, ISR for device 8
+12501, 40, ISR for device 8
+12541, 40, ISR for device 8
+12581, 40, ISR for device 8
+12621, 40, ISR for device 8
+12661, 40, ISR for device 8
+12701, 40, ISR for device 8
+12741, 40, ISR for device 8
+12781, 40, ISR for device 8
+12821, 40, ISR for device 8
+12861, 40, ISR for device 8
+12901, 40, ISR for device 8
+12941, 40, ISR for device 8
+12981, 40, ISR for device 8
+13021, 40, ISR for device 8
+13061, 40, ISR for device 8
+13101, 1, IRET
+13102, 99, CPU burst
+13201, 1, switch to kernel mode
+13202, 10, context saved
+13212, 1, find vector 18 in memory position 0x0024
+13213, 1, load address 0X060A into the PC
+13214, 40, ISR for device 18
+13254, 40, ISR for device 18
+13294, 40, ISR for device 18
+13334, 3, ISR for device 18
+13337, 1, IRET
+13338, 65, CPU burst
+13403, 1, switch to kernel mode
+13404, 10, context saved
+13414, 1, find vector 18 in memory position 0x0024
+13415, 1, load address 0X060A into the PC
+13416, 40, ISR for device 18
+13456, 40, ISR for device 18
+13496, 40, ISR for device 18
+13536, 3, ISR for device 18
+13539, 1, IRET
+13540, 24, CPU burst
+13564, 1, switch to kernel mode
+13565, 10, context saved
+13575, 1, find vector 12 in memory position 0x0018
+13576, 1, load address 0X03B9 into the PC
+13577, 40, ISR for device 12
+13617, 40, ISR for device 12
+13657, 40, ISR for device 12
+13697, 25, ISR for device 12
+13722, 1, IRET
+13723, 26, CPU burst
+13749, 1, switch to kernel mode
+13750, 10, context saved
+13760, 1, find vector 12 in memory position 0x0018
+13761, 1, load address 0X03B9 into the PC
+13762, 40, ISR for device 12
+13802, 40, ISR for device 12
+13842, 40, ISR for device 12
+13882, 25, ISR for device 12
+13907, 1, IRET
+13908, 54, CPU burst
+13962, 1, switch to kernel mode
+13963, 10, context saved
+13973, 1, find vector 11 in memory position 0x0016
+13974, 1, load address 0X01F8 into the PC
+13975, 40, ISR for device 11
+14015, 40, ISR for device 11
+14055, 40, ISR for device 11
+14095, 40, ISR for device 11
+14135, 40, ISR for device 11
+14175, 40, ISR for device 11
+14215, 40, ISR for device 11
+14255, 40, ISR for device 11
+14295, 40, ISR for device 11
+14335, 40, ISR for device 11
+14375, 40, ISR for device 11
+14415, 40, ISR for device 11
+14455, 40, ISR for device 11
+14495, 3, ISR for device 11
+14498, 1, IRET
+14499, 78, CPU burst
+14577, 1, switch to kernel mode
+14578, 10, context saved
+14588, 1, find vector 11 in memory position 0x0016
+14589, 1, load address 0X01F8 into the PC
+14590, 40, ISR for device 11
+14630, 40, ISR for device 11
+14670, 40, ISR for device 11
+14710, 40, ISR for device 11
+14750, 40, ISR for device 11
+14790, 40, ISR for device 11
+14830, 40, ISR for device 11
+14870, 40, ISR for device 11
+14910, 40, ISR for device 11
+14950, 40, ISR for device 11
+14990, 40, ISR for device 11
+15030, 40, ISR for device 11
+15070, 40, ISR for device 11
+15110, 3, ISR for device 11
+15113, 1, IRET
+15114, 66, CPU burst
+15180, 1, switch to kernel mode
+15181, 10, context saved
+15191, 1, find vector 15 in memory position 0x001E
+15192, 1, load address 0X0584 into the PC
+15193, 40, ISR for device 15
+15233, 28, ISR for device 15
+15261, 1, IRET
+15262, 79, CPU burst
+15341, 1, switch to kernel mode
+15342, 10, context saved
+15352, 1, find vector 15 in memory position 0x001E
+15353, 1, load address 0X0584 into the PC
+15354, 40, ISR for device 15
+15394, 28, ISR for device 15
+15422, 1, IRET
+15423, 82, CPU burst
+15505, 1, switch to kernel mode
+15506, 10, context saved
+15516, 1, find vector 4 in memory position 0x0008
+15517, 1, load address 0X0292 into the PC
+15518, 40, ISR for device 4
+15558, 40, ISR for device 4
+15598, 40, ISR for device 4
+15638, 40, ISR for device 4
+15678, 40, ISR for device 4
+15718, 40, ISR for device 4
+15758, 10, ISR for device 4
+15768, 1, IRET
+15769, 88, CPU burst
+15857, 1, switch to kernel mode
+15858, 10, context saved
+15868, 1, find vector 4 in memory position 0x0008
+15869, 1, load address 0X0292 into the PC
+15870, 40, ISR for device 4
+15910, 40, ISR for device 4
+15950, 40, ISR for device 4
+15990, 40, ISR for device 4
+16030, 40, ISR for device 4
+16070, 40, ISR for device 4
+16110, 10, ISR for device 4
+16120, 1, IRET
+16121, 16, CPU burst
+16137, 1, switch to kernel mode
+16138, 10, context saved
+16148, 1, find vector 8 in memory position 0x0010
+16149, 1, load address 0X06EF into the PC
+16150, 40, ISR for device 8
+16190, 40, ISR for device 8
+16230, 40, ISR for device 8
+16270, 40, ISR for device 8
+16310, 40, ISR for device 8
+16350, 40, ISR for device 8
+16390, 40, ISR for device 8
+16430, 40, ISR for device 8
+16470, 40, ISR for device 8
+16510, 40, ISR for device 8
+16550, 40, ISR for device 8
+16590, 40, ISR for device 8
+16630, 40, ISR for device 8
+16670, 40, ISR for device 8
+16710, 40, ISR for device 8
+16750, 40, ISR for device 8
+16790, 40, ISR for device 8
+16830, 40, ISR for device 8
+16870, 40, ISR for device 8
+16910, 40, ISR for device 8
+16950, 40, ISR for device 8
+16990, 40, ISR for device 8
+17030, 40, ISR for device 8
+17070, 40, ISR for device 8
+17110, 40, ISR for device 8
+17150, 1, IRET
+17151, 26, CPU burst
+17177, 1, switch to kernel mode
+17178, 10, context saved
+17188, 1, find vector 8 in memory position 0x0010
+17189, 1, load address 0X06EF into the PC
+17190, 40, ISR for device 8
+17230, 40, ISR for device 8
+17270, 40, ISR for device 8
+17310, 40, ISR for device 8
+17350, 40, ISR for device 8
+17390, 40, ISR for device 8
+17430, 40, ISR for device 8
+17470, 40, ISR for device 8
+17510, 40, ISR for device 8
+17550, 40, ISR for device 8
+17590, 40, ISR for device 8
+17630, 40, ISR for device 8
+17670, 40, ISR for device 8
+17710, 40, ISR for device 8
+17750, 40, ISR for device 8
+17790, 40, ISR for device 8
+17830, 40, ISR for device 8
+17870, 40, ISR for device 8
+17910, 40, ISR for device 8
+17950, 40, ISR for device 8
+17990, 40, ISR for device 8
+18030, 40, ISR for device 8
+18070, 40, ISR for device 8
+18110, 40, ISR for device 8
+18150, 40, ISR for device 8
+18190, 1, IRET
+18191, 22, CPU burst
+18213, 1, switch to kernel mode
+18214, 10, context saved
+18224, 1, find vector 18 in memory position 0x0024
+18225, 1, load address 0X060A into the PC
+18226, 40, ISR for device 18
+18266, 40, ISR for device 18
+18306, 40, ISR for device 18
+18346, 3, ISR for device 18
+18349, 1, IRET
+18350, 95, CPU burst
+18445, 1, switch to kernel mode
+18446, 10, context saved
+18456, 1, find vector 18 in memory position 0x0024
+18457, 1, load address 0X060A into the PC
+18458, 40, ISR for device 18
+18498, 40, ISR for device 18
+18538, 40, ISR for device 18
+18578, 3, ISR for device 18
+18581, 1, IRET
+18582, 63, CPU burst
+18645, 1, switch to kernel mode
+18646, 10, context saved
+18656, 1, find vector 18 in memory position 0x0024
+18657, 1, load address 0X060A into the PC
+18658, 40, ISR for device 18
+18698, 40, ISR for device 18
+18738, 40, ISR for device 18
+18778, 3, ISR for device 18
+18781, 1, IRET
+18782, 18, CPU burst
+18800, 1, switch to kernel mode
+18801, 10, context saved
+18811, 1, find vector 18 in memory position 0x0024
+18812, 1, load address 0X060A into the PC
+18813, 40, ISR for device 18
+18853, 40, ISR for device 18
+18893, 40, ISR for device 18
+18933, 3, ISR for device 18
+18936, 1, IRET
+18937, 50, CPU burst
+18987, 1, switch to kernel mode
+18988, 10, context saved
+18998, 1, find vector 14 in memory position 0x001C
+18999, 1, load address 0X0165 into the PC
+19000, 40, ISR for device 14
+19040, 40, ISR for device 14
+19080, 40, ISR for device 14
+19120, 40, ISR for device 14
+19160, 40, ISR for device 14
+19200, 40, ISR for device 14
+19240, 40, ISR for device 14
+19280, 40, ISR for device 14
+19320, 40, ISR for device 14
+19360, 40, ISR for device 14
+19400, 40, ISR for device 14
+19440, 16, ISR for device 14
+19456, 1, IRET
+19457, 56, CPU burst
+19513, 1, switch to kernel mode
+19514, 10, context saved
+19524, 1, find vector 14 in memory position 0x001C
+19525, 1, load address 0X0165 into the PC
+19526, 40, ISR for device 14
+19566, 40, ISR for device 14
+19606, 40, ISR for device 14
+19646, 40, ISR for device 14
+19686, 40, ISR for device 14
+19726, 40, ISR for device 14
+19766, 40, ISR for device 14
+19806, 40, ISR for device 14
+19846, 40, ISR for device 14
+19886, 40, ISR for device 14
+19926, 40, ISR for device 14
+19966, 16, ISR for device 14
+19982, 1, IRET
+19983, 83, CPU burst
+20066, 1, switch to kernel mode
+20067, 10, context saved
+20077, 1, find vector 16 in memory position 0x0020
+20078, 1, load address 0X02DF into the PC
+20079, 40, ISR for device 16
+20119, 40, ISR for device 16
+20159, 40, ISR for device 16
+20199, 40, ISR for device 16
+20239, 40, ISR for device 16
+20279, 40, ISR for device 16
+20319, 40, ISR for device 16
+20359, 40, ISR for device 16
+20399, 40, ISR for device 16
+20439, 40, ISR for device 16
+20479, 40, ISR for device 16
+20519, 40, ISR for device 16
+20559, 40, ISR for device 16
+20599, 40, ISR for device 16
+20639, 40, ISR for device 16
+20679, 40, ISR for device 16
+20719, 40, ISR for device 16
+20759, 40, ISR for device 16
+20799, 40, ISR for device 16
+20839, 40, ISR for device 16
+20879, 40, ISR for device 16
+20919, 40, ISR for device 16
+20959, 40, ISR for device 16
+20999, 36, ISR for device 16
+21035, 1, IRET
+21036, 23, CPU burst
+21059, 1, switch to kernel mode
+21060, 10, context saved
+21070, 1, find vector 16 in memory position 0x0020
+21071, 1, load address 0X02DF into the PC
+21072, 40, ISR for device 16
+21112, 40, ISR for device 16
+21152, 40, ISR for device 16
+21192, 40, ISR for device 16
+21232, 40, ISR for device 16
+21272, 40, ISR for device 16
+21312, 40, ISR for device 16
+21352, 40, ISR for device 16
+21392, 40, ISR for device 16
+21432, 40, ISR for device 16
+21472, 40, ISR for device 16
+21512, 40, ISR for device 16
+21552, 40, ISR for device 16
+21592, 40, ISR for device 16
+21632, 40, ISR for device 16
+21672, 40, ISR for device 16
+21712, 40, ISR for device 16
+21752, 40, ISR for device 16
+21792, 40, ISR for device 16
+21832, 40, ISR for device 16
+21872, 40, ISR for device 16
+21912, 40, ISR for device 16
+21952, 40, ISR for device 16
+21992, 36, ISR for device 16
+22028, 1, IRET
+22029, 80, CPU burst
+22109, 1, switch to kernel mode
+22110, 10, context saved
+22120, 1, find vector 15 in memory position 0x001E
+22121, 1, load address 0X0584 into the PC
+22122, 40, ISR for device 15
+22162, 28, ISR for device 15
+22190, 1, IRET
+22191, 98, CPU burst
+22289, 1, switch to kernel mode
+22290, 10, context saved
+22300, 1, find vector 15 in memory position 0x001E
+22301, 1, load address 0X0584 into the PC
+22302, 40, ISR for device 15
+22342, 28, ISR for device 15
+22370, 1, IRET
+22371, 77, CPU burst
+22448, 1, switch to kernel mode
+22449, 10, context saved
+22459, 1, find vector 14 in memory position 0x001C
+22460, 1, load address 0X0165 into the PC
+22461, 40, ISR for device 14
+22501, 40, ISR for device 14
+22541, 40, ISR for device 14
+22581, 40, ISR for device 14
+22621, 40, ISR for device 14
+22661, 40, ISR for device 14
+22701, 40, ISR for device 14
+22741, 40, ISR for device 14
+22781, 40, ISR for device 14
+22821, 40, ISR for device 14
+22861, 40, ISR for device 14
+22901, 16, ISR for device 14
+22917, 1, IRET
+22918, 11, CPU burst
+22929, 1, switch to kernel mode
+22930, 10, context saved
+22940, 1, find vector 14 in memory position 0x001C
+22941, 1, load address 0X0165 into the PC
+22942, 40, ISR for device 14
+22982, 40, ISR for device 14
+23022, 40, ISR for device 14
+23062, 40, ISR for device 14
+23102, 40, ISR for device 14
+23142, 40, ISR for device 14
+23182, 40, ISR for device 14
+23222, 40, ISR for device 14
+23262, 40, ISR for device 14
+23302, 40, ISR for device 14
+23342, 40, ISR for device 14
+23382, 16, ISR for device 14
+23398, 1, IRET
+23399, 61, CPU burst
+23460, 1, switch to kernel mode
+23461, 10, context saved
+23471, 1, find vector 14 in memory position 0x001C
+23472, 1, load address 0X0165 into the PC
+23473, 40, ISR for device 14
+23513, 40, ISR for device 14
+23553, 40, ISR for device 14
+23593, 40, ISR for device 14
+23633, 40, ISR for device 14
+23673, 40, ISR for device 14
+23713, 40, ISR for device 14
+23753, 40, ISR for device 14
+23793, 40, ISR for device 14
+23833, 40, ISR for device 14
+23873, 40, ISR for device 14
+23913, 16, ISR for device 14
+23929, 1, IRET
+23930, 34, CPU burst
+23964, 1, switch to kernel mode
+23965, 10, context saved
+23975, 1, find vector 14 in memory position 0x001C
+23976, 1, load address 0X0165 into the PC
+23977, 40, ISR for device 14
+24017, 40, ISR for device 14
+24057, 40, ISR for device 14
+24097, 40, ISR for device 14
+24137, 40, ISR for device 14
+24177, 40, ISR for device 14
+24217, 40, ISR for device 14
+24257, 40, ISR for device 14
+24297, 40, ISR for device 14
+24337, 40, ISR for device 14
+24377, 40, ISR for device 14
+24417, 16, ISR for device 14
+24433, 1, IRET
+24434, 32, CPU burst
+24466, 1, switch to kernel mode
+24467, 10, context saved
+24477, 1, find vector 7 in memory position 0x000E
+24478, 1, load address 0X00BD into the PC
+24479, 40, ISR for device 7
+24519, 40, ISR for device 7
+24559, 40, ISR for device 7
+24599, 32, ISR for device 7
+24631, 1, IRET
+24632, 69, CPU burst
+24701, 1, switch to kernel mode
+24702, 10, context saved
+24712, 1, find vector 7 in memory position 0x000E
+24713, 1, load address 0X00BD into the PC
+24714, 40, ISR for device 7
+24754, 40, ISR for device 7
+24794, 40, ISR for device 7
+24834, 32, ISR for device 7
+24866, 1, IRET
+24867, 79, CPU burst
+24946, 41, CPU burst
+24987, 63, CPU burst
+25050, 1, switch to kernel mode
+25051, 10, context saved
+25061, 1, find vector 7 in memory position 0x000E
+25062, 1, load address 0X00BD into the PC
+25063, 40, ISR for device 7
+25103, 40, ISR for device 7
+25143, 40, ISR for device 7
+25183, 32, ISR for device 7
+25215, 1, IRET
+25216, 27, CPU burst
+25243, 1, switch to kernel mode
+25244, 10, context saved
+25254, 1, find vector 7 in memory position 0x000E
+25255, 1, load address 0X00BD into the PC
+25256, 40, ISR for device 7
+25296, 40, ISR for device 7
+25336, 40, ISR for device 7
+25376, 32, ISR for device 7
+25408, 1, IRET
+25409, 85, CPU burst
+25494, 1, switch to kernel mode
+25495, 10, context saved
+25505, 1, find vector 11 in memory position 0x0016
+25506, 1, load address 0X01F8 into the PC
+25507, 40, ISR for device 11
+25547, 40, ISR for device 11
+25587, 40, ISR for device 11
+25627, 40, ISR for device 11
+25667, 40, ISR for device 11
+25707, 40, ISR for device 11
+25747, 40, ISR for device 11
+25787, 40, ISR for device 11
+25827, 40, ISR for device 11
+25867, 40, ISR for device 11
+25907, 40, ISR for device 11
+25947, 40, ISR for device 11
+25987, 40, ISR for device 11
+26027, 3, ISR for device 11
+26030, 1, IRET
+26031, 68, CPU burst
+26099, 1, switch to kernel mode
+26100, 10, context saved
+26110, 1, find vector 11 in memory position 0x0016
+26111, 1, load address 0X01F8 into the PC
+26112, 40, ISR for device 11
+26152, 40, ISR for device 11
+26192, 40, ISR for device 11
+26232, 40, ISR for device 11
+26272, 40, ISR for device 11
+26312, 40, ISR for device 11
+26352, 40, ISR for device 11
+26392, 40, ISR for device 11
+26432, 40, ISR for device 11
+26472, 40, ISR for device 11
+26512, 40, ISR for device 11
+26552, 40, ISR for device 11
+26592, 40, ISR for device 11
+26632, 3, ISR for device 11
+26635, 1, IRET
+26636, 23, CPU burst
+26659, 1, switch to kernel mode
+26660, 10, context saved
+26670, 1, find vector 14 in memory position 0x001C
+26671, 1, load address 0X0165 into the PC
+26672, 40, ISR for device 14
+26712, 40, ISR for device 14
+26752, 40, ISR for device 14
+26792, 40, ISR for device 14
+26832, 40, ISR for device 14
+26872, 40, ISR for device 14
+26912, 40, ISR for device 14
+26952, 40, ISR for device 14
+26992, 40, ISR for device 14
+27032, 40, ISR for device 14
+27072, 40, ISR for device 14
+27112, 16, ISR for device 14
+27128, 1, IRET
+27129, 22, CPU burst
+27151, 1, switch to kernel mode
+27152, 10, context saved
+27162, 1, find vector 14 in memory position 0x001C
+27163, 1, load address 0X0165 into the PC
+27164, 40, ISR for device 14
+27204, 40, ISR for device 14
+27244, 40, ISR for device 14
+27284, 40, ISR for device 14
+27324, 40, ISR for device 14
+27364, 40, ISR for device 14
+27404, 40, ISR for device 14
+27444, 40, ISR for device 14
+27484, 40, ISR for device 14
+27524, 40, ISR for device 14
+27564, 40, ISR for device 14
+27604, 16, ISR for device 14
+27620, 1, IRET
+27621, 29, CPU burst
+27650, 1, switch to kernel mode
+27651, 10, context saved
+27661, 1, find vector 17 in memory position 0x0022
+27662, 1, load address 0X05B3 into the PC
+27663, 40, ISR for device 17
+27703, 40, ISR for device 17
+27743, 40, ISR for device 17
+27783, 40, ISR for device 17
+27823, 40, ISR for device 17
+27863, 35, ISR for device 17
+27898, 1, IRET
+27899, 99, CPU burst
+27998, 1, switch to kernel mode
+27999, 10, context saved
+28009, 1, find vector 17 in memory position 0x0022
+28010, 1, load address 0X05B3 into the PC
+28011, 40, ISR for device 17
+28051, 40, ISR for device 17
+28091, 40, ISR for device 17
+28131, 40, ISR for device 17
+28171, 40, ISR for device 17
+28211, 35, ISR for device 17
+28246, 1, IRET
+28247, 46, CPU burst
diff --git a/execution_trace_5.txt b/execution_trace_5.txt
new file mode 100644
index 0000000..0caaa33
--- /dev/null
+++ b/execution_trace_5.txt
@@ -0,0 +1,1119 @@
+0, 14, CPU burst
+14, 1, switch to kernel mode
+15, 10, context saved
+25, 1, find vector 5 in memory position 0x000A
+26, 1, load address 0X048B into the PC
+27, 40, ISR for device 5
+67, 40, ISR for device 5
+107, 40, ISR for device 5
+147, 40, ISR for device 5
+187, 40, ISR for device 5
+227, 11, ISR for device 5
+238, 1, IRET
+239, 78, CPU burst
+317, 1, switch to kernel mode
+318, 10, context saved
+328, 1, find vector 5 in memory position 0x000A
+329, 1, load address 0X048B into the PC
+330, 40, ISR for device 5
+370, 40, ISR for device 5
+410, 40, ISR for device 5
+450, 40, ISR for device 5
+490, 40, ISR for device 5
+530, 11, ISR for device 5
+541, 1, IRET
+542, 84, CPU burst
+626, 1, switch to kernel mode
+627, 10, context saved
+637, 1, find vector 16 in memory position 0x0020
+638, 1, load address 0X02DF into the PC
+639, 40, ISR for device 16
+679, 40, ISR for device 16
+719, 40, ISR for device 16
+759, 40, ISR for device 16
+799, 40, ISR for device 16
+839, 40, ISR for device 16
+879, 40, ISR for device 16
+919, 40, ISR for device 16
+959, 40, ISR for device 16
+999, 40, ISR for device 16
+1039, 40, ISR for device 16
+1079, 40, ISR for device 16
+1119, 40, ISR for device 16
+1159, 40, ISR for device 16
+1199, 40, ISR for device 16
+1239, 40, ISR for device 16
+1279, 40, ISR for device 16
+1319, 40, ISR for device 16
+1359, 40, ISR for device 16
+1399, 40, ISR for device 16
+1439, 40, ISR for device 16
+1479, 40, ISR for device 16
+1519, 40, ISR for device 16
+1559, 36, ISR for device 16
+1595, 1, IRET
+1596, 70, CPU burst
+1666, 1, switch to kernel mode
+1667, 10, context saved
+1677, 1, find vector 16 in memory position 0x0020
+1678, 1, load address 0X02DF into the PC
+1679, 40, ISR for device 16
+1719, 40, ISR for device 16
+1759, 40, ISR for device 16
+1799, 40, ISR for device 16
+1839, 40, ISR for device 16
+1879, 40, ISR for device 16
+1919, 40, ISR for device 16
+1959, 40, ISR for device 16
+1999, 40, ISR for device 16
+2039, 40, ISR for device 16
+2079, 40, ISR for device 16
+2119, 40, ISR for device 16
+2159, 40, ISR for device 16
+2199, 40, ISR for device 16
+2239, 40, ISR for device 16
+2279, 40, ISR for device 16
+2319, 40, ISR for device 16
+2359, 40, ISR for device 16
+2399, 40, ISR for device 16
+2439, 40, ISR for device 16
+2479, 40, ISR for device 16
+2519, 40, ISR for device 16
+2559, 40, ISR for device 16
+2599, 36, ISR for device 16
+2635, 1, IRET
+2636, 35, CPU burst
+2671, 1, switch to kernel mode
+2672, 10, context saved
+2682, 1, find vector 9 in memory position 0x0012
+2683, 1, load address 0X036C into the PC
+2684, 40, ISR for device 9
+2724, 40, ISR for device 9
+2764, 40, ISR for device 9
+2804, 36, ISR for device 9
+2840, 1, IRET
+2841, 51, CPU burst
+2892, 1, switch to kernel mode
+2893, 10, context saved
+2903, 1, find vector 9 in memory position 0x0012
+2904, 1, load address 0X036C into the PC
+2905, 40, ISR for device 9
+2945, 40, ISR for device 9
+2985, 40, ISR for device 9
+3025, 36, ISR for device 9
+3061, 1, IRET
+3062, 72, CPU burst
+3134, 1, switch to kernel mode
+3135, 10, context saved
+3145, 1, find vector 2 in memory position 0x0004
+3146, 1, load address 0X0695 into the PC
+3147, 40, ISR for device 2
+3187, 40, ISR for device 2
+3227, 40, ISR for device 2
+3267, 30, ISR for device 2
+3297, 1, IRET
+3298, 99, CPU burst
+3397, 1, switch to kernel mode
+3398, 10, context saved
+3408, 1, find vector 2 in memory position 0x0004
+3409, 1, load address 0X0695 into the PC
+3410, 40, ISR for device 2
+3450, 40, ISR for device 2
+3490, 40, ISR for device 2
+3530, 30, ISR for device 2
+3560, 1, IRET
+3561, 69, CPU burst
+3630, 1, switch to kernel mode
+3631, 10, context saved
+3641, 1, find vector 11 in memory position 0x0016
+3642, 1, load address 0X01F8 into the PC
+3643, 40, ISR for device 11
+3683, 40, ISR for device 11
+3723, 40, ISR for device 11
+3763, 40, ISR for device 11
+3803, 40, ISR for device 11
+3843, 40, ISR for device 11
+3883, 40, ISR for device 11
+3923, 40, ISR for device 11
+3963, 40, ISR for device 11
+4003, 40, ISR for device 11
+4043, 40, ISR for device 11
+4083, 40, ISR for device 11
+4123, 40, ISR for device 11
+4163, 3, ISR for device 11
+4166, 1, IRET
+4167, 70, CPU burst
+4237, 1, switch to kernel mode
+4238, 10, context saved
+4248, 1, find vector 11 in memory position 0x0016
+4249, 1, load address 0X01F8 into the PC
+4250, 40, ISR for device 11
+4290, 40, ISR for device 11
+4330, 40, ISR for device 11
+4370, 40, ISR for device 11
+4410, 40, ISR for device 11
+4450, 40, ISR for device 11
+4490, 40, ISR for device 11
+4530, 40, ISR for device 11
+4570, 40, ISR for device 11
+4610, 40, ISR for device 11
+4650, 40, ISR for device 11
+4690, 40, ISR for device 11
+4730, 40, ISR for device 11
+4770, 3, ISR for device 11
+4773, 1, IRET
+4774, 62, CPU burst
+4836, 1, switch to kernel mode
+4837, 10, context saved
+4847, 1, find vector 19 in memory position 0x0026
+4848, 1, load address 0X0765 into the PC
+4849, 40, ISR for device 19
+4889, 40, ISR for device 19
+4929, 40, ISR for device 19
+4969, 40, ISR for device 19
+5009, 40, ISR for device 19
+5049, 40, ISR for device 19
+5089, 40, ISR for device 19
+5129, 40, ISR for device 19
+5169, 40, ISR for device 19
+5209, 40, ISR for device 19
+5249, 40, ISR for device 19
+5289, 40, ISR for device 19
+5329, 40, ISR for device 19
+5369, 40, ISR for device 19
+5409, 40, ISR for device 19
+5449, 40, ISR for device 19
+5489, 12, ISR for device 19
+5501, 1, IRET
+5502, 34, CPU burst
+5536, 1, switch to kernel mode
+5537, 10, context saved
+5547, 1, find vector 19 in memory position 0x0026
+5548, 1, load address 0X0765 into the PC
+5549, 40, ISR for device 19
+5589, 40, ISR for device 19
+5629, 40, ISR for device 19
+5669, 40, ISR for device 19
+5709, 40, ISR for device 19
+5749, 40, ISR for device 19
+5789, 40, ISR for device 19
+5829, 40, ISR for device 19
+5869, 40, ISR for device 19
+5909, 40, ISR for device 19
+5949, 40, ISR for device 19
+5989, 40, ISR for device 19
+6029, 40, ISR for device 19
+6069, 40, ISR for device 19
+6109, 40, ISR for device 19
+6149, 40, ISR for device 19
+6189, 12, ISR for device 19
+6201, 1, IRET
+6202, 85, CPU burst
+6287, 1, switch to kernel mode
+6288, 10, context saved
+6298, 1, find vector 15 in memory position 0x001E
+6299, 1, load address 0X0584 into the PC
+6300, 40, ISR for device 15
+6340, 28, ISR for device 15
+6368, 1, IRET
+6369, 73, CPU burst
+6442, 1, switch to kernel mode
+6443, 10, context saved
+6453, 1, find vector 15 in memory position 0x001E
+6454, 1, load address 0X0584 into the PC
+6455, 40, ISR for device 15
+6495, 28, ISR for device 15
+6523, 1, IRET
+6524, 26, CPU burst
+6550, 1, switch to kernel mode
+6551, 10, context saved
+6561, 1, find vector 10 in memory position 0x0014
+6562, 1, load address 0X07B0 into the PC
+6563, 40, ISR for device 10
+6603, 40, ISR for device 10
+6643, 40, ISR for device 10
+6683, 40, ISR for device 10
+6723, 40, ISR for device 10
+6763, 40, ISR for device 10
+6803, 40, ISR for device 10
+6843, 40, ISR for device 10
+6883, 40, ISR for device 10
+6923, 40, ISR for device 10
+6963, 40, ISR for device 10
+7003, 40, ISR for device 10
+7043, 40, ISR for device 10
+7083, 40, ISR for device 10
+7123, 4, ISR for device 10
+7127, 1, IRET
+7128, 89, CPU burst
+7217, 1, switch to kernel mode
+7218, 10, context saved
+7228, 1, find vector 10 in memory position 0x0014
+7229, 1, load address 0X07B0 into the PC
+7230, 40, ISR for device 10
+7270, 40, ISR for device 10
+7310, 40, ISR for device 10
+7350, 40, ISR for device 10
+7390, 40, ISR for device 10
+7430, 40, ISR for device 10
+7470, 40, ISR for device 10
+7510, 40, ISR for device 10
+7550, 40, ISR for device 10
+7590, 40, ISR for device 10
+7630, 40, ISR for device 10
+7670, 40, ISR for device 10
+7710, 40, ISR for device 10
+7750, 40, ISR for device 10
+7790, 4, ISR for device 10
+7794, 1, IRET
+7795, 15, CPU burst
+7810, 1, switch to kernel mode
+7811, 10, context saved
+7821, 1, find vector 7 in memory position 0x000E
+7822, 1, load address 0X00BD into the PC
+7823, 40, ISR for device 7
+7863, 40, ISR for device 7
+7903, 40, ISR for device 7
+7943, 32, ISR for device 7
+7975, 1, IRET
+7976, 24, CPU burst
+8000, 1, switch to kernel mode
+8001, 10, context saved
+8011, 1, find vector 7 in memory position 0x000E
+8012, 1, load address 0X00BD into the PC
+8013, 40, ISR for device 7
+8053, 40, ISR for device 7
+8093, 40, ISR for device 7
+8133, 32, ISR for device 7
+8165, 1, IRET
+8166, 23, CPU burst
+8189, 1, switch to kernel mode
+8190, 10, context saved
+8200, 1, find vector 10 in memory position 0x0014
+8201, 1, load address 0X07B0 into the PC
+8202, 40, ISR for device 10
+8242, 40, ISR for device 10
+8282, 40, ISR for device 10
+8322, 40, ISR for device 10
+8362, 40, ISR for device 10
+8402, 40, ISR for device 10
+8442, 40, ISR for device 10
+8482, 40, ISR for device 10
+8522, 40, ISR for device 10
+8562, 40, ISR for device 10
+8602, 40, ISR for device 10
+8642, 40, ISR for device 10
+8682, 40, ISR for device 10
+8722, 40, ISR for device 10
+8762, 4, ISR for device 10
+8766, 1, IRET
+8767, 57, CPU burst
+8824, 1, switch to kernel mode
+8825, 10, context saved
+8835, 1, find vector 10 in memory position 0x0014
+8836, 1, load address 0X07B0 into the PC
+8837, 40, ISR for device 10
+8877, 40, ISR for device 10
+8917, 40, ISR for device 10
+8957, 40, ISR for device 10
+8997, 40, ISR for device 10
+9037, 40, ISR for device 10
+9077, 40, ISR for device 10
+9117, 40, ISR for device 10
+9157, 40, ISR for device 10
+9197, 40, ISR for device 10
+9237, 40, ISR for device 10
+9277, 40, ISR for device 10
+9317, 40, ISR for device 10
+9357, 40, ISR for device 10
+9397, 4, ISR for device 10
+9401, 1, IRET
+9402, 11, CPU burst
+9413, 1, switch to kernel mode
+9414, 10, context saved
+9424, 1, find vector 4 in memory position 0x0008
+9425, 1, load address 0X0292 into the PC
+9426, 40, ISR for device 4
+9466, 40, ISR for device 4
+9506, 40, ISR for device 4
+9546, 40, ISR for device 4
+9586, 40, ISR for device 4
+9626, 40, ISR for device 4
+9666, 10, ISR for device 4
+9676, 1, IRET
+9677, 100, CPU burst
+9777, 1, switch to kernel mode
+9778, 10, context saved
+9788, 1, find vector 4 in memory position 0x0008
+9789, 1, load address 0X0292 into the PC
+9790, 40, ISR for device 4
+9830, 40, ISR for device 4
+9870, 40, ISR for device 4
+9910, 40, ISR for device 4
+9950, 40, ISR for device 4
+9990, 40, ISR for device 4
+10030, 10, ISR for device 4
+10040, 1, IRET
+10041, 73, CPU burst
+10114, 1, switch to kernel mode
+10115, 10, context saved
+10125, 1, find vector 11 in memory position 0x0016
+10126, 1, load address 0X01F8 into the PC
+10127, 40, ISR for device 11
+10167, 40, ISR for device 11
+10207, 40, ISR for device 11
+10247, 40, ISR for device 11
+10287, 40, ISR for device 11
+10327, 40, ISR for device 11
+10367, 40, ISR for device 11
+10407, 40, ISR for device 11
+10447, 40, ISR for device 11
+10487, 40, ISR for device 11
+10527, 40, ISR for device 11
+10567, 40, ISR for device 11
+10607, 40, ISR for device 11
+10647, 3, ISR for device 11
+10650, 1, IRET
+10651, 18, CPU burst
+10669, 1, switch to kernel mode
+10670, 10, context saved
+10680, 1, find vector 11 in memory position 0x0016
+10681, 1, load address 0X01F8 into the PC
+10682, 40, ISR for device 11
+10722, 40, ISR for device 11
+10762, 40, ISR for device 11
+10802, 40, ISR for device 11
+10842, 40, ISR for device 11
+10882, 40, ISR for device 11
+10922, 40, ISR for device 11
+10962, 40, ISR for device 11
+11002, 40, ISR for device 11
+11042, 40, ISR for device 11
+11082, 40, ISR for device 11
+11122, 40, ISR for device 11
+11162, 40, ISR for device 11
+11202, 3, ISR for device 11
+11205, 1, IRET
+11206, 34, CPU burst
+11240, 1, switch to kernel mode
+11241, 10, context saved
+11251, 1, find vector 4 in memory position 0x0008
+11252, 1, load address 0X0292 into the PC
+11253, 40, ISR for device 4
+11293, 40, ISR for device 4
+11333, 40, ISR for device 4
+11373, 40, ISR for device 4
+11413, 40, ISR for device 4
+11453, 40, ISR for device 4
+11493, 10, ISR for device 4
+11503, 1, IRET
+11504, 65, CPU burst
+11569, 1, switch to kernel mode
+11570, 10, context saved
+11580, 1, find vector 4 in memory position 0x0008
+11581, 1, load address 0X0292 into the PC
+11582, 40, ISR for device 4
+11622, 40, ISR for device 4
+11662, 40, ISR for device 4
+11702, 40, ISR for device 4
+11742, 40, ISR for device 4
+11782, 40, ISR for device 4
+11822, 10, ISR for device 4
+11832, 1, IRET
+11833, 77, CPU burst
+11910, 1, switch to kernel mode
+11911, 10, context saved
+11921, 1, find vector 15 in memory position 0x001E
+11922, 1, load address 0X0584 into the PC
+11923, 40, ISR for device 15
+11963, 28, ISR for device 15
+11991, 1, IRET
+11992, 31, CPU burst
+12023, 1, switch to kernel mode
+12024, 10, context saved
+12034, 1, find vector 15 in memory position 0x001E
+12035, 1, load address 0X0584 into the PC
+12036, 40, ISR for device 15
+12076, 28, ISR for device 15
+12104, 1, IRET
+12105, 18, CPU burst
+12123, 1, switch to kernel mode
+12124, 10, context saved
+12134, 1, find vector 6 in memory position 0x000C
+12135, 1, load address 0X0639 into the PC
+12136, 40, ISR for device 6
+12176, 40, ISR for device 6
+12216, 40, ISR for device 6
+12256, 40, ISR for device 6
+12296, 40, ISR for device 6
+12336, 40, ISR for device 6
+12376, 25, ISR for device 6
+12401, 1, IRET
+12402, 84, CPU burst
+12486, 1, switch to kernel mode
+12487, 10, context saved
+12497, 1, find vector 6 in memory position 0x000C
+12498, 1, load address 0X0639 into the PC
+12499, 40, ISR for device 6
+12539, 40, ISR for device 6
+12579, 40, ISR for device 6
+12619, 40, ISR for device 6
+12659, 40, ISR for device 6
+12699, 40, ISR for device 6
+12739, 25, ISR for device 6
+12764, 1, IRET
+12765, 39, CPU burst
+12804, 1, switch to kernel mode
+12805, 10, context saved
+12815, 1, find vector 6 in memory position 0x000C
+12816, 1, load address 0X0639 into the PC
+12817, 40, ISR for device 6
+12857, 40, ISR for device 6
+12897, 40, ISR for device 6
+12937, 40, ISR for device 6
+12977, 40, ISR for device 6
+13017, 40, ISR for device 6
+13057, 25, ISR for device 6
+13082, 1, IRET
+13083, 41, CPU burst
+13124, 1, switch to kernel mode
+13125, 10, context saved
+13135, 1, find vector 6 in memory position 0x000C
+13136, 1, load address 0X0639 into the PC
+13137, 40, ISR for device 6
+13177, 40, ISR for device 6
+13217, 40, ISR for device 6
+13257, 40, ISR for device 6
+13297, 40, ISR for device 6
+13337, 40, ISR for device 6
+13377, 25, ISR for device 6
+13402, 1, IRET
+13403, 95, CPU burst
+13498, 1, switch to kernel mode
+13499, 10, context saved
+13509, 1, find vector 14 in memory position 0x001C
+13510, 1, load address 0X0165 into the PC
+13511, 40, ISR for device 14
+13551, 40, ISR for device 14
+13591, 40, ISR for device 14
+13631, 40, ISR for device 14
+13671, 40, ISR for device 14
+13711, 40, ISR for device 14
+13751, 40, ISR for device 14
+13791, 40, ISR for device 14
+13831, 40, ISR for device 14
+13871, 40, ISR for device 14
+13911, 40, ISR for device 14
+13951, 16, ISR for device 14
+13967, 1, IRET
+13968, 16, CPU burst
+13984, 1, switch to kernel mode
+13985, 10, context saved
+13995, 1, find vector 14 in memory position 0x001C
+13996, 1, load address 0X0165 into the PC
+13997, 40, ISR for device 14
+14037, 40, ISR for device 14
+14077, 40, ISR for device 14
+14117, 40, ISR for device 14
+14157, 40, ISR for device 14
+14197, 40, ISR for device 14
+14237, 40, ISR for device 14
+14277, 40, ISR for device 14
+14317, 40, ISR for device 14
+14357, 40, ISR for device 14
+14397, 40, ISR for device 14
+14437, 16, ISR for device 14
+14453, 1, IRET
+14454, 24, CPU burst
+14478, 1, switch to kernel mode
+14479, 10, context saved
+14489, 1, find vector 2 in memory position 0x0004
+14490, 1, load address 0X0695 into the PC
+14491, 40, ISR for device 2
+14531, 40, ISR for device 2
+14571, 40, ISR for device 2
+14611, 30, ISR for device 2
+14641, 1, IRET
+14642, 26, CPU burst
+14668, 1, switch to kernel mode
+14669, 10, context saved
+14679, 1, find vector 2 in memory position 0x0004
+14680, 1, load address 0X0695 into the PC
+14681, 40, ISR for device 2
+14721, 40, ISR for device 2
+14761, 40, ISR for device 2
+14801, 30, ISR for device 2
+14831, 1, IRET
+14832, 90, CPU burst
+14922, 1, switch to kernel mode
+14923, 10, context saved
+14933, 1, find vector 15 in memory position 0x001E
+14934, 1, load address 0X0584 into the PC
+14935, 40, ISR for device 15
+14975, 28, ISR for device 15
+15003, 1, IRET
+15004, 76, CPU burst
+15080, 1, switch to kernel mode
+15081, 10, context saved
+15091, 1, find vector 15 in memory position 0x001E
+15092, 1, load address 0X0584 into the PC
+15093, 40, ISR for device 15
+15133, 28, ISR for device 15
+15161, 1, IRET
+15162, 37, CPU burst
+15199, 1, switch to kernel mode
+15200, 10, context saved
+15210, 1, find vector 14 in memory position 0x001C
+15211, 1, load address 0X0165 into the PC
+15212, 40, ISR for device 14
+15252, 40, ISR for device 14
+15292, 40, ISR for device 14
+15332, 40, ISR for device 14
+15372, 40, ISR for device 14
+15412, 40, ISR for device 14
+15452, 40, ISR for device 14
+15492, 40, ISR for device 14
+15532, 40, ISR for device 14
+15572, 40, ISR for device 14
+15612, 40, ISR for device 14
+15652, 16, ISR for device 14
+15668, 1, IRET
+15669, 28, CPU burst
+15697, 1, switch to kernel mode
+15698, 10, context saved
+15708, 1, find vector 14 in memory position 0x001C
+15709, 1, load address 0X0165 into the PC
+15710, 40, ISR for device 14
+15750, 40, ISR for device 14
+15790, 40, ISR for device 14
+15830, 40, ISR for device 14
+15870, 40, ISR for device 14
+15910, 40, ISR for device 14
+15950, 40, ISR for device 14
+15990, 40, ISR for device 14
+16030, 40, ISR for device 14
+16070, 40, ISR for device 14
+16110, 40, ISR for device 14
+16150, 16, ISR for device 14
+16166, 1, IRET
+16167, 92, CPU burst
+16259, 1, switch to kernel mode
+16260, 10, context saved
+16270, 1, find vector 19 in memory position 0x0026
+16271, 1, load address 0X0765 into the PC
+16272, 40, ISR for device 19
+16312, 40, ISR for device 19
+16352, 40, ISR for device 19
+16392, 40, ISR for device 19
+16432, 40, ISR for device 19
+16472, 40, ISR for device 19
+16512, 40, ISR for device 19
+16552, 40, ISR for device 19
+16592, 40, ISR for device 19
+16632, 40, ISR for device 19
+16672, 40, ISR for device 19
+16712, 40, ISR for device 19
+16752, 40, ISR for device 19
+16792, 40, ISR for device 19
+16832, 40, ISR for device 19
+16872, 40, ISR for device 19
+16912, 12, ISR for device 19
+16924, 1, IRET
+16925, 24, CPU burst
+16949, 1, switch to kernel mode
+16950, 10, context saved
+16960, 1, find vector 19 in memory position 0x0026
+16961, 1, load address 0X0765 into the PC
+16962, 40, ISR for device 19
+17002, 40, ISR for device 19
+17042, 40, ISR for device 19
+17082, 40, ISR for device 19
+17122, 40, ISR for device 19
+17162, 40, ISR for device 19
+17202, 40, ISR for device 19
+17242, 40, ISR for device 19
+17282, 40, ISR for device 19
+17322, 40, ISR for device 19
+17362, 40, ISR for device 19
+17402, 40, ISR for device 19
+17442, 40, ISR for device 19
+17482, 40, ISR for device 19
+17522, 40, ISR for device 19
+17562, 40, ISR for device 19
+17602, 12, ISR for device 19
+17614, 1, IRET
+17615, 74, CPU burst
+17689, 1, switch to kernel mode
+17690, 10, context saved
+17700, 1, find vector 16 in memory position 0x0020
+17701, 1, load address 0X02DF into the PC
+17702, 40, ISR for device 16
+17742, 40, ISR for device 16
+17782, 40, ISR for device 16
+17822, 40, ISR for device 16
+17862, 40, ISR for device 16
+17902, 40, ISR for device 16
+17942, 40, ISR for device 16
+17982, 40, ISR for device 16
+18022, 40, ISR for device 16
+18062, 40, ISR for device 16
+18102, 40, ISR for device 16
+18142, 40, ISR for device 16
+18182, 40, ISR for device 16
+18222, 40, ISR for device 16
+18262, 40, ISR for device 16
+18302, 40, ISR for device 16
+18342, 40, ISR for device 16
+18382, 40, ISR for device 16
+18422, 40, ISR for device 16
+18462, 40, ISR for device 16
+18502, 40, ISR for device 16
+18542, 40, ISR for device 16
+18582, 40, ISR for device 16
+18622, 36, ISR for device 16
+18658, 1, IRET
+18659, 11, CPU burst
+18670, 1, switch to kernel mode
+18671, 10, context saved
+18681, 1, find vector 16 in memory position 0x0020
+18682, 1, load address 0X02DF into the PC
+18683, 40, ISR for device 16
+18723, 40, ISR for device 16
+18763, 40, ISR for device 16
+18803, 40, ISR for device 16
+18843, 40, ISR for device 16
+18883, 40, ISR for device 16
+18923, 40, ISR for device 16
+18963, 40, ISR for device 16
+19003, 40, ISR for device 16
+19043, 40, ISR for device 16
+19083, 40, ISR for device 16
+19123, 40, ISR for device 16
+19163, 40, ISR for device 16
+19203, 40, ISR for device 16
+19243, 40, ISR for device 16
+19283, 40, ISR for device 16
+19323, 40, ISR for device 16
+19363, 40, ISR for device 16
+19403, 40, ISR for device 16
+19443, 40, ISR for device 16
+19483, 40, ISR for device 16
+19523, 40, ISR for device 16
+19563, 40, ISR for device 16
+19603, 36, ISR for device 16
+19639, 1, IRET
+19640, 26, CPU burst
+19666, 1, switch to kernel mode
+19667, 10, context saved
+19677, 1, find vector 1 in memory position 0x0002
+19678, 1, load address 0X029C into the PC
+19679, 40, ISR for device 1
+19719, 40, ISR for device 1
+19759, 20, ISR for device 1
+19779, 1, IRET
+19780, 55, CPU burst
+19835, 1, switch to kernel mode
+19836, 10, context saved
+19846, 1, find vector 1 in memory position 0x0002
+19847, 1, load address 0X029C into the PC
+19848, 40, ISR for device 1
+19888, 40, ISR for device 1
+19928, 20, ISR for device 1
+19948, 1, IRET
+19949, 43, CPU burst
+19992, 1, switch to kernel mode
+19993, 10, context saved
+20003, 1, find vector 19 in memory position 0x0026
+20004, 1, load address 0X0765 into the PC
+20005, 40, ISR for device 19
+20045, 40, ISR for device 19
+20085, 40, ISR for device 19
+20125, 40, ISR for device 19
+20165, 40, ISR for device 19
+20205, 40, ISR for device 19
+20245, 40, ISR for device 19
+20285, 40, ISR for device 19
+20325, 40, ISR for device 19
+20365, 40, ISR for device 19
+20405, 40, ISR for device 19
+20445, 40, ISR for device 19
+20485, 40, ISR for device 19
+20525, 40, ISR for device 19
+20565, 40, ISR for device 19
+20605, 40, ISR for device 19
+20645, 12, ISR for device 19
+20657, 1, IRET
+20658, 80, CPU burst
+20738, 1, switch to kernel mode
+20739, 10, context saved
+20749, 1, find vector 19 in memory position 0x0026
+20750, 1, load address 0X0765 into the PC
+20751, 40, ISR for device 19
+20791, 40, ISR for device 19
+20831, 40, ISR for device 19
+20871, 40, ISR for device 19
+20911, 40, ISR for device 19
+20951, 40, ISR for device 19
+20991, 40, ISR for device 19
+21031, 40, ISR for device 19
+21071, 40, ISR for device 19
+21111, 40, ISR for device 19
+21151, 40, ISR for device 19
+21191, 40, ISR for device 19
+21231, 40, ISR for device 19
+21271, 40, ISR for device 19
+21311, 40, ISR for device 19
+21351, 40, ISR for device 19
+21391, 12, ISR for device 19
+21403, 1, IRET
+21404, 95, CPU burst
+21499, 1, switch to kernel mode
+21500, 10, context saved
+21510, 1, find vector 1 in memory position 0x0002
+21511, 1, load address 0X029C into the PC
+21512, 40, ISR for device 1
+21552, 40, ISR for device 1
+21592, 20, ISR for device 1
+21612, 1, IRET
+21613, 98, CPU burst
+21711, 1, switch to kernel mode
+21712, 10, context saved
+21722, 1, find vector 1 in memory position 0x0002
+21723, 1, load address 0X029C into the PC
+21724, 40, ISR for device 1
+21764, 40, ISR for device 1
+21804, 20, ISR for device 1
+21824, 1, IRET
+21825, 47, CPU burst
+21872, 1, switch to kernel mode
+21873, 10, context saved
+21883, 1, find vector 8 in memory position 0x0010
+21884, 1, load address 0X06EF into the PC
+21885, 40, ISR for device 8
+21925, 40, ISR for device 8
+21965, 40, ISR for device 8
+22005, 40, ISR for device 8
+22045, 40, ISR for device 8
+22085, 40, ISR for device 8
+22125, 40, ISR for device 8
+22165, 40, ISR for device 8
+22205, 40, ISR for device 8
+22245, 40, ISR for device 8
+22285, 40, ISR for device 8
+22325, 40, ISR for device 8
+22365, 40, ISR for device 8
+22405, 40, ISR for device 8
+22445, 40, ISR for device 8
+22485, 40, ISR for device 8
+22525, 40, ISR for device 8
+22565, 40, ISR for device 8
+22605, 40, ISR for device 8
+22645, 40, ISR for device 8
+22685, 40, ISR for device 8
+22725, 40, ISR for device 8
+22765, 40, ISR for device 8
+22805, 40, ISR for device 8
+22845, 40, ISR for device 8
+22885, 1, IRET
+22886, 20, CPU burst
+22906, 1, switch to kernel mode
+22907, 10, context saved
+22917, 1, find vector 8 in memory position 0x0010
+22918, 1, load address 0X06EF into the PC
+22919, 40, ISR for device 8
+22959, 40, ISR for device 8
+22999, 40, ISR for device 8
+23039, 40, ISR for device 8
+23079, 40, ISR for device 8
+23119, 40, ISR for device 8
+23159, 40, ISR for device 8
+23199, 40, ISR for device 8
+23239, 40, ISR for device 8
+23279, 40, ISR for device 8
+23319, 40, ISR for device 8
+23359, 40, ISR for device 8
+23399, 40, ISR for device 8
+23439, 40, ISR for device 8
+23479, 40, ISR for device 8
+23519, 40, ISR for device 8
+23559, 40, ISR for device 8
+23599, 40, ISR for device 8
+23639, 40, ISR for device 8
+23679, 40, ISR for device 8
+23719, 40, ISR for device 8
+23759, 40, ISR for device 8
+23799, 40, ISR for device 8
+23839, 40, ISR for device 8
+23879, 40, ISR for device 8
+23919, 1, IRET
+23920, 29, CPU burst
+23949, 99, CPU burst
+24048, 38, CPU burst
+24086, 1, switch to kernel mode
+24087, 10, context saved
+24097, 1, find vector 19 in memory position 0x0026
+24098, 1, load address 0X0765 into the PC
+24099, 40, ISR for device 19
+24139, 40, ISR for device 19
+24179, 40, ISR for device 19
+24219, 40, ISR for device 19
+24259, 40, ISR for device 19
+24299, 40, ISR for device 19
+24339, 40, ISR for device 19
+24379, 40, ISR for device 19
+24419, 40, ISR for device 19
+24459, 40, ISR for device 19
+24499, 40, ISR for device 19
+24539, 40, ISR for device 19
+24579, 40, ISR for device 19
+24619, 40, ISR for device 19
+24659, 40, ISR for device 19
+24699, 40, ISR for device 19
+24739, 12, ISR for device 19
+24751, 1, IRET
+24752, 75, CPU burst
+24827, 1, switch to kernel mode
+24828, 10, context saved
+24838, 1, find vector 19 in memory position 0x0026
+24839, 1, load address 0X0765 into the PC
+24840, 40, ISR for device 19
+24880, 40, ISR for device 19
+24920, 40, ISR for device 19
+24960, 40, ISR for device 19
+25000, 40, ISR for device 19
+25040, 40, ISR for device 19
+25080, 40, ISR for device 19
+25120, 40, ISR for device 19
+25160, 40, ISR for device 19
+25200, 40, ISR for device 19
+25240, 40, ISR for device 19
+25280, 40, ISR for device 19
+25320, 40, ISR for device 19
+25360, 40, ISR for device 19
+25400, 40, ISR for device 19
+25440, 40, ISR for device 19
+25480, 12, ISR for device 19
+25492, 1, IRET
+25493, 16, CPU burst
+25509, 1, switch to kernel mode
+25510, 10, context saved
+25520, 1, find vector 4 in memory position 0x0008
+25521, 1, load address 0X0292 into the PC
+25522, 40, ISR for device 4
+25562, 40, ISR for device 4
+25602, 40, ISR for device 4
+25642, 40, ISR for device 4
+25682, 40, ISR for device 4
+25722, 40, ISR for device 4
+25762, 10, ISR for device 4
+25772, 1, IRET
+25773, 23, CPU burst
+25796, 1, switch to kernel mode
+25797, 10, context saved
+25807, 1, find vector 4 in memory position 0x0008
+25808, 1, load address 0X0292 into the PC
+25809, 40, ISR for device 4
+25849, 40, ISR for device 4
+25889, 40, ISR for device 4
+25929, 40, ISR for device 4
+25969, 40, ISR for device 4
+26009, 40, ISR for device 4
+26049, 10, ISR for device 4
+26059, 1, IRET
+26060, 47, CPU burst
+26107, 1, switch to kernel mode
+26108, 10, context saved
+26118, 1, find vector 11 in memory position 0x0016
+26119, 1, load address 0X01F8 into the PC
+26120, 40, ISR for device 11
+26160, 40, ISR for device 11
+26200, 40, ISR for device 11
+26240, 40, ISR for device 11
+26280, 40, ISR for device 11
+26320, 40, ISR for device 11
+26360, 40, ISR for device 11
+26400, 40, ISR for device 11
+26440, 40, ISR for device 11
+26480, 40, ISR for device 11
+26520, 40, ISR for device 11
+26560, 40, ISR for device 11
+26600, 40, ISR for device 11
+26640, 3, ISR for device 11
+26643, 1, IRET
+26644, 17, CPU burst
+26661, 1, switch to kernel mode
+26662, 10, context saved
+26672, 1, find vector 11 in memory position 0x0016
+26673, 1, load address 0X01F8 into the PC
+26674, 40, ISR for device 11
+26714, 40, ISR for device 11
+26754, 40, ISR for device 11
+26794, 40, ISR for device 11
+26834, 40, ISR for device 11
+26874, 40, ISR for device 11
+26914, 40, ISR for device 11
+26954, 40, ISR for device 11
+26994, 40, ISR for device 11
+27034, 40, ISR for device 11
+27074, 40, ISR for device 11
+27114, 40, ISR for device 11
+27154, 40, ISR for device 11
+27194, 3, ISR for device 11
+27197, 1, IRET
+27198, 39, CPU burst
+27237, 1, switch to kernel mode
+27238, 10, context saved
+27248, 1, find vector 19 in memory position 0x0026
+27249, 1, load address 0X0765 into the PC
+27250, 40, ISR for device 19
+27290, 40, ISR for device 19
+27330, 40, ISR for device 19
+27370, 40, ISR for device 19
+27410, 40, ISR for device 19
+27450, 40, ISR for device 19
+27490, 40, ISR for device 19
+27530, 40, ISR for device 19
+27570, 40, ISR for device 19
+27610, 40, ISR for device 19
+27650, 40, ISR for device 19
+27690, 40, ISR for device 19
+27730, 40, ISR for device 19
+27770, 40, ISR for device 19
+27810, 40, ISR for device 19
+27850, 40, ISR for device 19
+27890, 12, ISR for device 19
+27902, 1, IRET
+27903, 48, CPU burst
+27951, 1, switch to kernel mode
+27952, 10, context saved
+27962, 1, find vector 19 in memory position 0x0026
+27963, 1, load address 0X0765 into the PC
+27964, 40, ISR for device 19
+28004, 40, ISR for device 19
+28044, 40, ISR for device 19
+28084, 40, ISR for device 19
+28124, 40, ISR for device 19
+28164, 40, ISR for device 19
+28204, 40, ISR for device 19
+28244, 40, ISR for device 19
+28284, 40, ISR for device 19
+28324, 40, ISR for device 19
+28364, 40, ISR for device 19
+28404, 40, ISR for device 19
+28444, 40, ISR for device 19
+28484, 40, ISR for device 19
+28524, 40, ISR for device 19
+28564, 40, ISR for device 19
+28604, 12, ISR for device 19
+28616, 1, IRET
+28617, 45, CPU burst
+28662, 1, switch to kernel mode
+28663, 10, context saved
+28673, 1, find vector 12 in memory position 0x0018
+28674, 1, load address 0X03B9 into the PC
+28675, 40, ISR for device 12
+28715, 40, ISR for device 12
+28755, 40, ISR for device 12
+28795, 25, ISR for device 12
+28820, 1, IRET
+28821, 83, CPU burst
+28904, 1, switch to kernel mode
+28905, 10, context saved
+28915, 1, find vector 12 in memory position 0x0018
+28916, 1, load address 0X03B9 into the PC
+28917, 40, ISR for device 12
+28957, 40, ISR for device 12
+28997, 40, ISR for device 12
+29037, 25, ISR for device 12
+29062, 1, IRET
+29063, 68, CPU burst
+29131, 100, CPU burst
+29231, 61, CPU burst
+29292, 1, switch to kernel mode
+29293, 10, context saved
+29303, 1, find vector 11 in memory position 0x0016
+29304, 1, load address 0X01F8 into the PC
+29305, 40, ISR for device 11
+29345, 40, ISR for device 11
+29385, 40, ISR for device 11
+29425, 40, ISR for device 11
+29465, 40, ISR for device 11
+29505, 40, ISR for device 11
+29545, 40, ISR for device 11
+29585, 40, ISR for device 11
+29625, 40, ISR for device 11
+29665, 40, ISR for device 11
+29705, 40, ISR for device 11
+29745, 40, ISR for device 11
+29785, 40, ISR for device 11
+29825, 3, ISR for device 11
+29828, 1, IRET
+29829, 96, CPU burst
+29925, 1, switch to kernel mode
+29926, 10, context saved
+29936, 1, find vector 11 in memory position 0x0016
+29937, 1, load address 0X01F8 into the PC
+29938, 40, ISR for device 11
+29978, 40, ISR for device 11
+30018, 40, ISR for device 11
+30058, 40, ISR for device 11
+30098, 40, ISR for device 11
+30138, 40, ISR for device 11
+30178, 40, ISR for device 11
+30218, 40, ISR for device 11
+30258, 40, ISR for device 11
+30298, 40, ISR for device 11
+30338, 40, ISR for device 11
+30378, 40, ISR for device 11
+30418, 40, ISR for device 11
+30458, 3, ISR for device 11
+30461, 1, IRET
+30462, 88, CPU burst
+30550, 1, switch to kernel mode
+30551, 10, context saved
+30561, 1, find vector 2 in memory position 0x0004
+30562, 1, load address 0X0695 into the PC
+30563, 40, ISR for device 2
+30603, 40, ISR for device 2
+30643, 40, ISR for device 2
+30683, 30, ISR for device 2
+30713, 1, IRET
+30714, 42, CPU burst
+30756, 1, switch to kernel mode
+30757, 10, context saved
+30767, 1, find vector 2 in memory position 0x0004
+30768, 1, load address 0X0695 into the PC
+30769, 40, ISR for device 2
+30809, 40, ISR for device 2
+30849, 40, ISR for device 2
+30889, 30, ISR for device 2
+30919, 1, IRET
+30920, 41, CPU burst
+30961, 1, switch to kernel mode
+30962, 10, context saved
+30972, 1, find vector 3 in memory position 0x0006
+30973, 1, load address 0X042B into the PC
+30974, 40, ISR for device 3
+31014, 40, ISR for device 3
+31054, 40, ISR for device 3
+31094, 40, ISR for device 3
+31134, 40, ISR for device 3
+31174, 40, ISR for device 3
+31214, 40, ISR for device 3
+31254, 20, ISR for device 3
+31274, 1, IRET
+31275, 73, CPU burst
+31348, 1, switch to kernel mode
+31349, 10, context saved
+31359, 1, find vector 3 in memory position 0x0006
+31360, 1, load address 0X042B into the PC
+31361, 40, ISR for device 3
+31401, 40, ISR for device 3
+31441, 40, ISR for device 3
+31481, 40, ISR for device 3
+31521, 40, ISR for device 3
+31561, 40, ISR for device 3
+31601, 40, ISR for device 3
+31641, 20, ISR for device 3
+31661, 1, IRET
+31662, 52, CPU burst
diff --git a/device_table.txt b/input_files/device_table.txt
similarity index 100%
rename from device_table.txt
rename to input_files/device_table.txt
diff --git a/input_files/input1.txt b/input_files/input1.txt
new file mode 100644
index 0000000..461d2e7
--- /dev/null
+++ b/input_files/input1.txt
@@ -0,0 +1,9 @@
+CPU, 50
+SYSCALL, 5
+CPU, 100
+END_IO, 5
+CPU, 40
+SYSCALL, 7
+CPU, 80
+END_IO, 7
+CPU, 60
\ No newline at end of file
diff --git a/input_files/input2.txt b/input_files/input2.txt
new file mode 100644
index 0000000..461d2e7
--- /dev/null
+++ b/input_files/input2.txt
@@ -0,0 +1,9 @@
+CPU, 50
+SYSCALL, 5
+CPU, 100
+END_IO, 5
+CPU, 40
+SYSCALL, 7
+CPU, 80
+END_IO, 7
+CPU, 60
\ No newline at end of file
diff --git a/input_files/input3.txt b/input_files/input3.txt
new file mode 100644
index 0000000..461d2e7
--- /dev/null
+++ b/input_files/input3.txt
@@ -0,0 +1,9 @@
+CPU, 50
+SYSCALL, 5
+CPU, 100
+END_IO, 5
+CPU, 40
+SYSCALL, 7
+CPU, 80
+END_IO, 7
+CPU, 60
\ No newline at end of file
diff --git a/input_files/input4.txt b/input_files/input4.txt
new file mode 100644
index 0000000..461d2e7
--- /dev/null
+++ b/input_files/input4.txt
@@ -0,0 +1,9 @@
+CPU, 50
+SYSCALL, 5
+CPU, 100
+END_IO, 5
+CPU, 40
+SYSCALL, 7
+CPU, 80
+END_IO, 7
+CPU, 60
\ No newline at end of file
diff --git a/testcases/trace_1.txt b/input_files/trace_1.txt
similarity index 100%
rename from testcases/trace_1.txt
rename to input_files/trace_1.txt
diff --git a/vector_table.txt b/input_files/vector_table.txt
similarity index 100%
rename from vector_table.txt
rename to input_files/vector_table.txt
diff --git a/interrupts.cpp b/interrupts.cpp
index f868ce2..b8bdde5 100644
--- a/interrupts.cpp
+++ b/interrupts.cpp
@@ -5,7 +5,7 @@
*
*/
-#include
+#include "interrupts.hpp" // terminal giving me a weird error, so I flipped <> to ""
int main(int argc, char** argv) {
@@ -19,21 +19,54 @@ int main(int argc, char** argv) {
std::string execution; //!< string to accumulate the execution output
/******************ADD YOUR VARIABLES HERE*************************/
+ int current_time = 0;
+ const int context_save_time = 10; // time taken to save context
+ const int isr_activity_time = 40; // time taken for each chunk of ISR activity
+ //int IO_time = 0.1; // time taken for IO operation
-
-
+
/******************************************************************/
//parse each line of the input trace file
while(std::getline(input_file, trace)) {
auto [activity, duration_intr] = parse_trace(trace);
+
/******************ADD YOUR SIMULATION CODE HERE*************************/
-
-
-
+ if (activity == "CPU") {
+ execution += std::to_string(current_time) + ", " + std::to_string(duration_intr) + ", CPU burst\n";
+ current_time += duration_intr;
+ }
+ else if(activity == "SYSCALL") {
+ auto [prev_execution, new_time] = intr_boilerplate(current_time, duration_intr, context_save_time, vectors);
+ execution += prev_execution;
+ current_time = new_time;
+
+ }
+ else if( activity == "END_IO") {
+ // IO operation handling code here
+ auto [prev_execution, new_time] = intr_boilerplate(current_time, duration_intr, context_save_time, vectors);
+ execution += prev_execution;
+ current_time = new_time;
+
+ //ISR body execution, assuming fixed time for IO operation
+ int device_delay = delays.at(duration_intr-1); // get the delay for the device
+ while (device_delay> 0){
+ int chunk = std::min(isr_activity_time, device_delay);
+ execution += std::to_string(current_time) + ", " + std::to_string(chunk) + ", ISR END_IO 'execution' \n";
+ current_time += chunk;
+ device_delay -= chunk;
+
+ }
+
+ execution += std::to_string(current_time) + ", " + std::to_string(1) + ", 1, IRET \n";
+ current_time += 1;
+ }
+
+ else {
+ std::cerr << "Error: Unknown activity type: " << activity << std::endl;
+ }
/************************************************************************/
-
}
input_file.close();
@@ -41,4 +74,5 @@ int main(int argc, char** argv) {
write_output(execution);
return 0;
+
}
diff --git a/interrupts.hpp b/interrupts.hpp
index dacd319..4b45b28 100644
--- a/interrupts.hpp
+++ b/interrupts.hpp
@@ -9,46 +9,31 @@
#include
#include
#include
+#include
#include
#define ADDR_BASE 0
#define VECTOR_SIZE 2
-#define CPU_SPEED 100
-#define MEM_LIMIT 1
-
-/**
- * \brief parse the CLI arguments
- *
- * This helper function parses command line arguments and checks for errors
- *
- * @param argc number of command line arguments
- * @param argv the command line arguments
- * @return a vector of strings (the parsed vector table)
- *
- */
-std::tuple, std::vector> parse_args(int argc, char** argv) {
- if(argc != 4) {
- std::cout << "ERROR!\nExpected 3 argument, received " << argc - 1 << std::endl;
- std::cout << "To run the program, do: ./interrutps " << std::endl;
- exit(1);
- }
+// ---------------- Helper functions ----------------
- std::ifstream input_file;
- input_file.open(argv[1]);
- if (!input_file.is_open()) {
- std::cerr << "Error: Unable to open file: " << argv[1] << std::endl;
+// Parse CLI args: now expects 5 arguments
+// ./interrupts
+std::tuple, std::vector, int, int, std::string> parse_args(int argc, char** argv) {
+ if(argc != 6) {
+ std::cout << "ERROR!\nExpected 5 arguments, received " << argc - 1 << std::endl;
+ std::cout << "Usage: ./interrupts \n";
exit(1);
}
- std::ifstream input_vector_table;
- input_vector_table.open(argv[2]);
+ std::string trace_file = argv[1];
+
+ std::ifstream input_vector_table(argv[2]);
if (!input_vector_table.is_open()) {
- std::cerr << "Error: Unable to open file: " << argv[2] << std::endl;
+ std::cerr << "Error: Unable to open vector table: " << argv[2] << std::endl;
exit(1);
}
-
std::string vector;
std::vector vectors;
while(std::getline(input_vector_table, vector)) {
@@ -56,22 +41,25 @@ std::tuple, std::vector> parse_args(int argc, char
}
input_vector_table.close();
- std::string duration;
- std::vector delays;
- std::ifstream device_table;
- device_table.open(argv[3]);
+ std::ifstream device_table(argv[3]);
if (!device_table.is_open()) {
- std::cerr << "Error: Unable to open file: " << argv[3] << std::endl;
+ std::cerr << "Error: Unable to open device table: " << argv[3] << std::endl;
exit(1);
}
+ std::string duration;
+ std::vector delays;
while(std::getline(device_table, duration)) {
- delays.push_back(std::stoi(duration));
+ if (!duration.empty())
+ delays.push_back(std::stoi(duration));
}
- return {vectors, delays};
+ int context_time = std::stoi(argv[4]);
+ int isr_step = std::stoi(argv[5]);
+
+ return {vectors, delays, context_time, isr_step, trace_file};
}
-// Following function was taken from stackoverflow; helper function for splitting strings
+// String split by delimiter
std::vector split_delim(std::string input, std::string delim) {
std::vector tokens;
std::size_t pos = 0;
@@ -86,8 +74,8 @@ std::vector split_delim(std::string input, std::string delim) {
return tokens;
}
+// Parse one line from trace file
std::tuple parse_trace(std::string trace) {
- //split line by ','
auto parts = split_delim(trace, ",");
if (parts.size() < 2) {
std::cerr << "Error: Malformed input line: " << trace << std::endl;
@@ -95,48 +83,47 @@ std::tuple parse_trace(std::string trace) {
}
auto activity = parts[0];
+ // remove spaces
+ activity.erase(remove_if(activity.begin(), activity.end(), ::isspace), activity.end());
auto duration_intr = std::stoi(parts[1]);
return {activity, duration_intr};
}
-//Default interrupt boilerplate
+// Boilerplate interrupt sequence
std::pair intr_boilerplate(int current_time, int intr_num, int context_save_time, std::vector vectors) {
-
std::string execution = "";
- execution += std::to_string(current_time) + ", " + std::to_string(1) + ", switch to kernel mode\n";
+ execution += std::to_string(current_time) + ", 1, switch to kernel mode\n";
current_time++;
execution += std::to_string(current_time) + ", " + std::to_string(context_save_time) + ", context saved\n";
current_time += context_save_time;
-
+
char vector_address_c[10];
- sprintf(vector_address_c, "0x%04X", (ADDR_BASE + (intr_num * VECTOR_SIZE)));
+ snprintf(vector_address_c, sizeof(vector_address_c), "0x%04X", (ADDR_BASE + (intr_num * VECTOR_SIZE))); //terminal gave me a werid error, I added the "sizeof" function
std::string vector_address(vector_address_c);
- execution += std::to_string(current_time) + ", " + std::to_string(1) + ", find vector " + std::to_string(intr_num)
- + " in memory position " + vector_address + "\n";
+ execution += std::to_string(current_time) + ", 1, find vector " + std::to_string(intr_num)
+ + " in memory position " + vector_address + "\n";
current_time++;
- execution += std::to_string(current_time) + ", " + std::to_string(1) + ", load address " + vectors.at(intr_num) + " into the PC\n";
+ execution += std::to_string(current_time) + ", 1, load address " + vectors.at(intr_num) + " into the PC\n";
current_time++;
return std::make_pair(execution, current_time);
}
-
+// Write output file
void write_output(std::string execution) {
std::ofstream output_file("execution.txt");
-
if (output_file.is_open()) {
output_file << execution;
- output_file.close(); // Close the file when done
- std::cout << "File content overwritten successfully." << std::endl;
+ output_file.close();
+ std::cout << "Output generated in execution.txt" << std::endl;
} else {
std::cerr << "Error opening file!" << std::endl;
}
-
- std::cout << "Output generated in execution.txt" << std::endl;
}
+
#endif
diff --git a/run_all.ps1 b/run_all.ps1
new file mode 100644
index 0000000..bef911f
--- /dev/null
+++ b/run_all.ps1
@@ -0,0 +1,45 @@
+# -----------------------------
+# run_all.ps1
+# -----------------------------
+# This script runs all available trace files (trace_1 to trace_5)
+# and generates separate execution outputs for each trace.
+
+# Folder where the input files and traces live
+$traceDir1 = ".\input_files"
+$traceDir2 = ".\testcases"
+
+# Paths to vector and device tables
+$vectorTable = "$traceDir1\vector_table.txt"
+$deviceTable = "$traceDir1\device_table.txt"
+
+# Make sure the executable exists
+$exePath = ".\bin\interrupts.exe"
+if (!(Test-Path $exePath)) {
+ Write-Host "Error: interrupts.exe not found. Please build first using build.sh or g++"
+ exit 1
+}
+
+# Loop through all trace files (1ā5)
+for ($i = 1; $i -le 5; $i++) {
+ $traceFile1 = "$traceDir1\trace_$i.txt"
+ $traceFile2 = "$traceDir2\trace_$i.txt"
+ $outputFile = ".\execution_trace_$i.txt"
+
+ if (Test-Path $traceFile1) {
+ Write-Host "Running trace_$i from input_files..."
+ & $exePath $traceFile1 $vectorTable $deviceTable 10 40
+ Copy-Item -Path ".\execution.txt" -Destination $outputFile -Force
+ Write-Host "ā Output saved to $outputFile"
+ }
+ elseif (Test-Path $traceFile2) {
+ Write-Host "Running trace_$i from testcases..."
+ & $exePath $traceFile2 $vectorTable $deviceTable 10 40
+ Copy-Item -Path ".\execution.txt" -Destination $outputFile -Force
+ Write-Host "ā Output saved to $outputFile"
+ }
+ else {
+ Write-Host "Trace file trace_$i.txt not found. Skipping."
+ }
+}
+
+Write-Host "`nā
All traces executed successfully!"