  Volunteer computing is an Internet-based distributed computing system in
which volunteers share their extra available resources to manage large-scale
tasks. However, computing devices in a Volunteer Computing System (VCS) are
highly dynamic and heterogeneous in terms of their processing power, monetary
cost, and data transferring latency. To ensure both the high Quality of Service
(QoS) and low cost for different requests, all of the available computing
resources must be used efficiently. Task scheduling is an NP-hard problem that
is considered one of the main critical challenges in a heterogeneous VCS. Due
to this, in this paper, we design two task scheduling algorithms for VCSs,
named Min-CCV and Min-V. The main goal of the proposed algorithms is jointly
minimizing the computation, communication and delay violation cost for the
Internet of Things (IoT) requests. Our extensive simulation results show that
proposed algorithms are able to allocate tasks to volunteer fog/cloud resources
more efficiently than the state-of-the-art. Specifically, our algorithms
improve the deadline satisfaction task rates by around 99.5% and decrease the
total cost between 15 to 53% in comparison with the genetic-based algorithm.
