<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fragmentation on P01NT</title><link>https://outofsrvc.github.io/en/tags/fragmentation/</link><description>Recent content in Fragmentation on P01NT</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 26 Aug 2026 00:45:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/en/tags/fragmentation/index.xml" rel="self" type="application/rss+xml"/><item><title>Memory Management</title><link>https://outofsrvc.github.io/en/os/os-0x5/</link><pubDate>Wed, 26 Aug 2026 00:45:00 +0300</pubDate><guid>https://outofsrvc.github.io/en/os/os-0x5/</guid><description>&lt;p>بسم الله&lt;/p>
&lt;p>After talking about scheduling in the &lt;a href="../os-0x4/">previous lesson&lt;/a>, today we move to one of the pillars of operating systems: main memory management. We already touched a practical side of it in the &lt;a href="https://outofsrvc.github.io/en/cworkshop/virtual-memory-stack-vs-heap/">virtual memory lesson&lt;/a> of the C workshop; this lesson is the theoretical foundation it all rests on.&lt;/p>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>A modern OS must allow large numbers of processes to sit in memory simultaneously for concurrent execution — and that is what makes memory management complex. There is quite a range of memory-management algorithms, and most require special forms of hardware support.&lt;/p></description></item></channel></rss>