Did you know? · Science & Medicine

Harry Markowitz developed buddy memory allocation

Harry Markowitz developed the buddy memory allocation method, included in the first version of his SIMSCRIPT language, a technique for managing computer memory.

Person
Harry Markowitz
Lived
1927–2023
Field
Financial economics
From
American

The story

In the early 1960s Harry Markowitz returned to the RAND Corporation to build SIMSCRIPT, a programming language that let people describe a system to be simulated instead of spelling out every action the computer must take. Simulation programs of this kind constantly create and discard data as the modelled system changes, so they need an efficient way to hand out pieces of computer memory and take them back.

Markowitz's answer was the buddy system. In this method memory is divided into blocks whose sizes are powers of two. When a program needs space and no block of the right size is free, a larger block is split into two equal halves, and the two halves become each other's "buddy". The splitting continues until a block of suitable size is available. When a block is released and its buddy is also free, the two are merged back into the larger block they came from, so memory does not stay broken into small pieces.

According to the computer scientist Donald Knuth, the buddy system was invented in 1963 by Harry Markowitz, and it was first described in print by Kenneth C. Knowlton in 1965. It was included in the first version of SIMSCRIPT. Knuth later described a version of the algorithm in detail in the first volume of his classic work, The Art of Computer Programming.

The method has lasted because it is relatively easy to implement and keeps the overhead of tracking memory low. Compared with simpler techniques it causes little external fragmentation, the scattering of free memory into unusable gaps. Its main weakness, wasted space inside blocks that are larger than needed, can be reduced by layering a finer-grained allocator on top of it. The Linux kernel uses a modified buddy system to manage memory today.

It was another example of Markowitz's habit of turning a practical obstacle into a general technique. The Operations Research Society of America and the Institute of Management Sciences recognised this breadth in 1989, when they awarded him the John von Neumann Theory Prize for his work on portfolio theory, sparse matrix techniques and SIMSCRIPT.

Why it matters

A memory technique Markowitz devised for his simulation language in 1963 is still at work inside modern operating systems, including Linux.

About Harry Markowitz

Chicago grocer’s son whose 1952 paper ‘Portfolio Selection’ founded modern portfolio theory, the mathematics of diversification behind how the world invests. Nobel 1990.

Read the full profile
Harry Markowitz
1927–2023 · Financial economics
View profile →

More about Harry Markowitz

Sources

Another act of tikkun olam. This is part of tikkun olam, the Jewish idea of repairing the world, and every one of us can add to it.

More in Science & Medicine

On kindness & the treatment of others
“A friend is devoted at all times; a brother is born to share adversity.”
Proverbs 17:17