文档库 最新最全的文档下载
当前位置:文档库 › 重庆大学操作系统实验4报告书

重庆大学操作系统实验4报告书

重庆大学操作系统实验4报告书
重庆大学操作系统实验4报告书

《操作系统》实验报告

年级、专业、班级姓名

实验题目内存管理

实验时间实验地点

实验成绩实验性质□验证性□设计性■综合性教师评价:

□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;

□实验结果正确;□语法、语义正确;□报告规范;

其他:

评价教师签名:

一、实验目的

理解操作系统关于内存管理的一些方法。

熟悉常用的页面置换策略的基本原理。

通过模拟实验分析不同置换策略的性能差异。

二、实验项目内容

在linux环境下用C语言编写程序,模拟进程在执行时内存中的页框置换过程。

读取文件中给定进程访问的逻辑页号序列,其中单号学号同学做workload1~6,双号学号同学做workload7~12。

设置内存页框大小为N(N分别取值为100,500,1000,2000,5000)。

采用3种不同的页面置换算法:FIFO,CLOCK,LRU。

画图比较不同页面置换算法对应的缺页率并分析原因(固定页框大小为1000)。

画图比较不同内存页框大小对应的缺页率并分析原因(固定置换算法为LRU)。

分析不同workload平均缺页率存在差异产生的原因。

三、实验过程或算法(源程序)

详细代码见代码附件,以下为程序基本思路

FIFO.c:

采用数组int page[N]模拟虚拟页框,读取文件中的虚拟地址做整除N即可得出虚拟页框号,若命中则hitTime++,否则根据先后顺序分别放入虚拟页框中,此时missTime++;当虚拟页框满后需要进行替换操作,替换int page[N]中最靠前的一项(即先进入的页框),替换项用模拟的指针ptr代表

LRU.c:

方式同FIFO.c,不同点在于虚拟页框满后将最先进入的或者最近未使用的一项换出,方法体现在若命中过,则将被命中的页框排到int page[N]的末尾,其他项依次前移,下次的被替换项依旧是数组中的第一号元素

CLOCK.c:

用一个结构体定义了带使用位的元素,当虚拟页框为空时依次填入元素并将使用位置1,当命中后也将使用位置1,用一个模拟指针ptr代表当前指针指向的位置,当需要替换页框时从指针指向位置向后查找使用位为0的第一个元素,在此过程中遇到使用位为1的元素将使用位置0,替换后指针继续指向当前元素位置不变

四、实验结果及分析和(或)源程序调试过程

代码:

CLOCK.C:

#include

//CLOCK

#define N 1000

struct frame

{

int num;

int useFlag;

};

struct frame page[N];

int main()

