当前位置:文档之家› 操作系统实验四

操作系统实验四

int size;//页长
char name[MAX_NAME_LENGTH];//文件名
char text[MAX_MSG_SIZE];//消息内容
}
2)打印队列
typedef struct {
int pid;
int uid;
char filename[MAX_NAME_LENGTH];
int allpage;
二.实验步骤及指导
1、进程间的通信可以选择:消息队列、管道和共享内存实现。
2、输出井可以通过一个文件进行模拟。
3、下面是一个通过Linux消息队列实现的模拟假脱机打印系统。
1)消息的结构
struct msg{
long pid;//进程号
int id;//消息号
int uid;//用户号
int allpage;//总页数
(2)阅读Linux文件操作技术,掌握文件的基本处理方法。
实验
进度
本次共有1个练习,完成1个。
实验
内容
实验
内容

实验
内容

实验
内容

一.实验内容
假脱机打印是SPOOLing系统的典型应用。本次实验的内容就是以客户/服务器模式模拟假脱机打印的工作过程。工作原理见图2-1。
整个系统的工作是先启动打印服务器,初始化客户/服务器间的通信、准备输入缓存区、打印队列和输出井。然后启动请求打印的客户机程序(如命令:printmn file.dat),将要打印的文件(如:file.dat)读入客户机系统,包装成客户机和服务器之间通信的基本信息单位,放入输出缓存区,然后启动进程间通信机制,向打印服务器发出请求。服务器通过进程间的通信机制,将客户机传送的数据放入输出缓存区,并向打印队列申请打印,填写打印清单,然后将数据放入输出井中。
教师
评语
3.使用Linux进程技术,模拟SPOOLing系统中输出进程的工作;
4.使用Linux进程通信技术,模拟SPOOLing系统工作进程与输出进程的数据输出;
5.使用Linux文件技术,模拟SPOOLing系统输出井的工作过程
实验
准备
1.实验环境:Linux系统环境
2.知识准备:
(1)阅读Linux进程通信技术(消息和管道)的使用方法;
图2-3客户机1界面
图2-4客户机2界面
(3)执行结果
服务器和客户机模拟的结果如图2-5所示。
图2-5模拟结果
(4)输出井
打印结果放入输出井中(如:pool.dat),文件内容如图2-6所示。
图2-6输出井数据
实验
分析
实验
分析

程序截图:
实验分析:
第一个用户请求数为2,第二个用户请求数为3,一共五个请求,分别用spooling语句输出数据。Spooling输出的数据与用户请求的数据相同。由于请求的数据是随机生成的,所以每次执行时,用户的请求数据是不同的。
}WaitQueue[MAX_ARRAY_LEN];
3)程序执行结果
(1)服务器启动
服务器通过命令行启动:./spooling。启动界面如图2-2所示。
图2-2服务器界面
(2)客户机请求打印
客户机通过命令行启动:./printmn test.dat。分别启动两个客户机,进行文件test.dat和t.dat的打印输出。如图2-3和2-4所示。
成绩
辽宁工程技术大学上机实验报告
课程名称
操作系统原理
实验题目
Spooling技术实现
院系
软件学院
专业
软件工程
班级
姓名
学号
实验日期
实验
目的
1.加深对SPOOLing(Simultaneaus Periphernal Operating On—Line)系统组成与工作原理的理解;
2.使用客户/服务器模式进行程序设计;
实分析:
第一个用户请求数为1,第二个用户请求数为2,一共3个请求,分别用spooling语句输出数据。
实验
总结
通过这次实验让我加深对SPOOLing(Simultaneaus Periphernal Operating On—Line)系统组成与基本工作原理的理解。加深了对客户/服务器模式进行程序设计、Linux进程技术、模拟SPOOLing系统中输出进程的工作的了解。学会了使用Linux进程通信技术,模拟SPOOLing系统工作进程与输出进程的数据输出,使用Linux文件技术,模拟SPOOLing系统输出井的工作过程。希望在以后能有帮助。
相关主题