Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

kartkowka u mgr Kality

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 semestr - Systemy Operacyjne
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pią 11:38, 31 Mar 2006    Temat postu: kartkowka u mgr Kality

Prosiłbym osoby które już takową kartkówkę pisały, o to by podzieliły się treścią zadań oraz swoimi przykładowymi rozwiązaniami...

Z góry Wielkie Dzięki...
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
klakier
pijak



Dołączył: 08 Mar 2006
Posty: 81
Przeczytał: 0 tematów


PostWysłany: Pią 23:30, 31 Mar 2006    Temat postu: Re: kartkowka u mgr Kality

Makros napisał:
Prosiłbym osoby które już takową kartkówkę pisały, o to by podzieliły się treścią zadań oraz swoimi przykładowymi rozwiązaniami...

Z góry Wielkie Dzięki...


i moze takie objasnienie ta szybkiego o co chodzi w tcy semaforach :) itp
musze sobie jakąs kisiazke zallatwic a do tego czasu moze ktos to objasni
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Sob 0:06, 01 Kwi 2006    Temat postu:

Do zrobienia dwa zadania, pierwsze z semaforów drugie z Ady.

Pierwsze zadanie to semafory. Były 3 wątki, w każdym wywoływana była inna procedura, tj. w watku ThreadA procedura A, w watku ThreadB procedura B, w watku ThreadC procedura C. I trzeba było tak zadeklarować i wstawić semafory (binarne lub liczbowe - jak się chce) żeby był spełniony warunek trójkąta dla ilości wywołań tych procedur. Mówiąc po polsku: żeby A było wykonane nie więcej razy niż w sumie B+C+1, B żeby nie było wykonane więcej razy niż w sumie A+C+1, a C w sumie nie więcej raz niż A+B+1.

Ja zrobiłem to deklarując 3 semafory liczbowe: SA, SB, SC - z początkowymi wartościami 1, tj. każdy z nich ma na początku jedno wolne miejsce. I w każdym wątku na początku zajmujemy miejsce dla danego semafora, wywołujemy daną procedurę i zwalniamy 2 pozostałe semafory, tj.

ThreadA {
SA.S();
A;
SB.V();
SC.V();
}

analogicznie ThreadB, ThreadC.

Ale można to było też zrobić dużo prościej, cyklicznie na semaforach binarnych. Wtedy ilości wywołań poszczególnych procedur byłyby równe z dokładnością do 1.


Drugie zadanie (Ada) to trochę więcej pisania.

Ogólnie była to wariacja na temat problemu producenci - konsumenci.
Było 3 producentów, każdy robił cegłę o masie odpowiednio 1, 2, 3 i kładł na taśmę. Taśma miała określoną pojemność ilościową i masową, tj. nie mogło wejść za dużo cegieł i nie mogły być one w sumie za ciężkie. I była ciężarówka która odbierała cegły (konsument) - też miała określoną pojemność (ale tylko masową). Pojemność nie mogła być przekroczona. Cegły ładujemy do ciężarówki w takiej kolejności w jakiej pojawiły się na taśmie. W momencie, gdy cegła przekroczy limit pojemności ciężarówki, ciężarówka jej nie zabiera - cegła zostaje na taśmie, a ciężarówka odjeżdża i w jej miejsce pojawia się nowa.

W zasadzie trzeba było napisać 4 taski: 3 analogiczne dla producentów: przy pomocy select while sprawdzamy, czy możemy położyć cegłę (pojemność taśmy) - jeśli tak to robimy accept nazwa_procedury do
.
. // tutaj zwiększamy odpowiednie zmienne i dodajemy cegłę do kolejki
.
end nazwa procedury

i 1 task dla konsumenta (ciężarówki) - dostępny przez while tylko jeśli taśma jest niepusta - który sprawdza czy ciężarówka się nie przepełni, jeśli tak to zwaca 0, jeśli nie to zdejmuje cegłę z taśmy, zmienia odpowiednie zmienne i zwraca masę cegły.


