Logical and Physical Address
Logical Address is generated by CPU while a program is running. The logical address is virtual address as it does not exist physically, therefore, it is also known as Virtual
Address. This address is used as a reference to access the physical memory location by CPU. The term Logical Address Space is used for the set of all logical addresses generated
by a program’s perspective.
Swapping
Swapping is a mechanism in which a process can be swapped temporarily out of main memory to secondary storage and make that memory available to other processes. At some later
time, the system swaps back the process from the secondary storage to main memory. Though performance is usually affected by swapping process but it helps in running multiple
and big processes in parallel and that’s the reason Swapping is also known as a technique for memory compaction.
Paging
Paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory. In this scheme, the operating system retrieves
data from secondary storage in same-size blocks called pages. Paging is an important part of virtual memory implementations in modern operating systems, using secondary storage
to let programs exceed the size of available physical memory.
Page Table
A page table is the data structure used by a virtual memory system in a computer operating system to store the mapping between virtual addresses and physical addresses. Virtual
addresses are used by the program executed by the accessing process, while physical addresses are used by the hardware, or more specifically, by the RAM subsystem. The page
table is a key component of virtual address translation which is necessary to access data in memory.
C Language
C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the
UNIX operating system. C is the most widely used computer language. It keeps fluctuating at number one scale of popularity along with Java programming language, which is also
equally popular and most widely used among modern software programmers.
Linux Libraries
Libraries employ a software design also known as “shared components” or “archive libraries”, which groups together multiple compiled object code files into a single file known
as a library. Typically C functions/C++ classes and methods which can be shared by more than one application are broken out of the application’s source code, compiled and
bundled into a library. There are two Linux C/C++ library types which can be created. Static libraries, a library of object code which is linked with, and becomes part of the
application. The other one is dynamically linked shared object libraries. There is only one form of this library but it can be used in two ways. Dynamically linked at run time.