Multitasking

VI Multitasking

Multitasking besturingssystemen zoals Linux kunnen meerdere taken tegelijkertijd uitvoeren. Processors zijn echter maar in staat één opdracht tegelijkertijd uit te voeren. Dus enkel computers met meerdere processors (of met meerdere kernen) kunnen echt verschillende taken tegelijkertijd uitvoeren. Toch hebben we de indruk dat Linux multitasking werkt (zo kan ik zonder problemen tekst typen in mijn tekstverwerker terwijl op de achtergrond muziek speelt en/of er een groot bestand van het internet gedownload wordt). Linux verdeeld echter de tijd tussen de verschillende taken die dus één voor één aan bod komen, waardoor je de indruk krijgt dat alle taken tegelijkertijd verlopen.

1 Procesbeheer

Omdat Linux een multitasking besturingssysteem met geheugenbeveiliging is, kun je processen beheren. Er zijn hulpmiddelen voorhanden om de lijst van alle processen op te vragen en processen te stoppen.

Start K menu > Programma's > Systeem > Monitor > Systeemmonitor en activeer het tabblad Processentabel (sneltoets: Ctrl+Esc).

De Processentabel toont een lijst van lopende processen op jouw systeem. De lijst kan gesorteerd worden per kolom. Klik daarvoor op de kolomtitel.

De lijst toont de volgende informatie over elk proces (niet alle informatie is op alle systemen beschikbaar):

Met het snelmenu (rechts klikken) op een kolomtitel, kun je de aangeklikte kolom verbergen of een verborgen kolom tonen.

Boven de tabel staan de volgende elementen:

Met het snelmenu (rechts klikken) van een proces kunnen verschillende opdrachten gegeven worden:

Als je nog meer informatie wilt, kun je met de muis een gegeven aanwijzen. Na een korte pauze verschijnt er een geel kader met extra informatie (zie afbeelding: muis wijst CPU % van krunner aan).

