Home Operation and Maintenance Linux Operation and Maintenance What is the virtual memory mechanism of linux

What is the virtual memory mechanism of linux

May 14, 2023 pm 12:01 PM
linux

Linux virtual memory mechanism:

1. Each process has its own independent 4G memory space, and the memory space of each process has a similar structure.

Linux memory management adopts page management, using multi-level page tables. The dynamic address translation mechanism, main memory and auxiliary memory jointly realize virtual memory. When a new process is established,

It will establish its own memory space, and the data and code of this process will be copied from the disk to its own process space. Which data is where?

They are all recorded by the task_struct in the process control table. There is a linked list recorded in the task_struct, and the memory space allocation in the record is

Which addresses have data, which addresses have no data, which ones are readable, and which ones are writable, can be recorded through this linked list. The memory space that each process has allocated can be mapped with the corresponding disk space.

2. Each program can see a complete and continuous address space. These spaces are not directly related to physical memory, but the operating system provides an abstract concept of memory,

This allows each process to have a continuous and complete address space. During the running process of the program, the conversion from virtual address to physical address is completed.

We also know that the address space of a process is segmented, and there are so-called data segments, code segments, bbs segments, heaps, stacks, etc. Each segment has a specific role.

At the same time, the computer does not have that much memory (n processes need to correspond to n*4G memory). To create a process, you need to copy the program files on the disk to the memory corresponding to the process,

For the case where one program corresponds to multiple processes, memory is wasted.

What is the virtual memory mechanism of linux

3. The 4G memory space of each process is only a virtual memory space. Every time an address in the memory space is accessed, the address needs to be translated into an actual physical address. All processes share the same physical memory,

Each process only maps and stores the virtual memory space it currently needs into physical memory. The process needs to know which memory addresses the data is in physical memory, which ones are not, and where they are in physical memory,

The page table needs to be recorded. Each entry in the page table is divided into two parts. The first part records whether the page is in physical memory. The second part records the address of the physical memory. When the process accesses a virtual address,

Check the page table. If the corresponding data is not in the physical memory, the page missing exception processing process is to copy the data required by the process from the disk to the physical memory.

If the memory is full , if there is no free space, then find a page to overwrite. Of course, if the overwritten page has been modified, this page needs to be written back to the disk.

What is the virtual memory mechanism of linux

4. Surprisingly, the memory space of each process is consistent and fixed, so the linker can set the memory address when linking the execution file, without having to worry about the final actual memory address of the data,

This has independent memory Benefits of space: When different processes use the same code, such as code in a library file, only one copy of such code can be stored in physical memory,

Different processes only need to map their own virtual memory to save memory when the program needs to allocate continuous memory space.

Only contiguous space needs to be allocated in the virtual memory space without the need for contiguous space in actual physical memory, and fragmentation can be used.

The above is the detailed content of What is the virtual memory mechanism of linux. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1673
14
PHP Tutorial
1278
29
C# Tutorial
1257
24
Linux Architecture: Unveiling the 5 Basic Components Linux Architecture: Unveiling the 5 Basic Components Apr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

vscode Previous Next Shortcut Key vscode Previous Next Shortcut Key Apr 15, 2025 pm 10:51 PM

VS Code One-step/Next step shortcut key usage: One-step (backward): Windows/Linux: Ctrl ←; macOS: Cmd ←Next step (forward): Windows/Linux: Ctrl →; macOS: Cmd →

How to check the warehouse address of git How to check the warehouse address of git Apr 17, 2025 pm 01:54 PM

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

How to run java code in notepad How to run java code in notepad Apr 16, 2025 pm 07:39 PM

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

How to run sublime after writing the code How to run sublime after writing the code Apr 16, 2025 am 08:51 AM

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

What is the main purpose of Linux? What is the main purpose of Linux? Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

laravel installation code laravel installation code Apr 18, 2025 pm 12:30 PM

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

git software installation git software installation Apr 17, 2025 am 11:57 AM

Installing Git software includes the following steps: Download the installation package and run the installation package to verify the installation configuration Git installation Git Bash (Windows only)

See all articles