Board.KolibriOS.org

Official KolibriOS board
It is currently Sun May 26, 2019 4:54 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 15 posts ] 
Author Message
 Post subject: Hibernate
PostPosted: Sun May 29, 2005 5:00 pm 
Реально ли вообще сделать в ядре meos функцию входа в спящий режим с записью содержимого памяти на винт?


Top
   
 Post subject:
PostPosted: Sun May 29, 2005 5:08 pm 
Offline
Site Founder
User avatar

Joined: Sun Aug 08, 2004 8:55 am
Posts: 689
Если не секрет, зачем???

_________________
in code we trust


Top
   
 Post subject:
PostPosted: Sun May 29, 2005 5:19 pm 
Vlad G. Maslakov
такая функция вроде есть в VMware - типа save state... ИМХО сохранить содержимое памяти не проблема - проблема загрузить это всё как полагается ;)


Top
   
 Post subject:
PostPosted: Tue May 31, 2005 10:39 pm 
Quote:
Если не секрет, зачем???

Как зачем? Чтобы можно было работать с того момента, на котором закончил. Вроде как полезная вещь.

Quote:
проблема загрузить это всё как полагается

Можно, допустим, сразу перед загрузкой оболочки MeOS (т.е. всяких таскбаров, иконок и т.д.) загрузить образ. Теоретически ;)


Top
   
 Post subject: Re: Hibernate
PostPosted: Tue Feb 21, 2012 2:31 am 
А откопаю-ка я занесенную песком, илом и землей тему... (да-да, такая нездоровая некрофилия)

Если я несу бред сивой кобылы, то по почкам не бить, но критика приветствуется.

Итак одна из вещей которая смызывает красоту возможной реализации - программное выключение питания работает не во всех случаях. Однако при большом желании можно вывести надпись "Теперь можно сделать выкл." и пользователь будет тем самым костылем. Неприятно, но не смертельно - хотя разумеется наши любимые критики могут начать откладывать кирпичи от изобретения очередного костыля, ну да бог с ними.

Теперь как я вижу реализацию.

Выключение: идея зародившаяся в межушном узле, заставляет тентаклю нажать клавишу или кликнуть манипулятором. Ядро последовательно тормозит все процессы, кроме себя любимого разумеется. Возможно не за один обход - вероятно придется подождать приложения производящие запись на дисковые носители. Хотя опять вопрос интересный - запись на флопик процесс не быстрый. Далее тормозится планировщик и в работе остается только тот кусок кода, который отвечает за запись содержимого ОЗУ в файл-хранилище. Поскольку кроме Fat32 нам пока реально рассчитывать не на что, то запись всех 4 Гб будет производится в 2 файла по 2 Гб, можно и в 4 по 1 Гб, чтобы уж наверняка исключить накладки. После сохранения содержимого помечаем каким либо образом (загрузочный сектор, ini файл и т.д.), что система была усыплена в спящий режим Разумеется если сохранение прошло корректно - к примеру если есть ошибки в файловой системе, то такую сохраненную сессию придется отвергнуть с потерей данных содержащихся в оперативке.

Восстановление: идея зародившаяся в межушном узле, заставляет тентаклю нажать клавишу Выкл (отдельные несознательные индивиды обзывают ее Power). Ядро при старте прочухивает что система была успылена. Все физические устройства сбрасываются в исходное состояние (потому что это хоть и не полнокровная, но все же такая же с точки зрения железа загрузка системы). Активируется кусок кода, который считывает и заменяет всю память кроме себя любимого соответственно. Далее все процессы оживляются (раньше еще в Menuet была установка процессу "зомби" статуса, не смотрел в код Колибри как оно есть сейчас) и включается планировщик. Главный вирус нетерпеливо елозит манипулятором по столу...

Вот как-то так.

Знаю что сумбурно и неполно, но это всего лишь идейная часть с руководством к действиям. Сами действия собственно придется продумывать.


Top
   
 Post subject: Re: Hibernate
PostPosted: Tue Feb 21, 2012 1:19 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Слишком накладно на диск записывать весь объём ОЗУ...4 Гб записать на винчестер ...сколько это минут займёт?...а потом их же считать придётся...сколько займёт времени загрузка?...тут нужен более хитрый способ...


Top
   
 Post subject: Re: Hibernate
PostPosted: Tue Feb 21, 2012 1:28 pm 
Offline

Joined: Wed Dec 26, 2007 5:09 am
Posts: 214
Надо писать лишь области памяти, реально занятые чем-то полезным (ядром системы, приложениями и т.п.). В том случае, если занята вся память, придётся писать всё -- от этого не уйдёшь.


Top
   
 Post subject: Re: Hibernate
PostPosted: Tue Feb 21, 2012 4:57 pm 
Не знаю - Виндовс файл почти во всю память создает, за исключением того куска который восстановлением потом занимается. Сколько при этом записывается данных неизвестно, но размер выделен всегда под максимальный объем.

А насчет скорости записи - даже если скорость будет 30 Мб/с, то запись будет не более 2,5 минут. Надо понимать, что монопольная работа с дисковым устройством - это достаточно быстрая и эффективная операция. Хотя разумеется записывать только используемые области памяти более эффективно и быстро.


Top
   
 Post subject: Re: Hibernate
PostPosted: Tue Feb 21, 2012 5:31 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario
Суспендить дрова, а потом восстанавливать их состояние то ещё удовольствие.


Top
   
 Post subject: Re: Hibernate
PostPosted: Tue Feb 21, 2012 5:36 pm 
А никто не обещал, что будет легко.


Top
   
 Post subject: Re: Hibernate
PostPosted: Wed Feb 22, 2012 9:31 am 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Что бы не сливать всю память надо придумать способ её архивировать...похожие данные помечать и писать только 1 раз...ну это как будущее суспендиьния..:)


Top
   
 Post subject: Re: Hibernate
PostPosted: Wed Feb 22, 2012 10:09 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
popovpa, отправь свою винду в спящий режим и загрузись из Колибри. Увидишь в корне диска с виндой красивенький файлик, размером точно с твою оперативную память. Такие дела...


Top
   
 Post subject: Re: Hibernate
PostPosted: Wed Feb 22, 2012 11:35 am 
Вообще-то он там виден и без перезагрузки. Надо только отображение скрытых и системных файлов включить в проводнике.


Top
   
 Post subject: Re: Hibernate
PostPosted: Thu Feb 23, 2012 7:30 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Я знаю про этот файл...но ведь идея про сжатие просто отличная...применять например 7zip...ну или что-то своё...но первая реализация должна конечно же быть самой простой...зато я про такой способ что-то ни разу не слышал...

Хотя тут просто сжатие не очень подойдёт...тут надо реализовывать алгоритм под конкретную задачу...нам ведь не надо фото или музыку сжимать...у нас на сколько я понимаю только числа?


Top
   
 Post subject: Re: Hibernate
PostPosted: Thu Feb 23, 2012 7:54 pm 
Слишком большой расход времени.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 15 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited