安徽大学操作系统实验指导周爱武.docx

上传人:b****5 文档编号:2775242 上传时间:2022-11-15 格式:DOCX 页数:17 大小:92.74KB
下载 相关 举报
安徽大学操作系统实验指导周爱武.docx_第1页
第1页 / 共17页
安徽大学操作系统实验指导周爱武.docx_第2页
第2页 / 共17页
安徽大学操作系统实验指导周爱武.docx_第3页
第3页 / 共17页
安徽大学操作系统实验指导周爱武.docx_第4页
第4页 / 共17页
安徽大学操作系统实验指导周爱武.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

安徽大学操作系统实验指导周爱武.docx

《安徽大学操作系统实验指导周爱武.docx》由会员分享,可在线阅读,更多相关《安徽大学操作系统实验指导周爱武.docx(17页珍藏版)》请在冰豆网上搜索。

安徽大学操作系统实验指导周爱武.docx

安徽大学操作系统实验指导周爱武

操作系统实验指导

实验计划及实验项目

操作系统实验课程计划学时36学时,1学分,下表列出实验项目,其中必做实验24学时,选做实验12学时(从24学时的可选做实验项目中任选12学时)。

序号

名称

类型

开出

要求

目的要求

人∕组

学时

1

进程调度模拟实验

基础

必做

1.熟悉进程控制块的作用和实现技术;

2.熟悉操作系统的进程调度算法及实现方法。

1

6

2

作业调度模拟实验

基础

选做

1.熟悉作业控制块的作用和实现技术;

2.熟悉操作系统的作业调度算法及实现方法。

1

6

3

存储器管理实验

综合

必做

1.理解分区式存储管理的基本原理

2.熟悉分区分配和回收算法

1

6

4

虚拟存储器管理实验

验证

必做

1.理解页式虚拟存储管理的基本原理

2.熟悉常用的页面置换算法

1

6

5

文件管理实验

设计

选做

1.模拟文件系统的基本功能

2.了解文件系统的基本结构和文件管理方法

3-4

12

6

操作系统接口实验

验证

选做

1.熟悉操作系统的用户接口。

2.利用汇编语言编程进行系统功能调用。

1

6

7

银行家算法实验

验证

必做

1.了解死锁的产生和避免的办法

2.编程实现银行家算法,并设计实验数据验证其避免死锁的资源分配策略。

1

6

 

一、操作系统接口实验

实验目的

熟悉操作系统的命令接口、图形接口和程序接口。

实验内容

▪UNIX或LINUX环境:

✧熟悉开机登录进入系统、退出系统的过程。

✧使用UNIX或LINUX常用命令以及图形化接口X-Windows。

✧使用C语言编制一个小程序,使其可以通过某个系统调用来获得操作系统的服务。

▪Windows环境:

✧熟悉开机登录进入系统、退出系统的过程。

✧熟悉使用命方式启动应用程序的过程、熟悉Windows图形用户接口。

✧编程实现一个操作系统的简单命令解释程序。

✧使用汇编语言编制一个小程序,使其可以通过某些系统调用来获得操作系统的服务。

实验分析和思考

▪操作系统向用户提供的各种接口分别适用于什么场合?

实验学时安排

6学时,在第一章学习完之后可以进行。

(选做)

 

实验题目

(1)命令接口实验

利用操作系统的用户接口编写程序实现一个操作系统的简单shell程序,实现对一些简单命令的解释执行。

具体内容包括:

✧查阅相关函数system(cmd)的调用方法,掌握它的用法;

✧掌握操作系统用户接口的使用方法;

✧编写主函数,实现一个微型命令解释程序,该程序可以接受并解释以下命令:

⏹dir列出当前目录

⏹copyfile1file2拷贝文件

⏹delfilename删除文件

⏹echostring显示字符串

⏹exit结束、退出

(2)程序接口实验

使用DOS系统功能调用进行编程,实现文件操作。

(在DOS下用3ch号功能创建一个文件,3dh号功能打开一个文件,3eh好功能关闭一个文件,3fh号功能读文件,40h号功能写文件。

windows下用CreatFile创建一个文件,CloseHandle关闭文件,WriteFile写文件OpenFile打开文件,还有很多文件操作的api,可以查阅资料)

【示例1】用汇编语言编程把输入的信息写到txt文件中。

DATA     SEGMENT 

 BUFFER   DB  'ABCDEF' 

 FILENAME DB  'A.TXT' 

 EMSG     DB  'ERROR!

','$' 

 DATA     ENDS 

 STACK1   SEGMENT PARA STACK 

 DW       20H DUP(0) 

 STACK1   ENDS 

 CODE     SEGMENT 

 ASSUME   DS:

DATA,SS:

STACK1,CS:

