Sunteți pe pagina 1din 20

Kernel

s
By
Prashant Sonkamble
Shashank Gupta

A Kernel is a computer program


that manages the I/O(InputOutput) requests from software
and translates the requests into
CPU instructions or other
electronic instructions for a
computer.

TYPES OF KERNEL
Micro Kernel.
Monolithic Kernel.
Hybrid Kernels.

Monolithic Kernel
With this types of Kernels the entire OS(Operating System) is
working in kernel space and is alone in supervisor mode .
Monolithic kernels run both application and drivers in Kernel
space.
Processing, Memory Management, IO Handling, Device
Drivers, File System, virtual Memory, etc are all in a single
module in kernel space, the OS is in user mode.
MS-DOS,UNIX,LINUX.

Monolithic Kernel
Advantages

Disadvantages

Faster processing.

Difficult to debug
and maintain.

All kernel services


exist and execute
in kernel address
space.

The kernel can


invoke functions
directly.

Crash insecure.
Porting
inflexibility.
Kernel size
explosion.

Microkernel
This is the near-minimum amount of software in order to
implement an OS. This covers low-level address space
management, thread management, and IPC(Inter-processing
communication).
This was made(1980s) to combat the increasing size of the
kernels. This allows device drivers, File Server, Protocol
Stack and others to run in user space; this reduces the kernel
size.
Windows NT, MINIX, XNU.

Microkernel
Advantages

Disadvantages

Portability.

Hardware is more
abstracted through drivers.

Small install
footprint.

Hardware may react slower.

Small memory
footprint.

Processes have to wait in a


queue to get information

Security

Hybrid Kernel
Hybrid kernel is a kernel architecture based on a combination
of microkernel and monolithic kernel architecture used in
computer operating systems.
This kernels approach combines the speed and simpler design
of monolithic kernel with the modularity and execution safety
of microkernel.

Hybrid Kernel
Advantages

Disadvantages

Developer can pick


and choose what runs
in user mode and what
runs in supervisor
mode.

Can suffer from same


process lag as
microkernel.

Smaller install
footprint than
monolithic kernel.
More flexible than
other models.

Device drivers need to


be managed by user
(typically).

Linux

Linux
Linux is a Unix-like computer operating system (OS)
assembled under the model of free and open-source software
development and distribution.
The defining component of Linux is the Linux kernel, an
operating system kernel first released on October 5, 1991 by
Linus Torvalds.

Linux Kernel
The Linux kernel is a Unix-like computer operating system
kernel.
The Linux operating system is based on it and deployed on
both traditional computer systems such as personal
computers and servers, usually in the form of Linux
distributions.

Linux Kernel Architecture

Process Handling
For Linux to manage the processes in the system, each
process is represented by a task_struct data structure.
Linux can handle normal user processes as well as Real time
processes.
Real time processes have strict scheduling requirements.
They must run every X micro/milliseconds and complete thirty
job otherwise their function will be damaged.

States of a process
Stopped

Executing

Ready

Suspende
d

Zombie/
Dead

Scheduling
O(n) Scheduling Algorithm
When looking for a new process to run on the CPU, the kernel has to
consider only the runnable processes.
This algorithm used was quite simple and straight forward, the scheduler
divides time into epochs ,and within each epoch, every task was allowed
to execute up to its time slice.
If a task did not use all of its time slice, then half of the remaining time slice
was added to the new time slice to allow it to execute longer in the next
epoch.
It iterates the queue assigning a goodness value to the tasks.
Main drawback is that it spends most of its time scanning the queue
selecting the best process to execute

Scheduling
Completely Fair Scheduler (CFS)
The CFS algorithm is based on the idea of an ideal multi-tasking
processor. Such a processor would run all currently active tasks literally
at the same time while each task gets a portion of its processing power.

Since it is physically not possible to drive current processors in that way


and it is highly inefficient to run for very short times due to switching
cost, CFS tries to approximate this behaviour as closely as possible.

It keeps track of the runtime of each runnable task, called virtual


runtime, and tries to maintain an overall balance between all runnable
tasks at all times.

BIBLOGRAPHY
References:
https://youtu.be/7HatJ1t-iQQ?t=21 (Martino Jones).
https://en.wikipedia.org/wiki/Kernel_(operating_system)#
Monolithic_kernels (Wikipedia.com).
https://en.wikipedia.org/wiki/Kernel_(operating_system)#
Microkernels (Wikipedia.com)
https://en.wikipedia.org/wiki/Kernel_(operating_system)#Hybrid_.
28or_modular.29_kernels (Wikipedia.com)
http://www.slideshare.net/jserv/f9-microkernel (Slideshare.com).
https://en.wikipedia.org/wiki/Linux_kernel (Wikipedia.com).
http://flylib.com/books/en/3.475.1.15/1/ (flylib.com).
https://en.wikipedia.org/wiki/O(n)_scheduler (Wikipedia.com).
http://
www.slidescarnival.com/cadwal-free-presentation-template/367
(Cadwal presentation template)

Thank You

S-ar putea să vă placă și