Generalnie też możecie się spodziewać, że z semaforami będziecie mieli kilka wątków z procedurami i jakimś warunkiem na ilość wykonań poszczególnych procedur w poszczególnych wątkach.

A z Ady też się można spodziewać jakichś problemów producent - konsumet, czytalnicy - pisarze czy co tam jeszcze było na zajęciach. Znajomość select while niezbędna.

To chyba tyle.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
exeman
Mistrz grilla



Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów

Skąd: znienacka

PostWysłany: Sob 0:24, 01 Kwi 2006    Temat postu:

Cholera, a co to ADA, jak to sie w tym pisze? :O
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dzendras
Germański oprawca



Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów

Skąd: Chorzów

PostWysłany: Sob 14:55, 01 Kwi 2006    Temat postu:

Składnią przypomina upośledzonego Pascala...
Ale fakt faktem, że wielowątkowe aplikacje tworzy się w nim szybciutko.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Sob 14:58, 01 Kwi 2006    Temat postu:

A dlaczego zakładasz, że w Pascalu nie tworzy się ich szybciutko? ;p
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Sob 20:17, 01 Kwi 2006    Temat postu:

exeman napisał:
Cholera, a co to ADA, jak to sie w tym pisze? :O


Wszystko co może być potrzebne z Ady jest na stronie dr Kality, w jego notatkach do ćwiczeń. Poza tym, w zasadzie poza konstrukcją select, reszta może być w pseudokodzie.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Fen
zielony żul



Dołączył: 22 Lut 2006
Posty: 946
Przeczytał: 0 tematów

Skąd: Bochnia

PostWysłany: Nie 11:06, 02 Kwi 2006    Temat postu:

jeśli chodzi o Adę to rzeczywiście jest to bardzo fajny język, ale nie ma za wiele czasu aby się nauczyć w nim cokolwiek robić ;/ Mam nadzieję, że uda mi sie coś tego języka nauczyć do środy na kartkówkę :)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Wto 15:36, 04 Kwi 2006    Temat postu:

Madras napisał:
A dlaczego zakładasz, że w Pascalu nie tworzy się ich szybciutko? ;p


A ja tam nie widze takiego założenia... To, że w Adzie pisze się je szybko, nie oznacza, że w innym języku programowania pisze się to powoli i źle...
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
::Reksio::
pijak



Dołączył: 01 Kwi 2006
Posty: 174
Przeczytał: 0 tematów


PostWysłany: Śro 18:57, 05 Kwi 2006    Temat postu:

..A teraz coś dla wszystkich, którzy szukają złotego środka na naszą kochaną ADĘ.. :D Znalazłem przypadkiem, ale tak to już jest, że przypadki chodzą po ludziach..:] Gorąco zachęcam do lektury..;) W końcu wszyscy dzielimy te same troski.. (..Czyżby objaw współbieżności..?:D )

[link widoczny dla zalogowanych]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Śro 19:02, 05 Kwi 2006    Temat postu:

Rogal napisał:
Ja zrobiłem to deklarując 3 semafory liczbowe: SA, SB, SC - z początkowymi wartościami 1, tj. każdy z nich ma na początku jedno wolne miejsce.


A czy to nie działa jak semafor binarny...?! W końcu tylko jeden wątek może wejść...
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
::Reksio::
pijak



Dołączył: 01 Kwi 2006
Posty: 174
Przeczytał: 0 tematów


PostWysłany: Śro 19:04, 05 Kwi 2006    Temat postu:

..Nawiasem mówiąc (czego nie zauważyłem wcześniej..:P), w linku który umieściłem na forum jest zawarty inny bardzo ciekawy link.. OBSZERNY PODRĘCZNIK DO ADY W CAŁOŚCI PO POLSKU!..:D

[link widoczny dla zalogowanych]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Śro 20:10, 05 Kwi 2006    Temat postu:

Rogal napisał:
Ja zrobiłem to deklarując 3 semafory liczbowe: SA, SB, SC - z początkowymi wartościami 1, tj. każdy z nich ma na początku jedno wolne miejsce. I w każdym wątku na początku zajmujemy miejsce dla danego semafora, wywołujemy daną procedurę i zwalniamy 2 pozostałe semafory, tj.

