Cross-layer design of packet scheduling and resource allocation algorithms for 4G cellular systems