45214 Datamaskinarkitektur - Øvinger 1995


Løsning 10


Oppgave 1

a) Med "multiprogrammering" menes et en-prosessor-system eller fler-prosessor-system hvor programmene deler ressurser ved tids-deling. Hovedpoenget er å overlappe CPU- og IU- operasjoner blant programmene som kjører for å bedre utnyttelsen(Eng: utilization) av ressursene.

b) Multiprosessering er multiprogrammering implementert på prosess-nivå på en multiprosessor. Hvis kommunikasjon mellom prosessorer håndteres på instruksjons-nivå, vil det være snakk om MIMD multiprosessering. I dette modus utnyttes finkornet (Emg: fine-grain) parallellitet.

c) For multiprosessering, hvor prosessor-kommunikasjon foregår på program-, prosedyre-, eller subrutine-nivå, karakteriserer som MPMD modus. I dette modus utnyttes grovkornet (Eng: Course grain) parallelitet.

d) Når et enkelt program deles opp i flere oppgaver som kan utføres samtidig på en multiprosessor, kalles dette for multitasking.

e) Multithreading er en forfining av multitasking og multiprosesserings-konseptene. En "task" kan starte multiple tråder (Eng. threads) som utføres på en eller flere prosessorer på samme tid. Siden tråder er "lettvekts" prosesser men minimal tilstands- og register-informasjon, går kontekst (Eng. context) bytting mye raskere enn i multiprogrammering og multiprosessering.

f) Med program-oppdeling menes oppdeling (dekomponering) av store programmer og data-sett til små deler som kan utføres i parallel på flere prosessorer.

Oppgave 2

a) I en enkel, fast kjerne, er en av prosessorene master, mens de andre er slaver. Bare masteren kan kjøre i kjerne-modus, og slave-prosessorene kan bare kjøre i bruker-modus. Når en prosess trenger en system-tjeneste, spør den masteren og må vente hvis masteren allerede er i bruk. Fordelen med denne er enkel implementasjon og beskyttelse av kjernens data strukturer. En alvorlig svakhet er at masteren kan bli en flaskehals og at ytelsen ikke er skalerbar. Dessuten vil ikke et slikt system være særlig robust. Når master-prosessoren stopper, vil hele systemet stoppe opp.

b) I en enkel, flytende-master kjerne, kan flere prosessorer utføre kjerne-funksjoner, men bare en av gangen. Hele kjernen er beskyttet av en lås. En prosessor som ønsker å gå i kjerne-modus må åpne låsen først. Fordelen er økt feil-toleranse sammenlignet med en enkel, fast master-slave kjerne. Foruten det, er det lav ytelseforbedring.

c) I en enkel, master kjerne med hjelpere, deles kjerne-funksjonene opp i to deler. Bare kritiske system-kall reserveres til masteren som kan flyte mellom prosessorene med en lås. De andre ikke-kritiske system-kallene, kan utføres på slavene. Denne oppdelingen, fordeler lasten blant prosessorene, og reduserer flaskehalse-problemet for utførelse av systemkall. Hovedproblemet er økt kompleksitet i implementasjonene.

d) I multiple, samarbeidende mastere, kan flere mastere eksistere samtidig, hvor hver har viktige delsystem-funksjoner. Ikke kritiske kjerne-funksjoner utføres av slavene. Et hierarki av låser benyttes for å koordinere masterene. Fordelen med dette er at alle kjerne funsjonene spres over flere prosessorer, som igjen øker ytelsen og robustheten. Et problem er at det trengs kompliserte mekanismer for å håntere konflikter blant masterene.


Pauline Haddow(pauline@idt.unit.no)
Last modified: Wed May 1 16:40:19 MET DST 1996