タグ

ブックマーク / zenn.dev/junjunjunjun (2)

  • Linuxのメモリ割り当てアルゴリズムを追う Slab Allocation編

    はじめに この記事はコネヒトAdvent Calendar2023の24日目の記事です。 前回の記事では、Linuxの主要なメモリ割り当てアルゴリズムの一つであるBuddy Memory Allocationについて詳しく紹介しました。 記事では、Linuxで使用されているもう一つの重要なメモリ割り当てアルゴリズムであるSlab Allocationに焦点を当てて、その仕組みについて解説していきたいと思います。 ↓ 前編の記事です 前提 前編のおさらい 前編では、Buddy Memory Allocationの基原理と仕組みについて紹介しました。 このアルゴリズムは、メモリブロックの割り当てと解放を2の冪乗単位で行うことにより、外部フラグメンテーションの発生を削減できると同時に、割り当てと解放のプロセスを高速化できるというものでした。 ビットマップ方式とBuddy Memory All

    Linuxのメモリ割り当てアルゴリズムを追う Slab Allocation編
  • Linuxのメモリ割り当てアルゴリズムを追う Buddy Memory Allocation編

    はじめに この記事はコネヒトAdvent Calendar2023の5日目の記事です。 世界中で広く使われているLinuxがどのようなメモリ割り当てアルゴリズムを使って物理メモリを管理しているのか、その仕組みには以前から興味がありました。 そこで、Linuxでメモリ割り当てアルゴリズムとして使用されている、Buddy Memory AllocationとSlab Allocationを自作しているOSに実装したのですが、日語の記事や情報があまりなく実装するのに結構時間がかかってしまいました。(両者とも日語版Wikipediaにすら載っていませんでした)なので、日語の情報が少ないのならばこの機会に残しておこうと思い、この記事を書くことにしました。 記事では、Buddy Memory Allocationに焦点を当て、その仕組みを紹介していきたいと思います。 ↓ 後編の記事です 前提

    Linuxのメモリ割り当てアルゴリズムを追う Buddy Memory Allocation編
  • 1