  To utilize the multi-core processors properly concurrent programming is
needed. Concurrency control is the main challenge while designing a correct and
efficient concurrent program. Software Transactional Memory Systems (STMs)
provides ease of multithreading to the programmer without worrying about
concurrency issues such as deadlock, livelock, priority inversion, etc. Most of
the STMs works on read-write operations known as RWSTMs. Some STMs work at
high-level operations and ensure greater concurrency than RWSTMs. Such STMs are
known as Object-Based STMs (OSTMs). The transactions of OSTMs can return commit
or abort. Aborted OSTMs transactions retry. But in the current setting of
OSTMs, transactions may starve. So, we proposed a Starvation-Free OSTM
(SF-OSTM) which ensures starvation-freedom in object based STM systems while
satisfying the correctness criteria as co-opacity. Databases, RWSTMs and OSTMs
say that maintaining multiple versions corresponding to each key of transaction
reduces the number of aborts and improves the throughput. So, to achieve
greater concurrency, we proposed Starvation-Free Multi-Version OSTM (SF-MVOSTM)
which ensures starvation-freedom while storing multiple versions corresponding
to each key and satisfies the correctness criteria such as local opacity. To
show the performance benefits, We implemented three variants of SF-MVOSTM
(SF-MVOSTM, SF-MVOSTM-GC and SF-KOSTM) and compared it with state-of-the-art
STMs.
