|
Might I ask, why do you "care" how the mmap() API
works? Is it not enough
to know the purpose of the API, the parameters (the
interface), and the results
that it provides, in order to make good use of this
facility?
If you really want to know how a particular mmap
works, you can always look
at the source code for any Linux kernel to see how
it is implemented. In effect,
they manipulate the page tables to "map" the
contents of the file into the virtual
address space of the running process.
Since OS/400 is vastly different, primarily because
there are no separate
address spaces "per process", but instead, there is
a single large address space,
the so-called "single level store", we can
speculate that, somehow, OS/400 would
implement mmap() as follows: it would first
create a teraspace into which to
"map" the contents of the file, and then, somehow,
set up the corresponding
page table entries to map the relevant data. Now,
again, not knowing exactly
how this is implemented "under the covers", this
could mean that OS/400 must
also set up the page tables so that, upon "first
reference" to each page of data,
the appropriate data from the actual underlying
file can be copied into the relevant
pages in virtual storage, etc. Also, I do not
know if this mmap() API can work
with the old "DB2" file system (aka. the QSYS file
system files). Since it is a
"Unix" API, it probably only works for IFS stream
files.
I hope that helps...
Again, why do you "care" about "how it works"
versus "what it does" for you?
Regards,
Mark S. Waterbury
|
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.