Skip to main content

Memory Management (Linux Kernel)


The data related to the processes are to be stored in the memory somehow by the operating system. In the olden days, primary memory is a scarce resource. and the application demands increases, so store the data of a process, it is necessary to use other forms of memory, either we can use

  • Physical address space
  • virtual address space
  1. Mapping the virtual addresses onto the physical addresses is the responsibility of the operating system’s memory management system.
  2. Memory protection prevents two processes exchanging data by changing the areas of memory used by both.
  3. The program code of a process can be executed in different threads at the same time. In principle, these threads share a common virtual address space.

Architecture Independent Memory Model

  1. Access time is the primary factor used in Physical (main) memory. To minimize the access times, the cache memory versions like Level1 Cache (L1 cache) and level2 cache (L2 Cache) were used.
  2. Cache memory improves the performance of Personal Computers.
  3. The physical memory is divided into pages (page memory) and the size is determined by the PAGE_SIZE macro of the asm/page.h file.
  4. For the x86 architecture, the page size is usually 4kbytes and 8kbytes for the 64 bit architecture and 64kbytes for the IA64 architecture
  5. The memory management units (MMU) of various architecture has the support the page size of 4Mbytes, which is necessary when the mapping between the physical address and virtual address takes place.

Virtual Address Space

  • The Code and the data of a process is scattered in the virtual address space.
  • the size of the Virtual address space depends on the number of bits used in the memory address, for example for a 32 bit memory address, nearly 4GBytes is available and for 64 bit memory address 16exabytes are available.
  • usually the process can be either in the user mode or system mode. Each process starts in the user mode initially and changed to system mode when there is a need to access the system resources.
  • The standard procedure to change from the user mode to the system mode is to call the software interrupt 0x80. In the user mode, access to kernel memory is forbidden. Access to the memory page can be granted to system mode or user mode.
  • The physical memory of the kernel maps to the virtual memory only after an offset (PAGE_OFFSET), but this memory space is permitted only under the system mode.
  • For this reason, the user address space is always smaller than the theoretical maximum. For example, for x86 – Page Size (4Kbytes) – User Address Space (3GB), but the theoretical maximum is 4GB.


Popular posts from this blog

Implementing a new system call in Kernel version 2.6.32

A system call is used by application or user programs to request service from the operating systems. Since the user programs does not have direct access to the kernel whereas the OS has the direct access. OS can access the hardware through system calls only.The following files has to be modified for implementing a system call/usr/src/linux- set of files to be createdCreate a new directory newcall/ inside the path “/usr/src/linux-” Create new files Makefile, newcall.c and put them in the /usr/src/linux- folder Create new user files (in any folder of Linux) to test the system call
testnewcall.c, testnewcall.h (created in /home/pradeepkumar) syscall_table_32.S Find the file /usr/src/linux- and add the following line at the end

Installing TexLive 2019 in Ubuntu 18.04

Installation of TexLive 2019 in Linux (Ubuntu 18.04 LTS)
TeX (Tech)

Installation of TexLive 2019

Please watch the video for full installation

I used .iso file to download, the Total size is 3.3GB for Linux,

and i used the torrent file to download, it took me just 20 min to download the entire .iso file

Extract the .iso file to a folder and open a terminal

$] sudo ./install-tl
(it goes into a terminal mode, which is faster compared to the GUI Mode)

$] sudo ./install-tl -gui
after the installation, set the PATH, MANPATH and INFOPATH as suggested by LATEX

export PATH=$PATH:/usr/local/texlive/2019/bin/x86_64-linux
export MANPATH=/usr/local/texlive/2019/texmf-dist/doc/man
export INFOPATH=/usr/local/texlive/2019/texmf-dist/doc/info

put these lines in to the /home/pradeepkumar/.bashrc

$] gedit /home/pradeepkumar/.bashrc
We have installed TexLive 2019 and texstudio.

To install texstudio

$] sudo apt install texstudio
The look and feel of TexStudio looks like this image.

texlive, it install everyt…

Electrical Machine Design (equations)

FactorsDC Machine Transformers Induction Machines Synchronous MachinesOutput EquationPa=CoD2Ln, where Pa=P/h for generators, Pa=P for motorsFor Single Phase
Q=2.22 f Bm Ai Kw Aw d10-3
For Three Phase
Q=3.33 f Bm Ai Kw Aw d 10-3Q=CoD2 L ns
KVA Input Q=
HP * 0.746 / Cos f * hQ=CoD2 L ns
KVA Input Q=
HP * 0.746 / Cos f * h
For Turbo alternators
Q=1.11Bavac KwsVa2 L 10-3/nsOutput CoefficientCo=Bav ac* 10-3where Bav-magnetic loading and ac - electric loadingDNACo=11 Kws Bav ac 10-3Co=11 Kws Bav ac 10-3 Choice of Magnetic LoadingFlux Density in Teeth Frequency of Flux Reversals Size of machineDNAMagnetizing current, Flux Density, Iron lossIron loss, Stability, Voltage Rating, Parallel Operation, Transient ShortCircuit current Choice of Electric LoadingTemperature rise,
speed of machine, Voltage, Armature reaction, CommutationDNAOverload Capacity, Copper losses, Temperature rise, Leakage ReactanceCopper loss, Synchronous reactance, Temperature rise, Stray Load losses,
Voltage rating Flux …