1 00:00:06,200 --> 00:00:10,500 Next subsection that we're going to go into is dealing with the 2 00:00:10,500 --> 00:00:14,300 asynchronous events in particular, how we go about, handling them. 3 00:00:14,300 --> 00:00:18,900 We've already described them at a high level. The hardware exceptions are the things 4 00:00:18,900 --> 00:00:22,900 like traps and memory faults and arithmetic exceptions. The external 5 00:00:22,900 --> 00:00:26,400 events are things that are coming from the user. These are 6 00:00:26,400 --> 00:00:30,800 interrupt quit and stop the primary difference between these is that the 7 00:00:30,800 --> 00:00:34,900 hardware exceptions occur because of the execution of a particular instruction, 8 00:00:34,900 --> 00:00:35,700 so, 9 00:00:36,200 --> 00:00:40,900 You, you dereference a null pointer. There's a particular instruction that we can point 10 00:00:40,900 --> 00:00:44,600 out and say that's the instruction that was bad or that arithmetic exception. 11 00:00:44,600 --> 00:00:48,600 That's the instruction that under floater over, floater / 0 12 00:00:48,600 --> 00:00:52,900 trap traps on a particular memory, typically because you touch a 13 00:00:52,900 --> 00:00:56,300 piece of memory that's not currently loaded into your address Space, 14 00:00:56,500 --> 00:01:00,900 by contrast. The external events are not tied to a particular instruction. The 15 00:01:00,900 --> 00:01:04,800 user Just Hits interrupt when they hit in or up. It's not the fault 16 00:01:04,800 --> 00:01:06,100 of a particular instruction, it 17 00:01:06,200 --> 00:01:10,900 It just happens to be. That was the instruction. That was executing at the time that the interrupt got hit, or the 18 00:01:10,900 --> 00:01:14,800 quit or the stop. I/O events break down into several 19 00:01:14,800 --> 00:01:18,900 categories. We have either the completion or availability 20 00:01:18,900 --> 00:01:22,900 of I/O, so you can be notified. For example, that a write 21 00:01:22,900 --> 00:01:26,500 to disk that you started, has now finished. You can be told about 22 00:01:27,000 --> 00:01:31,800 I/O that's available. So a packet has arrived on the network and there's 23 00:01:31,800 --> 00:01:35,400 in the networking world, the ability to have what's called out-of-band Data. 24 00:01:36,100 --> 00:01:40,800 Data that has come from essentially just jumping the pack to let, you 25 00:01:40,800 --> 00:01:44,700 know, typically some kind of exceptional condition. Then we course, we have the 26 00:01:44,700 --> 00:01:48,400 timers which we've already talked about. We have the real-time timers and the 27 00:01:48,400 --> 00:01:50,800 pair of process virtual timers.