4.2 Routing (Fault Tolerance)

CSN-1.E.1 The Internet has been engineered to be fault-tolerant, with abstractions for routing and transmitting data.

CSN-1.E.2 Redundancy is the inclusion of extra components that can be used to mitigate failure of a system if other components fail.

CSN-1.E.3 One way to accomplish network redundancy is by having more than one path between any two connected devices.

CSN-1.E.4 If a particular device or connection on the Internet fails, subsequent data will be sent via a different route, if possible.

CSN-1.E.5 When a system can support failures and still continue to function, it is called fault-tolerant. This is important because elements of complex systems fail at unexpected times, often in groups, and fault tolerance allows users to continue to use the network.

CSN-1.E.6 Redundancy within a system often requires additional resources but can provide the benefit of fault tolerance.

CSN-1.E.7 The redundancy of routing options between two points increases the reliability of the Internet and helps it scale to more devices and more people.

Network Examples

In these examples the letters represent computing devices and the lines represent wires that connect the devices.

Redundancy Example Fault Tolerance Example

4.3 Sequential, Parallel, and Distributed Computing

Computer Tasks

Sequential Computing

Parallel Computing

Popcorn Hack 1

A particular computer has two identical processors which can run in parallel. Each process must be executed on a single processor and each processor can only run one process at a time. The table below lists the amount of time it takes to execute each of the processes on a single computer. None of the processes are dependent on any of the others. What is the minimum amount of time (approximate) to execute all three processes when the two processors are run in parallel? | Process | Execution Time on Either Processor | | ----------- | ----------- | | X | 50 seconds | | Y | 10 seconds | | Z | 30 seconds |

Comparing Efficiency of Solutions

Parallel Sequential
time = longest time taken on any given processor, aka faster time = add up all individual task times aka slower
tasks done simultaneously tasks done individually
good for big problems good for small problems
harder to implement easier to implement
less portable more portable

Speedup Time

NOTE: When increasing the use of parallel computing in a solution, the efficiency of the solution is still restricted by the sequential portion. This means that at some point, adding parallel portions will no longer significantly increase efficiency.

Distributed Computing

Hacks: Multiple Choice

Record your answers in the cell below, titled “Write Answers Here.”

  1. Which of the following is NOT a benefit of a fault-tolerant network?
  2. What causes network redundancy?


  1. A computer has two duplicate processors that are able to run in parallel. The table below shows the amount of time it takes each processor to execute each of the two processes. Neither process is dependent on the other.
Process Execution Time on Either Processor
A 25 seconds
B 45 seconds

What is the difference in execution time between running the two processes in parallel in place of running them one after the other on a single processor?


  1. A computer has two processors that can run in parallel. The table below indicates the amount of time it takes each processor to execute four different processes. None of the processes is dependent on any of the other processes.
Process Execution Time on Either Processor
A 25 seconds
B 25 seconds
C 10 seconds
D 40 seconds

How should the program assign the four processes to optimize execution time?

Write Answers Here

After you record your answers in this cell, take a screen shot of the cell and DM it to Nikki Hekmat on Slack. There will be a penalty of 10% off your grade for each day the assignment is late. The homework will be due Monday December 4th at 11:59 PM.

Popcorn Hack Answer

[50] milliseconds

MC Hacks Answers

Simply put A, B, C, or D next to each number to indicate the correct answers for the questions above.

  1. C
  2. A
  3. B
  4. D