Software Transactional Memory systems (STMs) have garnered significant interest as an elegant alternative for addressing synchronization and concurrency issues with multi-threaded programming in multi-core systems. For STMs to be efficient, they must guarantee some progress properties. This work explores the notion of one of the progress property, i.e., starvation-freedom, in STMs. An STM system is said to be starvation-free if every thread invoking a transaction gets the opportunity to take a step (due to the presence of a fair scheduler) such that the transaction eventually commits.A few starvation-free algorithms have been proposed in the literature in context of single-version STMs. These algorithms are priority based i.e. if two transactions are in conflict, then the transaction with lower priority will abort. A transaction running for a long time will eventually have the highest priority and hence commit. But the drawback with this approach is that if a set of high-priority transactions become slow, then they can cause several other transactions to abort. So, we propose multi-version starvation-free STM system which addresses this issue.Multi-version STMs maintain multiple-versions for each transactional object. By storing multiple versions, these systems can achieve greater concurrency. In this paper, we propose multi-version starvation-free STM, KSFTM, which as the name suggests achieves starvation-freedom while storing K-versions of each t-object. Here K is an input parameter fixed by the application programmer depending on the requirement. Our algorithm is dynamic which can support different values of K ranging from one to infinity. If K is infinite, then there is no limit on the number of versions. But a separate garbage-collection mechanism is required to collect unwanted versions. On the other hand, when K is one, it becomes the same as a single-version starvation-free STM system. We prove the correctness and starvation-freedom property of the KSFTM algorithm.To the best of our knowledge, this is the first multi-version STM system that satisfies starvation-freedom. We implement KSFTM and compare its performance with single-version starvation-free STM system (SV-SFTM) which works on the priority principle. Our experiments show that KSFTM gives an average speedup on the worst-case time to commit of a transaction by a factor of 1.22, 1.89, 23.26 and 13.12 times over PKTO, SV-SFTM, NOrec STM and ESTM respectively for counter application. KSFTM performs 1.5 and 1.44 times better than PKTO and SV-SFTM but 1.09 times worse than NOrec for low contention KMEANS application of STAMP benchmark whereas KSFTM performs 1.14, 1.4 and 2.63 times better than PKTO, SV-SFTM and NOrec for LABYRINTH application of STAMP benchmark which has high contention with long-running transactions. * A preliminary version of this work was accepted in AADDA 2017 as work in progress. † A part of this work was submitted towards the fulfillment of M.Tech thesis requirement by the author. ‡ Author sequence follows a lexical order of last...