Chapter 2 - Operating System Overview (Review Questions)
What is multiprogramming?
Multiprogramming or multitasking is a mode of operation that provides for the interleaved execution of two or more computer programs by a single processor.
What is multithreading?
Multithreading is a technique in which a process, executing an application, is divided into threads that can run concurrently.
Explain the distinction between a real address and a virtual address.
A real address is the physical address in main memory. Whereas a virtual address is the address of a storage location in virtual memory.
What is a process?
A process or task is a program in execution. A process is controlled and scheduled by the operating system.
Explain the difference between a monolithic kernel and a microkernel.
A monolithic kernel is a large kernel containing virtually the complete operating system, including scheduling, file system, device drivers, and memory management. All the functional components of the kernel have access to all of its internal data structures and routines. Typically, a monolithic kernel is implemented as a single process, with all elements sharing the same address space. A microkernel is a small privileged operating system core that provides process scheduling, memory management, and communication services and relies on other processes to perform some of the functions traditionally associated with the operating system kernel.
Describe the round-robin scheduling technique.
A scheduling algorithm in which processes are activated in a fixed cyclic order; that is, all processes are in a circular queue. A process that cannot proceed because it is waiting for some event (e.g., termination of a child process or an input/output operation) returns control to the scheduler.
What are three objectives of an operating system (OS) design?
An OS is a program that controls the execution of application programs and acts as an interface between applications and the computer hardware. It can be thought of as having three objectives: -Convenience: An OS makes a computer more convenient to use. -Efficiency: An OS allows the computer system resources to be used in an efficient manner. -Ability to evolve: An OS should be constructed in such a way as to permit the effective development, testing, and introduction of new system functions without interfering with service.
List and briefly explain five storage management responsibilities of a typical OS.
The OS, to satisfy these requirements, has five principal storage management responsibilities: -Process isolation: The OS must prevent independent processes from interfering with each other's memory, both data and instructions. -Automatic allocation and management: Programs should be dynamically allocated across the memory hierarchy as required. Allocation should be transparent to the programmer. Thus, the programmer is relieved of concerns relating to memory limitations, and the OS can achieve efficiency by assigning memory to jobs only as needed. -Support of modular programming: Programmers should be able to define program modules, and to create, destroy, and alter the size of modules dynamically. -Protection and access control: Sharing of memory, at any level of the memory hierarchy, creates the potential for one program to address the memory space of another. This is desirable when sharing is needed by particular applications. At other times, it threatens the integrity of programs and even of the OS itself. The OS must allow portions of memory to be accessible in various ways by various users. -Long-term storage: Many application programs require means for storing information for extended
How is the execution context of a process used by the OS?
The execution context, or process state, is the internal data by which the OS is able to supervise and control the process. This internal information is separated from the process, because the OS has information not permitted to the process. The context includes all of the information that the OS needs to manage the process and that the processor needs to execute the process properly. The context includes the contents of the various processor registers, such as the program counter and data registers. It also includes information of use to the OS, such as the priority of the process and whether the process is waiting for the completion of a particular I/O event.
What is the kernel of an OS?
The kernel is the portion of the operating system that includes the most heavily used portions of software. Generally, the kernel is maintained permanently in main memory. The kernel runs in a privileged mode and responds to calls from processes and interrupts from devices.