Sponsored Content
Special Forums Hardware Filesystems, Disks and Memory How does memory mapping work? Post 302517039 by Corona688 on Tuesday 26th of April 2011 12:38:43 AM
Old 04-26-2011
The best 'guide' is man mmap and some experimentation.

The "magic" is virtual memory. If you don't understand that yet, you'll need to. the paging game is a pretty good starter, I think.

How it works, hardware-wise, is the CPU keeps a big table of what addresses are assigned to what processes, and what real memory -- if any -- is assigned to that address. The OS can configure it on the fly. A page can be marked as 'unavailable', meaning, potentially valid but not yet read in or assigned actual memory. If a process accesses it, the CPU signals the OS which freezes that process. It checks and finds that the page isn't marked as 'ready' in the table, and that by its own (separate) records, ought to be a chunk of bigfile.txt. The OS finds an empty page, reads the right chunk into it, marks it belonging to the process, and wakes it up, which tries to read again and this time succeeds with no delay.

IOW, the CPU can mark memory in such a way as to freeze a process when it tries to use it. The OS is told when this happens, so it can do something to the memory, then revive it when ready, making a convincing illusion of the file existing in contiguous memory.

Last edited by Corona688; 04-26-2011 at 01:46 AM..
These 2 Users Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Script doesn't work, but commands inside work

