Overleg:Multitasking (computer)

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

"Programma's zijn in eerste instantie gemaakt alsof ze zonder te stoppen worden doorlopen. Dan kunnen er geen problemen optreden. Met de komst van MS Windows kwamen een aantal goede verbeteringen in de programmeertalen. Het geheel was niet alleen grafisch, maar er waren ook mogelijkheden voor multitasking." Bestond multitasking niet al langer voor de komst van Windows? En wat wordt er bedoeld met "aantal goede verbeteringen in programmeertalen"? Welke verbeteringen? Wilinckx 18 aug 2003 12:09 (CEST)

Mogelijkheden voor het werken met een Grafische user interface en volledige ondersteuning voor multitasking, zie regel verder in de tekst Het geheel was niet alleen grafisch, maar er waren ook mogelijkheden voor multitasking.Pven 18 aug 2003 12:13 (CEST)

Dat gaat toch over het besturingssysteem en niet over de programmeertalen? Wilinckx 18 aug 2003 12:20 (CEST)

De onderwerpen raken elkaar hier.
Je hebt een programmeertaal, daar schrijf je je programma mee. Je compileert het, waarna je het kan uitvoeren op een besturingssysteem. Een bepaalt programma werkt niet op een ander besturingssysteem. Om multitasking toe te kunnen passen moeten zowel het besturingssysteem als de programmeertaal op elkaar zijn afgestemd. goed voorbeeld: Pascal (voor DOS) en Delphi (voor Windows): Pascal kent het commando ProcessMessages niet. In Delphi kan je altijd zeggen: Application.ProcessMessages(); .

ah zo. Maar voor er Windows multitasking kwam, was er toen al geen multitasking in andere besturingssystemen? Wilinckx 18 aug 2003 12:51 (CEST)

Er bestond multitasking in Unix-gerelateerde besturingssystemen. Macintosh deed het meen ik ook. In Dos kon het theoretisch wel (kleine apps zoals doskey). Het principe van multitasking is in elke beturingssysteem vrijwel hetzelfde. Bij sommige besturingssystemen (Windows XP, unix, linux, etc.) zit er meer controle op dan andere (Windows 95, 98, ME). Ik zelf ben gespecialiseerd in Windows-applicaties, vandaar dat ik me heb uitgeleefd om dit artikel te schrijven met Dos en Windows als kleine leidraad. Natuurlijk is iedereen zo vrij om het eruit te slopen. Leef je uit. Pven 19 aug 2003 07:27 (CEST)

Ver voor Unix en mac was multitasking al heel gewoon op mainframes en pdp/vax systemen. TeunSpaans 19 aug 2003 07:33 (CEST)
Zou best kunnen, maar dan was het tevens ver voor mijn tijd 8o) Pven 19 aug 2003 07:41 (CEST)
Ik praat dan over eind 70 / begin 80-er jaren TeunSpaans 19 aug 2003 08:41 (CEST)

"Daar hebben we ook meteen weer de oorzaak waarom Windows zo traag wordt als er veel programma's 'tegelijkertijd' draaien. Bedenk je maar eens wat er gebeurt als er elke milliseconde gekeken wordt wie er nog in de wacht staan, om vervolgens enkele milliseconden te blijven hangen, om vervolgens te kijken wie er nu nog in de wacht staan, en dat zo'n paar miljoen keer (10 seconden = 10000 milliseconden, maal 50 programma's = 500.000 keer kijken wie er in de wacht staan). Uiteindelijk kijkt Windows vaker naar wie er in de wacht staat dan dat een programma daadwerkelijk wat aan het doen is.". Weet iemand hoe dit zit bij Linux? Ik heb de indruk dat ik dit probleem niet bij Linux heb: een draaiend programma dat niets doet lijkt niets te vertragen (buiten als er RAM of hd te kort is natuurlijk). Wilinckx 19 aug 2003 11:24 (CEST)

