Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб июн 24, 2017 3:22 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 15 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Hibernate
СообщениеДобавлено: Вс май 29, 2005 5:00 pm 
Реально ли вообще сделать в ядре meos функцию входа в спящий режим с записью содержимого памяти на винт?


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вс май 29, 2005 5:08 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Если не секрет, зачем???

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс май 29, 2005 5:19 pm 
Vlad G. Maslakov
такая функция вроде есть в VMware - типа save state... ИМХО сохранить содержимое памяти не проблема - проблема загрузить это всё как полагается ;)


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт май 31, 2005 10:39 pm 
Цитата:
Если не секрет, зачем???

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

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

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


Вернуться к началу
   
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Вт фев 21, 2012 2:31 am 
А откопаю-ка я занесенную песком, илом и землей тему... (да-да, такая нездоровая некрофилия)

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

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

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

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

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

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

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


Вернуться к началу
   
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Вт фев 21, 2012 1:19 pm 
Не в сети
Moderator

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


Вернуться к началу
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Вт фев 21, 2012 1:28 pm 
Не в сети

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


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

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


Вернуться к началу
   
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Вт фев 21, 2012 5:31 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
Mario
Суспендить дрова, а потом восстанавливать их состояние то ещё удовольствие.


Вернуться к началу
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Вт фев 21, 2012 5:36 pm 
А никто не обещал, что будет легко.


Вернуться к началу
   
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Ср фев 22, 2012 9:31 am 
Не в сети
Moderator

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


Вернуться к началу
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Ср фев 22, 2012 10:09 am 
Не в сети

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


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


Вернуться к началу
   
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Чт фев 23, 2012 7:30 pm 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 264
Я знаю про этот файл...но ведь идея про сжатие просто отличная...применять например 7zip...ну или что-то своё...но первая реализация должна конечно же быть самой простой...зато я про такой способ что-то ни разу не слышал...

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


Вернуться к началу
 Заголовок сообщения: Re: Hibernate
СообщениеДобавлено: Чт фев 23, 2012 7:54 pm 
Слишком большой расход времени.


Вернуться к началу
   
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 15 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB