# Priezvisko: # Kruzok: # # Cislo zadania: 08 # Kod zadania: 0308 # Zadanie: # # Napiste skripty archivacie databazy (suboru ako parametra skriptu) # a editovania (editor vi) databazy, ktore umoznia s databazou pracovat vzdy # iba jednemu skriptu. Na vzajomne vylucovanie pouzite jednoduchy mechanizmus # tzv. "lock file". # Zamkom k databaze bude subor s nazvom "lock" (zamok). Mechanizmus "zamykania" # je nasledovny: # 1. Zisti, ci existuje subor lock. Ak ano, databazu prave pouziva niekto iny. # Vypis chybove hlasenie a skonci (uzivatel moze neskor skusit znova). # 2. Inak vytvor subor s nazvom lock. # 3. Pouzivaj databazu. # 4. Na konci vymaz subor lock, inak sa uz k databaze nikto nedostane. # Vytvorenie zamku, jeho testovanie a zrusenie nesmie byt prerusene. # Naopak, kopirovanie databazy moze trvat dlho, preto umoznite jeho prerusenie. # # UPOZORNENIE: Skript musi osetrovat vsetky chybove stavy, pri zadani # parametru -h sa zobrazi HELP. # # Program bude spustany v prostredi c-shell prikazom: # script1.csh [-h] [] # script2.csh [-h] [] # # Kazdy naprogramovany skript musi splnat vseobecne podmienky pre # odovzdanie zadani na cviceniach predmetu Operacne systemy rok 2006/2007 # FEI STU. # # Poznamky k rieseniu: # Na tvorbu suboru (zamku) pouzite prikaz ln a testujte status suboru. # Na riadenie prerusenia pouzite prikaz onintr, nasledovne: # onintr - ... ignoruj prerusenie (disable interrupt key) # onintr label ... po preruseni pokracuj v scripte za navestim label. # Cinnost skriptov otestujte ich subeznym spustenim. Pre testovacie ucely # mozete v nich pouzit prikaz sleep. # # Riesenie: