0% found this document useful (0 votes)
17 views3 pages

The Linux Kernel

The document discusses key topics for understanding the Linux kernel, including memory management, virtual filesystems, process creation and scheduling, signals and interrupts, synchronization, and interprocess communication. It also covers conditions that bring out Linux's best performance, its hardware dependency and advantages, source code details, and important terminology like address space, process, kernel control path, critical region, preemption, semaphores, and virtual memory.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views3 pages

The Linux Kernel

The document discusses key topics for understanding the Linux kernel, including memory management, virtual filesystems, process creation and scheduling, signals and interrupts, synchronization, and interprocess communication. It also covers conditions that bring out Linux's best performance, its hardware dependency and advantages, source code details, and important terminology like address space, process, kernel control path, critical region, preemption, semaphores, and virtual memory.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

===================================================================================

===============================================================================

===(Understanding)===

=====(The Linux Kernel)=====

====================================
✦ Topics to Study :
✓ Memory management, including file buffering, process swapping,
and Direct memory Access(DMA)
✓ The Virtual Filesystem layer and the Second and Third Extended
Filesystems.
✓ Process creation and scheduling.
✓ Signals, interrupts, and the essential interfaces to device
drivers Timing.
✓ Synchronization within the kernel.
✓ Interprocess Communication (IPC).
✓ Program execution.
===================================================================================
===============================================================================
✦ What conditions bring out Linux's best performance?
Process scheduling, file access, and memory management.
===================================================================================
===============================================================================
✦ Hardware Dependency:
=====================
Taking Adantages of (Hardware features), such as
✓ Addressing techniques,
✓ Caches,
✓ Processor exceptions,
✓ Special instructions,
✓ Processor control registers, and so on.
-----------------------------------------------------------------
-----------------------------------------------------------------------------------
--
✓ If we want to show that the kernel indeed is good in
performing a specific task, we must first tell what kind of support comes from the
hardware.
✓ In practice, following a bottom-up approach is not as
simple as it looks, because the areas of (Memory Management, Process Management,
and
Filesystems) are intertwined; a few forward
references that is, references to topics yet to be explained are unavoidable.
✓ Other Features (shared and mapped memory, signals, pipes,
symbolic links, and so on).
===================================================================================
===============================================================================
✦ Linux Source-Code Description:
Linux source code for all supported architectures is contained in
more than 14,000 C and assembly language files stored in about 1000 subdirectories;
It consists of roughly 6 million lines of code, which occupy over
230 megabytes of disk space.
===================================================================================
===============================================================================

===================================================================================
===============================================================================

===================================================================================
===============================================================================
✦ Termnology:
✓ An (Address Space): An (Address Space) is a set of (Memory
addresses) that a (Process) is (allowed to reference).
✓ A (Process): A (Process) can be defined either as:
"An (Instance of a Program) in execution", or as
The "execution context" of a running program.
-----------------------------------------------------------
-----------------------------------------------------------------------------------
- In traditional operating systems, a process executes
a (Single sequence of instructions) in an (address space).
- Modern OSs allow (Processes) with (Multiple Execution
Flows), i.e. Multiple sequences of instructions to execute in the same address
space.
- On uniprocessor systems, just one process can hold
the CPU, and hence just one execution flow can progress at a time.
- It is important to distinguish (Programs) from
(Processes):
✓ (Several Processes) can execute the (Same
Program) concurrently,
✓ While the (Same Process) can execute (Several
Programs) sequentially.

✓ A (Kernel Control Path): Denotes the (Sequence of


Instructions) executed by the [(Kernel), i.e. Instructions used in (kernel mode)]
to (Handle):
✦ A (System Call):
✦ An (Exception):
✦ An (Interrupt):
✓ The (Critical region): Any (Section of code) that should
be finished by each (Process), that begins it, before another process can enter it.
✓ (Preemptive): (‫)خاص بحـق الشـفـعة‬, (‫)وقائـى‬.
✓ (Preemption): (‫)حق المنفـعة‬, (‫)األولوية فى الشــراء‬, ( ‫إســتيالء قـبل‬
‫)األخرين‬.
✓ : A semaphore is simply a counter
associated with a data structure; it is checked by all kernel threads before they
try to access
The data structure. Each semaphore
may be viewed as an object composed of:
✓ An integer variable.
✓ A list of waiting
processes.
✓ Two atomic methods:
down( ) and up( ).
✓ All recent Unix systems provide a useful abstraction called
virtual memory . Virtual memory acts as a logical layer between the
(Application Memory Requests) and the [Hardware Memory
Management Unit (MMU)]. Virtual memory has many purposes & advantages:
✦ Several processes can be executed concurrently.
✦ It is possible to run applications whose memory
needs are (larger) than the available (Physical Memory).
✦ Processes can execute a program whose code is
only partially loaded in memory.
✦ Each process is allowed to access a (subset) of
the available physical memory.
✦ Processes can share a single memory image of a
(library or program).
✦ Programs can be relocatable that is, they can
be placed anywhere in physical memory.
✦ Programmers can write (Machine-Independent
code), because they do not need to be concerned about (Physical Memory
Organization).


===================================================================================
===============================================================================
===================================================================================
===============================================================================

You might also like