свопинг - стоит ли его делать?

Тема в разделе "WASM.ASSEMBLER", создана пользователем Narkomanius, 9 дек 2004.

  1. Narkomanius

    Narkomanius New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2003
    Сообщения:
    144
    в процессе написания оси возникла проблемма - если сделать своппинг на уровне ядра то сильно усложнится раздатчик памяти ядра, а он будет юзаться в массовом порядке на каждом сискалле. усложнения фактически отложат выпуск первого релиза месяца на 2.



    поэтому решил спросить совета - как поступить?

    вообще не вводить свопинг в ядро?

    помучаться с ним но сделать что нибудь?

    сделать своппинг на уровне процессов - если ядро выяснит что выделить памяти никак, оно попробует у запрашивающего процесса сбросить страничку которая помечена как кэш диска(например) и заберет её себе(а) либо не будет подкалывать процесс, а вернет ему E_NOMEM отчего процесс обратится к системному процессу с просьбой поискать жертву для выброса из памяти, после чего ей пошлют сигнал почистить совю память(может быть даже со списком страниц которые давно не юзались)?
     
  2. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Лучьше на уровне ядра, на мой взгляд.

    Но свопинг имеет смысл только при написании мощьной ОС, если Вы просто пробуете свои силы, то возится с ним не стоит.
     
  3. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Narkomanius

    Моё мнение ты знаешь.



    Своппинг - это механизм виртуализации памяти.



    Я считаю, что если предоставить хорошие средства для работы с физической памятью, то можно добиться более высокой скорости работы, более экономичного использования памяти, чем при виртуализации...



    Среди таких средств предположительно должны быть:

    -- механизм перераспределения (попросту говоря, отбирания) физической памяти

    -- возможность читать\писать флаги страниц Accessed и Present

    -- способ перехватывать свои собственные page fault



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



    А своппинг "общего назначения" можно будет вынести вообще на библиотечный уровень...



    Таким, образом своппинг не нужен. Тем более в ядре...
     
  4. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    против своппинга:

    1.своппинг предполагает внешний носитель (ужастно медленный). ос, зашитая в биос (я понял, именно это ты и пишешь), может работать на бездисковой машине (грузить приложения по сети или с дискеты, или из флэшки) - это преимущество!

    2.лишний гемморой, особенно если приложения будут небольшие, а так оно и будет поначалу как минимум.
     
  5. Narkomanius

    Narkomanius New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2003
    Сообщения:
    144
    сенкс. свопингу каюк.