python操作系统调度算法仿真程序

调度算法仿真程序

  1. 实验要求
    编程完成对先来先服务、短作业优先和高响应比优先三种作业调度算法。
  2. 代码
import threading
import datetime
import time
import numpy as np
import random
import argparse
    
class Job(threading.Thread):
    def __init__(self, id, name,arrive):
        super(Job,self).__init__()
        self.id = id
        self.name = name
        self.arrive = arrive
        self.wait = datetime.timedelta(seconds=0)
        self.runtime = datetime.timedelta(seconds=np.random.rand()*\
            np.random.randint(1,100))
        self.isfinish = False
    def run(self):
        print("Start job:",self.name,'at',self.arrive,'wait',self.wait)
        end_t = self.arrive + self.runtime
        #time.sleep(self.runtime)
        print("Exit job:",self.name,'at',end_t)
        print()
        self.isfinish = True
        return end_t
def average_turnaround(jobs):
    return sum([job.wait/datetime.timedelta(seconds=1)+\
        job.runtime/datetime.timedelta(seconds=1)\
             for job in jobs])/len(jobs)

def weighted_turnaround(jobs):
    return sum([(job.wait/datetime.timedelta(seconds=1)+\
        job.runtime/datetime.timedelta(seconds=1))/(job.runtime/\
            datetime.timedelta(seconds=1)) for job in jobs])/len(jobs)

def FCFS(start_t,jobs):
    end_t = start_t
    for job in jobs:
        if end_t<job.arrive:
            end_t = job.run()
        else:
            job.wait = end_t - job.arrive
            end_t = job.run
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值