Content area
Full Text
Abstract-this paper presents a new method for scheduling of symmetric multiprocessing (SMP) architecture based on process behavior. The method takes advantage of process behavior, which includes system calls to create groups of similar processes using machine-learning techniques like clustering or classification, and then makes process distribution decisions based on classification or clustering groups. The new method is divided into three stages: the first phase is collecting data about process and defining subset of data is to be used in further processing. The second phase is using data collected in classification or clustering to create classification/clustering models by applying common techniques similar to those used in machine learning, such as a decision tree for classification or EM for clustering. System training classification should be done in this phase, and after that, classification or clustering models should be applied on a running system to find out in which group each process belongs. The third phase is using process groups as a parameter of scheduling on SMP (sympatric Multi Processor) systems when doing distribution over multiprocessor cores. Another advantage can be achieved by letting the end user train the system to classify a specific type of process and assign it to a specific process core, targeting real-time response or performance gain. The new method increases process performance and decreases response time based on different kinds of distribution.
Keywords: Scheduling Algorithm, Symmetric Multi Processors Architecture, Processor Behavior, Processor Behavior Classification.
I. INTRODUCTION
Computer systems play an important role in modern life: from work to entertainment, they make things easier, faster, and more enjoyable. Computer System consists of system software and hardware. While hardware serves an important role in a computer system, but the system cannot do any work without the system software and specially the operating system.
One of the main goals of operating systems is to provide a fair share of resources among different types of programs running on the same machine. One of the main resources which operating systems try to allocate in an efficient way is the time of Central Processing Unit (CPU). The operating system tries to schedule programs and allocate CPU based on different scheduling algorithms; some of these algorithms are priority-based algorithms, where the highest priority program will run before the lowest...