Имхо, постановка задачи выглядит одновременно чересчур абстрактно но вместе с тем чересчур специализировано. "Я напишу вам такую ось которая будет практически мгновенно делать снапшоты для всех программ для восстановления в случае сбоя..." С трудом представляю себе когда нужно, ну прямо-таки очень нужно восстанавливать все программы. Если какая-то задача нуждается в таком то это только одна задача и можно было попробовать новый интерфейс в рамках существующих осей где можно позволить любые отношения памяти процесса к памяти снапшота и так далее. Это можно было бы сделать абстрактно. Типа я захожу в консоль и определяю что данный процесс нуждается в этом и ставлю разные параметры типа частоты обновления и так далее. Если задача стоит о критически важных процессах типа (наверное) как на самолетах то там строго один процесс и ничего лишнего и - как уже сказали - батарея бесперебойников и можно дублировать на нескольких процессорах одновременно. Можно также создать апи чтобы задача могла сама сказать что как и в какой последовательности снапшотить. И еще раз - я не могу себе представить задачек которые реально нуждаются в таком. Закачка больших файлов? Нормальные качалки сами ведут журналы и потреяют совсем немного. Очень сложные долгие матрасчеты, моделирование, брут? Также уместно сначала требовать скидывать промежуточные данные задачи в лог, ну в крайнем случае как я уже сказал - спецапи которое в теневом режиме заботиться об этом (возможно подгрузит драйвер если нужно).
Если произойдёт сбой, не удастся сохранить состояние процессора. Соответственно, восстановить работу программ станет невозможно. Либо нужно сохранять его состояние для всех потоков ежетактно.
Z3N старт граф оболочки и дебуг консоль в жит режиме 9. виден дис-asm, гас из жита, адреса переменных, типы, прочая внутренняя инфа по мере житанья
БЫло такое еще на древнем Spectrum и называлась Magic Button, сбрасывало снэпшот сосотояния, памяти и регистры на дискетку, потом можно было загрузиться с прерванного сосотояния. Фантома не смотрел, прочитал тока, что это наследник BeOS, а сталобыть и Amiga Rulez & Wintel Must Die
qqwe Что такое п9/инф? J0E Ага, не сейчас это не просто потомки, а дети лейтенанта Шмидта Каждый считает долгом упомянуть своё родство с беос, имя-то на слуху! KeSqueer К сожалению не верно, восстанавливается система на момент последнего снапшота, а во время этого снапшота можно сохранить состояние процессора. Кстати, там единое адресное пространство... Насчёт ide и компиляторов. Ну, не знаю. Мне студия + VisualAssist больше всего нравиться. Хотел бы пересесть на что-нибудь бесплатное, но ничего подобного не видел. Нравится подсветка локальных переменных и акронимы (Напечатать gfn вместо GetFileName(жутко удобно!)). Если кто-нибудь знает что-то подобное и бесплатное, то дайте ссылки А код у студии более понятный имхо. Гцц делает странный код... манипуляции со стеком какие-то странные. И даже не знаю что быстрее ясно как у студии или завороты у гцц.
Сделает он ОС. Это не так трудно. Вопрос в том, почему не сделал? А то что сбрасывает всё на диск. Ну так это просто надо заставить писать программистов маленькие программы. И второе чтобы программа сообщала что можно сбрасывать, а с чем повременить. Работа аналогична сборщику мусора.
Pavia Нельзя временить. Автор прямо пишет, что для программиста всё должно быть прозрачно. Программы на яве не жрущие тонны памяти? У меня javaw.exe отжирает 60 мегов сходу на одну программу.
Z3N, пробовал Eclipse + CDT? cupuyc сам себе противоречит. Либо попросту не знает элементарных вещей. Например, что 10 миллисекунд чтения/записи порции данных на диск - это ЖД должен быть только-только с прилавка. Обычно же запись может длиться и 50, и 200 миллисекунд. И то, что при вибрациях скорость чтения/записи падает тоже полезно бы знать.
да это все понятно, не понятно пока как он будет это реализовывать с учетом взаимоисключающих требований к производительности (чтобы не нужно было идти спать после нажатия Magic Button ) и надежности. наверное это возможно, если саму концепцию многозадачной ОС изменить. А если опираться на общепринятые подходы реализации и принципы архитектуры то добиться "нормальной" производительности с надежностью не получится. ПС. "После перезапуска системы она всё равно восстановится в том виде, который имела за несколько секунд до спонтанного выключения." - интэрэсно, а как гражданин определит, что до спонтанного выключения осталось несколько секунд? =))))
в рамках одного процесса/приложения блокировки может быть и не всегда затратны, но в целом для операционной системы сам механизм lock/unlock (даже без ожиданий) довольно дорогой. грамотные люди вообще стараются так спроектировать данные, чтобы вообще обойтись без блокировок. так что блокировки это всяко зло - это и ресурсы, и производительность, и потенциально опасный код. ну и еще сложный для дальнейшего мейнтенанс (расширение функциональности, модификация, отладка).
SadKo Просто эклипс пробовал, СДТ нет. Спасибо, качаю.... NeuronViking Это не всегда зло, но всегда где-то близко от зла Просто туда где много денег всегда притягивает людей которых интересуют только деньги... к сожалению. Х(
Phantom OS - идейно правильная операционная система. В будущем разница между оперативной памятью и жестким диском сотрется. Появятся модули, которые будут иметь очень высокую скорость доступа, но смогут сохранять состояние после отключения энергии. Кому нужны эти 30-60 секунд загрузки? Каждый раз запускать все заново? Я уже давно использую только гибернацию. Компьютер стартует за 2 секунды. Принципиальных теоретических ограничений на реализацию принципа работы системы без перезагрузки нет и сейчас. Можно не отключать питание от оперативной памяти. (Сбрасывать на диск только в случае сбоя в сети.) Перезагрузка системы в будущем станет редкой процедурой эквивалентной переустановке системы.
Z3N А вы значит менеджер? branvi У SSD проблемы! Чем меньше объем ячейки тем она не стабильнее себя ведет. А по поводу памяти. Сейчас используется более дешёвая память SDRAM. На конденсаторах с которых как известно стекает заряд. Поэтому в такой памяти предусмотрен механизм обновления данных. Так что в случае сбоя может оказаться что уже нечего сбрасывать. Рост объемов памяти, жестких дисков соизмерим с ростом информации. Хотя последняя как отмечают аналитике растет больше. А по свой лени я не закрывают программы. Поэтому в памяти у меня сидит более 500мб с условием скорости HDD 60мб/с будет грузиться более 9 секунд. Вывод надо бороться с ленью. И минимизировать все затраты.
branvi, вот вы предлагаете питать память от аккумулятора. А что мешает поставить UPS. Это же, по сути, аналогичное решение, имеющее ещё и дополнительное преимущество: не надо рестартовать процессор.
branvi Без перезагрузки нельзя обновить основные компоненты системы. Апдейты выходят раз в неделю. Раз в неделю, конечно, можно и перезагрузиться, но, всё же, не стоит сравнивать это с переустановкой. А так - да, следует смотреть в будущее при разработке.
KeSqueer касательно апдейтов - в erlang уже давно существует hot code swap, обновление кода на рабочей системе. хотя, это требует от системы некоторых условий, вроде отсутствия shared state и иммутабельности.