mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 23:04:05 -06:00
44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
---
|
|
title: "22-virtual-memory"
|
|
aliases:
|
|
tags:
|
|
- cosc204
|
|
- lecture
|
|
---
|
|
|
|
# Swapping and virtual memory
|
|
swapping
|
|
- if there is not enough physical memory we need to sawp processes out of the main ememory to the secondary storage e.g., disk
|
|
- 
|
|
- when a process is ready, it is swapped into the main memory
|
|
- allows more processes to multitask
|
|
|
|
partially loaded proceses
|
|
- dynamic loading
|
|
- load a potion of code when it is called as some code may not need to be executed, e.g., code for handling errors
|
|
- pros
|
|
- process not limited by amount of avilable memory
|
|
- more processes multitasking
|
|
- quicker to swap than entire process
|
|
|
|
virtual memory
|
|
- idea that processes dont need to be fully in memory to run
|
|
|
|
extends main memory to secondary storage, and allows dynamic loading of processes while they execute
|
|
- programmer deals with vmem just like paging scheme
|
|
- mem manager in OS kernel controls loading pages of the process into main mem from secondary storage
|
|
|
|
# Demand paging
|
|
dont load a page into mem until it is referenced by CPU
|
|
|
|
implementing
|
|
- in paging scheme there are extra bits in the table to provide more information
|
|
- valid/invlid bit
|
|
- protection bits
|
|
- in demand paging the mem manager
|
|
# page replacement algorithms
|
|
|
|
# frame allocation
|
|
|
|
# thrashing
|