This paper deals with the anti-windup technique which can be used to tackle the problems of stability and performance degradation for linear systems with saturated inputs. The anti-windup techniques which can be found in the literature today have evolved from many sources and, even now, are diverse and somewhat disconnected from one another. In this survey, an overview of many recent anti-windup techniques are provided and their connections to one another are stated. The anti-windup technique is also explained within the context of its historical emergence and the likely future directions of the field are speculated. The focus of this paper is on the so-called "modern" anti-windup techniques which began to emerge during the end of the 20th century and which allow a priori guarantees on stability to be made. The survey attempts to provide constructive LMI conditions for the synthesis of anti-windup compensators in both global and local contexts. Finally, some interesting extensions and open problems are discussed, such as nested saturations, the presence of time delays in the state or the input, and anti-windup for nonlinear systems.