Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. Dobra, to lecimy.
  2. W AppSMO powołujemy obydwa SMO:
  3. - jedno SMO, które jest SMO ograniczonym
  4. - drugie SMO, nieskończone
  5.  
  6. Kazde SMO jest wyposażone w gniazda: SMO ma 2 gniazda, a SMOnieskonczone ma 1 gniazdo.
  7.  
  8. SMO.java:
  9. w tym smo jest obsluga kolejki priorytetowej.
  10. tutaj tez są metody, które sprawdzają, czy któreś z gniazd (a są ich 2) jest aktualnie wolne.
  11. - tutaj obslugujemy kolejke, czyli dodajemy zgloszenia do kolejki, usuwamy itd
  12.  
  13. SMO_nieskonczone.java:
  14. dziala na takiej samej zasadzie jak SMO, tylko ze tutaj mamy jedno gniazdo i tutaj znajduje sie kolejka nieograniczona;
  15.  
  16. W otoczeniu powoływane jest zdarzenie. W klasie Zglaszaj.java co losowy czas tworzone są nowe zgłoszenia. I TERAZ JAZDA:
  17. - Tworzone jest nowe zgłoszenie co losowy czas (klasa Zglaszaj)
  18. - Utworzone zgloszenie wybiera (losuje) do ktorej kolejki chce isc (czy do SMO czy do SMO_nieskonczone)
  19. - Jesli zgloszenie wybierze kolejke priorytetowa SMO, to sprawdzamy warunki - czy kolejka nie jest pelna, jesli nie: to dodajemy zgloszenie, jesli jest pelna - to zgloszenie przechodzi do drugiego SMO;
  20. - caly czas jestesmy w Zglaszaj.java -> tutaj dalej, po wybraniu kolejki sprawdzamy, czy w tej kolejce jakies gniazdo jest wolne. jesli jest : rozpoczynamy obsługę zgłoszenia.
  21.  
  22. - obsługa zgłoszenia jest w klasie rozpocznij_obsluge:
  23. - rozpoczyna sie obsluga: kolejno
  24. 1) nastepuje zablokowanie wolnego gniazda, aby inne zgloszenia nie mialy do niego dostepu
  25. 2) zgloszenie jest pobierane i nastepuje przerwanie jego niecierpliwosci (ktora zostala wczesniej ustawiona w przeszlosci)
  26. 3) generuje sie czas, w jakim zgloszenie zostanie obsluzone
  27. 4) konczy sie obsluga zgloszenia o zadanym id w konkretnym gniezdzie -> gniazdo jest zwalnianie (dalej w klasie ZakonczObsluge)
  28.  
  29. Musisz pamiętac, że gdy na poczatku co losowy czas tworzyło się zgłoszenie, to od razu razem z tym zgłoszeniem tworzony był początek i koniec niecierpliwienia.
  30.  
  31. jesli skonczymy obsluge zgloszenia w gniezdzie to:
  32. - po przejsciu przez RozpocznijObsluge, nastepuje:
  33. 1) odblokowanie zajetego wczesniej przez zgloszenie gniazda
  34. 2) sprawdzenie, czy zgloszenie chce sie blakac badz tez nie - boolean
  35. 3) jesli chce sie blakac: przechodzimy do StartBlakania (na zasadzie niecierpliwienia ustawiamy delay)
  36. 4) jesli nie chce sie blakac: wychodzi calkowicie
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement