用Python语言写一个页面置换算法
时间: 2024-03-06 17:04:45 浏览: 78
页面置换算法是操作系统中的重要概念之一,常用于虚拟内存管理中。其中最常见的算法是 LRU(最近最少使用)算法。下面是一个用 Python 语言实现 LRU 算法的示例代码:
```python
class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self.cache = {}
self.queue = []
def get(self, key):
if key not in self.cache:
return -1
self.queue.remove(key)
self.queue.append(key)
return self.cache[key]
def put(self, key, value):
if key in self.cache:
self.queue.remove(key)
elif len(self.cache) == self.capacity:
del self.cache[self.queue.pop(0)]
self.queue.append(key)
self.cache[key] = value
```
在这段代码中,我们创建了一个 LRUCache 类,它包含了三个属性:capacity 表示缓存的容量,cache 表示缓存中的数据,queue 表示缓存中数据的访问顺序。其中 get 方法用于获取缓存中的数据,如果数据不存在则返回 -1,如果存在则将该数据移到队列的尾部,表示最近被访问;put 方法用于向缓存中添加数据,如果数据已经存在,则将其移到队列尾部,否则需要检查当前缓存大小是否已经达到容量上限,如果是,则需要删除队列头部的数据,同时从缓存中删除对应的键值对,然后将新的数据添加到队列尾部,并在缓存中添加对应的键值对。
阅读全文