Opdrachten
  1. Start de Processentabel.

  2. Toon de kolom PID.

    1. Rangschik de processen op hun Proces-ID. Welk proces staat als eerste?

    2. Welk proces staat als laatste?

    Conclusie: Het eerste gestarte proces heeft het Proces-ID.

  3. Rangschik de processen op het gebruik van de processor.

    1. Welk proces belast de processor het meest?

  4. Open het ODT-document ~/Documenten/Bestandsbeheer/installatie_handleiding_1.5_stable.odt.

    1. In LibreOffice kan je via het menu Bestand > Exporteren als PDF... het document opslaan als een PDF-document.

    2. Bevestig daarbij de standaard PDF-opties.

    3. Exporteer het PDF-document naar het Bureaublad met de bestandsnaam installatie_handleiding_1.5_stable.

    4. Welke processen tonen een verhoogd processorgebruik?

    5. Sluit LibreOffice.org Writer.

  5. Welk proces heeft de prioriteit met de laagste waarde?

      1. Werkt dit proces sneller of trager dan de andere processen?

      2. Welke waarde heeft de prioriteit?

    1. Welk proces heeft de prioriteit met de grootste waarde?

  6. Welk proces verbruikt het meest geheugen? Hoeveel? ..............

    1. Welke gebruiker heeft dit proces gestart?

    2. En met welke opdracht werd het proces gestart?

  7. Welk proces verbruikt het meeste grafische geheugen?

  8. Door welk proces (ouder) werd klauncher gestart?

    1. Welk proces (kind) heeft startkde gestart?

  9. Installeer het pakket amor.

    1. Start amor met behulp van K menu > Programma's > Amusement > Schermvermaak.

    2. Je hebt echter een probleem: amor is een programma zonder venster (en dus geen menubalk) en het wordt niet met een knop op het paneel geplaatst (verdwijnt na een tijd). Een manier om het programma af te sluiten, is gebruik maken van de Processentabel.

    3. Beëindig het proces amor.

  10. Installeer via de website van openSUSE het pakket gtkperf.

    1. Start de Terminal en voer de opdracht gtkperf uit.

    Om de meetwaarden in deze oefening correct te kunnen opmeten, mag je in de loop van deze oefening het venster GtkPerf vergroten of verkleinen of gedeeltelijk of volledig bedekken met een ander venster. Zorg ervoor dat alle vensters helemaal zichtbaar zijn.

    1. Voer alle testen uit.

      1. Terwijl GtkPerf de testen uitvoert, zoek je welke processen een verhoogd processorgebruik vertonen?

      2. Totale benodigde tijd:

    2. Voer nogmaals all testen uit, maar minimaliseer tijdens het testen het GtkPerf venster.

      1. Totale benodigde tijd:

    3. Open het GtkPerf venster terug.

    4. Verlaag de prioriteit van het proces GtkPerf tot het minimum.

      1. Noteer de totale benodigde tijd:

    5. Probeer deze tegenstrijdigheid te verklaren.

    6. Verhoog als sntcursist de prioriteit van het proces glxgears.

      1. Wat merk je?

      2. Voor welke waarde moet je het wachtwoord opgeven?

      3. Annuleer het wachtwoord dialoogvenster.

    7. Sluit het programma GtkPerf.

    8. Start het programma GtkPerf terug op. Welke prioriteit heeft het proces nu?

    Conclusie: om het proces zijn oorspronkelijke lagere prioriteit terug te geven, moet een gewone gebruiker het proces

    1. Sluit GtkPerf.

  11. Rangschik de processen naar processorgebruik.

    1. Kopieer het bestand ~/Documenten/Bestandsbeheer/zombie naar de Persoonlijke map.

    2. Het bestand zombie is een programma, maar programma's die bijvoorbeeld van het internet komen, kun je niet zomaar starten. Maak het bestand zombie in de Persoonlijke map als volgt uitvoerbaar:

      1. Klik in het snelmenu van het bestand zombie op de optie Eigenschappen.

      2. Activeer het tabblad Toegangsrechten.

      3. Zorg voor een vinkje bij de optie Is uitvoerbaar.

    3. Klik op het bestand zombie om het programma te starten.

      1. Welke vermelding staat in de kolom processorgebruik bij het proces zombie?

        Dit is de processtatus van het proces zombie.

    4. Probeer door met de muis verschillende processorgebruik waarden aan te wijzen, te achterhalen welke drie processtatussen een proces kan hebben:

      1. Welke status hebben processen die voor het ogenblik niets om handen hebben?

      2. Bepaal op een gelijkaardige manier hoeveel subprocessen init heeft:

      3. Hoeveel processen met de naam zombie zijn er?

      4. Beëindig alle processen met de naam zombie.

  12. Probeer de volgende opdrachten op te lossen met behulp van de extra informatie bij het aanwijzen.

    1. Welke gid (Groeps id) heeft de gebruiker root?

    2. Wat zijn kernel-threads?

  13. Sluit de Processentabel.

  14. Start in een Terminal de opdracht top. Dit is het terminal-equivalent van de Processentabel.

    1. Start een tweede Terminal. En voer de volgende opdrachten uit (hou daarbij top in het oog):

    mkdir webpagina
    cd webpagina
    pdftohtml -c /usr/share/gutenprint/doc/gutenprint-users-manual.pdf index.html

      deze laatste opdracht zet een pdf document om naar een html pagina.

      1. Welke processen tonen een verhoogd processorgebruik?

      2. Sluit de tweede terminal.

    1. De opdracht top toont een aantal extra kolommen, waaronder een kolom met tijden.

      Deze kolom toont hoelang een proces reeds actief is.

      1. Druk O (hoofdletter O) en daarna m om de sorteervolgorde in te stellen op TIME+.

      2. Bevestig deze instelling met Return.

      3. Welk proces is het langs actief?

      4. Hoelang is dit proces reeds actief?

      Conclusie: Sommige processen zijn actiever dan andere.

    2. Sluit top door q te drukken.

    3. Sluit de Terminal.