//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";
/*下一次可以工作的時間,是當(dāng)前時間加上打印的耗時 */
int next_time = 0;
/* 工作臺和等待隊列均不為空時執(zhí)行for循環(huán)*/
for ( int time = 0; !(workload.empty() && waiting.empty() ); time++ )
{
/*
* Look at the workload, enqueue job, if it is time
* 如果工作臺列隊不為空而且當(dāng)前時間大于等于工作臺的第一個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";
}
/* 當(dāng)前時間小于下一個到達(dá)的時繼續(xù)for循環(huán)*/
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();
/*下一次循環(huán)的時間*/
next_time = time + (seconds_per_page * e.getjob().getnumpages() );
/* 總延遲账胧,是當(dāng)前時間減去event到達(dá)的時間*/
aggregate_latency += (time - e.arrival_time() );
/* 工作計數(shù)*/
complete_jobs++;
}
}
/*總工作數(shù)*/
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-含詳細(xì)注釋
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門娶靡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人看锉,你說我怎么就攤上這事姿锭。” “怎么了伯铣?”我有些...
- 文/不壞的土叔 我叫張陵呻此,是天一觀的道長。 經(jīng)常有香客問我腔寡,道長焚鲜,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任放前,我火速辦了婚禮忿磅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凭语。我一直安慰自己葱她,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布似扔。 她就那樣靜靜地躺著吨些,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炒辉。 梳的紋絲不亂的頭發(fā)上豪墅,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亭枷!你這毒婦竟也來了袭艺?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布渤涌,位于F島的核電站,受9級特大地震影響把还,放射性物質(zhì)發(fā)生泄漏实蓬。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一吊履、第九天 我趴在偏房一處隱蔽的房頂上張望瞳秽。 院中可真熱鬧,春花似錦率翅、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至燕锥,卻和暖如春辜贵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背归形。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- Prerequisites, Goals, and Outcomes Prerequisites: Student...
- 普通配置 ==性能配置 運行用戶 user nobody; pid文件 pid logs/nginx.pid; =...
- 此時提筆寫這篇文章的我狠轻,近日同昔日那些創(chuàng)造泡沫的金融家,有著同樣的特質(zhì)——不負(fù)責(zé)任彬犯∠蚵ィ——題記 01 08年金融危機...
- 邂逅閨密,閑談間問及孩子近況谐区,她興奮地說:“孩子上了你們?nèi)泻笞兓罅撕伞PW(xué)的時候一直是個中等生,還怕...