本期课程设计题目

      计算机技术 2005-4-2 22:36
进程调度模拟实验

一.要求:掌握进程调度的策略及实现方法。实现按优先级与时间片相结合的进程调度算法。

二.内容:

1.设计进程控制块、进程队列结构(包括:就绪队列、等待队列、运行指针)等必要的数据结构。

2.模拟操作系统进程调度的功能,编写进程调度程序、模拟的处理机分派程序、进程等待函数和进程唤醒函数。

3.编写用户程序,创建6个用户进程。

三.进程调度的设计方法

1.数据结构

(1) 优先级与时间片的设计

· 进程因等待放弃CPU时,优先级置为1 (高优先级) ;

· 进程因时间片到放弃CPU时,优先级置为0 (低优先级) ;

· 优先级1 对应时间片4 ;优先级0 对应时间片10 。

(2) 进程控制块(PCB) 的内容

进程标识 3—9

进程优先级 0,1

进程优先级 0,1

进程等待时间 20

链接指针

Ù

running

Ù

wait

ready

PCB3

PCB4

PCB9

(3) 进程队列结构

















2.程序算法

(1) PCB结构、变量与主程序

struct PCB

{ int pname;

int pri;

int runtime;

int waittime;

struct PCB *next;

}pcb[7];

struct PCB *running,ready,wait;

int sig=0;

main( )

{ 创建PCB[3]—PCB[9]并插入ready队列; /* pname分别为3—9,

pri=0,runtime=10,waittime=0 */

for(;;) /* 系统程序,完成初始化和处理机分派功能 */

{ case { sig=0:swtch;

sig=1:waiter;

sig=3:proc3;

sig=4:proc4;

sig=5:proc5;

sig=6:proc6;

sig=7:proc7;

sig=8:proc8;

sig=9:proc9; }

}

}

(2) 进程调度程序

swtch()

{ while(ready==NULL) wakeup();

移出就绪队列第一个PCB;

送running 指针;

若pri=1,则runtime=4,否则runtime=10;

将running®pname 送sig

}

(3) 进程等待函数

wait()

{ 将运行进程插入wait队列,优先数置1;

sig=0;

}

(4) 进程唤醒函数

wakeup()

{ 将wait队列中所有的PCB中waittime减1;

将wait队列中所有的waittime=0的PCB摘除;

插入到ready队列中第一个优先级为0的PCB前面

}



分页存储管理模拟实验

一.要求:

掌握分页存储管理的基本概念和实现方法。要求编写一个模拟的分页管理程序,能对一个已有的程序实现分页显示。

二.内容:

通过分页技术,在屏幕上显示data.txt中多个选定的数据。方法是:

· 读入数据为整数的逻辑地址(<0时退出);

· 将逻辑地址分解为页号、页内位移;

· 查页表,若该页不在内存块中(中断位为1),将该页从外存读入内存某一块中,淘汰策略为FIFO;否则,由页号得块号;

· 将内存中该数据显示在屏幕上。

三.分页存储管理的设计方法

1.数据结构

(1) 数据文件

在磁盘上创建一个包含1000个数据的文件data.txt。为了便于检查,数据依次为0、1、2、……、998、999。 从0开始,每100个数为一页。

(2) 页面映像表

设计页面映像表,包括:页号、中断位、块号。

(3) 内存缓冲区

申请存放300个字的缓冲区,设每100个字为一个内存块。初始状态:将数据文件的第一个页面装入到该缓冲区的第0块。

(4) 页面置换表

页面置换表的表项为3项,还有一个替换指针。采用先进先出页面置换算法。

2.程序算法

(1) 主程序

建立一个用户数据文件

初始化操作系统的数据结构;并装入用户数据文件的第一页。

(2) 调页程序

当读入数据的逻辑地址对应的块不在内存时,调用调页程序。该程序负责从数据文件中调入所需的页。

(3) 置换算法

当内存缓冲区中没有空闲块时,依置换策略选择一个可置换的页。


标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}