473,782 Members | 2,699 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Persisiting the call stack / heap etc.

Hey.

Is it possible somehow to persist the call stack, heap, program
data...everythi ng. Then at a later time load it again and continue work. The
idea is actually to send it all over network in a pervasive research
project, so that one program can be used on one computer and "instantly"
continue on another.. Im not looking for a solution, rather som keywords, no
goes and so forth.

Im planning to use .net 2.0 if the projekt is remotly possible.

Looking very much forward to hear from you.

Anders Jacobsen
Oct 21 '05 #1
5 1411
"Anders K. Jacobsen [DK]" <no**@at.all> wrote in
news:uu******** ******@tk2msftn gp13.phx.gbl:
Hey.

Is it possible somehow to persist the call stack, heap, program
data...everythi ng. Then at a later time load it again and
continue work. The idea is actually to send it all over network
in a pervasive research project, so that one program can be used
on one computer and "instantly" continue on another.. Im not
looking for a solution, rather som keywords, no goes and so
forth.

Im planning to use .net 2.0 if the projekt is remotly possible.

Anders,

This may be possible by using the .Net debugging API (ICorDebug).

Mike Stall would know for sure. There's a contact link on his blog:

http://blogs.msdn.com/jmstall/default.aspx
--
Hope this helps.

Chris.
-------------
C.R. Timmons Consulting, Inc.
http://www.crtimmonsinc.com/
Oct 21 '05 #2
I would look into object serialization.

"Anders K. Jacobsen [DK]" <no**@at.all> wrote in message
news:uu******** ******@tk2msftn gp13.phx.gbl...
Hey.

Is it possible somehow to persist the call stack, heap, program
data...everythi ng. Then at a later time load it again and continue work.
The idea is actually to send it all over network in a pervasive research
project, so that one program can be used on one computer and "instantly"
continue on another.. Im not looking for a solution, rather som keywords,
no goes and so forth.

Im planning to use .net 2.0 if the projekt is remotly possible.

Looking very much forward to hear from you.

Anders Jacobsen

Oct 22 '05 #3
Be pretty involved...it would not only have to persist the entire contents
of memory of the process, for both managed and unmanaged code, but would
also have to "know" what all the open handles to unmanaged resources meant
and somehow recreate them on the other computer. e.g. open files, network
connections, database connections, connections to device drivers, etc. would
all need to be recreated. It would be a lot easier if you could define away
some of the scope, such as persisting only a pure managed application (no
interop), and one that is at a known "safe" point where it has no open
handles to unmanaged resources, all threads are at a known state, etc.
Offhand I'd say it's not worth the effort...serial ization of objects with a
global task scheduler may be a better way to go.

"Anders K. Jacobsen [DK]" <no**@at.all> wrote in message
news:uu******** ******@tk2msftn gp13.phx.gbl...
Hey.

Is it possible somehow to persist the call stack, heap, program
data...everythi ng. Then at a later time load it again and continue work.
The idea is actually to send it all over network in a pervasive research
project, so that one program can be used on one computer and "instantly"
continue on another.. Im not looking for a solution, rather som keywords,
no goes and so forth.

Im planning to use .net 2.0 if the projekt is remotly possible.

Looking very much forward to hear from you.

Anders Jacobsen

Oct 23 '05 #4
Thanks for your input. The applications would be entirely managed.
Applications would further work disconnected on data wich also simplifies
things abit. Your suggestion about using serialization is very much a
possibility. I could indeed use eg. a memento patten to store state about
the application. But there are two problems herre:

1. It would require that applicationo was written from the first source line
with this in mind. I would be very interesting to have the abilty to take
any given application (with some constraints of course) and serilalize their
state. Or atleast only do limited modifications to the source code.

2. It has been done before an is therefore not that interesting as research
project. Im interested in finding out if the .net framework (2.0) provides
som mechanisms which supports this in some degree.

But of course Im aware of the massive complications but thats OK. It does
not have to actually work :) though it would be nice to know that the
project is impossible.

Anders
Be pretty involved...it would not only have to persist the entire contents
of memory of the process, for both managed and unmanaged code, but would
also have to "know" what all the open handles to unmanaged resources meant
and somehow recreate them on the other computer. e.g. open files, network
connections, database connections, connections to device drivers, etc.
would all need to be recreated. It would be a lot easier if you could
define away some of the scope, such as persisting only a pure managed
application (no interop), and one that is at a known "safe" point where it
has no open handles to unmanaged resources, all threads are at a known
state, etc. Offhand I'd say it's not worth the effort...serial ization of
objects with a global task scheduler may be a better way to go.