CODE 

 START:

 

 MOV  AX,DATA 

 MOV  DS,AX 

 MOV  AH,3CH           ;3CH号功能,创建文件,也可以用5BH号功能 

 MOV  CX,0             ;文件属性 

 LEA  DX,FILENAME 

 INT  21H 

 JZ   ERROR            ;若CF=1则出错处理 

 MOV  BX,AX            ;AX中为文件句柄 

 MOV  CX,6             ;要写的字节数 

 LEA  DX,BUFFER 

 MOV  AH,40H           ;40H好功能调用,写文件 

 INT  21H 

 JMP  END0 

 ERROR:

 

 MOV  AH,9 

 LEA  DX,EMSG 

 INT  21H 

 END0:

 

 MOV  AH,4CH 

 INT  21H 

 CODE      ENDS 

           END   START 

改进要求:

1)文件未关闭,请在合适位置增加关闭文件功能;

2)文件名改为从键盘输入;

3)字符串从键盘输入;

【示例2】将文本文件内容读入内存并显示在屏幕上。

比如此文本文件叫做test.txt,内容是:

(两行)

1234

56789

DSEGSEGMENT;数据段:

在此处添加程序所需的数据

PATHNM1DB'D:

/TEST.TXT'

BUFFER1DB100DUP(?

DSEGENDS

CSEGSEGMENT

assumecs:

CSEG,ds:

DSEG

START:

movax,dseg

movds,ax

;打开文件TEST.TXT

MOVAH,3DH

LEADX,PATHNM1

MOVAL,2

INT21H

;读取文件内容,存入BUFFER1

LEADX,BUFFER1

MOVBX,AX

MOVCX,100

MOVAH,3FH

INT21H

;显示BUFFER1中的内容

MOVCX,AX

LEASI,BUFFER1

NEXT:

MOVDL,[SI]

MOVAH,2

INT21H

INCSI

LOOPNEXT

;关闭文件

MOVAH,3EH

INT21H

;按任意键退出

movah,1

int21h

movax,4c00h;程序结束,返回到操作系统系统

int21h

CSEGENDS

ENDSTART

改进要求:

1)文件名改为从键盘输入;

2)字符串写入另一文件;

二、作业调度模拟实验

实验目的

用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。

实验内容

为单道批处理系统设计一个作业调度程序。

说明:

由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限等因素。

作业调度算法:

✧先来先服务(FCFS)调度算法,即按作业提交的先后次序进行调度,总是首先调度在系统中等待时间最长的作业。

✧短作业优先调度算法;

✧响应比搞着优先调度算法;

每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:

作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。

作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。

每个作业的最初状态总是等待W。

各个等待的作业按照提交时刻的先后次序排队,总是首先调度等待队列中队首的作业。

每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。

调度算法的流程图如下:

实验分析和思考

▪什么类型的操作系统必须具有作业调度功能?

▪作业调度算法性能如何衡量?

▪多道批处理系统作业调度要考虑哪些因素?

实验学时安排

6学时,在调度与死锁内容学习之后进行。

(选做)

三、银行家算法实验

实验目的

通过对银行家算法的模拟加深对死锁概念的认识,掌握解决死锁问题的方法。

实验内容

用C语言、Pascal语言或其他开发工具实现银行家算法模拟程序,输入系统资源配置情况、进程资源最大需求、占用情况后,能够判断系统是否安全,对某进程的一次资源请求,能够决定是否实施分配。

算法具体内容参见《计算机操作系统》教材。

实验分析和思考

▪产生死锁的四个必要条件是什么?

▪解决死锁问题的方法有哪些?

▪银行家算法是如何解决死锁问题的?

实验学时安排

6学时,在调度与死锁内容学习之后进行。

(必做)

四、进程调度模拟实验

实验目的

通过对进程调度算法的模拟加深对进程概念和进程调度过程的理解。

实验内容

▪用C语言或Pascal语言实现对N(N=5)个进程的调度模拟,要求至少采用两种不同的调度算法(如简单轮转法RoundRobin和优先权高者优先算法HighestPriorityFirst),分别进行模拟调度。

▪每个用来标识进程的进程控制块PCB用结构(记录)来描述,根据需要,它包括以下字段:

✧进程标识数ID。

✧进程优先数Priority,并规定优先数越大的进程,其优先权越高。

采用简单轮转法时该字段无用。

✧进程已经占用的CPU时间CPUTIME。

✧进程还需占用的CPU时间ALLTIME。

当进程运行完毕时,ALLTIME变为0。

✧进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。

✧进程被阻塞的时间BLOCKTIME,表示已经阻塞的进程再等待BLOCKTIME格时间片后,将转换成就绪状态。

✧进程状态STATE。

✧队列指针NEXT,用来将PCB排成队列。

▪优先数改变的原则(采用简单轮转法时该字段无用):

✧进程在就绪队列中等待一个时间片,优先数增加1;

✧进程每运行一个时间片,优先数减3。

▪假设在进行调度前,系统中有5个进程,它们的初始状态可以编程输入(更具有灵活性),例如可以初始化为如下内容:

ID

PRIORITY

CPUTIME

ALLTIME

STARTBLOCK

BLOCKTIME

STATE

0

9

0

3

2

3

READY

1

38

0

3

-1

0

READY

2

30

0

6

-1

0

READY

3

29

0

3

-1

0

READY

4

0

0

4

-1

0

READY

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

当前位置:首页 > 求职职场 > 简历

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

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