It takes 2 seconds to read or write one block from/to disk and it also takes 1 second of CPU time to merge one block of records. Assume that all input, output, and CPU processing is sequential and there is no waiting time. The block size is 100 records. a) (7) Give an optimal 4-way merging scheme to merge the 6 runs into 1. b) (7) What is the total time taken by the optimal scheme

Respuesta :

Answer:

Part a: For optimal 4-way merging, initiate with one dummy run of size 0 and merge this with the 3 smallest runs. Than merge the result to the remaining 3 runs to get a merged run of length 6000 records.

Part b: The optimal 4-way  merging takes about 249 seconds.

Explanation:

The complete question is missing while searching for the question online, a similar question is found which is solved as below:

Part a

For optimal 4-way merging, we need one dummy run with size 0.

  1. Merge 4 runs with size 0, 500, 800, and 1000 to produce a run with a run length of 2300. The new run length is calculated as follows [tex]L_{mrg}=L_0+L_1+L_2+L_3=0+500+800+1000=2300[/tex]
  2. Merge the run as made in step 1 with the remaining 3 runs bearing length 1000, 1200, 1500. The merged run length is 6000 and is calculated as follows

       [tex]L_{merged}=L_{mrg}+L_4+L_5+L_6=2300+1000+1200+1500=6000[/tex]

The resulting run has length 6000 records.

Part b

For step 1

Input Output Time

Input Output Time is given as

[tex]T_{I.O}=\frac{L_{run}}{Size_{block}} \times Time_{I/O \, per\, block}[/tex]

Here

  • L_run is 2300 for step 01
  • Size_block is 100 as given
  • Time_{I/O per block} is 2 sec

So

[tex]T_{I.O}=\frac{L_{run}}{Size_{block}} \times Time_{I/O \, per\, block}\\T_{I.O}=\frac{2300}{100} \times 2 sec\\T_{I.O}=46 sec[/tex]

So the input/output time is 46 seconds for step 01.

CPU  Time

CPU Time is given as

[tex]T_{CPU}=\frac{L_{run}}{Size_{block}} \times Time_{CPU \, per\, block}[/tex]

Here

  • L_run is 2300 for step 01
  • Size_block is 100 as given
  • Time_{CPU per block} is 1 sec

So

[tex]T_{CPU}=\frac{L_{run}}{Size_{block}} \times Time_{CPU \, per\, block}\\T_{CPU}=\frac{2300}{100} \times 1 sec\\T_{CPU}=23 sec[/tex]

So the CPU  time is 23 seconds for step 01.

Total time in step 01

[tex]T_{step-01}=T_{I.O}+T_{CPU}\\T_{step-01}=46+23\\T_{step-01}=69 sec\\[/tex]

Total time in step 01 is 69 seconds.

For step 2

Input Output Time

Input Output Time is given as

[tex]T_{I.O}=\frac{L_{run}}{Size_{block}} \times Time_{I/O \, per\, block}[/tex]

Here

  • L_run is 6000 for step 02
  • Size_block is 100 as given
  • Time_{I/O per block} is 2 sec

So

[tex]T_{I.O}=\frac{L_{run}}{Size_{block}} \times Time_{I/O \, per\, block}\\T_{I.O}=\frac{6000}{100} \times 2 sec\\T_{I.O}=120 sec[/tex]

So the input/output time is 120 seconds for step 02.

CPU  Time

CPU Time is given as

[tex]T_{CPU}=\frac{L_{run}}{Size_{block}} \times Time_{CPU \, per\, block}[/tex]

Here

  • L_run is 6000 for step 02
  • Size_block is 100 as given
  • Time_{CPU per block} is 1 sec

So

[tex]T_{CPU}=\frac{L_{run}}{Size_{block}} \times Time_{CPU \, per\, block}\\T_{CPU}=\frac{6000}{100} \times 1 sec\\T_{CPU}=60 sec[/tex]

So the CPU  time is 60 seconds for step 02.

Total time in step 02

[tex]T_{step-02}=T_{I.O}+T_{CPU}\\T_{step-02}=120+60\\T_{step-02}=180 sec\\[/tex]

Total time in step 02 is 180 seconds

Merging Time (Total)

Now  the total time for merging is given as

[tex]T_{merge}=T_{step-01}+T_{step-02}\\T_{merge}=69+180\\T_{merge}=249 sec\\[/tex]

Total time in merging is 249 seconds seconds

Ver imagen danialamin