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

Undress AI Tool

Undress AI Tool

Undress images for free

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.

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 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)

How to install software on Linux using the terminal? How to install software on Linux using the terminal? Aug 02, 2025 pm 12:58 PM

There are three main ways to install software on Linux: 1. Use a package manager, such as apt, dnf or pacman, and then execute the install command after updating the source, such as sudoaptininstallcurl; 2. For .deb or .rpm files, use dpkg or rpm commands to install, and repair dependencies when needed; 3. Use snap or flatpak to install applications across platforms, such as sudosnapinstall software name, which is suitable for users who are pursuing version updates. It is recommended to use the system's own package manager for better compatibility and performance.

The Ultimate Guide to High-Performance Gaming on Linux The Ultimate Guide to High-Performance Gaming on Linux Aug 03, 2025 am 05:51 AM

ChoosePop!_OS,Ubuntu,NobaraLinux,orArchLinuxforoptimalgamingperformancewithminimaloverhead.2.InstallofficialNVIDIAproprietarydriversforNVIDIAGPUs,ensureup-to-dateMesaandkernelversionsforAMDandIntelGPUs.3.EnabletheperformanceCPUgovernor,usealow-latenc

What are the main pros and cons of Linux vs. Windows? What are the main pros and cons of Linux vs. Windows? Aug 03, 2025 am 02:56 AM

Linux is suitable for old hardware, has high security and is customizable, but has weak software compatibility; Windows software is rich and easy to use, but has high resource utilization. 1. In terms of performance, Linux is lightweight and efficient, suitable for old devices; Windows has high hardware requirements. 2. In terms of software, Windows has wider compatibility, especially professional tools and games; Linux needs to use tools to run some software. 3. In terms of security, Linux permission management is stricter and updates are convenient; although Windows is protected, it is still vulnerable to attacks. 4. In terms of difficulty of use, the Linux learning curve is steep; Windows operation is intuitive. Choose according to requirements: choose Linux with performance and security, and choose Windows with compatibility and ease of use.

Understanding RAID Configurations on a Linux Server Understanding RAID Configurations on a Linux Server Aug 05, 2025 am 11:50 AM

RAIDimprovesstorageperformanceandreliabilityonLinuxserversthroughvariousconfigurations;RAID0offersspeedbutnoredundancy;RAID1providesmirroringforcriticaldatawith50�pacityloss;RAID5supportssingle-drivefailuretoleranceusingparityandrequiresatleastthre

Linux how to enable and disable services at boot Linux how to enable and disable services at boot Aug 08, 2025 am 10:23 AM

To manage the startup of Linux services, use the systemctl command. 1. Check the service status: systemctlstatus can check whether the service is running, enabled or disabled. 2. Enable the service startup: sudosystemctlenable, such as sudosystemctlenablenginx. If it is started at the same time, use sudosystemctlenable--nownginx. 3. Disable the service startup: sudosystemctldisable, such as sudosystemctldisablecups. If it is stopped at the same time, use sudosystemctldisabl

Linux how to list all running processes Linux how to list all running processes Aug 08, 2025 am 06:42 AM

Usepsauxforacompletesnapshotofallrunningprocesses,showingdetailedinformationlikeUSER,PID,CPU,andmemoryusage.2.Usetoporhtopforreal-timemonitoringofprocesseswithdynamicupdates,wherehtopoffersamoreintuitiveinterface.3.UsepgreporpidoftoquicklyfindthePIDs

How to clean up your Linux system How to clean up your Linux system Aug 22, 2025 am 07:42 AM

Removeunusedpackagesanddependencieswithsudoaptautoremove,cleanpackagecacheusingsudoaptcleanorautoclean,andremoveoldkernelsviasudoaptautoremove--purge.2.Clearsystemlogswithsudojournalctl--vacuum-time=7d,deletearchivedlogsin/var/log,andempty/tmpand/var

Linux how to view the contents of a file Linux how to view the contents of a file Aug 19, 2025 pm 06:44 PM

ToviewfilecontentsinLinux,usedifferentcommandsbasedonyourneeds:1.Forsmallfiles,usecattodisplaytheentirecontentatonce,withcat-ntoshowlinenumbers.2.Forlargefiles,uselesstoscrollpagebypageorlinebyline,searchwith/search_term,andquitwithq.3.Usemoreforbasi

See all articles