大连理工大学操作系统实验报告

大连理工大学操作系统实验报告
大连理工大学操作系统实验报告

大连理工大学

本科实验报告

课程名称:操作系统实验

学院(系):计算机科学与技术学院专业:计算机科学与技术

班级:电计

学号:

学生姓名:

年月日

实验项目列表

大连理工大学实验报告

学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计1301

姓名:学号:组:___

实验时间:2016.6.3 实验室:综412 实验台:

指导教师签字:成绩:

进程管理实验

一、实验目的

加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux系统中进程创建与控制有关的系统调用的编程和调试技术。

二、实验原理和内容

原理:(1)fork成功创建子进程后将返回子进程的进程号,不成功会返回-1 (2)exec 系统调用有一组6个函数,其中示例实验中引用了execve 系统调用语法:

#include

int execve(const char *path, const char *argv[], const char * envp[]);

path 要装入的新的执行文件的绝对路径名字符串.

argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).

envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空). Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。exec 调用失败,它会返回-1。

内容:

(1) 每个进程都执行自己独立的程序,打印自己的pid ,每个父进程打印其

子进程的pid;

(2) 每个进程都执行自己独立的程序,打印自己的pid ,父进程打印其子进

程的pid;

(3) 编写一个命令处理程序,能处理max(m,n), min(m,n)和 average(m,n,l)

这几个命令。(使用exec 函数族) 三 实验代码及结果

(1)

#include #include int main() {

if(fork() == 0) {

printf("子进程的pid 为:%d.\n",getpid()); if(fork() == 0) {

printf("二级子进程的pid 为:%d.\n",getpid()); } } else {

printf("父进程的pid为%d.\n",getpid());

}

return 0;

}

运行结果:

(2)

#include

#include

int main()

{

if(fork() == 0)

{

printf("子进程的pid为%d.\n",getpid());

}

else

{

if(fork() == 0)

{

printf("子进程2的pid %d.\n",getpid());

}

else

{

printf("父进程的pid为%d.\n\n",getpid());

}

}

return 0;

}

(3)

调用函数为:

include

#include

#include

#define N 10

int main()

{

int i;

char cmdname[N];

printf("$ ");

scanf("%s",cmdname);

if(strcmp(cmdname,"min")==0)

{

execl("/home/lenovo/min","min",NULL);

}

else if(strcmp(cmdname,"max")==0)

{

execl("/home/lenovo/max","max",NULL);

}

else if(strcmp(cmdname,"ave")==0)

{

execl("/home/lenovo/average","ave",NULL);

}

else

printf("′í?ó!\n");

return 0;

}

Max函数为:

#include

#include

#include

int main()

{

int a,b;

printf("请输入要比较的两个数:\n");

scanf("%d%d",&a,&b);

printf("大的数是:%d\n",a>b?a:b);

}

Min函数为:

#include

#include

#include

int main()

{

int a,b;

printf("请输入要比较的两个数:\n");

scanf("%d%d",&a,&b);

printf("小的数是:%d\n",a

}

Average函数为:

#include

#include

#include

int main()

{

float a,b,c;

printf("请输入要求平均值的两个数:\n");

scanf("%f%f%f",&a,&b,&c);

printf("平均值为:%.3f\n",(a+b+c)/3);

}

实验结果为:

(此处文字打错,实际输入三个数)

四实验总结

本次实验熟悉了用cygwin软件模拟linux系统的编译环境,熟悉了编译语句gcc 1.c –o 1和执行语句./1.exe的使用。并且编程实现了fork成功创建子进程及父子进程间的关系,比如else则代表父进程,比如二级子进程的建立方法。

大连理工大学实验报告

学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计1301

姓名:学号:组:___

实验时间:2016.6.3 实验室:综412 实验台:

指导教师签字:成绩:

存储管理实验

一实验目的

加深对于存储管理的了解,掌握虚拟存储器的实现原理;观察和了解重要的页面置换算法和置换过程。练习模拟算法的编程技巧,锻炼分析试验数据的能力。

二实验内容

1. 示例实验程序中模拟两种置换算法:LRU算法和FIFO算法。

2. 能对两种算法给定任意序列不同的页面引用串和任意页面实内存数目的组合测试,显示页置换的过程。

3. 能统计和报告不同置换算法情况下依次淘汰的页号、缺页次数(页错误数)和缺页率。

三实验代码及结果

#include

#include

#include

int a[100],b[100];//执行页号序列、主存中的队列

int len;//序列长度

int n;//引用页面号的个数0~n-1

int m;//内存中可容纳页面数目

int no;//缺页次数

float qyl;//缺页率

int front,rear;

int check(int x)//检查队列中是否有该页号

{

int j;

for(j=front;j<=rear;j++)

{

if(b[j]==x) return 1;

}

return 0;

}

int find(int i)//寻找队列中最近最少使用的页号,仅lrU算法使用该函数{

int j,k,small=100,x,count=0;

int flag[100];//标记这个数是否在最近使用的m个数中

memset(flag,0,sizeof(flag));

for(k=i-1;k>=0;k--)

{

if(flag[a[k]]==0)

{

flag[a[k]]=1;

count++;

if(count==m)

{

for(j=front;j<=rear;j++)

{

if(b[j]==a[k]) return j;

}

}

}

}

return x;

}

