Forum www.pwszinf.fora.pl Strona Główna
RejestracjaSzukajFAQUżytkownicyGrupyGalerieZaloguj
PROGRAM SYMULACYJNY
Idź do strony 1, 2  Następny
 
Odpowiedz do tematu    Forum www.pwszinf.fora.pl Strona Główna » Systemy operacyjne GK/SSK / Laboratorium z P. Rybą Zobacz poprzedni temat
Zobacz następny temat
PROGRAM SYMULACYJNY
Autor Wiadomość
maciekd6
stalszy bywalec



Dołączył: 04 Lut 2008
Posty: 84
Przeczytał: 0 tematów

Ostrzeżeń: 1/5

Post PROGRAM SYMULACYJNY
WIE KTOS O CO KAMAN Z TYM PROGRAMEM NA PDFie Z OD RYBY JEST NAPISANE ZE MAMY ZROBIC ALGORYTM PREZENTOWANY NA WYKŁADZIE ALE NAJLEPSZE JEST TO NIE MA WYKLADU ?? NO CHYBA ZE KTOS JE MA TO NIECH WRZUCI NA RAPIDA


Post został pochwalony 0 razy
Nie 10:48, 17 Maj 2009 Zobacz profil autora
Gość







Post
jak nie ma jak jest...już na forum się o tym mówiło, poszukać wystarczy: [link widoczny dla zalogowanych]
ściągnij sobie "Folie z „Systemów operacyjnych“"
Nie 10:53, 17 Maj 2009
maciekd6
stalszy bywalec



Dołączył: 04 Lut 2008
Posty: 84
Przeczytał: 0 tematów

Ostrzeżeń: 1/5

Post
dzieki Smile tylko jakie tam jest haslo ??


Post został pochwalony 0 razy

Ostatnio zmieniony przez maciekd6 dnia Nie 13:59, 17 Maj 2009, w całości zmieniany 1 raz
Nie 13:58, 17 Maj 2009 Zobacz profil autora
Gość







Post
plomyk napisał:
On mówił, że zamieści je na swojej stronie

[link widoczny dla zalogowanych]
hasło: systemylato

ale jak do tej poty to na tej stronie nic ciekawego nie ma...

Nie 14:32, 17 Maj 2009
Kac11zuS
Wartościowy Pisarz.2.0



Dołączył: 20 Paź 2007
Posty: 354
Przeczytał: 0 tematów

Pomógł: 3 razy
Ostrzeżeń: 0/5

Post
oddał już ktoś ten program symulacyjny? Razz mógłby się nim pochwalić tutaj Very Happy ładnie prosimy Very Happy


Post został pochwalony 0 razy
Śro 12:42, 27 Maj 2009 Zobacz profil autora
nataq
stały bywalec



Dołączył: 01 Wrz 2008
Posty: 68
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Legnica

Post
ten program symulacyjny jest na jutro czy mozna go jeszcze za tydzien oddac?


Post został pochwalony 0 razy
Śro 18:17, 27 Maj 2009 Zobacz profil autora
maciekd6
stalszy bywalec



Dołączył: 04 Lut 2008
Posty: 84
Przeczytał: 0 tematów

Ostrzeżeń: 1/5

Post
za tydzien mozna ponac


Post został pochwalony 0 razy
Śro 21:49, 27 Maj 2009 Zobacz profil autora
chazzi
stały bywalec



Dołączył: 21 Paź 2008
Posty: 52
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

Post
Za tydzień ponoć nie ma zajęć...


Post został pochwalony 0 razy
Śro 22:04, 27 Maj 2009 Zobacz profil autora
Gość







Post
Czy ma ktoś program symulacyjny, którym chciałby się podzielić z dziewczynką
z zaćmieniem mózgu*

Jeśli znajdzie się chętny/a będę wdzięczna Very Happy bo siedzę i siedzę i nic... :/
Śro 20:35, 03 Cze 2009
Gość







Post
Wersja "HardCore" dla tych co będą potrafili ją wytłumaczyć . Wysoko oceniona : P
[link widoczny dla zalogowanych]


trzeba stworzyć plik : test.txt

o zawartości :

proces1 1
proces2 2
proces3 5
proces4 4
(nazwa procesu , priorytet )

Łatwa metoda odczytu z pliku i zapisu do pliku .

Btw Zmieniajcie:P


Ostatnio zmieniony przez Gość dnia Śro 21:03, 03 Cze 2009, w całości zmieniany 3 razy
Śro 20:54, 03 Cze 2009
beny
BeNy_BuDoWnIcZy.2.0



Dołączył: 06 Sty 2008
Posty: 551
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: z Pizdochlewic

Post
MichaŁ skopiował kawałek kodu źródłowego windowsa Very HappyVery Happy


Post został pochwalony 0 razy
Śro 20:58, 03 Cze 2009 Zobacz profil autora
Gość







Post
OMG... jak na to patrzę, to mi się pogłębia zaćmienie :> Aleś wykminił Smile
Dzięki - będę się przez to przegryzała...
Śro 21:04, 03 Cze 2009
Gość