Oct 23 '05 #5
>
1. It would require that applicationo was written from the first source
line with this in mind. I would be very interesting to have the abilty to
take any given application (with some constraints of course) and
serilalize their state. Or atleast only do limited modifications to the
source code.
The ability to take any given app and do this gets right back into all the
complexity. I think you would need to design this functionality into your
app from the ground app, and even there it would take a lot of effort.
Another approach is to use a master scheduler to break the work load into
chunks and parcel them out to different machines. If one machine failed to
complete the task the chunk could be rescheduled somewhere else.

2. It has been done before an is therefore not that interesting as
research project. Im interested in finding out if the .net framework (2.0)
provides som mechanisms which supports this in some degree.
Not that I know of.

But of course Im aware of the massive complications but thats OK. It does
not have to actually work :) though it would be nice to know that the
project is impossible.


Nothing is truly impossible...it 's all a matter of hardware, software, and
how much time, money, and resources you are willing to dedicate to it. Now,
whether or not it is worth doing....
Oct 23 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

14
30099
by: Kevin Grigorenko | last post by:
Hello, I couldn't find an obvious answer to this in the FAQ. My basic question, is: Is there any difference in allocating on the heap versus the stack? If heap or stack implementation is not part of the standard, then just disregard this question. Here's some questions I'm confused about, and if you can add anything else, please do so! Is the stack limited for each program?
24
7693
by: Jazper | last post by:
hi i have this problem. i made a class deverted by CRootItem with implementation of IDisposable-Interface. i made a test-funktion to test my Dispose-Method.... but when set a breakpoint in my Dispose-Method and call the GC nothing happend!!! my Disposemethod has never been called!! so the GC dont call my Dispose-Method although I implemented IDisposable? what am i doing wrong?
1
3768
by: Geiregat Jonas | last post by:
I'm reading Eric Gunnerson's book. He is talking about the heap and stack, he says you have 2types, value wich are in the stack or inline or reference types wich are in the heap. I don't get this what's heap stack and what's the main difference between those 2types ?
24
2630
by: ALI-R | last post by:
Hi All, First of all I think this is gonna be one of those threads :-) since I have bunch of questions which make this very controversial:-0) Ok,Let's see: I was reading an article that When you pass a Value-Type to method call ,Boxing and Unboxing would happen,Consider the following snippet: int a=1355; myMethod(a); ......
9
3385
by: shine | last post by:
what is the difference between a heap and a stack?
5
1160
by: Anders K. Jacobsen [DK] | last post by:
Hey. Is it possible somehow to persist the call stack, heap, program data...everything. Then at a later time load it again and continue work. The idea is actually to send it all over network in a pervasive research project, so that one program can be used on one computer and "instantly" continue on another.. Im not looking for a solution, rather som keywords, no goes and so forth. Im planning to use .net 2.0 if the projekt is remotly...
24
2896
by: arcticool | last post by:
I had an interview today and I got destroyed :( The question was why have a stack and a heap? I could answer all the practical stuff like value types live on the stack, enums are on the stack, as are structs, where classes are on the heap... when value types go out of scope the memory is re- allocated, object remain in memory waiting to be cleaned up by the garbage collector, etc, but he responded 'so why not just put say a class on the...
16
4451
by: sarathy | last post by:
Hi all, I need a few clarifications regarding memory allocaion in C++. I apologize for the lengthy explanation. 1. In C++, Objects are allocated in heap. What does heap refer to? Is it an area in RAM/Memory or does it refer to a data structure being used for storing objects. 2. In C++, functions and its local variables go in stack. If local variables that are primitives go in stack, it is OK. But what
24
6588
by: John | last post by:
I know this is a very fundamental question. I am still quite confused if the program call stack stack should always grows upwards from the bottom, or the opposite, or doesn't matter?? That means the stack pointer should go upwards when there are "push" operations, and stack pointer should go downards when there are "pop" operations?? If this is the case, the address should go upwards (increasing) or downards (decreasing) then? i.e....
0
9474
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10143
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10076
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9939
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7486
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6729
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5375
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5507
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3633
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.