mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-05-12 03:28:29 +08:00
Documentation for c6af943508
This commit is contained in:
@@ -199,16 +199,16 @@ template<typename S , typename T , typename E > </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 129</span> {</div>
|
||||
<div class="line"><span class="lineno"> 130</span> <span class="comment">// Add if a process with process ID as id is not found in idList.</span></div>
|
||||
<div class="line"><span class="lineno"> 131</span> <span class="keywordflow">if</span> (idList.find(<span class="keywordtype">id</span>) == idList.end()) {</div>
|
||||
<div class="line"><span class="lineno"> 132</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/tuple.html">tuple<S, T, E, double, double, double></a> t =</div>
|
||||
<div class="line"><span class="lineno"> 133</span> make_tuple(<span class="keywordtype">id</span>, arrival, burst, 0, 0, 0);</div>
|
||||
<div class="line"><span class="lineno"> 134</span> <a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.push(t);</div>
|
||||
<div class="line"><span class="lineno"> 135</span> idList.insert(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><span class="lineno"> 136</span> }</div>
|
||||
<div class="line"><span class="lineno"> 137</span> }</div>
|
||||
<div class="ttc" id="aclass_f_c_f_s_html_af2594e22a867b308e027623940193d46"><div class="ttname"><a href="#af2594e22a867b308e027623940193d46">FCFS::schedule</a></div><div class="ttdeci">priority_queue< tuple< S, T, E, double, double, double >, vector< tuple< S, T, E, double, double, double > >, Compare< S, T, E > > schedule</div><div class="ttdef"><b>Definition</b> fcfs_scheduling.cpp:111</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 130</span> {</div>
|
||||
<div class="line"><span class="lineno"> 131</span> <span class="comment">// Add if a process with process ID as id is not found in idList.</span></div>
|
||||
<div class="line"><span class="lineno"> 132</span> <span class="keywordflow">if</span> (idList.find(<span class="keywordtype">id</span>) == idList.end()) {</div>
|
||||
<div class="line"><span class="lineno"> 133</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/tuple.html">tuple<S, T, E, double, double, double></a> t =</div>
|
||||
<div class="line"><span class="lineno"> 134</span> make_tuple(<span class="keywordtype">id</span>, arrival, burst, 0, 0, 0);</div>
|
||||
<div class="line"><span class="lineno"> 135</span> <a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.push(t);</div>
|
||||
<div class="line"><span class="lineno"> 136</span> idList.insert(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><span class="lineno"> 137</span> }</div>
|
||||
<div class="line"><span class="lineno"> 138</span> }</div>
|
||||
<div class="ttc" id="aclass_f_c_f_s_html_af2594e22a867b308e027623940193d46"><div class="ttname"><a href="#af2594e22a867b308e027623940193d46">FCFS::schedule</a></div><div class="ttdeci">priority_queue< tuple< S, T, E, double, double, double >, vector< tuple< S, T, E, double, double, double > >, Compare< S, T, E > > schedule</div><div class="ttdef"><b>Definition</b> fcfs_scheduling.cpp:112</div></div>
|
||||
<div class="ttc" id="atuple_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple</a></div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
@@ -245,26 +245,26 @@ template<typename S , typename T , typename E > </div>
|
||||
|
||||
<p>Utility function for printing the status of each process after execution. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 191</span> {</div>
|
||||
<div class="line"><span class="lineno"> 192</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> << <span class="stringliteral">"Status of all the proceses post completion is as follows:"</span></div>
|
||||
<div class="line"><span class="lineno"> 193</span> << <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 194</span> </div>
|
||||
<div class="line"><span class="lineno"> 195</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left << <span class="stringliteral">"Process ID"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 196</span> << <span class="stringliteral">"Arrival Time"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left << <span class="stringliteral">"Burst Time"</span></div>
|
||||
<div class="line"><span class="lineno"> 197</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left << <span class="stringliteral">"Completion Time"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17)</div>
|
||||
<div class="line"><span class="lineno"> 198</span> << left << <span class="stringliteral">"Turnaround Time"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 199</span> << <span class="stringliteral">"Waiting Time"</span> << <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 200</span> </div>
|
||||
<div class="line"><span class="lineno"> 201</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i{}; i < result.size(); i++) {</div>
|
||||
<div class="line"><span class="lineno"> 202</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setprecision.html">std::setprecision</a>(2) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/fixed.html">std::fixed</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 203</span> << get<0>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 204</span> << get<1>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 205</span> << get<2>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 206</span> << get<3>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 207</span> << get<4>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 208</span> << get<5>(result[i]) << <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 209</span> }</div>
|
||||
<div class="line"><span class="lineno"> 210</span> }</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 192</span> {</div>
|
||||
<div class="line"><span class="lineno"> 193</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> << <span class="stringliteral">"Status of all the proceses post completion is as follows:"</span></div>
|
||||
<div class="line"><span class="lineno"> 194</span> << <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 195</span> </div>
|
||||
<div class="line"><span class="lineno"> 196</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left << <span class="stringliteral">"Process ID"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 197</span> << <span class="stringliteral">"Arrival Time"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left << <span class="stringliteral">"Burst Time"</span></div>
|
||||
<div class="line"><span class="lineno"> 198</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left << <span class="stringliteral">"Completion Time"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17)</div>
|
||||
<div class="line"><span class="lineno"> 199</span> << left << <span class="stringliteral">"Turnaround Time"</span> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 200</span> << <span class="stringliteral">"Waiting Time"</span> << <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 201</span> </div>
|
||||
<div class="line"><span class="lineno"> 202</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i{}; i < result.size(); i++) {</div>
|
||||
<div class="line"><span class="lineno"> 203</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">cout</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setprecision.html">std::setprecision</a>(2) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/fixed.html">std::fixed</a> << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 204</span> << get<0>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 205</span> << get<1>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 206</span> << get<2>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 207</span> << get<3>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 208</span> << get<4>(result[i]) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(17) << left</div>
|
||||
<div class="line"><span class="lineno"> 209</span> << get<5>(result[i]) << <a class="code hl_define" href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 210</span> }</div>
|
||||
<div class="line"><span class="lineno"> 211</span> }</div>
|
||||
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
|
||||
<div class="ttc" id="afixed_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/fixed.html">std::fixed</a></div><div class="ttdeci">T fixed(T... args)</div></div>
|
||||
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a600eaf353befc174637855795f12d258"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a600eaf353befc174637855795f12d258">endl</a></div><div class="ttdeci">#define endl</div><div class="ttdef"><b>Definition</b> matrix_exponentiation.cpp:36</div></div>
|
||||
@@ -307,37 +307,37 @@ template<typename S , typename T , typename E > </div>
|
||||
<p><a class="el" href="../../dd/dca/class_f_c_f_s.html" title="Class which implements the FCFS scheduling algorithm.">FCFS</a> is a non-preemptive algorithm in which the process which arrives first gets executed first. If two or more processes arrive together then the process with smaller process ID runs first (each process has a unique proces ID).</p>
|
||||
<p>I used a min priority queue of tuples to accomplish this task. The processes are ordered by their arrival times. If arrival times of some processes are equal, then they are ordered by their process ID.</p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 154</span> {</div>
|
||||
<div class="line"><span class="lineno"> 155</span> <span class="comment">// Variable to keep track of time elapsed so far</span></div>
|
||||
<div class="line"><span class="lineno"> 156</span> <span class="keywordtype">double</span> timeElapsed = 0;</div>
|
||||
<div class="line"><span class="lineno"> 157</span> </div>
|
||||
<div class="line"><span class="lineno"> 158</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.empty()) {</div>
|
||||
<div class="line"><span class="lineno"> 159</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/tuple.html">tuple<S, T, E, double, double, double></a> cur = <a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.top();</div>
|
||||
<div class="line"><span class="lineno"> 160</span> </div>
|
||||
<div class="line"><span class="lineno"> 161</span> <span class="comment">// If the current process arrived at time t2, the last process</span></div>
|
||||
<div class="line"><span class="lineno"> 162</span> <span class="comment">// completed its execution at time t1, and t2 > t1.</span></div>
|
||||
<div class="line"><span class="lineno"> 163</span> <span class="keywordflow">if</span> (get<1>(cur) > timeElapsed) {</div>
|
||||
<div class="line"><span class="lineno"> 164</span> timeElapsed += get<1>(cur) - timeElapsed;</div>
|
||||
<div class="line"><span class="lineno"> 165</span> }</div>
|
||||
<div class="line"><span class="lineno"> 166</span> </div>
|
||||
<div class="line"><span class="lineno"> 167</span> <span class="comment">// Add Burst time to time elapsed</span></div>
|
||||
<div class="line"><span class="lineno"> 168</span> timeElapsed += get<2>(cur);</div>
|
||||
<div class="line"><span class="lineno"> 169</span> </div>
|
||||
<div class="line"><span class="lineno"> 170</span> <span class="comment">// Completion time of the current process will be same as time</span></div>
|
||||
<div class="line"><span class="lineno"> 171</span> <span class="comment">// elapsed so far</span></div>
|
||||
<div class="line"><span class="lineno"> 172</span> get<3>(cur) = timeElapsed;</div>
|
||||
<div class="line"><span class="lineno"> 173</span> </div>
|
||||
<div class="line"><span class="lineno"> 174</span> <span class="comment">// Turnaround time = Completion time - Arrival time</span></div>
|
||||
<div class="line"><span class="lineno"> 175</span> get<4>(cur) = get<3>(cur) - get<1>(cur);</div>
|
||||
<div class="line"><span class="lineno"> 176</span> </div>
|
||||
<div class="line"><span class="lineno"> 177</span> <span class="comment">// Waiting time = Turnaround time - Burst time</span></div>
|
||||
<div class="line"><span class="lineno"> 178</span> get<5>(cur) = get<4>(cur) - get<2>(cur);</div>
|
||||
<div class="line"><span class="lineno"> 179</span> </div>
|
||||
<div class="line"><span class="lineno"> 180</span> result.push_back(cur);</div>
|
||||
<div class="line"><span class="lineno"> 181</span> <a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.pop();</div>
|
||||
<div class="line"><span class="lineno"> 182</span> }</div>
|
||||
<div class="line"><span class="lineno"> 183</span> <span class="keywordflow">return</span> result;</div>
|
||||
<div class="line"><span class="lineno"> 184</span> }</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 155</span> {</div>
|
||||
<div class="line"><span class="lineno"> 156</span> <span class="comment">// Variable to keep track of time elapsed so far</span></div>
|
||||
<div class="line"><span class="lineno"> 157</span> <span class="keywordtype">double</span> timeElapsed = 0;</div>
|
||||
<div class="line"><span class="lineno"> 158</span> </div>
|
||||
<div class="line"><span class="lineno"> 159</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.empty()) {</div>
|
||||
<div class="line"><span class="lineno"> 160</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/tuple.html">tuple<S, T, E, double, double, double></a> cur = <a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.top();</div>
|
||||
<div class="line"><span class="lineno"> 161</span> </div>
|
||||
<div class="line"><span class="lineno"> 162</span> <span class="comment">// If the current process arrived at time t2, the last process</span></div>
|
||||
<div class="line"><span class="lineno"> 163</span> <span class="comment">// completed its execution at time t1, and t2 > t1.</span></div>
|
||||
<div class="line"><span class="lineno"> 164</span> <span class="keywordflow">if</span> (get<1>(cur) > timeElapsed) {</div>
|
||||
<div class="line"><span class="lineno"> 165</span> timeElapsed += get<1>(cur) - timeElapsed;</div>
|
||||
<div class="line"><span class="lineno"> 166</span> }</div>
|
||||
<div class="line"><span class="lineno"> 167</span> </div>
|
||||
<div class="line"><span class="lineno"> 168</span> <span class="comment">// Add Burst time to time elapsed</span></div>
|
||||
<div class="line"><span class="lineno"> 169</span> timeElapsed += get<2>(cur);</div>
|
||||
<div class="line"><span class="lineno"> 170</span> </div>
|
||||
<div class="line"><span class="lineno"> 171</span> <span class="comment">// Completion time of the current process will be same as time</span></div>
|
||||
<div class="line"><span class="lineno"> 172</span> <span class="comment">// elapsed so far</span></div>
|
||||
<div class="line"><span class="lineno"> 173</span> get<3>(cur) = timeElapsed;</div>
|
||||
<div class="line"><span class="lineno"> 174</span> </div>
|
||||
<div class="line"><span class="lineno"> 175</span> <span class="comment">// Turnaround time = Completion time - Arrival time</span></div>
|
||||
<div class="line"><span class="lineno"> 176</span> get<4>(cur) = get<3>(cur) - get<1>(cur);</div>
|
||||
<div class="line"><span class="lineno"> 177</span> </div>
|
||||
<div class="line"><span class="lineno"> 178</span> <span class="comment">// Waiting time = Turnaround time - Burst time</span></div>
|
||||
<div class="line"><span class="lineno"> 179</span> get<5>(cur) = get<4>(cur) - get<2>(cur);</div>
|
||||
<div class="line"><span class="lineno"> 180</span> </div>
|
||||
<div class="line"><span class="lineno"> 181</span> result.push_back(cur);</div>
|
||||
<div class="line"><span class="lineno"> 182</span> <a class="code hl_variable" href="#af2594e22a867b308e027623940193d46">schedule</a>.pop();</div>
|
||||
<div class="line"><span class="lineno"> 183</span> }</div>
|
||||
<div class="line"><span class="lineno"> 184</span> <span class="keywordflow">return</span> result;</div>
|
||||
<div class="line"><span class="lineno"> 185</span> }</div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user