Machine-to-Machine (M2M) communication with different requirements than human based applications has gained interest in the past few years. Due to battery limitations of devices in most M2M applications, energy efficiency, defined as the number of information bits transmitted per unit energy, is utilized as a utility function instead of a sum-throughput, a traditional utility function for network utility maximization problems. It is well-known that for a bandlimited communication system, the price for achieving high energy efficiency is delay, i.e. spreading the total energy over a long time interval. In this thesis, we study the problem of joint scheduling and power allocation in an orthogonal frequency division multiplexing (OFDM) system with N users. Our goal is to design algorithms that maintain the stability of users' queues and maximize the energy efficiency of the system. Our technique is to decompose the problem into N subproblems and a master problem and solve each of them separately. We study this problem in flat fading and frequency-selective fading channel models and propose various algorithms to optimize the energy efficiency of the system. Finally, by approximating the utility function for both high and low traffic loads, we show that maximization of the energy efficiency leads to a maximization of the sum-throughput of the system.