User Tag List

Результаты опроса: Сборка мусора на Speccy?

Голосовавшие
28. Вы ещё не участвовали в этом опросе
  • Да

    3 10.71%
  • Нет

    25 89.29%
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 94

Тема: Сборка мусора

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    какая память больше не нужна
    как ты предполагаешь определять какая память больше не нужна?

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

  4. #3

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking Мне не понятно

    как собирается автор внедрять методы языков высокого уровня на ZX, а так же чем не устраивают стандартные способы разделения памяти?
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  5. #4

    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    когда программа самоликвидировалась, необходимо освободить всю принадлежащую ей память
    это безусловно нужно, но довольно далеко от темы данной ветки

  7. #6

    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как насчет скорости ?

    Ну, на спеке так не развернешься, как пишут... В любом случае кодер знает сколько памяти сожрет его прога. Значит и в запросах можно оперировать реальными числами. Т.е.
    1. говоришь, что надо тебе 3х16кб страницы.
    2. Ось говорит: на и вешает на эти 3 страницы флажок занято. при этом дает тебе номерок
    3. говоришь "у меня всё"
    и даешь ей номерок и код "у меня всё"
    4. ось говорит ОК и снимает флажки занято.

    dll

    принцип тот же, нужен тебе dll:

    1. берешь список процессов (программ/модулей.. как угодно) оси ищешь название/код (версию) dll (а как еще ?)
    2.нету такого. Ага. говришь оси нужна еще скжаем страница под эту dll.
    3. ось выдает страницу.
    4. грузишь dll туда но в список процессов вносишь ее код/ имя.
    сам можешь закрываться, dll останется, но!

    на таких ресурсах вешать 1 байт - колво пользующихся. Т.е. 1 прога юзает dll -1 ,3 юзают - 3. никто не юзает - 0 но из списка убирать ресурс только тогда, когда его страницу кому-то отдали.

    А вот теперь и сбощик мусора: нет его как такового. Он просто должен в первую очередь выдавать память из под приложений, а если ее не хватает, то из под неиспольз. dll. И обновлять список приложений, ресурсов (процессов) чтоб не юзались ресурсы.

    Такой вот простой менеджер памяти с уборкой мусора. Ну а теперь как реализовать реально хотя бы такое... И сколько оно будет жрать ресурсов само по себе ?

  8. #7

    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vitamin! Ты тут? А ну говори, что нибудь по этому поводу! Ты ж этим занимался

  9. #8

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В теме "Менеджер памяти для многозадачной ОС" я постил спецификацию на менеджер памяти... Ее, походу, так никто и не прочитал - там есть многие вещи (копирование страниц, разыменование указателей). Короче многие пункты этой спецификации пересекаются с обсуждаемыми тут вопросами.
    Если не затруднит - всетаки прочитайте, обсудим.

  10. #9

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    Не стоит смеяться. Это очень полезный вопрос. В связи с перекладыванием функций выделения памяти на ось, туда же падает освобождение памяти. Во всяком случае, когда программа самоликвидировалась, необходимо освободить всю принадлежащую ей память.
    Здесь имеет место другое: подразумевается что указанный ЯВУ работает поверх нормальной системы.
    А тогда сам вопрос отпадает.
    С другой стороны, если считать что в этом смысле ЯВУ заменяет собой систему, то получается ещё лучше: вариации на тему "хотел написать оболочку, написал ОСь"
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  11. #10

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post

    Цитата Сообщение от elf/2
    как ты предполагаешь определять какая память больше не нужна?

    для сборки мусора необходимо определить когда та или иная переменная/объект вышла/ел из области видимости. сие не представляется возможным по причине отсутсвия понятия переменной/объекта в используемых языках программировая (асм)
    Динамическое управление памятью заключается в том, что имеется большая область памяти, называемая "куча". Программы могут динамически запрашивать память нужного им размера, при этом им выдаётся указатель на выделенную в куче память.

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

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

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

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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