操作系统课程设计论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统课程设计

姓名:朱文化

班级:11计科1班

学号:201110510130

老师:胡静芳、李娟

操作系统课程设计 (3)

一、进程的创建控制与取消 (3)

1、任务目的 (3)

2、内容 (3)

3、核心代码 (3)

4、结果截图 (6)

二、单处理机系统的进程调度 (9)

1、实验目的 (9)

2、实验内容 (9)

3、核心代码 (9)

4、实验截图 (11)

三、基本存储器管理 (13)

1、实验目的 (13)

2、实验内容 (13)

3、核心代码 (14)

4、实验截图 (15)

四、请求分页存储管理 (16)

1、实验目的 (16)

2、实验内容 (17)

3、核心代码 (17)

4、实验截图 (19)

五、死锁的避免 (19)

1、实验目的 (19)

2、实验内容 (19)

3、核心代码 (19)

4、实验截图 (21)

六、磁盘空间的分配与回收 (21)

1、实验目的 (21)

2、实验内容 (21)

3、核心代码 (21)

4、实验截图 (23)

七、文件管理 (24)

1、实验目的 (24)

2、实验内容 (24)

3、核心代码 (24)

4、实验截图 (27)

八、心得体会 (27)

操作系统课程设计

一、进程的创建控制与取消

1、任务目的

加深对进程概念的理解,明确进程和程序的区别;

进一步认识并发执行的概念,区别顺序执行和并发执行;

分析进程争用临界资源的现象,学习解决进程互斥的方法;

2、内容

编写一程序,来模拟进程的创建和撤消,要求通过终端键盘输入三、四作业的名称、大小、优先级等。系统为它创建进程,并把进程控制块PCB的内容送到终端显示器上输出。

同时模拟内存空间为作业分配内存空间,并把结果用图形形象地表示出来,同样通过终端输出。

按进程的优先级的顺序撤消进程,同时通过终端显示PCB的撤消过程和内存的释放过程。

3、核心代码

主函数:

void main()

{

memoryspace L=new LNode; //memoryspace

int N;

cout<<"初始多大空间,请输入一个整数:"<

cin>>N;

Init(L,N); //初始化大小为1000的内存空间

choice(L); //进入操作

}

void Init(memoryspace &L,int size) //初始化空间段

{

memoryspace p = new LNode;

p->size = size;

p->state = 0;

p->task_name = 'n';

p->next = NULL;

L->next = p;

}

void setfree(memoryspace &L) //找出连续的空闲资源,回收空闲空间

{

memoryspace p=L->next,q=p->next;

while(p && q)

{

if(p->state == 0 && q->state == 0) //如果空间连续,则回收

{

p->size +=q->size;

p->next = p->next->next;

delete q;

q=p->next;

}

else

{

p = q;

q = q->next;

}

}

cout<<"回收成功"<

}

void deltask(const memoryspace L) //删除作业

{

char task_name;

int flag=0;

Display(L);

cout<<"请输入需要回收的作业名称:";

cin>>task_name;

memoryspace p=L,q=L->next;

while(q)

{

if(q->task_name == task_name)

{

q->state=0;

q->task_name='?';

flag=1;

break;

}

else

{

p = q;

q = q->next; //找到要删除作业的下一个结点}

}

if(flag == 0)

cout<<"删除作业不成功"<

else

cout<<"删除作业成功"<

}

void Display(const memoryspace L) //显示作业

{

int count=1;

memoryspace p = L->next;

cout<<"结点号作业状态大小"<

while(p)

{

cout<<"结点"<task_name<<" ";

cout<state<<" "<size<

p = p->next;

count++;

}

}

分配空间代码:

void Add(memoryspace &L) //添加作业

{

int new_size;

char new_name;

memoryspace q=L,p = L->next;

cout<<"请输入新任务的名称:";

cin>>new_name;

cout<<"请输入新任务的大小:";

cin>>new_size;

while(p) //查找空闲资源进行分配

{

if (new_size<=0)

{

cout<

break;

}

if(p->state==0 && p->size >= new_size)

{

//****************************************************// memoryspace q = new LNode;

q->size = p->size - new_size;

q->state = 0;

q->task_name='?';

q->next=NULL;

//****************************************************// p->size = new_size;

p->state = 1;

相关文档
最新文档