Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 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