计算机操作系统实验

上传人:博****1 文档编号:512444851 上传时间:2023-08-21 格式:DOCX 页数:16 大小:27.96KB
返回 下载 相关 举报
计算机操作系统实验_第1页
第1页 / 共16页
计算机操作系统实验_第2页
第2页 / 共16页
计算机操作系统实验_第3页
第3页 / 共16页
计算机操作系统实验_第4页
第4页 / 共16页
计算机操作系统实验_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机操作系统实验》由会员分享,可在线阅读,更多相关《计算机操作系统实验(16页珍藏版)》请在金锄头文库上搜索。

1、实验一:了解操作系统一、实验目的:通过在虚拟机中装载操作系统、并对硬盘进行分区的操作对操作系统有进一步和深入的 了解,学会使用VMware Workstation,掌握操作系统的安装和对磁盘进行分区等各种操作二、实验原理:在VMware Workstation中装载操作系统、对硬盘进行分区三、实验器材:硬件:计算机 软件:VMware Workstation、windows系统镜像四、实验步骤:1. 打开计算机并运行VMware Workstation,新建虚拟机文件2. 在VMware Workstation中找到保存在本地的系统镜像文件并选择3. 启动虚拟机4在弹出对话框中选择PQ系统分区

2、,对硬盘进行分区5.重新启动虚拟机,选择系统安装位置6在装好的操作系统中进行各项操作,检查系统是否存在错误7.实验完成,关闭VMware Workstation,关闭计算机五、实验心得:通过本次实验中的各项操作,我学会了安装操作系统并对磁盘进行分区,了解了操作系 统,掌握了安装操作系统以及对硬盘进行分区等的各项操作。实验二:进程同步和互斥一、实验目的:1、掌握临界资源,临界正概念及并发进程互斥,同步访问原理2、学会使用高级语言进行多线程编程方法3、掌握利用VC+语言线程库实现进程的互斥,条件竞争并编码实现oP.O操作,利用 P.O操作实现两个并发线程,对有界临界区的同步访问。二、实验要求:1、

3、知识基础:学生应在完成进程和线程及调度章节学习后进行2、开发环境工具:硬件平台-网络实验室软件平台windows操作系统 VC+语言开发环境三、实验内容:1、实现临界资源临界区进程或线程的定义与创建2、 合用两个并发运行的进程实现互斥算法和有界缓冲区的同步算法四、实验步骤:kan ra/ Process.cpp : 定义控制台应用 程序的入口点。/#include stdafx.h#include #include stringusing namespace std;static int Mutex=1;static int S=5;int MBlock=0;int SBlock=0;clas

4、s UiProcesspublic:int Swait(int& s)s=sT;if(s=0)elsereturn 0;void Ssignal(int& s)s=s+1;int BlockProcess()if(Mutex=0)MBlock=abs(Mutex); return MBlock;if(S=0)SBlock=abs(S); return SBlock;return BlockProcess();void Print(string s)coutsendl;void Pri nt(string s,i nt i)couts iendl;void Process()int i=this

5、-Swait(S);int j=this-Swait(Mutex); if(i=0 & j=0)Prin t(进程可以运行);else if(i0)Prin t(当前因资源阻塞的进 程数目为:,i);五、实验心得:通过这次试验,加深了对进程同步的理解。else if(j0)Prin t(当前因互斥阻塞的进 程数目为:,j);this-Ssignal(Mutex); /this-Ssignal(S);int _tmain(int argc, _TCHAR* argv)for(int i=0;i10;i+)UiProcess ui;ui.Process();system(pause);return

6、 0;实验三:矩阵乘法实验目的:熟悉矩阵乘法规则以及在计算中实现二、实验环器材:Windows XP ,vc+6.0三、实验内容:将程序输入计算机,调试运行程序。程序如下:#includevstdio.h void main()int i,j,k;int a53=l,2,3,2,3,4,3,4,5,4,5,6,5,6,7;相乘的一个矩阵int b34 = 1,2,3,4,1,2,3,4,1,2,3,4;int c54=0;for(i=0; i5; i+) for(j=0;j4;j+) for(k=0;kv3;k+)cij+=aik*bkj;/*以上是主要的乘法算法,三个for循环*/*以下是打

7、印得到的矩阵*/for(i=0; i5; i+)printf(n); for(j=0;j#in cludevstdlib.hstruct typeint a;in t b;int c;struct allocati onstruct type value;struct maxstruct type value;struct max *n ext;struct availablestruct type value;struct available *n ext;struct n eedstruct type value;struct n eed *n ext;;struct pathint va

8、lue;struct path *n ext;;struct finishint value;struct finish *n ext;void mai n()int p,status=O,i,j,temp,flag=O;structallocati on*allochead,*alloc1,*alloc2,*alloctemp;structmax*maxhead,*max1,*max2,*maxtemp;structavailable*availablehead,*workhead,*worktemp;structn eed*n eedhead,* need1,* need2,* needt

9、emp;structpath*pathhead,*path1,*path2,*pathtemp;structfinish*fi ni shhead,*fi ni sh1,*fi ni sh2,*fi ni shtemp;prin tf(请输入进程的数目n);sca nf(%d,&p);for(i=O;ivp;i+)printf(n输入进程p%d已经分配的资源 n ”,i+1);if(flag=O)allochead=alloc1=alloc2=(struct allocatio n*)malloc(sizeof(struct allocati on);printf(t当前资源类型是%ct,a)

10、;sca nf(%d,&alloc1-value.a);printf(t当前资源类型是%ct,b);sca nf(%d,&alloc1-value.b);printf(t当前资源类型是%ct,c);sca nf(%d,&alloc1-value.c);flag+;allochead=alloc1;elsealloc2=(structallocatio n*)malloc(sizeof(struct allocati on);printf(t当前资源类型是%ct,a);sca nf(%d,&alloc2-value.a);printf(t当前资源类型是%ct,b);sca nf(%d,&allo

11、c2-value.b);printf(t当前资源类型是%ct,c);sea nf(%d,&alloc2-value.c);allocl- n ext=alloc2;alloc1=alloc2;flag+;alloc2- next=NULL;flag=0;for(i=O;ivp;i+)printf(n输入进程p%d要求的最大数目n ”,i+1);if(flag=O)maxhead=max1=max2=(struct max*)malloc(sizeof(struct max);printf(t当前资源类型是%ct,a);sca nf(%d,&max1-value.a);printf(t当前资源类型是ct,b);sca nf(%d,&max1-value.b);printf(t当前资源类型是%ct,c);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号