Analysis, classification and comparison of scheduling techniques for software transactional memories