Den klassiske computer maskinarkitektur består af én lagerenhed til lagring af programkode og data samt én processor til afvikling af programmer. Dette har været den almindelige maskinarkitektur igennem årtier. Den bliver dog i stadig stigende grad erstattet med mere komplekse multiprocessor og distribuerede maskinarkitekturer for at opnå den nødvendige kapacitet og for integration af fysisk adskilte ressourcer. Multiprocessor maskinarkitekturer med delt lager består af flere processorer og én fælles lagerenhed samlet i én computer. Distribuerede maskinarkitekturer består af flere computere med hver sine lagerenheder og processorer.
Traditionel systemudvikling har i vid udstrækning udviklet sig med udgangspunkt i den klassiske maskinarkitektur, og den har ikke uden videre kunnet videreføres til de mere komplekse maskinarkitekturer. Imperative programmeringssprog er med én sekvens af programinstruktioner, der bearbejder lagerceller i én lagerenhed, orienteret mod den klassiske maskinarkitektur. For at kunne anvendes til de komplekse maskinarkitekturer er imperative programmeringssprog blevet udvidet med specielle koncepter og funktioner som processer, interproces kommunikation, "threads" og semaforer. Disse er med til væsentligt at øge kompleksiteten i programmer og medfører specielle problemer i form af "deadlock" og "timing" problemer.
Objektorienterede programmeringssprog benytter principielt uafhængige, kommunikerende objekter der fungerer parallelt, og de er demed umiddelbart mere egnede til de komplekse maskinarkitekturer. I praksis fungerer objektorienterede programmeringssprog dog i vid udstrækning som de sekventielle imperative programmeringssprog med et styrende objekter der sekventielt overgiver kontrollen til andre objekter. Disse er således heller ikke umiddelbart velegnede til de komplekse maskinarkitekturer og kræver ligeldes specielle koncepter og funktioner.
Der er behov for at generel systemmodellering omfatter parallelitet som en naturlig del af systemmodelleringen og dermed umiddelbart er velegnet i forbindelse med moderne, distribuerede maskinarkitekturer og deraf følgende programmeringsmodeller. Generel systemmodellering bør naturligvis også være anvendelig til den klassiske, simple maskinarkitektur, men denne kan betragtes som et special tilfælde af distribuerede maskinarkitekturer og parallelitet kan uden større problemer simuleres i simple maskinarkiturer.
|