Göm menyn

TDIU16 Process- och operativsystemprogrammering

Visualiseringsverktyg


Här finns visualiseringsverktyget som nämns i labhandledningen. Verktyget är byggt för att visa hur trådning interagerar med datamodellen i C (inklusive pekare och referenser). Verktyget kan köra enkel C-kod och visa vad som händer. I multitrådade program har du möjlighet att köra trådarna i olika ordning för att se vilka problem som kan uppstå. Verktyget säger också till när så kallade data races uppstår.

Verktyget kan användas på två sätt:

  1. Visualisera kod på din dator. Detta görs dels i labbarna, och dels finns en uppsättning gamla problem nedan som är bra övning inför tentan.
  2. Tävla med dina klasskompisar online. Här finns synkroniseringsuppgifter som ger poäng. Se denna sida för mer detaljer.

Hämta verktyget

Ladda ner verktyget från en av länkarna nedan, packa upp filen någonstans och kör Progvis.sh eller Progvis.bat.

  • SU-salar eller ThinLinc

    Om du sitter vid en dator i en SU-sal, eller kör via ThinLinc kan du helt enkelt starta verktyget genom att köra kommandot /courses/TDIU16/progvis/start i en terminal.

  • Verktyg för Linux (Bör fungera i Debian-baserade system med x86-baserad CPU)

    På Linux öppnas troligtvis en grafisk arkivhanterare som standard. Markera i så fall alla filer (Ctrl+A), och välj Packa upp eller motsvarande. Välj sedan en tom mapp att lägga dem i. Alternativt, öppna en terminal i den mapp där du vill packa upp verktyget och skriv tar -xvf <sökväg till .tar-filen>. Kör sedan start.sh genom att antingen klicka på den i den grafiska miljön (du kan behöva välja Kör i terminal i meddelandet som visas), eller genom att skriva ./start.sh i terminalen.

  • Verktyg för Windows

    På Windows kommer du antagligen se meddelandet som visas nedan (Windows har skyddat datorn). Det är ett meddelande som visas för alla program som Windows inte känner igen sedan tidigare (dvs. program som inte många i världen laddar ner), och betyder inte nödvändigtvis att programmet är skadligt. Vill du köra programmet, klicka på Mer information och sedan Kör ändå (jag brukar ha för vana att skanna programmen med mitt virusprogram först). Du behöver bara godkänna detta första gången.

    Notera: Verktyget innehåller allt som behövs. Du behöver alltså inte installera någon separat C-kompilator eller liknande.

Undersök kod på din dator

När du har laddat ner och startat verktyget kan du öppna egen kod med hjälp av File -> Open.... Verktyget kompilerar sedan koden och visar den. Du kan sedan stega i ditt program som du vill för att hitta synkroniseringsproblem. Verktyget förstår de synkroniseringsprimitiver som finns i Pintos (de vi tar upp i kursen), samt funktionen thread_new för att starta nya trådar.

Tyvärr klarar inte verktyget allt som går att göra i "vanlig" C. Detta för att verktyget behöver ha lite extra koll på vad koden försöker göra (det går inte alltid i vanlig C). Du märker när detta sker genom att verktyget ger ett kompileringsfel som en "vanlig" C-kompilator inte skulle ge. Det är också en bra idé att köra små exempel i visualiseringsverktyget för att det inte ska bli allt för svårt att se vad som händer.

Tips: Om du enkelt vill experimentera med olika lösningar är det en bra idé att öppna samma källkodsfil både i verktyget och i en texteditor. När du har ändrat i koden kan du sedan välja File -> Reload program... (Ctrl+Shift+R).

Uppgifter/exempel

Här finns en uppsättning exempel som är anpassade för att köra i verktyget. Uppgifterna kan ibland även kompileras och köras utanför verktyget (dock endast på Linux i dagsläget). Om det finns en fil som heter Makefile kan du kompilera koden med kommandot make: skriv make x för att kompilera filen x.c. Detta går dock inte med alla exempel, eftersom vissa av dem är gjorda specifikt för visualiseringsverktyget.

Online-tävling

Det finns också ytterligare uppgifter som kan lösas för bonus på tentamen. Se här för mer information.


Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2024-03-19