//fifo.cpp要写的只有这个
#include <iostream>
using namespace std;
#include "fifo.h"
#include "job.h"
fifo::fifo( int seconds_per_page ) : simulator( seconds_per_page )
{
}
void fifo::simulate( string file )
{
int aggregate_latency = 0;
int complete_jobs = 0;
/* 读入文件 */
loadworkload( file );
/* 判断栈是否为空 */
if ( workload.empty() )
{
cout << "\n\tThe queue is empty\n";
} else {
/* 开始工作了 */
cout << "\n\nFIFO Simulaton\n\n";
/*下一次可以工作的时间,是当前时间加上打印的耗时 */
int next_time = 0;
/* 工作台和等待队列均不为空时执行for循环*/
for ( int time = 0; !(workload.empty() && waiting.empty() ); time++ )
{
/*
* Look at the workload, enqueue job, if it is time
* 如果工作台列队不为空而且当前时间大于等于工作台的第一个event到来时间,就把它放入等待队列
*/
while ( !workload.empty() && time >= workload.front().arrival_time() )
{
/* 工作台队头加入到等待队列 */
event e = workload.front();
workload.pop();
waiting.push( e );
job j = e.getjob();
/* 正在等待打印 */
cout << "\tArriving: " << j << " at " << time << " seconds\n";
}
/* 当前时间小于下一个到达的时继续for循环*/
if ( time < next_time )
{
continue;
}
/* 等待列队不为空则打印 */
if ( !waiting.empty() )
{
/* 打印waiting队头元素 */
event e = waiting.front();
job j = e.getjob();
/* 打印时间 */
cout << "\tServicing: " << j << " at " << time << " seconds\n";
/* waiting队头元素出列表示完成 */
waiting.pop();
/*下一次循环的时间*/
next_time = time + (seconds_per_page * e.getjob().getnumpages() );
/* 总延迟,是当前时间减去event到达的时间*/
aggregate_latency += (time - e.arrival_time() );
/* 工作计数*/
complete_jobs++;
}
}
/*总工作数*/
cout << "\n\tTotal jobs: " << complete_jobs;
/* 总延迟*/
cout << "\n\tAggregate latency: " << aggregate_latency << " seconds";
/* 平均延迟*/
cout << "\n\tMean latency: "<< (float) aggregate_latency /(float) complete_jobs << " seconds\n";
}
}
SSD5实验1-Printer-含详细注释
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Prerequisites, Goals, and Outcomes Prerequisites: Student...
- 普通配置 ==性能配置 运行用户 user nobody; pid文件 pid logs/nginx.pid; =...
- 此时提笔写这篇文章的我,近日同昔日那些创造泡沫的金融家,有着同样的特质——不负责任。——题记 01 08年金融危机...