## 2 Materials and Methods Background
### Distributed Systems and Cloud Computing  
The emergence of distributed systems (DS) has brought new challenges in scheduling in computer systems, including clusters, grids, and, more recently, clouds. The distributed systems are all around us, and their importance and complexity are growing. The distributed system is a collection of independent, autonomous computing elements connected via a communication network. The computing elements communicate by sending messages to collaborate in some way. When applying IoT in DS, computers work concurrently, do not share a global clock, and fail independently. Dependencies among individual DS computers amplify the consequences of failure. For example, there are \(n\) dependent processes, the probability of failure is \(p\rightarrow(1-p)^{n}\). The question arises: Why are there DSs? Because the so-called inherent distribution is the crux of the matter. Applications requiring resource sharing or information dissemination among geographically or organizationally foreign entities represent \"natural\" distributed systems. The DS application aims to be able to solve more tasks or larger instances of tasks than is possible with a single computer, as in parallel computing. Another characteristic of DS is openness, security, etc., as well as the ability to ensure (almost) permanent availability of the required services. For parallel computing, this goal is not set typically. The distributed system generally has the following basic characteristics:  
1. Resources can be shared just like software from other systems connected to the network: in other words, the components in the system are synchronous [25]. 2. A global clock is not necessary to have in DS. 3. In the distributed model, the error tolerance is much higher than in other network models; otherwise, the performance/cost ratio is quite interesting [26]. The basic objectives of the DS are:  
1. Transparency;
2. Openness [27];
3. Flexibility;
4. Reliability [28];
5. Performance;
6. Scalability [29; 30; 31]. The distributed system may face virtually any problem, such as security; this creates room for additional solutions, especially when using a public network. Another distribution problem is fault-tolerance if it is built on an unreliable foundation [32]. Without proper protocols or principles, resource coordination and sharing represent a big challenge in a distributed environment [33]. Providing computing performance through the network (Internet) is advantageous for cloud computing. Clients do not need the services of massive, complex computers to trade, track, and manage assets and devices; rather, they can access cloud storage services depending on their needs. Simply put, cloud computing is the delivery of computing services, including servers, storage, databases, networks, software, analytics tools, and intelligent functions, through the Internet (the \"cloud\"), offering faster innovation, resource flexibility, and cost advantages. According to the scope of services provided within cloud computing, it can be divided into several groups [34]:  
* Infrastructure as a Service (IaaS)-The cloud provides a complete infrastructure (most often virtualization). A provider is fully responsible for the service provision and management. * Platform as a Service (PaaS)-The cloud provides resources for the entire lifecycle of a web application's creation and delivery. * Software as a Service (SaaS)-A user buys or rents access to the application, not the application itself. * IBM further divides cloud computing according to how the cloud itself is provided [29]. * Public cloud--This is provided by companies that offer fast access to computing resources through a public network. The user does not have to purchase their own hardware or software. * Private cloud--The infrastructure is operated exclusively for a single organisation. * Hybrid cloud--This is a combination of public and private clouds. * The most well-known cloud computing platforms include:
* Google Apps (SaaS), which covers, e.g., email, docs, Gtalk, calendar, etc.