请大家帮我完成这个实验(老师一共留了3个,只会做前两个......)

luckytim 2004-12-25 05:27:59
一、实验目的
掌握操作系统中的设备缓冲区管理算法。
二、实验内容
假设系统中有两个分别名为P1、P2的进程及两台均可进行输入、输出操作的设备d1、d2。两个进程可以从两台设备中的任何一台输入数据,并可以向其中的任何一台设备输出数据。编写C程序,模拟操作系统中使用的设备缓冲区管理算法,完成上述进程的输入、输出操作及数据处理任务。
1定义一个由10个元素构成的结构数组buffer[10],作为系统中的缓冲区。
struct buffer
{ int count; //缓冲区中现在的字符个数
char databuf[100]; //数据区
struct buffer *p; //用作队列指针
} buffer1[10];
2. 定义下列队列的队首指针
空缓冲区队列
设备1的输入队列
设备1的输出队列
设备2的输入队列
设备2的输出队列
3. 编写函数init( )完成缓冲区和各个队列的初始化操作。
4编写函数getbuf( )与putbuf( ),分别完成从队列中取出一个缓冲区及队列中放入一个缓冲区的操作。
5编写函数devrw(devnum , flag)完成设备的读写操作。其中参数devnum指出需要进行I/O操作的设备,flag为操作类型。
读操作:
从空队列中取出一个缓冲区;
从终端读入一行字符串,放入缓冲区的数据区;
按照指定的设备号将缓冲区放入相应的设备输入队列。
写操作
按照指定的设备号,从设备的输出队列中取出一个装满数据的缓冲区;
将缓冲区中的数据在终端上显示;
将空缓冲区放入空缓冲区队列。
6. 编写函数process(procnum,inputdev,outputdev),完成进程的数据处理。其中procnum为进程号,用于指定不同的数据处理操作;inputdev与outputdev分别为输入、输出设备号。
process()在执行时完成下列操作:
按照inputdev指定的设备号从该设备的输入队列中取出一个缓冲区;
按照procnum的序号对缓冲区中的数据进行指定的数据处理操作;
按照outputdev指定的设备号将缓冲区放入该设备的输出队列。
在上述数据处理操作中,应在输出数据的头部插入相应进程的标志,如“PROC1”,并可在下列算法中选用所需的算法。
颠倒字符串的顺序;
大、小写字母转换;
在字符串中进行某些代换或添加某些信息;
其他算法。
7. 编写main( )函数完成下列操作:
调用init()函数完成初始化操作;
从终端输入命令,对设备的“输入、输出”及进程的“运行”进行控制。
三、实验要求
在程序运行的结果中应包含设备1与设备2的输入、输出信息,并能对这些信息加以区别。
在程序执行过程中,当访问的某一个队列为空时,应输出相应的信息。在程序执行过程中,至少应包含空缓冲区队列与某个设备队列各有一次为空的信息。
...全文
308 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhm_jb302 2004-12-25
  • 打赏
  • 举报
回复
这是清华的实验啊?光看题就用了N分钟。。。。
还是自己做吧。等以后我学会了。在告诉你。:)
jk88811 2004-12-25
  • 打赏
  • 举报
回复
有点难度!!!!!!!
jinxin19840808 2004-12-25
  • 打赏
  • 举报
回复
课设还是自己做吧,不然不会有提高的
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
MATLAB基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]内容概要:本文介绍了基于3D FDTD(时域有限差分)方法在MATLAB平台上对微带线馈电的矩形天线进行分析的技术方案,旨在模拟超宽带脉冲通过该天线结构的传播过程,并重点计算微带结构的回波损耗参数。该方法通过数值仿真手段精确建模电磁波在天线中的传播特性,适用于高频电磁场仿真与天线性能评估,能够有效支持天线设计优化。文中可能涵盖FDTD算法的基本原理、网格划分、边界条件设置、激励源配置及结果后处理等关键环节。; 适合人群:具备电磁场与微波技术基础知识,熟悉MATLAB编程,从事天线设计、射频工程或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展超宽带天线的设计与性能仿真;②研究微带天线在脉冲激励下的瞬态响应特性;③计算和优化天线的回波损耗(S11参数),提升匹配性能;④教学与科研中用于电磁仿真方法的实践训练。; 阅读建议:建议读者结合FDTD理论基础与MATLAB编程实践,逐步实现仿真流程,重点关注时间步长、空间网格精度和边界条件对仿真结果的影响,并通过对比仿真与实测数据验证模型准确性。

15,446

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