Subscribe by Email


Showing posts with label Optimal. Show all posts
Showing posts with label Optimal. Show all posts

Tuesday, August 6, 2013

What is meant by an optimal route?

- For selecting a path or route, a routing metric has to be applied to a number of routes so as to select the best out of them. 
- This best route is called the optimal route with respect to the routing metric used. 
- This routing metric is computed with the help of the routing algorithms in computer networking.
- It consists of information such as network delay, hop count, network delay, load, MTU, path cost, communication cost, reliability and so on.
- Only the best or the optimal routes are stored in the routing tables that reside in the memory of the routers. 
- The other information is stored in either the topological or the link state databases. 
- There are many types of routing protocol and each of them has a routing metric specific to it. 
- Some external heuristic is required to be used by the multi-protocol routers for selecting between the routes determined using various routing protocols. 
For example, the administrative distance is the value that is attributed to all the routes in Cisco routers. 
- Here, smaller distances mean that the protocol is a reliable one. 
- Host specific routes to a certain device can be set up by the local network admin. 
- This will offer more control over the usage of the network along with better overall security and permission for testing. 
- This advantage comes handy especially when it is needed to debug the routing tables and the connections. 

In this article we discuss about the optimal routes. 
- With the growing popularity of the IP networks as the mission critical tools for business, the need for methods and techniques using which the network’s routing posture can be monitored is increasing.
- Many routing issues or even incorrect routing can lead to undesirable effects on the network such as downtime, flapping or performance degradation. 
- Route analytic are the techniques and tools that are used for monitoring the routing in a network. 

The performance of the network is measured using the following 2 factors:
  1. Throughput or the Quantity of service: This includes the amount of data that is transmitted and time it takes to transfer.
  2. Average packet delay or Quality of service: This includes the time taken by a packet to arrive at its destination and the response of the system to the commands entered by the user.
- There is always a constant battle between the fairness and optimality or we can say between quantity of service and quality of service. 
- For optimizing the throughput, the paths existing between the nodes have to be saturated and the response time from source point to destination point must be noticed. 

For finding the optimal routes, we have two types of algorithms namely:
  1. Adaptive Algorithms: These algorithms are meant for the networks in which the routes change in a dynamic manner. Here the information regarding the route to be followed is obtained at the run time itself from adjacent as well as the all other routers. The routes change whenever there is a change in the load, change in the topology and every delta T seconds.
  2. Non – adaptive algorithms: These algorithms the same routes cannot be followed every time. Therefore the measurements that were made for the previous condition cannot be used for the current condition. The routes thus obtained are called static routes and are computed at the boot time.

Finding optimal routes requires following the principle of optimality according to which the optimal path between an intermediate router and the destination router lies on the same route from the source to the destination route. 


Monday, August 5, 2013

What is optimality principle?

A network consists of nodes which require communicating with other on various grounds. This communication is established via communication channels that exist between them. The communication involves data transfers. In a network a node may or may not have a link with every other node in the network. 
Applications that require communicating over a network include:
1. Telecommunication network applications such as POTS/ PSTN, local area networks (LANs), internet, mobile phone networks and so on.
2. Distributed system applications
3. Parallel system applications

- As we mentioned above, each and every node might not be linked with every other nodes since for doing so a lot of wires and cables are required which will the whole network more complicated. 
- Therefore, we bring in the concept of the intermediate nodes. 
- The data transmitted by the source node is forwarded to the destination by these intermediate nodes. 
Now the problem that arises is which path or route will be the best to use i.e., the path with the least cost. 
- This is determined using the routing process. 
- The best path thus obtained is called the optimal route. 
- Today, we have a number of algorithms available for determining the optimal path. 

These algorithms have been classified in to two major types:
  1. Non – adaptive or static algorithms
  2. Adaptive or dynamic algorithms

Concept of Optimality Principle

- This is the principle followed while determining the optimal router between the two routes. 
The general statement of the principle of optimality is stated below:
“An optimal policy has the property that whatever the initial state and initial decision are, the remaining decision must constitute an optimal policy with regard to the state resulting from the first decision.”

- This means if P is an optimal state that results in another state say Q, and then the portion of the original from that state to this state i.e., from P to Q must be optimum. 
- This only means the optimality of the part of the optimal policy is preserved. - The initial state and the final state are the most important parts of the optimum. 
- Consider an example, suppose we have problem with 3 inputs and 26 states. - Here, the state is associated with the optimum and the total cost is associated with the optimum policy.
- If brute force method is used for 3 inputs and 100 stages we have the total number of computations as 3100
- That means for solving this problem, a super computer is required.
- Therefore, the approach used for solving this problem is a parallel processing approach. 
- Here, for the each state the least step is computed and stored during the programming. 
- This reduces the number of possibilities and hence reducing the amount of computation.
- The problems become complex if the initial and the final states are undefined. - It is necessary for the problem to follow the principle of optimality in order to use the dynamic programming. 
- This implies that whatever the state may be, the decisions that follow must be optimal in regard with the state obtained from the previous decision. 
- This property is found in combinatorial problems but since they use a lot of time and memory, this method is inefficient for them. 
- These problems can be solved efficiently if some sort of best first search and pruning technique is applied.

- In regard to the routing in networks, it follows from the optimality principle if a router B lies between router A and C which lie on an optimal path, then the path between the router B and C is also an optimal path and lies on the same path. 
- Sink tree is formed as a result of all optimal routes which is the ultimate goal of all the routing algorithms.


Monday, June 24, 2013

Explain the page replacement algorithms - FIFO, LRU, and Optimal

- Paging is used by most of the computer operating systems for the purpose of virtual memory management. 
- Whenever a page fault occurs, some pages are swapped in and swapped out. Who decides which pages are to be replaced and how? 
- This purpose is served by the page replacement algorithms. 
- Page replacement algorithms only decide which pages are to be page out or written to the disk when a page of the memory has to be allocated. 
- Paging takes place only upon the occurrence of a page fault.
- In such situations a free cannot suffice because either one is not available or because the number of available pages is less than threshold. 
- If a previously paged out page is reference again, then it has to be read in from the disk again. 
- But for doing this, the operating system has to wait for the completion of the input/ output operation. 
- The quality of a page replacement algorithm is denoted by the time it takes for a page in. 
- The lesser it is, the better the algorithm is. 
- The information about the access to page as provided by the hardware is studied by the page replacement algorithm and then it decides which pages should be replaced so that the number of page faults can be minimized. 

In this article we shall see about some of the page replacement algorithms.

FIFO (first – in, first – out): 
- This one being the simplest of all the page replacement algorithms has the lowest overhead and works by book – keeping in place of the OS. 
- All pages are stored in a queue in the memory by the operating system.
- The ones that have recently arrived are kept at the back while the old ones stand at the front end of the queue.
- While making replacement, the oldest page is selected and replaced. 
- Even though this replacement algorithm is cheap as well as intuitive, practically it does not perform well. 
- Therefore, it is rarely used in its original form. 
- VAX/ VMS operating systems make use of the FIFO replacement algorithm after making some modifications. 
- If a limited number of entries are skipped you get a partial second chance. 

Least recently used (LRU): 
- This replacement algorithm bears resemblance in name with the NRU. 
However, difference is there which is that this algorithm follows that the page usage is tracked for a certain period of time. 
- It is based on the idea that the pages being used many times in current set of instructions will be used heavily in the next set of the instructions also. 
- Near optimal performance is provided by LRU algorithm in the theory however in practical it is quite expensive to be implemented. 
- For reducing the costs of the implementation of this algorithm, few implementation methods have been devised. 
- Out of these the linked list method proves to be the costliest. 
- This algorithm is so expensive because it involves moving the items about the memory which is indeed a very time consuming task. 
- There is another method that requires hardware support.

Optimal page replacement algorithm: 
- This is also known as the clairvoyant replacement algorithm. 
- The page that has to be swapped in, it is placed in place of the page which according to the operating system will be used in future after a very long time. - In practical, this algorithm is impossible to be implemented in case of the general purpose OS because approximate time when a page will be used is difficult to be predicted. 


Monday, June 25, 2012

How is optimization of installation testing done?


It becomes very important to carry out installation testing towards the end of the release process. It is very important to subject a software system or application to installation testing so that it can be released without any hesitation to the customers. 
One can make sure without installation testing that the software system or application will successfully install on the user’s system in the first go itself! The user might need to install the software system or application again and again which in turn might frustrate the user. You will loose customers as a consequence of this. Therefore perform installation testing becomes absolutely necessary. 
In this article we have discussed about the need for optimizing the installation testing and how to optimize it. by the optimization of the installation testing we mean modifying it further so that  some aspects of it use less resources and work more efficiently. 

What is the need to optimize?


- When you optimize a testing process you can run it more quite rapidly and that too it uses very less memory then. 
- The optimization though has been named as “optimization”, it can never produce a truly optimal system. 
- The amount of time taken by a test case of the installation can be reduced by making it consume more memory.
- In cases where the memory is limited, slower algorithms can be used.
- While optimizing the installation testing one should keep in mind that there is no such design that fits all the test cases. 

On what levels installation testing is optimized?


The installation testing process much like the other processes is optimized through the following number of levels:

Design Level: 
- This is the highest level of the above mentioned process. 
- Design is the best aspect that can be optimized to utilize the resources in a much better way.
- The implementation of the optimized design can be made more efficient by using efficient algorithms which in turn have been benefited from code of good quality. 
- It is obvious for the architecture of the test design to have an overwhelming affect on its performance.
- In some cases optimization process may also involve the following:
(a)  More elaborate algorithms
(b)  Special tricks
(c)   Special cases
(d)  Complex trade offs
- A fully optimized installation testing process becomes difficult to comprehend and may also house more errors than the un- optimized processes.

Source code Level: 
- This step involves rooting out the bad quality code from the test cases and therefore it also improves performance.
- When the malfunctioning code is removed, the obvious slow downs are avoided. 
- However, it is possible that any further optimization made to that test case may decrease its maintainability. 
- But, today there are available what are called “optimizing compilers”.

Compile Level:
- At this stage, it is ensured by the optimizing compiler that the test case is optimized to such a level at which the test case can be compiled by the compiler.

Assembly Level:
- This is the lowest level of optimization process and involves taking advantage of the full repertoire of system instructions. 
- This is the reason why most of the operating systems use the embedded systems are written in assembly code.
- Many of the test cases are compiled from a high level language to assembly language and from there it is manually optimized.

Run time: 
- Run time optimization is needed and are performed by the assembler programmers and just in time compilers which exceed the capability of static compilers.

Two types of optimizations can be performed on the installation testing process namely:
  1. Platform dependent optimization (uses specific properties of one platform) and
  2. Platform independent optimization (effective on all platforms)


Facebook activity