OSLabPresentation 1
OSLabPresentation 1
1. Monolithic:
User services and the kernel services are implemented in the same memory space
Advantages: Scheduling through system calls, Larger kernel size
Disadvantages: One service fails = whole system fails
2. Microkernel:
User services and the kernel services are implemented in different memory space
Advantages: New services are easily added
Disadvantages: Execution time is increased due to communication
3. Hybrid Kernel:
Speed of Monolithic Kernel and the modularity of Microkernel
“Non-essential" code in kernel-space is used in order for the code to run more quickly than it would be in user-space
4. Nanokernel
Code executing in the privileged mode of the hardware is very small
Nanosecond clock resolution is supported
5. Exokernel
Very complex design
Resource protection is separated from the management
Allows to perform application-specific customization
Kernels in Windows
Linux Kernel
Used in Ubuntu, webOS, Firefox OS, etc.
Written in C Language in 1991 by Linus Torvalds
Free and open-source, monolithic kernel
Can insert and remove loadable kernel modules at runtime
True parallel processing, IPC with synchronization.
Kernels in FuchsiaOS (Google)
Zircon
Used in Google Nest Hub
Written in C++ Language by Google
Custom made open-source software released on May 25, 2021
Composed of a kernel with a small set of user services, drivers,
and libraries
Resources are represented as objects rather than files
Kernels in Solaris (Oracle)
Solaris Kernel
Written in C Language by Sun Microsystems
First released in June 1992
Monolithic kernel with dynamically loadable modules
Open source kernel
Threads
Threads
Enhanced system throughput: No. of job completed per unit time increases when the process is divided
into numerous thread
Effective use of a Multiprocessor system: Schedule multiple threads in multiple processors when you have
many threads in a single process.
Faster context switch: The thread context switching time is shorter than the process context switching time.
Responsiveness: When a process is divided into many threads, and each of them completes its execution,
response time increases.
Communication: Multiple-thread communication is straightforward because the threads use the same
address space.
Resource sharing: Code, data, and files can be shared among all threads in a process.
Thread Functions