资源简介
基于linux的设备分配及磁盘调度。
设计内容:
1、参考操作系统有关设备分配的分配策略,模拟给出设备请求到分配的过程,对于外部存储器设备,分配后要模拟出它的的I/O过程,调用磁盘调度算法。
2、设备分配的过程中,要给设备分配设备控制器,通道都要有。
3、系统的设备最少要有3种,控制器每台设备最少对应1个和通道系统最少有3个。
3、磁盘调度算法要用先来先服务,电梯调度和循环扫描算法(算法可以选择)
4、设备管理要有设备控制表,设备分配表,通道控制表,控制器控制表等。
设计要求:
要求在屏幕上输出各设备的分配过程及信息,如果用到磁盘调度算法时,输出磁盘调度算法的调度顺序及平均寻道长度等,I/O时的寻道内容(磁道号)可手工给出。..

代码片段和文件信息
#include
#include
#include
#include
#define MAX 100
#define maxsize 1000 //定义最大数组域
typedef struct pcb/*进程*/
{
int pcbID; /*进程名称*/
struct pcb *next;
}PCB;
typedef struct chct//通道控制表
{
int chctID;
int status;//设备状态
PCB *block;//阻塞队列
}CHCT;
typedef struct coct//控制器控制表
{
int coctID;
int status;//设备状态
CHCT *chct;//控制器所连接的通道
PCB *block;//阻塞队列
struct coct *next;//控制器队列
}COCT;
typedef struct dct//设备控制表
{
int dctID;
int status;//设备状态
int processid;//占用进程ID
PCB *block;//阻塞队列指针
COCT *coct;//与设备控制器相关连的控制器控制表
struct dct* next;//同类设备的不同设备
}DCT;
typedef struct sdt//系统设备表
{
char type;//系统设备表类型
char name[MAX];//系统设备表名称
DCT *dct;//DCT设备控制表
struct sdt *next;//驱动入口地址
}SDT;
/*设置全局变量 3个通道、3个设备控制器、4个设备*/
CHCT *CH1*CH2*CH3;//两个通道ch1ch2
COCT *coct_head;//控制器控制表头部
SDT *sdt_head;
void init()
{
PCB *ch1pcbblock*ch2pcbblock*ch3pcbblock*co1pcbblock
*co2pcbblock*co3pcbblock
*d1pcbblock*d2pcbblock
*d3pcbblock*d4pcbblock;//各个设备的等待队列
COCT*CO1*CO2*CO3;
DCT *dct1*dct2*dct3*dct4;
SDT *sdt1*sdt2*sdt3*sdt4;
CH1=(CHCT*)malloc(sizeof(CHCT));
CH2=(CHCT*)malloc(sizeof(CHCT));
CH3=(CHCT*)malloc(sizeof(CHCT));
CH1->status=0;
CH2->status=0;
CH3->status=0;
CH1->chctID = 1;
CH2->chctID = 2;
CH3->chctID = 3;
ch1pcbblock=(PCB*)malloc(sizeof(PCB));
ch2pcbblock=(PCB*)malloc(sizeof(PCB));
ch3pcbblock=(PCB*)malloc(sizeof(PCB));
ch1pcbblock->next=NULL;
ch2pcbblock->next=NULL;
ch3pcbblock->next=NULL;
CH1->block=ch1pcbblock;
CH2->block=ch2pcbblock;
CH3->block=ch3pcbblock;
coct_head=(COCT*)malloc(sizeof(COCT));
coct_head->next=NULL;
CO1=(COCT*)malloc(sizeof(COCT));
CO2=(COCT*)malloc(sizeof(COCT));
CO3=(COCT*)malloc(sizeof(COCT));
CO1->status=0;
CO2->status=0;
CO3->status=0;
coct_head->next=CO1;
CO1->next=CO2;
CO2->next=CO3;
CO3->next=NULL;
co1pcbblock=(PCB *)malloc(sizeof(PCB));
co1pcbblock->next=NULL;
co2pcbblock=(PCB *)malloc(sizeof(PCB));
co2pcbblock->next=NULL;
co3pcbblock=(PCB *)malloc(sizeof(PCB));
co3pcbblock->next=NULL;
CO1->coctID = 1;
CO2->coctID = 2;
CO3->coctID = 3;
//随机分配起始时的通道和控制的连接情况
CO1->chct=CH1;
CO2->chct=CH1;
CO3->chct=CH2;
CO1->block=co1pcbblock;
CO2->block=co2pcbblock;
CO3->block=co3pcbblock;
d1pcbblock=(PCB *)malloc(sizeof(PCB));
d2pcbblock=(PCB *)malloc(sizeof(PCB));
d3pcbblock=(PCB *)malloc(sizeof(PCB));
d4pcbblock=(PCB *)malloc(sizeof(PCB));
d1pcbblock->next=NULL;
d2pcbblock->next=NULL;
d3pcbblock->next=NULL;
d3pcbblock->next=NULL;
dct1=(DCT *)malloc(sizeof(DCT));
dct2=(DCT *)malloc(sizeof(DCT));
dct3=(DCT *)malloc(sizeof(DCT));
dct4=(DCT *)malloc(sizeof(DCT)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6455 2019-01-05 12:38 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010923+王楚+任务书.rar
文件 600167 2019-01-05 12:39 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010923+王楚+说明书.rar
文件 6702 2019-01-05 11:56 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010940+刘树敏+任务书.zip
文件 109221 2019-01-05 12:53 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010940+刘树敏+说明书.zip
文件 6454 2019-01-05 10:59 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010947+王康+任务书.rar
文件 68569 2019-01-05 12:38 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010947+王康+说明书(1).rar
文件 6455 2019-01-05 12:38 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010951+王强+任务书.rar
文件 297624 2019-01-05 12:38 16140Y06班第五组基于Linux的设备分配及磁盘调度\1614010951+王强+说明书.rar
文件 20070 2019-01-04 07:23 16140Y06班第五组基于Linux的设备分配及磁盘调度\基于Linux的设备分配及磁盘调度源代码.cpp
目录 0 2019-01-05 12:53 16140Y06班第五组基于Linux的设备分配及磁盘调度
----------- --------- ---------- ----- ----
1121717 10
- 上一篇:图像拼接技术及其实现
- 下一篇:NTSYS-PC分子生物学分析软件
相关资源
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- 磁盘调度算法的模拟实现及对比
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
- C malloc函数用法
- 嵌入式局域网聊天系统客户端
- 算法竞赛入门经典 第2版刘汝佳+高清
- 基于单片机的GPS定位及显示系统设计
- 链表实现通讯录管理系统
- PowerShell-6.2.1-win-x86.zip
- 磁盘调度算法的实现与对比
- pl/0编译器 语法分析
- 源程序阅读与调试课程设计报告--学生
- 谁说程序员不浪漫?!基于easyX图形库
- 编译原理课设c编译器
- MCP3421 STM32 Driver
- ADS1100 STM32 Driver
- 单片机89c52与MLX90614红外的测温程序
- stm32f103AES加密 cbc模式
- 单片机 点阵 字模提取软件
- C高级编程讲义-传智播客
- NOIP必学内容之前缀和与差分颜鸿宇
- Skyline高效检索算法实现.zip
- STM8S103系列IO模拟串口通信实现真正串
- stm32f103c8t6移植uC/OS-III基于HAL库的工程
- 温度、一氧化碳、二氧化碳、PM2.5以及
- 王道论坛计算机考研机试指南
评论
共有 条评论