{
"q1": {
"type": "multiple",
"question": "\n\n\nAccording to the authors of \"Operating Systems: Three Easy Pieces\", what\nare the three key ideas in Operating Systems?\n\n\n",
"responses": {
"virtualization": "Virtualization",
"scalability": "Scalability",
"persistence": "Persistence",
"telemetry": "Telemetry",
"security": "Security",
"performance": "Performance",
"userexperience": "User Experience",
"concurrency": "Concurrency"
}
},
"q2": {
"type": "blank",
"question": "\n\n\n____ is when the OS takes a physical resource (such as the ____, or ____,\nor a ____) and transforms it into a more general, powerful, and easy-to-use\nform.\n\n\n"
},
"q3": {
"type": "blank",
"question": "\n\n\nUser applications interact with the OS via ____, which are initiated\nthrough a special hardware instruction called a ____. During one of these\nservice requests, we transition from ____ mode to ____ mode.\n\n\n"
},
"q4": {
"type": "single",
"question": "\n\nWhy does the program threads.c
in Figure 2.5 generate the\nwrong output when ran with a large number of threads?\n\n\n",
"responses": {
"toomanythreads": "Too many threads lead to resource exhaustion.",
"atomicops": "The counter is not incremented atomically.",
"globalvariables": "Each thread has its own global variable, so the counter is not updated properly.",
"nullpointers": "The code uses NULL pointers which is incorrect."
}
},
"q5": {
"type": "blank",
"question": "\n\n\nWith the advent of ____ it became possible to run multiple jobs at a time\nand thus improve CPU ____. Because the OS now had to manage multiple\ntasks, it became necessary to provide ____ so one program would not be able\nto access the memory of another program. Moreover, having multiple\napplications running at the same time means the OS has to provide\nmechanisms and policies for dealing with ____ issues.\n\n\n"
},
"q6": {
"type": "order",
"question": "\n\nOrder the following stages of a typical x86 boot sequence from first to last.\n\n",
"responses": {
"init": "Init System (systemd)",
"bootloader": "Bootloader (GRUB)",
"mbr": "Master Boot Record (MBR)",
"bios": "BIOS / UEFI",
"kernel": "OS Kernel (Linux)"
}
}
}