当前位置:文档之家› 作业实验1~3

作业实验1~3

作业实验1~3
作业实验1~3

操作系统实验1~3 理学院信息与计算科学1303 许艳红学号2013310200724

实验1

1建立两个子进程

#include

main()

{

int childpid1,childpid2;

while((childpid1=fork())==-1);

if(childpid1==0)

putchar('b');

else

{

while((childpid2=fork())==-1);

if(childpid2==0)

putchar('c');

else

putchar('a');

}

}

运行结果acb,bca,bac等,因为fork()创建进程的时间多于输出一个字符的时间,所以当创建进程2时,进程1一输出‘b',又进程2和主程序输出字符的次序具有随机性,所以会出现多种情况。

2.输出一句话

#include

int main()

{

int pid;

pid=fork();

if(pid==0)

printf("I am son,my pid is %d.\n",getpid());

else if(pid>0)

{

printf("I'm father ,my pid is %d.\n",getpid());

pid=fork();

if(pid==0)

printf("I'm daughter process,my pid is %d.\n",getpid());

else if(pid>0)

printf("I'm father process,my pid is %d.\n",getpid());

else

printf("fork() error.\n");

}

else printf("fork() error.\n");

}

因为输出函数printf()输出字符时不会中断,所以输出的每句话就相当于一个字符,最终也会有多种情况。

进程加锁

#include

int main()

{

int pid;

pid=fork();

if(pid==0)

printf("I am son,my pid is %d.\n",getpid());

lockf(1,0,0);

else if(pid>0)

{

/*从子进程1返回到父进程时,再创建子进程2。*/

printf("I'm father ,my pid is %d.\n",getpid());

pid=fork();

if(pid==0)

lockf(1,0,0);

printf("I'm daughter process,my pid is %d.\n",getpid());

else if(pid>0)

lockf(1,0,0);

printf("I'm father process,my pid is %d.\n",getpid());

else

printf("fork() error.\n");

}

else printf("fork() error.\n");

}

与未上锁时输出的结果大致相同,这是因为不同进程之间不存在共享临界资源(其中打印机

的互斥性已由操作系统保证)问题,所以加锁与不加锁效果相同。

3.软中断通信

#include

#include

#include

#include

#include

#include

#include

#include

void go();

void stop1(),stop2();

pid_t p1,p2;

void main( )

{

int status = -1;

int rtv;

while((p1=fork( ) )==-1); /*创建子进程p1*/

if (p1>0)

{

while((p2=fork( ) )==-1); /*创建子进程p2*/

if(p2>0)

{

printf("Parent process %d\n", getpid());

signal(SIGINT,go); /*接收到信号,转go*/

pause();

sleep(2);

wait(NULL);

wait(NULL);

printf("Parent process is killed!\n");

exit(0);

}

else

{

printf("Process 2, pid %d\n", getpid());

signal(SIGINT, SIG_IGN); signal(SIGUSR2, stop2);

if(signal(SIGUSR2,stop2) == SIG_ERR) {

printf("Can't catch SIGUR2");

}

pause();

printf("Process 2 End\n");

}

}

else

{

printf("Process 1, pid %d\n", getpid());

signal(SIGINT, SIG_IGN);

printf("Can't catch SIGUR2");

}

pause();

printf("Process 1 End\n");

}

printf("child exit status is %d\n", WEXITSTATUS(status));

}

void go()

{

int rtv;

printf("Func go\n");

rtv = kill(p1,SIGUSR1); /*向p1发软中断信号16*/

if(rtv) {

printf("fail to send signal 16 to p1\n");

} else {

printf("Succed in sending signal 16 to p1\n");

}

rtv = kill(p2,SIGUSR2); /*向p2发软中断信号17*/

if(rtv) {

printf("fail to send signal 17 to p2\n");

} else {

printf("Succed in sending signal 17 to p2\n");

}

}

void stop2()

{

printf("Child process 2 is killed by parent!\n");

exit(0);

}

void stop1()

{

printf("Child process 1 is killed by parent!\n");

exit(0);

}

Wait(0)用来实现父子进程的同步;因为进程从父进程中继承了Del信号,及其默认的处理程序,在子进程中并没有屏蔽Del 信号,因此,当输入信号时,子进程会处理父进程为其指定的信号之前,调用默认的处理Del信号的程序,直接退出。所以应该在子进程中屏蔽掉系统默认的对Del 信号的处理

4进程的管道通信

#include

#include

#include

#include "stdlib.h"

int pid1,pid2;

main( )

{

int fd[2];

char outpipe[100],inpipe[100];

pipe(fd);

while ((pid1=fork( ))==-1);

if(pid1==0)

{

printf("p1\n");

lockf(fd[1],1,0);

sprintf(outpipe,"child 1 process is sending message!");

write(fd[1],outpipe,50);

sleep(5);

lockf(fd[1],0,0);

exit(0);

}

else

{

while((pid2=fork( ))==-1);

if(pid2==0)

{

lockf(fd[1],1,0);

sprintf(outpipe,"child 2 process is sending message!");

write(fd[1],outpipe,50);

sleep(5);

lockf(fd[1],0,0);

exit(0);

}

else

{

wait(0);

read(fd[0],inpipe,50);

printf("%s\n",inpipe);

wait(0);

read(fd[0],inpipe,50);

printf("%s\n",inpipe);

exit(0);

}

}

}

管道通过lockf(),而lockf(fd[1],1,0)实现进程间的互斥,用write()写入管道,用read()读取管道内容,通过延迟一段时间,sleep(),子进程完成写入人物,由于管道中的延迟问题,否则在未完成写人物时,父进程调用读任务则出错

实验2

1消息的接受和发送

server建立一个key为75的消息队列,等待其它进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出server。server每接收到一个消息后显示一句“(server)received”。

client使用key为75的消息队列,先后发送类型从10到1的消息,然后退出。最后一个消息,即是server端需要的结束信号。client每发送一条消息后显示一句“(client)sent”

server.c参考程序如下:

#include

#include

#include

#include

#include

#define MSGKEY 75

struct msgform

{

long mtype;

char mtext[1000];

}msg;

