没有合适的资源?快使用搜索试试~ 我知道了~
操作系统实验报告
资源推荐
资源详情
资源评论
实验目的:
1.理解三级调度;
2.掌握作业调度、进程调度算法的基本思想;
3.掌握最早截止时间优先和最低松弛度优先实时调度算法
实验器材:
VSCode
实验内容:
1.编程实现先来先服务、短作业/进程优先、优先数和最高响应比优先、时
间片轮转调度算法;
2.编程实现实时调度算法(二选一):最早截止时间优先和最低松弛度优
先
实验步骤:
1.先来先服务:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int pid; //
进程
ID
int arrival_time; //
到达时间
int burst_time; //
执行时间
} Process;
void fcfs_schedule(Process *processes, int num_processes) {
int i = 0;
while (i < num_processes || processes[i].arrival_time <=
processes[i].burst_time) {
printf("Process %d starts at time %d and ends at time %d",
processes[i].pid, processes[i].arrival_time,
processes[i].arrival_time + processes[i].burst_time);
processes[i].arrival_time += processes[i].burst_time;
i++;
}
}
int main() {
Process processes[] = {
{1, 0, 30},
{2, 5, 8},
{3, 10, 3},
{4, 15, 5}
};
int num_processes = sizeof(processes) / sizeof(processes[0]);
fcfs_schedule(processes, num_processes);
return 0;
}
2.短作业/进程优先:
#include <iostream>
#include <string.h>
#include <iomanip>
struct job
{
char name[10]; //
作业的名字
int starttime; //
作业到达系统时间
int needtime; //
作业服务时间
int runtime; //
作业周转时间
int endtime; //
作业结束时间
int flag=0; //
作业完成标志
char state='W'; //
作业状态,一开始都默认为就绪
double dqzz_time; //
带权周转时间
};
void sjf(struct job jobs[50],int n){
int
i=0,j=0,k,temp,count=0,min_needtime,min_starttime,t_time,flag1
;
char t_name[10];
int nowtime=0;
for(i=0;i<n;i++) //
按作业到达系统时间进行排序,最早到达的排在最
前面
{
min_needtime=jobs[i].needtime;
temp=i;
for(j=i;j<n;j++) //
按作业到达系统时间进行排序,最早到达的排
在最前面
{
if(jobs[j].needtime<min_needtime)
{
temp=j;
min_needtime=jobs[j].needtime;
}
}
if(temp!=i)
{
jobs[40]=jobs[temp];
for(k=temp-1;k>=i;k--)
{
jobs[k+1]=jobs[k];
}
jobs[i]=jobs[40];
}
}
while(count<n){
temp=1000;
flag1=0;
min_needtime=1000;
min_starttime=1000;
for(i=0;i<n;i++){
if(jobs[i].flag==0){
if(jobs[i].starttime<=nowtime)
{
flag1=1;
if(jobs[i].needtime<min_needtime){
min_needtime=jobs[i].needtime;
temp=i;
}
}
}
}
if(flag1==0)
{
for(i=0;i<n;i++){
剩余11页未读,继续阅读
资源评论
en...小瓶子
- 粉丝: 398
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- python tkinter-08-盒子模型.ev4.rar
- Doozy UI Manager 2023
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现无线传感器网络无需测距定位算法matlab源代码 包括apit,dv-hop,amorphous在内的共7个
- 基于python的yolov5实现的旋转目标检测
- 基于matlab实现无线传感器网络 CAB定位仿真程序 这是无线传感器节点定位CAB算法的仿真程序,由matlab完成.rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
- 基于matlab实现视频监控中车型识别代码,自己写的,希望和大家多多交流.rar
- springcodespringcodespringcodespringcode
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功