In real-world scheduling applications, machines may be unavailable during certain time periods for deterministic and stochastic reasons. This situation does not pose any problems if the jobs always have more than one machine available for processing. However, it becomes an issue if the only available machine is the one which more than one job needs for processing. Thus, the investigation of limited machine availability, along with the practical requirement to handle this feature of scheduling problems, are of huge significance. This paper examined a flexible job shop environment of a manufacturing firm to optimize different performance criteria related to makespan, due dates, priorities and penalties by using a metaheuristic approach, taking into account the precedence constraints. The work investigated the case in which all machines are available for processing and another case in which some of the machines are known in advance to be unavailable. From the results, the best schedules are analysed and the perspectives of the findings to decision-makers are discussed with the purpose of achieving high machine utilization, cost reduction and customer satisfaction.