Here are the details about the second small-group activity for the course. This activity must be completed using "submit" and Piazza. The initial submission as well as the final answer/summary of the discussion in your group must be made using "submit". For your initial submission, i.e., your initial answer to the problem specified below, use the following command: submit c3430aa a21 myInitialAns.txt where "myInitialAns.txt" is the name of the file containing your initial submission. It *must* be *plain text*, not .pdf or .doc etc. AGAIN: your file must be plain text, not .doc etc. If you normally use, for example, MS Word, save your file as plain text and submit that file. For your final submission (your final answer to the same problem *and* summary of the discussion in your group), use the following command: submit c3430aa a22 myFinalSub.txt where "myFinalSub.txt" is the name of the file containing your final submission. Again, it *must* be *plain text*, not .pdf or .doc etc. The discussion portion of this activity will be on Piazza. Following the deadline for the initial submission, students will be arranged in groups of about 4 each, based on those initial submissions. Once these groups have been formed, you will receive email to that effect. After that, when you log into the Piazza site for the course, you should see your group and posts from everyone in that group but won't be able to see posts in other groups. The idea is that you will engage with the other students in your group in a discussion about the problem. But unlike in CONSIDER, there won't be any "rounds" etc. You will just be expected to participate in a reasonable discussion in your group. But one important point to stress is that if you fail to make your initial submission on time, you will not be assigned to a group and will not be able to participate in the discussion. Essentially, you will get a 0 for the activity. ============= The timeline for the activity is as follows: Activity assigned: Wednesday, 4/20, 7:00 pm Initial (individual) submissions due: Thursday, 4/21, 11:59 pm Small-group discussion starts: Friday, 4/22, at 12 noon Group discussion ends: Sunday, 4/24, 6 pm (no "rounds") Final (individual) submissions due: Monday, 4/25, 11:59pm ============= This activity will be worth 15 points. Your individual score will be determined as follows: a. Completing the initial submission and the other activities by the respective deadlines: 2 points. b. Effectiveness of participation in the two "discussion" rounds: 3 pts c. Correctness of your (individual) final answer: 5 pts d. Quality of your (individual) summary of the discussion in your group: 5 pts ============== Here is the (2-part) problem: a. Most current systems have a "kernel" mode and a "supervisor" mode. Would you expect a CPU used in an *embedded* system (such as a camera or the steering control mechanism of a car) to have such modes? Explain why or why not. b. We said that while there are some similarities between XOPs and interrupts, they are fundamentally different mechanisms. Briefly explain the similarities and why, desipite these similarities, they are essentially different mechanisms. ================= Again, make your initial submission using the following command: submit c3430aa a21 myInitialAns.txt where "myInitialAns.txt" is the name of the file containing your initial submission. It *must* be *plain text*, not .pdf or .doc etc. Your submission is due by 11:59 pm tomorrow (Thursday, 4/21). ================= Answers: a. We would not expect embedded systems to have a kernel mode in contrast to a user mode. A major difference between a "regular" computer and an embedded system is that a regular computer is intended to run arbitrary *user* programs which may contain all kinds of bugs that the system has to be protected against. An embedded system is not (typically) designed for that. It simply runs the program that the manufacturer loaded into it (and possibly updated it relatively infrequently) so there is no such risk to guard against. So there is no need for two distinct modes. b. The key difference is that an XOP is a "system call". That is, a user program wants to perform an operation that needs special privileges and can only be performed by the OS (in kernel mode); e.g., creating a new directory. So the user program contains the appropriate XOP call. By contrast, an interrupt is something that happens when an external event, such as input arriving from a keyboard, happens. When such an event happens, an interrupt signal is "raised" and the CPU will, when it completes execution of the current instruction, save the PC and the PS and jump to the interrupt service routine. There is no call to the interrupt service routine in the program being executed; that program doesn't know when the interrupt will happen. Instead, its execution gets interrupted (by the arrival of the interrupt and the execution of the interrupt service routine) and will be resumed once the interrupt service routine finishes execution.