Distributed operating systems and algorithms