{

char

fileName[][15]={"workload7","workload8","workload9","workload10","workload11","workl oad12"};

int fileNum;

for(fileNum=0;fileNum<6;fileNum++)

{

FILE* fp;

int missTime=0;

int hitTime=0;

int count=0;

int ptr=0;

if((fp=fopen(fileName[fileNum],"r"))==NULL)

{

printf("The file can not be oppen\n");

return -1;

}

while(!feof(fp))

{

int temp;

int flag=0;

fscanf(fp,"%d",&temp);

temp/=N;

int i;

for(i=0;i

{

if(page[i].num==temp)

{

page[i].useFlag=1;

ptr++;

hitTime++;

flag=1;

break;

}

}

if(flag==1)//hit

{

count++;

continue;

}

else//miss

{

missTime++;

if(missTime

{

page[count%N].num=temp;

page[count%N].useFlag=1;

ptr++;

}

else

{

while(page[ptr%N].useFlag!=0)

{

page[ptr%N].useFlag=0;

ptr++;

}

page[ptr%N].num=temp;

}

}

count++;

}

fclose(fp);

float rate;

rate=missTime/(float)count;

printf("%s:\n",fileName[fileNum]);

printf("Page fault time:%d\n",missTime);

printf("Page hit time:%d\n",hitTime);

printf("Total:%d\n",count);

printf("Rate of fault = %f\n",rate);

}

return 0;

}

FIFO.C:

#include

//FIFO

#define N 1000

int page[N]={0};

int main()

{

char

fileName[][15]={"workload7","workload8","workload9","workload10","workload11","workl oad12"};

int fileNum;

for(fileNum=0;fileNum<6;fileNum++)

{

FILE* fp;

int missTime=0;

int hitTime=0;

int count=0;

int ptr=0;

if((fp=fopen(fileName[fileNum],"r"))==NULL)

{

printf("The file can not be oppen\n");

return -1;

}

while(!feof(fp))

{

int temp;

int flag=0;

fscanf(fp,"%d",&temp);

temp/=N;

int i;

for(i=0;i

{

if(page[i]==temp)

{

hitTime++;

flag=1;

break;

}

}

if(flag==1)//hit

{

count++;

continue;

}

else//miss

{

missTime++;

if(missTime

page[count%N]=temp;

else

{

page[ptr%N]=temp;

ptr++;

}

count++;

}

}

fclose(fp);

float rate;

rate=missTime/(float)count;

printf("%s:\n",fileName[fileNum]);

printf("Page fault time:%d\n",missTime);

printf("Page hit time:%d\n",hitTime);

printf("Total:%d\n",count);

printf("Rate of fault = %f\n",rate);

}

return 0;

}

LRU.C:

#include

//LRU

#define N 1000

int page[N]={0};

int main()

{

char

fileName[][15]={"workload7","workload8","workload9","workload10","workload11","workl oad12"};

int fileNum;

for(fileNum=0;fileNum<6;fileNum++)

{

FILE* fp;

int missTime=0;

int hitTime=0;

int count=0;

int ptr=0;

if((fp=fopen(fileName[fileNum],"r"))==NULL)

{

printf("The file can not be oppen\n");

return -1;

}

while(!feof(fp))

{

int temp;

int flag=0;

fscanf(fp,"%d",&temp);

temp/=N;

int i;

for(i=0;i

{

if(page[i]==temp)

{

flag=1;

hitTime++;

int j;

int c=page[i];

for(j=i;j

{

page[j]=page[j+1];

}

page[N-1]=c;

break;

}

}

if(flag==1)//hit

{

count++;

continue;

}

else//miss

{

missTime++;

if(missTime

page[count%N]=temp;

else

{

int j;

for(j=0;j

{

page[j]=page[j+1];

}

page[N-1]=temp;

}

count++;

}

}

fclose(fp);

float rate;

rate=missTime/(float)count;

printf("%s:\n",fileName[fileNum]);

printf("Page fault time:%d\n",missTime);

printf("Page hit time:%d\n",hitTime);

printf("Total:%d\n",count);

printf("Rate of fault = %f\n",rate);

}

return 0;

}

结果截图:

三个程序运行结果:

图表:

三种算法:

不同叶框大小LRU算法:

不同workload产生不同缺页率的原因主要在于每个workload中调用同一页的次数不同,缺页次数与替换次数各有不同,导致的缺页率也会不同

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

重庆大学操作系统全英文期末考试题(带答案)

XX大学2011 ——2012 学年第一学期 《操作系统》期末考试试题(A) 考 试 注 意 事 项 考试时间年月日考试 课程 题号一二三四五六七八总分满分 得分 阅卷 教师 一. 二.选择题(20分,每题1分) 1. Generally speaking, which one is not the major concern for a operating system in the following four options?( D ) A.Manage the computer B.Manage the system resources C.Design and apply the interface between user's program and computer hardware system D.High-level programming language complier 2.The main disadvantage of batch system is ( C ) A.CPU utilization is low B.Can not concurrent https://www.wendangku.net/doc/b013734937.html,ck of interaction

D.Low degree of automation

3.A process transforms from waiting state to ready state is caused by the ( B ) A.Interrupt event B.Process scheduling C.Create a process for a program D.Waiting for some events 4.The concurrent process is refers to ( C ) A.The process can be run in parallel B.The process can be run in order C.The process can be run in the same time D.The process can not be interrupted 5.In multi-process system, in order to ensure the integrity of public variables, the processes should be mutually exclusive access to critical areas. The so-called critical area is ( D ) A.A buffer B.A date area C.Synchronization mechanism D.A program 6.The orderly use of resources allocation strategy can destroy the conditio n ( D ) to avoid deadlock. A.Mutual exclusive B.Hold and wait C.No preemption D.Circular wait https://www.wendangku.net/doc/b013734937.html,er's applications use the system resources to complete its operation by the support and services of ( C ) A.clicking the mouse B.Keyboard command C.System call D.Graphical user interface 8.There are four jobs arrived at the same time and the execution time of each job is 2h. Now they run on one processor at single channel,then the average turnaround time is ( B ) A.1h B.5h C.2.5h D.8h 9.Among the job scheduling algorithms, ( B ) is related to the job's estimated running time. A.FCFS scheduling algorithm

操作系统实验报告4

《操作系统》实验报告 实验序号: 4 实验项目名称:进程控制

Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜ 修改后: #include #include int main(VOID) { STARTUPINFO si; PROCESS_INFORMA TION pi; ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, "c:\\WINDOWS\\system32\\mspaint.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) { fprintf(stderr,"Creat Process Failed"); return -1; } WaitForSingleObject(pi.hProcess,INFINITE); printf("child Complete"); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } 在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe:C:\ >CL 4-1.cpp

实验任务:写出程序的运行结果。 4.正在运行的进程 (2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include #include

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

重庆大学教务网之信管系统简介

关于信息管理系统的报告重庆大学教学信息管理系统 学院:xx工程学院 班级:xxx班 学号:xxxx 姓名:xxxx 2015年3月16日

1.重庆大学教学信息管理系统 为了提供更好的教学质量,管理学生教学信息,于是在网上开设教务,也就是教学信息管理系统。教学信息管理系统专门对学生教学信息进行收集、传递、储存、加工、维护和使用。 重庆大学教学信息管理系统有新旧两个,现在一般都使用新教务系统。旧教务在1999年全面启用,满足了教学的各种需求。后来由于更多需求设计了新教学信息管理系统。 2.重庆大学信息管理系统的功能和结构 2.1老信息管理系统 下图是重庆大学老教学信息管理系统的页面。 按照R.N.Anthony提出的三级管理系统模型的思想,任一组织或者企业的管理功能都可分为三个层次:战略计划层、管理工作层和作业管理层,即人们通常所说的高层、中层和基层。高层的主要任务是确定或改变组织的总目标,确定达到目标所需的各自资源,以及获取、使用和分配这些资源的政策;中层管理的任务是根据上述目标及所拥有的资源制定资源分配计划及进度,并组织基层部分取实现;基层则就是按照上述计划取实现和执行日常具体的管理工作了。 下图是个人的教学信息管理系统,由学生个人的学号密码登录进去。 按照这种思想,分析重大的教学管理信息系统有点类似。我认为所谓的高层也就是这个结构的第一级,比如计划与课表;中层就是这个计划与课表下面的学

生选课、学生专业计划查看、学生所选学分查询,是结构上的第二级;基层就是上面某个中层的具体体现,是结构的第三级,比如学生所选学分查询下面的本学年学分核对修改、学分修改申请查看、以往学年所修学分情况和学分修改操作说明。往往最基层是最具体的体现,我们直接接触使用并完成我们预期希望的就是通过基层。这种思想就是是信息管理系统的纵向结构。 而横向结构的体现不是很明显,不利于各种资源信息的收集和统一管理。为了达到新的要求和目标于是就开发了新教学信息管理系统。 2.2新教学信息管理系统 下图是重庆大学新教学信息管理系统的页面。 新教学信息管理系统的纵向结构更加突出和明显,比如实验教学管理系统这些子系统。 与老信息管理系统相比,新教学信息管理系统实现更多功能。 1.个人信息查询 学生课表、学生成绩、学生选课等等都是跟老教学信息管理系统差不多,个人登录页面都可以查询。查看学生成绩,各科成绩,学生个人课表,选课,培养计划等信息。 2.实验教学查询 新的系统增加了实验教学这个子系统,一目了然,跟实验有关的信息在这个子系统中可以实现。单独将实验信息分开出来,让实验信息容易管理。其中在实验信息中最主要是课表的查询,实验课的时间以此系统的信息为准。 3.机构信息查询 机构为教务性质,里面的信息为教务成员等信息。 4.招生信息查询 为了做好更好的宣传效果,在教学信息管理系统将招生信息添加进去,让不是本校的学生可以查看此类信息。 5.最新通知查询

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

《 Windows7 操作系统》实验报告

实验(一) Windows 7基本操作 一、实验目的 1.掌握文件和文件夹基本操作。 2.掌握“资源管理器”和“计算机”基本操作。 二、实验要求 1.请将操作结果用Alt+Print Screen组合键截图粘贴在题目之后。 2.实验完成后,请将实验报告保存并提交。 三、实验内容 1.文件或文件夹的管理(提示:此题自行操作一遍即可,无需抓图)★期末机试必考题★ (1) 在D:盘根目录上创建一个名为“上机实验”的文件夹,在“上机实验”文件夹中创建1个名为“操作系统上机实验”的空白文件夹和2个分别名为“2.xlsx”和“3.pptx”的空白文件,在“操作系统上机实验”文件夹中创建一个名为“1.docx”的空白文件。 (2) 将“1.docx”改名为“介绍信.docx”;将“上机实验”改名为“作业”。 (3) 在“作业”文件夹中分别尝试选择一个文件、同时选择两个文件、一次同时选择所有文件和文件夹。 (4) 将“介绍信.docx”复制到C:盘根目录。 (5) 将D:盘根目录中的“作业”文件夹移动到C:盘根目录。 (6) 将“作业”文件夹中的“2.xlsx”文件删除放入“回收站”。 (7) 还原被删除的“2.xlsx”文件到原位置。 2.搜索文件或文件夹,要求如下: 查找C盘上所有以大写字母“A”开头,文件大小在10KB以上的文本文件。(提示:搜索时,可以使用“?”和“*”。“?”表示任意一个字符,“*”表示任意多个字符。)

3. 在桌面上为C:盘根目录下的“作业”文件夹创建一个桌面快捷方式。★期末机试必考题★ 3.“计算机”或“资源管理器”的使用 (1) 在“资源管理器”窗口,设置以详细信息方式显示C:\WINDOWS中所有文件和文件夹,使所有图标按类型排列显示,并不显示文件扩展名。(提示:三步操作全部做完后,将窗口中显示的最终设置结果抓一张图片即可) (2) 将C:盘根目录中“介绍信.docx”的文件属性设置为“只读”和“隐藏”,并设置在窗口中显示“隐藏属性”的文件或文件夹。(提示:请将“文件夹”对话框中选项设置效果与C:盘根目录中该文件图标呈现的半透明显示效果截取在一整张桌面图片中即可) 4.回收站的设置 设置删除文件后,不将其移入回收站中,而是直接彻底删除功能。

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

操作系统实验报告

操作系统教程实验报告 专业班级 学号 姓名 指导教师

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

重庆大学汇编实验报告3

《汇编语言程序设计》实验报告 年级、专业、班级姓名 实验题目实验3:汇编程序的循环结构的使用 实验时间2013年4月15 实验地点DS1421 实验成绩实验性质□验证性 设计性□综合性教师评价: □算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范; 其他: 评价教师签名: 一、实验目的 通过一个排序算法,来熟悉和掌握利用汇编语言实现循环处理能力的程序。 二、实验项目内容 1 编写一个整数数组内的元素排序的程序 2 需要排序数组大小为10个DW的整数 3 按照从低到高输出这10个数字 4 要求撰写必要程序模块设计图和主要的流程 三、实验过程或算法(源程序) assume cs:code,ds:data data segment dw 1234h,2a45h,345bh,45c7h,5678h,4321h,5432h,6543h,7654h,0d765h table db '0123456789abcde' data ends stack segment db 32 dup(0) stack ends code segment start: mov ax,data mov ds,ax

mov di,0 mov ax,stack mov ss,ax mov sp,32 mov cx,9 s0: mov ax,ds:[si] push cx s1: add si,2 cmp ax,ds:[si] jb change s2: loop s1 xchg ax,ds:[si] xchg ax,ds:[di] mov si,0 mov di,0 pop cx loop s0 mov ax,data mov ds,ax mov si,0 call show mov ax,4c00h int 21h change: mov ax,ds:[si] mov di,si jmp s2 show: push es push di push ax push bx push cx push dx mov ax,0b800h mov es,ax mov di,160*12+2*10 mov cx,10 show1: push cx

操作系统实验报告

操作系统实验报告 银行家算法 班级:计算机()班 姓名:李君益 学号:(号) 提交日期: 指导老师: 林穗 一、设计题目 加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、设计要求

内容: 编制银行家算法通用程序,并检测思考题中所给状态的安全性。 要求: (1)下列状态是否安全?(三个进程共享个同类资源) 进程已分配资源数最大需求数 (状态) (状态) (2)考虑下列系统状态 分配矩阵最大需求矩阵可用资源矩阵 问系统是否安全?若安全就给出所有的安全序列。若进程请求(),可否立即分配? 三、设计分析 一.关于操作系统的死锁 .死锁的产生 计算机系统中有许多独占资源,他们在任一时刻只能被一个进程使用,如磁带机,绘图仪等独占型外围设备,或进程表,临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据库错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一辞源的能力。一个进程需要使用独占型资源必须通过以下的次序: ●申请资源 ●使用资源 ●归还资源 若申请施资源不可用,则申请进程进入等待状态。对于不同的独占资源,进程等待的方式是有差别的,如申请打印机资源、临界区资源时,申请失败将一位这阻塞申请进程;而申请打开文件文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。只得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。 在许多应用中,一个进程需要独占访问多个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。这种现象称为“死锁”。 2.死锁的定义 一组进程处于死锁状态是指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的时间,则称一组进程或系统此时发生了死锁。 .死锁的防止 .死锁产生的条件: ●互斥条件

重庆大学网教作业答案-计算机基础 ( 第3次 )

第3次作业 一、简答题(本大题共100分,共 20 小题,每小题 5 分) 1. Windows XP操作系统中,如何打开计算器。 2. Windows 7操作系统中,复制与移动文件或文件夹可以通过哪些方式实现? 3. Windows 7操作系统中,如何恢复被删除的文件或文件夹。 4. 在PowerPoint中,怎样在幻灯片播放的时候做标记? 5. 请简述PowerPoint 2010中进入幻灯片母版的方法。 6. 请简述睡眠与休眠的相同点和不同点。 7. 在PowerPoint中,幻灯片放映时怎么实现排练计时? 8. Windows 7操作系统中,如何打开计算器。 9. 请简述进入幻灯片母版的方法。 10. Windows 7操作系统中,对文件或文件夹进行重命名可以通过那些途径实现? 11. 请简述计算机安全的定义。 12. 简述CPU主要性能技术指标。 13. 请简述计算机木马的防治措施。 14. 请简述计算机的五大组成部分。 15. 简述在Windows 7中,何处可以找到系统还原向导。 16. 请简述Excel的主要功能。 17. 请简述操作系统的工作任务。 18. 请简述如何在Excel 2010中插入公式与函数? 19. 请简述拒绝服务攻击的原理。 20. 在Excel中,请简述添加或删除水平分页线的方法。 答案: 一、简答题(100分,共 20 题,每小题 5 分) 1. 参考答案: 开始→所有程序→附件→计算器。 解题方案: 参见Windows XP操作系统计算器应用程序相关内容。 评分标准: 2. 参考答案: 一、使用菜单操作;二、利用快捷菜单操作;三、用鼠标拖动文件或文件夹进行操作。

linux操作系统实验报告.

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年05月16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

操作系统实验报告.

学生学号0121210680225 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李安福 学生专业班级软件sy1201 2014 — 2015 学年第一学期

《操作系统》实验教学大纲 课程编号: 课程名称:操作系统/Operating System 实验总学时数:12学时 适应专业:计算机科学与技术、软件工程 承担实验室:计算机科学与技术学院实验中心 一、实验教学的目的和任务 通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。 二、实验项目及学时分配 序号实验项目名称实验学时实验类型开出要求 01 Linux键盘命令和vi 2 设计必开 02 Linux下C编程 2 设计必开 03 SHELL编程和后台批处理 2 设计必开 04 Linux系统调用(time) 2 设计必开 05 Linux进程控制(fork) 4 设计必开 三、每项实验的内容和要求: 1、Linux键盘命令和vi 要求:掌握Linux系统键盘命令的使用方法。 内容:见教材p4, p9, p40, p49-53, p89, p100 2、Linux下的C编程 要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。 内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。 3、SHELL编程和后台批处理 要求:掌握Linux系统的SHELL编程方法和后台批处理方法。 内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。 (2) 将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。 (3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键 盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容, 然后输出到屏幕。 4、Linux系统调用使用方法。

重庆大学网教作业答案-计算机基础 ( 第2次 )

第2次作业 一、单项选择题(本大题共60分,共 20 小题,每小题 3 分) 1. “写字板”是一个使用简单,但功能强大的 ______ 处理程序。 A. 文字 B. 图像 C. 音频 D. 视频 2. 在Windows 7中,可以使用桌面上的 ______ 来浏览或查看系统提供的所有软、硬件资源。 A. 我的电脑 B. 回收站 C. 公文包 D. 网上邻居 3. 在Mirosoft Word 2010中,用户可以通过”开始”菜单中的 ______ 命令 打开”文档搜索”导航。 A. 搜索 B. 替换 C. 选择 D. 属性 4. Microsoft Office是 ______ 公司推出的办公自动化组件。 A. Microsoft B. Oracle C. IBM D. Google 5. 在多媒体技术中所说的媒体是指 ______ A. 磁盘 B. 光盘 C. 信息 D. 信 息的表现形式 6. 在Word中,当多个文档打开时.关于保存这些文档的说法中正确的是 ______ A. 用”文件”菜单的”保存”命令,只能保存活动文档 B. 用”文 件”菜单的”保存”命令,可以重命名保存所有文档 C. 用”文件”菜单的” 保存”命令,可一次性保存所有打开的文档 D. 用”文件”另存为”全部保 存”命令保存所有打开的文档 7. 信息技术是 ______ 的产物,在应用中得以拓展和延伸。 A. 计算机技术发展 B. 网络技术发展 C. 通讯技术发展 D. 以上三种综合发展 8. Windows 7操作系统中,快捷键 ______ 删除文件或文件夹到回收站。 A. Home B. Delete C. Backspace D. Esc 9. Microsoft Office 2010办公自动化组件是基于 ______ 界面的所见即所得 的自动化应用软件。 A. 命令行 B. 字符型 C. 图形 D. 3D 10. 面不属于网络安全的基本属性是 ______ 。 A. 机密性 B. 可用性 C. 完 整性 D. 正确性 11. Windows 7操作系统中,可以用下列哪种方法对文件或文件夹进行复制与 移动操作 ______ 。 A. 鼠标 B. 快捷键 C. 菜单 D. 以上全部 12. 常用鼠标包括 ______ A. 机械鼠标 B. 光学鼠标 C. 光学机械鼠标 D. 以上都是 13. 制造第三代计算机所使用的主要元器件是 ______ A. 电子管 B. 晶体管 C. 集成电路 D. 光纤 14. 在Internet中,搜索引擎其实也是一个 ______ 。 A. 网站 B. 操作系统 C. 域名服务器 D. 硬件设备 15. 在Word中,可使用设计菜单中的“边框”命令中的“边框和底纹”,可以设置______。 A. 边框 B. 底纹 C. 页面边框 D. 以上全部 16. 一个Excel文档由若干个 ______ 组成。 A. 公式 B. 表 C. 单元格 D. 图 17. 要想接入Internet网,必须遵循 ______ 协议。 A. SNMP B. TCP/IP C. NETBIOS D. PPP 18. Windows 7操作系统中,利用快捷键 ______ 可以将文件或文件夹彻底删除。 A. Delete B. Shift + Delete C. Esc D. Shift + Esc 19.

安徽工业大学操作系统实验报告

《操作系统教程》实验报告书 专业班级计11X 学号XXX 姓名XXX 指导教师郭玉华 安徽工业大学计算机

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32Consol Application(控制 (2)台应用程序)。 (3)掌握WINDOWS API的使用方法。 (4)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32Consol Application 步骤1:登录进入Windows,启动VC++6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++Source File”,然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果(如果运行不成功,则可能的原因是什么?): 运行成功,截图: (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果(如果运行不成功,则可能的原因是什么?): process ID:3716,EXE file:3.exe,%d in Kernel mode:60 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

操作系统实验报告

操作系统实验报告班级:软件1042 姓名:****** 学号:101***** 指导老师:***老师 安徽工业大学工商学院2012年12月

目录 实验一 WINDOWS进程初识 (2) 1、实验目的 (2) 2、实验内容和步骤 (2) 3、实验结论 (4) 实验二进程管理 (4) 1、实验目的 (4) 2、实验内容和步骤 (4) 3、实验结论 (9) 实验三进程同步的经典算法 (9) 1、实验目的 (9) 2、实验内容和步骤 (10) 3、实验结论 (12) 实验四存储管理 (12) 1、实验目的 (12) 2、实验内容和步骤 (12) 3、实验结论 (19)

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 刚开始由于命令输入有误经改正后,正确调试出结果 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) :

相关文档
相关文档 最新文档