In a computer system having a main storage unit, a plurality of system controllers connected to said main storage unit, each of said system controllers having a shared buffer storage unit, and a plurality of instruction processors connected to said system controllers, each of said instruction processors having a buffer storage unit, said shared buffer storage unit having a copy of a part of said main storage unit, and said buffer storage unit having a copy of a part of said shared buffer storage unit, a task scheduling method for a multiprocessor, comprising the steps of:
- providing each task control block of a task control block queue with an area for storing a processor identification of an instruction processor which executes a task, and an area for storing evaluation information for evaluating a copied data amount for said task remaining in said buffer storage unit of said instruction processor executing said task;
- causing said instruction processor to register said processor identification and said evaluation information in said task control block when execution of said task is stopped;
- and
- when selecting a task to be executed by a subject instruction processor from a plurality of tasks to be executed in said computer system, causing said subject instruction processor to sequentially read said task control blocks in said task control block queue to check each task, if said processor identification in a read said task control block and corresponding to a checked task is the same as a subject processor identification of said subject instruction processor, causing said subject instruction processor to select said checked task, if said processor identification is not the same as said subject processor identification of said subject instruction processor, evaluating said checked task using said evaluation information in said task control block to determine if a value of an evaluation result is smaller than a predetermined first threshold value and if said copied data amount of said checked task remaining in said buffer storage unit of said instruction processor is greater than a predetermined amount, and if said evaluation result value is larger than said first threshold value, causing said subject instruction processor to select said checked task if (said instruction processor uses a same shared buffer storage unit as said subject instruction processor), and causing said subject instruction processor to select said checked task if (said instruction processor does not use said same shared buffer storage unit and if said evaluation result value is larger than a predetermined second threshold value), and if (said other instruction processor does not use said same shared buffer storage unit and said evaluation result value is smaller than said second threshold value), causing said subject instruction processor not to select said checked task, and causing said subject instruction processor to perform a process of checking a next task.