实验6linux环境编程,Linux高级环境编程实验报告6

作业报告

学生姓名:学号:指导教师:

学生E-mail:

一、作业名称:英文统计词频程序的实现

二、作业要求

以英文文章为例,利用执行体程序库实现一个多进程词频统计的程序。对于给定的多个目录,并发地统计每个目录下的所有文件(假设每个文件中只有英文字符)中单词出现的次数,并最终汇总出在给定目录下所有文件中单词出现次数,然后记录下来。该过程要求采用多线程协作方式。

三、设计与实现

1、设计思路

首先分析程序设计的需求,要对多个目录下的文件进行词频统计,如果只用一个进程顺序的对各个目录下各个文件进行计算,会消耗很大时间,另外也无法充分发挥执行体程序库的优势。而且要求采用多线程协作方式,这样很自然的会想到创建一些进程去各个目录下进行统计,最后用一个进程统一管理这些进程,那么父进程和子进程的思想就出来了。这个过程中,我们是将一个任务划分成了多个任务并行地去执行,最后把这些子任务的执行结果汇总起来就是整个任务的结果,其实这就是Map-Reduce思想——把整个任务执行过程划分为映射(Map)和化简(Reduce)两个阶段。

在词频统计程序设计中,这两个阶段具体工作划分如下:

1、映射(Map)阶段:

①.主进程根据输入的目录数量创建多个子进程,每个子进程处理一个

目录;

②.子进程获得目录名后,遍历整个目录,统计该目录下的每个文件的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值