Hibernate
-
Реально ли вообще сделать в ядре meos функцию входа в спящий режим с записью содержимого памяти на винт?
Если не секрет, зачем???
in code we trust
Vlad G. Maslakov
такая функция вроде есть в VMware - типа save state... ИМХО сохранить содержимое памяти не проблема - проблема загрузить это всё как полагается
такая функция вроде есть в VMware - типа save state... ИМХО сохранить содержимое памяти не проблема - проблема загрузить это всё как полагается
Как зачем? Чтобы можно было работать с того момента, на котором закончил. Вроде как полезная вещь.Если не секрет, зачем???
Можно, допустим, сразу перед загрузкой оболочки MeOS (т.е. всяких таскбаров, иконок и т.д.) загрузить образ. Теоретическипроблема загрузить это всё как полагается
А откопаю-ка я занесенную песком, илом и землей тему... (да-да, такая нездоровая некрофилия)
Если я несу бред сивой кобылы, то по почкам не бить, но критика приветствуется.
Итак одна из вещей которая смызывает красоту возможной реализации - программное выключение питания работает не во всех случаях. Однако при большом желании можно вывести надпись "Теперь можно сделать выкл." и пользователь будет тем самым костылем. Неприятно, но не смертельно - хотя разумеется наши любимые критики могут начать откладывать кирпичи от изобретения очередного костыля, ну да бог с ними.
Теперь как я вижу реализацию.
Выключение: идея зародившаяся в межушном узле, заставляет тентаклю нажать клавишу или кликнуть манипулятором. Ядро последовательно тормозит все процессы, кроме себя любимого разумеется. Возможно не за один обход - вероятно придется подождать приложения производящие запись на дисковые носители. Хотя опять вопрос интересный - запись на флопик процесс не быстрый. Далее тормозится планировщик и в работе остается только тот кусок кода, который отвечает за запись содержимого ОЗУ в файл-хранилище. Поскольку кроме Fat32 нам пока реально рассчитывать не на что, то запись всех 4 Гб будет производится в 2 файла по 2 Гб, можно и в 4 по 1 Гб, чтобы уж наверняка исключить накладки. После сохранения содержимого помечаем каким либо образом (загрузочный сектор, ini файл и т.д.), что система была усыплена в спящий режим Разумеется если сохранение прошло корректно - к примеру если есть ошибки в файловой системе, то такую сохраненную сессию придется отвергнуть с потерей данных содержащихся в оперативке.
Восстановление: идея зародившаяся в межушном узле, заставляет тентаклю нажать клавишу Выкл (отдельные несознательные индивиды обзывают ее Power). Ядро при старте прочухивает что система была успылена. Все физические устройства сбрасываются в исходное состояние (потому что это хоть и не полнокровная, но все же такая же с точки зрения железа загрузка системы). Активируется кусок кода, который считывает и заменяет всю память кроме себя любимого соответственно. Далее все процессы оживляются (раньше еще в Menuet была установка процессу "зомби" статуса, не смотрел в код Колибри как оно есть сейчас) и включается планировщик. Главный вирус нетерпеливо елозит манипулятором по столу...
Вот как-то так.
Знаю что сумбурно и неполно, но это всего лишь идейная часть с руководством к действиям. Сами действия собственно придется продумывать.
Если я несу бред сивой кобылы, то по почкам не бить, но критика приветствуется.
Итак одна из вещей которая смызывает красоту возможной реализации - программное выключение питания работает не во всех случаях. Однако при большом желании можно вывести надпись "Теперь можно сделать выкл." и пользователь будет тем самым костылем. Неприятно, но не смертельно - хотя разумеется наши любимые критики могут начать откладывать кирпичи от изобретения очередного костыля, ну да бог с ними.
Теперь как я вижу реализацию.
Выключение: идея зародившаяся в межушном узле, заставляет тентаклю нажать клавишу или кликнуть манипулятором. Ядро последовательно тормозит все процессы, кроме себя любимого разумеется. Возможно не за один обход - вероятно придется подождать приложения производящие запись на дисковые носители. Хотя опять вопрос интересный - запись на флопик процесс не быстрый. Далее тормозится планировщик и в работе остается только тот кусок кода, который отвечает за запись содержимого ОЗУ в файл-хранилище. Поскольку кроме Fat32 нам пока реально рассчитывать не на что, то запись всех 4 Гб будет производится в 2 файла по 2 Гб, можно и в 4 по 1 Гб, чтобы уж наверняка исключить накладки. После сохранения содержимого помечаем каким либо образом (загрузочный сектор, ini файл и т.д.), что система была усыплена в спящий режим Разумеется если сохранение прошло корректно - к примеру если есть ошибки в файловой системе, то такую сохраненную сессию придется отвергнуть с потерей данных содержащихся в оперативке.
Восстановление: идея зародившаяся в межушном узле, заставляет тентаклю нажать клавишу Выкл (отдельные несознательные индивиды обзывают ее Power). Ядро при старте прочухивает что система была успылена. Все физические устройства сбрасываются в исходное состояние (потому что это хоть и не полнокровная, но все же такая же с точки зрения железа загрузка системы). Активируется кусок кода, который считывает и заменяет всю память кроме себя любимого соответственно. Далее все процессы оживляются (раньше еще в Menuet была установка процессу "зомби" статуса, не смотрел в код Колибри как оно есть сейчас) и включается планировщик. Главный вирус нетерпеливо елозит манипулятором по столу...
Вот как-то так.
Знаю что сумбурно и неполно, но это всего лишь идейная часть с руководством к действиям. Сами действия собственно придется продумывать.
Слишком накладно на диск записывать весь объём ОЗУ...4 Гб записать на винчестер ...сколько это минут займёт?...а потом их же считать придётся...сколько займёт времени загрузка?...тут нужен более хитрый способ...
Надо писать лишь области памяти, реально занятые чем-то полезным (ядром системы, приложениями и т.п.). В том случае, если занята вся память, придётся писать всё -- от этого не уйдёшь.
Не знаю - Виндовс файл почти во всю память создает, за исключением того куска который восстановлением потом занимается. Сколько при этом записывается данных неизвестно, но размер выделен всегда под максимальный объем.
А насчет скорости записи - даже если скорость будет 30 Мб/с, то запись будет не более 2,5 минут. Надо понимать, что монопольная работа с дисковым устройством - это достаточно быстрая и эффективная операция. Хотя разумеется записывать только используемые области памяти более эффективно и быстро.
А насчет скорости записи - даже если скорость будет 30 Мб/с, то запись будет не более 2,5 минут. Надо понимать, что монопольная работа с дисковым устройством - это достаточно быстрая и эффективная операция. Хотя разумеется записывать только используемые области памяти более эффективно и быстро.
Mario
Суспендить дрова, а потом восстанавливать их состояние то ещё удовольствие.
Суспендить дрова, а потом восстанавливать их состояние то ещё удовольствие.
А никто не обещал, что будет легко.
Что бы не сливать всю память надо придумать способ её архивировать...похожие данные помечать и писать только 1 раз...ну это как будущее суспендиьния..
popovpa, отправь свою винду в спящий режим и загрузись из Колибри. Увидишь в корне диска с виндой красивенький файлик, размером точно с твою оперативную память. Такие дела...
Вообще-то он там виден и без перезагрузки. Надо только отображение скрытых и системных файлов включить в проводнике.
Я знаю про этот файл...но ведь идея про сжатие просто отличная...применять например 7zip...ну или что-то своё...но первая реализация должна конечно же быть самой простой...зато я про такой способ что-то ни разу не слышал...
Хотя тут просто сжатие не очень подойдёт...тут надо реализовывать алгоритм под конкретную задачу...нам ведь не надо фото или музыку сжимать...у нас на сколько я понимаю только числа?
Хотя тут просто сжатие не очень подойдёт...тут надо реализовывать алгоритм под конкретную задачу...нам ведь не надо фото или музыку сжимать...у нас на сколько я понимаю только числа?
Слишком большой расход времени.
Who is online
Users browsing this forum: No registered users and 2 guests