Re: Non contiguous Virtual Memory
From: Alexander Grigoriev (alegr_at_earthlink.net)
Date: 12/02/04
- Next message: 2B: "Re: How to get driver info of a PCI device"
- Previous message: Don Burn: "Re: Image Name from Process Handle in Kernel mode"
- In reply to: pawan: "Re: Non contiguous Virtual Memory"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 2 Dec 2004 07:14:42 -0800
You can have a few smaller views and remap them, as necessary, using some
form of least-recently-used algorithm
"pawan" <pawan@discussions.microsoft.com> wrote in message
news:3650D255-D5C8-41D1-8FA7-8DC335C1E472@microsoft.com...
>> There is no need to attach or detach from the shared memory.
>> You will just slide the view over the same section.
>
> Ivan, how can I do so, suppose in my process I got a view of 512 MB (as
> per
> your suggestion) and now this process wants to access the other part of
> the
> shared section which is beyond the 512 MB, what I have to do for this. I
> can
> only think of unmapping the view and again mapping the view to that part
> of
> the shared section. Or is there any other way of doing this (I am new to
> Windows shared memory concept so excuse me if I am asking any silly
> question
> :) )?
>
> TIA,
> pawan.
>
> "Ivan Brugiolo [MSFT]" wrote:
>
>> If you can get a view of, let's say, 512Megs in each process,
>> then, in at most 8 Map-View operation, you can map 4 Gig of a shared
>> section.
>> Given the fact that most of the operation on the shared memory will be
>> local,
>> I would not expect that the move-the-mapping operation to be such a
>> performanve killer.
>> There is no need to attach or detach from the shared memory.
>> You will just slide the view over the same section.
>> Dlls are loaded at their preferred address, that can be changed with the
>> rebase.exe tool.
>> However, certain system dlls, (ntdll.dll) must be loaded at the same
>> address
>> in each and every process, so, even rebasing will not help much.
>>
>> --
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>> Use of any included script samples are subject to the terms specified at
>> http://www.microsoft.com/info/cpyright.htm
>>
>>
>> "pawan" <pawan@discussions.microsoft.com> wrote in message
>> news:B578935D-FEB5-4D5B-9F18-CD59EBBE17C5@microsoft.com...
>> > Actually a number of process's are going to attach to this memory and
>> share
>> > the information (do some modifications or just access the data). The
>> > Question is how the process which wants to attach to this memory will
>> > come
>> to
>> > know which part of the section to map in its memory? As tracking the
>> > information of every bit data is very tedious job. And also it will
>> impact
>> > the performance as each time the process wants some information exists
>> > in
>> > shared memory it need to attach, get the information and again detach
>> > from
>> > the shared memory.
>> > I also tried with the /3GB switch, but it did not help me , as some of
>> > the
>> > ssytem dll's are getting loaded just under the 2GB boundry. Even though
>> the
>> > 2GB to 3GB virtual memory is free, Still it can not satisfy my request
>> (1.5
>> > GB).
>> > If there is a way by which I can hint the system dlls about the free
>> > 2GB
>> to
>> > 3GB memory range so that those dll's can get loaded in that part of
>> > memory
>> ..
>> > I can get the free virtual space which I am looking for.
>> >
>> > "Ivan Brugiolo [MSFT]" wrote:
>> >
>> > > Why cannot you create a section backed by the paging file
>> > > and map small views of the section in your address space ?
>> > >
>> > > --
>> > > This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>> > > Use of any included script samples are subject to the terms specified
>> > > at
>> > > http://www.microsoft.com/info/cpyright.htm
>> > >
>> > >
>> > > "pawan1604" <pawan1604@discussions.microsoft.com> wrote in message
>> > > news:DF276ED7-69EF-430F-9063-0F68C97F806E@microsoft.com...
>> > > > Hi,
>> > > > I am working on a project. where I want to create the file Mapping
>> > > > of
>> 1.5
>> > > > GB. But due to badly fragmented process virtual memory (many system
>> dll's
>> > > and
>> > > > third party dll's are getting loaded at random address in the
>> > > > process
>> > > virtual
>> > > > memory), I am not able to do so, as in Windows shared memory can
>> > > > only
>> be
>> > > > created contiguously (if i am not wrong).
>> > > > Can any body help me, how I can create a 1.5 GB file mapping in
>> > > > this
>> case?
>> > > >
>> > > > thanks,
>> > > > pawan.
>> > >
>> > >
>> > >
>>
>>
>>
- Next message: 2B: "Re: How to get driver info of a PCI device"
- Previous message: Don Burn: "Re: Image Name from Process Handle in Kernel mode"
- In reply to: pawan: "Re: Non contiguous Virtual Memory"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|