# Lab3a: Demand Paging

{% hint style="warning" %} <mark style="color:red;">**Code Due: Thursday 05/28 11:59 pm**</mark>

<mark style="color:red;">**Design Doc Due: Sunday 05/31 11:59 pm**</mark>
{% endhint %}

**By now you should have some familiarity with the inner workings of Pintos.**

* Your OS can properly handle multiple threads of execution with proper synchronization, and can load multiple user programs at once.
* However, the number and size of programs that can run is limited by the machine's main memory size. In this assignment, you will remove that limitation.

<mark style="color:red;">**You will build this assignment on top of the last one.**</mark>

**Test programs from project 2 should also work with project 3.** You should take care to fix any bugs in your project 2 submission before you start work on project 3, because those bugs will most likely cause the same problems in project 3.

**You will continue to handle Pintos disks and file systems** **the same way you did in the previous assignment** (see section [Using the File System](https://pkuflyingpig.gitbook.io/pintos/lab2-user-programs/background#using-the-file-system)).

**Here are the sections in this chapter:**

{% content-ref url="lab3a-demand-paging/background" %}
[background](https://pkuflyingpig.gitbook.io/pintos/project-description/lab3a-demand-paging/background)
{% endcontent-ref %}

{% content-ref url="lab3a-demand-paging/suggestions" %}
[suggestions](https://pkuflyingpig.gitbook.io/pintos/project-description/lab3a-demand-paging/suggestions)
{% endcontent-ref %}

{% content-ref url="lab3a-demand-paging/your-tasks" %}
[your-tasks](https://pkuflyingpig.gitbook.io/pintos/project-description/lab3a-demand-paging/your-tasks)
{% endcontent-ref %}

{% content-ref url="lab3a-demand-paging/faq" %}
[faq](https://pkuflyingpig.gitbook.io/pintos/project-description/lab3a-demand-paging/faq)
{% endcontent-ref %}

{% content-ref url="lab3a-demand-paging/submission" %}
[submission](https://pkuflyingpig.gitbook.io/pintos/project-description/lab3a-demand-paging/submission)
{% endcontent-ref %}
