Kompiuterių tinklai: pratybos

Kompiuterių tinklai: pratybos
2009/10 m.m. rudens semestras
Programų sistemos, 3 kursas, 1 grupė, 1 pogrupis iš 2

* Naujienos

  • Papildyti reikalavimai antrąjai užduočiai bei susiję naudingi šaltiniai. (2009-11-18)
  • Pratybos vyks trečiadieniais, nuo 14 val., ITC 8 aud. (2009-09-24)
  • Paskelbti reikalavimai pratybų užduotims bei pogrupio studentų sąrašas. (2009-09-24)
  • Pasirinkti uždavinį galima iš pateikiamų pavyzdžių, tačiau pageidautina ir sveikintina, kad studentas uždavinį sugalvotų pats. (2009-09-14)
  • Jeigu negalite atvykti į pratybas, suderinti uždavinį galima ir el. paštu, bet tuo atveju būtina išsamiai aprašyti, kokios bus klientinės ir serverinės dalies funkcijos. (2009-09-14)
  • Į praeitas (2009-09-07) pratybas neatvyko nei vienas studentas. Primenu, kad pasirinkti uždavinį (kuris galios visoms trims programoms) reikia iki 2009-09-21 (arba tos savaitės pratybų, jeigu jų laikas bus perkeltas). (2009-09-14)

* Reikalavimai pratybų užduotims:

  • Antroje užduotyje galima naudoti tiek tradicinį (java.io), tiek asinchroninį (java.nio) modelį.
  • Pirmą užduotį pageidautina programuoti C programavimo kalba, tačiau galima ir C++.
  • Pirma užduotis (C-C) turi kompiliuotis bei veikti uosio serveryje, kompiliuojama komanda make.
  • Pirmai užduočiai reikia paruošti Makefile failą (žr. pavyzdį).
  • Jeigu pirmą programą kuriate ne UNIX aplinkoje, išeities kodą reikia padaryti portabilų, t.y. tokį, kuris kompiliuotųsi ir veiktų tiek Windows, tiek UNIX aplinkose (žr. skirtumus).
  • Serverinėje dalyje galima aptarnauti klientus galima pasirinktinai:
    • naudoti multipleksorius (select() arba poll());
    • kiekvienam naujam klientui kurti procesą arba giją (jeigu panaudosite gijas, bus nemažas privalumas).
  • Nuo pasirinkto uždavinio sudėtingumo ir jo realizavimo priklauso maksimalus galimas pirmos ir antros užduoties įvertinimas (trečia užduotis vertinama nepriklausomai, iki 1 balo):
    • client-server modelis be multiklientiškumo – iki 70% (1 balas);
    • client-server modelis su multiklientiškumu – iki 80% (1.2 balo);
    • peer-to-peer, kai serveris yra tik nematomas tarpininkas – iki 90% (1.35 balo);
    • peer-to-peer, kai serveris atlieka papildomas funkcijas – iki 100% (1.5 balo).
  • client-server modelio atveju, klientas bendrauja su serveriu, o peer-to-peer atveju klientai bendrauja tarpusavyje, serveriui atliekant tarpininko vaidmenį. Kitaip tariant, esant laivų mūšio ar šaškių uždaviniui, client-server atveju klientas žais su serveriu, o peer-to-peer atveju klientai žais tarpusavyje. Kai kuriais atvejais (pavyzdžiui, turint pokalbių kambario uždavinį), serveris atlieka ne tik nematomo tarpininko, o ir kai kurias uždavinio funkcijas (išsiunčia pranešimą visiems pokalbio dalyviams, teikia informaciją vartotojams apie kanalo informaciją ir pan.).
  • Serveris turi aptikti nenumatytą klientų atsijungimą, atlaisvinti resursus ir tęsti darbą.

* Naudingi šaltiniai:

* Kurso puslapis (dėst. Viktor Kiško).
*
Pratybų tvarkaraštis
* Studentų sąrašas ir užduočių vertinimai
* Realizacijos pavyzdys (pokalbių klientas ir serveris), jos aprašymas ir demonstracija.

Klausimai ir atsakymai: dziugas \||/ baltrunas.lt

http://www.mif.vu.lt/~menulis/chat/Makefile