您好,欢迎来到微智科技网。
搜索
您的当前位置:首页内存分配

内存分配

来源:微智科技网
2004年自学考试《操作系统》

实践环节测试卷A

上机号 考号 姓名 分数

说明:1。本试卷分为两大部分,均为必做题。

2.考生考试用文件夹为d:\\ostest,其下有子文件夹os为TC编程专用(TC2.0位于d:\\下),其余为第一大题专用子文件夹。

一、 WINDOWS操作部分(字母不分大小写)

1、 在D盘ostest下创建如“王强A”格式的“考生姓名”+“试卷类别”的文件夹。 2、 改USER0下的文件TONGZHI.DOC为“通知A”。 3、 在本地查找文件夹“TEST”,并将其删除。

4、 将WINKT文件夹中第一个字母为A的所有文件复制到USERB中。 5、 将WINKT文件夹中第一个字母为B的所有文件移动到USERA中。

6、 在USERA中创建WINKT下CALC.EXE的快捷方式,名称为“计算器A”。 7、 修改WINKT\\LINK下的文件TEST.GIF的属性为“只读”。

二、操作系统编程部分

请仔细阅读下面编程题目,用TC2.0录入(注释部分不用输入)并调试所给程序,并以名osma.c保存到D:\\OSTEST\\OS子目录中,运行结果抄到试卷纸末。 编程题目:

下列程序为一个可变分区的主存分配模拟程序模块,其中分配函数ALLOCATE()没有完成,该函数参数只有需要的分区长度xk,函数完成查找一个满足条件的空闲区分配,并修改空闲区表(不用修改已分配区表),返回分区的起始地址。请考生填空完成横线部分,并填写在纸上。

#define minisize 100 /*空闲区_申请空间≤minisize 时,分配整个空闲区*/ #define m 20 /*假定系统允许的空闲区表最大为m*/ #include \"stdio.h\"

/*系统中主要数据结构*/ struct {

float address; /*空闲区起始地址*/

float length; /*空闲区长度,单位为字节*/

int flag; /*空闲区表登记栏标记,用0表示空栏目,用1表示未分配*/ }free_table[m]; /*空闲区表*/ float allocate(float xk) {

int i,k; float ad;

k=-1; i=0;

for(i=0;i=xk && free_table[i].flag==1) {k=i; break;}

if(k==-1) /* 无可用空闲区,返回 */ {printf(\"no free space\\n\"); return(-1); }

if(free_table[k].length-xk<=minisize) /* 找到可用空闲区,开始分配 */

{

free_table[k].flag=0; ad=free_table[k].address; xk=free_table[k].length; } else {

free_table[k].length=free_table[k].length - xk; ad=free_table[k].address + free_table[k].length; }

return( ad ); }

main() {

float xk0,ad0; int i,n;

scanf(\"%f\运行时输入123 */ free_table[0].address=0; free_table[0].length=100; free_table[0].flag=1; for(i=1;i<20;i++) {

free_table[i].address=free_table[i-1].address+free_table[i-1].length; free_table[i].length=100+30*i*i; free_table[i].flag=1; }

printf(\"未分配表\\n\");

printf(\"起始地址: 长度: 标记:\\n\"); /* for(i=0;i<20;i++) {

printf(\"%8.2f \free_table[i].address); printf(\"%8.2f \ printf(\"%8d \\n\ }

printf(\"\\n \\n \\n\");*/

ad0=allocate(xk0); if(ad0>0) {

for(i=0;i<20;i++) {

printf(\"%8.2f \free_table[i].address); printf(\"%8.2f \ printf(\"%8d \\n\ }

}else {printf(\"sorry!\\n\");}

printf(\"sample main program A\\n\"); /*}运行结果:

主程序显示示范程序*/

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务