操作系统实验指导-周爱武
- 格式:pdf
- 大小:327.37 KB
- 文档页数:18
;关闭文件 MOV AH,3EH INT 21H
;按任意键退出 mov ah,1 int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统 int 21h CSEG ENDS END START
8
现方法。
1.熟悉作业控制块的作用和实现技术;
2 作业调度模拟实验 基础 选做 2.熟悉操作系统的作业调度算法及实 1
4
现方法。
分区存储器管理实
1.理解分区式存储管理的基本原理
3
综合 必做
1
4
验
2.熟悉分区分配和回收算法
1.理解页式虚拟存储管理的基本原
4 虚拟存储器管理实验 验证 必做 理
1
4
2.熟悉常用的页面置换算法
操作系统实验指导
实验计划及实验项目
操作系统实验课程计划学时 36 学时,1 学分,下表列出实验项目,其中必做 实验 24 学时,选做实验 12 学时(从 24 学时的可选做实验项目中任选 12 学时)。
序
开出
名称
类型
号
要求
目的要求
人∕ 学 组时
1.熟悉进程控制块的作用和实现技术;
1 进程调度模拟实验 基础 必做 2.熟悉操作系统的进程调度算法及实 1
每个用来标识进程的进程控制块 PCB 用结构(记录)来 描述,根据需 要,它包括以下字段: 进程标识数 ID。 进程优先数 Priority,并规定优先数越大的进程,其优先权越高。 采用简单轮转法时该字段无用。 进程已经占用的 CPU 时间 CPUTIME。 进程还需占用的 CPU 时间 ALLTIME。当进程运行完毕时, ALLTIME 变为 0。 进 程 的 阻 塞 时 间 STARTBLOCK , 表 示 当 进 程 再 运 行 STARTBLOCK 个时间片后,进程将进入阻塞状态。 进程被阻塞的时间 BLOCKTIME,表示已经阻塞的进程再等待 BLOCKTIME 格时间片后,将转换成就绪状态。 进程状态 STATE。 队列指针 NEXT,用来将 PCB 排成队列。
命令: dir copy file1 file2 del filename echo string exit
列出当前目录 拷贝文件 删除文件 显示字符串 结束、退出
(2) 程序接口实验
使用 DOS 系统功能调用进行编程,实现文件操作。(在 DOS 下用 3ch 号功能
创建一个文件,3dh 号功能打开一个文件,3eh 好功能关闭一个文件,3fh 号功
实验学时安排
6 学时,在调度与死锁内容学习之后进行。(必做)
四、进程调度模拟实验
实验目的
通过对进程调度算法的模拟加深对进程概念和进程调度过程的理解。
实验内容
用 C 语言或 Pascal 语言实现对 N(N=5)个进程的调度模拟,要求至少 采用两种不同的调度算法(如简单轮转法 Round Robin 和优先权高者优 先算法 Highest Priority First),分别进行模拟调度。
Windows 环境: 熟悉开机登录进入系统、退出系统的过程。 熟悉使用命方式启动应用程序的过程、熟悉 Windows 图形用户 接口。 编程实现一个操作系统的简单命令解释程序。 使用汇编语言编制一个小程序,使其可以通过某些系统调用来获 得操作系统的服务。
实验分析和思考
操作系统向用户提供的各种接口分别适用于什么场合?
======================================================================
ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE
0 P0
C0
A0
T0
B0
S0
1 P1
C1
A1
T1
B1
1
8
验数据验证其避免死锁的资源分配
策略。
一、操作系统接口实验
实验目的
熟悉操作系统的命令接口、图形接口和程序接口。
实验内容
UNIX 或 LINUX 环境: 熟悉开机登录进入系统、退出系统的过程。 使用 UNIX 或 LINUX 常用命令以及图形化接口 X-Windows。 使用 C 语言编制一个小程序,使其可以通过某个系统调用来获 得操作系统的服务。
流程图如下:
从头开始查表
检索完否?
N m.size>=u.size?
Y m.size-u.size≤G?
N 从该分区中划出 u.size 大小的分区
Y 返回
N 继续检索下一个表项
Y
将该分区从链中移出
将该分区分配给请求者 修改有关数据结构
返回
假设初始状态,可用内存空间为 640KB,作业请求序列如下(也可以编 程从键盘输入,R 表示请求,F 表示释放): 作业 1 请求 130 KB。 作业 2 请求 60 KB。 作业 3 请求 100 KB。 作业 2 释放 60 KB。 作业 4 请求 200 KB。 作业 3 释放 100 KB。 作业 1 释放 130 KB。 作业 5 请求 140 KB。 作业 6 请求 60 KB。 作业 7 请求 50 KB。 作业 6 释放 60 KB。
09
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
40
0
4
-1
0
READY
为了清楚地观察诸进程的调度过程,程序应该将每个时间片内各进程的 情况显示出来并暂停,参考格式如下:
Running:I
Ready Queue:Idi,Idj,…
Block Queue:Idk,Idl,…
CSEG SEGMENT assume cs:CSEG, ds:DSEG
;数据段:在此处添加程序所需的数据
START: mov ax, dseg mov ds, ax
;打开文件 TEST.TXT MOV AH,3DH LEA DX,PATHNM1 MOV AL,2 INT 21H
;读取文件内容,存入 BUFFER1 LEA DX,BUFFER1 MOV BX,AX MOV CX,100 MOV AH,3FH INT 21H
用 C 语言、Pascal 语言或其他开发工具实现银行家算法模拟程序,输入系统 资源配置情况、进程资源最大需求、占用情况后,能够判断系统是否安全,对某 进程的一次资源请求,能够决定是否实施分配。
算法具体内容参见《计算机操作系统》教材。
实验分析和思考
产生死锁的四个必要条件是什么? 解决死锁问题的方法有哪些? 银行家算法是如何解决死锁问题的?
统还应该做哪些工作? 为什么对进程的优先数可以按上述原则进行修改?有什么好处?
实验学时安排
6 学时,在调度与死锁内容学习之后进行。(必做)
五、分区存储管理模拟实验(存储器管理实验)
实验目的
了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储 管理方式及其实现技术的理解。
实验内容
用 C 语言或 Pascal 语言分别实现采用首次适应算法或最佳适应算法的动 态分区分配过程 Allocate()和回收过程 Free()。其中,空闲分区采用空闲 分区链来组织,内存分配时,优先使用空闲区低地址部分的空间。
改进要求:
1) 文件名改为从键盘输入;
2) 字符串写入另一文件;
二、作业调度模拟实验
实验目的
用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调 度算法的理解。
实验内容
为单道批处理系统设计一个作业调度程序。 说明:由于在单道批处理系统中,作业一投入运行,它就占有计算机的一 切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到 满足,它所占用的 CPU 时限等因素。作业调度算法: 先来先服务(FCFS)调度算法,即按作业提交的先后次序进行调度,总
START:
MOV AX,DATA
MOV DS,AX
MOV AH,3CH
号功能
MOV CX,0
LEA DX,FILENAME
INT 21H
JZ
ERROR
MOV BX,AX
MOV CX,6
LEA DX,BUFFER
MOV AH,40H
INT 21H
JMP END0
ERROR:
MOV AH,9
LEA DX,EMSG
优先数改变的原则(采用简单轮转法时该字段无用): 进程在就绪队列中等待一个时间片,优先数增加 1; 进程每运行一个时间片,优先数减 3。
假设在进行调度前,系统中有 5 个进程,它们的初始状态可以编程输入 (更具有灵活性),例如可以初始化为如下内容:
ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE
2) 文件名改为从键盘输入;
3) 字符串从键盘输入;
【示例 2】将文本文件内容读入内存并显示在屏幕上。比如此文本文件叫做 test.txt,内容是:(两行)
1234 56789
DSEG SEGMENT PATHNM1 DB 'D:/TEST.TXT' BUFFER1 DB 100 DUP (?) DSEG ENDS
S1
2 P2