This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
In early 90's web is created. Exchange of information is done through web. As the technology improved, the computation of system became more complex. Exchange of large data became vast. This became harder to compute on a single system. Limiting the computing power to a single system and web computing became more powerful.
To solve this problem grid is introduced where grid allows the sharing of computation power. Grid is a collection of devices or distributed system which is computed for single problem.
In early 90's web is created. Exchange of information is done through web. As the technology improved, the computation of system became more complex where computation systems are used in many sectors like medical, military, business etc. Many applications were used in different sectors. Single system need to do more computation for getting the result. It became hard to compute more number of tasks for a single system which result less transfer rate, time consumption.
Grid computing is one solution for the existing problem. Grid computing main goal is to share the computation power. Grid computing is a collection of grids where grids are in form of distributed systems. Grids can be group of system or a network or group of networks depend on the type of grids and how large is the grid.
Grid can be connected in many areas dynamically. Grid computing contains many resources where it utilizes maximum resources. Grid computing utilizes the resources according to the priorities given to that resource. With this priorities user can find the results easily.
Grid computing is collection of grids where grids are in form of distributed systems. Grids are run through grid engine. Grid Engine is software that manages the distribution of resources and also the workload in the grid.
Grid computing is efficient technique for reducing load on the single system. Sharing of resources, computation power and memory are shared in grid computing. Processing speed will be fast for grid computing compare to the single system.
Advantages of grid computing:
It reduces load on the single system
More efficient and fast
Availability of resources
Figure 1: "Grid computing" 
Grid middleware is software interface between the operating system and applications of grids. It provides many services like monitoring the system and it also detect the failure of system. Grid middleware uses standard protocols.
Figure 2: "grid middleware" 
Grid layered architecture
Following are layers:
Grid fabric layer
It provide the resources like storage system, servers, and network resources where this Grid layer architecture is needed to develop software for grid approach.
resources are controlled by grid protocol
It define the necessary grid core communication and authentication protocol that require for network transaction
It contain the protocols used for distributed resource access like information protocol and management protocol
It defines the collection of resources that are in the grid and deals with the coordination of multiple resources. For example: Directory services, co-allocation scheduling.
It contains the user application used in grid.
How grid works
Resource broker is core of the grid where it caches the information in the grid. Information of every server or system is known by the resource broker. Using software interface a system can enter the grid. After security validations a system can request the resource broker to access the grid. Resource broker allocate the system. In this way grid works.
Basic Grid Model
Figure 3: Basic Grid Model 
The basic grid model comprises of a user, Resource broker, grid resources and grid information service. Entire grid is developed to serve the user, he gets whatever he asks. Resource broker handles the users request, it process it and splits and divides it to the resources based on the users requirements and availability of resources. Grid resources are the collection of resources that work for resource broker. Grid information service holds the information resources and supplies it to resource broker. The information is generally the status information of the resources, which help the resource broker in the job scheduling . Resource pooling and Job Scheduling are the important parts of grid computing.
Resource broker handles job scheduling along with other functions. Job scheduling is nothing but dividing the task given by the user to the resources based on the processing capabilities of resources, which includes CPU load, Ram, BUS, network load etc. There are a range of job scheduling algorithms and we see a few of them.
Highest Response Next scheduling- HRN
In this algorithm, Jobs are allocated based on job's priority and processors capability. This scheme is adaptive for local jobs and remote jobs without any loss of performance and highly adaptive for grid environment. HRN gives highest response time because of effective utilization of resources. Better than First Come First Serve (FCFS). However, is not suitable for more number of jobs as finding priorities for jobs is tiring job. As a result, higher turnaround time and CPU and memory wastage is imminent .
Optimal Resource Constraint scheduling-ORC
ORC scheduling allocates jobs according to processors capability. The scheduling is done by applying Round Robin along with best-fit algorithm. Because of using Round Robin algorithm, each subtask gets a share of the CPU cycle, eliminating starvation and providing efficiency in load balancing. ORCS is better than FCFS and HRN(starvation). Major advantages include reduced turnaround time and average waiting time. High communication overhead is observed because of Round Robin .
Hierarchical Job Scheduling - HJS
As the name implies top level scheduling ( global scheduling) and local scheduling. Uses separate queue for different types of job scheduling with FCFS and Shortest Job First (SJF). Local scheduling uses only one queue for all types of jobs and implements either of FCFS, SJF. Reduced overall turnaround time and maximum system utilization for high system loads. For high system loads, it uses multi queue to maintain the delay of job scheduling at global level. SJF can result in extreme delays for long running jobs and also it is strongly biased against large jobs, so there may be starvation problems. This algorithm does not consider the dynamic behavior of the grid resources .
Job Schedule Model Based on grid- JSMB
Based on Maximum Processor Utilization and Throughput(MPUT) algorithm. It maximizes CPU utilization and minimizes turnaround time. It uses backup node at the condition of failure of the supervisor node so it provides reliability with good load balance. Its disadvantages include high Communication overhead, it does not consider any constraints of jobs and resources.
There are many other algorithms, this paper just want to present a brief view of various job-scheduling algorithms and hence mentions a few. Most of the prominent jobs scheduling algorithms are implemented in a grid-computing toolkit called as Globus toolkit. It is an open source code, which is used for the grid software development. GridSim toolkit is developed from it; we implement some of the algorithms in it and analyze them.
Figure 4: Processing time of algorithms 
The table  displays comparison of various job scheduling algorithms. The graph displays processing time of mentioned scheduling algorithms. It is clearly evident that none of the algorithms are remarkable in processing the job efficiently. An efficient job-scheduling algorithm is yet to be invented.
Resource pooling deals with Discovery and Monitoring of the resources. Both require the information collection about the resources from the complete grid environment. Discovery in the Grid environment becomes complex as the resources are geographically distributed. All this Information is stored in Grid Information Services (GIS) .
Grid Information Services (GIS)
A GIS is an application that monitors and maintains the complete information on Resources. There are various application, this paper briefly names a few of them.
MDS (Monitoring and Discovery Service)
MDS2 based on LDAP (Lightweight Directory Access Protocol)
MDS3 based on OGSI (Open Grid Services Infrastructure)
MDS4 based on Web Services.
R-GMA is the information services based on the relational model
UNICORE is provided through the Network Job Supervisor
PEER TO PEER SYSTEMS
Unstructured P2P systems(maintain fixed number of connections with their neighbors)
Structured P2P systems (based on distributed indexing service, DHT)
Advantages of grid computing:
Grid engine is very efficient product of grid computing. Grid Engine is software that manages the distribution of resources and also the workload in the grid.
Characteristics of grid engine:
It is scalable
It is flexible
It supports broad range of platforms
It is strong scheduler
We presented a survey on Grid Computing, from architecture to job scheduling algorithms. We know the capabilities of Grid computing, we are still to develop efficient middleware and resource management techniques. Great breakthroughs were made along with along of new challenges.