Opportunistic Scheduling and Cooperative Relaying in Wireless Networks