The problem of multiple fault diagnosis for linear discrete-time systems is investigated and solutions are presented in the form of algorithms. Specifically, two types of algorithms are proposed: algebraic and geometric. The algebraic result is obtained based on an invariance properity in expected deviation vectors and the notion of variation factor, while the geometric result is based on the observation that the set of faulty units can be differentiated from other sets by checking linear varieties in the measurement data space and the notion of distance factor. It is further shown that the system with t number of faults can be diagnosed within t+1 sample-times if the input-output measurement is rich and that the algorithms can be used for diagnosis even when the number of faults is not known in advance. The proposed algorithms are considered efficient when the number of faults is unknown but small and when the sampling period is lengthy as in chemical processes with large time constants. Its effectiveness is illustrated via simulated examples.