.. ot-exercise:: linux.sysprog.scheduling.exam_questions :dependencies: linux.sysprog.scheduling.realtime, linux.sysprog.scheduling.wakeup_latency, linux.sysprog.scheduling.processes_and_threads Scheduling: Exam Questions ========================== * Which term reflects a *guaranteed response time*? (One correct answer.) * Multithreading * Realtime * Scheduling * What is the difference between a thread and a process? (One correct answer.) * A process has its own address space, where a thread has not. * A thread has its own address space, where a process has not. * Which of the following statements about a *process's address space* is true? (Wrong answers are subtracted from correct answers.) * A range of memory set aside for a process's exclusive use. * Provides memory isolation between processes. * A pool of IP addresses that are made available to it. * A process cannot access memory outside of that space. * What is the effect of running the command ``sha1sum /dev/zero``? (Wrong answers are subtracted from correct answers.) * It consumes as much CPU time as it can. * It will exhaust all physical memory that is available. * It tries to calculate a SHA1 fingerprint of an infinite sequence of null bytes. * It calculates the sum of the major numbers of all character devices on the machine. * The process is compute-bound. * Which of the following statements about *fair scheduling* are true? (Wrong answers are subtracted from correct answers.) * It is the default scheduling policy for a task (that task is said to *be in the fair scheduling domain*). * A task that is in the fair scheduling domain can provide guaranteed response times. * The scheduler favors *IO bound processes* over *CPU bound processes*. * Fair scheduling can be considered the opposite of realtime scheduling. * Which of the following statements about the *OS scheduler* are true? (Wrong answers are subtracted from correct answers.) * The scheduler provides the illusion of task parallelism, even on single-CPU machines. * The scheduler is a core component of the GNOME desktop environment which manages the user's to-do list, using machine learning. * Its main responsiblity is to assign CPU time slices to waiting tasks (effectively moving them into the "running" state). * Its main responsiblity is to assign CPU time slices to runnable tasks (effectively moving them into the "running" state). * When a task becomes *runnable*, under which circumstances is it made *running* (i.e., is assigned a CPU to run on) **immediately**? (Wrong answers are subtracted from correct answers.) * When no task with higher priority is runnable. * When a CPU is free. * When all other tasks explicitly agree. * When the administrator permits it to. * How does a CPU become available/free for another task to run on? (Wrong answers are subtracted from correct answers.) * By *preemption*: the scheduler interrupts a running task in favor of another (runnable) task. * *Voluntarily*: the task puts itself to sleep by declaring to the kernel that it has to wait for something. * The CPU is signaled (by an inter-processor interrupt) by another CPU's cache that it should free resources. Reason: one task constantly thrashes the signaler's cache. * Which of the following statements about *priority inversion* is true? (Wrong answers are subtracted from correct answers.) * Priority inversion can occur only when fair scheduling is in place. * It is a deadlock scenario (a bug). * Realtime systems are particularly susceptible to priority inversion. * Which of the following statements about *wakeup latency* is true? (Wrong answers are subtracted from correct answers.) * Wakeup latency is the time between the occurence of an event (usually an interrupt), and the point where a task that waits for that event enters the *running* state. * Realtime scheduling provides a guaranteed upper bound to wakeup latency. * Fair scheduling provides a guaranteed upper bound to wakeup latency. .. ot-graph:: :entries: linux.sysprog.scheduling.exam_questions