Post
wykminka algorytmu, jeśli znasz zasadę działania nie jest trudna Razz
weźmy np. algorytm SJF bez wywłaszczania. Działa on na zasadzie, że z puli dostępnych procesów wybiera i przekazuje do wykonania te z najkrótszym czasem zajętości procesora, czy też jak kto woli - najkrótszym czasem wykonania.
Załóżmy, że mamy 5 procesów (kolejno w linii: nr_procesu, czas_przyjscia, czas_wykonania):
1 15 10
2 10 9
3 20 13
4 5 5
5 7 25
Definiujesz zmienną, która odpowiada za zliczanie wykonanych procesów. W pętli, którą wykonujesz do momentu, aż ten licznik wykonanych procesów będzie o jeden mniejszy od liczby procesów (zakładam, że zmienną inicjalizujemy zerem, chyba że jedynką, to wtedy licznik musi być równy ilości procesów).
Można użyć zegara, albo go zasymulować (ja wolę to pierwsze rozwiązanie Razz ), przyjmijmy, że tu będziemy jedynie symulować zegar, a więc naszą jednostką niech będą sekundy, czyli po każdym pełnym obiegu pętli zwiększasz zmienną odpowiedzialną za sekundy o jeden.
W pętli najpierw sprawdzasz, czy jakiś proces ma czas przyjścia równy z aktualnym czasem, jeśli tak, to zaczynasz wykonanie procesu, zmniejszając czas wykonania o jeden przy każdym pełnym obiegu (czyli o sekundę), po wykonaniu procesu sprawdzasz, czy jakiś proces ma czas przyjścia mniejszy, lub równy aktualnemu (może być mniejszy, bo proces mógł przyjść w momencie wykonywania innego, a więc musiał czekać), jeżeli jest tylko jeden taki, to go wykonujesz, jeżeli więcej, to możesz sobie np. stworzyć tymczasową tablicę i do niej wpisywać te procesy, później z niej wybierasz ten z najkrótszym czasem wykonania i on będzie teraz bieżącym procesem.
Zakończenie algorytmu możesz też zakończyć sprawdzając, czy wszystkie procesy mają czas_wykonanie równy 0.
Powtarzasz to, aż nie zostaną wykonane wszystkie procesy. Najlepiej jest użyć do tego pętli do-while, albo while, jeśli porównujesz czas_wykonania do zera. A w niej do przechodzenia po tablicy i wyszukiwania procesów najlepiej jest użyć pętli for.
Trzeba też zrobić odpowiednie statystyki, a więc trzeba by było zrobić tablicę pomocniczą, do której skopiuje się wszystkie parametry procesów, bo one są zmieniane (np. czasy wykonania zmniejszane).
Następnie zgodnie z kolejnością wykonywania procesów, którą też musisz gdzieś zapisać, tworzysz statystyki, np. czas oczekiwania procesu na wykonanie (od czasu rozpoczęcia wykonywania odejmujesz czas przyjścia procesu), czy też średni czas oczekiwania.
Jak znajdę trochę czasu, to napisze jakiś kodzik mały, ale dzisiaj to na pewno nie Razz

Dałby Ci nawet moje kody, ale one są wplecione w wizualizację, co pogłębia ich skomplikowanie Razz no chyba że masz czas się przegryzać przez moje kody ;] aczkolwiek musiałabyś napisać coś własnego, a nie "kopiuj-wklej" Razz
Już widziałem w takich projektach jakieś zawiłe kody, implementację wielu klas, typu Process, Scheduler, Burn itepe, ale po co sobie życie komplikować, skoro można to samo zawrzeć zamiast w, załóżmy 100 linijkach, to w 20-30? A wynik będzie taki sam...Natomiast sam algorytm prostszy do odczytania i zrozumienia.


Ostatnio zmieniony przez Gość dnia Śro 21:23, 03 Cze 2009, w całości zmieniany 3 razy
Śro 21:09, 03 Cze 2009
Gość







Post
mały schemat jak to w drugim można zrobić :


1.Wczytujemy dane z pliku

2.Nadajemy im priorytet według czasu np tablica_procesow[7].priorytet = 1000 - czas;

3.sortujemy według priorytetu ( od największego do najmniejszego ) .

4.wczytujemy wszystkie procesy po kolei do jakiejś pętli która wykonuje tyle razy ile priorytet ma czasu .

5.w tej pętli robimy postarzanie , czyli jeśli jakiś proces czeka w kolejce dłużej niż określona jednostka czasu to zwiększamy mu priorytet . Dodatkowo w pętli robimy statystyki czyli np dopisujemy do jakiejs zmiennej łączny czas oczekiwania procesow np double lacznyczas=lacznyczas+proceswlasniewczytany.Oczywiscie w petli zwiekszamy ilosc czasu jaki procesy oczekuje na wykonanie ( u mnie zmienna oczekiwanie ) .

u mnie to wygląda tak :

if(itr->oczekiwanie>5)
itr->priorytet+=1;

6. po zwiekszeniu priorytetu znowu musimy posortowac

7. w pętli tez mozna zrobic dodawanie nowych procesow ( nie wiem czy wymagane w drugim ).


8. zapisujemy dane statystyczne do pliku .



moj priorytet mial takie pola :

string nazwa ;
int czas ;
int oczekiwanie ;
int priorytet ;


Może komuś coś ułatwi .


sorx ry5i3kszczur nie widzialem ze napisales przed mna .


Ostatnio zmieniony przez Gość dnia Śro 21:34, 03 Cze 2009, w całości zmieniany 5 razy
Śro 21:22, 03 Cze 2009
Gość







Post
spoko ;] i tak zrobiłeś rozkminkę innego algorytmu ;] ja mam SJF, Ty masz priorytetowy ;] tak więc podwójna korzyść.
Śro 21:24, 03 Cze 2009
Wyświetl posty z ostatnich:    
Odpowiedz do tematu    Forum www.pwszinf.fora.pl Strona Główna » Systemy operacyjne GK/SSK / Laboratorium z P. Rybą Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
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
Design by Freestyle XL / Music Lyrics.
Regulamin