LABORATIONSUPPGIFTER WINDOWS OPERATIVSYSTEM

Relevanta dokument
Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Så här skriver du ditt första program i C++

Kom igång med. Windows 8. DATAUTB MORIN AB

Laboration 1 Introduktion till Visual Basic 6.0

Kom igång med RIB Karta 1.1

A. Datorn från grunden

LABORATION 2 DNS. Laboranter: Operativsystem 1 HT12. Martin Andersson. Utskriftsdatum:

DIGITALA RESURSER MANUAL FÖR. Arbeta med video i imovie

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

KURSMÅL WINDOWS STARTA KURSEN

NetBeans 5.5. Avsikt. Projektfönster

Hotspot låter användaren skapa genvägar till andra sidor.

Programmering B med Visual C

skapa genvägar till andra sidor (externa och interna)

Ladibug Bildbehandlingsprogram Bruksanvisning

Uppdatera Metem 3005 till M7005

REGION SKÅNE VDI KLIENTINSTALLATION

LEX INSTRUKTION LEX LDAP

Instruktion för användande av Citrix MetaFrame

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Configura 9.0 Release notes 18 april 2016

Manual TorTalk Mac 1.0

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Instruktion till. PigWin PocketPigs. Del 1 - Installation

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Startanvisning för Bornets Internet

iloq P10S-programmeringsenhet Manual

INSTALLATION AV KLIENT

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

USB styrt DMX gränssnitt

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

LABORATION 1 Pingpong och Installation av Server 2008 R2

Inställningar för mus och tangentbord i Windows 7

OBS!!! Anslut ej USB kabeln till dator eller GPS innan du först har installerat drivrutinerna för USB kabeln i din dator.

Kom igång med Windows 8.1

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

Grunder. Grafiktyper. Vektorgrafik

Pär Sundbäck OrdKnuten. Programversion VAD ÄR ORDKNUTEN?... 2

1. Klicka på längst upp, när du har fönstret Familjeöversikt på skärmen. Denna meny visas:


Windows 8.1, hur gör jag?

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Manual licenserver. Installations och konfigurations-manual för Adtollo licenserver

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande.

Instruktioner för uppdatering från Ethiris 5.x till 6.0

Handbok Simond. Peter H. Grasch

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

INSTALLATION AV KLIENT

Rullningslisten. Klicka på rullningslistpilar (pil upp eller pil ner) 1 för att förflytta dig i önskad riktning, en liten bit i taget.

Handhavande manual problemhantering

Skapa ett eget programnu! NU! Komplett med programvara och konkreta exempel! Patrice Pelland. Swedish Language Edition published by Docendo Sverige AB

1. Säkerhetskopiera den eller de byråer du har arbetat med via i Visma Klient.

INSTALLATION AV KLIENT

Skärmbilden i Netscape Navigator

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Kunskapsbank ICARUS DB

Introduktion till programmering, hösten 2011

Manual TorTalk version 1.3

8 Bilaga: Installationer

Bruksanvisning för hjälpbegäran

BaraTrav Grunderna Version 1.3

FLEX Personalsystem. Uppdateringsanvisning

Installationsguide för FAR Komplett Offline 2.1.2

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

TDDC77 Objektorienterad Programmering

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Operativsystem IS1350

Färgklövern. Färgklövern är gjord 1998 i samarbete mellan Datateket i Linköping och Hargdata AB i Linköping.

Uppgift 3 B. Pedagogiskt inslag

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.3.1

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Laboration 2 Datorverktyg vid LiU

Datorlaboration 0, Programmering i C++ (EDA623)

Handbok Fjärranslutning till skrivbord. Brad Hards Urs Wolfer Översättare: Stefan Asserhäll

Code-Lite tutorial ( /RoJ)

Projektrapport. MegaLoad. Nätverksprogrammering EDA

CABAS. Release Notes 5.4. Ny foto- och dokumenthantering

Introduktionsmöte Innehåll

NetBeans 7. Avsikt. Projektfönster

Tobii C12. Grunderna för hur du kommer igång och arbetar med Tobiis C12 och ögonstyrningen CEye. Habilitering & Hjälpmedel

LEDNINGSÄGARMODUL. Systemkrav 1(6)

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Att koppla FB till AD-inloggning

Handbok Spectacle. Boudhayan Gupta Boudhayan Gupta Översättare: Stefan Asserhäll

Installationsguide, Marvin Midi Server

Installationsguiden startar med en välkomstdialog antingen för produkten eller för nödvändiga komponenter om aktuella komponenter saknas på datorn.

Symprint Snabbstartsguide

Integration med Vitec Express

Lab5 för prgmedcl04 Grafik

ONEDRIVE ÖVERBLICK Vad är OneDrive?... 2 Molnet?... 2 Två typer av OneDrive... 2 Hitta sin OneDrive för företag... 3

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.6.0

Bewator OMNIS version 6.1 Produkt release information

MPEG-problemlösning. Obs: Kunskapsdatabasen för WEB innehåller mer information om kardiologispecifika verktyg och visning av MPEG-objekt.

ETT FÖRSTORINGSPROGRAM PÅ DATORN ANVÄNDARHANDLEDNING

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

Transkript:

WINDOWS OPERATIVSYSTEM LABORATIONSUPPGIFTER ALLMÄNT Kursens laborationsdel består av sex uppgifter. För att få laborationsdelen av kursen godkänd krävs att alla sex uppgifter löses. Den sista uppgiften finns i två olika varianter. En variant är enklare och en är mer krävande. Den som löser den svårare varianten av uppgift 6 får betyg fyra eller fem på kursens laborationsdel. Den som istället väljer den enklare versionen får betyg tre. För alla uppgifter utom uppgift 3 och 6 finns det mallprogram på kursens webbsida. Mallprogrammen är exekverbara filer som visar hur lösningarna ska se ut när de är klara. Laborationerna ska utföras individuellt. Uppgifterna ska lösas med verktyget Microsoft Visual C++. Programmera direkt mot Windows API i C eller C++. Använd de grundläggande biblioteken GDI, USER och KERNEL. Det är inte tillåtet att använda mallsystemet ATL, klassbiblioteket MFC, plattformen.net eller andra dylika hjälpmedel. Redovisa laborationerna genom att visa upp det för mig i skolan under någon av laborationstillfällena. För uppgift 2 samt uppgift 6 för betyg 4 eller 5, ska även källkoden redovisas. Då gäller följande: Redovisa först lösningens funktionalitet i skolan. När funktionaliteten är godkänd ska källkoden skickas till mig (mattias@itmattias.com). Gör ett zip-arkiv av hela projektkatalogen, men utelämna underkatalogerna debug och release. Låt ämnesraden i emailet vara labb 2 eller labb 6 respektive. Ifall källkoden är i sin ordning skickar jag tillbaka ett email som talar om att laborationen är godkänd. Det arbete som krävs för att lösa uppgifterna varierar stort mellan de olika uppgifterna. Uppgift 1 är en liten uppgift för att komma igång. Uppgift 2 är mer omfattande än alla de andra uppgifterna tillsammans. Försök därefter att börja jobba med uppgift 2 så snabbt som möjligt. Ifall sedan uppgift 2 drar ut på tiden, lös de andra uppgifterna samtidigt som du jobbar på uppgift 2. 1

KURSENS BETYGSÄTTNING Slutbetyg på hela kursen beräknas efter följande tabell: Laborationer Tentamen Hela kursen 3 3 3 3 4 3 3 5 4 4 3 4 4 4 4 4 5 5 5 3 4 5 4 5 5 5 5 2

UPPGIFT 1 GUL CIRKEL Syftet med den här uppgiften är att komma igång med C programmering i Windows miljö. Bekanta sig med utvecklingsverktyget Visual C++ och dokumentationen MSDN, samt att lära sig grunderna i det Windows GUI-programmering. Gör en applikation med ett vanligt standardfönster. När användaren rör muspekaren över fönstret ska en cirkel målas under muspekaren. När muspekaren lämnar fönstret stannar cirkeln. Det finns ett mallprogram som visar hur lösningen ska se ut när den är klar. Använd MSDN för att ta reda på hur man ritar cirkeln. Windows funktioner för programmering av användargränssnitt finns i biblioteken GDI och USER. För att uppgiften ska godkännas krävs följande: Färgerna ska överrensstämma med mallprogrammet gul cirkel och knapp-grå bakgrund. När muspekaren lämnar fönstret stannar cirkeln. Cirkeln får inte ha en svart kant. 3

UPPGIFT 2 POÄNGTAVLA Syftet med laborationen är att lära sig programmera användargränssnitt med Windows API. Det finns ett mallprogram i en fil som heter 2_poängtavla.exe. Uppgiften består helt enkelt av att göra ett program som fungerar som mallprogrammet. Programmet kan användas som en poängtavla vid exempelvis dartspel. Där finns en dialog där användaren kan mata in namn på deltagare. Det går sedan att rita streck på poängtavlan med en funktion som härmar en krita. Genom att klicka på musens högerknapp kan man byta kritan till en tavelsudd. Det finns även en registreringsdialog. Ingenting registreras dock när man använder dialogen. Däremot har dialogen två speciella egenheter. 1. Ifall man avmarkerar checkboxen för email blir OK-knappen otillgänglig i tre sekunder. Sedan markeras checkboxen automatisk och OK-knappen blir åter tillgänglig. 2. Avbryt-knappen går att flytta runt i dialogen. Man drar och släpper Avbrytknappen med musens högerknapp. Det är godkänt att Avbryt-knappen uppför sig konstigt när man lägger den ovanpå en annan control. När man gör ett användargränssnitt måste man ofta lägga ned relativt stort arbeta på den sista finishen. Det kan ibland vara knepigt att få gränssnittet att uppföra sig exakt som man vill. Därför är detaljerna viktiga. För att få godkänd får det inte finnas några fel eller skavanker. Några detaljer som jag kontrollerar innan uppgiften blir godkänd: Tabbordningen i dialogerna Vilken control i dialogerna som har fokus när dialogen öppnas. Vilken knapp som är default. Hur applikationen uppför sig när man med musknappen nedtryckt rör muspekaren in och ut ur de områden i fönstret som det går att rita streck på. Huruvida rullningslisterna hänger med när man lägger till och tar bort deltagare. Att Avbryt-knappen inte hoppar när man tar tag i den föra att flytta den. 4

UPPGIFT 3 MINNESKAMIKAZE Syftet med uppgiften är att få en känsla för hur Windows virtuella minne fungerar. För den här uppgiften finns det inget mallprogram. Istället finns det nedan en exakt beskrivning av hur programmet ska fungera. Med hjälp av programmets output ska nedanstående frågor besvaras. Skriv ner svaren direkt på det här pappret innan du redovisar laborationen. Gör en applikation som allokerar minnesblock om 1 Mbyte. Applikationen ska allokera minne en Mbyte åt gången tills det inte går att allokera mer minne. Efter varje allokering ska följande information skrivas ut: 1. Totala storleken på processens virtuella minne. 2. Mängden ledigt virtuellt minne. 3. Totala storleken på datorns RAM-minne. 4. Mängden ledigt RAM-minne. 5. Totala storleken på Windows page-fil. 6. Mängden lediga bytes i page-filen. När det inte går att allokera mer minne. Låt applikationen skriva felkoden som det misslyckade malloc anropet ger upphov till. Slå upp felkoden i MSDN. 5

Frågor: a) Vad är det för felmeddelande man får när det inte går att allokera mer minne: b) Vad är det som begränsar hur mycket minne som går att allokera? c) Hur kan man göra för att ta bort begränsningen? Gör konfigurationen som tar bort begränsningen och kör därefter programmet igen. d) Vad blir det för felmeddelande den här gången? e) Vad är det som begränsar hur mycket minne som går att allokera? 6

