archive-rs.com » RS » D » DMI.RS

Total: 421

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • Laboratorija
    jednog video projektora Oktobra 2002 godine najve a i najstarija računarska laboratorija na Departmanu i fakultetu i jedna od najstarijih na Univerzitetu dobila je ime po Aleksandru Računarska laboratorija Aleksandar Sa š a Popovi koji je najve i deo svog radnog vremena proveo u njoj Laborat orija je otvorena 30 d ecembr a 2002 godine Pre otvaranja d r Ljiljana Popovi O tvaranje Prof Dr Pavle Tomi dekan Fakulteta u

    Original URL path: http://perun.dmi.rs/old/popovic_s/laboratory/index.html (2016-02-18)
    Open archived version from archive

  • New Page 1
    korisnika uz periodične preglede i diskusije trenutnih verzija specifikacija Način polaganja ispit se polaže izradom i odbranom potpune specifikacije zahteva na osnovu korisnikovih zahteva po preporukama IEEE Software Requirements Specification Naslov teme Data mining Predava č Mirjana Ivanovi i Miloš Radovanovi Ishod učenja očekuje se da uspešan student na kraju seminara bude u mogu nosti da uz pomo jednog softverskog alata samostalno pripremi i analizira podatke iz proizvoljnog domena pomo u tehnika mašinskog učenja i donese netrivijale zaključke kao i da bude sposoban da iste tehnike primeni u implementaciji praktičnih sistema Način rada posle teoretskog uvoda u algoritme mašinskog učenja kao što su klasifikacija i klastering i tehnike pripreme podataka studenti e biti upoznati sa Weka okruženjem bibliotekom Java klasa Weka sistem omogu ava eksperimentalnu analizu podataka i algoritama mašinskog učenja vizelizaciju rezultata kao i koriš enje tih tehnika u implementaciji praktičnih sistema npr zaštita od SPAM a dijagnostika bolesti itd U zavisnosti od složenosti studenti zadatke mogu obavljati u timovima čiji e članovi adekvatno podeliti poslove oko pripreme podataka analize i ili implementacije Način polaganja ispit se polaže izvo enjem eksperimentalne analize podataka pomo u tehnika mašinskog učenja u Weka okruženju ili implementacijom sistema koji te tehnike koristi u praksi uz pisanje propratnog teksta o zaključcima i važnim aspektima rešenja Naslov teme Optimizacija performansi poslovnih aplikacija Predava č Vidan Markovi DDOR Novi Sad Sadržaj Performanse aplikacija u Web okruženju Dimenzionisanje Web servera Sigurnost podataka u Web okruženju Optimizacija aplikacija koriš enjem patterna Aplikativni serveri značaj vrste i primeri realizacije Optimizacija performansi baza podataka Uticaj WAN a na performanse aplikacija i optimizacija aplikacija za rad u WAN okruženju Izborni seminar II Naslov teme NET tehnologije Predava č or e Herceg Sadržaj NET enterprise serveri NET programski jezici višeslojne aplikacije Web servisi Naslov teme Elektronsko učenje Predava č Zoran Budimac Ishod učenja Očekuje se da uspešan student na kraju seminara bude u mogu nosti da razvije i postavi na sajt elektronski kurs koji e poštovati osnovne metodičke principe i biti zasnovan na postoje em materijalu uz pomo jednog softverskog orudja Način rada posle teoretskog uvoda u principe kreiranja elektronskih lekcija i upoznavanja načina rada sa odabranim softverskim orudjem studenti e dobiti materijal na osnovu koga treba da naprave elektronske lekcije Tokom rada i naknadne diskusije bi e postepeno upu ivani oko osnovnih metodičkih sadržaja koje lekacije treba da poseduju Na ovaj način kombinovanjem teorije i prakse studenti e ste i dobar uvid u probleme i izazove elektronskog učenja te ste i i praktična iskustva Način polaganja ispit se polaže izradom i postavljanjem elektronske lekcije na sajt i pisanjem propratnog teksta o unapred dogovorenim aspektima rešenja Napomena Studenti koji su prethodnih godina slušali sličan izborni seminar nemaju pravo da se prijave na ovaj Naslov teme Inženjerstvo zahteva Predava č Zoran Budimac Ishod učenja očekuje se da uspešan student na kraju seminara bude u mogu nosti da demonstrira razumevanje osnovnih problema izazova i značaja specifikacije zahteva za softverski proizvod u praktičnom okruženju Način rada posle teoretskog uvoda u postoje u teoriju i praksu

    Original URL path: http://perun.dmi.rs/old/elective_seminars.html (2016-02-18)
    Open archived version from archive


  • 2 Pribojan Neboj a 3 Petkovic Boban 4 Nenin Bojan 5 Dukic Dragan 6 Suvajd ic Tanja 7 Miljkovic Aleksandar 8 Maletic Vladimir 9 Dobric Dragan 10 Stojakovic Kosta 11 Ivanov Ðorde 12 Jenei Arnold 13 Gvero Ru ica 14

    Original URL path: http://perun.dmi.rs/old/pesovic/teaching/spa.txt (2016-02-18)
    Open archived version from archive

  • Index of /old/rackovic/vi1
    Index of old rackovic vi1 Name Last modified Size Description Parent Directory 24 Oct 2005 10 22 4inLine zip 18 Oct 2006 10 33 196k

    Original URL path: http://perun.dmi.rs/old/rackovic/vi1/ (2016-02-18)
    Open archived version from archive

  • Operativni sistemi
    šišanje Analiza Na početku nema mušterije Init customers 0 waiting 0 Dolazi prva mušterija vidi da ima mesta waiting n zauzme jedno mesto za čekanje INC waiting pa javi da je stigla Up customers zatim čeka na berberina Down barber Berberin čeka mušteriju Down customers Kada se berberin probudi Up customers u proceduri Customer kaže mušteriji da pre e na stolicu za šišanje i smanji brojač za čekanje DEC waiting zatim kaže mušteriji dobro ja sam spreman Up barber mušterija to primi na znanje izlazi iz Down barber i počinje šišanje Ako imamo više mušterija koja čekaju izbor mušterije koja e pre i na stolicu za šišanje je posao operativnog sistema Ako Petar stigne u frizersku radnju i vidi da nema mesta za čekanje odustaje od nove frizure ELSE grana i ode ku i da gleda utakmicu Komunikacija teških procesa Kao što smo ve rekli problem komunikacije kod teških procesa je u tome što su oni me usobno odvojeni tj ne dele nijedan deo memorije Kako nemaju zajedničku memoriju operativni sistem mora obezbediti neke strukture i mehanizme za me uprocesnu komunikaciju interprocess communication Upravo zbog toga što teški procesi ne dele ništa zajedničko mehanizmi koje smo koristili za sinhronizaciju lakih procesa ne mogu se primeniti Nastaju novi problemi ako posmatramo mrežu računara gde je potrebno obezbediti komunikaciju izme u različitih teških procesa koji se možda izvršavaju na različitim platformama različiti procesori različiti operativni sistemi itd koji su možda fizički jako udaljeni Komunikacija izme u teških proces se odvija slanjem poruka message passing i pomo u operativnog sistema OS treba da vodi računa o slede im stvarima 1 Može do i do toga da se poruka negde izgubi u mreži da bismo izbegli greške koje na ovaj način mogu nastati mogli bismo usvojiti slede i dogovor primilac poruke je dužan da obavesti pošaljioca da je primio poruku Ako pošaljilac ne dobije potvrdu o prijemu poruke unutar odre enog vremenskog intervala može ponovo poslati svoju poruku 2 Može do i do toga da poruka stigne na odredište i primilac pošalje potvrdu ali se sada potvrda negde izgubi i ne stigne do pošaljioca unutar predvi enog vremeskog intervala Tada e pošaljioc misliti da poruka nije stigla do cilja i posla e ponovo istu poruku a primilac e dva puta dobiti istu poruku Zbog toga je dobro da se razne poruke mogu jasno identifikovati tj da primilac ima mogu nost da razlikuje novu poruku od duplikata To se može ostvariti npr pridruživanjem identifikacionih brojeva 3 Potrebno je obezbediti jedinstvenu identifikaciju izvora i cilja poruke treba jedinstveno identifikovati kome je poruka namenjena u mreži na kom računaru kom procesu 4 Problemi u preformansama kada gledamo dva teška procesa koja se izvršavaju na istom računaru a komuniciraju porukama Sinhronizacija i komunikacija lakih procesa pomo u semafora ili monitora je mnogo brža laki procesi dele zajednički deo memorije Komunikacija teških procesa se odvija pomo u operativnog sistema pošaljioc šalje poruku operativnom sistemu koji šalje dalje prema primiocu Posmatrajmo sada kako bismo mogli realizovati me uprocesnu komunikaciju zasnovanu na porukama poruke mogu biti direktno upu eni na jedinstvenu adresu nekog procesa svaki proces mora imati jedinstveni identifikacioni broj PID Process ID ovde nastaju komplikacije čak i pri komunikaciji izme u procesa koji se izvršavaju na istoj mašini pošto se PID ovi mogu menjati proces A komunucira sa procesom B korisnik ubije proces B i pokrene neke druge procese nakon nekog vremena ponovo pokrene proces B koji sada dobija drugi pid Drugi način je da se komunikacija odvija preko posebnih struktura podataka Postoje dve strukture koje se koriste mailbox poštansko sanduče i pipe cev Razlika izme u ove dve strukture je u tome što mailbox jasno razlikuje poruke zna veličinu svake poruke zna gde je granica izme u dve poruke a pipe ne vodi računa o granicama poruka primalac treba znati koliko bajtova treba da preuzme iz pipe a Mailbox se ponaša kao red opsluživanja tj kao FIFO First In First Out struktura prva poruka koja je stigla bi e prva izva ena Šta se dešava ako proces želi poslati neku poruku a nema više mesta u mailboxu ili ako želi da uzme poruku a mailbox je prazan Imamo dve mogu nosti 1 Proces se obaveštava da ne može poslati poruku odnosno da nije stigla ni jedna poruka pa je na procesu šta e raditi 2 Proces odlazi na spavanje blokira se dok ne bude mogao poslati poruku odnosno dok tražena poruka ne stigne Koliko su veliki mailboxovi odnosno pipeovi Kapacitet broj poruka koja mailbox može primiti odnosno veličina pipe a npr u bajtovima odre uju procesi Ako mailbox može primiti najviše do jednu poruku govorimo o randevuu rendevouz Za realizaciju komunikacije izme u teških procesa potrebno je obezbediti dve operacije SEND mailbox message šalje poruku message u poštansko sanduče mailbox RECEIVE mailbox message preuzima poruku iz poštanskog sandučeta mailbox u message Koriš enje poruka emo demonstrirati na problemu proizvo ača i potrošača CONST n 100 veličina mailboxa PROCEDURE Producer proizvo ač VAR item INTEGER m Message poruka BEGIN LOOP ProduceItem item proizvodi elemenat RECEIVE Consumer m uzmi čekaj na poruku od potrošača BuildMessage m item napravi poruku SEND Consumer m pošalji poruku potrošaču END END Producer PROCEDURE Consumer potrošač VAR item i INTEGER m Message poruka BEGIN MakeEmpty m FOR i 1 TO n DO na početku SEND Producer m šaljemo n praznih poruka proizvo aču END LOOP RECEIVE Producer m uzmi poruku od proizvo ača ExtractItem m item izvadi elemenat iz poruke MakeEmpty m SEND Producer m obavesti proizv da je poruka izva ena ConsumeItem item koristi elemenat END END Consumer Analiza potrošač i proizvo ač su se dogovorili da e potrošač poslati praznu poruku proizvo aču čim je spreman da primi novu poruku Na početku rada potrošač pošalje n praznih poruka da bi time obavestio potrošača da je spreman za baferisanje ukupno n poruka ima mailbox kapaciteta n Zatim čeka poruku od proizvo ača Ako proizvo ač krene prvi on e nakon što proizvede novi elemenat čekati na poruku od potrošača RECEIVE Consumer m Kada poruka stigne upakuje novi elemenat u poruku BuildMessage m item i šalje potrošaču SEND Consumer m Kada potrošač dobije poruku od proizvo ača vadi elemenat iz poruke ExtractItem m item i šalje praznu poruku nazad SEND Producer m da bi obavestio proizvo ača da je preuzeo poruku i da je spreman za slede u poruku Dispečer dispatcher scheduler Setimo se da se procesi mogu nalaziti u jednom od slede ih stanja 1 IZVRŠAVA SE RUNNING kada procesor izvršava kod datog procesa 2 SPREMAN JE READY proces je spreman za izvršavanje čeka da dobije procesora 3 BLOKIRAN JE BLOCKED proces čeka na rezultat neke akcije npr čeka neku IO operaciju Proces prelazi iz stanja IZVRŠAVANJA u stanje BLOKIRAN ako su mu za dalji rad potrebni neki resursi koji trenutačno nisu dostupni uzrok ovog prelaza je sam proces Iz stanja BLOKIRAN može pre i u stanje SPREMAN kada dobije sve potrebne resurse za rad i sada treba da čeka na procesora Iz stanja SPREMAN proces prelazi u stanje IZVRŠAVANJA kada se izabere iz liste spremnih procesa i procesor počinje izvršavati njegov kod Proces prelazi iz stanja IZVRŠAVANJA u stanje SPREMAN kada istekne dodeljeno procesorsko vreme Prelaze izme u stanja IZVRŠAVA SE i SPREMAN JE kontroliše deo operativnog sistema koji se zove DISPEČER ili ŠEDULER Znači dispečer je taj koji e odrediti koji proces dobija procesorsko vreme i koliko vremena dobija za izvršavanje Izvršavanje dispečera mora biti dovoljno brzo da se procesorsko vreme ne bi trošilo na njega upravo zbog toga mora biti deo jezgra operativnog sistema i uvek biti u operativnoj memoriji Do izvršavanja dispečera može do i u slede im situacijama 1 proces koji se trenutno izvršava završava svoj rad tada treba izabrati novi proces za izvršavanje 2 proces se odblokira probudi se 3 proces se blokira 4 procesu u stanju izvršavanja istekne dodeljeno procesorsko vreme Dodela procesorskog vremena nekom procesu tj slanje nekog procesa iz stanja izvršavanja u stanje spreman i izbor drugog procesa za izvršavanje se zove context switching menjanje okruženja U prvom tre em i četvrtom slučaju sigurno dolazi do menjanja okruženja ako imamo više od jednog procesa u drugom ne mora Možemo razlikovati dve vrste dispečera 1 PREKIDLJIVI PREEMPTIVE izvršavanje procesa može biti prekinuto od strane dispečera bilo kada Tada proces prelazi u stanje spreman i njegovo izvršavanje se može nastaviti kasnije 2 NEPREKIDLJIVI NON PREEMTIVE izvršavanje procesa ne može biti prekinuto od strane dispečera jedino sam proces može menjati svoje stanje npr završi svoj rad postaje blokiran jer čeka na neki doga aj ili resurs itd Algoritam dispečera mora uzeti u obzir slede a očekivanja 1 Fernost fairnest svaki proces mora dobiti šansu za izvršavanje 2 Efikasnost procesor mora biti maximalno iskoriš en 3 Treba da obezbedi kratko vreme odziva response time interaktivnih procesa da ne bi došlo do toga da korisnik pritisne S i čeka pola dana dok se S pojavi na ekranu 4 Treba da obezbedi što kra e vreme izvršavanja paketnih batch oni koji malo komuniciraju sa korisnikom a više nešto rade programa turnaround time 5 Treba da ima š to ve u propusnost throughput tj treba da što ve i broj paketnih procesa završi svoj rad u nekoj jedinici vremena Vrlo je teško na i optimalan algoritam koji bi ispunio sva prethodna očekivanja Na primer ako imamo i interaktivne i paketne procese tre i i četvrti kriterijumi su u koliziji ako dozvolimo kratko vreme odziva interaktivnih procesa oni e neprestano prekidati paketne procese pa e njihovo vreme izvršavanja rasti Obrnuto ako pustimo paketne procese da odrade svoj zadatak što brže interaktivnim procesima emo produžiti vreme odziva Da bi operativni sistem mogao odlučiti da li je došlo vreme da izvrši menjanje okruženja tj da izabere drugi proces za izvršavanje pomo stiže ve sa hardverskog nivoa Hardverski sat 50 do 60 puta u sekundi generiše prekid OS dobija kontrolu Tada ima mogu nost da odluči da li je došlo vreme da procesor dobije neki drugi proces Sada emo razmatrati razne algoritme dispečera 1 Round Robin algoritam preemtive nema prioriteta Round Robin je jedan od najstarijih najjednostavnijih i najčeš e koriš enih algoritama Spremni procesi se stavljaju u kružnu listu svakom procesu se pridružuje vremenski interval kvantum quantum vremena Nakon isteka tog vremena proces e biti prekinut od strane OS a a kontrola se predaje slede em procesu u listi Ako se proces blokira ili završi rad pre isteka kvantuma dispečer se aktivira i bira slede i proces za izvršavanje Pošto dispečer ide redom po kružnoj listi ovaj algoritam garantuje fernost svaki proces e dobiti šansu za izvršavanje Problemi nastaju pri izboru dužine kvantuma ako je kvantum previše kratak dispečer e se izvršavati češ e pa trošimo više procesorskog vremena za prebacivanje sa jednog na drugi proces Ako je kvantum predugačak može se desiti da vreme odziva nekih interaktivnih procesa bude prevelik Primer1 neka je kvantum 20ms a neka menjanje procesa traje 5ms To znači da emo za jednu sekundu imati 800ms korisno iskoriš avanje procesora u vidu izvršavanja procesa i 200ms potrošeno na dispečer tj 20 vremena odlazi na administraciju Primer2 neka je kvantum 500ms i neka menjanje procesa traje 5ms Posmatrajmo slede u situaciju imamo višekorisnički sistem sa 10 korisnika od kojih svaki koristi svoj editor texta Neka svi tipkaju nešto po tastaturi Round robin ide okolo prvi korisnik e rezultat videti odmah drugi za 505ms tre i za 1010 deseti za 4545ms tj nakon skoro 5 sekundi čekanja 2 Najstariji proces First Come First Served non preemtive nema prioriteta Spremni procesi se stavljaju u red opsluživanja pa se izvršavaju redom i to bez prekida proces radi dok ne završi svoj rad ili ne postaje blokiran Izvršavanje dobija uvek najstariji proces Nedostatak ovog algoritma je u slede em uzmimo da imamo jedan proces koji se izvršava jako dugo i iza njega više kra ih procesa Tada e mnoštvo kratkih poslova dugo čekati zbog tog jednog sporog Preptostavimo sada da se taj spori proces zablokira pre nego što završi svoj rad tada se prebacuje na pocetak reda opsluživanja čim bude spreman Neka kratki poslovi završe svoj rad mnogo pre nego što se spori proces odblokira Tada emo imati situaciju da procesor ništa ne radi čeka na odblokiranje 3 Prioritetno raspore ivanje priority scheduling preemtive prioritetni Jedan nedostatak Round Robin algoritma je u tome što su svi procesi ravnopravni tj da ne pretpostavlja mogu nost postojanja važnijih i manje važnih procesa Ideja o pridruživanju prioriteta procesima se uvodi kod prioritetnog raspore ivanja Prioriteti mogu biti 1 statički svakom procesu se pridružuje prioritet kada se učita u memoriju 2 dinamički prioritet procesa se menja u toku izvršavanja Imamo dva pristupa 1 procese stavimo u jednu prioritetnu listu i uvek biramo najprioritetniji proces 2 procese grupišemo u prioritetne klase klasu biramo na osnovu prioriteta a za izbor procesa unutar klase koristimo Round Robin algoritam Kao nedostatak prioritetnog raspore ivanja javlja se slede i problem može se desiti da manje prioritetni procesi nikada ne do u do procesora ova pojava se zove izgladnjivanje starvation Problem bismo mogli izbe i tako što emo prioritet procesa koji se trenutno izvršava prilikom svakog prekida hardverskog sata smanjiti za jedan Ako prioritete dinamički odre uje OS dobro je uzeti u obzir slede a razmatranja procesi koji intenzivno koriste IO ure aje treba da imaju ve i prioritet jer im procesor treba u kra im intervalima čes e su blokirani procesi koji intenzivno koriste procesor i operativnu memoriju treba da imaju manji prioritet Objašnjenje da bismo procesor maksimalno iskoristiti dobro je pustiti najpre procese iz prve grupe oni e procesor zauzeti relativno kratko zatim e se blokirati pa se mogu slobodno izvršavati procesi iz druge grupe Ako bi oni imali ve i prioritet procesi iz prve grupe bi dugo čekali da bi na kratko vreme dobili procesor i dugo e zauzimati mesto u operativnoj memoriji Prioritet procesa mogli bismo računati na slede i način neka je veličina kvantuma 100ms Tada ako od toga proces koristi procesor u 20ms dobi e prioritet 100 20 5 ako koristi u 50ms dobija prioritet 100 50 2 ako koristi 100ms dobija prioritet 100 100 1 Ve i broj ozna ava ve i prioritet 4 Višestruki redovi multiple queues preemtive prioritetni Posmatrajmo slede u situaciju imamo sistem sa malo memorije ali želimo multitasking Neka menjanje procesa traje 5ms kada su procesi u memoriji Pošto sada nemamo dovoljno memorije da svi spremni procesi budu u memoriji mora emo pristupiti disku da bismo dovukli procese odnosno da bismo sačuvali trenutno stanje procesa koji se zamenjuje to e jako pove ati vreme administracije Ako je kvantum mali često emo pristupati disku ako je kvantum veliki vreme odziva se pove ava Rešenje izgleda na slede i način procese emo grupisati u prioritetne klase svaka klasa predstavlja jedan red opsluživnja Procesi iz najprioritetnije klase e dobiti 1 kvantum za izvršavanje procesi iz druge klase 2 kvantuma procesi iz tre e klase 4 kvantuma oni iz četvrte klase 8 kvantuma itd Ako proces iz neke klase iskoristi sve svoje kvantume bez blokiranja ide u slede u klasu dobija više kvantuma Oni procesi koji nisu interaktivni tj intenzivno koriste procesor dobijaju sve više kvantuma klasa broj kvantuma 1 1 2 2 3 4 4 8 5 16 6 32 7 64 Primer imamo proces kome treba 100 kvantuma da završi svoj rad Nemamo dovojno memorije pa mora biti prebačen na disk svaki put kad potroši procesorsko vreme Ako radimo na standardan način svi procesi dobijaju po jedan kvantum pa gube procesor tada da bi ovaj program došao do kraja svog rada potrebno ga je 100 puta prebaciti sa i na disk Ako koristimo ovu tehniku potrebno je samo 7 puta Problem šta ako proces nakon odre enog vremena počinje da bude interaktivan Jedno rešenje Svaki put kad se za dati proces pritisne ENTER ide prema gore po klasama Rezultat korisnici shvate da lupaju i ENTER dobijaju na prioritetu i počinje trka ko može brže pritiskati ENTER 5 Prvo najkra i posao Shortest Job First non preemtive nema prioriteta Cilj ovog algoritma je da se što više poslova uradi za neko odre eno vreme Radi na slede i način od svih spremnih procesa bira onaj za koji procenjuje da e najbrže završiti svoj rad Procesi se ne prekidaju non preempitve Koristi se pri radu sa paketnim procesima koji intenzivno koriste procesor a retko komuniciraju sa korisnikom istog prioriteta Da bi algoritam funkcionisao potrebna je procena dužine rada pojedinih procesa Primer imamo 4 procesa A B C D čije su dužine rada 8 2 3 4 minuta Pogledajmo dva redosleda izvršavanja 1 ABCD 2 BCDA prvo najkra i posao Računamo prosečno vreme završetka pojedinih procesa algoritam je neprekidljiv 1 A 8 B 10 C 13 D 17 prosečno 8 10 13 17 4 48 4 12 2 B 2 C 5 D 9 A 17 prosečno 2 5 9 17 4 33 4 8 25 U prvom slučaju za 9 minuta uspemo završiti samo jedan posao A a u drugom slučaju čak tri poslova B C D Posmatrajmo sada interaktivne procese Kod njih se javlja još jedan faktor korisnik Da bismo mogli koristiti ovaj algoritam potrebno je na i neki način za procenjivanje dužine izvršavanja Na primer pretpostavimo da procesi funkcionišu na slede i način čekaju na komandu kada se pritisne ENTER označava kraj komande izvršavaju komandu Procenu emo vršiti tako što emo meriti vreme izme u dva ENTERA Ako je ENTER prvi put pritisnut u trenutku T0 a drugi put u trenutku T1 onda emo tre i proceniti na osnovu formule a T0 1 a T1 gde je a neka konstanta obično ½ Ako stavimo a ½ dobijamo niz T0 T0 2 T1 2 T0 4 T1 4 T2 2 T0 8 T1 8 T2 4 T3 4 6 Garantovano raspore ivanje Prva ideja imamo n korisnika u sistemu npr n terminala na jedan procesor OS garantuje da e svaki korisnik dobiti 1 n od ukupne snage procesora Kako to izvesti Pratimo korisnika i gledamo koliko su svi njegovi procesi vremenski koristili procesor od kada je korisnik počeo svoj rad na terminalu npr korisnik je počeo rad pre dva sata a procesor je od tada radio na njegovim procesima 95 minuta Sada gledamo kad je došao prvi korisnik i koliko je od tada utrošeno procesorskog vremena To vreme delimo sa brojem trenutno ulogovanih korisnika i dobijamo koliko je trebalo da dobiju od procesorskog vremena Tada emo birati procese onog korisnika koji je dobio najmanju pažnju procesora Druga ideja vremenska garancija vremensko ograničavanje procesa proces mora biti izvršen za neko odre eno vreme 7 Dvo nivovski dispečer two level scheduling Ovaj se algoritam primenjuje kada imamo malo operativne memorije pa se neki od spremnih procesa čuvaju na disku Radimo na slede i način koristimo dva dispečera Najpre učitamo nekoliko spremnih procesa sa diska u memoriju i sada neko vreme dispečer nižeg nivoa radi samo sa tim procesima Posle odre enog vremena dolazi dispečer višeg nivoa i kaže dorbo ovi procesi su bili dovoljno dugo izvršavani sada u ih lepo prebaciti na disk neka se malo odmore a sa diska u doneti neke nove procese neka procesor malo izvršava njihove kodove Dispečer nižeg nivoa to primi na znanje i svu svoju pažnju daje novim procesima UPRAVLJANJE MEMORIJOM Možemo razlikovati 3 vrste memorije 1 eksterna memorija najve eg kapaciteta najsporiji najjeftiniji 2 interna memorija manjeg kapaciteta brži skuplji 3 keš cache memorija najmanjeg kapaciteta najbrži najskuplji Nas e najviše interesovati interna memorija operativna memorija i njen odnos sa eksternom memorijom Procesor može izvršavati samo procese koji su u internoj memoriji Kako je operativna memorija relativno malog kapaciteta dolazimo do slede ih problema 1 proces je ve i od interne memorije i kod monoprogramiranja i kod multiprogramiranja 2 nemamo dovoljno memorije da učitamo sve spremne procese kod multiprogramiranja Deo operativnog sistema koji upravlja koriš enjem memorije zove se upravljač memorije memory manager Njegov zadatak je da vodi računa o tome koji delovi memorije su zauzeti koji delovi su slobodni da zauzme potrebnu količinu memorije za nove procese odnosno da oslobodi memoriju zauzetu od strane nekog procesa i da upravlja prebacivanjem procesa iz interne u eksternu memoriju i obrnuto pri tome mora voditi računa o tome da procesi ne štete jedni drugima a ni operativnom sistemu U slučaju kada nemamo dovoljno interne memorije koriste se slede e tehnike 1 SWAPPING prebacivanje procesa ako nemamo dovoljno mesta u operativnoj memoriji za smeštanje svih spremnih procesa neki se izbacuju na disk Kada je potrebno celi spremni procesi iz interne memorije se prebacuju na disk odnosno spremni procesi sa diska se prebacuju u internu memoriju 2 PAGING straničenje delove procesa držimo na disku učitavaju se po potrebi Upravljanje memorijom bez swappinga i paginga Monoprogramiranje monoprogramming Monoprogramiranje znači da istovremeno u internoj memoriji računara može nalaziti samo jedan proces Najjednostavniji način je da u internoj memoriji imamo samo jedan proces pustimo korisnika da učita program koji želi i taj program tada dobija apsolutnu kontrolu nad računarom radi šta ho e i gde ho e pristupa onim delovima memorije kojima želi i koristi one ure aje koje želi i kako želi Kod ovog pristupa ne treba nam ni operativni sistem ni posebni drajveri za razne ure aje program koji se učitava u memoriju je potpuno sam i oslanja se isključivo na sebe Mora znati sve što mu je potrebno kako da koristi memoriju kako da koristi tastaturu disk štampač i sve ostalo što mu je potrebno da izvrši svoj zadatak Kada taj program završi sa radom može se učitati slede i program koji isto tako mora znati da rukuje sa svim ure ajima koje koristi Ova metoda je ve davno napuštena pošto je vrlo nepraktična programeri moraju ugraditi sve potrebne drajvere u svaki program Ako nema dovoljno memorije programer mora na i neko rešenje optimizuje kod ili e program razbiti na manje funkcionalne delove koji se mogu samostalno izvršavati ili nešto tre e Drugi način je da se memorija deli izme u operativnog sistema i jednog korisničkog programa Kada se računar uključi učitava se operativni sistem bez njega se računar ne može koristiti Tada na monitoru dobijemo komandni prompt pa korisnik izdaje naredbe operativnom sistemu Kaže izbriši ekran npr CLS u DOS u ili izlistaj sve fajlove u teku em direktorijumu npr DIR u DOS u ili učitaj taj i taj program Ako OS prepozna komandu pokušava ga izvršiti ako ne javlja grešku i čeka slede u naredbu Korisnikov program se učitava u preostali deo memorije i tamo se izvršava Više nije potrebno u svaki program ugraditi i sve potrebne drajvere jer je OS zadužen da obezbedi sve potrebne funkcije Imamo više načina za raspodelu memorije 1 OS se učitava u donji deo RAM a Random Access Memory memorija koja se može i čitati i isati a ostatak memorije je na raspolaganju korisničkim programima 2 OS se nalazi u ROM u Read Only Memory memorija koja se može samo čitati na vrhu memorije a korisnički program ispod njega 3 OS se nalazi u donjem delu RAM a drajveri u ROM u na vrhu memorije a izme u korisnički program Osnovni skup funkcija za rad sa ure ajima može biti smešten u poseban deo ROM memorije koji se zove BIOS Basic Input Output System OS se oslanja na BIOS a korisnički programi mogu pozivati i funkcije OS a i funkcije BIOS a Ni ovde nemamo pravu podršku OS a za upravljanje memorijom u slučaju da je proces prevelik dobi emo poruku o tome da nemamo dovoljno memorije Neka razvojna okruženja pružaju mogu nost da se program razbije na delove pa se učitava onaj deo koji je potreban za rad npr Turbo Pascal podržava sličnu tehniku koja se zove overlay program se deli na razne unit e Uzmemo skup nekih unit a i pravimo od njih objektni fajl prevedemo ih u jedan fajl tokom izvršavanja glavnog programa ako pozovemo neku funkciju iz nekog od ovih unit a odgovaraju i unit se učitava sa diska u memoriju Pri tome se zauzima onoliko memorije koliko je potrebno za najve i unit Multiprogramiranje multiprogramming Multiprogramiranje znači da istovremeno imamo i više spremnih procesa u internoj memoriji Neki razlozi za uvo enje multiprogramiranja rad sa više korisnika imamo računar i nekoliko terminala bolje iskoriš avanje procesorskog vremena dok proces A čeka na podatke sa diska procesor bi mogao izvršavati proces B koji želi da računa vrednost broja p na što ve i broj decimala jednokorisnički sistemi dok pišemo u text editoru ho emo slušati muziku sa CD a a želimo da nam štampač izštampa horoskop koji je u me uvremenu preuzet sa interneta itd Fixne particije Posmatrajmo drugi način kod monoprogramiranja memorija se deli na dva dela jedan deo koristi OS a drugi deo je namenjen korisničkim programima Ve bismo ovde mogli ostvariti swapping spremni procesi čekaju na disku biramo jedan koji se učitava u memoriju i izvršava se neko vreme zatim se vra a na disk pa biramo drugi itd Jedan veliki nedostatak ove realizacije je sporost Diskovi su mnogo sporiji od memorije pa emo mnogo vremena izgubiti na menjanje procesa Proširimo ovu ideju na slede i način podelimo memoriju na me usobno nezavisne i odvojene delove particije U svaku particiju emo učitati proces koji je spreman za izvršavanje taj proces vidi samo svoju particiju i misli da je sam u memoriji Particije se odre uju nakon startovanja sistema ručno od strane operatora sistema Kako odrediti veličinu particija Imamo dva pristupa neka su sve particije iste veličine nedostak particija je veličine 1MB a u njoj se izvršava proces veličine 100KB cela particija je zauzeta a 90 raspoložive memorije u toj particiji je neiskoriš en neka su particije različith veličina imamo manje i ve e particije u svaku particiju stavljamo proces koji najbolje iskoriš ava raspoloživu memoriju Liste čekanja imamo dve mogu nosti 1 svaka particija ima svoju listu čekanja novi proces se stavlja u listu najpogodnije particije gledamo da imamo što manje neiskoriš ene memorije Nedostatak ovog pristupa može se desiti da na listama čekanja manjih procesa čeka 100 procesa a lista neke ve e particije je prazna 2 imamo jednu listu čekanja za sve particije kada neka particija postaje slobodna upravljač memorije pregleda listu čekanja i bira slede i proces Izbor procesa može se vršiti na dva osnovna načina a biramo proces koji je najbliži u redu čekanja i može da stane u datu particiju Nedostatak imamo na raspolaganju veliku particiju ali je mali proces bliže nego veliki pa e mali proces biti učitan u veliku particiju gubimo mnogo memorije na mali proces b biramo najve i od svih onih procesa koji mogu stati u datu particiju Nedostatak mali procesi su diskriminisani uvek biramo ve e procese Rešenja za izbegavanje navedenih nedostataka 1 definišemo dovoljan broj dovoljno malih particija u koje mogu stati samo mali procesi a ne i veliki 2 uvodimo slede e pravilo ni jedan proces ne može biti preskočen više od k puta Svaki proces dobija po jedan brojač svaki put kad se dati proces preskoči pove ava se brojač Ako pri traženju procesa upravljač memorije vidi da je proces preskočen k puta učitava ga u particiju a broja č se resetuje bez obzira na to da postoji neki proces koji je ve i od njega a isto stane u posmatranu particiju Veličinu broja k odre uje sistem operator U principu mogli bismo swapping realizovati i sa fixnim particijama svaki put kada se neki proces blokira prebacimo ga na disk a u tako oslobo enu particiju učitamo drugi spreman proces Praktično gledano ne emo dobiti dobre rezultate u iskoriš avanju memorije možemo imati male procese koje učitavamo u ve e particije pa gubimo mnogo memorije To se zove unutrašnja fragmentacija internal fragmentation Relokacija i zaštita Relokacija Particionisanjem memorije dolazimo do situacije da jedan isti proces može biti učitan i izvršavan u različitim particijama To dovodi do problema relokacije naime prilikom prevo enja programa kompajler prevodilac generiše objektne fajlove koji sadrže logičke adrese Zatim dolazi linker povezilac i povezuje sve koriš ene i prevedene module u jedan izvršni fajl Da bi to uradio potrebno je da zna početnu fizičku adresu gde e program biti učitan i izvršavan Pošto je to za vreme povezivanja nepoznato i linker e morati da koristi logičke adrese Znači sada imamo izvršni fajl sa logičkim adresama Pošto ne znamo fizičke adrese za vreme prevo enja programa ne znamo unapred u kojoj e particij program biti učitan koristimo logičke adrese pa neko treba da izmeni te adrese za vreme učitavanja našeg programa u memoriju Imamo dve mogu nosti 1 Adrese e postaviti punilac loader Punilac je deo OS a koji je zadužen da učita program sa diska u memoriju Kako on ve zna u koju particiju treba učitati može rešiti i problem relokacije tako što e izmeniti sve potrebne adrese u programu tako da se može izvršiti unutar te particije Kako e punilac znati koje adrese treba izmeniti Tako što e linker obezbediti potrebne informacije ubaci e spisak onih mesta u programu gde se nalaze adrese Nedostatak je slaba zaštita punilac može proveriti adrese koje su mu poznate zahvaljuju i linkera ali ništa više Program može izgenerisati adresu koja ne spada unutar svoje particije Drugi nedostatak je u tome što se program ne može pomerati po memoriji nakon učitavanja a da se sve adrese ne računaju iz početka 2 Hardverska podrška procesor treba da ima dva posebna registra base register bazni registar i limit register granični registar Bazni registar čuva početnu adresu particije gde je proces učitan a granični registar krajnju adresu te particije ili veličinu particije Punilac u ovom slučaju ne menja adrese procesa jednostavno samo učita proces u particiju i postavi vrednost baznog registra Znači sada u memoriji imamo proces sa logičkim adresama Svaki put prilikom adresiranja uzima se logička adresa programa i sabira se sa sadržajem baznog registra i tako se dobija fizička adresa Hardverska podrška rešava i problem zaštite kada se izračunava fizička adresa memorije kojoj program želi pristupiti jednostavno se upore uje sa sadržajem graničnog registra Koriš enje baznog registra za relokaciju pruža još jednu mogu nost program se može pomerati po memoriji za vreme izvršavanja jer su sve adrese logičke a fizičke se računaju na osnovu baznog registra Program prebacimo na neku drugu početnu adresu postavimo sadržaj baznog registra i izvršavanje se može nastaviti Napomena razlika izmedju EXE i COM fajlova u DOS u je upravo u relokatibilnosti EXE fajlovi su relokatibilni mogu se učitati počevši od bilo koje memorijske adrese i izvršavati COM fajlovi nisu relokatibilni i ne mogu biti ve i od 64KB Zaštita Problem zaštite možemo formulisati ovako kako možemo sprečiti procesa koji je učitan u particiju A da pristupi sadr žaju particije B Imamo dva rešenja 1 Memorija se deli na blokove fixne veličine npr 1KB 4KB ili nešto drugo svakom bloku se dodeljuje 4 bitni zaštitni kod Proces može pristupati samo onim blokovima čiji kod odgovara kodu koji je dobio proces Kodovima upravlja operativni sistem Ovo rešenje je napušteno 2 Koriš enjem baznog i graničnog registra Upravljanje memorijom sa swappingom U slučaju da nemamo dovoljno interne memorije za čuvanje svih spremnih procesa moramo neke procese izbaciti u eksternu memoriju a kada je to potrebno moramo ih vratiti u internu memoriju i nastaviti njihovo izvršavanje To se zove swapping Multiprogramiranje sa promenljivim particijama Da bismo izbegli problem unutrašnje fragmentacije internal fragmentation uvodimo promenljive particije veličina pojedinih particija se odre uje na osnovu procesa koji se učita u memoriju Nemamo unapred odre en broj particija sa unapred odre enim veličinama Kada se proces učita zauzima onoliko memorije koliko mu je potrebno ako imamo dovoljno memorije Razlika izme u fixnih i promenljivih particija kod fixnih particija broj veličina pa i lokacija svih particija je odre ena unapred pri startovanju sistema od strane sistem operatora Kod promenljivih particija ne znamo unapred ni broj ni veličinu ni lokaciju particija ti parametri se odre uju dinamički i zavise od procesa koji se izvršavaju Koriš enje promenljivih particija donosi neke druge komplikacije Problem spoljašnje fragmentacije external fragmentation posmatrajmo slede u situaciju memorija je ispunjena sa procesima particijama različitih dimenzija Neka procesi A i B redom veličine 1MB i 2MB završe svoj rad oni se izbacuju iz memorije na njihovo mesto redom učitamo procese C i D veličine 500KB i 1 5MB Sada dolazi proces X kome treba 1MB memorije za rad tačno je da imamo još 1MB slobodnog mesta ali ne na jednom mestu Ovaj problem mogli bismo rešiti tako što emo pomerati sve procese tako da se sve slobodne particije nalaze na jednom mestu kontinualno to se zove kompakcija compaction Veliki nedostatak je sporost pa je možda pametnije da proces X čeka dok se ne oslobodi dovoljna količina memorije Drugi problem je u slede em možemo imati procese koji rastu tj nakon učitavanja zahtevaju dodatnu memoriju za dinamičke promenljive ili za stek Imamo više rešenja 1 Procesi su dužni da prilikom učitavanja u memoriju jave maksimalnu veličinu heapa i stacka 2 Proces se ubija prekida uz poruku o grešci 3 Proces se prebacuje na disk i čeka da se potrebna količina memorije oslobodi Tre i problem je to što treba voditi računa o tome gde se nalaze zauzete particije i koje su njihove veličine odnosno gde se nalaze prazne particije i koje su njihove veličine Strukture podataka za upravljanje memorijom Za vo enje evidencije o zauzetosti memorije o zauzetim particijama i o rupama izme u particija slobodna memorija možemo koristiti slede e strukture 1 Bitne mape bit maps 2 Povezane liste linked lists 3 Sistem drugova buddy sistem Bitne mape bit maps Memoriju delimo na delove iste veličine Svakom delu dodeljujemo po jedan bit na slede i način 1 označava da je taj deo zauzeto 0 da je slobodno ili obrnuto Tako dolazimo do niza nula i jedinica bitova koji se zove bitna mapa memorije Pitanje koje veličine treba da budu ovi delovi memorije Ako je veličina delova 32bita 4 bajta onda za bitnu mapu koristimo 1 33 od ukupne memorije Ako su delovi manji bitna mapa je ve a ako je veličina delova 16bita onda za bitnu mapu koristimo 1 17 od ukupne memorije od 512MB ode na administraciju oko 30MB i traženje slobodne memorije niz nula je spora Ako su delovi ve i kvarimo iskoriš enost memorije neka su delovi veličine 4KB ako proces zauzme 1KB od nekog dela 3KB ostaje neiskoriš en ali ne može biti alociran od strane drugog procesa jer je formalno zauzeto Povezane liste linked lists Memorija je ili zauzeta od strane nekog procesa P ili je slobodna rupa H hole Povezane liste gradimo od slogova slede e strukture P ili H početna adresa veličina slede i Prvo polje sloga označava tip memorije P označava da se radi o procesu H da se radi o slobodnoj memoriji Drugo polje sadrži početnu adresu dela memorije koju opisuje dati slog Tre e polje veličinu opisane memorije a četvrto polje sadrži pokazivač na slede i slog Upravljanje memorijom se odvija na slede i način Zauzimanje memorije imamo proces tražimo dovoljno veliku rupu u memoriji Pretražujemo povezanu listu tražimo slog tipa H rupa dovoljne veličine Ako na emo umesto H upišemo P i eventualno ubacimo novi čvor tipa H ako proces ne zauzima celu rupu ostaje nam neka manja rupa Osloba anje memorije proces A završi sa radom oslobodimo zauzetu memoriju Tada jednostavno stavimo H umesto P ako se i ispred i iza procesa A nalazi neki drugi proces a ne slobodna memorija inače vršimo ažuriranje liste ako je ispred procesa A slobodna memorija X a iza proces B menjamo X i izbacimo A tj X veličina X veličina A veličina X slede i A slede i Free A ako je ispred procesa A proces B a iza slobodna memorija X menjamo A i izbacimo X A veličina A veličina X veličina A slede i X slede i Free X ako je ispred procesa A slobodna memorija X a iza slobodna memorija Y menjamo X i izbacimo A i Y X veličina X veličina A veličina Y veličina X slede i Y slede i Free A Free Y Sistem drugova Buddy system Upravljač memorije koristi po jednu listu za blokove slobodne memorije veličine 1 2 4 8 16 32 64 itd bajtova sve do ukupne veličine memorije po stepenima

    Original URL path: http://perun.dmi.rs/old/budimac/os/geller-html/index.html (2016-02-18)
    Open archived version from archive


  • L Line line containing c END Frame POINTER TO FrameDesc FrameDesc RECORD Viewers0 FrameDesc text Texts0 Text org LONGINT index of first character in the frame caret Position caret visible of caret pos 0 selBeg selEnd Position selection visible if selBeg pos 0 selTime LONGINT time stamp of selection lsp margin INTEGER space between lines space between frame border and text lines Line list of lines in frame END SelectionMsg RECORD OS Message f Frame END VAR cmdFrame Frame frame from which most recent command was invoked cmdPos LONGINT text position after most recent command auxiliary procedures PROCEDURE GetMetric at Texts0 Attribute ch CHAR VAR dx x y asc dsc INTEGER VAR pat OS Pattern VAR w h INTEGER BEGIN IF at elem NIL THEN OS GetCharMetric at fnt ch dx x y w h pat asc at fnt maxY dsc at fnt minY ELSE dx at elem w x 0 y 0 dsc at elem dsc asc at elem h dsc END END GetMetric PROCEDURE MeasureLine t Texts0 Text VAR L Line VAR ch CHAR dx x y asc dsc INTEGER pat OS Pattern BEGIN L len 0 L asc 0 L dsc 0 L wid 0 ch WHILE ch EOL t pos L asc THEN L asc asc END IF dsc L dsc THEN L dsc dsc END END L eol ch EOL END MeasureLine PROCEDURE DrawLine t Texts0 Text len left right base INTEGER VAR ch CHAR dx x y w h INTEGER pat OS Pattern BEGIN WHILE len 0 DO t Read ch DEC len IF t attr elem NIL THEN OS GetCharMetric t attr fnt ch dx x y w h pat IF left dx top DO DEC y L asc L dsc f lsp org org L len L0 L L L next END IF y top THEN top y END OS FadeCursor OS EraseBlock f x f y f w top f y draw scroll bar IF f margin 0 THEN OS InvertBlock f x scrollW f y 1 top f y END redraw lines and build new line descriptors L0 is last valid line descriptor t f text LOOP NEW L t SetPos org MeasureLine t L IF L len 0 OR y L asc L dsc t len THEN EXIT END END L0 next f lines END RedrawFrom PROCEDURE f Frame GetPointPos x0 y0 INTEGER VAR p Position VAR t Texts0 Text ch CHAR L Line dx x y asc dsc INTEGER pat OS Pattern BEGIN find line containing y0 L f lines next p y f y f h f margin p org f org WHILE L f lines y0 t len THEN p dx 0 EXIT END t Read ch GetMetric t attr ch dx x y asc dsc pat IF ch EOL OR p x dx x0 THEN p dx dx EXIT ELSE INC p pos INC p x dx END END END GetPointPos PROCEDURE f Frame GetCharPos pos LONGINT VAR p Position VAR t Texts0 Text ch CHAR L Line dx x y asc dsc INTEGER pat OS Pattern i LONGINT BEGIN find line containing pos L f lines next p y f y f h f margin p org f org p pos pos WHILE L f lines pos p org L len L eol DO p org p org L len DEC p y L asc L dsc f lsp L L next END DEC p y L asc p L L find character at pos p x f x scrollW f margin t f text t SetPos p org FOR i 1 TO p pos p org DO t Read ch GetMetric t attr ch dx x y asc dsc pat INC p x dx END IF t pos t len THEN p dx 0 ELSE t Read ch GetMetric t attr ch p dx x y asc dsc pat END END GetCharPos PROCEDURE f Frame CallCommand VAR x y i INTEGER buttons SET p Position t Texts0 Text ch CHAR cmd ARRAY 64 OF CHAR BEGIN REPEAT OS GetMouse buttons x y UNTIL buttons f GetPointPos x y p t f text t SetPos p org t Read ch REPEAT WHILE t pos Z DO t Read ch END i 0 WHILE CAP ch A CAP ch 0 ch t len OR ch EOL OR t pos p pos cmdFrame f cmdPos t pos OS Call cmd END CallCommand PROCEDURE f Frame RemoveCaret BEGIN IF f caret pos 0 THEN f FlipCaret f caret pos 1 END END RemoveCaret PROCEDURE f Frame SetCaret pos LONGINT VAR p Position BEGIN IF pos f text len THEN pos f text len END f SetFocus f GetCharPos pos p IF p x 0 THEN f FlipSelection f selBeg f selEnd f selBeg pos 1 END END RemoveSelection PROCEDURE f Frame SetSelection from to LONGINT BEGIN f RemoveSelection f GetCharPos from f selBeg f GetCharPos to f selEnd f FlipSelection f selBeg f selEnd f selTime OS Time END SetSelection PROCEDURE f Frame Defocus BEGIN f RemoveCaret f Defocus END Defocus PROCEDURE f Frame Neutralize BEGIN f RemoveCaret f RemoveSelection END Neutralize PROCEDURE f Frame Draw BEGIN f RedrawFrom f y f h END Draw PROCEDURE f Frame Modify dy INTEGER VAR y INTEGER BEGIN y f y f Modify dy IF y f y THEN f RedrawFrom y ELSE f RedrawFrom f y END END Modify PROCEDURE f Frame HandleMouse x y INTEGER buttons SET VAR p Position b SET t Texts0 Text ch CHAR f1 Frame BEGIN f HandleMouse x y buttons t f text IF x t len f org t pos END f RedrawFrom f y f h ELSE handle click in text area f GetPointPos x y p IF OS left IN buttons THEN IF p pos f caret pos THEN f SetCaret p pos END ELSIF OS middle IN buttons THEN t SetPos p pos t Read ch IF t attr elem NIL THEN f CallCommand ELSE t attr elem HandleMouse

    Original URL path: http://perun.dmi.rs/old/budimac/os/oberon0.txt (2016-02-18)
    Open archived version from archive


  • deo ispita iz Operativnih sistema u decembarskom ispitnom roku polo ila je 1 oti Nora Usmeni deo ispita odr ace se u SREDU 10 decembra 2003 sa pocetkom u 10

    Original URL path: http://perun.dmi.rs/old/pesovic/teaching/os.txt (2016-02-18)
    Open archived version from archive


  • kompajlera su polo ili Juhas Balint Silvija Selakovic Du an Jakic Marijana Usmeni deo ispita ce se odr ati u cetvrtak 05 02 2004 u 8 00 RC na 3

    Original URL path: http://perun.dmi.rs/old/kurbalija/Teaching/kkrez.txt (2016-02-18)
    Open archived version from archive



  •