Strona 1 z 1

(hibernacja|"zapisywanie stanu") programu

: 30 mar 2011, 20:43
autor: overprophet
napisałem w C++ program rozwiązujący problem komiwojażera (problem NPC rozwiązanie rekurencyjne)

czy jest jakiś sposób na zrobienie kopii stanu programu (bo programy dla problemów NPC dłuugo działają) i wznowienie go po restarcie komputera w stanie sprzed restartu? (no chyba że przerobie go żeby nie rozwiązywał rekurencyjnie ale wolę tego uniknąć)
chodzi mi o coś w stylu hibernacji procesu
możliwe że wymyślam gruszki na wierzbie ale muszę się upewnić

Re: (hibernacja|"zapisywanie stanu") programu

: 30 mar 2011, 21:20
autor: pioruns
Nie da się zamrozić procesu w ten sposób, Ubuntu nie obsługuje czegoś takiego, żeby przetrwało restart systemu. Musisz używać hibernacji systemowej (cały system hibernujesz), albo zaimplementować load/save w swoim programie (to jako oczywistość mi od razu przyszło do głowy),

Re: (hibernacja|"zapisywanie stanu") programu

: 30 mar 2011, 21:45
autor: overprophet
no to tak z ciekawości - skoro coś takiego jest to jak się to nazywa (może jest jakaś biblioteka w C++) i w jakim OS można to znaleźć?

co do przerobienia no to chciałbym tego właśnie uniknąć

Re: (hibernacja|"zapisywanie stanu") programu

: 01 kwie 2011, 15:29
autor: DDAroo
Nie spotkałem się z takim zrzucaniem procesu na dysk i potem kontynuowaniem jego działania. Jakbyś coś takiego znalazł na systemy UNIX-like albo Windows to daj mi znać. Mam dla czegoś takiego ciekawe zastosowanie i nie musiałbym tego implementować samemu.

Re: (hibernacja|"zapisywanie stanu") programu

: 01 kwie 2011, 17:50
autor: norvoles
Jedyne sensowne wyjście w takim przypadku, to chyba zapisanie stanu programu do pliku, z którego potem można wczytać dane z powrotem.
Taki load/save, jak pioruns napisał. Samo wczytanie, czy zapisanie pliku jest względnie łatwe, pozostaje kwestia tego co ma ten plik zawierać.