UPPGIFT 4 MUTEXCHAT Syftet med uppgiften är att lära sig hur Windows funktioner för synkronisering och för delat minne fungerar. Applikationen som skapas i laborationen utövar interprocess kommunikation med hjälp av ett filemapping-objekt, ett event-objekt samt ett mutexobjekt. Mallapplikationen består av en dialog med en inmatningsruta, en visningsruta samt en knapp. När man trycker på knappen läggs texten i inmatningsrutan till den text som visas i visningsrutan. Ifall flera instanser av applikationen startas igång kommer de alla att visa samma text. Den text som matas in i en av dialogerna visas i alla dialoger. Lösningen på uppgiften ska fungera på samma sätt som, och tillsammans med mallprogrammet. Kommunikationen mellan dialogerna går till på följande sätt: Filmapping-objektet heter text och innehåller hela den text som visas i dialogernas visningsfält. Filmappnings-objektet har en max-storlek på 10000 bytes. Mutex-objektet heter textmutex och kontrollerar åtkomst till filmappingobjektet, så att inte flera trådar använder det samtidigt. Event-objektet heter nytt meddelande och signaleras när det finns ett nytt meddelande. Event-objektet är inte av typen automatiskt. Det betyder att ifall en tråd väntar på eventet så kommer event-objektet inte automatiskt att flaggas av när tråden släpps igång. Algoritmen för uppdatering av visningsfältet: 1. Vänta på att event-objektet nytt meddelande ska flaggas. 2. Vänta på att få ägarskap över mutex-objektet textmutex. 3. Lägg in textsträngen som ligger i filmappningsobjektet text dialogens visningsfält. 4. Släpp ägandeskapet över mutex-objektet. 5. Börja om ifrån 1 igen. Algoritmen för vad som händer när användaren matar in text i dialogen: 1. Vänta på att knappen i dialogen klickas. 2. Vänta på ägarskap över mutex-objektet textmutex. 3. Lägg innehållet i inmatningsfältet till slutet av textsträngen i filmappningsobjektet text. 4. Lägg till tecknen för ny rad till textsträngen i filmappningsobjektet. 5. Flagga event-objektet nytt meddelande. Använd funktionen PulseEvent så att event-objektet flaggas av igen när alla väntande trådar släppts. 6. Rensa inmatningsfältet och sätt fokus på det samma. 7. Släpp ägandeskapet över mutex-objektet. 8. Börja om ifrån 1 igen. 7

Tänk på att applikationen måste fler än en tråd för att kunna fungera. 8

UPPGIFT 5 PROCESSRACE Mallapplikationen till den här uppgiften tar en parameter n som är ett heltal. Applikationen startar n antal barnprocesser. Varje barnprocess går runt en miljard gånger i en loop och avslutas sedan. I ett fönster visas hur långt varje barnprocess har kommit i sitt räknande, med en linje för varje process. Följande gäller: Den första av barnprocesserna ska alltid ha en prioritet som är satt till lägre än normalt. Alla andra processer har normal prioritet. Ifall ingen parameter anges ska tre barnprocesser startas. Mallen för den här laborationen består bara av en exekverbar fil, men det går bra att lösa uppgiften med två delprogram. Det kan också finnas en fast övre gräns på antalet barnprocesser. 9

UPPGIFT 6 FÖR BETYG 3 FJÄRRKONTROLL Väljer du att göra den här varianten av uppgift 6 får du betyg 3 på laborationsdelen av kursen. I den här laborationen används Windows bibliotek för kommunikation med TCP/IPprotokollet. I laborationen ska vi skapa en server som kommunicera med flera klienter. Både servern och klienten ska rymmas i samma exe-fil. När programmet startas får användaren välja ifall det är en klient eller en server som ska startas. Ifall det är en server som ska köras ska användaren ange vilken port som servern ska lyssna på. När en klient skapas, ska användaren ange ip-adress och port för kontakt med servern. Både servern och klienten har ett fönster av standard typ. För varje klient som kopplar upp sig syns en falsk muspekare i serverns fönster. När muspekaren rör sig i klientens fönster rör sig dess motsvarighet hos servern på samma sätt. Använd dig av biblioteket Winsock. När man använder TCP beter sig Winsock på det sättet att små meddelanden inte skickas iväg direkt utan först samlas ihop. I vårt fall vill vi att alla meddelanden ska gå iväg direkt för att det inte ska bli lagg i programmet. Det går att åstadkomma med Winsock-funktionen setsockopt. Det går även bra att använda UDP. UPPGIFT 6 FÖR BETYG 4 ELLER 5 NÄTVERKSSPEL Gör ett nätverksspel för flera deltagare. Spelarna ska kunna sitta vid olika datorer och spela med varandra. Ifall du löser den här uppgiften får laborationsdelen av kursen betyg 4 eller betyg 5. Vilket betyg det blir beror på hur omfattande jag bedömer att spelet är. Läs kommentaren om Winsock i uppgiften för betyg 3. Det som står där gäller förstås även här. 10