fair和fifo算法代码
时间: 2024-06-16 10:06:00 浏览: 11
当提到"fair"和"fifo"算法时,通常是指在操作系统度或资源分配中使用的两种不同的策略。
1. Fair(公平)算法:
公算法旨在确保每个任务或进程都能公平地获得系统资源的使用权。这种算法通常基于一些公平性原则,如时间片轮转优先级调度等。下面是简单的公平调度算法的示例代码:
```python
class Task:
def __init__(self, name, priority self.name = name
self.priority = priority
class Scheduler:
def __init__(self):
self.tasks = []
def add_task(self, task):
self.tasks.append(task)
def run(self):
while self.tasks:
task = self.tasks.pop(0)
print("Running task:", task.name)
scheduler = Scheduler()
scheduler.add_task(Task("Task 1", 1))
scheduler.add_task(Task("Task 2", 2))
scheduler.add_task(Task("Task 3", 3))
scheduler.run()
```
输出结果:
```
Running task: Task 1
Running task: Task 2
Running task: Task 3
```
2. FIFO(先进先出)算法:
先进先出算法是一种简单的调度算法,按照任务或进程到达的顺序进行调度。下面是一个FIFO调度算法的示例代码:
```python
class Task:
def __init__(self, name):
self.name = name
class Scheduler:
def __init__(self):
self.tasks = []
def add_task(self, task):
self.tasks.append(task)
def run(self):
while self.tasks:
task = self.tasks.pop(0)
print("Running task:", task.name)
scheduler = Scheduler()
scheduler.add_task(Task("Task 1"))
scheduler.add_task(Task("Task 2"))
scheduler.add_task(Task("Task 3"))
scheduler.run()
```
输出结果:
```
Running task: Task 1
Running task: Task 2
Running task: Task 3
```