220 likes | 443 Views
Operativni sistemi. Čas 4. Vezivanje fajlsistema. Vezivanje: mount –t tip uređaj direktorijum Uređaj se može vezati i na više lokacija u fajlsistemu. Uklanjanje: umount direktorijum Argument umount komande može biti i uređaj ako je vezan na samo jednom mestu u sistemu.
E N D
Operativni sistemi Čas 4
Vezivanje fajlsistema • Vezivanje: mount –t tip uređaj direktorijum • Uređaj se može vezati i na više lokacija u fajlsistemu. • Uklanjanje: umount direktorijum • Argument umount komande može biti i uređaj ako je vezan na samo jednom mestu u sistemu. • Direktorijum ne mora biti prazan da bi se na njega vezao fajlsistem, ali njegov sadržaj će biti sakriven dok je fajlsistem vezan. • Informacije o povezanim sistemima se pišu u /etc/mtab
fstab • Sadrži statičke informacije o fajlsistemima. • Unosi su oblika uređaj direktorijum tip opcije fs_freq fs_passno • fs_freq određuje raspored arhiviranja. • fs_passno određuje redosled proveravanja uređaja prilikom podizanja sistema. • Neke od mogućih opcija su • auto, default, users, owner, group, noauto, nouser, ro, rw • mount –a vezuje sve fajlsisteme iz fstab-a osim ako imaju noauto opciju. Ova komanda se izvršava prilikom inicijalizacije sistema da bi povezala ove fajlsisteme.
Particije • Tradicionalno sistemi nalik Unix-u dele diskove na particije. • Na svakoj se može nalaziti fajlsistem, a oni se mogu kombinovati u jedinstven VFS. • Particije predstavljaju podskupove cilindara diska.
Upravljanje particijama i fajlsistemom • Particije se mogu kreirati korišćenjem programa kao što su fdisk i cfdisk. • Fajlsistem na particiji se kreira komandom mkfs. • Za ext2/ext3 možemo koristiti mke2fs (-bcjLS). • Swap particija se priprema komandom mkswap. • Sistem se proverava pomoću komande fsck (-Ay). • e2fsck (-bcfpy) za ext2/ext3. • Podešavanja za ext2/ext3 pomoću tune2fs (-clL). • df daje podatke o zauzetom prostoru na particiji ili o inodama (-i).
Procesi • Proces je program u izvršenju. • Linux omogućava istovremeno izvršavanje više procesa. • Ovakvi procesi se izvršavaju u odvojenim virtualnim adresnim prostorima. • Komunikacija između procesa je moguća samo pomoću bezbednih mehanizama koje omogućava i kontroliše kernel.
Procesi • Procesi u toku izvršavanja koriste razne resurse sistema (procesor, memorija, fajlovi, fizički uređaji). • Linux mora da upravlja ovim resursima u cilju pravednog izvršavanja svih procesa. • Najvažniji resurs je procesor i prilikom upravljanja procesima bitno je maksimizovati njegovu iskorišćenost.
Procesi • Procesi se identifikuju identifikacionim brojevima (PID). • Informacije o procesima se čuvaju u nizu task_struct struktura (tzv. task vektor) koja sadrži sledeće informacije: • Stanje • Izvršno – proces se izvršava ili je spreman za izvršavanje • Čekanje – proces čeka neki događaj kao što je signal sistema ili hardverski resurs. • Zaustavljen • Zombi – proces koji je završio izvršavanje, ali su njegovi podaci iz nekog razloga i dalje u task vektoru.
Procesi • Informacije o rasporedu (politika, prioritet, preostalo vreme...) • Identifikatori (uid, gid, effektivni uid i gid...) • Informacije o mehanizmima međuprocesne komunikacije • Pokazivači na roditeljski proces, decu i procese sa istim roditeljem. • Informacije o vremenu izvršavanja i tajmerima. • Informacije o otvorenim fajlovima. • Informacije o virtualnoj memoriji. • Sadržaj registara procesora (processor context).
init • Po pokretanju sistema kreira se jedan proces – init čiji je PID 1 i koji vrši inicijalizaciju sistema npr. vezivanje root fajlsistema i pokretanje osnovnih procesa iz /etc/inittab. • init je krajnji roditeljski proces svih procesa na sistemu.
Kreiranje procesa • Novi proces se u Linux-u kreira na sledeći način: • Postojeći proces pravi svoju kopiju koja dobija svoj PID, adresni prostor... Ovo se radi pomoću fork sistemskog poziva. • Kopija pokreće pomoću exec sistemskog poziva program koji je trebalo pokrenuti, koji dobija njen adresni prostor. • Novi program nasleđuje okruženje, standardni ulaz, izlaz i izalz za greške, kao i prioritet izvršavanja koji je imao polazni proces. • Na ovaj način se pokreću svi procesi osim init-a.
Kompletan primer pokretanja programa • Prvi proces je init. On kreira svoju kopiju pomoću fork, a zatim kopija pomoću exec pokreće agetty program. • agetty pokreće login pomoću exec. • login pokreće bash pomoću exec. • bash pravi kopiju pomoću fork a ona pomoću exec pokreće program (npr. ls).
Interaktivni procesi • Interaktivni procesi se pokreću i kontrolišu iz terminala. • Interaktivni proces može biti izvršavan vezan za terminal kada samo on može da prima ulaz sa terminala ili u pozadini kada je terminal slobodan za pokretanje drugih programa. • Procesi se mogu poslati u pozadinu ili se iz nje vratiti na terminal.
Paketni (batch) procesi • Ovi procesi nisu vezani za terminal. • Oni se smeštaju u red iz koga se izvršavaju jedan po jedan.
Demonski procesi • Demonski procesi su serverski procesi koji se izvršavaju u pozadini. • Oni se obično pokreću u vreme podizanja sistema i čekaju dok nekom procesu ne zatreba njihova usluga. • Neki su: init, syslogd, sendmail, crond, agetty, inetd, named, httpd...
Signali • Signali predstavljaju način međuprocesne komunikacije. Služe da obaveste procese o nekim događajima u sistemu. • Procesi mogu na neki način da odgovore na signale ili da ih ignorišu. Jedini signali koji se ne mogu ignorisati su SIGSTOP i SIGKILL.
Slanje signala • Ctrl-C – SIGINT • Ctrl-Z – SIGSTOP • Ctrl-\ - SIGQUIT • kill (-l) • killall
Komande za rad sa procesima • jobs (-rspl) • fg, bg, & • ps (-eUup axrtu) • top