void FIFO()//先进先出算法

{

int i,j;

front=rear=0;

no=0;

b[front]=a[0];

printf("%d 无淘汰缺页加1\n",b[front]);

no+=1;

for(i=1;i

{

if((rear-front+1)

{

if(check(a[i])==0)//检测到队列中没有该页号

{

b[++rear]=a[i];

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("无淘汰缺页加1\n");

no+=1;

}

else if(check(a[i])==1)//检测到队列中有该页号

{

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("无淘汰不缺页\n");

}

}

else if((rear-front+1)==m)//内存页数已满

{

if(check(a[i])==0)//检测到队列中没有该页号

{

b[++rear]=a[i];

front+=1;

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("淘汰页号%d 缺页加1\n",b[front-1]);

no+=1;

}

else if(check(a[i])==1)//检测到队列中有该页号

{

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("无淘汰不缺页\n");

}

}

}

qyl=(float)no/(float)len;

printf("序列长度:%d 缺页次数:%d 缺页率:%.2f\n",len,no,qyl); }

void LRU()//最近最少使用算法

{

int i,j,temp;

front=rear=0;

no=0;

b[front]=a[0];

printf("%d 无淘汰缺页加1\n",b[front]);

no+=1;

for(i=1;i

{

if((rear-front+1)

{

if(check(a[i])==0)//检测到队列中没有该页号

{

b[++rear]=a[i];

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("无淘汰缺页加1\n");

no+=1;

}

else //检测到队列中有该页号

{

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("无淘汰不缺页\n");

}

}

else if((rear-front+1)==m)//内存页数已满,置换策略与FIFO不同{

if(check(a[i])==0)//检测到队列中没有该页号

{

temp=b[find(i)];

b[find(i)]=a[i];//替换掉最近最少使用的页号

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("淘汰页号%d 缺页加1\n",temp);

no+=1;

}

else if(check(a[i])==1)//检测到队列中有该页号

{

for(j=front;j<=rear;j++)

printf("%d ",b[j]);

printf("无淘汰不缺页\n");

}

}

}

qyl=(float)no/(float)len;

printf("序列长度:%d 缺页次数:%d 缺页率:%.2f\n",len,no,qyl);

}

int main()

{

int i,choice;

printf("请输入序列长度、页号个数、页面实内存数目:\n");

scanf("%d%d%d",&len,&n,&m);

//for(i=0;i

printf("随机生成页面引用串:");

srand( (unsigned)time( NULL ) ); //这个就是生成了一个种子

for(i=0;i

{

a[i]=rand()%n; //通过rand()%n来生成一个0~n-1的随机数,并将它赋给a[i]

printf("%d ",a[i]);

}

printf("\n请选择要使用的算法:1 FIFO 2 LRU\n");

scanf("%d",&choice);

printf("\n\n");

if(choice==1) FIFO();

else if(choice==2) LRU();

}

实验结果:

如图,选择FIFO算法序列长度为12,可选页号个数为10个(即随机生成0~9的页号),内存页数为4。页面置换过程如图,缺页11次,缺页率为0.92。

如图,选择LRU算法,序列长度为12,可选页号个数为10个(即随机生成0~9的页号),内存页数为4。页面置换过程如图,缺页9次,缺页率为0.75。

四实验总结

本次实验用C语言编程,确定序列长度、页号范围、内存中页面数目,随机生成页号序列。可分别选择两种算法来算出置换过程及缺页情况。本次实验使我深入的理解了FIFO算法和LRU算法的置换过程,并且通过比较发现,在大多数情况下LRU算法都具备更低的缺页率。

大连理工大学实验报告

学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计1301

姓名:学号:组:___

实验时间:2016.6.3 实验室:综412 实验台:

指导教师签字:成绩:

存储管理实验

一实验目的

加深对于操作系统设备管理技术的了解,体验磁盘移臂调度算法的重要性;掌握几种重要的磁盘移臂调度算法,练习模拟算法的编程技巧,锻炼研究分析试验数据的能力。

二实验内容

1. 示例实验程序中模拟两种磁盘移臂调度算法:SSTF算法和SCAN算法

2. 能对两种算法给定任意序列不同的磁盘请求序列,显示响应磁盘请求的过程。

3. 能统计和报告不同算法情况下响应请求的顺序、移臂的总量。

三实验代码及结果

#include

#include

int cidao[20];//要被访问的磁道序列

int biaoji[20];//标记是否访问过

int n,sum;//要访问的磁道个数,疑臂总量

void SSTF()

{

int i,j,k,min,now=100;//now为当前磁头所在磁道位置

sum=0;

printf("使用SSTF算法处理:\n");

for(i=0;i

{

min=200;//min的最大值可能是0~199,必须设为200

for(j=0;j

{

if(abs(cidao[j]-now)

{

min=abs(cidao[j]-now);

k=j;

}

}

biaoji[k]=1;

sum+=abs(cidao[k]-now);

printf("访问:%d 移动距离:%d\n",cidao[k],abs(cidao[k]-now));

now=cidao[k];

}

printf("移臂总量为:%d\n",sum);

}

void SCAN()

{

int i,j,k,min,now=100;//now为当前磁头所在磁道位置

int a=0,b;//ab分别为大于等于100 小于100的磁道个数

sum=0;

printf("使用SCAN算法处理:\n");

for(i=0;i

if(cidao[i]>=100) a+=1;

b=n-a;

for(i=0;i

{

min=200;//min的最大值可能是0~199,必须设为200

for(j=0;j

{

if(abs(cidao[j]-now)=now)

{

min=abs(cidao[j]-now);

k=j;

}

}

biaoji[k]=1;

sum+=abs(cidao[k]-now);

printf("访问:%d 移动距离:%d\n",cidao[k],abs(cidao[k]-now));

now=cidao[k];

}

for(i=0;i

{

min=200;//min的最大值可能是0~199,必须设为200

for(j=0;j

{

if(abs(cidao[j]-now)

{

min=abs(cidao[j]-now);

k=j;

}

}

biaoji[k]=1;

sum+=abs(cidao[k]-now);

printf("访问:%d 移动距离:%d\n",cidao[k],abs(cidao[k]-now));

now=cidao[k];

}

printf("移臂总量为:%d\n",sum);

}

int main()//默认从100磁道开始

{

int i;

printf("请输入磁道序列长度:\n");

scanf("%d",&n);

printf("随机生成磁道序列:");

srand( (unsigned)time( NULL ) ); //这个就是生成了一个种子

for(i=0;i

{

cidao[i]=rand()%200; //通过rand()%200来生成一个0~199的随机数,并将它赋给cidao[i]

printf("%d ",cidao[i]);

}

printf("\n");

memset(biaoji,0,sizeof(biaoji));

SSTF();

memset(biaoji,0,sizeof(biaoji));

SCAN();

}

如图,输入磁道数量10,随机生成访问磁道的序列188 102 54 173 159 134 112 97 93 149,范围在0~199之间。同时用两个算法对这个序列处理,“访问”即为访问磁道的顺序,最后SSTF算法移臂总量240,SCAN算法移臂总量222。两个算法移臂总量差距不大,对于某些序列二者的移臂总量相同。

四实验总结

本次实验使用C语言模拟了访问磁道顺序的算法,初始位置设为100,随机生成了0~199的序列,用SSTF和SCAN算法处理,对于大多数序列,SCAN要比SSTF算法节省移臂总量,但节省得不算太多,对于某些序列二者的移臂总量会出现相同的情况,使我深入理解了这两个算法以及比较出了算法之间的优劣。

大连理工大学计算机网络实验报告

大连理工大学本科实验报告 课程名称:计算机网络实验 学院(系):电信学部 专业:自动化 班级: 学号: 学生姓名: 2014年11月23日

大连理工大学实验预习报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验一:网络硬件环境准备实验 一、实验目的和要求 准备计算机网络实验所用到的计算机、网络设备和工具。 二、实验设备 1.网络传输介质在网络中,信息是通过传输介质来传送的,常用的网络传输 介质有三种: ①金属导体,用电流变化传输信息。如同轴电缆、双绞线等。 ②光纤,用光波传输信息。如透明玻璃为介质。 ③不需要物理连接,用电磁波的辐射传输信息。如无线电、微波、卫星等。 本实验采用超5类非屏蔽双绞线(UTP)做网络传输介质进行网络连接,最高数据传输速率是100Mbps。双绞线具有抗干扰性能好、布线方便、价格低、全双工的特点。适用于较短距离的电话系统和局域网系统。 2.网卡 网络接口卡(NIC)也被称为网络适配器,是一种连接设备。它能够使工作站、服务器、打印机或其他节点通过网络传输介质接收并发送数据。 首先要给PC机装上网卡,打开机箱,把网卡插在白色的PCI插槽里;然后开机,装上驱动程序;网络传输介质的连接器(如双绞线的RJ-45连接器)插入网卡的连接器接口。 三、实验内容 制作实验用的双绞线制作两端使用EIA/TIA568B同一标准的正线。

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验一:网络硬件环境准备实验 一、实验目的和要求 见预习报告 二、实验原理和内容 见预习报告 三、主要仪器设备 双绞线,网线头,电缆测试仪子母机,钳子。 四、实验步骤与操作方法 1.制作实验用的双绞线;制作两端使用EIA/TIA568B同一标准的正线。 2.按照线色排好理直、剪齐,能清楚的看到8个线头整齐的顶到最前位置,套 管推过止口位置;然后压紧。 3.逐根线检测 五、实验结果与分析 根据电缆测试仪子母机显示情况,制作一根八根线全部正常的网线 六、讨论、建议、质疑

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

2018大连理工大学大学物理A2作业25-28参考答案

1 作业二十五 稳恒磁场(一) 25-1. 127.210(T) B j -=? 12129.6107.210(T)B i j --=-?+? 25-2. 002I B L π=,方向与水平线成45度角,指向右上方。 25-3.(1)021 12()4I R R B R R μ-=,方向垂直纸面向外。 (2)2221()2I m R R π= -,方向垂直纸面向内。 25-4.(1 )01(22I B R μπ=,方向垂直纸面向内。 (2 )00(262I I B R R μμπ=2+,方向垂直纸面向内。 25-5. 2429.3410(A m ) 12.53(T)m B -=??= 25-6. 66.3710(T)B -=?,方向垂直纸面向外。 作业二十六 稳恒磁场(二) 26-1. 02I B x μπ=,Φ=0。 26-2. 22 2m v e B πΦ= 26-3. I l B 0d μ=?? . 26-4. 66210ln3 2.1910(Wb)--Φ=??≈? 26-5. 2202200()()()2() ()2r a I r a B a r b r b a I r b r μπμπ??≤?-?=≤≤?-??≥?? 26-6.解:(1)20 2110()()20 ()r D NI B D r D r r D μπ?? ;

2 (2)d d Bh r Φ= 0102 d ln 2NIh D N D μπΦ Φ=Φ=? 26-7. 沿磁感应线做一圆柱形高斯面,由高斯定理d 0S B S ?=??,当?S 很小时, 可得B 1=B 2 ,即同一条磁感应线上的B 相等; 用安培环路定理,由于回路当中不包围电流,则有 0d 0L B l I μ∑?==?, 所以3434=0=B l B l B B -→。由此证明题设。 作业二十七 稳恒磁场(三) 27-1. 0e m v mv B qR eR ==,方向垂直纸面向里。0 2T R t v π== 27-2. F IRB =,方向垂直纸面向里 27-3.(1)ab 两点间的电势差,b 点电势高。(2)41.0710(/)d v m s -∴=?。 (3)2835.8410(m )n -=? 27-4. (1) M m B =?,12M Il l B =,方向向上。 (2 ) 12A l = 27-5.做负功。电流同向,三条导线间是吸引力,由d d A F r =?可知,o 处导线给b 导线的作用力与 径向平行, 当将b 处导线沿切向移动到c 处时,该磁力不做功。 但该导线相对于a 处导线,距离增加,需要克服相互之间的吸引力(磁力)做负功。 27-6.不能,因为: B v q f ?= 带电粒子所受的磁场力始终与运动速度垂直,所以它只改变速度的 方向,不能改变速度的大小,因而不能改变粒子的动能。随时间变化的磁场会产生感应电动势,它有可能增大粒子的动能。 作业二十八 稳恒磁场(四) 28-1.(C) 28-2.不能。介质中的安培环路定理说明定理的左端,即H 的环流只与传导电流有关,与分子电流无

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

大连理工大学大学物理作业10(稳恒磁场四)与答案详解

作业 10 稳恒磁场四 1. 载流长直螺线管内充满相对磁导率为 r 的均匀抗磁质,则螺线管内中部的磁感应强度B 和磁场强度 H 的关系是 [ ] 。 A. B 0 H B. B r H C. B 0H D. B 0 H 答案:【 D 】 解:对于非铁磁质,电磁感应强度与磁场强度成正比关系 B r H 抗磁质: r 1,所以, B H 2. 在稳恒磁场中,关于磁场强度 H 的下列几种说法中正确的是 [] 。 A. H 仅与传导电流有关。 B. 若闭合曲线内没有包围传导电流,则曲线上各点的 H 必为零。 C.若闭合曲线上各点 H 均为零,则该曲线所包围传导电流的代数和为零。 D.以闭合曲线 L 为边界的任意曲面的 H 通量相等。 答案:【 C 】 解:安培环路定理 H dl I 0 ,是说:磁场强度 H 的闭合回路的线积分只与传导电流 L 有关,并不是说:磁场强度 H 本身只与传导电流有关。 A 错。 闭合曲线内没有包围传导电流,只能得到:磁场强度 H 的闭合回路的线积分为零。并 不能说:磁场强度 H 本身在曲线上各点必为零。 B 错。 高斯定理 B dS 0 ,是说:穿过闭合曲面,场感应强度 B 的通量为零,或者说, . S 以闭合曲线 L 为边界的任意曲面的 B 通量相等。对于磁场强度 H ,没有这样的高斯定理。 不能说,穿过闭合曲面,场感应强度 H 的通量为零。 D 错。 安培环路定理 H dl I 0 ,是说:磁场强度 H 的闭合回路的线积分等于闭合回路 L 包围的电流的代数和。 C 正确。 抗磁质和铁磁质的 B H 曲线,则 Oa 表示 3. 图 11-1 种三条曲线分别为顺磁质、 ; Ob 表示 ; Oc 表示 。 答案:铁磁质;顺磁质; 抗磁质。 4. 某铁磁质的磁滞回线如图 11-2 所示,则 图中 Ob (或 Ob ' )表示 ; Oc (或 Oc ' )表示 。 答案:剩磁;矫顽力。

大工18春金工实习一实验报告及要求

https://www.360docs.net/doc/a04321125.html, ------------------------------------------------------------------------------------------------------------------------------ 《金工实习(一)》实验报告及要求 学习中心:姓名: 1.请简述根据所起的作用不同,切削运动可分为哪两种运动。 答: 2.请简述卧式铣床的组成及其作用。 答: 3.请简述牛头刨床的组成及作用。 答: 4.刨床主运动是什么? 答: 5.平面磨床的组成及其作用有哪些? 答: 6.外圆磨床的组成及其作用有哪些? 答: 7.请简述Z412型台式钻床的工作特点。 答: 8.麻花钻的结构包括哪些? 答: 9.扩孔钻的特点有哪些? 答: 10.攻螺纹要点包括哪些? 答: 11. 学习心得 为区分实验报告是否独立完成,请写些自己对该实验课程的想法或者学习心得。 实验报告要求 一、课程考核形式 本课程的考核形式为离线作业(实验报告),无在线作业和考试。“离线作业

https://www.360docs.net/doc/a04321125.html, ------------------------------------------------------------------------------------------------------------------------------ 及要求”在该课程的“离线作业”模块中下载。 二、离线作业要求 请根据课件中的操作及实验结果来认真填写实验报告,并提交至课程平台,学生提交的实验报告作为本课程考核的依据,未提交者无成绩。 《金工实习(一)》实验报告由车床的组成及调整、铣床的组成及铣削平面的方法、牛头刨床的组成及调整、磨床及磨削加工、钻床及钻孔加工方法、扩孔、锪孔及铰孔加工方法、螺纹的加工七个独立的部分构成,学生需要完成实验报告的全部内容。 三、离线作业提交形式 学生需要以附件形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业,点“上交”即可。如下图所示。 四、离线作业批阅 老师会在作业关闭后集中批阅离线作业,在离线作业截止提交前不进行任何形式的批阅。 注意事项: 独立完成实验报告,不准抄袭他人或者请人代做,如有雷同,成绩以零分计!

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

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

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

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

大工19秋《电机与拖动实验》实验报告

网络教育学院电机与拖动实验报告 学习中心:汕头市知纳培训中心奥鹏学习中心层次:专升本 专业:电气工程及其自动化 学号: 学生: 完成日期: 2020年03 月01 日

实验报告一 实验名称:单项变压器实验 实验目的:1、通过空载和短路实验测定变压器的变比和参数。 2、通过负载实验测取变压器的运行特性。 实验项目:1、空载实验测取空载特性Uo=F(uo), P=F(uo) 2、短路实验测取短路特性Yk=F(Ik), PK=F(I) 3、负载实验保持U I =U1u1,cosφ2=1的条件下,测取U2=F(I2)(一)填写实验设备表

(二)空载实验 1.填写空载实验数据表格 2. 根据上面所得数据计算得到铁损耗Fe P 、励磁电阻m R 、励磁电抗m X 、电压比k

(三)短路实验 1.填写短路实验数据表格 O (四)负载实验 1. 填写负载实验数据表格 (五)问题讨论 1. 什么是绕组的同名端? 2. 为什么每次实验时都要强调将调压器恢复到起始零位时方可合上电源开关或断开电源开关? 尽可能避免因万一连线错误而造成短路,烧毁电源。

3. 实验的体会和建议 体会:通过实验我对变压器的参数有了进一步的认识和理解,对变压器的特性有了更具体深刻的体会,同时学会了在实验室应根据需要正确选择各仪表量程保护实验设备。 建议:数据的处理只用表格来进行了,显得比较粗糙,可以用图表来处理,结果会更直观。

实验报告二 实验名称:直流发电机实验 实验目的:掌握用实验方法测定直流发电机的运行特性,并根据所测得的运行特性评定该被试电机的有关性能 实验项目:空载特性外特性调整特性 (一)填写实验设备表

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 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

大连理工大学大学物理课件

它们的静电能之间的关系是[ ]。 .A 球体的静电能等于球面的静电能 .B 球体的静电能大于球面的静电能 .C 球体的静电能小于面的静电能 .D 球体内的静电能大于球面内的静电能,球体外的静电能小于球面外的静电能 答案:【B 】 解:设带电量为Q 、半径为R ,球体的电荷体密度为ρ。 由高斯定理,可以求得两种电荷分布的电场强度分布 02 2επQ E r S d E S ==??? ,2 002r Q E επ= 对于球体电荷分布: 03223402 03 1>==ερεπρ πr r r E ,(R r <);2022r Q E επ=,(R r >)。 对于球壳电荷分布: 0/1=E ,(R r <);2 0/ 22r Q E επ= ,(R r >)。 可见,球外:两种电荷分布下,电场强度相等;球内:球体电荷分布,有电场,球壳电荷分 布无电场。 静电场能量密度202 1 E εω= 两球外面的场强相同,分布区域相同,故外面静电能相同;而球体(并不是导体)内部也有电荷分布,也是场分布,故也有静电能。所以球体电荷分布时,球内的静电场能量,大于球面电荷分布时,球内的静电场能量;球体电荷分布时,球外的静电场能量,等于球面电荷分布时,球外的静电场能量。 2.1C 和2C 两空气电容器串联起来接上电源充电,然后将电源断开,再把一电介质板插入1C 中,如图6-1所示,则[ ]。 .A 1C 两端电势差减少,2C 两端电势差增大 .B 1C 两端电势差减少,2C 两端电势差不变 .C 1C 两端电势差增大,2C 两端电势差减小 .D 1C 两端电势差增大,2C 两端电势差不变 答案:【B 】 解:电源接通时,给两个串联的电容器充电。充电量是相同的,是为Q 。则两个电容器的电压分别为 11C Q U = ,2 2C Q U = 电源断开后,1C 插入电介质,两个电容器的电量不变,仍然都是Q 。但1C 的电容增大,因此1C 两端的电压降低;而2C 不变,因此,2C 两端的电压不变。 3.一平行板电容器,板间相距d ,两板间电势差为U ,一个质量为m ,电荷为e -的电子,从负极板由静止开始向正极板运动,它所需的时间为[ ]。

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

操作系统实验报告

操作系统实验报告 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的镜像文件,如图所示:

大工15秋《金工实习(二)》实验报告

网络高等教育《金工实习(二)》实验报告 学习中心:鞍山奥鹏学习中心 层次:专升本 专业:机械设计制造及其自动化 年级: 15年秋季 学生姓名:张志国

1.车床安装工件时,注意事项有哪些? 答:答:车床安装工件时,注意事项如下: (1).只要满足加工要求,应尽量减少工件悬伸长度; (2)工件要装正夹牢; (3)夹紧工件后随手取下三爪扳手,以免开车后飞出伤人; (4)安装大工件时,卡盘下面要垫木板,以免工件落下,砸坏床身导轨 2.请简述车床在车削中试切的意义。 答:答:刻度盘和丝杠的螺距均有一定误差,往往不能满足精车尺寸精度的要求,在单件小批生产中常采用试切的方法来保证尺寸精度。 3.请简述三面刃铣刀及立铣刀的特点及使用场合。 答:三面刃铣刀:在其圆周和两个端面上均有刀齿。由于三面刃铣刀的结构特点。它可以在工件上同时铣削2-3个表面。立铣刀:在它的圆周及端部,有若干刀齿。套式立铣刀:对于直径较大的立铣刀一般采用空心结构。又称套式立铣刀。键槽铣刀:其端部为两个刀刃。它可以在工件上直接加切深。键槽铣刀一般安装在立式铣床或键槽铣床上。锯片铣刀通常安装在卧铣上。还有一些铣刀,专门加工一些特型沟槽。这些铣刀刀刃部分的轴面形状与被加工的沟槽截面吻合。 4.请简述刨床刨削T型槽的步骤。 答:刨床刨削T型槽的步骤:第一步:刨削顶面。第二步:换上切刀,按加工线刨直槽。第三步:换上右弯头刀,刨右凹槽,回程时抬刀要高于工件,使刨刀从槽外退回,以免损坏刨刀。这一点与刨平面不同。第四步,换上左弯头刀,刨左凹槽,工件进给方向与刨右凹槽相反。

5.请简述砂轮和砂轮的组成。 答:砂轮是磨削的切削工具,是由许多细小磨粒结合剂粘接而成的一种多孔物体。磨粒、结合剂和气孔是砂轮结构的三要素。磨粒起切削作用,结合剂起连接作用,气孔起形成切削刃,容纳屑沫,散热冷却的作用。根据磨料不同,常用的有刚玉类及氧化铝砂轮和碳化硅类砂轮。 6.请简述磨削加工范围。 答:磨削加工范围:磨平面、磨外圆、磨内圆外、磨螺纹、磨齿形、磨花键等磨削加工属于精加工,其主要特点是: (1)可获得较高的尺寸精度; (2)可获得较小的表面粗糙度Ra值; (3)可加工高硬度的工件材料,如:淬硬钢、硬质合金和玻璃等。但一般不宜加工韧性较大 的有色金属。 7.请简述微机数控线切割机床加工工件的操作流程。 答:微机数控线切割机床加工工件的操作流程如下: 1、根据零件形状和尺寸进行编程,自动编程机具有键盘输入、数据显示、屏幕作图和纸带穿孔等多种功能,可大大提高编程效率。 2、穿孔纸带输入机将编好的加工程序自动输入计算机。 3、将穿好钼丝的工件安装在工作台上:加工具有内封闭几何图图形的工件时,需要在工件加工部位,首先钻一个工艺,以便钼丝从孔中传入。 4、调整好机床和放电参数。 5、进行线切割加工。

操作系统实验报告

实验报告 实验课程名称:操作系统 实验地点:南主楼七楼机房 2018—2019学年(一)学期 2018年 9月至 2019 年 1 月 专业: 班级: 学号: 姓名: 指导老师:刘一男

实验一 实验项目:分时系统模拟 实验学时:2实验日期: 2018-10-25 成绩: 实验目的利用程序设计语言模拟分时系统中多个进程按时间片轮转调度算法进行进程调度的过程; 假设有五个进程A,B,C,D,E,它们的到达时间及要求服务的时间分别为:进程名 A B C D E 到达时间0 1 2 3 4 服务时间 4 3 4 2 4 时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:BDACE

(1)修改时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:ADBCE (2)修改时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间.

顺序:ABCDE 1、思考 时间片的大小对调度算法产生什么影响?对计算机的性能产生什么影响?答:通过对时间片轮转调度算法中进程最后一次执行时间片分配的优化,提出了一种改进的时间片轮转调度算法,该算法具有更好的实时性,同时减少了任务调度次数和进程切换次数,降低了系统开销,提升了CPU的运行效率,使操作系统的性能得到了一定的提高。 A B C D E 时间片为1 周转时间12 9 14 8 13 3 3 3.5 4 3.25 带权周转 时间 时间片为2 周转时间8 12 13 7 13 2 4 3.25 3.5 3.25 带权周转 时间 时间片为4 周转时间 4 6 9 10 13 1 2 2.25 5 3.25 带权周转 时间

操作系统实验报告

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

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

大连理工大学 《模拟电子线路实验》实验报告

网络高等教育 《模拟电子线路》实验报告 学习中心:咸阳远程网络教育学校奥鹏学习中心 层次:高中起点专科 . 专业:电力系统自动化技术 . 年级: 2015 年春季 . 学号 161586128155 . 学生姓名:惠伟 .

实验一常用电子仪器的使用 一、实验目的 1.了解并掌握模拟电子技术实验箱的主要功能及使用方法。 2.了解并掌握数字万用表的主要功能及使用方法。 3.学习并掌握TDS1002 型数字存储示波器和信号源的基本操作方法。 二、基本知识 4.简述模拟电子技术实验箱布线区的结构及导电机制。 答:模拟电子技术试验箱布线区:用来插接元件和导线,搭建实验电路。配有2 只8 脚集成电路插座和 1 只14 脚集成电路插座。结构及导电机制:布线区面板以大焊孔为主,其周围以十字花小孔结构相结合,构成接点的连接形式,每个大焊孔与它周围的小孔都是相通的。 5.试述NEEL-03A型信号源的主要技术特性。 答:NEEL-03A 型信号源的主要技术特性: ①输出波形:三角波、正弦波、方波、二脉、四脉、八脉、单次脉冲信号; ②输出频率:10Hz~1MHz 连续可调; ③幅值调节范围:0~10VP-P 连续可调; ④波形衰减:20dB、40dB; ⑤带有 6 位数字频率计,既可作为信号源的输出监视仪表,也可以作外侧频率计用。 注意:信号源输出端不能短路。 6.试述使用万用表时应注意的问题。 答:应注意使用万用表进行测量时,应先确定所需测量功能和量程。确定量程的原则: ①若已知被测参数大致范围,所选量程应“大于被测值,且最接近被测值”。 ②如果被测参数的范围未知,则先选择所需功能的最大量程测量,根据初测结果逐步把量程下调到最接近于被测值的量程,以便测量出更加准确的数值。如屏幕显示“1”,表明已超过量程范围,须将量程开关转至相应档位上。

实时操作系统实验报告2

实时操作系统实验报告 专业:11通信工程 学号:20110306136 姓名: 王帅 指导老师:申屠浩

实验二 任务管理实验 实验目的: 1、理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 2、掌握μC/OS -II 中任务管理的基本方法(挂起、解挂); 3、熟练使用μC/OS -II 任务管理的基本系统调用。 实验要求与思路: 为了体现任务的各个基本状态及其变迁过程,本实验设计了T0、T1和T3三个任务,它们交替运行,如图2-2所示。 T0 T1 T2 T3 T4 T5 T6 T7 T8 图2-2 注意: 图中的栅格并不代表严格的时间刻度,而仅仅表现各任务启动和执行的相对先后关系。 说明: 在系统完成初始化后,可以先创建并启动优先级最低的TaskStart ,由它创建其他3个应用任务T0、T1和T2,之后整个系 T0 T2 T1 T0 T1 T2 T1 T0

统的运行流程如下: 1)优先级最高的T0开始执行,之后T0挂起自己; 2)然后系统调度选中T1开始执行,之后T1挂起自己; 3)接着系统调度选中T2,之后唤醒T0; 4)如此循环 实现提示: 在启动任务中创建三个任务后,应挂起任务1和任务2。 在每个任务恢复其它任务并挂起自己之前,显示当前三个任务的状态,并延时1秒。 函数说明: void PC_GetDateTime (char *s); 获取"YYYY-MM-DD HH:MM:SS"格式的时间字串存放在字符串s中,s的长度最少为21字节。 void PC_DispStr (INT8U x, INT8U y, INT8U *s, INT8U color); 在y行x列以color颜色值显示字串s,注意color由背景色和前景色两种颜色构成。 INT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT16U milli); 按时、分、秒、毫秒设置进行延时。 void OSTimeDly (INT16U ticks) 按ticks值进行延时,1 ticks一般为10ms。 INT32U OSTimeGet (void)

相关文档
最新文档