int msgqid;

void server()

{

msgqid=msgget(MSGKEY,0777|IPC_CREAT); /*创建75#消息队列*/ do

{

msgrcv(msgqid,&msg,1030,0,0); /*接收消息*/

printf("(server)received\n");

}while(msg.mtype!=1);

msgctl(msgqid,IPC_RMID,0); /*删除消息队列,归还资源*/

exit(0);

}

main()

{

server();

}

client.c参考程序如下:

#include

#include

#include

#include

#include

#define MSGKEY 75

struct msgform

{

long mtype;

char mtext[1000];

}msg;

int msgqid;

void client()

{

int i;

msgqid=msgget(MSGKEY,0777); /*打开75#消息队列*/

for(i=10;i>=1;i--)

{

msg.mtype=i;

printf("(client)sent\n");

msgsnd(msgqid,&msg,1024,0); /*发送消息*/

}

exit(0);

}

main()

{

client();

}

message的传送和控制并不能保证完全同步,当一个程序不在激活状态的时候,它完全可能继续睡眠,造成了上面的现象,在多次发送消息后才接收消息。

2.共享存储区的创建、附接和断接

#include

#include

#include

#define SHMKEY 75

int shmid,i,p1,p2;

int *addr;

void CLIENT()/*发送过程*/

{

int i;

shmid=shmget(SHMKEY,1024,0777);/* 打开共享存储区*/

addr=(int *)shmat(shmid,0,0); /*获取共享存储区的首地址*/

for (i=29;i>=0;i--)

{

while (*addr!=-1);/*判断是否可写*/

*addr=i;/*写数据*/

printf("%d",*addr);

printf("(client)sent\n");

}

exit(0);

}

void SERVER()/*接收进程*/

int i;

shmid=shmget(SHMKEY,1024,0777|IPC_CREAT); /*创建共享存储区*/

addr=(int *)shmat(shmid,0,0);

do

{

*addr=-1;

while (*addr==-1);/*判断信息是否传来*/

printf("%d",*addr+30); /*读,并加工数据*/

printf("(server)received\n");

}while(*addr);

shmctl(shmid,IPC_RMID,0); /*撤消共享存储区,归还资源*/

exit(0);

}

main()

{

while ((p1=fork())==-1);/*父进程*/

if (p1==0) SERVER();/*子进程p1*/

while ((p2=fork())==-1); /*父进程*/

if (p2==0) CLIENT();/*子进程p2*/

wait(0); /*父进程*/

wait(0); /*父进程*/

}

用主程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,让它们利用共享存储区的方式进行通信:

CLIENT端获取一个KEY为75的共享区,当共享区第一个字节的值为-1时,表示SERVER端空闲。这时CLIENT向共享区中填入要发送的数据,同时显示自己发送的数据,然后显示一句“(client)sen t”。

SERVER端获取(如果还没有就创建)一个KEY为75的共享存储区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。当该字节的值发生变化时,表示收到了信息,SERVER取得该数据,进行处理,然后将处理结果显示出来,再显示一句“(server)received”。

发送和接收的过程循环进行30次。

父进程在SERVER和CLIENT均退出后结束。

实验三

#include

#include

#include

#define TRUE 1

#define FALSE 0

#define INVALID -1

#define NULL 0

#define total_instruction 320 /*指令流长*/

#define total_vp 32 /*虚页长*/

#define clear_period 50 /*清零周期*/

typedef struct{ /*页面结构*/

int pn,pfn,counter,time;

}pl_type;

pl_type pl[total_vp]; /*页面结构数组*/

struct pfc_struct{ /*页面控制结构*/

int pn,pfn;

struct pfc_struct *next;

};

struct pfc_struct pfc[total_vp],*freepf_head, *busypf_head, *busypf_tail;

int diseffect, a[total_instruction];

int page[total_instruction], offset[total_instruction];

void initialize();

void FIFO( );

void LRU( );

void OPT( );

void LFU();

void CLOCK( );

void NRU( );

int main()

{

int S,i;

srand(10*getpid());

S=(int)(319.0*rand()/RAND_MAX)+1;

for(i=0;i

a[i]=S; a[i+1]=a[i]+1;

a[i+2]=(int)(1.0*a[i]*rand()/RAND_MAX); a[i+3]=a[i+2]+1; S=(int)(1.0*rand()*(318-a[i+2])/RAND_MAX)+a[i+2]+2;

}

for(i=0;i

page[i]=a[i]/10;

offset[i]=a[i]%10;

}

for(i=4;i<=32;i++) {

printf("%2d page frames\t",i);

FIFO(i);

LRU(i);

NRU (i);

OPT(i);

SCR(i);

CLOCK(i);

}

return 0;

}

void initialize(int total_pf)

{

int i;

diseffect=0;

for(i=0;i

{

pl[i].pn=i;

pl[i].pfn=INVALID; pl[i].counter=0;

pl[i].time=-1; }

for(i=1;i

{

pfc[i-1].next=&pfc[i];

pfc[i-1].pfn=i-1;

}

pfc[total_pf-1].next=NULL;

pfc[total_pf-1].pfn=total_pf-1;

freepf_head=&pfc[0];

}

void FIFO(int total_pf)

{

int i;

struct pfc_struct *p;

initialize(total_pf);

busypf_head=busypf_tail=NULL;

for(i=0;i

{

if(pl[page[i]].pfn==INVALID) {

diseffect+=1;

if(freepf_head==NULL)

{

p=busypf_head->next;

pl[busypf_head->pn].pfn=INVALID;

freepf_head=busypf_head;

freepf_head->next=NULL;

busypf_head=p;

}

p=freepf_head->next; ,

freepf_head->next=NULL;

freepf_head->pn=page[i];

pl[page[i]].pfn=freepf_head->pfn;

if(busypf_tail==NULL) busypf_head=busypf_tail=freepf_head;

else

{

busypf_tail->next=freepf_head;

busypf_tail=freepf_head;

}

freepf_head=p;

}

}

printf("FIFO:%6.4f ",1-(float)diseffect/320);

}

我在这里只定义了initialize()函数和 FIFO()算法,因为只充分了解FIFO()算法,即顺序写入数据,顺序读出数据,是一种先进先出的数据缓存。又了解到虚拟存储器的优缺点,即不用存储器,直接调出来就好,但其容量太小。与其他算法相比,这种算法的命中率最低。另外,随机数的产生可以用函数srand(), rand()

实验作业题解

实验一 1.调试C++程序需要几个步骤?每个步骤生成的文件的扩展名是什么? 调试C++程序包括编辑、编译、连接、运行这四个步骤。其中编辑得到的是.cpp 源文件,编译得到的是.obj的目标文件,连接得到可执行的运行文件.exe。 2.C++项目的组织管理形式? 答:C++的一个工作空间下可以有几个项目,只有一个项目是激活的。每个项目下有若干文件。 在VC++中通过采用文件夹方式来管理所有文件。C++将工作空间名作为文件夹名,.dsw文件是工作空间管理文件;在工作空间文件夹下,有若干项目子文件夹,是以项目名作为文件夹名;在项目文件夹下包含项目文件(.dsp) 、若干源代码文件(.cpp,.h)、及相应的调试(debug)、发行(release)、资源(res)等子文件夹。 每个源文件下包含若干个函数和类,一个项目下有且只有一个main函数。 实验二 1、根据文件的数据的组织形式,文件可分为哪两类?其扩展名为?写出文件操作的一般步骤及关键代码。 答:根据文件的数据的组织形式,文件可分为文本文件和二进制文件,文本文件的扩展名为.txt,二进制文件的扩展名为.dat; 文件操作的一般步骤包括: ①打开文件 文件的打开包括建立文件流对象、与外部文件关联及指定打开方式等步骤。 示例代码:fstream myfile; myfile.open(“test.txt”,ios::out); ②读写文件

?文本文件读写 有两种方法: 一是用标准流运算符(>>和<<) 二是用文件流的put( )、get( )、getline( )、read( )、write( )等成员函数,来实现输入输出操作 ?二进制文件的读写 对二进制文件的读写操作,主要用stream类的成员函数read和write来实现。函数的原型为: istream::read(char *buffer, int len); ostream::write(const char *buffer, int len); ③关闭文件 文件流对象.close( ); 2、求下列分数序列的前15项之和。 2/1,3/2,5/3,8/5,13/8,21/13,… 并将结果写入文件。 提示:分析给定数列的通项公式,再将其前15项求和。假定,通项分子为a,分母b,前一项为a/b,下一项为(a+b)/a。 写出求和公式为sum+=a/b;下一项的a和b值分别为:t=a;a+=b; b=t:循环相加15次。 /*-------------------------------------------------------*/ #include #include void wwjt(double); void main() { /**********Program**********/ double a,b,t,sum; a=2; b=1; sum=a/b; for(int i=2;i<=15;i++) { t=a; a+=b; b=t; sum+=a/b; } cout<<"此数列的前15项之和为:"<

电路实验第一次作业(带答案)

实验二基尔霍夫定律的验证 一、实验目的 1.通过实验验证基尔霍夫电流定律和电压定律 2.加深理解“节点电流代数和”及“回路电压代数和”的概念 3.加深对参考方向概念的理解 二、原理 基尔霍夫节点电流定律 ∑ I= 基尔霍夫回路电压定律 ∑ U= 参考方向: 当电路中的电流(或电压)的实际方向与参考方向相同时取正值,其实际方向与参考方向相反时取负值。 三、实验仪器和器材 1.0-30V可调直流稳压电源 2.+15直流稳压电源 3.200mA可调恒流源 4.电阻 5.交直流电压电流表 6.实验电路板 7.短接桥 8.导线 四、实验内容及步骤 1.验证基尔霍夫电流定律(KCL) 可假定流入该节点的电流为正(反之也可),并将电流表负极接在节点接口上,电流表正极接到支路接口上进行测量。测量结果如2-1所示。

图2-1 2.验证基尔霍夫回路电压定律(KVL) 用短接桥将三个电流接口短接,测量时可选顺时针方向为绕行方向,并注意电压表的指针偏转方向及取值的正与负,测量结果如表2-2所示。 图2-2

五、思考题 1.利用表2-1和表2-2中的测量结果验证基尔霍夫两个定律。 表一中数据有4.0A+5.1A-9.1A=0这与基尔霍夫电流定律一致; 表二中数据有1.6V+2.7V+5.7V-10V=0; 14.9V-4.2V-2V-5.5V=0; 这与基尔霍夫电压定律基本一致;可见,基尔霍夫电压定律成立 2.利用电路中所给数据,通过电路定律计算各支路电压和电流,并计算测量值与计算值之 间的误差,分析误差产生的原因。 测量误差;读数误差以及所用电表并非理想电表;电压表内阻不是无穷大;电流表内阻不为零;电源输出不稳定;仪器不准确;导线有电阻等。 3.回答下列问题 (1)已知某支路电流约为3mA,现有一电流表分别有20mA、200mA和2A三挡量程,你将使用电流表的哪档量程进行测量?为什么? 选20mA档,因为只有20mA档最接近3mA的电流,其他的档位均太大,造成测量误差大。 (2)改变电流或电压的参考方向,对验证基尔霍夫定律有影响吗?为什么? 没影响。基尔霍夫电压定律的根本原理是回路电压之和为零;基尔霍夫电流定律的根本原理是回路电流相等,改变电压或电流方向,不会影响电压之和为零和回路电流相等的根本规律,因此对验证基尔霍夫定律没有影响 小家伙们,够给力吧!

作业调度_实验报告

实验名 称 作业调度 实验内容1、设计可用于该实验的作业控制块; 2、动态或静态创建多个作业; 3、模拟先来先服务调度算法和短作业优先调度算法。 3、调度所创建的作业并显示调度结果(要求至少显示出各作业的到达时间,服务时间,开始时间,完成时间,周转时间和带权周转时间); 3、比较两种调度算法的优劣。 实验原理一、作业 作业(Job)是系统为完成一个用户的计算任务(或一次事物处理)所做的工作总和,它由程序、数据和作业说明书三部分组成,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。 二、作业控制块J C B(J o b C o nt r o l Bl o ck) 作业控制块JCB是记录与该作业有关的各种信息的登记表。为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块,如同进程控制块是进程在系统中存在的标志一样,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。在JCB中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU 繁忙型、I/O 繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。 三、作业调度 作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。 四、选择调度算法的准则 1).面向用户的准则 (1) 周转时间短。通常把周转时间的长短作为评价批处理系统的性能、选择作业调度方式与算法的重要准则之一。所谓周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称

大一数学实验

2017春季数学实验报告 班级:计算机系61 姓名:赵森学号:2160500026(校内赛编号506)班级:计算机系61 姓名:冯丹妮学号:2160500002(校内赛编号327)班级:计算机系63 姓名:郝泽霖学号:2160500054

第一次上机作业 实验8: 练习1: 4.某棉纺厂的原棉需从仓库运送到各车间。各车间原棉需求量、单位产品从各仓库运往各车间的运输费以及各仓库的库存容量如表8.5所列,问如何安排运输任务使得总运费最小? 设仓库1运往车间1,2,3,的原棉量为x1,x2,x3, 仓库2运往车间1,2,3,的原棉量为x4,x5,x6, 仓库3运往车间1,2,3,的原棉量为x7,x8,x9。 2x1+x2+3x3<=50 2x4+2x5+4x6<=30 3x7+4x8+2x9<=10 X1+x4+x7=40 X2+x5+x8=15 X3+x6+x9=35 程序: c=[2,1,3,2,2,4,3,4,2]; a(1,:)=[1,1,1,0,0,0,0,0,0]; a(2,:)=[0,0,0,1,1,1,0,0,0]; a(3,:)=[0,0,0,0,0,0,1,1,1]; aeq(1,:)=[1,0,0,1,0,0,1,0,0]; aeq(2,:)=[0,1,0,0,1,0,0,1,0]; aeq(3,:)=[0,0,1,0,0,1,0,0,1]; b=[50;30;10]; beq=[40;15;35]; vub=[]; vlb=zeros(9,1); [x,fval]=linprog(c,a,b,aeq,beq,vlb,vub) 结果: x = 10.0000 15.0000 25.0000

数学建模作业——实验1

数学建模作业——实验1 学院:软件学院 姓名: 学号: 班级:软件工程2015级 GCT班 邮箱: 电话: 日期:2016年5月10日

基本实验 1.椅子放平问题 依照1.2.1节中的“椅子问题”的方法,将假设中的“四腿长相同并且四脚连线呈正方形”,改为“四腿长相同并且四脚连线呈长方形”,其余假设不变,问椅子还能放平吗?如果能,请证明;如果不能,请举出相应的例子。 答:能放平,证明如下: 如上图,以椅子的中心点建立坐标,O为原点,A、B、C、D为椅子四脚的初始位置,通过旋转椅子到A’、B’、C’、D’,旋转的角度为α,记A、B两脚,C、D两脚距离地面的距离为f(α)和g(α),由于椅子的四脚在任何位置至少有3脚着地,且f(α)、g(α)是α的连续函数,则f(α)和g(α)至少有一个的值为0,即f(α)g(α)=0,f(α)≥0,g(α)≥0,若f(0)>0,g(0)=0,

则一定存在α’∈(0,π),使得 f(α’)=g(α’)=0 令α=π(即椅子旋转180°,AB 边与CD 边互换),则 f(π)=0,g(π)>0 定义h(α)= f(α)-g(α),得到 h(0)=f(0)-g(0)>0 h(π)=f(π)-g(π) <0 根据连续函数的零点定理,则存在α’∈( 0,π),使得 h(α’)= f(α’)-g(α’)=0 结合条件f(α’)g(α’)=0,从而得到 f(α’)=g(α’)=0,即四脚着地,椅子放平。 2. 过河问题 依照1.2.2节中的“商人安全过河”的方法,完成下面的智力游戏:人带着猫、鸡、米过河,船除需要人划之外,至多能载猫、鸡、米之一,而当人不在场时,猫要吃鸡、鸡要吃米,试设计一个安全过河的方案,并使渡河的次数尽量的少。 答: 用i =1,2,3,4分别代表人,猫,鸡,米。1=i x 在此岸,0 =i x 在对岸, ()4321,,,x x x x s =此岸状态,()43211,1,1,1x x x x D ----=对岸状态。安全状态集合为 :

数学实验作业

练习2﹒1 画出下列常见曲线的图形(其中a=1,b=2,c=3)。 1. 立方抛物线y = 解: x=-4:0.1:4; y=x.^(1/3); plot(x,y) -4 -3-2-101234 0.20.40.60.811.21.4 1.6 2.高斯曲线2 x y e -= 解: fplot('exp(-x^2)',[-4,4])

-4 -3 -2 -1 1 2 3 4 00.10.20.30.40.50.60.70.80.9 1 3、笛卡儿曲线23 3 2 2 33,(3)11at at x y x y axy t t = = +=++ 解:ezplot('x^3+y^3-3*x*y',[-4,4])

-4 -3-2-1 01234 -4-3-2-10123 4x y x 3+y 3-3 x y = 0 或:t=-4:0.1:4; x=3*t./(1+t.^2); y=3*t.^2./(1+t.^2); plot(x,y)

-1.5 -1-0.500.51 1.5 00.5 1 1.5 2 2.5 3 4、蔓叶线233 2 2 2 ,()11at at x x y y t t a x = = = ++- 解:t=-4:0.1:4; x=t.^2./(1+t.^2); y=t.^3,/(1+t.^2); y=t.^3./(1+t.^2); plot(x,y)

00.10.20.30.40.50.60.70.80.91 -4 -3-2-10123 4 或: ezplot('y .^2-x.^3/(1-x)',[-4,4])

大学物理实验作业答案(全部)

教育技术专业《大学物理实验》课后部份习题答案 控制电路的研究(PASCO 综合性实验) 1.在限流和分压实验中,当连接完电路准备通电前,应使滑动头C 移到哪一端?为什么?(P191思考题) 答:如图1所示,在限流实验中,当连接完电路准备通电前,应使滑动头C 移到B 端,使限流有效电阻最大,可让回路中电流从小变到大。 如图2所示,在分压实验中,当连接完电路准备通电前,应使滑动头C 移到A 端,使分压有效电阻最小,可控制电压从小变到大。 2. 有人说,分压电路是用来控制电压,限流电路是用来控制电路电流的,你认为这种说法对吗?(P191 思考题) 答:这种说法太片面。因为,分压电路控制范围:V 是0E →,I 是0 0E R → 。限流电路控制范围:V 是 00R E E R R →+,I 是 00 E E R R R → +。所以,无论是分压还是限流控制电流,都能进行控制电路的电压和电 流,只是在具体电路中,控制程度不同。 霍尔效应效应及其磁场的测量 1、什么是霍尔效应?采用霍尔效应测量磁场时,要测量哪些物理量? 答:①导体或半导体薄膜材料在外加电场作用下,载流子产生定向运动,运动的电荷在磁场中受到洛仑兹 力作用使电荷产生横向的偏转,由于样品有边界,所以偏转的载流子将在边界积累起来,产生一个横向电场,这种现象就是霍尔效应。 ②霍尔电压B I K U S H H =,对于一定的霍尔元件,其灵敏度H K 是一个常量,已测量;因此,采用霍尔效应测量磁场时,需要测量霍尔电流S I 和对应的磁感应强度B 两个物理量。 2、使用霍尔效应测量磁场时,如何消除其副效应的影响? 答: 使用霍尔效应测量磁场时,可以采用对称测量法消除副效应的影响。选择电流和磁场的四种取向组 合),(S I B ++、),(S I B -+、),(S I B --、),(S I B +-测得四组电压值1U 、2U 、3U 、4U ,再根据下 式算出霍尔电压值4 4 321U U U U U H -+-=。 磁阻效应 1、什么叫做磁阻效应?磁阻效应是怎样产生的? 答:①一定条件下,导电材料的电阻值R 随磁感应强度B 变化的现象成为磁阻效应; ②当导体或半导体处于磁场中时,导体或半导体的载流子将受洛仑兹力的作用,发生偏转,在两端产生 图1 图2

作业调度实验报告

作业调度实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

实验二作业调度 一.实验题目 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。 (1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。 (2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。 (3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。 2、编写并调度一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 二.实验目的: 本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解三 .实验过程 <一>单道处理系统作业调度 1)单道处理程序作业调度实验的源程序: 执行程序: 2)实验分析:

1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。 2、每个作业由一个作业控制块JCB 表示,JCB 可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W 。 3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。 3)流程图: 二.最短作业优先算法 三.高响应比算法 图一.先来先服务流程图 4)源程序: #include <> #include <> #include <> #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 int n; float T1=0,T2=0; int times=0; struct jcb .\n",p->name); free(p); .wait...",time); if(times>1000) 代替 代替

SPSS操作实验作业1(附答案)

SPSS操作实验 (作业1) 作为华夏儿女都曾为有着五千年的文化历史而骄傲过,作为时代青年都曾为中国所饱受的欺压而愤慨过,因为我们多是炎黄子孙。然而,当代大学生对华夏文明究竟知道多少呢 某研究机构对大学电气、管理、电信、外语、人文几个学院的同学进行了调查,各个学院发放问卷数参照各个学院的人数比例,总共发放问卷250余份,回收有效问卷228份。调查问卷设置了调查大学生对传统文化了解程度的题目,如“佛教的来源是什么”、“儒家的思想核心是什么”、“《清明上河图》的作者是谁”等。调查问卷给出了每位调查者对传统文化了解程度的总得分,同时也列出了被调查者的性别、专业、年级等数据信息。请利用这些资料,分析以下问题。 问题一:分析大学生对中国传统文化的了解程度得分,并按了解程度对得分进行合理的分类。 问题二:研究获得文化来源对大学生了解传统文化的程度是否存在影响。 要求: 直接导出查看器文件为.doc后打印(导出后不得修改) 对分析结果进行说明,另附(手写、打印均可)。 于作业布置后,1周内上交 本次作业计入期末成绩

答案 问题一 操作过程 1.打开数据文件作业。同时单击数据浏览窗口的【变量视图】按钮,检查各个 变量的数据结构定义是否合理,是否需要修改调整。 2.选择菜单栏中的【分析】→【描述统计】→【频率】命令,弹出【频率】对 话框。在此对话框左侧的候选变量列表框中选择“X9”变量,将其添加至【变量】列表框中,表示它是进行频数分析的变量。 3.单击【统计量】按钮,在弹出的对话框的【割点相等组】文本框中键入数字 “5”,输出第20%、40%、60%和80%百分位数,即将数据按照题目要求分为等间隔的五类。接着,勾选【标准差】、【均值】等选项,表示输出了解程度得分的描述性统计量。再单击【继续】按钮,返回【频率】对话框。

操作系统实验报告-作业调度

作业调度 一、实验目的 1、对作业调度的相关内容作进一步的理解。 2、明白作业调度的主要任务。 3、通过编程掌握作业调度的主要算法。 二、实验内容及要求 1、对于给定的一组作业, 给出其到达时间和运行时间,例如下表所示: 2、分别用先来先服务算法、短作业优先和响应比高者优先三种算法给出作业的调度顺序。 3、计算每一种算法的平均周转时间及平均带权周转时间并比较不同算法的优劣。

测试数据 workA={'作业名':'A','到达时间':0,'服务时间':6} workB={'作业名':'B','到达时间':2,'服务时间':50} workC={'作业名':'C','到达时间':5,'服务时间':20} workD={'作业名':'D','到达时间':5,'服务时间':10} workE={'作业名':'E','到达时间':12,'服务时间':40} workF={'作业名':'F','到达时间':15,'服务时间':8} 运行结果 先来先服务算法 调度顺序:['A', 'B', 'C', 'D', 'E', 'F'] 周转时间: 带权周转时间:

短作业优先算法 调度顺序:['A', 'D', 'F', 'C', 'E', 'B'] 周转时间: 带权周转时间:1. 响应比高者优先算法 调度顺序:['A', 'D', 'F', 'E', 'C', 'B'] 周转时间: 带权周转时间: 五、代码 #encoding=gbk workA={'作业名':'A','到达时间':0,'服务时间':6,'结束时间':0,'周转时间':0,'带权周转时间':0} workB={'作业名':'B','到达时间':2,'服务时间':50} workC={'作业名':'C','到达时间':5,'服务时间':20} workD={'作业名':'D','到达时间':5,'服务时间':10} workE={'作业名':'E','到达时间':12,'服务时间':40} workF={'作业名':'F','到达时间':15,'服务时间':8} list1=[workB,workA,workC,workD,workE,workF] list2=[workB,workA,workC,workD,workE,workF] list3=[workB,workA,workC,workD,workE,workF] #先来先服务算法 def fcfs(list): resultlist = sorted(list, key=lambda s: s['到达时间']) return resultlist #短作业优先算法 def sjf(list): time=0 resultlist=[] for work1 in list: time+=work1['服务时间'] listdd=[] ctime=0 for i in range(time): for work2 in list: if work2['到达时间']<=ctime: (work2) if len(listdd)!=0: li = sorted(listdd, key=lambda s: s['服务时间']) (li[0]) (li[0]) ctime+=li[0]['服务时间'] listdd=[]

土木工程实验作业答案

姓名:黄玮 院校学号:150032203157 学习中心:石家庄 层次:专升本 专业:土木工程 实验一:混凝土实验 一、实验目的:熟悉混凝土的技术性质和成型养护方法;掌握砼拌合物工作性的测定和评定方法;通过检验砼的立方体抗压强度,掌握有关强度的评定方法。 二、配合比信息: 1.基本设计指标 (1)设计强度等级C30 (2)设计砼坍落度30-50mm 2.原材料 (1)水泥:种类复合硅酸盐水泥强度等级P.C 32.5 (2)砂子:种类河砂细度模数 2.6 (3)石子:种类碎石粒级5-31.5mm (4)水:洁净的淡水或蒸馏水 3.配合比:(kg/m3) 三、实验内容: 第1部分:混凝土拌合物工作性的测定和评价

1、实验仪器、设备:电子秤、量筒、坍落度筒、拌铲、小铲、捣棒(直径16mm、长600mm,端部呈半球形的捣棒)、拌合板、金属底板等。 2、实验数据及结果 第2部分:混凝土力学性能检验 1、实验仪器、设备:标准试模:150mm×150mm×150 mm 、振动台、压力试验机(测量精度为±1%,时间破坏荷载应大于压力机全量程的20%;且小于压力机全量程的80%。)、压力试验机控制面板、标准养护室(温度20℃±2℃,相对湿度不低于95%。) 2、实验数据及结果 四、实验结果分析与判定: (1)混凝土拌合物工作性是否满足设计要求,是如何判定的? 答:满足设计要求。实验要求混凝土拌合物的塌落度30—50mm,而此次实验结果中塌落度为40mm,符合要求;捣棒在已塌落的拌合物锥体侧面轻轻

敲打,锥体逐渐下沉表示粘聚性良好;塌落度筒提起后仅有少量稀浆从底部析出表示保水性良好。 (2)混凝土立方体抗压强度是否满足设计要求。是如何判定的? 答:满足设计要求。该组试件的抗压强度分别为31.7MPa、38.4MPa、38.7 MPa, 因31.7与38.4的差值大于38.4的15%,因此把最大值最小值一并舍除,取38.4 MPa作为该组试件的抗压强度值,38.4 MPa大于38.2 MPa,因此所测混凝土强度满足设计要求。 实验二:钢筋混凝土简支梁实验 一、实验目的: 1.分析梁的破坏特征,根据梁的裂纹开展判断梁的破坏形态。2.观察裂纹开展,记录梁受力和变形过程,画出荷载挠度曲线。3.根据每级荷载下应变片的应变值分析应变沿截面高度是否成线性。4.测定梁开裂荷载和破坏荷载,并与理论计算值进行比较。 二、实验基本信息: 1.基本设计指标 (1)简支梁的截面尺寸150mm×200mm (2)简支梁的截面配筋(正截面) 2.材料 (1)混凝土强度等级C30 (2)钢筋强度等级HRB335 三、实验内容: 第1部分:实验中每级荷载下记录的数据

作业调度实验报告

实验项 目名称 作业调度 实验目的及要求一、实验目的: 1、通过模拟作业调度算法的设计加深对作业管理基本原理的理解。 2、深入了解批处理系统如何组织作业、管理作业和调度作业。 3、掌握作业调度算法。 二、实验要求: 1、编写程序完成实验内容; 2、对测试数据进行分析; 3、撰写实验报告。 实验内容1、设计可用于该实验的作业控制块; 2、动态或静态创建多个作业; 3、模拟先来先服务调度算法和短作业优先调度算法。 3、调度所创建的作业并显示调度结果(要求至少显示出各作业的到达时间,服务时间,开始时间,完成时间,周转时间和带权周转时间); 3、比较两种调度算法的优劣。 实验原理一、作业 作业(Job)是系统为完成一个用户的计算任务(或一次事物处理)所做的工作总和,它由程序、数据和作业说明书三部分组成,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。 二、作业控制块J C B(J o b C o n t ro l B lo c k) 作业控制块JCB是记录与该作业有关的各种信息的登记表。为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块,如同进程控制块是进程在系统中存在的标志一样,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。在JCB中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU 繁忙型、I/O 繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。 三、作业调度 作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及

数学实验作业 韩明版

练习6.7 1.有两个煤厂A,B,每月进煤不少于60t,100t,它们担负供应三个居 民区的用煤任务,这三个居民区每月用煤量分别为45t,75t和45t.A 厂离这三个居民区的距离分别为10km,5km,6km,B厂离这三个居民区的距离分别为4km,8km,15km.问这两个煤厂如何分配供煤量能使总运输量(t.km)最小。 解:设甲对三个居民区的供煤量分别为:x1,x2,x3,乙对三个居民区的供煤量分别为x4,x5,x6.由已知有: y=10x1+5x2+6x3+4x4+8x5+15x6 -x1-x2-x3<=-60, -x4-x5-x6<=-100, x1+x4=45,x2+x5=75,x3+x6=40, X1>=0,x2>=0,x3>=0,x4>=0,x5>=0,x6>=0. 输入命令: > c=[10 5 6 4 8 15];A=[-1 -1 -1 0 0 0;0 0 0 -1 -1 -1;0 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0]; >> b=[-60;-100;0;0;0;0];Aeq=[1 0 0 1 0 0;0 1 0 0 1 0;0 0 1 0 0 1;0 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0]; >> beq=[45 75 40 0 0 0]; >> lb=ones(6,1); >> [x,fval]=linprog(c,A,b,Aeq,beq,lb) Optimization terminated.

结果为: x = 1.0000 20.0000 39.0000 44.0000 55.0000 1.0000 fval =975.0000 这说明甲乙两个煤厂分别对三个居民区输送1t 20t 39t,44t 55t 1t的煤才能使总运输量最小,且总运输量为975t.km 2.某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券及其信用等级、到期年限、税前收益如下表所示。按照规定,市政证券的收益可以免税,其他证券的收益需按40%的税率纳税。此外还有以下限制: (1)政府及待办机构的证券总共至少购进400万元; (2)所构证券的平均信用等级不超过1.4(信用等级数字越小,信用程度越高); (3)所构证券的平均到期年限不超过5年。

虚拟仪器实验作业

石家庄铁道大学实验报告课程名称虚拟仪器技术分院试1304 班桌号 实验者姓名钱玉喜实验日期2016 年月日 评分教师签名 实验项目名称实验一 练习1:分别利用for和while循环的移位寄存功能,用两种方法求0+5+10+15…+45+50的值(等差数列的和)。

练习2:设计一评分程序,输入不同的分数会得到不同的评论,分数小于60,“不及格”指示灯会亮起来,同时显示字符串“你没有通过考试”;分数在60~69之间,“及格”指示灯会亮起来,同时显示字符串“及格”;分数在70~79之间,“中等”指示灯会亮起来,同时显示字符串“你考试通过了”;分数在80~89之间,“良好”指示灯会亮起来,同时显示字符串“成绩良好”;分数在90~99之间,“优秀”指示灯会亮起来,同时显示字符串“恭喜”;分数为100,“第一名”指示灯会亮起来,同时显示字符串“第一名”;如果输入为0~100以外的数字,会有错误提示,同时显示字符串“错误”。

石家庄铁道大学实验报告课程名称虚拟仪器技术分院试1304 班桌号 实验者姓名钱玉喜实验日期2016 年月日 评分教师签名 实验项目名称实验二 练习3:用顺序结构实现数值匹配:输入1~100之间的任意1个整数,然后系统随机产生1~100之间的整数,直到和预先输入的整数一样,然后输出匹配的次数和匹配的时间。

练习100次累加,用累加值除以循环次数,求这些随机数的平均数。再用判断平均数是否在范围内,如果在此范围内则点亮指示灯,‘比较’子模板中的‘判定范围并强制转换’函数判断数的范围。

石家庄铁道大学实验报告课程名称虚拟仪器技术分院试1304 班桌号 实验者姓名钱玉喜实验日期2016 年月日 评分教师签名 实验项目名称实验三 练习1:建立一个VI,产生一个包含20个随机数的数组,并输出它的第1,5,12,18个元素所组成的数组。

人教版化学必修一《1-1-1化学实验基本方法》课后作业及答案

课后作业 限时:45分钟满分:100分 一、选择题(每小题3分,共42分。) 1.下列有关说法不正确的是() A.化学是一门以实验为基础的自然科学 B.化学研究主要用的方法是实验方法 C.化学品标志表示的是三级放射性物品 ! D.不能用手接触药品,不要把鼻孔凑到容器口去闻药品的气味,不得尝任何药品的味道 2.下列实验能达到实验目的且符合安全要求的是() 3.有下列实验操作或事故处理方法:①用50 mL量筒量取5 mL蒸馏水;②称量没有腐蚀性固体药品时,把药品放在托盘上称量;③氢氧化钠浓溶液不慎溅入眼中,应立即用大量水冲洗,并且边洗边眨眼睛;④倾倒液体时,试剂瓶的瓶口不对准容器口;⑤块状药品都要用药匙取用;⑥固体药品用细口瓶保存;⑦用右图所示的方法闻气体的气味。其中错误的是()

A.①②③⑦B.③④ C.②⑤⑥⑦ D.①②④⑤⑥ 4.实验中的下列操作正确的是() . A.用试管取出试剂瓶中的Na2CO3溶液,发现取量过多,又把过量的试剂倒入试剂瓶中B.Ba(NO3)2溶于水,可将含有Ba(NO3)2的废液倒入水槽中,再用水冲入下水道 C.在100 mL的量筒里稀释浓硫酸溶液50 mL D.用浓硫酸配制一定浓度的稀硫酸时,浓硫酸溶于水后,应冷却至室温才能转移到容量瓶中5.下列实验仪器,能够受热或者在加热过程中可以用到的是() ①试管②量筒③烧杯④酒精灯⑤胶头滴管⑥蒸发皿 A.①②④⑥ B.①③④⑥ C.②③⑤ D.①②③⑤ " 6.下图分别表示四种操作,其中有两处错误的选项是() 7.下列实验操作中,完全正确的一组是() ①用试管夹夹持试管时,试管夹从试管底部往上套,夹在试管的中上部

实验的作业

实验一熟悉KEIL软件的使用 一、实验目的 1.认识单片机实验系统的构成及使用。 2.学习KEIL软件和STC-ISP下载软件的使用方法。 3.单片机I/O口的使用方法; 二、实验内容 1.P23口做输出口,接发光二极管,编写程序,使其闪烁。 2.P23-P26口接四只发光二极管LED1-LED4, P20口接开关K1,编写程序,用开关 控制发光二极管上的亮灭。 三、实验步骤 1.设计实验电路,画出电路原理图 2.按照KEIL软件的使用步骤,建立工程。

实验2: #include "reg52.h" sbit P23=P2^3; //定义LED指示灯的IO口 sbit P20=P2^0; //定义key的IO口 void main() { int i;//计时变量 while(1) { for(i=0;i<30000;i++);//延时 if( P20==0) P23=0; // 按键,LED亮 else P23=1;// LED亮 } } 五.思考题 1. P23- P26口做输出口,接发光二极管,编写并调试程序,使其闪烁。 2. P23- P26口做输出口,接发光二极管,编写并调试跑马灯程序。

实验2 Keil C51程序设计上机练习 一、实验目的 1.学习KEIL软件的程序调试方法。 2.学会KEIL C程序设计及调试,重点学会预处理命令、数据类型的定义。 二、实验内容 1.单片机P2口的P20和P21各接一个开关K1、K2,P23、P24、P25和P26 2.设计一个二进制加1计数器,按一次键,加1,并用4个LED显示计数结果,加至16时清零重新计数。 三、实验步骤 1.设计实验电路,画出电路原理图 2.按照KEIL软件的使用步骤,建立工程。 3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。 4.用STC-ISP下载软件下载HEX文件到单片机系统。 5.运行、调试程序,观察实验结果。 四、实验参考电路及参考程序

操作系统实验报告-作业调度实验

作业调度实验 一.实验目的及要求: 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。 二. 实验环境: 操作系统:Windows XP 编译环境:Visual C++ 6.0 三.算法描述 由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。 作业调度算法:采用先来先服务(FCFS)调度算法,即按作业提交的先后次序进行调度。总是首先调度在系统中等待时间最长的作业。 每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。 作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。 各个等待的作业按照提交时刻的先后次序排队,总是首先调度等待队列中队首的作业。 每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。 四. 实验步骤: 1.、作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)调度算法。 对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间。 2.程序流程图

3、程序源码结构: void main() { void fcfs(); void sjf(); ... while(1){ printf("\n\t\t/* 1、fcfs */"); printf("\n\t\t/* 2、sjf */"); printf("\n\t\t/* 0、Exit */\n"); printf("\n\n\t请选择:\t"); scanf("%d",&a); printf("\n"); switch(a){ case 1: fcfs();break; case 2: sjf();break; default: break; } if(a!=1&&a!=2) break; } }

数学实验第七次作业

4. 问题: 某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A,B )。按照生产工艺的要求,原料甲、乙必须首先导入混合池中混合,混合后的液体再分别与原料丙混合生产A,B 。一直原料甲、乙、丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/t ,16千元/t ,10千元/t ;产品A,B 的含硫量分别不能超过2.5%,1.5%,售价分别为9千元/t ,15千元/t 。根据市场信息,原料甲、乙、丙的供应量都不能超过500t ;产品A,B 的最大市场需求量分别为100t ,200t 。 (1) 应如何安排生产? (2) 如果产品A 的最大市场需求量增长为600t ,应如何安排生产? (3) 如果乙的进货价格下降为13千元/t ,应如何安排生产?分别对(1)、(2)两种情况进 行讨论。 模型: (只考虑问题1,问题2,3只需改变一些约束条件) 设生产时使用原料甲、乙分别为12,x x t ,分别取混合后的液体34,x x t 再加入原料丙 56,x x t 生产产品A,B 。 有质量守恒,可得 1234x x x x +=+ 甲乙混合后的液体的含硫量可表示为 12 12 3%x x x x ++,根据含硫量的要求,可得 12 353512 124646 12 3%*2%* 2.5%*()3%*2%* 1.5%*() x x x x x x x x x x x x x x x x +?+≤+?+?? +?+≤+?+? 根据市场的限制,易得 12563546500 500500100200 x x x x x x x x ≤?? ≤?? +≤??+≤??+≤? 当然还有非负约束 123456,,,,,0x x x x x x ≥ 公司的净利润为(单位:千元): 35461256123456 9()15()61610()6169155z x x x x x x x x x x x x x x =+++---+=--++-+

作业1—java基础实验——参考答案

1、从键盘上输入10个整数,并将其放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素与第10个元素互换,第2个元素与第9个元素互换…第5个元素与第6个元素互换。分别输出数组原来各元素的值和对换后各元素的值。 参考答案 具体代码实现如下: 1.package programe; 2. 3.import java.io.BufferedReader; 4.import java.io.IOException; 5.import java.io.InputStreamReader; 6. 7.public class HuHuanDemo { 8.public static void main(String args[]) { 9. print(); 10. 11. } 12. 13.public static int[] write() { 14. BufferedReader[] buf = new BufferedReader[10];/* 申请缓冲数组 */ 15.int n;/* 开关量和中间量 */ 16.int array[] = new int[10]; 17.for (int i = 0; i < 10; i++)/* 赋值 */ 18. { 19. buf[i] = new BufferedReader(new InputStreamReader(System.in)); 20./* 给每个缓冲区定义 */ 21.do/* 判断是否是空串,如是则重新输入 */ 22. { 23. n = 1; 24. System.out.print("请输入第" + (i + 1) + "个整 数:"); 25.try/* 建立一个异常捕获 */ 26. { 27. array[i] = Integer.parseInt (buf[i].readLine());/* 执行串变整数 */ 28./* 29. * Integer.parseInt(str) - str 转成 int型 buf[i].readLine() - 30. * 从系统输入缓冲区读入字符流给 buf缓冲区并返回字符串 31. */

作业调度实验报告

实验二作业调度 一.实验题目 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。 (1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。 (2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。 (3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。 2、编写并调度一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 二.实验目的: 本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解 三 .实验过程 <一>单道处理系统作业调度 1)单道处理程序作业调度实验的源程序: 执行程序: 2)实验分析:

1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。 2、每个作业由一个作业控制块JCB 表示,JCB 可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W 。 3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。 3)流程图: 二.最短作业优先算法 三.高响应比算法 图一.先来先服务流程图 4)源程序: #include <> #include <> #include <> #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 int n; 代替 代替

相关主题
文本预览
相关文档 最新文档