
Понимание распределения памяти ядра с использованием систем Buddy и Slab
11 марта 2023 г.* Знаете ли вы, как выделить память ядра? * Какова идеальная стратегия распределения памяти ядра? * Как можно эффективно использовать систему друзей в ОС?
Если все эти вопросы, связанные с распределением памяти, волнуют вас, то этот пост в блоге идеально подходит для вас.
Системы Buddy в ОС и slab-системы — это два эффективных метода, используемых для выделения свободной памяти в процессах ядра. Поскольку ядро рекламируется как предлагающее физическую непрерывную память, ему часто требуются области памяти для выделения памяти или минимизации внешней фрагментации.
Именно тогда появляются концепции партнерских систем и слэб-систем!
Выделение памяти ядра
Во-первых, мы должны рассмотреть, почему в первую очередь необходимо выделять память ядра. Когда процесс запускается, ему может потребоваться дополнительная память. Хотя страницы будут выделяться из списка фреймов страниц, поддерживаемых ядром, в основном это свободные страницы.
Такой тип памяти обычно выделяется из пула памяти для выполнения процесса в обычном режиме, потому что:
* Запрошенная память в структуре данных может различаться по размеру или страницам. Таким образом, память должна использоваться консервативно из-за фрагментации. Это важно, так как операционная система может не использовать код ядра для систем подкачки.
* Страницы, которые могут быть выделены, могут не храниться в непрерывной физической памяти. Однако некоторые аппаратные устройства могут напрямую взаимодействовать с физической памятью. Хотя для этого также может потребоваться память, которая находится на страницах физической памяти.
Поэтому необходимо управлять памятью, задействованной в процессах ядра. Вот почему мы обычно следуем двум стратегиям: системе друзей в ОС и системе плит.
Система друзей в ОС
Это идеальная концепция распределения памяти, которая делит вашу память на две степени. Он пытается удовлетворить ваш запрос памяти, разделяя память и используя ее на равные половины, чтобы увидеть, где она подходит лучше всего.
Предположим, что ваша память имеет размер 2m. Размер этого процесса обозначается P.
В случае 2m-1 < P<= 2m, вы можете рассчитать память в своем процессе. В противном случае мы можем выделить память пополам. Если он не удовлетворяет заданному условию, повторяйте шаги до тех пор, пока не будет выполнено указанное выше условие.
Пример:
Нам дают систему buddy с физическим адресом, 256 КБ. Затем нам нужно найти размер раздела 36 КБ.
Поскольку 36 КБ больше 32 КБ, но меньше доступных 64 КБ. Таким образом, для хранения процесса подходит 64 КБ памяти.
Важность системы друзей в ОС
Система друзей в вашей ОС крайне необходима по следующим причинам:
* Существует ограничение на количество заданных процессов в статическом позиционировании. Места будет недостаточно, если будет большая разница в размере процесса и размере раздела.
* Динамическое программирование считается более сложным, поскольку размер раздела изменяется при выделении памяти новым процессам.
* Система Buddy каким-то образом существует между динамическим и статическим программированием. Хотя поддержка может быть ограничена, нам необходимо объединить блоки памяти
Типы систем друзей
Существуют различные типы систем напарников, которые вы должны принять во внимание.
Они:
* Двоичная партнерская система: в этой партнерской системе блоки памяти делятся на равные части, чтобы удовлетворить рекуррентному соотношению Li = Li - 1 + Li - 1
* Система друзей Фибоначчи: использует блоки размером 16, 32, 48, 80, 128 и 208 байт. Каждый блок будет суммой двух предшествующих ему блоков.
* Взвешенная система друзей: здесь блок памяти размером 2 КБ +2 разделен на блоки размером 2 КБ и 3,2 КБ
Система перекрытий
Второй стратегией, которая обычно применяется для выделения памяти ядра, является slab-система. Блок состоит из одной или нескольких смежных страниц. Например; будет отдельный кеш для структур данных, файловых объектов, семафоров и т.д.
Возьмем другой пример двух ядер по 3 КБ с тремя объектами размером 7 КБ. Распределение плит использует уловы для хранения объекта. Они отмечены как свободные и будут использоваться для размещения объектов.
В этом случае плита размером 12 КБ будет хранить как минимум 6 объектов размером 2 КБ, причем все они будут помечены как свободные. Новые объекты будут помечены для необходимой структуры данных. Запрос ядра в распределителе slab описывает описание процесса. В системе Linux дескриптор процесса будет иметь размер struct с максимальным объемом памяти 1,7 КБ. Это создаст несколько новых задач для объектов этого кеша.
Этот кеш сможет выполнять объекты, выделенные в плите, чтобы пометить их как свободные.
В Linux данный блок будет иметь три состояния:
- Полный: все объекты здесь будут помечены как используемые.
- Пусто: все объекты в блокноте отмечены как свободные.
- Частично: в этом случае плита состоит из всех свободных или используемых объектов.
Основная цель распределителя плит будет заключаться в удовлетворении запросов, заданных в частичной плите. Если ничего из этого не существует, свободный объект будет назначен вашей пустой плите.
Дополнительное обучение: аномалия Белади в ОС
Еще одно важное понятие, которое вам следует знать, если вы работаете с операционной системой, – это Аномалия Белади в ОС. Это рассматривается как явление, которое помогает увеличить количество кадров страниц, чтобы увеличить количество ошибок страниц в вашей памяти.
Подведение итогов
Я надеюсь, что с помощью этого руководства вы получили глубокое понимание системы друзей в ОС и системы плит для выделить память ядра. Оставайтесь в этом блоге и оборудуйте свой банк знаний.
н
Оригинал
Recent Post
-
Небольшие коммиты, большие победы: как атомные изменения преобразуют жизнь разработчика
20 августа 2025 г. -
Начало работы с государственным управлением в Still.js
20 августа 2025 г. -
Однородность и нормальность: как проверить ваши экспериментальные данные
20 августа 2025 г. -
Революционизация QA: Мой путь к созданию уникального аудита, который сокращает затраты и повышает эффективность
20 августа 2025 г. -
Больше нет «корабля и молитвы»: тестирование биллинговых систем SaaS с тестовыми часами Playwright & Stripe
20 августа 2025 г.
Categories
- Python
- blockchain
- web
- hackernoon
- вычисления
- вычислительные компоненты
- цифровой дом
- игры
- аудио
- домашний кинотеатр
- Интернет
- Мобильные вычисления
- сеть
- фотосъемка видео
- портативные устройства
- программного обеспечения
- телефон и связь
- телевидение
- видео
- мир технологий
- умные гиды
- облако
- искусственный интеллект
- се
- Samsung
- умные города
- digitaltrends
- отели
- Startups
- Venture
- Crypto
- Apps
- безопасность
- техника и работа
- cxo
- мобильность
- разработчик
- 5г
- майкрософт
- инновации
- Права и свободы
- Законодательство и право
- Политика и общество
- Космическая промышленность
- Информационные технологии
- Технологии
- Образование
- Научные исследования
- Автомобильная промышленность
- Программная инженерия
- IT и технологии
- Веб-разработка
- Программирование
- Автоматизация
- Карьерный рост
- Программирование и анализ данных
- Трудоустройство
- Политика
- Искусственный интеллект
- ИТ-технологии
- Программное обеспечение
- Экологическая политика
- Образование и рынок труда
- Политика и право
- Microsoft Teams и SharePoint
- Информационная безопасность
- Кибербезопасность
- Налоги
- Образование и карьера
- Интернет и технологии
- Технологии, Государственные услуги
- Политика и технологии
- Разработка программного обеспечения
- Разработка ПО
- Машинное обучение
- Налогообложение, технологии, открытый исходный код
- Финансы и налоги
- Технологии, Интернет, Экология
- Интернет, безопасность
- Технологии и политика
- Операционные системы
- Профессиональная разработка
- Технологии, Безопасность
- Интернет и общество
- Финансовая индустрия
- Налоговый учёт
- Общественное здравоохранение
- Технологическая отрасль
- Юриспруденция
- Технологии и государство
- Здоровье и фитнес
- IT-инфраструктура
- Технологии и ИИ
- Здравоохранение
- IT
- Технологии, Экономика
- Музыка и технологии
- Здоровье и питание
- IT и безопасность
- Бизнес и предпринимательство
- Технологии, Программное обеспечение
- Технологии и инновации
- Технологии, данные, этика
- Технологии и Интернет
- Технологии и SaaS
- Медицина и здравоохранение
- Онлайн-видеосервисы
- Финансы и технологии
- Чтение и саморазвитие
- Экономика и бизнес
- Безопасность данных
- Удаленная работа
- Авиация и технологии
- Технологии, Игры
- Энергетика
- Социальные сети, безопасность, технологии
- Саморазвитие
- Безопасность информации
- Бизнес и карьера
- Технологии и отношения
- Игровая индустрия
- Компьютерная индустрия
- Математика, Искусственный интеллект
- Наука и технологии
- Технологии и безопасность
- Технологии, Удаленная работа, Бизнес
- Видеоигры
- Технологии, Искусственный интеллект, Этика
- Технологии, социальные сети, 6G
- Технологии, Программирование, AI, Разработка ПО
- Программирование, Разработка ПО, Технологии
- Животные
- Технологии, Искусственный интеллект
- Программирование, карьера, технологии, обучение
- Бизнес и технологии
- Технологии, Безопасность данных
- Астрономия и физика
- Продуктивность, личное развитие
- Медиа и Технологии
- Программирование и Искусственный Интеллект
- Социальные сети
- Политика и экономика
- Технологии, Медицина, Искусственный интеллект
- Технологии и управление
- Космос и астрономия
- Общество и политика
- Космические исследования
- Веб-дизайн
- Искусственный интеллект и безопасность данных
- Технологии, Безопасность, Конфиденциальность
- Экологическая проблема
- Технологии, Погода
- Авиация
- Транспортная сфера
- Технологии и бизнес
- Игровая промышленность
- Телевидение и реклама
- Аналитика данных
- Технологии и кибербезопасность
- Маркетинг
- Технологии и гаджеты
- Технологии, Авиация, Инновации
- Финансы и инвестиции
- Технологии и общество
- Рыночный анализ
- Космология
- Данные и бизнес
- IT и программирование
- Технологии и право
- Программирование и разработка
- Астрофизика
- Медицинские технологии
- Авиационная промышленность
- Технологии и искусственный интеллект
- Генетическая инженерия
- Бизнес и инвестиции
- Компьютерная промышленность
- Психология и социология
- Образование и технологии
- Рынок труда
- Технологии, Стартапы
- Технологии, Приватность, Чтение
- Маркетинг и продажи
- Виртуальная реальность
- Технологии, Смартфоны, Маркетинг
- Технологии, Бизнес, Личностный рост
- Экологические проблемы
- Экономика и технологии
- IT и карьера
- Интернет и безопасность
- Разработка и технологии
- Биотехнологии
- Интернет-магазины, кибербезопасность
- Финансы
- Безопасность и технологии
- Экономика
- Защита данных
- Data Science
- Карьера и работа
- Финансовый успех, мошенничество, маркетинг
- Безопасность
- Экология
- Космическая индустрия
- Программирование, Python, Обучение
- Технологии искусственного интеллекта
- Технологии, Дизайн, iOS
- Программирование, DevOps, Kubernetes
- Социальные сети и пропаганда
- Корпоративная этика
- Управление IT-инфраструктурой
- Здоровье и медицина
- Медицина
- Медицинская промышленность
- Разработка и дизайн
- Искусственный интеллект, Диагностика систем
- Образование и психология
- Технологии, Автомобильная промышленность
- Автомобили и путешествия
- Астрономия и космология
- Программирование и технологии
- IT, работа в офисе, эмоциональный интеллект
- Компьютерная техника
- Здоровье и благополучие
- Управление персоналом
- Политика и управление
- Бизнес и экономика
- Социальные сети, Пропаганда, Информационная безопасность
- Технологии и автоматизация
- Геймдизайн
- Экология и технологии
- CRM-системы, IT-инфраструктура
- Права человека
- Цифровая цензура, свобода слова, технологии
- Технологии, Искусственный интеллект, Работа
- Наука о данных
- Астрономия, Наука
- Интернет и цифровые технологии
- Технологии, управление
- Интернет и связь
- Технологии и конфиденциальность
- Интернет и свобода слова
- Психология и социальные науки
- Книги и литература
- Работа и карьера
- Финансовые технологии
- Психология и саморазвитие
- IT, программирование, сети
- Технологии, Видеоигры
- Экология и энергетика
- Космонавтика
- Медицина и технологии
- Игры и развлечения
- Музыкальная индустрия
- Логистика и складирование
- Бизнес и финансы
- Экология и окружающая среда
- Правозащита
- Социальные сети и дезинформация
- Технологии и рынок труда
- Технологии, Искусственный интеллект, Рынок труда
- Технологии и будущее
- Медицина и здоровье
- Социальные медиа
- Экология, политика, общество
- Экономика и Финансы
- Разработка игр
- Пропаганда и дезинформация
- Медицинские исследования
- Онлайн-знакомства
- Политика и СМИ
- Энергетика и электромобили
- Климатические изменения
- Технологии, Рынок труда
- IT и управление данными
- Безопасность и кибербезопасность
- Интернет-технологии
- Психология и личностное развитие
- Технологии, Мессенджеры
- Цифровые технологии
- Здоровье и самосовершенствование
- Технологии и AI
- Технологии и спорт
- IT, Разработка программного обеспечения
- Экология и климат
- Космос и технологии
- Юридическая сфера
- Безопасность в интернете
- Программирование, Искусственный Интеллект, Качество ПО
- Технологии и мессенджеры
- Социальная справедливость
- Технологическая индустрия
- Личностное развитие, Time-менеджмент, Психология
- Бизнес и менеджмент
- Технологии, Микросхемы, Автономные системы
- Фриланс и предпринимательство
- Социальные сети и искусственный интеллект
- Криминальные дела
- Социальные сети, Маркетинг
- Энергетика и экология
- Технологии, Искусственный Интеллект, Полиция
- Программирование, Искусственный интеллект, Рынок труда
- Социальные сети, дезинформация, анализ данных
- Потребительские права
- Образование и наука
- Технологии и правосудие
- Технологии, Безопасность, Автомобили
- Энергетика и окружающая среда
- Личностное развитие
- Технологии и экономика
- Медиа и коммуникации
- Миграция и иммиграция
- Личностный рост
- Налоговая система
- Медиа и телевидение
- Интернет и телекоммуникации
- Технологии, Кибербезопасность
- Здоровье
- Социальные сети и карьера
- Политика и инфраструктура
- Предпринимательство
- Промышленность программного обеспечения
- СМИ и коммуникации
- Медиа и Общество
- Медицина и генетика
- Веб-разработка и дизайн
- Технологии, процессоры
- IT-индустрия
- Кинопроизводство и технологии
- Транспорт
- Текстовый анализ
- Технологии, дизайн интерфейсов
- Офисные приложения
- Технологии, Онлайн-сервисы
- Медицина и биотехнологии
- Общество и технологии
- Экономика и рынок труда
- Искусственный интеллект, программирование, аналитика
- Технологии, следствие
- Сетевые технологии
- Технологии и веб-разработка
- Программирование, Обучение, Практика
- Коммуникации и ИТ
- Технологии, Карьера, Экономика
- Технологии и транспорт
- Здравоохранение и медицина
- Технологии, Государственное управление
- IT-безопасность
- IT и разработка
- Финансы и экономика
- Социальные сети, Общество, Сообщества
- IT-разработка
- СМИ и политика
- Конфиденциальность и безопасность
- Экономика и политика
- Технологии и общественная жизнь
- Бизнес и этика
- Безопасность и защита информации
- Технологии, бизнес
- Интернет и цензура
- Государственное регулирование
- Игры, Технологии
- Технологии и оптимизация
- Технологии ИИ и машинного обучения
- Технологии, IT, карьера
- IT и программное обеспечение
- Право и преступность
- Криминал и Правоохранительные Органы
- Технологии и энергетика
- Нефтяная промышленность
- Социальные конфликты
- Преступность и безопасность
- Таможенная очистка
- Медиа и журналистика
- Технологии и разработка приложений
- Телекоммуникации
- Консалтинг и управление
- Управление человеческими ресурсами
- Онлайн-контент
- Психология и психотерапия
- Морская отрасль
- Психология и технологии
- Социальные проблемы
- Маркетинг и реклама
- Политика и власть
- Экономика и торговля
- Карьера и развитие
- Продуктивность и Управление Временем
- Технологии, Искусственный интеллект, Реклама
- Окружающая среда
- Здоровье и технологии
- Бытовая химия
- Правовая информация
- Юстиция
- Технологии и экология
- Социальные сети и безопасность
- Базы данных
- Политика и государственное управление
- Интернет и социальные сети
- Индустрия IT
- Технологии и программное обеспечение
- История и искусственный интеллект
- Рестораны и обслуживание
- Технологии и программирование
- Социология
- Телевидение и СМИ
- Психология
- Политика и бизнес
- Мобильные устройства
- Технологии и развлечения
- Экология и охрана окружающей среды
- Маркетинг и брендинг
- Медицинская индустрия
- Кибербезопасность и технологии
- Социальные сети и политика
- Развлечения
- ИТ и автоматизация
- Криптовалюты и блокчейн
- История и идеология
- Медицина и политика
- Личная жизнь миллиардеров
- Образование и Политика
- Туризм и отдых
- Психология и искусственный интеллект
- Удаленная работа и производительность
- Выживание
- Управление командами
- Разработка
- Международная торговля
- Корпоративная ответственность
- Социальные сети и общество
- Управление серверами
- Индустрия компьютерных игр
- Политика и климат
- Онлайн-игры
- Медицинская отрасль
- Искусственный интеллект и технологии
- Религия и мораль
- Путешествия
- Социальные сети и информация
- Технологии и медиа
- Технологии и свобода
- Электронная коммерция
- Бизнес и управление
- Психическое здоровье и технологии
- Технологии и устойчивое развитие
- Технологии и социальные сети
- Профессии
- Экономика и промышленность
- Технологии и трудоустройство
- Иммиграционная политика
- Продуктивность и фокус
- Технологии и робототехника
- Свобода слова
- Психология и власть
- Социальные сети и онлайн-платформы
- Технологии и Права Человека