This paper looks at two new bus arbitration algorithms for use in multi-processor and multi-core systems, where different processors must share the same bus to access main memory. These algorithms try to improve upon existing algorithms in terms of latency caused by contention among the processors. Both the algorithms take into account characteristics of arbitration which are normally ignored, or given less importance to. The Request-Service bus arbitration algorithm attempts to remove all forms of starvation among the competing processors. Arbitration takes place in two stages: the Request stage, where all requests from processors are latched onto the bus, and the Service stage, where all these requests are served. This algorithm works well under conditions of light load. The age-based bus arbitration algorithm gives more priority to processors that have recently acquired the bus, thus leading to greater throughput. To control starvation, this scheme is used only as long as there are few processors with active requests. This algorithm is suitable in cases where processors have to transfer large blocks of data.