











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A comprehensive overview of operating systems, covering key concepts such as process state models, objectives, and characteristics of modern operating systems. It delves into process management, memory management, and different operating system architectures like monolithic kernels and microkernels. The document also explores process scheduling algorithms, inter-process communication (ipc), multithreading models, and the differences between processes and threads. It is designed to enhance understanding of operating system principles and their practical applications, making it a valuable resource for students and professionals in computer science. This document also includes extra questions about types of schedulers and comparison between monolithic and microkernels. A valuable resource for students and professionals in computer science.
Typology: Summaries
1 / 19
This page cannot be seen from the preview
Don't miss anything!












Q1)Explain process state model Q2)Explain objectives and characteristics of modern operating systems Functions: Operating systems have various functions mentioned below
It allocates storage space to the files by using different file allocations methods. It keeps back-up of files and offers the security for files.
2)Layered Structure Layered approach, in which the operating system is broken into a number of layers. The bottom layer is the hardware and the top layer is the user interface. An operating-system layer is an implementation of an abstract object made up of data and the operations that can manipulate those data. The layers are selected so that each uses functions (operations) and services of only lower-level layers. This approach simplifies debugging and system verification. The first layer can be debugged without any concern for the rest of the system, because, by definition, it uses only the basic hardware (which is assumed correct) to implement its functions. Once the first layer is debugged, its correct functioning can be assumed while the second layer is debugged, and so on. If an error is found during the debugging of a particular layer, the error must be on that layer, because the layers below it are already debugged. Thus, the design and implementation of the system are simplified. The major difficulty with the layered approach involves appropriately defining the various layers. Because a layer can use only lower-level layers, careful planning is necessary. 3 )Microkernel This method structures the operating system by removing all the non essential components from the kernel and implementing them as system and user level programs. This results in a smaller kernel. Typically, microkernels provide minimal process and memory management, in addition to a communication facility. The main function of the micro kernel is to provide a communication facility between the client program and the various services that are also running in user space. Communication is provided by message passing. One benefit of the microkernel approach is ease of extending the operating system. All new services are added to user space and consequently do not require modification of the kernel. When the
kernel does have to be modified, the changes tend to be fewer, because the microkernel is a smaller kernel. The resulting operating system is easier to port from one hardware design to another. The microkernel also provides more security and reliability, since most services are running as user- rather than kernel-processes. If a service fails, the rest of the operating system remains untouched. However, microkernels can suffer from performance decreases due to increased system function overhead 4)Modules The best current methodology for operating-system design involves using object-oriented programming techniques to create a modular kernel. Here, the kernel has a set of core components and links in additional services either during boot time or during run time. Such a strategy uses dynamically loadable modules and is common in modern implementations of UNIX, such as Solaris, Linux, and Mac OS X. Such a design allows the kernel to provide core services yet also allows certain features to be implemented dynamically. For example, device and bus drivers for specific hardware can be added to the kernel, and support for different file systems can be added as loadable modules. The overall result resembles a layered system in that each kernel section has defined, protected interfaces; but it is more flexible than a layered system in that any module can call any other module. Example- 5)Virtual machines
The kernel acts as the core of the operating system and is divided into three key parts:
Q 6 )Explain IPC
A process is more than the program code, which is sometimes known as the text section. It also includes the current activity, as represented by the value of the program counter and the contents of the processor's registers. A process generally also includes the process stack, which contains temporary data (such as function parameters, return addresses, and local variables), and a data section, which contains global variables. A process may also include a heap, which is memory that is dynamically allocated during process run time. Each process in the operating system is represented by a process control block also known as task control block. Q 9 )Compare process scheduling and process switching
Q 11 )Discuss different multithreading models Many to One: The many-to-one model maps many user-level threads to one kernel thread. Thread management is done by the thread library in user space, so it is efficient; but the entire process will block if a thread makes a blocking system call. Also, because only one thread can access the kernel at a time, multiple threads are unable to run in parallel on multiprocessors. One to One: The one-to-one model maps each user thread to a kernel thread. It provides more concurrency than the many-to-one model by allowing another thread to run when a thread makes a blocking system
call; it also allows multiple threads to run in parallel on multiprocessors. The only drawback to this model is that creating a user thread requires creating the corresponding kernel thread. Because the overhead of creating kernel threads can burden the performance of an application, most implementations of this model restrict the number of threads supported by the system. Many to Many: The many-to-many model multiplexes many user-level threads to a smaller or equal number of kernel threads. In many to one model, true concurrency is not achieved as the kernel can schedule only one process at a time and in one to one, although it allows for improved concurrency abilities, the developer should not create too many threads. Many to many solves both these problems as developers can create as many user threads as necessary, and the corresponding kernel threads can run in parallel on a multiprocessor. Also, when a thread performs a blocking system call, the kernel can schedule another thread for execution. (If difference is asked: )
Q12)Compare process and threads
Extra Questions: Q)Explain types of schedulers
Q) Explain classical problems in CS (notes) Q)Explain petersons solution and hardware solutions like test and set,lock based,swap. (notes) Q)What is context switching?(notes) Q)What are computing environments in OS?(notes)