王國慶 发表于 2023-12-1 17:27:00

操作系统实验——进程管理的算法实现

前言

笔者在大学下属的事业单位上班,最近去帮着带下操作系统的实验课,这里随手水点参考代码,欢迎各位领导老师莅临指正
实验目标

编写一个简单的进程调度器
实验内容


[*]进程控制块(PCB)的定义与管理
[*]进程调度算法的实现
[*]进程创建、销毁和切换
[*]给定一批进程对比3-4种调度算法的时间(自选算法)
实验参考答案

#include #include #include using namespace std;// 进程控制块(PCB)struct ProcessControlBlock{    // 进程ID    int processID;    // 到达时间    int arrivalTime;    // 执行时间    int burstTime;    // 等待时间    int waitingTime;    // 周转时间    int turnaroundTime;};// 先来先服务 (FCFS) 调度算法void FCFS(vector &processes){    int currentTime = 0;    for (int i = 0; i < processes.size(); i++)    {      if (processes.arrivalTime > currentTime)      {            currentTime = processes.arrivalTime;      }      // 计算等待时间      processes.waitingTime = currentTime - processes.arrivalTime;      // 执行进程      currentTime += processes.burstTime;      // 计算周转时间      processes.turnaroundTime = currentTime - processes.arrivalTime;    }}// 最短作业优先 (SJF) 调度算法void SJF(vector &processes){    int currentTime = 0;    vector remainingProcesses = processes;    while (!remainingProcesses.empty())    {      int shortestJobIndex = -1;      int shortestJobTime = INT_MAX;      for (int i = 0; i < remainingProcesses.size(); i++)      {            if (remainingProcesses.arrivalTime
页: [1]
查看完整版本: 操作系统实验——进程管理的算法实现