WUT_Computer_Science/Programming/EOPSY/lab3/report/sections/06-ten-processes.tex
Krzysztof kuhy Rudnicki ffa5dad02a Split 19 over-cap LaTeX reports, proving each PDF is unchanged
The 250-line cap applies to prose too, and the reports were the worst
offenders -- ENUME's projectA.tex alone was 1,876 lines. Each is now a
preamble plus one \input{} per section, which is how a long LaTeX document is
normally organised; not one byte of prose was rewritten.

"The PDF is unchanged" is checked by a script rather than by eye, because
hashing the PDF cannot work: pdflatex stamps a /CreationDate and an /ID into
every build, so two runs of the SAME source already differ. tex_fingerprint.sh
compares what a reader sees instead -- page count plus a hash of the extracted
text -- and it is stable across rebuilds of untouched sources, which is the
property that makes it usable as a gate.

It earned its keep immediately. Both ECOTE reports quote an example LaTeX
document inside an lstlisting block, so \end{document} appears in the middle
of the file; splitting on the FIRST one stranded everything after it. Same
page count, different text, caught automatically. EOPSY lab3 exposed a second
bug: a \section{} title that runs onto the next line.

Result: 19 .tex over the cap -> 1. The survivor,
ELAC/.../03-building-nfa-...tex, is 418 lines of consecutive tikz figures
with no subsection to split on and needs a hand-placed boundary.

Verified: 29 splits across two passes (section, then subsection for the
pieces still over), every one reporting `unchanged` from
scripts/tex_fingerprint.sh --check.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-28 19:47:12 +02:00

94 lines
3.7 KiB
TeX

\section{Ten processes}
\subsection{Summary Results file}
\begin{lstlisting}
Scheduling Type: Batch (Nonpreemptive)
Scheduling Name: First-Come First-Served
Simulation Run Time: 10000
Mean: 2000
Standard Deviation: 0
\end{lstlisting}
\begin{center}
\begin{tabular}{| c | c | c | c | c |}
\hline
Process\# & CPU Time & IO Blocking & CPU Completed & CPU Blocked \\
\hline
0 &2000 (ms) &500 (ms)& 2000 (ms)& 3 times \\
\hline
1 &2000 (ms) &500 (ms)& 2000 (ms)& 3 times \\
\hline
2 &2000 (ms) &500 (ms)& 2000 (ms)& 3 times \\
\hline
3 &2000 (ms) &500 (ms)& 2000 (ms)& 3 times \\
\hline
4 &2000 (ms) &500 (ms)& 1000 (ms)& 2 times \\
\hline
5 &2000 (ms) &500 (ms)& 1000 (ms)& 1 times \\
\hline
6 &2000 (ms) &500 (ms)& 0 (ms)& 0 times \\
\hline
7 &2000 (ms) &500 (ms)& 0 (ms)& 0 times \\
\hline
8 &2000 (ms) &500 (ms)& 0 (ms)& 0 times \\
\hline
9 &2000 (ms) &500 (ms)& 0 (ms)& 0 times \\
\hline
\end{tabular}
\end{center}
\subsection{Summary Processes file}
\begin{lstlisting}
Process: 0 registered... (2000 500 0 0)
Process: 0 I/O blocked... (2000 500 500 500)
Process: 1 registered... (2000 500 0 0)
Process: 1 I/O blocked... (2000 500 500 500)
Process: 0 registered... (2000 500 500 500)
Process: 0 I/O blocked... (2000 500 1000 1000)
Process: 1 registered... (2000 500 500 500)
Process: 1 I/O blocked... (2000 500 1000 1000)
Process: 0 registered... (2000 500 1000 1000)
Process: 0 I/O blocked... (2000 500 1500 1500)
Process: 1 registered... (2000 500 1000 1000)
Process: 1 I/O blocked... (2000 500 1500 1500)
Process: 0 registered... (2000 500 1500 1500)
Process: 0 completed... (2000 500 2000 2000)
Process: 1 registered... (2000 500 1500 1500)
Process: 1 completed... (2000 500 2000 2000)
Process: 2 registered... (2000 500 0 0)
Process: 2 I/O blocked... (2000 500 500 500)
Process: 3 registered... (2000 500 0 0)
Process: 3 I/O blocked... (2000 500 500 500)
Process: 2 registered... (2000 500 500 500)
Process: 2 I/O blocked... (2000 500 1000 1000)
Process: 3 registered... (2000 500 500 500)
Process: 3 I/O blocked... (2000 500 1000 1000)
Process: 2 registered... (2000 500 1000 1000)
Process: 2 I/O blocked... (2000 500 1500 1500)
Process: 3 registered... (2000 500 1000 1000)
Process: 3 I/O blocked... (2000 500 1500 1500)
Process: 2 registered... (2000 500 1500 1500)
Process: 2 completed... (2000 500 2000 2000)
Process: 3 registered... (2000 500 1500 1500)
Process: 3 completed... (2000 500 2000 2000)
Process: 4 registered... (2000 500 0 0)
Process: 4 I/O blocked... (2000 500 500 500)
Process: 5 registered... (2000 500 0 0)
Process: 5 I/O blocked... (2000 500 500 500)
Process: 4 registered... (2000 500 500 500)
Process: 4 I/O blocked... (2000 500 1000 1000)
Process: 5 registered... (2000 500 500 500)
\end{lstlisting}
\subsection{Comments}
Scheduling type was Batch since I did not change it in SchedulingAlgorithm.java
file \\
Scheduling Name was First-Come First-Served since this is what what we use as
described in README for this laboratory \\
Simulation run time is 10000 ms since it run untill the limit I set in conf file
according to task description \\
IO Blocking set to 500 ms as in config file \\
Mean is 2000 since this is a value I set in conf value according to laboratory
task description, same with standard deviation equal to 0 and CPU Time equal to
2000 ms \\
CPU completed this time is equal to 2000 up to 4th process and then is equal to
1000 ms for 5th and 6th and then it is equal to 0 ms, this means that the
simulation exceeded the runtime before it had a chance to run all processes