In Linux geldt hetzelfde. In Windows wordt bijna elk programma volgehangen met veel ballast. (MS Outlook heef 25 minuten nodig om op te starten op een Pentium 66) In linux zijn de programma's over het algemeen beter geprogrammeerd. Toch is een proces wat lang duurt te simuleren:
Probeer eens vanuit / het commando ls */*/*/*/*/* > null zo'n 500 keer uit te voeren op de achtergrond met een script of zo. Alle programma's die een harde schijf willen benaderen zijn trager (dit is logisch), dus die laat ik even buiten beschouwing. probeer eens opnieuw in te loggen. een vertraging zou merkbaar moeten zijn. Ik probeerde het ooit op Redhat 5.0 (lang geleden). Een reset was noodzakelijk, omdat hij teveel tijd nodig had om tussen de processen te switchen.
Ik had het over een programma dat niets deed. Jouw voorbeeld doet degelijk wel iets. Wilinckx 21 aug 2003 11:00 (CEST)
Om tijd te rekken. Anders zou het programma afgelopen zijn voor er 10 nieuwe gestart zijn. het ls commando maakt het systeem niet trager, het geeft alleen een opsomming van alle bestanden. Als je het één keer uitvoert, kan je toch ook gewoon normaal doorwerken???
Het maakt het systeem wel trager, juist omdat het een iets doet. Het slikt processor. Dat je nog steeds kan doorwerken als je het een keer uitvoert is juist wegens multitasking: dat je meerdere programma's tegelijk kan draaien. In jouw voorbeeld start je gewoon zoveel programma's die allemaal processor slikt, dat de kernel 501 processen (waarvan 500 een ls) CPU moet geven. Dat het 501ste proces dus ineens veel minder CPU krijgt is dus zeer logisch.
Waar ik het over had was als een proces niets deed (wat dus in dit voorbeeld niet het geval is), dat het geen vertraging levert (buiten geheugen dus). Wilinckx 21 aug 2003 11:14 (CEST)
Dat is vrij logisch. Het programma staat dan niet meer in de wachtij om iets te doen. Het programma vertraagd geen enkel systeem, Linux niet, Windows niet, etc.
In de tekst stond dat dit wel zo was: "Resultaat: Alles blijft hangen gedurende 5 seconden. Het besturingssysteem en andere programma's leven even op, het scherm wordt ververst, en dan blijft weer alles hangen gedurende 5 seconden omdat het programma waar we het over hebben weer 5 seconden gaat wachten, terwijl de rest dus vrolijk meewacht.". Wilinckx 21 aug 2003 11:27 (CEST)
De rest is dus: De gebruiker, die na de bewerking koffie moet gaan zetten, de moeder van de gebruiker de wacht op koffie om daarna de krant te gaan lezen, de buurvrouw die wacht op de krant om hem daarna per mail door te sturen naar haar neef in amerika, de neef die op de mail wacht, om daarna naar zijn werk te gaan, de baas van de neef die wacht tot de neef er is om het te vertellen dat hij met spoed naar president Bush moet gaan. President Bush die zit te wachten op de neef van de buurvrouw. Zo zie je maar weer: De hele wereld wacht op het niets-doen van een programma.
Ah, dus toch, daarnet leek het of je juist zij van niet (maar dat kan ik dus verkeerd begrepen hebben): "Het programma staat dan niet meer in de wachtij om iets te doen. Het programma vertraagd geen enkel systeem, Linux niet, Windows niet, etc.". Wat ik dus wil zeggen: onder Linux wacht de hele wereld (aka alle progs op dat systeem) niet op een programma als dat hangt/niets doet, en een hangend/nietsdoen programma vertraagd anderen ook niet (buiten geheugen dus, en natuurlijk buiten als het ene afhankelijk is van het andere zoals een X server, maar dat is in ons voorbeeld niet het geval). Wilinckx 21 aug 2003 11:40 (CEST)
Inderdaad een beetje tegenstrijdig Tweehonderd-punt-honderddrieentwintig-punt-honderdachtenzestig-punt-negenentachtig 21 aug 2003 11:42 (CEST)

Ik heb er bijgeschreven hoe het onder Linux is. Zeg maar als er iets niet meer klopt. Als iemand weet hoe het onder BeOS enz is, welkom welkom :) Wilinckx 21 aug 2003 11:54 (CEST)


"Resultaat: Alles blijft hangen gedurende 5 seconden. Het besturingssysteem en andere programma's leven even op, het scherm wordt ververst, en dan blijft weer alles hangen gedurende 5 seconden omdat het programma waar we het over hebben weer 5 minuten gaat wachten, terwijl de rest dus vrolijk meewacht.". Lijkt mij iig niet te kloppen onder Linux, heb nog nooit een user-space programma geweten - ook niet een zelf geschreven - dat heel de boel deed hangen. Wilinckx 20 aug 2003 15:07 (CEST)

Waarschijnlijk is Linux beveiligd tegen dit soort bug, bijvoorbeeld door een maximum aan procescapaciteit in te stellen per proces. Zou best kunnen, weet ik niet zeker, ik hou me voornamelijk met Windows bezig.
Ik denk dat bij Linux het besturingssysteem zelf zegt welk programma nu een beetje processortijd krijgt, terwijl dat bij Windows het programma zelf is. (misschien niet meer bij nieuwere versies?). Zal het in de tekst vermelden. Wilinckx 21 aug 2003 10:58 (CEST)

Ha, alles is nu correct gezet en vervoledigd door Ap zie ik. Chique gedaan! Wilinckx 21 aug 2003 14:32 (CEST)

Ik vind de sectie Voorbeeld coöperatieve multitasking nogal verwarrend. Het lijkt me beter om dat stuk te verwijderen. Iemand bezwaar? JorisVR

Concurrent computing; Concurrency[bewerken]

Ik zie dat en:Concurrency geen Nederlands artikel heeft, terwijl en:Concurrent computing naar dit artikel verwijst. Dat is niet terecht: concurrency is een algemeen begrip, waar multitasking maar een van de mogelijke implementaties van is. Is er een Nederlandse vertaling voor concurrrency? Rp (overleg) 29 jun 2011 12:12 (CEST)