Reduction to Uniprocessor (RUN) is a global optimal scheduling algorithm capable of efficiently generating schedules for independent periodic tasks. When tasks share resources other than processors, the only known solution designed for RUN is the Server Based Locking Protocol (SBLP). However, by restricting preemptive access to shared resources, SBLP potentially decreases schedulability. In this paper we rather employ a more flexible approach by using the Multiprocessor resource sharing Protocol (MrsP) as the underline mechanism. Making the rules of both RUN and MrsP compatible with each other is one of our contributions. We name our solution MrsP-RUN. Further, although MrsP is claimed to work with both partitioned and globally scheduled systems, to the best of our knowledge MrsP-RUN is the first solution employing MrsP in global scheduling. Another contribution in this paper comes from better exploring task packaging heuristics so as to improve schedulability. Under RUN, tasks are packed into servers and these need to be set up taking possible task blocking time into account. We show that our task packing improves system schedulability even when applied to SBLP. MrsP-RUN was implemented on Linux Textbed for Multiprocessor Scheduling in Real-Time systems (Litmus(RT)). Experimental results show improvements in terms of schedulability, task preemptions and migrations while overall runtime overhead is comparable with those in SBLP.