Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Operating Systems( Should be plagarism free and should NOT BE SAME as in GOOGLE)

ID: 670324 • Letter: O

Question

Operating Systems( Should be plagarism free and should NOT BE SAME as in GOOGLE)

1. a. How does virtualization factor into a layered vs. non-layered design discussion?

b. Does virtualization impact the design of programs on behalf of the process/threading model?

c. Discuss a complication that concurrent processing adds to an operating system

d. With respect to a programmer, a system call looks the same as a call to a library procedure. Is a programmer required to identify which library procedures issue system calls? Explain your answer.

Explanation / Answer

Question A Answer

Virtualization is becoming ubiquitous. It is widely used in
corporate data centers to reduce the total cost of ownership
of computer systems, and has many useful applications in
other areas as well. Virtualization promises to improve sys-
tem security because it can provide strong confinement of
virtual machines (VMs). Since strong confinement is not a
default feature in most hypervisors, we believe that strong
confinement is best achieved by adding mandatory access
controls (MAC) to hypervisor systems in order to control
information flow between virtual machines.
However, unconditional confinement of virtual machines
introduces its own issues. One such issue arises because
many meaningful applications require communication be-
tween multiple entities [8]. For example, consider a web
browser and an email client. People expect to click on links
in their email client to open web pages and to click on email
addresses in their web browser to start new emails. This
interaction could not take place if each application was run
in completely confined virtual machines. Pure confinement
prevents applications from doing their jobs. Therefore, there
must be controlled sharing of resources between virtual ma-
chines that still enables flexible information flow [38].

Question B Answer

The operating system’s principal responsibility is in controlling the execution of processes. This includes determining the interleaving pattern for execution and allocation of resources to processes. One part of designing an OS is to describe the behaviour that we would like each process to exhibit. The simplest model is based on the fact that a process is either being executed by a processor or it is not. Thus, a process may be considered to be in one of two states, RUNNING or NOT RUNNING. When the operating system creates a new process, that process is initially labeled as NOT RUNNING, and is placed into a queue in the system in the NOT RUNNING state. The process (or some portion of it) then exists in main memory, and it waits in the queue for an opportunity to be executed. After some period of time, the currently RUNNING process will be interrupted, and moved from the RUNNING state to the NOT RUNNING state, making the processor available for a different process. The dispatch portion of the OS will then select, from the queue of NOT RUNNING processes, one of the waiting processes to transfer to the processor. The chosen process is then relabeled from a NOT RUNNING state to a RUNNING state, and its execution is either begun if it is a new process, or is resumed if it is a process which was interrupted at an earlier time.

From this model we can identify some design elements of the OS:
The need to represent, and keep track of each process.
The state of a process.
The queuing of NON RUNNING processes


Question c Answer

1. The OS has to keep track of the main memory address space allocated to each process so that a process does not affect or harm other processes data. This is a necessay , for example, a virus may try to destroy or modify other process data.
2. Switching from one process to another process leads to time overhead, this requires storing the current register values and loading the register values of the next process from its PCB(program Control Block).
3. If a running process requires large space in memory then other processs needs to be dumped back to hard disk which again leads to time overhead.

Question D Answer

According to the text, the difference between a system call and a procedure call is that a system call enters the kernel and procedure calls do not. This is important because if a process needs a system service or it has to execute a trap instruction to give the operating system the control. The operating system then determines how it need to be handled by examining the parameters of the process that's calling for it. It will then determine whether or not to use the system or procedural call.