Linux进程调度模拟算法的设计与实现文档格式.docx

上传人:b****3 文档编号:15064492 上传时间:2022-10-27 格式:DOCX 页数:12 大小:149.77KB
下载 相关 举报
Linux进程调度模拟算法的设计与实现文档格式.docx_第1页
第1页 / 共12页
Linux进程调度模拟算法的设计与实现文档格式.docx_第2页
第2页 / 共12页
Linux进程调度模拟算法的设计与实现文档格式.docx_第3页
第3页 / 共12页
Linux进程调度模拟算法的设计与实现文档格式.docx_第4页
第4页 / 共12页
Linux进程调度模拟算法的设计与实现文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Linux进程调度模拟算法的设计与实现文档格式.docx

《Linux进程调度模拟算法的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《Linux进程调度模拟算法的设计与实现文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

Linux进程调度模拟算法的设计与实现文档格式.docx

成绩:

指导教师签字:

课程设计所需软件、硬件等

系统:

WindowsXP上的虚拟机上运行的RedHatLinux

软件:

VC++6.0

课程设计进度计划

起至日期

工作内容

备注

5月30日至6月17日

收集资料

程序设计

参考文献、资料索引

序号

文献、资料名称

编著者

出版单位

01.Linux操作系统项目化教程王艳青北京大学出版社

02.数据结构栾晓春燕孝飞中国石油大学出版社

目录

目录3

引言4

1.Linux概述4

2.Linux系统特点及主要功能4

1、常用基本命的基本介绍:

5

2、进程调度程序的设计5

2.1进程调度5

2.2介绍优先权调度算法5

3、调试结果6

4、附录8

5、实验总结11

引言

1.Linux概述

Linux是一种免费的、开放源代码的、交互式、多用户和多任务的、类Unix的网络操作系统一,它包括系统内核、系统工具、应用程序以及一个完整的的开发环境。

实际上,准确点说,Linux指的是:

一个类似UNIX的开放的操作系统内核。

2.Linux系统特点及主要功能

Linux系统的特点如下。

±

Linux系统是真正的多用户、多任务、多平台操作系统。

Linux系统提供具有内置安全措施的分层的文件系统,支持多达32种文件系统。

Linux系统提供Shell命令解释程序和编程语言。

Linux系统提供强大的管理功能。

Linux系统具有内核的编程接口。

Linux系统具有图形用户接口。

Linux系统具有大量有用的实用程序和通信、联网工具。

Linux系统具有面向屏幕的编辑软件。

Linux系统组成部分的源代码是开放的,任何人都能修改和重新发布它。

Linux系统不仅可以运行自由发布的应用软件,还可以运行许多商业化的应用软件。

1.pwd---显示当前工作目录的绝对路径

格式:

pwd

2.cd---改变当前工作目录

命令格式:

cd[目录名]

3.Ls---列出文件目录的信息

ls[可选项][子目录名][文件名]

4.mkdir---建立目录

mkdir[可选项][目录名]

5.rmdir---删除目录

本命令用于删除指定的一个或多个目录,必须保证要删除的目录中没有任何文件。

rmdir[可选项][目录名]

6.cat----显示,新建,连接文件

7.cp---功能:

文件或目录的拷贝,如同dos的copy

命令格式:

cp[选项]源文件或目录目标文件或目录

8.mv---功能:

为文件或目录改名或将文件由一个目录移入另一个目录中

mv[选项]源文件或目录目标文件或目录

9.rm---功能:

删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除

rm[选项]文件……

2、进程调度程序的设计

2.1进程调度

无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。

另外,系统进程也同样需要使用处理机。

这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

2.2介绍优先权调度算法

优先数法的基本思想是:

对就绪队列中的每个进程,首先安某种原则定义一个优先数来表示它,处理机调度时,每次选择就绪队列中优先数最大者(也可规定优先数愈小,其优先权愈高),让它占用处理机运行。

  确定优先数一般可以又一下集中考虑:

  

(1)频繁使用外部舒服输出设备的进程优先数大。

这样有利于提高CPU使用效率。

  

(2)重要程序的进程优先数大,怎样有利于用户灵活操作。

  (3)进入计算机系统时间长的进程优先数大,这样有利于缩短作业的完成时间。

  (4)交互式用户作业进程优先数大,这样有利于提高中断相应时间。

优先数的设置可以采用静态和动态两种方式。

静态设置方式就是指系统在建立一个进程时,就按照某种原则为进程制定一个优先数,这个优先数在进程存在期间一直保持不便。

而动态设置方式是指系统在进程存在期间经常改变进程的优先数,如何动态的改变进程的优先数,依赖于具体操作系统的设计目标。

3、调试结果

4、附录

#include<

iostream>

;

#definegetpch(type)(type*)malloc(sizeof(type))

structpcb

{/*定义进程控制块PCB*/

charname[10];

//进程名

charstate;

//状态

intsuper;

//优先级

intntime;

//要求服务时间

intrtime;

//已运行时间

structpcb*next;

}*ready=NULL,*p;

typedefstructpcbPCB;

voidsort(PCB*a)/*建立对进程进行优先级排列函数*/

{

PCB*first,*second;

intinsert=0;

if((ready==NULL)||((a->

super)>

(ready->

super)))/*优先级最大者,插入队首*/

{

a->

next=ready;

ready=a;

}

else/*进程比较优先级,插入适当的位置中*/

first=ready;

second=first->

next;

while(second!

=NULL)

{

if((a->

(second->

super))

{/*若插入进程比当前进程优先数大,插入到当前进程前面*/

a->

next=second;

first->

next=a;

second=NULL;

insert=1;

}

else

{/*指针后移,寻找插入点*/

first=first->

second=second->

}

if(insert==0)

first->

/*插入进程优先数最低,则插入到队尾*/

}

voidcreatepcb()/*建立进程控制块函数*/

inti,num;

printf("

\t模拟最高优先权优先调度:

\t\n"

);

\n请输入进程个数:

"

scanf("

%d"

&

num);

for(i=0;

i<

num;

i++)

p=getpch(PCB);

\n输入第%d个进程的名字、优先数及该进程要求服务的时间:

i+1);

%s%d%d"

p->

name,&

p->

super,&

ntime);

p->

rtime=0;

state='

w'

next=NULL;

sort(p);

voiddisplay1()/*建立进程显示函数,用于显示当前进程*/

\n进程名状态优先数要求服务的时间已运行时间\n"

voiddisplay2(PCB*pr)

%3.5s%7c%6d%12d%10d"

pr->

name,pr->

state,pr->

super,pr->

ntime,pr->

rtime);

\n"

voidcheck()/*建立进程查看函数*/

PCB*pr;

\n****当前正在运行的进程是%s,它的状态如下:

name);

/*显示当前运行进程*/

display1();

display2(p);

pr=ready;

\n****当前就绪队列中进程的状态如下:

/*显示就绪队列状态*/

if(pr==NULL)

printf("

****就绪队列为空!

{

display1();

while(pr!

display2(pr);

pr=pr->

}

voiddestroy()/*建立进程撤消函数(进程运行结束,撤消进程)*/

{

\n进程[%s]已完成.\n"

free(p);

voidrunning()/*建立进程就绪函数(进程运行时间到,置就绪状态)*/

(p->

rtime)++;

/*运行时间加一*/

if(p->

rtime==p->

ntime)/*已运行时间与要求服务时间相等时,撤销进程*/

destroy();

/*调用destroy函数*/

(p->

super)--;

/*优先权减一*/

/*调用sort函数*/

voidmain()

createpcb();

\n初始时就绪队列的状态如下:

p=ready;

while(p!

display2(p);

p=p->

\n开始运行:

.............."

while(ready!

ready=p->

R'

check();

running();

\n进程已经完成.\n"

5、实验总结

经过本次的课程设计,让我自己对进程设计算法的认识有了更深一步的了解,也是自己的编程能力有所提高。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1