时间片轮转法和动态优先级代码Python实现
时间: 2023-11-19 09:13:13 浏览: 40
时间片轮转法的 Python 实现:
```python
# 时间片轮转法
def time_slice_round_robin(processes, quantum):
n = len(processes)
time = 0 # 记录当前时间
waiting_time = [0] * n # 记录每个进程的等待时间
remaining_time = [p[1] for p in processes] # 记录每个进程的剩余执行时间
while True:
done = True
for i in range(n):
if remaining_time[i] > 0:
done = False
if remaining_time[i] > quantum:
time += quantum
remaining_time[i] -= quantum
else:
time += remaining_time[i]
waiting_time[i] = time - processes[i][1]
remaining_time[i] = 0
if done:
break
return waiting_time
```
动态优先级的 Python 实现:
```python
# 动态优先级
def dynamic_priority(processes):
n = len(processes)
time = 0 # 记录当前时间
waiting_time = [0] * n # 记录每个进程的等待时间
remaining_time = [p[1] for p in processes] # 记录每个进程的剩余执行时间
priority = [p[2] for p in processes] # 记录每个进程的优先级
while True:
done = True
max_priority = -1
for i in range(n):
if remaining_time[i] > 0:
done = False
if priority[i] > max_priority:
max_priority = priority[i]
max_index = i
if done:
break
time += 1
remaining_time[max_index] -= 1
priority[max_index] += 1
for i in range(n):
if i != max_index and remaining_time[i] > 0:
waiting_time[i] += 1
return waiting_time
```
以上两个函数的参数 `processes` 是一个列表,每个元素是一个包含三个值的元组,分别为进程名、执行时间和优先级。函数返回一个列表,每个元素为对应进程的等待时间。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)