Howdie everyone... I have a shell script RemoveFiles.sh Inside this file, it only has two commands as below: rm -f ../../reportToday/temp/* rm -f ../../report/* My problem is that when i execute this script, nothing happened. Files remained unremoved. I don't see any error message as it... (2 Replies)
Discussion started by: cheongww
2 Replies

2. Programming

C code for implementation of Memory Mapping

Please post a C code for implementation of Memory Mapping function. It should simulate the mmap command. (1 Reply)
Discussion started by: raviviolet13
1 Replies

3. AIX

lvm_queryvg call does not work properly and results in a sudden memory rise.

On AIX 5.3 host, the lvm_queryvg call does not work properly and results in a sudden memory rise. This is happening on one particular host and the call works fine on another host. Is this a known issue and is there any patch available for this? (0 Replies)
Discussion started by: sandiworld
0 Replies

4. Solaris

How to find Total and Free Physical Memory and Logical Memory in SOLARIS 9

Hi, Im working on Solaris 9 on SPARC-32 bit running on an Ultra-80, and I have to find out the following:- 1. Total Physical Memory in the system(total RAM). 2. Available Physical Memory(i.e. RAM Usage) 3. Total (Logical) Memory in the system 4. Available (Logical) Memory. I know... (4 Replies)
Discussion started by: 0ktalmagik
4 Replies

5. Programming

How to deal with lots of data in memory in order not to run out of memory

Hi, I'm trying to learn how to manage memory when I have to deal with lots of data. Basically I'm indexing a huge file (5GB, but it can be bigger), by creating tables that holds offset <-> startOfSomeData information. Currently I'm mapping the whole file at once (yep!) but of course the... (1 Reply)
Discussion started by: emitrax
1 Replies

6. Shell Programming and Scripting

Creating unique mapping from multiple mapping

Hello, I do not know if this is the right title to use. I have a large dictionary database which has the following structure: where a b c d e are in English and p q r s t are in a target language., the two separated by the delimiter =. What I am looking for is a perl script which will take... (5 Replies)
Discussion started by: gimley
5 Replies

7. Solaris

[DOUBT] Memory high in idle process on Solaris 10 (Memory Utilization > 90%)

Hi Experts, Our servers running Solaris 10 with SAP Application. The memory utilization always >90%, but the process on SAP is too less even nothing. Why memory utilization on solaris always looks high? I have statement about memory on solaris, is this true: Memory in solaris is used for... (4 Replies)
Discussion started by: edydsuranta
4 Replies

8. Shell Programming and Scripting

My script work on Linux but not work in sunos.

My script work on Linux but not work in sun os. my script. logFiles="sentLog1.log sentLog2.log" intial_time="0 0" logLocation="/usr/local/tomcat/logs/" sleepTime=600 failMessage=":: $(tput bold)Log not update$(tput rmso) = " successMessage="OK" arr=($logFiles)... (7 Replies)
Discussion started by: ooilinlove
7 Replies

9. IP Networking

Discussion at work, would a router work pluging a cable in wan1 and lan1?

hi all. and sorry for the random question, but this sparkled a raging flame-war at work and i want more points of view situation a router, with linux of some sort, dhcp client requesting for ip in wan1 (as usual with wan ports) dhcp server listening in lan1, and assigning ip (as usual... (9 Replies)
Discussion started by: broli
9 Replies

10. UNIX for Advanced & Expert Users

Mapping Oracle SGA memory into physical files in Solaris.

Is there a way by which we could map Oracle SGA memory into physical files in solaris. We could find these physical files in /dev/shm/ folder in linux environment but they are missing in solaris. (1 Reply)
Discussion started by: arjun_chauhan
1 Replies
VMSTAT(1)						    BSD General Commands Manual 						 VMSTAT(1)

NAME
vmstat -- report virtual memory statistics SYNOPSIS
vmstat [-CefHiLlmstUvW] [-c count] [-h hashname] [-M core] [-N system] [-u histname] [-w wait] [disks] DESCRIPTION
vmstat reports certain kernel statistics kept about process, virtual memory, disk, trap, and CPU activity. The options are as follows: -C Report on kernel memory caches. Combine with the -m option to see information about memory pools that back the caches. -c count Repeat the display count times. The first display is for the time since a reboot and each subsequent report is for the time period since the last display. If no wait interval is specified, the default is 1 second. -e Report the values of system event counters. -f Report fork statistics. -H Report all hash table statistics. -h hashname Report hash table statistics for hashname. -i Report the values of system interrupt counters. -L List all the hashes supported for -h and -H. -l List the UVM histories being maintained by the kernel. -M core Extract values associated with the name list from the specified core instead of the default /dev/mem. -m Report on the usage of kernel dynamic memory listed first by size of allocation and then by type of usage, followed by a list of the kernel memory pools and their usage. -N system Extract the name list from the specified system instead of the default /netbsd. -s Display the contents of the uvmexp structure. This contains various paging event and memory status counters. -t Display the contents of the vmtotal structure. This includes information about processes and virtual memory. The process part shows the number of processes in the following states: ru on the run queue dw in disk I/O wait pw waiting for paging sl sleeping The virtual memory section shows: total-v Total virtual memory active-v Active virtual memory in use active-r Active real memory in use vm-sh Shared virtual memory avm-sh Active shared virtual memory rm-sh Shared real memory arm-sh Active shared real memory free Free memory All memory values are shown in number of pages. -U Dump all UVM histories. -u histname Dump the specified UVM history. -v Print more verbose information. When used with the -i, -e, or -m options prints out all counters, not just those with non-zero values. -W Print more verbose information about kernel memory pools. -w wait Pause wait seconds between each display. If no repeat count is specified, the default is infinity. By default, vmstat displays the following information: procs Information about the numbers of processes in various states. r in run queue b blocked for resources (i/o, paging, etc.) memory Information about the usage of virtual and real memory. Virtual pages (reported in units of 1024 bytes) are considered active if they belong to processes which are running or have run in the last 20 seconds. avm active virtual pages fre size of the free list page Information about page faults and paging activity. These are averaged every five seconds, and given in units per second. flt total page faults re page reclaims (simulating reference bits) pi pages paged in po pages paged out fr pages freed per second sr pages scanned by clock algorithm, per-second disks Disk transfers per second. Typically paging will be split across the available drives. The header of the field is the first charac- ter of the disk name and the unit number. If more than four disk drives are configured in the system, vmstat displays only the first four drives. To force vmstat to display specific drives, their names may be supplied on the command line. faults Trap/interrupt rate averages per second over last 5 seconds. in device interrupts per interval (including clock interrupts) sy system calls per interval cs CPU context switch rate (switches/interval) cpu Breakdown of percentage usage of CPU time. us user time for normal and low priority processes sy system time id CPU idle FILES
/netbsd default kernel namelist /dev/mem default memory file EXAMPLES
The command ``vmstat -w 5'' will print what the system is doing every five seconds; this is a good choice of printing interval since this is how often some of the statistics are sampled in the system. Others vary every second and running the output for a while will make it appar- ent which are recomputed every second. SEE ALSO
fstat(1), netstat(1), nfsstat(1), ps(1), systat(1), iostat(8), pstat(8) The sections starting with ``Interpreting system activity'' in Installing and Operating 4.3BSD. BUGS
The -c and -w options are only available with the default output. The -l, -U, and -u options are useful only if the system was compiled with support for UVM history. BSD
October 22, 2009 BSD
All times are GMT -4. The time now is 02:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy