文档库 最新最全的文档下载
当前位置:文档库 › 昆明理工大学进程管理实验报告

昆明理工大学进程管理实验报告

昆明理工大学进程管理实验报告
昆明理工大学进程管理实验报告

昆明理工大学信息工程与自动化学院学生实验报告

(2010 —2011 学年第二学期)

课程名称:操作系统开课实验室:年月日

目录

一、实验目的 (1)

二、实验原理及基本技术路线图 (1)

1. 进程的状态转换图 (2)

2. 各原语的功能说明 (2)

3.多级反馈队列调度算法的描述 (3)

4. 程序功能结构图 (4)

5. 流程图 (4)

6. 数据结构定义 (5)

7. 主要变量的说明 (6)

8. 函数的说明 (6)

四、实验方法、步骤 (6)

五、实验过程原始记录 (18)

六、实验结果、分析和结论 (21)

一、实验目的

通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。

二、实验原理及基本技术路线图(方框原理图)

用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用

多级反馈队列调度的算法模拟进程的控制。要求有创建、撤销、调度、阻塞、唤醒进程等功能。

1.进程的状态转换图:

2.各原语的功能说明:

-进程创建原语:进程创建是调用创建原语来实现。创建原语扫描系统的PCB链表,在找到一定PCB 链表之后,填入调用者提供的有关参数(这些参数包括:进程名、进程优先级P0、进程正文段起始地址d0、资源清单R0等),最后形成代表进程的PCB结构。

-进程撤销(终止): 撤消原语首先检查PCB进程链或进程家族,寻找所要撤消的进程是否存在。如果找到了所要撤消的进程的PCB结构,则撤消原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤消的进程有自己的子进程,则撤消原语先撤消其子进程的PCB结构并释放子进程所占用的资源之后,再撤消当前进程的PCB结构和释放其资源。

-阻塞原语:当发生引起阻塞的事件时,该原语被该进程自己调用来阻塞自己。阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断处理机和保存该进程的CPU 现场。然后将被阻塞进程置“阻塞”状态后插入等待队列中,再转进程调度程序选择新的就绪进程投入运行。

-唤醒原语:当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒。一个处于阻塞状态的进程不可能自己唤醒自己。唤醒一个进程有两种方法:一种是由系统进程唤醒。另一种是由事件发生进程唤醒。当由系统进程唤醒等待进程时,系统进程统一控制事件的发生并将“事件发生”这一消息通知等待进程。从而使得该进程因等待事件已发生而进入就绪队列。等待进程也可由事件发生进唤醒。由事件发生进程唤醒时,事件发生进程和被唤醒进程之间是合作关系。因此,唤醒原语既可被系统进程调用,也可被事件发生进程调用。我们称调用唤醒原语的进程为唤醒进程。

3.多级反馈队列调度算法的描述:

(1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。图 3-5 是多级反馈队列算法的示意。

(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n队列中便采取按时间片轮转的方式运行。

(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1) 队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分

配给新到的高优先权进程。

4.程序功能结构图:

5.流程图:

6.数据结构定义:

char name[20]; /*进程的名字*/

int supernumber; /*进程的优先级*/

int round; /*分配CPU的时间片*/

int cputime; /*CPU执行时间*/

int needtime; /*进程执行所需要的时间*/

char state; /*进程的状态,W——就绪态,R——执行态,F——完成态*/ int count; /*记录执行的次数*/

struct node *next; /*链表指针*/

7.主要变量的说明:

PCB *run=NULL,*finish=NULL; /*定义三个队列,就绪队列,执行队列和完成队列*/ ReadyQueue *Head = NULL; /*定义第一个就绪队列*/

int num; /*进程个数*/

int ReadyNum; /*就绪队列个数*/

8.函数的说明:

void Output(); /*进程信息输出函数*/

void InsertFinish(PCB *in); /*将进程插入到完成队列尾部*/

void Insertsupernumber(ReadyQueue *in); /*创建就绪队列,规定优先数越小,优先级越低*/

void supernumberCreate(); /*创建就绪队列输入函数*/

void GetFirst(ReadyQueue *queue); /*取得某一个就绪队列中的队头进程*/

void InsertLast(PCB *in,ReadyQueue *queue); /*将进程插入到就绪队列尾部*/

void ProcessCreate(); /*进程创建函数*/

void RoundRun(ReadyQueue *timechip); /*时间片轮转调度算法*/

void MultiDispatch(); /*多级调度算法,每次执行一个时间片*/

三、三、所用仪器、材料(设备名称、型号、规格等)。

计算机一台

四、实验方法、步骤

# include

# include

# include

# include

typedef struct node /*进程节点信息*/

{

char name[20]; /*进程的名字*/

int supernumber; /*进程的优先级*/

int round; /*分配CPU的时间片*/

int cputime; /*CPU执行时间*/

int needtime; /*进程执行所需要的时间*/

char state; /*进程的状态,W——就绪态,R——执行态,F——完成态*/

int count; /*记录执行的次数*/

struct node *next; /*链表指针*/

}PCB;

typedef struct Queue /*多级就绪队列节点信息*/

{

PCB *LinkPCB; /*就绪队列中的进程队列指针*/

int supernumber; /*本就绪队列的优先级*/

int round; /*本就绪队列所分配的时间片*/

struct Queue *next; /*指向下一个就绪队列的链表指针*/

}ReadyQueue;

PCB *run=NULL,*finish=NULL; /*定义三个队列,就绪队列,执行队列和完成队列*/ ReadyQueue *Head = NULL; /*定义第一个就绪队列*/

int num; /*进程个数*/

int ReadyNum; /*就绪队列个数*/

void Output(); /*进程信息输出函数*/

void InsertFinish(PCB *in); /*将进程插入到完成队列尾部*/

void Insertsupernumber(ReadyQueue *in); /*创建就绪队列,规定优先数越小,优先级越低*/

void supernumberCreate(); /*创建就绪队列输入函数*/

void GetFirst(ReadyQueue *queue); /*取得某一个就绪队列中的队头进程*/

void InsertLast(PCB *in,ReadyQueue *queue); /*将进程插入到就绪队列尾部*/ void ProcessCreate(); /*进程创建函数*/

void RoundRun(ReadyQueue *timechip); /*时间片轮转调度算法*/

void MultiDispatch(); /*多级调度算法,每次执行一个时间片*/

void Output() /*进程信息输出函数*/

{

ReadyQueue *print = Head;

PCB *p;

printf("进程名\t优先级\t轮数\tcpu时间\t需要时间\t进程状态\t计数器\n");

while(print)

{

if(print ->LinkPCB != NULL)

{

p=print ->LinkPCB;

while(p)

{

printf("%s\t%d\t%d\t%d\t%d\t\t%c\t\t%d\n",p->name,p->supernumber,p->round,p ->cputime,p->needtime,p->state,p->count);

p = p->next;

}

}

print = print->next;

}

p = finish;

while(p!=NULL)

{

printf("%s\t%d\t%d\t%d\t%d\t\t%c\t\t%d\n",p->name,p->supernumber,p->round,p ->cputime,p->needtime,p->state,p->count);

p = p->next;

}

p = run;

while(p!=NULL)

{

printf("%s\t%d\t%d\t%d\t%d\t\t%c\t\t%d\n",p->name,p->supernumber,p->round,p ->cputime,p->needtime,p->state,p->count);

p = p->next;

}

}

void InsertFinish(PCB *in) /*将进程插入到完成队列尾部*/

{

PCB *fst;

fst = finish;

if(finish == NULL)

{

in->next = finish;

finish = in;

}

else

{

while(fst->next != NULL)

{

fst = fst->next;

}

in ->next = fst ->next;

fst ->next = in;

}

}

void Insertsupernumber(ReadyQueue *in) /*创建就绪队列,规定优先数越小,优先级越低*/

{

ReadyQueue *fst,*nxt;

fst = nxt = Head;

if(Head == NULL) /*如果没有队列,则为第一个元素*/

{

in->next = Head;

Head = in;

}

else /*查到合适的位置进行插入*/

{

if(in ->supernumber >= fst ->supernumber) /*比第一个还要大,则插入到队头*/

{

in->next = Head;

Head = in;

}

else

{

while(fst->next != NULL) /*移动指针查找第一个别它小的元素的位置进行插入*/

{

nxt = fst;

fst = fst->next;

}

if(fst ->next == NULL) /*已经搜索到队尾,则其优先级数最小,将其插入到队尾即可*/

{

in ->next = fst ->next;

fst ->next = in;

}

else /*插入到队列中*/

{

nxt = in;

in ->next = fst;

}

}

}

}

void supernumberCreate() /*创建就绪队列输入函数*/

{

ReadyQueue *tmp;

int i;

static int j=0;

printf("输入就绪队列的个数:\n");

scanf("%d",&ReadyNum);

printf("每个就绪队列的CPU时间片:(优先级和时间片成反比)\n");

for(i = 0;i

{

if((tmp = (ReadyQueue *)malloc(sizeof(ReadyQueue)))==NULL)

{

perror("malloc");

exit(1);

}

tmp->round=int(pow(2.0,(++j))); /*输入此就绪队列中给每个进程所分配的CPU时间片*/

printf("%d \n",tmp->round);

tmp ->supernumber = 50 - tmp->round; /*设置其优先级,时间片越高,其优先级越低*/

tmp ->LinkPCB = NULL; /*初始化其连接的进程队列为空*/

tmp ->next = NULL;

Insertsupernumber(tmp); /*按照优先级从高到低,建立多个就绪队列*/ }

}

void GetFirst(ReadyQueue *queue) /*取得某一个就绪队列中的队头进程*/ {

run = queue ->LinkPCB;

if(queue ->LinkPCB != NULL)

{

run ->state = 'R';

queue ->LinkPCB = queue ->LinkPCB ->next;

run ->next = NULL;

}

}

void ProcessCreate() /*进程创建函数*/

{

PCB *tmp;

int i;

static int j=1;

printf("输入进程的个数:\n");

scanf("%d",&num);

for(i = 0;i < num; i++)

{

if((tmp = (PCB *)malloc(sizeof(PCB)))==NULL)

{

perror("malloc");

exit(1);

}

printf("输入%d进程名字:\n",j);

scanf("%s",tmp->name);

getchar();

printf("输入%d进程时间:\n",j++);/*吸收回车符号*/

scanf("%d",&(tmp->needtime));

tmp ->cputime = 0;

tmp ->state ='W';

tmp ->supernumber = 50 - tmp->needtime; /*设置其优先级,需要的时间越

多,优先级越低*/

tmp ->round = Head ->round;

tmp ->count = 0;

InsertLast(tmp,Head); /*按照优先级从高到低,插入到就绪队列*/ }

system("cls");

}

void InsertLast(PCB *in,ReadyQueue *queue) /*将进程插入到就绪队列尾部*/ {

PCB *fst;

fst = queue->LinkPCB;

if( queue->LinkPCB == NULL)

{

in->next = queue->LinkPCB;

queue->LinkPCB = in;

}

else

{

while(fst->next != NULL)

{

fst = fst->next;

}

in ->next = fst ->next;

fst ->next = in;

}

}

void RoundRun(ReadyQueue *timechip) /*时间片轮转调度算法*/ {

int flag = 1;

GetFirst(timechip);

while(run != NULL)

{

while(flag)

{

run->count++;

run->cputime++;

run->needtime--;

if(run->needtime == 0) /*进程执行完毕*/

{

run ->state = 'F';

InsertFinish(run);

flag = 0;

}

else if(run->count == timechip ->round)/*时间片用完*/

{

run->state = 'W';

run->count = 0; /*计数器清零,为下次做准备*/

InsertLast(run,timechip);

flag = 0;

}

}

flag = 1;

GetFirst(timechip);

}

}

void MultiDispatch() /*多级调度算法,每次执行一个时间片*/ {

int flag = 1;

int k = 0;

ReadyQueue *point;

point = Head;

GetFirst(point);

while(run != NULL)

{

Output();

if(Head ->LinkPCB!=NULL)

point = Head;

while(flag)

{

run->count++;

run->cputime++;

run->needtime--;

if(run->needtime == 0) /*进程执行完毕*/

{

run ->state = 'F';

InsertFinish(run);

flag = 0;

}

else if(run->count == run->round)/*时间片用完*/

{

run->state = 'W';

run->count = 0; /*计数器清零,为下次做准备*/

if(point ->next!=NULL)

{

run ->round = point->next ->round;/*设置其时间片是下一个就绪队列的时间片*/

InsertLast(run,point->next); /*将进程插入到下一个就绪队列中*/

flag = 0;

}

else

{

RoundRun(point); /*如果为最后一个就绪队列就调用时间片轮转算法*/

break;

}

}

}

flag = 1;

if(point ->LinkPCB == NULL)/*就绪队列指针下移*/

point =point->next;

if(point ->next ==NULL)

{

RoundRun(point);

break;

}

GetFirst(point);

}

}

int main( )

{

printf("\t\t\t\t进程管理\n");

supernumberCreate(); /*创建就绪队列*/

ProcessCreate();/*创建就绪进程队列*/

printf("\t\t\t\t进程调度\n");

for(int i=0;i<80;i++) printf("*");printf("\n");

MultiDispatch();/*算法开始*/

Output(); /*输出最终的调度序列*/

return 0;

}

五、实验过程原始记录(数据、图表、计算等)

昆明理工大学电机学实验报告..

昆明理工大学实验报告 实验课程名称: 电机学实验 开课实验室: 电机实验室 2013年7月5日 年级、专业、班 电自11级 3 班 学号 201110901141 姓名 刘盼 成绩 实验项目名称 电机综合实验 指导教师 教 师 评 语 教师签名 2013年 7 月 5 日 实验一、变压器综合实验 三相变压器并联运行 一、 实验目的 1.学习三相变压器投入并联运行的方法。 2.测试三相变压器并联运行条件不满足时的空载电流。 3.研究三相变压器并联运行时负载的分配规律。 二、 实验原理 理想的并联运行的变压器应满足以下条件: 1、空载时,各变压器的相应的次级电压必须相等而且同相位。为满足此条件,并联个变压器应有相同电压变比:即k1=k2=k3…kn 且属于相同的连接组,不同连接组别的变压器不能并联运行。 2、在有负载时,各变压器的所分担的负载电流英语他们的容量成正比。为满足此条件,保证各个变压器所分担的负载电流与其容量成正比例,各变压器应该有相同的短路电压标幺值。 3、各变压器的负载电流都应同相位。为满足此条件,要求各变压器短路电阻与短路电抗的比值相等。即要求阻抗电压降的有功分量和无功分量分别相等,即各个变压器应该有相同的短路电压有功分量和无功分量。 4.变压器并联运行时的负载分配 。当变压器并联运行时,通常短路电压标幺值随着容量的不同而不相同,大容量的变压器有较大的短路电压。各个并联运行的变压器实际分担负载的计算公式: 由此可见,各个变压器的负载分配与该变压器的额定容量成正比,与短路电压成反比。如果各个变压器的短路电压相同,则变压器的负载分配只与额定容量成正比。

三、实验线路 图A-1 实验线路 四、实验结果及分析 1、测试两台三相变压器满足理想条件并联运行时的空载电流实验参数: 图A-2 实验参数设置Ⅰ

财务管理实训总结

财务管理实训总结 实训时间:xx年xx月xx日—xx年xx月xx日 实训地点:5411教室 实训科目:财务管理 实训内容:第一,财务管理的价值观点Excel练习;第二,证券 及其股价Excel练习;第三,财务分析Excel练习;第四,财务预测与 计划Excel练习;第五,企业筹资方式Excel练习;第六,资本成本和 资本结构Excel练习;第七,项目投资Excel练习。 实训感想:每到快要结束的时候,都会感叹时间过得真快! 经过一周的实训,收获了很多知识,让自己有“更上一层楼”的 感觉。这次的实训虽说告一段落了,但是财务管理的这次实训过程给 我留下深刻的印象,这也将是下一个起程。这次实训,虽然时间很短,但我觉得会对我以后的学习及工作产生很大的影响。这次的实训让我 们在平常学习的基础上,知识得到了进一步的巩固,更加清晰明白。 实训的第一天,拿到这个题都不知从何处下手,慢慢的,经过和同班 同学的交流讨论,开始着手了,也逐步地加快了进度。第一天结束了,第一部分的内容也做完了,有了很大的成就感,懂得了方法,也获得 了很多的知识。 第二天开始做时,也就越来越上手了,正所谓“天下难事始于易,天下大事始于细”。这次的实训让我们把书本上的知识使用电脑中的 办公软件Excel来完成,其实,这对于我们学财务管理的学生来说, 为我们提供了一个很好的实训机会,让我们对Excel有了进一步的了解,Excel中很多的功能也更加熟悉,比如:终值、现值、利率、年金、净现值等的计算,这些平常我们都没有怎么使用的函数,这次在实训 中将其使用熟悉。这次财务管理的实训,我们做了七个部分的内容, 从开始不知从何下手,到最后的得来应手,“万事开头难”,只要有

windows进程管理实验报告

实验报告 课程名称:操作系统 实验项目:windows进程管理 姓名: 专业:计算机科学与技术 班级: 学号:

计算机科学与技术学院 计算机系 2019 年 4 月 23 日

实验项目名称: windows进程管理 一、实验目的 1. 学习windows系统提供的线程创建、线程撤销、线程同步等系统调用; 2. 利用C++实现线程创建、线程撤销、线程同步程序; 3. 完成思考、设计与练习。 二、实验用设备仪器及材料 1. Windows 7或10, VS2010及以上版本。 三、实验内容 1 线程创建与撤销 写一个windows控制台程序(需要MFC),创建子线程,显示Hello, This is a Thread. 然后撤销该线程。 相关系统调用: 线程创建: CreateThread() 线程撤销: ExitThread() 线程终止: ExitThread(0) 线程挂起: Sleep() 关闭句柄: CloseHandle() 参考代码: ; } 运行结果如图所示。 完成以下设计题目: 1. 向线程对应的函数传递参数,如字符串“hello world!”,在线程中显示。 2. 如何创建3个线程A, B, C,并建立先后序执行关系A→B→C。

实验内容2 线程同步 完成父线程和子线程的同步。父线程创建子线程后进入阻塞状态,子线程运行完毕后再唤醒。 相关系统调用: 等待对象 WaitForSingleObject(), WaitForMultipleObjects(); 信号量对象 CreateSemaphore(), OpenSemaphore(), ReleaseSemaphore(); HANDLE WINAPI CreateSemaphore( _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes _In_ LONG lInitialCount, _In_ LONG lMaximumCount, _In_opt_ LPCTSTR lpName ); 第一个参数:安全属性,如果为NULL则是默认安全属性 第二个参数:信号量的初始值,要>=0且<=第三个参数 第三个参数:信号量的最大值 第四个参数:信号量的名称 返回值:指向信号量的句柄,如果创建的信号量和已有的信号量重名,那么返回已经存在的信号量句柄参考代码: n"); rc=ReleaseSemaphore(hHandle1,1,NULL); err=GetLastError(); printf("Release Semaphore err=%d\n",err); if(rc==0) printf("Semaphore Release Fail.\n"); else printf("Semaphore Release Success. rc=%d\n",rc); } 编译运行,结果如图所示。

昆明理工大学研究生学业奖学金评选及管理办法(试行)

昆理工大校教字…2014?47号 昆明理工大学研究生学业奖学金 评选及管理办法(试行) 第一章总则 第一条为激励研究生勤奋学习、潜心科研、勇于创新、积极进取,在全面实行研究生教育收费制度的情况下更好地支持研究生顺利完成学业,根据?财政部国家发展改革委教育部关于完善研究生教育投入机制的意见?(财教…2013?19号)、?财政部教育部关于印发?研究生学业奖学金管理暂行办法?的通知?(财教…2013?219 号)及?云南省财政厅云南省教育厅关于印发云南省研究生学业奖学金助学金管理三个暂行办法的通知?(云财教…2013?369 号)文件精神,结合我校实际情况,制定本办法。

第二条本办法所称研究生是指我校纳入全省研究生招生计划的全日制博士、硕士研究生。获得奖励的研究生须具有中华人民共和国国籍。 第三条研究生学业奖学金评定按照公平、公正、公开的原则,根据研究生的学业表现逐年评定,实行动态管理。 第四条学校可根据经费筹措情况、收费标准、学业成绩、科研成果、社会服务等因素,对研究生学业奖学金的等级、标准及覆盖面做动态调整。 第二章参评条件及资格 第五条昆明理工大学研究生学业奖学金适用于2014级及以后入学,学制内在籍在读的全日制博士、硕士研究生。单独命题考试录取考生、破格录取考生及享受少数民族照顾政策录取考生不参与新生硕士研究生学业奖学金评选。 第六条参评研究生学业奖学金的基本条件: 1.热爱社会主义祖国,拥护中国共产党的领导; 2.遵守宪法和法律,遵守高等学校规章制度; 3.诚实守信,道德品质优良; 4.积极参与科学研究和社会实践。 第七条硕博连读学生根据当年所修课程的层次阶段确定身份参与学业奖学金的申报。在修读硕士课程阶段按照硕士研究生身份申报学业奖学金;进入修读博士研究生课程阶段按照博士研究生身份申报学业奖学金。 第八条有以下情形之一的,不具有研究生学业奖学金获奖资格: 1.违反国家法律法规者; 2.在提交的申请资料中,提供不实信息或隐瞒不利信息者; 3.考试作弊者;

昆明理工大学进程管理实验报告

昆明理工大学信息工程与自动化学院学生实验报告 (2010 —2011 学年第二学期) 课程名称:操作系统开课实验室:年月日 目录 一、实验目的 (1) 二、实验原理及基本技术路线图 (1) 1. 进程的状态转换图 (2) 2. 各原语的功能说明 (2) 3.多级反馈队列调度算法的描述 (3) 4. 程序功能结构图 (4) 5. 流程图 (4) 6. 数据结构定义 (5) 7. 主要变量的说明 (6) 8. 函数的说明 (6) 四、实验方法、步骤 (6) 五、实验过程原始记录 (18) 六、实验结果、分析和结论 (21) 一、实验目的 通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。 二、实验原理及基本技术路线图(方框原理图) 用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用

多级反馈队列调度的算法模拟进程的控制。要求有创建、撤销、调度、阻塞、唤醒进程等功能。 1.进程的状态转换图: 2.各原语的功能说明: -进程创建原语:进程创建是调用创建原语来实现。创建原语扫描系统的PCB链表,在找到一定PCB 链表之后,填入调用者提供的有关参数(这些参数包括:进程名、进程优先级P0、进程正文段起始地址d0、资源清单R0等),最后形成代表进程的PCB结构。 -进程撤销(终止): 撤消原语首先检查PCB进程链或进程家族,寻找所要撤消的进程是否存在。如果找到了所要撤消的进程的PCB结构,则撤消原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤消的进程有自己的子进程,则撤消原语先撤消其子进程的PCB结构并释放子进程所占用的资源之后,再撤消当前进程的PCB结构和释放其资源。

财务管理实训报告范文三篇

财务管理实训报告范文三篇 财务管理实训汇报范文格式一 在这个学期里,我们开展了财务管理课,期末学校跟着安排我们进行财务管理实训。以下是这次实训的一些详细情况,以及我的一些感悟领会。 这次实训在期末进行,时间为从xx月xx号至xx月xx号,共10个课时,大概持续一个星期。这次实训的目的是为了进一步稳固我们按模块教学所掌握的《财务管理》操作技能知识,全面检验我们财务会计核算综合运用技能,加强我们动手能力和实践操作能力,并为今后从事财务管理打下良好基础,而特开展的。这次实训要求我们能以企业的财务报表等核算资料为基础,对企业财务活动的过程和结果进行研究和评价,以分析企业在生产经营过程中的利弊得失、财务状况及开展趋势,并能为评价和改良财务财务管理工作及为将来进行经济决策提供重要的财务信息。实训内容分为三大块:一初步分析,二财务指标分析,三综合分析。 实训开始的第一步骤是公式计算。根据企业资产负债表以及利润表上的数据信息,再通过特定的公式把各项指标的构造比率、增长额和增长率等项目方案计算出来。这个工作的技术含量相比照较低,最要是考察我们对公式的理解程度以及运用程度,只要你熟悉公式,懂得运用公式,然后对号入座,几乎上就没什么大问习题了,但是要计

算的数据比较多,相对就变得繁琐,毕竟是一环扣一环的公式计算,这要求核算人员工作态度认真严谨。由于实训要求书面书写清洁整齐、标准、严禁挖乱、涂改和使用涂改液,所以我做的时候先在草稿上做一次,确认无误后,再填入实训资料。我平常是属于比较认真学习的那一类,所以这个公式计算没到四个课时,我就完成了,进展得相比照较顺利。可是进行第二步骤运用公式分析就遇到相当大的困难。 第二步骤公式分析、评价,也就是这次实训过程中最为关键、最为重要、最精华的一步,也是这次实训的主要内容以及主要目的。 第一步是对资产负债表以及利润表作初步分析。资产负债表总体分为三大块:资产、负债及所有者权益,而其中资产又分为流动资产和非流动资产,负债又分为流动负债和非流动负债。每一大块到每一小块,再到每一小块的细分都要进行分析小结,这点对初学者来说要求不低难度不少,或许是教师对我们期望值相当高,希望通过高要求打好我们基础,所以才安排大习题量并细分析。 大致上的资产总额构造分析,流动资产构造分析、非流动资产构造分析等,然后再细分下去的货币资金分析、应收账款分析、应收票据分析、其他应收款分析、存货分析等,通过教师的指导以及与同学们的讨论,我还是可以理解和分析的,可是明细的预付账款、原材料、固定资产和再建工程,就不知道怎么作出总结归纳好了。后来在课本上大量并且细微阅读有关内容,在网上大量疯狂的搜索有关资料,再根据资料通过自己的独立思考,渐渐的领悟很多财务分析的问习题,譬如对预付账款的分析,开始我只明白预付账款的字面意思,就是指

进程管理实验报告

实验2过程管理实验报告学生号姓名班级电气工程系过程、过程控制块等基本原理过程的含义:过程是程序运行过程中对数据集的处理,以及由独立单元对系统资源的分配和调度。在不同的数据集上运行程序,甚至在同一数据集上运行多个程序,是一个不同的过程。(2)程序状态:一般来说,一个程序必须有三种基本状态:就绪、执行和阻塞。然而,在许多系统中,过程的状态变化可以更好地描述,并且增加了两种状态:新状态和终端状态。1)就绪状态,当一个进程被分配了除处理器(CPU)以外的所有必要资源时,只要获得了处理器,进程就可以立即执行。此时,进程状态称为就绪状态。在系统中,多个进程可以同时处于就绪状态。通常,这些就绪进程被安排在一个或多个队列中,这些队列称为就绪队列。2)一旦处于就绪状态的进程得到处理器,它就可以运行了。进程的状态称为执行状态。在单处理器系统中,只有一个进程在执行。在多处理器系统中,可能有多个进程在执行中。3)阻塞状态由于某些事件(如请求输入和输出、额外空间等),执行进程被挂起。这称为阻塞状态,也称为等待状态。通常,处于阻塞状态的进程被调度为-?这个队列称为阻塞队列。4)新状态当一个新进程刚刚建立并且还没有放入就绪队列中时,它被称为新状态。5)终止状态是

什么时候-?进程已正常或异常终止,操作系统已将其从系统队列中删除,但尚未取消。这就是所谓的终结状态。(3)过程控制块是过程实体的重要组成部分,是操作系统中最重要的记录数据。控制块PCB记录操作系统描述过程和控制过程操作所需的所有信息。通过PCB,一个不能独立运行的程序可以成为一个可以独立运行的基本单元,并且可以同时执行一个进程。换句话说,在进程的整个生命周期中,操作系统通过进程PCB管理和控制并发进程。过程控制块是系统用于过程控制的数据结构。系统根据进程的PCB来检测进程是否存在。因此,进程控制块是进程存在的唯一标志。当系统创建一个进程时,它需要为它创建一个PCB;当进程结束时,系统回收其PCB,进程结束。过程控制块的内容过程控制块主要包括以下四个方面的信息。过程标识信息过程标识用于对过程进行标识,通常有外部标识和内部标识。外部标识符由流程的创建者命名。通常是一串字母和数字。当用户访问进程时使用。外部标识符很容易记住。内部标识符是为了方便系统而设置的。操作系统为每个进程分配一个唯一的整数作为内部标识符。通常是进程的序列号。描述性信息(process scheduling message)描述性信息是与流程调度相关的一些有关流程状态的信息,包括以下几个方面。流程状态:表

昆明理工大学关于2015年学校推免名额下达的通知(学院)

昆明理工大学教务处 昆理工大教务办字…2014?78号 关于做好昆明理工大学2015年推荐优秀 应届本科毕业生免试攻读研究生工作的通知 各学院: 根据《教育部办公厅关于进一步完善推荐优秀应届本科毕业生免试攻读研究生工作的通知》(教学厅…2014?5号)、《关于下达2015年推荐优秀应届本科毕业生免试攻读研究生名额的通知》(教学司…2014?号)等文件精神和我校2015年所获得的推免总名额情况,现将推免名额的分配及相关要求通知如下。请各学院根据《昆明理工大学推荐优秀应届本科毕业生免试攻读硕士学位研究生实施办法(修订)》(昆理工大校教字…2010?34号)、《昆明理工大学优秀应届本科毕业生免试攻读研究生推荐工作的补充规定(试行)》(昆理工大教务办字…2014?71号)等文件及本通知的相关要求,认真做好推荐工作。 一、我校推荐名额的分配 根据教育部高校学生司文件精神,2015年下达的推免生

名额不再区分学术学位和专业学位,今年我校共获得推免名额220个。经学校推免生遴选工作领导小组研究确定,留出复合型人才推荐名额20个,另外根据《昆明理工大学推荐优秀应届本科毕业生免试攻读硕士学位研究生实施办法》的相关规定,分配2个作为国家重点学科点推荐名额,分配8个作为一级学科博士点推荐名额,余下可分配的推荐名额共190个。 根据研究生院提供的各学院学位点数和教务处、城市学院提供的各学院2015届毕业生数,按下列办法计算确定各学院的推免生名额: 1、学位点基数名额:以可分配的推免名额190的50%即95为分子,以研究生院认定并经学校推免生遴选工作领导小组确定的全校学位点总数205个为分母,计算出每个学位点应得的份额,再乘以各学院的学位点总数,并执行“四舍五入”的原则,小数点后保留两位,得出各学院的学位点基数名额。 2、应届本科毕业生基数名额:以余下推免名额95为分子,以全校2015届本科毕业生总数6977为分母,计算出每个本科毕业生应得的份额,再乘以各学院本科毕业生总数,并执行“四舍五入”的原则,小数点后保留两位,得到各学院的应届本科毕业生基数名额。 3、各学院总名额=(学位点基数名额+应届本科毕业生基数名额)“四舍五入”取整。(“四舍五入”取整后总名额超出或不足时将进行适当调整。) 据此,各学院推免生名额分配如下:

昆明理工大学进程管理实验报告

理工大学信息工程与自动化学院学生实验报告 ( 2010—2011学年第二学期) 课程名称:操作系统开课实验室:年月日 目录 一、实验目的1 二、实验原理及基本技术路线图1 1.进程的状态转换图2 2.各原语的功能说明2 3.多级反馈队列调度算法的描述3 4.程序功能结构图4 5.流程图4 6.数据结构定义5 7.主要变量的说明6 8.函数的说明6 四、实验方法、步骤6 五、实验过程原始记录18 六、实验结果、分析和结论21 一、实验目的 通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。 二、实验原理及基本技术路线图(方框原理图) 用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用多

级反馈队列调度的算法模拟进程的控制。要求有创建、撤销、调度、阻塞、唤醒进程等功能。 1.进程的状态转换图: 2.各原语的功能说明: -进程创建原语:进程创建是调用创建原语来实现。创建原语扫描系统的PCB链表,在找到一定PCB 链表之后,填入调用者提供的有关参数(这些参数包括:进程名、进程优先级P0、进程正文段起始地址d0、资源清单R0等),最后形成代表进程的PCB结构。 -进程撤销(终止): 撤消原语首先检查PCB进程链或进程家族,寻找所要撤消的进程是否存在。如果找到了所要撤消的进程的PCB结构,则撤消原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤消的进程有自己的子进程,则撤消原语先撤消其子进程的PCB结构并释放子进程所占用的资源之后,再撤消当前进程的PCB结构和释放其资源。 -阻塞原语:当发生引起阻塞的事件时,该原语被该进程自己调用来阻塞自己。阻塞

财务管理实验报告总结免费范文

财务管理实验报告总结免费范文 一、实验目的 二、实验成员角色分配 团队中的四个人必须有很强的团队意识和强大的凝聚力,这项工作本身就是一项相互配合与在相互帮助中完成的工作,每个人都负 有别人不可替代的任务。如果四个人当中有一个人缺少团队意识, 那只会有一种结果:必输无疑,无论其它人的个人业务水平有多高,因为每个人的工作都是紧密的相互关联、密不可分的。 三、实验过程及分析 (一)生产计划与实行 第一年,我们公司主要是生产低端产品,所以安装了三条生产线分别是两条低端L1,一条在建的中端M1,之所以我们在选择生产线 时选择的都是最贵的,是因为我们小组坚信,只要能生产出多的产品,就一定能盈利。但在产房的购买与租赁问题中,我们出现了错误,这个错误是到后面也无法弥补的。我们第一年选择了厂房租赁,规则上是说厂房租赁每年4万,可到实际操作中就不是这样了,厂 房每年的租金都会翻倍,这也使我们接下来几年的预算全部出错, 甚至在最后两年出现了紧急贷款的情况。 (二)财务变化分析 第一年,公司处于初创期,需要购置厂房、购买设备、聘用工人、采购原材料、生产产品,做好生产的准备。由于购买了设备、原材 料等,所以企业资产总计是呈增长的。处于初创期的企业意味着资 金只出无进,而且根据规则,企业第一年只能卖低端产品,导致资 金流出要大于资金流入,所以企业的营业利润、利润总额以及净利 润均呈负增长。 第二年,在扣除一系列费用之后,虽然公司资金有剩余,但还不足以满足公司本年的经营,所以我们选择了借入长期借款来满足公

司经营。在这一年企业继续购进原材料和设备来扩大生产,实现产 品多样化,同时加之上年所剩产成品使得本年资产总额继续上涨。 本年我们在销售低端产品的基础上增加了中端产品的销售,这一举 措让我们尝到了销售收入的甜头,公司营业利润以及净利润相比上 一年有大幅增长,呈正增长趋势,销售利润率也呈现上涨之势。 第三年,我们不甘于平稳的经营模式,决定扩大生产量,增加厂房和设备,并开始进军高端市场。虽然随之而来的是高额的成本费用,但由于我们公司所占的市场份额比重较高,所以销售收入也是 不菲的,营业利润及净利润几乎高出上一年的50%,销售利润率、 净资产收益率等盈利指标的增长也是可观的。 在第四年到第八年期间,我们企业本着平稳中有突破的精神,继续填置设备,积极扩大生产量,虽然在这期间存在销售状况下降的 情况,但总体销售状况是可观的。由于一些销售收入有回款期限, 所以也导致了企业资金缺乏,只能依靠借入长期贷款来满足企业经 营需求,并且在第七年我们也通过发行股票的方式来筹集资金。总 体而言,这几年的销售收入总是处于波动之中,第六年和第七年达 到最高,销售成本以及各项费用的支出情况也并不稳定,这使得企 业营业利润和净利润无法呈现出一个平稳的增长态势,造成这一结 果的原因之一可能是财务预算工作做得不够细致准确,对于预计销 售量的考虑过于简单。 (三)成本及财务指标分析 从费用控制来看,财务费用比较稳定,在第七年因为发行股票财务费用激增,在其他年份均低于行业水平,主要是我们每年从银行 借债不多,也没有出现过应收账款贴现的现象,表示我们从一开始 财务预算就是较合理的,没有出现过资金严重短缺的年份,但是由 于对系统了解不够充分,我们企业在后两年出现了紧急借款的现象,而且借款数目比较小,这说明在后两期由于业务大,成本高,主要 是原材料购买多,我们企业现金流出现断裂,应该在前期做多些贷款,避免出现紧急贷款这种失误。其次是管理费用,从管理费用分 年趋势图看,公司第一年管理费用最高,达到350000元,主要原因 是购买生产线,第二年、第三年管理费用分别是142000元、157500

进程管理实验报告

进程的控制 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new

program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。 3 .实验步骤 (1)gedit创建进程1.c (2)使用gcc 1.c -o 1编译并./1运行程序1.c #include #include #include #include void mian(){ int id; if(fork()==0) {printf(“child id is %d\n”,getpid()); } else if(fork()==0) {printf(“child2 id %d\n”,getpid()); } else {id=wait(); printf(“parent id is %d\n”,getpid()); }

6、科研项目分类

昆理工大校字…2009?95号 昆明理工大学关于印发 《科研项目分类与认定办法(试行)》的通知 各院、部、处、室、馆、中心及直属部门: 《昆明理工大学科研项目分类与认定办法》(试行)已经2009年11月11日第十七次校长办公会研究通过。现印发给你们,请认真遵照执行。 二○○九年十一月十六日

昆明理工大学 科研项目分类与认定办法(试行) 第一章总则 第一条为充分发挥科研在支撑学校学科建设和高水平大学建设中的重要作用,统一我校科研项目类别,规范科研项目管理,为全校教职工的学术业绩量化提供科学依据,特制定本办法。 第二条本办法适用于学校科研项目的分类、认定、定级与管理。依据本办法规范和认定的科研项目,作为学校与学院专业技术人员绩效考核、人才培养与学科建设、研究生导师评聘等的重要依据。 第二章科研项目的定义与分类 第三条本办法所称科研项目,是指以学校名义承担、经学校科技处认定、由学校教职工负责的基础研究、应用研究、技术开发及转让、咨询服务等自然科学与人文社会科学领域的各类政府科技计划、企事业单位委托项目和国际组织资助项目。 第四条本办法将科研项目按项目来源、技术难度和研究经费,分为“国家级(A级)”、“省部级(B级)”、“地厅级(C级)”三个级别,每一个级别又分为“重大”、“重点”和“一般”三种类型(A1-A3、B1-B3、C1-C3)。未进入上述三级九类的项目,为其它项目(D类)。

第五条国家级(A级)科研项目包括:国家重点基础研究发展计划(973)项目,国家高新技术研究发展计划(863)项目,国家科技支撑计划项目,国际合作等科技部其它项目,国家发改委高技术产业化项目、重大产业技术开发项目,国家自然科学基金(NSFC)各类项目,国家社会科学基金项目,国家其它部委(局)项目;联合国及国际组织资助项目,企业重大科技攻关项目与重大技术转移项目;国家自然科学基金创新研究群体科学基金项目、杰出青年基金项目,教育部人才项目(长江学者和创新团队发展计划、新世纪优秀人才支持计划、全国优秀博士学位论文作者专项资金),云南省高端科技人才引进项目;国家实验室,国家重点实验室,国家工程研究中心,国家工程实验室,国家工程技术研究中心等。 第六条省部级(B级)科研项目包括:教育部各类项目,国家其他部委(局)和行业协会项目,司法部国家法治与法学理论研究项目;省应用基础研究计划项目,省科技创新强省计划项目(工业与高新、农业、国际合作、省校合作)、重点新产品开发计划和社会事业发展专项计划项目,省发改委高新技术产业化项目、重大产业技术开发项目,省哲学社会科学规划课题,其他厅局科技专项项目;联合国及外国政府国际基金资助项目,企事业单位委托项目,校企业预研基金项目;省创新人才团队项目,省人才引培工程项目(中青年学术和技术带头人后备人才、技术创新后备人才项目);校高端人才引进计划项目,校创新团队项目等。教育部工程技术研究中心、教育部重点实验室,省发改委工程中心,省科技厅重点实验室、工程技术研究中心项目,昆明市重点实验

财务管理实训心得

财务管理实训心得体会 为期一周的财务管理实训结束了,这一周的实习让我深深感到理论和实践的巨大差异。原本自认为财务管理这门课学得不错,但当模拟到真实工作环境中时,却感到力不从心。大量的数据,业务以及分析是我完全没有预料到的。尽管有些可以运用所学的理论知识解决,但是在许多时候并没有想象的那么简单和顺利。整个实训包括以下几个部分: 1、财务分析报告:在财务分析报告中,又包括三方面内容:水平分析、垂直分析和财务效率指标分析。水平分析是对连续两年的报表历史数据进行分析,进行横向数据对比,通过差异额及差异率对企业经营的变化作出分析。垂直分析是对连续两年的报表历史数据进行分析,通过纵向的相对指标看出各项目对总资产的影响,再通过差额比较出两年数据间的不同而得到企业经营状况的差异及趋势。财务效率指标,通过对企业两年的偿债能力分析、营运能力分析、盈利能力分析和增长能力分析得到企业在各个方面的能力,尽管这些指标存在一定的误区,但也能从一定程度上了解到企业的很多实际情况。 2、预算报表:预算报表是全面预算管理的一部分内容,根据经验数据(销售量、单价),先计算出销售总额得出了预计的首先计划;再凭借着以销定产的思路,抛出库存量,计算得到生产量及需要采购的量,而得到费用支出计划表;然后再依次算出预计直接人工、预计制造费用、预计销售及管理费用,从而可填列现金预算表。通过上述工

作,我们就可以计算得到预计的资产负债表和利润表。 3、资金筹集管理:根据实验资料的要求,企业预计的借款及还款金额和时间,我们可以填制还款计划表:由资金的总需求量减去利润留用和折旧(非付现成本)剩下的就需要外部融资,正如该公司向银行举债。 4、投资财务可行性分析报告:该报告是假设企业投资一条新生产线,而在未来五年生产经营而取得收益。同样我们用以销定产的思路,先根据销售量估算出现金收入估算表,然后在估算出直接材料、直接人工、制造费用销售及管理费用,再得出现金流量估算表,最后根据上述数据就可以计算得到净现值、获利指数、内含报酬率和投资回收期这些财务指标。再通过这些财务指标的数据来分析得出此投资是否可行。 在我看来,第一部分必须从全局上准确把握整个趋势,并且通过一层层仔细分析,最终找出导致变化的因素。比如说:公司期末负债比期初增加了14.94%,主要是由于流动负债的增加,而它的增加又是因为短期借款大幅上升。只有这样才能有针对性地对其进行改善。除此之外我发现自己对企业财务报表分析的基本方法和技巧不熟练。像杜邦分析、改进的杜邦分析都不清楚,因此在做的过程中对数字感觉很模糊,没有十足的把握。第二部分并不难,最重要的是要细心和耐心。虽然做财务管理工作有很多相同的重复工作,但是却是容不得一点马虎的,因为一个小小的错误也会造成重大的财务损失。

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

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 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;

大学生创新创业训练计划项目管理办法

昆明理工大学文件 昆理工大校教字〔2012〕20号 昆明理工大学关于印发 《大学生创新创业训练计划项目管理 办法(试行)》的通知 各院、部、处、室、馆、中心及直属部门: 《昆明理工大学大学生创新创业训练计划项目管理办法(试行)》已经学校2012年第六次校长办公会研究通过,现印发给你们,请遵照执行。 二O—二年五月八日

昆明理工大学 大学生创新创业训练计划项目管理办法(试行) 第一章总则 第一条根据《教育部财政部关于“十二五”期间实施“高等学校本科教学质量与教学改革工程”的意见》(教高函〔2011 〕6 号)和《云南省教育厅转发教育部关于做好“本科教学工程” 国家级大学生创新创业训练计划实施工作的通知》(云教函〔2012 〕84 号)精神,“十二五”期间,教育部实施国家级大学生创新创业训练计划。国家级大学生创新创业训练计划是“十一五”期间实施“高等学校本科教学质量与教学改革工程”中“国家大学生创新性实验计划” 工作的延续与深化。为进一步深入实施我校“大学生创新创业训练计划”项目(以下简称创新项目),构建创新人才培养体系,加强大学生自主创新兴趣和能力培养,特制定本管理办法。 第二条国家级大学生创新创业训练计划包括创新训练计划项目、创业训练项目和创业实践项目三类。参与创新训练项目的学生,在导师指导下,自主完成创新性研究项目设计、研究条件的准备和项目的实施、数据处理与分析、报告撰写、成果(学术)交流等工作。参与创业训练项目的学生团队在导师指导下,通过编制商业计划书、开展可行性研究、模拟企业运行,进行一定程度的验证试验,撰写创业报告等工作,团队中的每个学生在项目实施过程中承担一项或多项具体的任务。参与创业实践项目的学生团队在学校导师和企业导师的共同指导下,采取前期创新训练项目(或创新性实验)的结果,提出一项具有市场前景的创新性产品或者服务,以此为基础开展创业实践活动。

昆明理工大学数据库实验报告

《数据库原理》上机实验报告 专业:自动化、测控 学号: 姓名: 班级: 指导老师:杨彪 昆明理工大学信息工程与自动化学院 2014年12月

一、实验目的与要求: ●熟练使用SQL定义子语言、操纵子语言命令语句 ●掌握关系模型上的完整性约束机制 ●掌握一定的数据库管理技术 ●能完成简单的数据库应用开发 二、实验内容及学时安排(总学时:8) (一)数据定义子语言实验(2学时) 实验1:利用SQL语句创建Employee数据库 程序:create database employee 结果: 实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary 及部门表dept。 要求:按表1、表达、表3中的字段说明创建 表1 person表结构 字段名数据类型字段长度允许空否字段说明 P_no Char 6 Not Null 工号,主键 P_name Varchar 10 Not Null 姓名 Sex Char 2 Not Null 性别 Birthdate Datetime 8 Null 出生日期 Prof Varchar 10 Null 职称 Deptno Char 4 Not Null 部门代码,外键(参照dept表) 表2 salary表结构 字段名数据类型字段长度允许空否字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表)Base Dec 5 Null 基本工资 Bonus Dec 5 Null 奖金,要求>50 Fact Dec 5 Null 实发工资=基本工资+奖金Month Int 2 Not Null 月份 表3 dept表结构 字段名数据类型字段长度允许空否字段说明 Deptno Char 4 Not Null 部门代码,主键,

财务管理实训报告总结三篇】

财务管理实训报告总结【三篇】 篇一 财务管理技能实训是一种理论知识与实践技能有效结合与综合使用的训练平台。这学期财务管理实训的几次模拟经营课程,让我受益颇多。我们小组经营的公司是电子科技有限公司,我在公司担任的是资金经理的角色,主要负责现金流量表的预测和管理。我同我们小组成员一起来对我们模拟公司的经营实行了决策和管理。因为我们公司第一季度经营良好,第三季度有所下降,从第五季度开始净利润都出现了稳定的增长。所以,接下来我将对公司第一、第二、第三、第五、第六季度的现金流量表的一些情况做简短的分析,同时,总结出一些我在这次的模拟经营实训的几点心得。 现金流量是投资决策考虑的关键指标,它是实行企业价值判断的重要指标,是企业持续经营的基本保障,也是企业扩大再生产的资源保障,同时还是影响企业流动性强弱的决定因素。对于企业来说,若在购买生产线之前未对预计当期现金流出和下季初费用扣除加以计算,就无法安排好筹资案,企业将很可能出现资金链的断裂。如果通过紧急贷款补足负的现金流量,之后只好通过借款维持经营,借款的额度又受财务状况的直接影响,这样的话,企业容易走入到一个财务困境中。所以,科学地分析和利用现金流量表是报表使用者实行准确决策的前提之一。 (一)第一季度因为公司成立刚刚成立,需要购买原材料,生产设备等基础设施以及雇佣工人和产房租赁,从而公司产生了一批投资资金和运营资金以及劳务资金流出。但是,公司向银行贷款,填补了资金缺失,使得本季度期末现金及现金等价物余额达到了509800元。现金流量表具体情况如下:(1)经营活动产生的现金流中:购买商品、接受劳务支付现金304200元;支付给职工以及职工支付的现金150000元;支付的其他与经营活动相关的现金338700元(2)投资活动产生的现

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

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

相关文档