m0_69418807 2023-04-11 00:59 采纳率: 50%
浏览 81
已结题

这个结果是怎么算的呢

在单CPU 多道程序系统中并发运行两道程序P1和P2,它们的执行轨迹如下:
P1:输入机 (80ms)、CPU Crorns)、磁带机1 (30ms〉
P2:磁带机2 (20ms)、 CPU (20ms)、行式打印机( 100 ms);
两道程序所需设备均为可用状态。系统接照非抢占调度方式调度两道程序,《1)绘制各道程序、各硬件工作时序因:《2〉计算每个程序从投入到完成分别所需的时间〈周转时间》;《3〉计算两道程序从投入到完成CPU的利用率:《4)如果单道运行,则两道程序运行完牛需要多长时间?

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2023-04-11 07:58
    关注

    以下内容部分参考ChatGPT模型:


    这个结果是通过计算每个程序在系统中的执行时间得出的。具体来说,P1在输入机上花费了80ms,在CPU上花费了一段时间,然后在磁带机1上花费了30ms。而P2在磁带机2上花费了20ms,在CPU上花费了20ms。因为是单CPU多道程序系统,所以这两个程序在CPU上的执行时间是交替进行的,直到它们完成为止。通过计算每个程序在系统中的执行时间,我们可以得出它们的执行轨迹。

    代码示例:

    int p1_input_time = 80;
    int p1_cpu_time = 50; //假设P1在CPU上执行了50ms
    int p1_tape1_time = 30;
    int p1_total_time = p1_input_time + p1_cpu_time + p1_tape1_time;
    
    int p2_tape2_time = 20;
    int p2_cpu_time = 20;
    int p2_total_time = p2_tape2_time + p2_cpu_time;
    
    //假设P1和P2交替执行,计算它们的执行轨迹
    int current_time = 0;
    while (p1_total_time > 0 || p2_total_time > 0) {
      if (p1_total_time > 0) {
        if (p1_input_time > 0) {
          //P1在输入机上运行
          p1_input_time--;
          current_time++;
        } else if (p1_cpu_time > 0) {
          //P1在CPU上运行
          p1_cpu_time--;
          current_time++;
        } else if (p1_tape1_time > 0) {
          //P1在磁带机1上运行
          p1_tape1_time--;
          current_time++;
        }
        p1_total_time--;
      }
    
      if (p2_total_time > 0) {
        if (p2_tape2_time > 0) {
          //P2在磁带机2上运行
          p2_tape2_time--;
          current_time++;
        } else if (p2_cpu_time > 0) {
          //P2在CPU上运行
          p2_cpu_time--;
          current_time++;
        }
        p2_total_time--;
      }
    }
    
    //输出P1和P2的执行轨迹
    printf("P1: 输入机->CPU->磁带机1\n");
    printf("P2: 磁带机2->CPU\n");
    

    如果我的建议对您有帮助、请点击采纳、祝您生活愉快

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月11日

悬赏问题

  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端