


What is the virtual memory mechanism of 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.
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.
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!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

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.

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

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.

RAIDimprovesstorageperformanceandreliabilityonLinuxserversthroughvariousconfigurations;RAID0offersspeedbutnoredundancy;RAID1providesmirroringforcriticaldatawith50�pacityloss;RAID5supportssingle-drivefailuretoleranceusingparityandrequiresatleastthre

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

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

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

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