ThreadA {
SA.S();
A;
SB.V();
SC.V();
}

analogicznie ThreadB, ThreadC.


Nie chce martwić... ale czy to nie jest źle..?!

Popatrzmy na to tak... Istnieje szansa, że wątki zachowają się w ten sposób...

Wchodzimy do Thread A (zamykamy SA, robimy A, otwieramy SB,SC), teraz watek idzie do Thread B (zamyka SB, robi B, otwiera SA,SC), no i teraz znów może iść do Thread A , a potem znów do Thread B... i tak w kolko... w ten sposób C nie wykona się ani razu... :?

Chyba, że mój tok rozumowania jest zły...
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
hansu
Nieomylny Admin



Dołączył: 17 Lis 2005
Posty: 1990
Przeczytał: 0 tematów

Skąd: przychodzimy? Czym jestesmy? Dokad zmierzamy?

PostWysłany: Śro 21:51, 05 Kwi 2006    Temat postu:

Nie jest zle. Bo wtedy nA i nB beda sie roznic o co najwyzej 1 a nC bedzie 0. Czyli beda spelniac ten warunek "prawie" trojkata ;)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Śro 22:29, 05 Kwi 2006    Temat postu:

hansu napisał:
Nie jest zle. Bo wtedy nA i nB beda sie roznic o co najwyzej 1 a nC bedzie 0. Czyli beda spelniac ten warunek "prawie" trojkata ;)


Aaaa.... Bo to jest warunek "prawie" trójkąta... a nie normalnie po Bożemu trójkąta.... ok... teraz wszystko się zgadza...
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Śro 23:29, 05 Kwi 2006    Temat postu:

Po bożemu to by się trójkąta nie dało, bo coś się musi najpierw wykonać (np. A) - i po tym wykonaniu masz nA=1, nB=nC=0 - nie ma trójkąta.

Więc ten warunek jest z dokładnością do 1.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Czw 15:06, 06 Kwi 2006    Temat postu:

A co było w innych grupach... Słyszałem coś o pisarzach i czytelnikach oraz o tym że n wątków ma najpierw wykonać zadanie A, a potem zadanie B... Mógłby to ktoś z Was bardziej skonkretyzować? Jak te zadania wyglądały? i najlepiej jak należało je rozwiązać... :)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Skrobocik
[SKROBORANGA]



Dołączył: 29 Lis 2005
Posty: 2958
Przeczytał: 0 tematów

Skąd: Skarżysko , Kraków

PostWysłany: Czw 18:02, 06 Kwi 2006    Temat postu:

Ja słyszałem, że te procesy to były takie kombajny, co każdy miał w sobie zadanie A i zadanie B. Problem polegał na tym, że najpierw musiały zostać wykonane wszystkie zadania A, a dopiero potem B. A co do tych pisarzy, to podobno coś z semaforkami, ale nic konkretnego nie kojarzę
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Spectro
Mistrz grilla



Dołączył: 09 Mar 2006
Posty: 2306
Przeczytał: 0 tematów

Skąd: Kurdwanów

PostWysłany: Czw 20:47, 06 Kwi 2006    Temat postu:

U Moczurada było o czytelnikach i pisarzach (a także o i-żercach :P ) w kontekście ekranów, nie semaforów.


@oinopion: Ekran, monitor jeden pies :P . Przynajmniej dla takiego laika w tych sprawach jakim jestem ja (przynajnmiej dopóki nie zacznę się uczyć na kolosa).


Ostatnio zmieniony przez Spectro dnia Czw 21:39, 06 Kwi 2006, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
oinopion
żul



Dołączył: 28 Lis 2005
Posty: 858
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Czw 21:11, 06 Kwi 2006    Temat postu:

Ekranów? Chyba monitorów? Sekcji krytycznych? Ale ekranów?
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 semestr - Systemy Operacyjne Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin