This paper proposes hierarchal scheduling schemes for Grid systems: a self-discovery scheme for the resource discovery stage and an adaptive child scheduling method for the resource selection stage. In addition, we propose three rescheduling algorithms: (1) the Butterfly algorithm in order to reschedule jobs when better resources become available, (2) the Fallback algorithm in order to reschedule jobs that had their resources taken away from the Grid before the actual resource allocation, and (3) the Load-Balance algorithm in order to balance load among resources. We also propose a hybrid system to combine the proposed hierarchal schemes with the well-known peer-to-peer (P2P) principle. We compare the performance of the proposed schemes against the P2P-based Grid systems through simulation with respect to a set of predefined metrics.