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

打印 上一主题 下一主题

主题 938|帖子 938|积分 2818

前言

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

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


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

[code]#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
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表