Posts

Reasoning Vs Inference

Inference: Inference is a general term representing the derivation of new knowledge from existing knowledge and axioms (i.e., rules of derivation) within a single step, and can be one of many kinds, such as, induction, deduction and abduction. For example, "modus tollens" is a rule of inference. Thus, one inference is the derivation of new knowledge using a single step using modus tollens. Inference is about taking in data and trying to draw a conclusion based on the limited information you have in a situation where not all the data is given. Reasoning: Reasoning is in context of a goal (e.g., decide whether a propositional formula is satisfiable or not)  and is carried out via a search process involving multiple inferences. Choices during such search have to be made such as which axiom to "fire" along with which knowledge in order to derive new knowledge. Resolution is a particular kind of reasoning involving the "resolution rule". Reasoning is...

Principles of Congestion Control

Image
In this section, we consider the problem of congestion control in a general context, seeking to understand why congestion is a "bad thing,"   how network congestion is manifested in the performance received by upper-layer applications, and various approaches that can be taken to avoid, or react to, network congestion. This more general study of congestion control is appropriate since, as with reliable data transfer, it is high on the "top-10" list of fundamentally important problems in networking. The Causes and the "Costs" of Congestion: Congestion control can be studied by examining three increasingly complex scenarios in which congestion occurs.  In each case, we'll look at why congestion occurs in the first place, and the  "cost" of congestion (in terms of  resources not fully utilized and poor performance received by the end systems). Scenario 1: Two senders, a router with infinite buffers We begin by considering perhaps the s...

Subnetting Vs Supernetting

Subnetting is the technique of partitioning a large network into smaller networks. On the other hand, the supernetting is the method used for combining the smaller ranges of addresses into larger space. Supernetting was devised to make the routing process more convenient. Additionally, it reduces the size of routing table information so that it could consume less space in the router’s memory. The well-defined method for the subnetting is FLSM and VLSM while for supernetting CIDR is used. Difference between Subnetting and Supernetting Subnetting is the technique of partitioning a large network into smaller networks. On the other hand, the supernetting is the method used for combining the smaller ranges of addresses into larger space. Supernetting was devised to make the routing process more convenient. Additionally, it reduces the size of routing table information so that it could consume less space in the router’s memory. The well-defined method for the subnetting is FLSM and VLS...

Go-Back-N Protocol Vs Selective Repeat Protocol

Image
“Go-Back-N Protocol and “Selective Repeat Protocol” are the sliding window protocols. The sliding window protocol is primarily an error control protocol, i.e. it is a method of error detection and error correction. The basic difference between go-back-n protocol and selective repeat protocol is that the “go-back-n protocol” retransmits all the frames that lie after the frame which is damaged or lost. The “selective repea t protocol” retransmits only that frame which is damaged or lost. Key Differences Between Go-Back-N and Selective Repeat Go-Back-N protocol is design to retransmit all the frames that are arrived after the damaged or a lost frame. On the other hand, Selective Repeat protocol retransmits only that frame that is damaged or lost. If the error rate is high i.e. more frames are being damaged and then retransmitting all the frames that arrived after a damaged frame waste the lots of bandwidth. On the other hand, selective repeat protocol re-transmits only damaged fra...

Quick Sort Vs Merge Sort

The quick sort and merge sort algorithms are based on the divide and conquer algorithm which works in the quite similar way. The prior difference between the quick and merge sort is that in quick sort the pivot element is used for the sorting. On the other hand, merge sort does not use pivot element for performing the sorting. Both sorting techniques, quick sort and merge sort are built on the divide and conquer method in which the set of elements are parted and then combined after rearrangement. The quick sort usually requires more comparisons than merge sort for sorting a large set of elements. Key Differences Between Quick Sort and Merge Sort : In the merge sort , the array must be parted into just two halves (i.e. n/2). As against, in quick sort, there is no compulsion of dividing the list into equal elements. The worst case complexity of quick sort is O(n 2 ) as it takes a lot more comparisons in the worst condition. In contrast, merge sort have the same worst case and ...

Process Vs Thread

The Process and Thread are the essentially correlated. The process is an execution of a program whereas thread is an execution of a program driven by the environment of a process. Another major point which differentiates process and thread is that processes are isolated with each other whereas threads share memory or resources with each other. Key Differences Between Process and Thread : All threads of a program are logically contained within a process. A process is heavy weighted, but a thread is light weighted. A program is an isolated execution unit whereas thread is not isolated and shares memory. A thread cannot have an individual existence; it is attached to a process. On the other hand, a process can exist individually. Each thread has its own stack, so if a thread dies its stack is reclaimed. In contrast, if a process dies, all threads die including the process. Conclusion: Processes are used to achieve execution of programs in concurrent and sequential manner. ...

Deadlock Vs Starvation

Deadlock and Starvation both are the conditions where the processes requesting for a resource has been delayed for a long. Although deadlock and starvation both are different from each other in many aspects.  Deadlock  is a condition where no process proceeds for execution, and each waits for resources that have been acquired by the other processes. On the other hands, in  Starvation , process with high priorities continuously uses the resources preventing low priority process to acquire the resources. Key Differences Between Deadlock and Starvation: In a deadlock, none of the processes proceeds for execution, each process get blocked waiting for the resources acquired by the another process. On the other hand, starvation is a condition where the processes that possess higher priority is allowed to acquire the resources continuously by preventing the low priority processes to acquire resources resulting in indefinite blocking of low priority processes. Deadlock ari...