HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

A hatodik (hetedik) labor

2011.03.18. 13:02 nb

Az ünnepek miatt maradtak el laborok így már nem egyértelmű a számozásuk...

Laborvezetőknek

Az első öt előadás laborkártyái közül válogatva kérdezzük végig a hallgatóságot!

Hallgatóknak

Sosem árt előre készülni a laborra, nálam szereztek így kisbajnokság trófeát. Ha többen is elkészítik, akkor holtversenyben mindannyian megkapják a "trófeákat".

Tematika

Az alábbi témák legtöbbjét próbáljuk lefedni a "6/7" gyakorlaton:

  • izzítsuk be a "forkos, socketes, multiplexelt, szemaforos, osztott memóriás" állatorvosi szerverünket, majd beszéljük meg a szerver forrását!
  • Beszéljük meg a kliens forrását és módosítsuk úgy, hogy párhuzamosan engedje rá kéréseit a szerverre, páldául így:
    int
    main (int argc, char *argv[])
    {
        int gyermekem_pid;
        int statusz;
    
        for (int i=0; i<4; ++i)
            if ((gyermekem_pid = fork()) == 0)
            {
                kliens(argv[1][0]);
            }
            else if (gyermekem_pid > 0)
            {
    	    kliens(argv[1][0]);
                wait(&statusz);
            }
            else
            {
                exit(-1);
            }
        return 0;
    
        exit (EXIT_SUCCESS);
    }
    
  • Hány klienst enged a szerverre ez az új main?
  • Mi történik, ha a zombi_elharito-ban kikommenteled a while (wait (NULL) > 0) várakozást?
  • Izzítsuk be az svn-ből az elsoQt könyvtár példáit (Mandelbrot, életjáték, genom monitor, arecibói üzenet)
  • Oldjunk meg Qt-s feladatokat: a fenti 4 példába dolgozzunk be billentyű vagy egérkezelést

BN laborján

  • Módosítsd a szervert, hogy ne csak a localhostról lehessen elérni (szerver.sin_addr.s_addr = htonl(INADDR_ANY) PP 129)
  • Vedd ki a szemaforos védelmet, sikerül elrontani a 42-t?   Próbálkozz DOS jellegű támadással is a szerverre távolról, s a localhostról is... ha nagyon nem akar elromlani a 42, akkor alakítsunk a kódon (lásd lent a jól elkülönített kiolvasás/visszaírást), ha kell vegyünk be egy a valódi kiszolgálást szimuláló sleep-et:                 int sv = *osztott_memoria_terulet;

        ++*(osztott_memoria_terulet+1);

        if (buffer2[0] == '+')
            *osztott_memoria_terulet = sv+1;
        else
            *osztott_memoria_terulet = sv-1
  • Szereld át a Mandelbrot rajzolót, hogy egérrel lehessen nagyítani, N billenytűre pedig az iterációs számot duplázva számoljon:

 

Szólj hozzá!

Címkék: select tcp/ip fork mandelbrot socket qt szemafor osztott memória multiplexelés

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr932755082

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása