操作系统实验七设备管理实验(广西师大)(2)

2018-12-06 18:24

广西师范大学计算机科学与信息工程学院操作系统实验书

{ printf(\ //屏幕输出 k++; }

printf(\

reqblock[cbp].reqid=0; reqblock[cbp].size=0;

n--;//输入文件数减一 wellsize+=size;//增加输入井剩余空间 ebc++;//输入请求块组的空闲块增一 } } }

//--------------------------------------------------------------------------------

//登记输入请求块,将用户缓冲区mybuf的数据送入输入井well。若成功送入,返回TRUE,否则返回FALSE.

//idnum为进程号,charnum为输出的字符个数. int spoolserver(int idnum,int charnum) {

int k;

if (charnum>wellsize || ebc==0)//字符数超过输入井剩余空间的大小或输出请求块的空闲块数为0

return (FALSE);//无法输出

//登记输出请求块

reqblock[ebp].reqid=idnum; reqblock[ebp].size=charnum;

reqblock[ebp].addr=wellptr;//字符在输入井中的起始位置 ebc--;//空闲输出请求块数减一

ebp=(++ebp);//空闲块指针指向下一块

//把数据用户缓冲区传到输入井,起始位置由输出井当前指针决定 for (k=0;k

well[wellptr++]=mybuf[k]; wellptr=wellptr%WELLSIZE; }

wellsize=wellsize-charnum;

6

广西师范大学计算机科学与信息工程学院操作系统实验书

return (TRUE); }

//--------------------------------------------------------------------- //SPOOLing进程的程序 void spoolin() {

int x1,j,i; printf(\输入到哪个用户?(1,2,3)\ scanf(\ if(file[x1]

//输出缓冲区数据到输入井 if( spoolserver(x1,j)) file[x1]++; for(i=0;i<50;i++) mybuf[i]=0; } else printf(\该用户文件输入到输入#已达到数量\\n\ if(n==0) pcb[0].status='c'; }

四、程序运行结果截图

7

广西师范大学计算机科学与信息工程学院操作系统实验书

8

广西师范大学计算机科学与信息工程学院操作系统实验书

五、实验总结及进一步改善建议

1、通过今天的实验操作Linux下U盘的访问和模拟spooling系统,自己初步熟悉理解了设备虚拟分配技术原理,特别是对spooling系统的输入和输出有了更深刻的理解。

2、这次实验过程中数据结构有了更深刻的理解,特别是对pcb和输入请求块链表的各项操作,以及链表等数据结构在操作系统中的应用,每次的对我的思考能力也是不小的锻炼。

3、要有坚信自己可以独立完成的信心,敢于攻坚,越是难的问题,越是要有挑战的心理,要迎难而上,不要半途放弃。

4、善于同学间的讨论,遇到问题,和自己班上同学讨论能够受益匪浅。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。

9


操作系统实验七设备管理实验(广西师大)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:试分析新课改背景下小学语文的分层异步教学策略

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: