Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows telefon
  • O razvoju domaćih operativnih sistema. "nema razloga da razvijate sopstveni operativni sistem" Struktura i funkcije OS-a

O razvoju domaćih operativnih sistema. "nema razloga da razvijate sopstveni operativni sistem" Struktura i funkcije OS-a

Andrey Annenkov

Akademik Ruske akademije nauka, direktor Instituta za sistemsko programiranje Ruske akademije nauka, šef Odeljenja za sistemsko programiranje VMC MSU, predsednik Ruske asocijacije slobodnog softvera (RASPO) Viktor IVANNIKOV rekao je našem dopisniku o nivou ruske fundamentalne nauke, problemima obuke kadrova za IT industriju i izneo svoja razmišljanja o budućnosti operativnih sistema.

-- Po mišljenju laika, sistemsko programiranje su operativni sistemi, kompajleri...

Više sistema za upravljanje bazama podataka (DBMS) i razvojnih okruženja. Neću reći da je "sistemsko programiranje" ustaljeni termin. 60-ih smo to zvali ono što smo radili, ali smo radili ono što ste naveli. Kada je Andrej Nikolajevič Tihonov osnovao Fakultet za računarsku matematiku i kibernetiku (VMiK) na Moskovskom državnom univerzitetu, stvorio je tri odseka za programiranje. Jedan od njih zvao se Odsjek za sistemsko programiranje, a vodio ga je Mihail Romanovič Šura-Bura. Početkom 90-ih zamolio me je da ga zamijenim na ovom mjestu. Šta radi odjel? Tacno ono sto si naveo.

Da li je tačna još jedna ideja: sistemsko programiranje kod nas je postalo beznadežan posao nakon što je doneta odluka da se napravi ES računar, tj. o kopiranju IBM/360?

Delimično ste u pravu. Ovo se ne odnosi samo na ES računare, već i na SM računare koji su kopirali DEC mašine. Ovo je ozbiljno ograničilo naše inženjere i stisnulo opseg sistemskih programera. Iako moram reći da su naše škole na kompajlerima i operativnim sistemima bile jako jake. Tehnologije programiranja su također uvelike razvijene, posebno za odbrambene aplikacije. To su bili veoma veliki programi i morali ste biti u stanju da ih uradite. Što se tiče sistema upravljanja bazama podataka, nema mnogo toga.

- Zašto Rusija nema svoj operativni sistem?

Bilo je istraživačkih projekata, naravno. Ali domaće potražnje nema. Linux je posljednjih godina sve popularniji, a mi imamo timove uključene u ovaj projekat. Razvojna infrastruktura postoji, u njoj se može raditi. Zato što morate poći od stvarnosti: rusko tržište operativnih sistema (OS) je malo i nema razloga da razvijate sopstveni OS.

Linux je glavni pravac razvoja operativnih sistema i tu treba da zauzmemo mesto, jesam li vas dobro razumeo?

Da. Operativni sistem je mali program. Pa, sedam miliona redova. Ali sadrži aplikativni softver. Novi OS znači potrebu za prepisivanjem aplikacija. Koja je poenta ovoga? Industrijski možete koristiti Linux, sasvim je moguće raditi u njemu. Za istraživačke projekte možete napraviti vlastite operativne sisteme - na primjer, da podučavate studente na nekom malom operativnom sistemu.

Operativni sistemi su sada na rubu promjene. Previše je pokušaja da se napravi nešto inovativno. Da li dijelite ovaj utisak? Imamo li priliku da sami uradimo nešto u oblasti budućih operativnih sistema?

Da, takvi radovi se dešavaju u svijetu. One se, između ostalog, odnose na činjenicu da je potrebno napraviti mikrokernel operativnog sistema koji bi se sastojao ne od sedam miliona linija, već, recimo, od nekoliko desetina hiljada, ali tako da ovaj kod zaista ne sadrži greške. . To je lud zadatak. Ali za male programe to se može riješiti.

Takođe se dešava da osoba samo želi da napravi operativni sistem. Iz estetskih razloga. Zašto ne? Zašto ne smislite nešto novo? Naišao sam na ovo par puta. Dva dečaka, iz različitih gradova, ali ne iz Moskve, napravili su sopstvene operativne sisteme. Ovo je izuzetno zanimljivo. Oni su, naravno, dobili neku vještinu, dobili neku vrstu unutrašnjeg zadovoljstva. Jedan od njih je iz Omska, sada student.

- Kakva je uloga vašeg instituta u industriji?

Ne mogu reći da sam zadovoljan ovom ulogom, ali nivo je pristojan. Mnogi zajednički grantovi sa naučnim institucijama u Evropi i SAD. Naši momci nastupaju na najprestižnijim međunarodnim konferencijama. Nemam osećaj inferiornosti - igra je ravnopravna, a negde pobeđujemo. Pokazujemo dobar međunarodni nivo.

Dosta ugovora sa vodećim IT proizvođačima: Intel, Microsoft, IBM, Samsung. Svi projekti su vezani za razvoj novih tehnologija.

- A šta se dešava sa kadrovima u industriji?

Teška pozicija. Vrlo teško. Tržište zahtijeva znatno više ljudi - jednostavno ih nema dovoljno. I širom svijeta, i ovdje.

Ovo je specifično polje djelovanja, studentska takmičenja u programiranju. To je kao profesionalni sport. To je kao univerzitetska košarka u SAD -- igraju je profesionalci, a ne studenti amateri. Svako takmičenje u programiranju je prilično ograničen skup zadataka u određenoj oblasti: dinamičko programiranje, rad sa super velikim brojevima itd. Brzo shvatite značenje problema i brzo ga riješite. Potrebno je mnogo sati dnevnog treninga, što je slučaj sa pobjednicima.

Za državu je ovo, naravno, veliki prestiž. Ali pobjede na studentskim takmičenjima ni na koji način ne utiču na profesionalnu programersku aktivnost. Takmičenja - posebno, profesionalni nivo programera - posebno.

Uvek smo imali dovoljno talentovanih ljudi, a programiranje je veoma zgodna oblast da se izrazite. Jer Bog zna šta je za ovo potrebno. Kako u poeziji, tako i u matematici. Nema potrebe da se čekaju, na primer, testovi letenja, kao što to mora da uradi aeronautički inženjer. Pogotovo sada kada postoji internet. Moja generacija je iskusila pravu glad za informacijama - bilo je teško doći do naučnih članaka, komunicirati sa kolegama. Danas nema problema sa informacijama. Promijenjen je stil rada. Uradili smo sve od nule. A sada postoji softver otvorenog koda i možete učestvovati u njegovom razvoju. Mnogo mogućnosti za samoizražavanje.

"Pa zašto nema dovoljno ljudi?" Uostalom, najatraktivnije područje aktivnosti ... Koji je razlog?

Vjerovatno postoji nekoliko razloga. To je, naravno, i užasan nedostatak visokokvalifikovanog nastavnog kadra. Osoba koja predaje studentima mora imati vlastito profesionalno iskustvo u oblasti koju predaje. Nastavnik koji samo tumači udžbenike pa predaje ne može stvoriti školu.

Tradicije našeg - sovjetskog, ruskog - obrazovanja sastoje se u činjenici da nastavnik prenosi lično, čak i životno iskustvo. To je bila snaga našeg stila podučavanja. Ne govorim o Phystech modelu (Moskovski institut za fiziku i tehnologiju. -- Ed.), kada su pokušali da uključe studente u istraživački proces od mlađih godina.

U našem institutu radi oko stotinu studenata Fizičko-tehničkog instituta i Moskovskog državnog univerziteta, 40 diplomiranih studenata. Ali ko od njih ostaje u struci? Oko 20% (i ovo je dobar pokazatelj). Razlog je što momci rano počinju sa radom. Upravo su naučili samo da pišu programe i odvedeni su na posao sa punim radnim vremenom. Od treće godine. Ali oni i dalje moraju da uče i uče!

Neko je, naravno, primoran na to. U naše vrijeme, podučavanje, građevinski timovi i vagoni za istovar bili su sredstva za zaradu učenika. Sada ima više mogućnosti. To se odugovlači. Student vidi kako njegov drug zarađuje, recimo, hiljadu dolara, pa pomisli: zašto sam ja gori, i ja ću ići na posao. Iako ovo ne morate da radite, morate naučiti! Novac će doći s vremenom, a biće ih više ako sada provedete vrijeme učeći.

Možete li navesti imena ljudi koji su u našoj zemlji najviše uticali na razvoj oblasti znanja u kojoj radite?

U moje vrijeme bilo je malo programera, svi su se poznavali. Već sam spomenuo Mihaila Romanoviča Šura-Bura i Andreja Nikolajeviča Tihonova. I Andrej Petrovič Eršov, Svjatoslav Sergejevič Lavrov, Nikolaj Nikolajevič Govorun, Lev Nikolajevič Koroljov.

Naveo sam ljude koji su dobili akademska zvanja (Shura-Bura, inače, nije postao akademik). Ali bilo je mnogo zanimljivih ljudi, neverovatno talentovanih. Eduard Zinovijevič Ljubimski. Igor Borisovič Zadykhaylo. Bili su odlični programeri.

Zaista želim da uzmem knjigu sa natpisom "Ruska akademija nauka" na koricama, koja leži na vašem stolu.

Molim te. Ovo je priručnik.

Nije li za našu zemlju mnogo sedam i po stotina članova Ruske akademije nauka, a kako ocjenjujete sadašnji nivo naše fundamentalne nauke?

Tokom 1990-ih izgubili smo vojno-industrijski kompleks i čitave industrije. I nisam siguran da će to biti moguće sustići. Naravno, ima gubitaka i u Akademiji nauka. Ne govorim o broju akademika – to nije toliko bitno.

Izgubili smo nekoliko generacija naučnika. Sjećam se ranih 90-ih. Naši studenti, postdiplomci su otišli. Krenuli smo. Sloj specijalista je vrlo tanak, i ispire se. Ali bilo je jedinstvenih ljudi... Oni su i dalje ostali, ali oni su već stari ljudi. Akademija je izgubila nekoliko generacija i to je veoma ozbiljno. šta vidimo? Predavanja čitaju ljudi od 70-75 godina. Možete li zamisliti kakvo je opterećenje? Posao dobrog predavača sličan je radu umjetnika, veliki je fizički i emocionalni teret. A kada 75-godišnjaci čitaju predavanja nizu od 200 studenata, nije baš cool.

Dozvolite mi da se vratim na noviju istoriju Instituta. Nije bilo unutrašnje potrebe za radom, mislim na nove programske tehnologije, u zemlji. Nije bilo ni novca. Ljudi su emigrirali ili odlazili u banke. Tada sam postao direktor instituta.

Za mene je trening jedna od svetih krava. Nisam uzalud imenovao kompanije sa kojima imamo ugovore. Ovo su skupi sporazumi. Omogućavaju isplatu pristojne plate našim zaposlenima.

Ali situacija je zabrinjavajuća. A ono što zabrinjava nije koliko ima članova akademije. Da, čak i da ih ima bar pet hiljada, nije me briga. Nije to poenta, već činjenica da nema mladih momaka. Iako među članovima akademije još uvijek ima ljudi na koje može biti ponosna.

Vi ste predsednik RASPO (Rusko udruženje slobodnog softvera). Šta se danas dešava u organizaciji?

RASPO je stekao uznemirujuću slavu. Voleo bih da aktivnosti RASPO-a budu bliže stvarnim stvarima, tehničkim stvarima. Tako da se organizacije uključene u RASPO bave uspješnim razvojem softvera. Ili uspješna integracija, pošto u RASPO-u postoje kompanije integratori. Tako da rade komisije koje su stvorene u RASPO-u: pravne, tehničke itd. Sada je period kada svako treba da shvati zašto treba da bude u udruženju, šta može dati, dati društvu. Postoji mljevenje, i to vrlo teško. Postoji proces razvijanja međusobnog povjerenja – etičkog, profesionalnog. Nadam se da će se rezultati aktivnosti RASPO pojaviti za šest mjeseci ili godinu dana.

Ni kod nas ni na Zapadu ne nedostaje talentovanih programera.
Međutim, među njima je samo nekoliko ljudi u statusu gurua - kao, uostalom, i u bilo kojem drugom
oblasti. Takve majstore svog zanata morate poznavati iz viđenja (ili barem po imenu),
jer oni to definitivno zaslužuju. Danas vam predstavljam Marka
Russinovich, stručnjak za Windows i dalje.

Ko je gospodin Rusinovič?

U procesu rada na članku, došao sam do čudnog otkrića -
Ispostavilo se da je ime Marka Rusinoviča (Mark Russinovich) većini ljudi na
Danas ne govori apsolutno ništa. Dva koja su me najviše pogodila
programeri koji nikada nisu čuli za ovo. Bilo je to nakon razgovora sa
postalo im je jasno da je zaista potrebno pisati o Rusinoviču, jer
sramota, gospodo, sramota!

Dakle, Mark Rusinovič je američki programer i pisac, stručnjak za
svjetski poznat, jedan od vodećih stručnjaka u oblasti arhitekture i dizajna
operativni sistemi, a posebno Windows interne komponente. Godine 2006
ušao je u top 5 hakera na planeti, prema magazinu eWeek, zajedno sa Zhannom
Rutkowska i David Minor.

Na osnovu navedenog, lako je pretpostaviti da je Markovo obrazovanje najviše
da ni jedno ni drugo nije profil (međutim, istorija poznaje izuzetke čak i u takvim
sfere) - diplomirao je na Univerzitetu Carnegie Mellon, vlasnik dvije diplome:
diplomirao i doktorirao računarstvo.

Nakon što je diplomirao na univerzitetu, Russinovich nije ni razmišljao da se vrati od onoga što je preuzeo.
naravno, nakon što je neko vrijeme radio u istraživačkom centru IBM korporacije (u
stručnjak za operativne sisteme). Nije dugo ostao tamo,
ubrzo otišao na slobodno putovanje. 1996. godine zajedno sa drugim
programer softvera - Bryce Cogswell, Russinovich organizovao
njegovo preduzeće, koje je dobilo ime Winternals Software LP. Markova aktivnost
fokusiran na pisanje raznih besplatnih alata za administraciju i
MS Windows dijagnostika. Njegova kompanija je slijedila isti smjer, s jednim
samo mala razlika - proizvodi kompanije, u kojoj je Russinovich bio dugi niz godina
mjesto glavnog softverskog arhitekte je već plaćeno.

Russinovich i kolege distribuirali su svoje uslužne programe putem web stranice Sysinternals.com.
(ranije - ntinternals), a kako očito nisu iskusili nedostatak ideja, oni
danas iza njihovog autorstva stoji već više od 60 korisnih softballa. IN
kao najpoznatiji, možda, možete navesti Process Monitor (ranije
- Filemon i Regmon), Process Explorer, RootkitRevealer i uslužni programi poput NTFSDOS,
pomaže u radu i, zapravo, popunjava praznine u Windows-u (na primjer, NTFSDOS
čini sve NTFS particije vidljivim kada se radi pod MS-DOS). Iz najnovijeg uslužnog programa
slijedi jednostavnu činjenicu da je Russinovich napisao drajver NTFS sistema datoteka
pod DOS-om. Ovo je, naravno, daleko od glavnih njegovih zasluga, ali ne i posljednje.

Sve ove male pogodnosti možete preuzeti pojedinačno i
gotovi setovi. Na primjer, paket ispod
jednostavno ime Winternals Administrator Pak. I što je posebno zanimljivo
stranica je čak objavila verzije za Linux, što se sviđa stručnjacima za Windows
začudo, nisu zaboravili. I u kasnijim izdanjima postojale su verzije za
64-bitni sistemi. Jednom riječju, sve je išlo dobro dok se na horizontu nije pojavio Microsoft,
sjajno i strašno.

"Mali-mekani" ljudi jednostavno nisu mogli proći pored tako talentovanih stručnjaka. TO
U 2006. godini Winternals Software je bio zaista respektabilan, i
na Sysinternals možete pronaći uslužne programe za sve prilike. Ponuđena stranica
toliko zgodne i praktične stvari da čak i kratko upoznavanje s njima
bilo dovoljno da se razume - u Windows-u, zapravo, svega ovoga primetno nedostaje.

Logičan rezultat interesovanja Microsofta bila je kupovina
Winternals Software. Nakon transakcije je praznik života na Sysinternalsu
malo usporio. Na primjer, izvorni kod je nestao sa stranice, ranije besplatan
objavljene za mnoge softvere, verzije za Linux su nestale i odmah su se pojavile
uklonjeni uslužni programi poput NT Locksmith, koji su omogućili oporavak lozinke sa sistema
u skoro svim uslovima. Inače, Microsoft nije imao primjedbi.
protiv postojanja stranice i metoda distribucije softvera. U svakom slučaju, odmah
nakon spajanja, Russinovich je uvjerio javnost da će Sysinternals nastaviti sa radom
"skoro kao i obično."

U Microsoftu, Mark je dobio ponosnu titulu Technical Fellow, što je, zapravo,
označava člana tehničkog saveta korporacije. On je na ovoj poziciji do danas.
dan, radeći u korist odjela za platforme i usluge (Platform and Services
divizija). Na novom mestu, Rusinovichove dužnosti uključivale su rad na problemu
otkrivanje rootkita i kreiranje odgovarajućih alata za to, kao i
razvoj uslužnih programa za eliminaciju svih vrsta malware-programa. Ti možeš reći
da Mark Rusinovič čuva naše kompjutere od 2006 :).

Popularnost

Činjenica da se danas Mark posebno bavi pitanjima rootkita je prilično
radoznalo, jer su široke mase upoznale samu riječ "rootkit" tokom
puno mu hvala. To se dogodilo 2005. godine, čak i prije prelaska Rusinoviča u
Microsoft. Zatim naš heroj, u toku testiranja svog potomstva sa zvučnikom za
sam nazvao RootkitRevealer, otkrio je to na svom kompjuteru
dešava se neka sumnjiva aktivnost. Iskreno iznenađen, Mark kasnije
napisao je na svom blogu: “S obzirom na to da sam prilično oprezan pri korištenju
Internet i softver koji instaliram samo iz pouzdanih izvora, nisam imao pojma
gdje bi mogao pokupiti pravi rootkit, i, ako ne zbog sumnjivih imena datoteka,
Griješio bih za greške u RKR kodu.

Međutim, pokazalo se da to nisu greške RootkitRevealer-a, već u kojima je Russinovich neposredno prije
kupljeno na Amazon.com. Internet prodavnica je iskreno upozorila da je disk
zaštićeno od kopiranja pomoću DRM-a (upravljanje digitalnim pravima), ali ne
rekao šta tačno. Morao sam da uradim svoje istraživanje.
tokom kojih je postalo jasno da Sony ide dalje od svega razumnog i uklanja
nemoguće je rutkitirati drugačije nego ručno - čak je ušao u HKLM\System\CurrentControlSet\SafeBoot,
odnosno nastavio funkcionirati čak iu sigurnom načinu rada. Ogorčen
U dubini duše, Russinovich je, naravno, na kraju uspeo da se izbori sa infekcijom, ali
O ovoj epizodi nije prećutao, na svom blogu detaljno opisujući šta se dogodilo.
Informatička zajednica se uzburkala i za nekoliko sati ova informacija
pokupilo pola interneta, a potom i mejnstrim mediji. Kasnije on kao
ekspert je govorio na suđenju protiv Sonyja, dao brojne
intervjua i komentara za štampu i generalno su privukli povećanu
Pažnja. Mase su, zahvaljujući ovom incidentu, naučile šta je rootkit i
koliko je to loše, a i saznao za postojanje takve osobe kao što je Mark
Russinovich. Ispostavilo se da je Mark, neočekivano i za sebe, postao poznat.

Još jedno Rusinovičevo lice, koje mu je donelo određenu slavu -
Pisac. Između ostalog, Mark je koautor nekoliko knjiga, uključujući i ovu
bestseler, poput Microsoft Windows Internals („Interna struktura Microsoft OS-a
prozori"). Napisao je mnogo različitih članaka i priručnika, redovno.
baziran na TechNet Magazine i Windows IT Pro (ranije Windows
NT Magazine). Osim toga, Russinovich nastavlja da vodi blog, da pronađe koji
možete pratiti link blogs.technet.com/MarkRussinovich . Ovo je treća godina Markovog bloga
drži poziciju jednog od najboljih blogova među svim zaposlenima Microsofta.

Uvod

1. Operativni sistem

1.2 Struktura i funkcije OS-a

1.3 Istorija razvoja OS-a

2. Alternative Windows-u

2.1.1 Istorija razvoja

2.1.3 Upotreba

2.2.1 Istorija stvaranja

2.2.3 Upotreba

2.3.1 Istorija razvoja

2.3.3 Upotreba

Zaključak

Spisak korišćene literature

Uvod

U naše vrijeme informatička tehnologija sve više postaje dio svakodnevnog života, a kompjuter je već postao njen uobičajeni dio. Većini ljudi koji su imali iskustva sa računarom, riječi "ikona", "prozor", "desktop", "start meni" postale su poznate i razumljive, a logo četverobojne zastavice koja maše ne čudi. Želim da kažem da su mnogi korisnici personalnih računara toliko navikli na Windows da ponekad i ne znaju za postojanje drugih, alternativnih, operativnih sistema, a još više ne postavljaju sebi pitanje: „Šta je operativni sistem i kako on funkcionira?" Ali poznavanje svega ovoga neće biti korisno samo u modernom društvu, već može pomoći i u odabiru najprikladnije i najproduktivnije „ljuske“ za vaš računar. Zato sam odlučio da napravim kratak pregled operativnih sistema koji se danas koriste umjesto svima nama poznatih Windows-a.

U svom radu uglavnom sam koristio tri književna izvora. U udžbeniku E. Tanenbauma "Moderni operativni sistemi" uzeo sam informacije uglavnom o istoriji razvoja operativnih sistema. Knjiga "Operativni sistemi, okruženja i ljuske", čiji su autori Partyka T.L. i Popov II, koristio sam da definišem koncept operativnog sistema i karakteristike UNIX OS-a. I na kraju, knjiga V.G. Olifer, N.A. Olifer. "Mrežni operativni sistemi" su mi pomogli da okarakterišem glavne funkcije operativnog sistema i njegovu strukturu. Korišćeni su i različiti internet resursi, na primer, besplatna internet enciklopedija Wikipedia.

Moj apstrakt se sastoji od dva glavna poglavlja: operativni sistemi, gde sam pokušao da objasnim šta je operativni sistem, kako funkcioniše i čemu služi, i alternative Windows-u, gde direktno razmatram operativne sisteme koji se koriste umesto Windows-a. Treba napomenuti da sam, kako se tekst ne bi opterećivao ponavljanjima i radi jednostavnosti prezentacije, u svom sažetku koristio riječi "kompjuter", "mašina", "računar" kao sinonime za označavanje računara u našem današnjem razumijevanju. Smatrao sam prikladnim praviti fusnote izvorima samo u slučaju tačnog kopiranja ili uzimanja posebnih informacija, kao što su definicije ili klasifikacije. U svim ostalim slučajevima oslanjao sam se samo na informacije iz literarnih ili internetskih izvora, prepričavajući ih svojim riječima i izvodeći određene zaključke.

Moj sažetak nema za cilj da otkrijem koji je od operativnih sistema bolji. Svrha mog rada nije poređenje, već pregled operativnih sistema. Ovim sam se vodio pri pisanju sažetka. Prilikom karakterizacije svakog operativnog sistema, pokušao sam da obratim pažnju na njegove glavne prednosti i nedostatke, oblasti današnje upotrebe i izvučem zaključak o njegovoj konkurentnosti sa Windows-om.

1.Operativni sistem

1.1 Šta je operativni sistem?

Prije svega, vrijedi razumjeti šta je operativni sistem (OS).

Operativni sistem je skup programa koji obezbeđuje organizaciju računarskog procesa na računaru. Jednostavno rečeno, ovo je program dizajniran da sakrije od korisnika svu složenost "komunikacije" sa računarom. A poteškoća je mnogo više nego što se čini na prvi pogled. Bez pomoći OS-a, čak i tako jednostavna operacija kao što je pisanje datoteke na tvrdi disk, na koju smo navikli pritiskom na nekoliko tipki na tastaturi, za neupućenu osobu izgleda nemoguća. Moramo da upišemo na hard disk registruje adresu lokacije na kojoj želimo da sačuvamo naš fajl, adresu u glavnoj memoriji, broj bajtova za čuvanje, smer delovanja, u ovom slučaju pisanje. I to samo za snimanje jednog fajla!

Mislim da je čitava važnost pronalaska čak i prvih operativnih sistema postaje jasna, jer su omogućili da se osoba spasi od direktne komunikacije sa opremom, dajući programeru pogodniji sistem komandovanja.

OS služi kao veza između čovjeka i računara, pružajući korisniku jednostavan interfejs orijentisan na fajlove. Čini se da je čin pisanja datoteke na disk lakši nego da se brinete o pomicanju glava tvrdog diska, čekanju da se smjeste na svoje mjesto itd.

Ovo je samo opšta ideja operativnog sistema. Zatim predlažem da detaljnije razmotrimo OS.

1.2 Struktura i funkcije OS-a

Većina modernih operativnih sistema su modularni sistemi (tj. podijeljeni na zasebne funkcionalne dijelove). Naravno, ne postoji jedinstvena arhitektura OS-a, ali postoje univerzalni pristupi strukturiranju operativnih sistema. Najopćenitiji pristup je podijeliti sve njegove module u dvije grupe:

kernel - moduli koji obavljaju glavne funkcije OS-a;

moduli koji obavljaju pomoćne funkcije OS-a.

Moduli kernela upravljaju procesima, memorijom, I/O uređajima i tako dalje. Najčešće se koriste funkcije koje obavljaju moduli kernela, pa brzina njihovog izvršavanja određuje performanse cijelog sistema u cjelini. Da bi se osigurala velika brzina OS-a, većina modula kernela je stalno u RAM-u, tj. su rezidenti

Preostali OS moduli (pomoćni) obavljaju korisne, ali ne toliko bitne funkcije, na primjer, provjeru ispravnosti računalnih blokova, otkrivanje kvarova uređaja itd.

Često je vrlo teško povući granicu između programa uključenih u OS i jednostavnih aplikacija. Smatra se da su oni programi koji rade u kernel modu (tj. korisnik im nema hardverski pristup) uvijek dio OS-a, dok pomoćni programi rade u korisničkom modu (odnosno, korisnik ih može mijenjati po želji ).

Kernel je pokretačka snaga svih računarskih procesa, a kolaps kernela jednak je kolapsu čitavog sistema, zbog čega programeri posebnu pažnju posvećuju pouzdanosti kodova i štite ih od besplatne intervencije korisnika.

Pa, sada prijeđimo na glavne funkcije koje OS kao cjelina obavlja. Općenito se mogu podijeliti na dva najvažnija, a to je veza između osobe i mašine i upravljanje resursima same mašine. Već smo gore govorili o važnosti prve funkcije, ali vrijedi se detaljnije zadržati na drugoj.

Moderni računari se sastoje od procesora, memorije, senzora vremena, diskova, miševa, mrežnog interfejsa, štampača i ogromnog broja drugih uređaja. Dakle, funkcija OS je organizirana i kontrolirana distribucija računarskih resursa između različitih programa koji se takmiče za pravo korištenja. Zaista, zamislite šta bi se dogodilo da tri programa rade na istom računaru i da svi istovremeno pokušaju da odštampaju svoje podatke na istom štampaču. Najvjerovatnije bi prvih nekoliko redova na listu dolazilo iz prvog programa, sljedećih nekoliko iz drugog, itd. Rezultat je potpuna konfuzija. OS dovodi stvari u red u takvim situacijama. Operativni sistem dozvoljava pristup prvo samo jednom programu, a izlaz drugog sprema ga u privremenu datoteku i stavlja u red za štampanje. U ovom trenutku, drugi program nastavlja da radi, ne primjećujući da zapravo ne šalje podatke na pisač. Ispostavilo se da OS, takoreći, "prevari" program. Ovo je bio primjer privremene dodjele resursa. Jednako je važna i prostorna distribucija. Ona leži u činjenici da OS svakom programu dodjeljuje samo dio određenog resursa, a ne cijeli resurs. Najupečatljiviji primjer, po mom mišljenju, je distribucija nekoliko programa u RAM-u računara. Teško je i zamisliti koliko bi vremena bilo potrebno za obradu komandi kada bi svaki program dobio cjelokupnu količinu RAM-a, a svi ostali čekali svoj red!

Prisustvo svih ovih funkcija još jednom dokazuje neophodnost i važnost operativnih sistema. Bez operativnog sistema, računar je za korisnika samo gomila metala kojoj se ne može prići.

Na osnovu glavnih funkcija OS-a, određeni zahtjevi su vođeni njegovim razvojem:

· Modularnost;

· Mogućnost razvoja softverskog sistema;

· Lakoća učenja;

· Fleksibilnost i prilagodljivost;

· Kompatibilnost softvera različitih računara u okviru jedne hardverske platforme;

Minimalna ljudska intervencija;

· Parametrijska svestranost;

Funkcionalna redundantnost (prisustvo u sistemu nekoliko programa koji implementiraju istu funkciju);

· Funkcionalna selektivnost (mogućnost konfigurisanja sistema za određenog korisnika).

Može se lako zamisliti kroz koji dug i zanimljiv put je OS prošao u svom razvoju i sa kakvim su se problemima suočili programeri da bi zadovoljili sve gore navedene zahtjeve.

1.3 Istorija razvoja OS-a

Naravno, razvoj OS je usko povezan sa razvojem samih računara. Rani računari nisu predviđali operativne sisteme, pa su se svi procesi pokretanja i zaustavljanja programa, povezivanja eksternih uređaja obavljali ručno. Programiranje je vršeno isključivo na mašinskom jeziku. U to vrijeme mašine su se više koristile u istraživačke svrhe, a ne za rješavanje konkretnih praktičnih problema. Početkom 1950-ih, pronalaskom bušenih kartica - posebnih kartica na koje je prenošen algoritam za izvršavanje programa - situacija se donekle promijenila, ali općenito, održavanje i korištenje računara ostalo je neprihvatljivo teško.

Prvi korak ka olakšavanju komunikacije sa mašinom napravljen je kasnih 50-ih sa izumom batch obrade. Ideja je bila sastaviti kompletan paket zadataka (špil bušenih karata), prenijeti ih na magnetnu traku, a zatim, koristeći poseban program (prototip modernog OS), uzastopno ih pokrenuti za izvršenje bez sudjelovanja operater. Takva obrada zadataka značajno je smanjila vrijeme za pomoćne aktivnosti organizacije samog procesa proračuna. Ljudi više nisu morali trčati po prostoriji kako bi prenijeli rezultate obrade podataka: sada su izlazili na štampač van mreže (tj. bez komunikacije sa glavnim računarom). Međutim, postojao je i značajan nedostatak: zbog činjenice da su programeri izgubili direktan pristup računarima, bilo je potrebno mnogo više vremena da se isprave greške u programima.

Sljedeći korak ka modernim operativnim sistemima bio je pronalazak principa multitaskinga. Ranije je glavni procesor većinu vremena mogao biti neaktivan, čekajući I/O naredbu s trake ili drugog uređaja. Naravno, to je bilo vrlo nezgodno, a u slučaju komercijalne obrade informacija, takav zastoj bi mogao zauzeti 80% radnog vremena. Rješenje problema je bilo podijeliti memoriju na nekoliko dijelova, od kojih je svaki dobio poseban zadatak. Sada procesor nije čekao završetak I/O operacije, već je prešao na program koji je već bio spreman za izvršenje.

Nakon multitaskinga došao je način podjele vremena. Ovaj način rada je dizajniran za multiterminalne sisteme, kada svaki korisnik može raditi na svom terminalu. Na primjer, na sistemu se moglo registrovati dvadeset korisnika, a ako je njih sedamnaest razmišljalo, pilo kafu ili se bavilo svojim poslom, centralna procesorska jedinica je dobila tri korisnika koja su željela raditi na mašini. Međutim, u ovakvim sistemima efikasnost korištenja opreme je bila niža, što je bila cijena za praktičnost.

Sve ove inovacije su, naravno, zahtevale pisanje operativnih sistema koji bi se mogli koristiti i na velikim i na malim mašinama, kako sa velikim brojem perifernih uređaja tako i sa malim brojem, u komercijalnom polju i na polju naučnih istraživanja. Bilo je veoma teško ispuniti sve ove zahtjeve. Operativni sistemi koji su tada napisani sadržavali su milione redova, bili su veoma složeni i sadržavali su hiljade grešaka. Međutim, oni su takođe doprinijeli razvoju OS-a: neke od tehnika koje su korišćene u prvim operativnim sistemima su još uvek žive i prisutne u modernim OS.

Do sredine 1970-ih, miniračunari su postali široko rasprostranjeni. Njihova arhitektura je znatno pojednostavljena, a resursi ograničeni. Sve se to odražava na OS za takve računare. Postali su kompaktniji i mnogo bliži konceptima modernih operativnih sistema. Najčešći operativni sistem tog vremena bio je UNIX, čiju ćemo povijest razmotriti kasnije.

Prava revolucija je bio izum ranih 80-ih silicijumskih mikrokola i, kao rezultat, pojava prvih personalnih računara (PC). Što se tiče arhitekture, računari se nisu razlikovali od mini računara, ali je njihova cena bila mnogo niža. To je omogućilo da ih kupuju ne samo univerziteti, preduzeća ili vladine agencije, već i obični ljudi. Tada popularni UNIX operativni sistem bio je previše složen da bi ga neprofesionalci koristili. Zadatak je bio stvoriti prijateljski interfejs, tj. namijenjeno korisniku koji ništa ne zna i ne želi ništa znati. Tu se pojavio dobro poznati MS-DOS (MicroSoftDiskOperatingSystem). Treba napomenuti da je u početku MS-DOS imao interfejs komandne linije, što nije bilo baš zgodno. I mnogo kasnije, stvoreno je grafičko okruženje za MS-DOS, nazvano Windows, koje se kasnije formiralo u nezavisan OS. Ona je tada utjelovila ideju grafičkog interfejsa, koji se sastoji od prozora, ikona, raznih menija i miša.

Iz istorije razvoja OS-a, može se videti da je glavni zadatak operativnog sistema uvek bio da obezbedi pogodnu interakciju između osobe i mašine. Čini se da savremeni operativni sistemi rade najbolje što mogu sa ovim zadatkom. Međutim, iz godine u godinu pojavljuje se sve više novih verzija OS-a, naprednijih i sa novim karakteristikama, a istorija razvoja operativnih sistema se sve više nastavlja.

2. Alternative Windows-u

2.1 UNIX OS

2.1.1 Istorija razvoja

UNIX je prvobitno razvio Ken Thompson iz Bell Laboratories 1969. godine kao multitasking sistem za mini računare i mainframe (računare velike sobe).

Vjerujem da je veliki dio zašto je UNIX postao toliko popularan bila mogućnost prijenosa sistema na različite računare. Prije toga, za svaku konkretnu mašinu, programeri su morali iznova pisati sisteme, što, naravno, nije bilo zabavno. U UNIX-u je ovaj problem riješen. Napisan je na jeziku visokog nivoa - C. Ovo je omogućilo izdavanje samo jedne verzije OS-a, koja se potom mogla kompajlirati (prevesti) na različitim mašinama.

1974. godine UNIX je dat univerzitetima u "obrazovne svrhe". Štaviše, dobio je kompletan set izvornih tekstova, što je omogućilo vlasnicima da ga beskonačno ispravljaju. Tako je UNIX našao komercijalnu upotrebu i postao jedan od najčešćih operativnih sistema. Jedini problem je bio u tome što je svaki proizvođač dodao svoja nestandardna poboljšanja, tako da dugo vremena nisu mogli napisati softverski paket za UNIX kako bi se mogli pokrenuti na bilo kojoj verziji istog. Rješenje ovog problema bilo je stvaranje POSIX standarda, koji je uključivao najčešće procedure koje se nalaze u većini verzija UNIX-a. Ovo je donekle pojednostavilo situaciju i donelo jedinstvo u razvoju UNIX verzija.

Do danas postoji ogroman broj klonova UNIX sistema, uključujući Linux, MINIX, SystemV, Solaries, XENIX, ali svi ovi operativni sistemi zadržavaju osnovne principe implementacije algoritama, struktura podataka i sistemskih poziva.

Najzanimljiviji od navedenih operativnih sistema je Linux. Posebnost ovog klona UNIX-a je njegov poslovni model: to je besplatan softver. Za razliku od Windowsa, Mac OS-a i komercijalnih sistema sličnih UNIX-u, Linux nema centar za geografski razvoj. Ne postoji organizacija koja bi posjedovala ovaj sistem. Programi za Linux rezultat su rada hiljada projekata. Mnogi projekti okupljaju hakere iz cijelog svijeta koji se poznaju samo iz prepiske. Svako može kreirati vlastiti projekat ili se pridružiti postojećem, a ako bude uspješan, rezultati rada će postati poznati milionima korisnika. Korisnici učestvuju u testiranju besplatnog softvera, komuniciraju direktno sa programerima, što im omogućava da brzo pronađu i poprave greške i implementiraju nove funkcije. Ovaj pristup određuje ekonomsku efikasnost i popularnost Linuxa. Danas se ovaj OS koristi u mnogim uređajima, počevši od mobilnih telefona, rutera pa sve do bespilotnih vojnih vozila.

Na osnovu raznolikosti ove porodice OS-a, možemo zaključiti da je UNIX odigrao važnu ulogu u razvoju operativnih sistema i, bez preterivanja, nazvati ga istorijski jednim od najvažnijih.

2.1.2 Glavne prednosti i nedostaci

Glavne prednosti UNIX-a prvobitno su bile postavljene u ideji koja je slijedila kada je stvoren. "Operativni sistem se mora oslanjati na mali broj nehardverskih koncepata koji zajedno pružaju mobilno okruženje za razvoj i pokretanje aplikacija." Na osnovu toga možemo razlikovati dva glavna "plusa" UNIX OS-a: jednostavnost i mobilnost. Ovo je možda glavna stvar koja ga razlikuje od ostalih operativnih sistema.

Jednostavnost znači da je UNIX, zbog kompaktnosti kernela, nezahtjevan za računalne resurse (za razliku od istog Windowsa). Osim toga, UNIX sadrži mnoge druge prednosti.

Prvo, pojednostavljeni model datoteke koji vam omogućava da kreirate neograničen broj poddirektorija na vašem čvrstom disku.

Drugo, koristi samo šest osnovnih naredbi. Rad proizvodnje viljuške. Po "fork", proces stvara tačnu kopiju samog sebe. Na ovaj način dobijate dva identična primerka. Pokrenuta kopija najčešće izvršava drugi proces - zamjenjuje se novim programom. Ovo je druga osnovna operacija. Preostala četiri poziva - open (open), close (close), read (čitaj) i write (write) - služe za pristup datotekama. Ovih šest sistemskih poziva su jednostavne operacije od kojih je napravljen Unix. Postoji, naravno, bezbroj drugih komandi, ali poznavajući ovih pet, lako možete izvoditi osnovne operacije u UNIX okruženju.

Treće, značajno pojednostavljenje UNIX-a bila je upotreba dovoljno razvijenog komandnog jezika u osnovnom interfejsu sistema. Čak i danas, sa pojavom brojnih grafičkih ljuski (kao što je XWindowSystem), postoji mnogo korisnika koji preferiraju primarni interfejs komandne linije.

UNIX prenosivost znači da se može koristiti na različitim hardverskim platformama. Osim toga, postoji mogućnost pokretanja programa od strane više korisnika odjednom sa jedne mašine, što olakšava kreiranje mreža. Inače, zahvaljujući ovom principu multiterminalnosti, UNIX je odigrao veliku ulogu u razvoju Interneta.

Naravno, UNIX operativni sistem nije savršen. Možete pronaći primjere desetina drugih operativnih sistema koji su pametniji, pružaju moćnije alate za programiranje itd. Glavni nedostaci sistema uključuju:

· Nije podržan režim u realnom vremenu (vrsta multitaskinga, u kojem sam operativni sistem prenosi kontrolu sa jednog izvršnog programa na drugi);

Slaba otpornost na kvarove hardvera;

Smanjena efikasnost u rješavanju iste vrste zadataka;

Slabo razvijena sredstva interakcije i sinhronizacije procesi.

Osim toga, primjećeno je da su nedavne verzije UNIX-a pretjerano zagušene.

Međutim, uprkos svim svojim nedostacima, UNIX porodica ostaje jedna od najpopularnijih na tržištu iu budućnosti može se dobro takmičiti sa Windowsima.

2.1.3 Upotreba

Prvobitno dizajnirani da opslužuju mainframe, danas se operativni sistemi slični UNIX-u uglavnom koriste za opsluživanje servera, ali postoje verzije koje su sasvim prikladne za kućnu ili kancelarijsku upotrebu. Također, UNIX je, zbog svoje moćne kombinacije standardnih naredbi, idealan za kreiranje aplikacija.

UNIX je dobar za napredne korisnike jer zahtijeva poznavanje principa funkcionisanja procesa koji se u njemu odvijaju. Stoga je teško pogodan za "početnike". Međutim, pravi multitasking i usko dijeljenje memorije čine sistem izuzetno pouzdanim, a ako vam je potreban pouzdan, fleksibilan operativni sistem, UNIX će vam odgovarati sto posto. Zato je UNIX linija toliko popularna ovih dana. Što se tiče pouzdanosti, većina modernih operativnih sistema teško se može porediti sa njim. Nije slučajno da vojne snage i vladine organizacije često daju prednost operativnim sistemima sličnim UNIX-u.

Dakle, nastao gotovo kao projekat igračke, danas se UNIX porodica operativnih sistema uspješno implementira u različitim oblastima djelovanja: od banaka i državnih struktura, do ureda i supermarketa.

2.2 OS/2

2.2.1 Istorija stvaranja

OS/2 operativni sistem je započeo kao zajednički razvoj između IBM-a i Microsofta (1984). Međutim, projekat se kasnije raspao, a Microsoft je prepravio svoju verziju OS / 2 u WindowsNT, a sam OS / 2 je nastavio da razvija IBM, koji još uvek nije posvetio dužnu pažnju ovom operativnom sistemu. Generalno, konkurencija za liderstvo na tržištu OS između ovih kompanija uveliko je uticala na dalji razvoj operativnih sistema koje su razvili i Microsoft i IBM.

OS/2 je prvobitno zamišljen kao zamjena za MS-DOS. Već tada je bilo jasno da MS-DOS ima niz značajnih nedostataka povezanih sa ograničenom memorijom i sistemom datoteka, te nije mogao iskoristiti puni potencijal kompjutera tog vremena. Koncepti koji stoje iza novog OS-a bili su obećavajući: OS/2 bi podržavao preventivni multitasking, virtuelnu memoriju, grafičko korisničko sučelje i pokretanje DOS aplikacija. Međutim, većina ovih planova nije se ostvarila.

Prva verzija OS/2, 1.0, objavljena 1987. godine, sadržavala je većinu funkcija potrebnih za višezadaćni OS. Međutim, nije imao grafički prikaz, a nedostajali su i drajveri za mnoge popularne štampače i druge uređaje. Osim toga, bila je prilično zahtjevna za kompjuterske resurse; izvršenje i interakcija DOS aplikacija je bila veoma spora, a ponekad i nemoguća; korisnik je istovremeno mogao raditi samo sa jednom aplikacijom, dok su ostali procesi bili pokrenuti u pozadini. Svi ovi nedostaci nisu dozvolili OS / 2 da "raznese" tržište operativnih sistema poput UNIX-a. Većina korisnika se odlučila za poznati, iako ne idealan, MS-DOS, ili je prešla na Windows 3.1, koji je Microsoft objavio otprilike u isto vrijeme.

Mislim da je IBM samo žurio da objavi prve verzije OS/2. Inače bi ovaj operativni sistem mogao da se takmiči sa Windows i MS-DOS linijom.

Naravno, sa svakom novom verzijom OS/2 postajalo je sve bolje i bolje. Već u OS/2 v2.00 (1992) otklonjeni su glavni nedostaci prve verzije, osim toga, to je bio prvi dostupan i funkcionalan 32-bitni operativni sistem za personalne računare, što je nesumnjivo privuklo pažnju na njega na OS tržištu . Nakon toga uslijedilo je izdavanje prilično uspješnih mrežnih verzija OS / 2 (na primjer, Warp 3, WarpConnect, Warp 4). Od tada su operativni sistemi slični OS/2 dizajnirani više kao mrežni operativni sistemi.

Godine 1997. postojali su dobri razlozi da se kaže da OS/2 živi svoj život kao operativni sistem. Na primjer, IBM službeno najavljuje povlačenje OS/2 sa potrošačkog tržišta, OS/2 razvojni odjel je raspušten, a korisnicima je savjetovano da pređu na druge operativne sisteme. Međutim, vidjevši da je svijet sve više uronjen u sferu poslovanja i Interneta, IBM se i dalje vraća podršci OS / 2 sistemima i 1999. uvodi novu verziju: Warp4.5 ServerforE-business (Aurora).

Dakle, porodica OS/2 sistema ima vrlo realne razvojne izglede, a o nestanku ovog OS-a sa tržišta je u najmanju ruku preuranjeno govoriti.

2.2.2 Glavne prednosti i nedostaci

Prilično je teško izdvojiti neke opšte prednosti sistema OS/2 porodice, budući da svaka verzija ima svoje prednosti i nedostatke, koje možda neće biti prisutne u narednim nadogradnjama. Međutim, mislim da se sljedeće može smatrati zajedničkim za sve verzije:

· moćna podrška za Internet i umrežavanje (posebno za mrežne verzije);

stabilan rad jezgra sistema, što znači i pouzdanost.

Glavni i najveći nedostatak OS/2 je vrlo mala količina softvera i aplikacija napisanih za ovaj operativni sistem. Djelomično, mislim da to ima veze s vlastitom politikom IBM-a. Na početku razvoja OS/2, IBM nije shvaćao sistem dovoljno ozbiljno i nije sarađivao sa programerima softvera. Također je iznenađujuće da danas nema drajvera za ovaj sistem na službenoj web stranici IBM-a. Osim toga, nijedna verzija OS/2 ne dolazi sa primarnim kodovima, tj. IBM im, uprkos brojnim zahtjevima korisnika, uskraćuje mogućnost da samostalno razvijaju sistem, kao što je to učinjeno u slučaju Linuxa. (Iako pošteno radi, treba napomenuti da je trenutno u pripremi za izdavanje nova verzija OS/2, nazvana osFree, što samo podrazumijeva otvoreni izvorni kod.) Šta je razlog tako čudnog stava IBM-a prema njegovom stvaranju ostaje pitanje misterija za mene.

Relativni nedostatak sistema može se nazvati prilično teškim i zbunjujućim procesom instaliranja OS-a na računar. Iako, za iskusne korisnike, malo je vjerovatno da će to biti problem.

Inače, OS/2 je stabilan sistem koji samouvjereno zauzima svoju (iako malu) nišu na tržištu operativnih sistema.

2.2.3 Upotreba

Danas mnoge od najvećih korporacija u Evropi veruju OS/2 za upravljanje svojim računarskim mrežama, ali treba napomenuti da se OS/2 ne koristi široko u Rusiji. OS/2 nikada nije bio posebno popularan kao kućni operativni sistem, ostajući u senci Windows-a.

Naravno, OS / 2 se koristi kao server, gdje se od njega zahtijevaju pouzdanost i performanse. Zbog svoje stabilnosti OS/2 se koristi u bankarstvu kao operativni sistem za bankomate. OS / 2 je također pogodan za korištenje gdje trebate obraditi velike količine informacija, na primjer, na meteorološkim stanicama ili u polju naučnih istraživanja. Ređe se ovaj sistem koristi za razvoj aplikacija. Zanimljivo je napomenuti da je OS/2 od tada stekao određenu popularnost među igračima njen konflikt aplikacija je mnogo manji nego kod iste Windows linije.

Dakle, upoznali smo se sa još jednom alternativom Windows porodici. Međutim, sumnjam da OS/2 porodica može snažno pritisnuti Windows na OS tržištu, barem danas. Prije svega, to je zbog male količine softvera za ovaj OS, a samim tim i niske popularnosti među vlasnicima PC-a. Međutim, nemojte olako shvaćati OS/2 i bacati ga s vage, jer. kada IBM posveti dovoljno pažnje svom razvoju, odmah će otkriti svoj puni potencijal.

2.3 macOS

2.3.1 Istorija razvoja

Vrijedi odmah napomenuti da je MacOS namijenjen instalaciji na računare proizvođača Apple. Karakteristika ovih računara je da i softver i „unutrašnjost“ samog računara sklapa jedna kompanija, odnosno Apple. Ovakav pristup omogućava postizanje maksimalne ravnoteže između softvera i hardvera koji će se uz njega koristiti, što, zauzvrat, praktički eliminira mogućnost hardverskih sukoba sa kojima se često susrećemo prilikom korištenja IBMPC-a. Međutim, takvi računari se ne mogu nazvati idealnim. Činjenica je da se radi o monolitnim računarima, tj. gotovo je nemoguće povezati nove uređaje ili nadograditi stare u njima. Ovo, vjerujem, može biti ozbiljan nedostatak za neke korisnike, posebno one koji su navikli da sami prave kompjuter.

Važno je napomenuti da su upravo Macintosh (naime, tako se zovu Appleovi računari) bili prvi personalni računari, a MacOS je bio prvi komercijalni operativni sistem koji je korisniku nudio ne interfejs komandne linije, već takav grafički koji nam je poznat danas, sa prozorima, fasciklama, ikonama i pokazivačem miša. Izdavanje ovog operativnog sistema predstavljalo je pravu revoluciju u svetu PC računara, a mnoge tehnike korišćene u njemu postale su osnova za razvoj budućih operativnih sistema. Na primjer, OCWindows GUI je skoro identičan MacOS GUI. Dakle, možemo sa sigurnošću reći da je MacOS svojevrsni rodonačelnik Windows-a.

Prva verzija MacOS-a objavljena je 1984. zajedno sa prvim Appleovim Macintosh personalnim računarom. Zauzeo je samo 216 KB prostora na disku i radio je čak i uz uobičajeno kopiranje sa jednog računara na drugi. Ali takav proizvod je bio potpuno nezaštićen od krivotvorenja, pa su programeri sve svoje vrijeme posvetili ne samo njegovom tehničkom poboljšanju, proširenju funkcionalnosti i stabilnosti, već i zaštiti. Glavni nedostatak prve verzije bio je to što je samo jedan „viseći“ program doveo do kvara cijelog sistema, tj. nije bilo preventivnog multitaskinga. Ovaj nedostatak je ispravljen u sljedećim verzijama OS-a. Nakon prve verzije MacOS-a, izašlo je devet njegovih modifikacija. Sa svakom verzijom MacOS-a, postao je šareniji, efektniji, praktičniji za korištenje i pouzdaniji.

Do danas, najnovija verzija ovog operativnog sistema je MacOSX, koji je upio sve najbolje od prethodnih verzija, i po mom mišljenju se s pravom može nazvati jednim od najpovoljnijih operativnih sistema.

2.3.2 Glavne prednosti i nedostaci

Sporovi o tome šta je bolje od IBMPC platforme ili Macintosha traju već duže vrijeme. Sa moje tačke gledišta, pitanje prednosti i nedostataka Macintosh računara, a samim tim i MacOS operativnog sistema, prilično je relativno.

Tradicionalno, nedostaci MacOS-a uključuju visoku cijenu. Da, zaista, cijena Apple računara je skoro dvostruko veća od cijene običnih IBMPC-a. Ali za ovaj novac dobijate prelep, sa svojom posebnom ličnošću računar odličnog kvaliteta i savremenim operativnim sistemom, dizajniran sa svim najnovijim tehnologijama i naučnim dostignućima. U isto vrijeme, MacOS OS je kreiran posebno za Macintosh računare, koji vam omogućava da koristite mogućnosti željeza sto posto, a ne preplaćujete novac za nove artikle za koje ne znate kada i čime možete procijeniti.

Drugi nedostatak je ograničen raspon Macintosh računara. Ispostavilo se da Apple tjera korisnika u određeni okvir: na kraju krajeva, da bi uživao u svim prednostima MacOS-a, on jednostavno mora kupiti Macintosh. Ali s druge strane, kada dođete u prodavnicu, ne morate dugo razmišljati koji Macintosh vrijedi odabrati, dok će kvalitet svakog od njih biti na najvišem nivou.

Još jedan neprijatan problem je bliskost MacOS-a, što prvenstveno utiče na nedostatak softvera za njega od strane programera treće strane. Do sada postoje još neki važni softverski proizvodi napisani za Macintosh, a igrači neće moći da lutaju, jer su igre razvijene prvenstveno za Windows, a zatim i za MacOS, a neke igračke uopšte nećete naći. Ali vrijeme ne stoji i pojavljuju se organizacije koje razvijaju softverske proizvode za MacOS, a poznati programeri softvera zainteresirani su da njihov proizvod radi na Macintosh računarima. Ali što je najvažnije, Apple je uključio aplikaciju BootCamp u najnoviju verziju MaOS-a, što olakšava instalaciju Windows operativnog sistema na Macintosh računare i korištenje bilo kojeg softvera na njima.

Također, među nesumnjive prednosti MacOS-a, mislim, spada i odsustvo softverskih i hardverskih sukoba, čime se isti Windowsi uopće ne mogu pohvaliti, te gotovo potpuna zaštita od virusa, crva i drugih zlih duhova, jer je broj malvera koji može zaraziti MacOS je skoro jednak nuli. Stoga smatram da ovaj operativni sistem ipak ima više prednosti nego nedostataka.

Rasprava o tome šta je bolje može se nastaviti u nedogled, ali ako pitate one koji su se odlučili i kupili Macintosh računar da li pristaju da ga zamijene za drugi, najvjerovatnije ćete dobiti negativan odgovor. Macintosh ljudi vole svoje računare. To se može objasniti činjenicom da Apple-ov menadžment svoje proizvode stvara prvenstveno za ljude. Njihova glavna strategija je ljepota i praktičnost. Uz to, sav njihov razvoj ide u korak s vremenom, pa čak i malo ispred njega. Kada kupujete Macintosh računar sa MacOS-om, možete biti sigurni da neće zastareti za šest meseci, ali će biti relevantan još dugo.

.3.3 Upotreba

S obzirom na sve prednosti MacOS-a, odmah se postavlja pitanje zašto on još uvijek nije toliko rasprostranjen kao njegov glavni konkurent, dobro poznati Windows OS. Odgovor na njega proizlazi iz gore navedenih nedostataka: visoka cijena, nedostatak softvera, ograničeni modeli itd. Stoga većina korisnika preferira poznatu IBMPC konfiguraciju sa poznatim Windowsima.

Međutim, uprkos tome, MacOS je i dalje stekao značajnu popularnost u poslovnom polju i među profesionalcima koji se bave kompjuterskom grafikom i štampanjem.

Na osnovu toga, mislim da nije daleko vrijeme kada će Apple računari sa MacOS operativnim sistemom postati toliko popularni (a za to imaju sve preduslove) da će konkurirati Microsoftu sa njegovim Windows OS-om.

Zaključak

Dakle, ovdje smo završili pregled alternativa Windows-u. Naravno, postoji mnogo drugih operativnih sistema, osim onih u mom radu, koji mogu zamijeniti Windows. Pokušao sam da razmotrim samo one koje se najčešće koriste. Možemo sa tačnošću reći da među njima nema „loših“ ili „dobrih“. Svaki od razmatranih operativnih sistema ima svoje prednosti i nedostatke. Njihova upotreba ovisi o obimu primjene, a shodno tome i zadacima koji se pred njih postavljaju. Neki operativni sistemi su idealni za obradu velikih količina informacija i pouzdani su, na primjer, OS/2 linija sistema. Drugi se razlikuju po dostupnosti, kao što je Linux. Drugi pak oduševljavaju svojom šarenilom i upadljivošću, na primjer, MacOS.

Naravno, teško je ne složiti se da će zamisao Microsofta još dugo biti lider među softverima na OS tržištu, posebno među „kućnim“ operativnim sistemima. Za to postoje sasvim razumljivi razlozi: masovnost, pristupačnost, jednostavnost korištenja itd. Međutim, ima dosta vrijednih konkurenata, pogodnih i za kućnu upotrebu. Vjerujem da je najupečatljiviji od ovih sistema MacOS. Ovaj sistem ima svoje nedostatke, ali se svi oni gube u pozadini njegove pogodnosti i pouzdanosti. Osim toga, Windows također nije idealan sistem. Sami sukobi aplikacija nešto vrijede, a zahtjevi Windowsa za hardverskim resursima ne mogu se nazvati niskim.

U svakom slučaju, pri odabiru operativnog sistema ne treba se voditi modnim trendovima. Kao što sam rekao, morate prije svega krenuti od zadataka koje OS treba da obavlja. Uostalom, kako smo saznali na samom početku rada, operativni sistem je glavna karika kada osoba radi sa računarom. Uspjeh ovog rada, i samo njegova pogodnost, može uvelike ovisiti o izboru OS-a.


1. Olifer V.G., Olifer N.A. mrežni operativni sistemi. - Sankt Peterburg: Peter, 2002 -544 str.

2. - 400s.

3. Tanenbaum E. Moderni operativni sistemi. 2nd ed. - Sankt Peterburg: Petar, 2002. - 1040-e.

4. Kuznjecov S. "UNIX je mrtav, ali ja sam živ" - članak na Internetu (http://www.citforum.ru/database/articles/art_7.shtml)

5. SVRHA I FUNKCIJE OPERATIVNOG SISTEMA. – Članak na Internetu (http://sapr.mgsu.ru/biblio/ibm/contents/nazn.htm#UNIX)

6. www.maclinks.ru - stranica posvećena MacOS-u

7. Wikipedia - besplatna enciklopedija (www.wikipedia.org)


Partyka T.L., Popov I.I. Operativni sistemi, okruženja i školjke: Vodič. - M.: FORUM: INFRA - M, 2003.

V.G. Olifer, N.A. Olifer. mrežni operativni sistemi. - Sankt Peterburg: Petar, 2002

Tanenbaum E. Moderni operativni sistemi. 2nd ed. - Sankt Peterburg: Petar, 2002

Partyka T.L., Popov I.I. Operativni sistemi, okruženja i školjke: Vodič. - M.: FORUM: INFRA - M, 2003.

Kuznjecov S. "UNIX je mrtav, ali ja sam još uvek živ." - Online članak. (http://www.citforum.ru/database/articles/art_7.shtml)

Wikipedia - besplatna enciklopedija (www.wikipedia.org)

NAMENA I FUNKCIJE OPERACIJSKOG SISTEMA. – Članak na Internetu (http://sapr.mgsu.ru/biblio/ibm/contents/nazn.htm#UNIX)

Operativni sistemi

Operativni sistemi

Predavanje #5

Operativni sistem

1. Svrha i glavne funkcije operativnog sistema.

Pod pojmom "operativni sistem" podrazumijevamo kompleks

programe čije su funkcije kontrola upotrebe i

distribucija resursa računarskog sistema. Rekli smo to u

kompjuterski sistem ima fizičke resurse, odnosno one resurse koji

povezan sa stvarnim hardverom (magnetni diskovi, RAM,

procesorsko vreme). Također smo rekli da je u sistemu za uspješno

funkcioniranja, postoje logički (ponekad se nazivaju virtualnim)

resurse, odnosno resurse koji u obliku stvarne opreme nisu

postoje, ali se sprovode u obliku nekih sredstava koje obezbeđuje

korisnik. Fizičke i logičke resurse ćemo jednostavno pozvati kao

resursi računarskog sistema.

Bilo koji operativni sistem (OS) radi sa nekim entitetima,

koji zajedno sa načinima upravljanja njima u velikoj meri karakterišu njenu

svojstva. Takvi entiteti mogu uključivati ​​koncepte fajla, procesa,

objekat itd. Svaki OS ima svoj skup takvih entiteta. Na primjer, u OS

Windows NT takvi entiteti uključuju koncept objekta, i to već kroz

upravljanje ovim subjektom ima sve moguće funkcije. Ako

pogledajmo UNIX, onda je u njemu takav entitet, prije svega

koncept datoteke, i sekundarno, koncept procesa.

Proces je neki entitet koji je praktično prisutan

svi OS. Proces je program koji ima vlasništvo nad resursima.

Razmotrimo dva programa (tj. kod i podatke koji se koriste) i

razmotrite sve resurse koji pripadaju programu (to mogu biti:

RAM prostor, podaci na eksternom uređaju za pohranu,

vlasništvo nad drugim resursima, kao što su komunikacione linije). Ako setovi

resursi koji pripadaju dva programa su isti, u ovom slučaju mi ​​to ne činimo

o ovim programima možemo govoriti kao o dva procesa – ovo je jedan

proces. Ako svaki program ima svoj skup resursa, štaviše, ove

skupovi se mogu seći, ali se ne poklapati, onda govorimo o dva

procesi.

U slučaju kada skupovi resursa više procesa imaju

neprazna raskrsnica, onda imamo pitanje o upotrebi, pošto

imenovani, zajednički resursi. Djelomično smo o ovome razgovarali posljednje

predavanja: prisjetite se primjera sa uređajem za štampanje. Možda ih imamo nekoliko

procesa, od kojih svaki ima uređaj kao svoj resurs

štampanje i u bilo kom trenutku se mogu obratiti na ovaj izvor uz narudžbu

za štampanje nekih informacija. Sinhronizacija procesa na primjeru

uređaji za štampanje su nam ilustrovali jednu od funkcija OS-a koja se sastoji u

upravljanje procesima. Da vidimo na šta se misli

pod kontrolom procesa.

Upravljanje procesima:

1. Centralno upravljanje vremenom

procesor.

2. Upravljanje "pagingom" i ulaznim baferom.

3. Upravljanje zajedničkim resursima.

Glavni problemi upravljanja procesima.

Prvi je kontrola upotrebe CPU vremena

(CPU), ili se ovaj problem ponekad naziva CPU scheduling, odnosno kontrola

u kom trenutku će koji od zadataka ili koji od procesa

vlastita CPU aktivnost: na kojem će od procesa CPU raditi.

Drugi je upravljanje "pagingom" i ulaznim baferom. Pretpostavimo situaciju

kada veliki broj ljudi, na primjer, cijeli kurs sjedi za kompjuterima,

a svi su istovremeno pokrenuli neke zadatke u vidu procesa. U sistemu

formirano je dosta zadataka (garantovano više od sto). I sve računarstvo

sistem ne može prihvatiti sto zadataka za rad u multiprogramskom modu -

previše je. U tom slučaju se formira tzv. ulazni bafer.

zadataka, ili ulazni bafer procesa, odnosno bafer u kojem

oni procesi koji čekaju da ih procesor obradi. Ustaje

problem redoslijeda po kojem se procesi biraju iz ovog bafera za početak obrade.

Ovo je zadatak planiranja bafera.

Sada razmotrite zadatak zakazivanja "paginga". Procesor

nekoliko procesa se obrađuje, a pred nama je zadatak oslobađanja

pravi RAM za druge zadatke. U ovom slučaju postoji

potreba da se neki od obrađenih zadataka ispumpaju eksternom

Memorijski uređaj. I po kom algoritmu ćemo ih ispumpati

zadataka? Kakva će biti strategija uvođenja? Moguće je ispumpati, na primjer, svaki

čak i zadatak. Kako je manje-više isplativo organizirati proces pumpanja -

Ovo je problem.

Treći je upravljanje zajedničkim resursima. Postoji skup resursa

pristup kojem je u određeno vrijeme organiziran u ime

razne procese. Ovo je isti sudar sa uređajem za štampanje. Jedan od

funkcije, koje u velikoj mjeri određuju svojstva OS-a, ovo je funkcija,

osiguranje organizacije interakcije procesa i korištenje zajedničkih

resurse. Problem iz primjera uređaja za štampanje je lako riješen, ali ovdje

ako dva programa imaju zajednički dio RAM-a, onda kontrola

takav zajednički resurs je težak zadatak.

Pogledajmo sada dizajn OS-a. Gotovo svaki OS ima

koncept jezgra. Kernel OS-a je obično njegov rezidentni dio, tj

dio OS-a koji ne učestvuje u swap procesima (uvijek je

prisutan u RAM-u) i radi u OS modu, ili u

supervizor (u istom specijalizovanom režimu o kojem smo pričali

poslednje predavanje). Jezgro uključuje osnovne kontrole za glavni

entitete specifične za dati OS, a mogu uključivati ​​i skup

programe koji omogućavaju kontrolu nad nekim fizičkim uređajima. IN

funkcije kernela, posebno, uključuju rukovanje prekidima.

Ponekad ćemo programe koji upravljaju resursima nazivati ​​upravljačkim programima.

uređaje (fizičke ili logičke). Na primjer, OS kernel bi trebao uključivati

RAM drajver.

računarski sistem. Prvi nivo se uglavnom sastoji od vozača

fizičkih uređaja. Sljedeći nivo je upravljanje logičkim

tada se u našoj šemi mogu pojaviti upravljački programi za upravljanje datotekama, koji, na

u stvari, odnose se na drajvere za logičko upravljanje diskom i one u

su zauzvrat povezani sa stvarnim fizičkim drajverima uređaja i tako

Uopšte nije neophodno da sve komponente OS-a rade u režimu

supervizor, ili u OS modu. Mnoge komponente koje su logične

dovoljno uklonjen iz kernela, može raditi kod običnog korisnika

način rada. Takođe nije neophodno, sve ove komponente OS rade u rezidentu

način rada. Obično to nije potrebno za mnoge funkcije.

Sada pređimo na detaljnije razmatranje glavnih funkcija OS-a.

Kontrola upotrebe CPU vremena.

Zapravo, ovisi o tome koji algoritam za odabir zadatka treba prenijeti na njega

CPU aktivnost implementirana u OS ovisi o mnogim stvarnim operativnim

svojstva ovog OS-a. Izbor algoritma je gotovo u potpunosti određen

kriterijumi performansi koji se koriste za evaluaciju učinka

OS radi. Stoga smo uz vas da upravljate korištenjem CPU vremena.

Razmotrimo u pozadini razmatranja tipova OS-a.

Prva situacija. Imam veliki broj zadataka ili programa

zahtijevaju veliku količinu računarske snage sistema. Ovo su zadaci

koji se nazivaju problemi sa brojanjem; zahtijevaju mnogo računanja

i mali pristup vanjskim uređajima. Ovi zadaci se moraju izvršiti na

jedan računarski sistem. Šta će biti kriterijum efektivnosti

da sistem radi dok izvršava ovu grupu zadataka? Koji set

parametri se mogu uzeti i reći: ako su veliki, onda je dobro ako

obrnuto, da li je loše? Za takvu situaciju, kriterij učinka

računarski sistem je stepen iskorišćenosti CPU-a. Ako je mali

neaktivan (tj. radi u stanju pripravnosti, a svi procesi su zauzeti

razmjenu, ili OS preuzima vrijeme), onda možemo reći da je takav

sistem radi efikasno. To se može postići upotrebom

odgovarajući algoritam raspoređivanja, koji je kako slijedi.

Pokrećemo se za obradu skupa zadataka koje imamo

Mogućnosti OS-a (maksimalni ili svi zadaci), koji su obezbeđeni

multiprogramski režim. CPU algoritam raspoređivanja vremena u ovom

slučaj će biti sljedeći: ako je CPU dodijeljen jednom od procesa, onda ovo

proces će zauzeti CPU sve dok se ne dogodi jedna od sljedećih situacija:

1. Pristup vanjskom uređaju.

2. Završetak procesa.

3. Fiksna činjenica petlje procesa.

Čim se dogodi jedna od ovih situacija, kontrola se prenosi

na drugi proces. Broj prijenosa kontrole sa jednog procesa na

drugi je minimiziran. Od kada prenosite kontrolu sa jednog procesa

na drugom OS-u mora izvršiti skup određenih radnji, a to je gubitak

vremena, onda se ovi gubici ovdje minimiziraju. Ovaj OS režim

nazvan burst mod. OS koji radi u ovom načinu rada,

zove se paket OS.

Sada zamislite situaciju u kojoj je značajan broj ljudi

je u kompjuterskoj klasi i svako od njih uređuje ponešto

tekst. Svaki terminal ima svoju kopiju uređivača teksta koji je povezan s njim.

Hajde da vidimo šta će se desiti sa sistemom ako primenimo algoritam planiranja,

navedeno za prvi slučaj. Pretpostavimo da je jedan od korisnika neznatan

zadremao na terminalu i ne pokazuje nikakvu aktivnost. CPU vrijeme će biti

povezan sa ovim procesom jer ovaj proces ne razmjenjuje ili

završeno jer je uređivač spreman za rad. U ovom trenutku, svi preostali

korisnici će biti primorani da čekaju da se spavač probudi. Razvijaće se

lebdeće stanje. To znači da je algoritam koji je dobar za prvi

slučaju, za ovaj sistem nije prikladan čak ni sa najjačom mašinom.

Dakle, za zadatke koji rješavaju probleme obezbjeđuje se veliki broj

korisnici računarskih usluga (interaktivni zadaci), prijaviti se

drugi algoritmi zasnovani na drugim kriterijumima performansi.

Za takav sistem je prikladan kriterij vremena čekanja korisnika: s

onog trenutka kada je poslao naređenje da se izvrši neka radnja, do trenutka

odgovor sistema na ovu naredbu. Što je sistem efikasniji, to više

prosječno vrijeme čekanja u sistemu je manje.

Razmotrite situaciju za drugi slučaj. Sistem ima neke

broj procesa, a zadatak planera je da na taj način dodijeli CPU vrijeme

tako da je vrijeme odgovora sistema na zahtjev korisnika

minimalno, ili barem zagarantovano. Sljedeće

shema. Sistem koristi neki parametar (t, koji se zove

kvant vremena (općenito, kvant vremena je neka vrijednost,

što se može promijeniti tokom podešavanja sistema). Svi mnogi procesi

koji je u višeprogramskoj obradi, podijeljen je na dva

podskupovi. Prvi podskup se sastoji od onih procesa koji još nisu

spremni za nastavak izvršavanja: na primjer, oni procesi koji su naručili

razmjenjuju i čekaju njegove rezultate. A postoje procesi za koje su spremni

implementacija. Radovi će se izvoditi na sljedeći način. Taj proces

koji trenutno zauzima CPU će ga posjedovati do

dogodi se jedan od sljedećih događaja:

1. Rukovanje nalogom za razmjenu.

2. Završetak procesa.

3. Iscrpljivanje kvanta koji je dodijeljen ovom procesu

vrijeme (t.

Kada se dogodi jedan od ovih događaja, OS planer bira između

procesi spremni za izvršenje, neki procesi i prenose resurse na njega

CPU. I on bira ovaj proces u zavisnosti od algoritma

raspoređivanje koje je korišteno u ovom konkretnom OS. Na primjer,

proces se može birati nasumično. Drugi način je to

postoji, takoreći, uzastopno zaobilaženje procesa, to jest, u koje smo ušli

prvo radi jedan od procesa, zatim se oslobađa, a CPU vrijeme će biti

predati sljedećem procesu redoslijedom koji je spreman za pokretanje.

Treći kriterij po kojem se bira sljedeći zadatak može biti

vrijeme kada CPU nije servisirao proces. U ovom slučaju sistem

može izabrati proces koji ima najduže vrijeme. Ovi algoritmi

moraju biti implementirani u OS, što znači da u suprotnom moraju biti jednostavni

sistem će raditi neefikasno, sam (iako postoje takvi sistemi:

posebno, Windows porodica pati od ovoga).

Ovaj tip OS-a se naziva OS sa dijeljenjem vremena. Ona radi u modu

što minimizira vrijeme odgovora sistema na zahtjev korisnika. IN

idealno, zbog činjenice da je vrijeme odgovora na zahtjev minimalno,

korisnik bi trebao stvoriti iluziju da su svi sistemski resursi

dato samo njemu.

Pogledajmo sada sljedeći problem. Pretpostavimo da imamo avion

upravlja autopilotom, koji radi na autopilotu

odbiti. Svaki avion ima instrument koji meri visinu

aviona na zemlju. Način rada aviona je takav da je kontrola

njegove funkcije prema nekom datom programu obavlja kompjuter.

Dakle, ako imamo sistem autopilota i avion se spušta, ovo je sistem

treba da kontroliše visinu leta. Centralni kompjuter ovog aviona

može riješiti nekoliko zadataka: može kontrolirati visinu leta,

nivo goriva u rezervoarima, neki indikatori rada motora itd.

Svakom od ovih funkcija upravlja poseban proces. Pretpostavimo da imamo

imamo paket OS, i pažljivo kontrolišemo nivo goriva u rezervoarima. At

ovo, očigledno, nastaje vanredna situacija, jer se avion nastavlja dalje

smanjiti, a da OS to ne primijeti.

Pretpostavimo da imamo sistem podjele vremena. Jedan od kvaliteta

sistem podjele vremena je neefikasan zbog činjenice da u

sistem omogućava veliki broj prebacivanja sa procesa na proces

proces, a ova funkcija je prilično naporna. Ista situacija: visina

ide na nulu, a OS ponovo instalira kućne tablice. Takve

ni opcija ne radi.

Da biste riješili takve probleme, potrebni su vam vlastiti alati za planiranje. IN

U ovom slučaju koriste se takozvani operativni sistemi u realnom vremenu, glavni

čiji je kriterij vrijeme garantovanog odgovora sistema na

pojava događaja iz skupa unapred određenih

događaji. To jest, sistem ima skup događaja za koje je sistem u bilo kojem

situacije će reagovati i procesuirati ih neko unapred određeno vreme.

Za naš primjer, takav događaj bi mogao biti prijem informacija od

senzor visine. U stvarnosti, za OS ove klase, prilično jednostavno

algoritmi. Sve planiranje leži u ovom kriterijumu, tj

obrada događaja je zagarantovana u vremenu koje ne prelazi određeno

granična vrijednost. Ali OS u realnom vremenu obično ima svoje

specifičan uređaj, koji se ne određuje samo ovim jednostavnim

algoritam planiranja, ali i internu reorganizaciju sistema.

Povlačenje neke linije ispod funkcije upravljanja upotrebom

CPU vrijeme i CPU raspoređivanje, skrećem pažnju na dvije činjenice. Prva činjenica

je da su oni algoritmi koji se implementiraju u sistem planiranja

Raspodjela CPU vremena u velikoj mjeri određuje svojstva performansi

računarski sistem. Ja sam konkretno naveo primjere, sugerirao

koristiti različite OS za različite svrhe. Druga činjenica. Razmotrili smo tri

tipični tipovi OS: sistemi za grupnu obradu, sistemi za odvajanje

vremenski i sistemi u realnom vremenu. Danas možemo razgovarati o tome

da je sistem u realnom vremenu posebna klasa OS-a. Garantovano

Windows OS neće upravljati nijednim objektima koji imaju ovo stvarno

vrijeme je veoma kritično. Također neće upravljati takvim objektima i OS

SOLARIS ili LINUX itd., jer ovi sistemi nisu sistemi

realnom vremenu.

Prva dva načina rada, burst i timesharing, mogu se emulirati

na takvim uobičajenim operativnim sistemima. Zaista, veliki i ozbiljni operativni sistemi jesu

mješoviti sistemi, tj. imaju ga u elementima planiranja CPU-a

kako algoritme koji vam omogućavaju da upravljate zadacima brojanja, tako i algoritme koji

omogućavajući vam upravljanje interaktivnim zadacima ili zadacima otklanjanja grešaka,

za koji vam treba malo CPU-a.

Primjer takve organizacije planiranja CPU-a bi bio sljedeći

shema. Planer je izgrađen na dvostepenoj šemi. Vjerujemo u to

skup problema može sadržavati, pretpostavimo, probleme brojanja i

interaktivni zadaci. Prvi nivo određuje prioritet između dva

klase zadataka i ili daje CPU prvo zadatku brojanja, ili interaktivnom

zadatak. A drugi nivo definiše ono o čemu smo ranije govorili, tj.

kako odabrati zadatak u okviru istog razreda i kako ga prekinuti. Takve

mješoviti sistem može raditi na sljedeći način. Prvi nivo

planiranje će raditi po ovom principu: ako u ovom trenutku nema

niti jedan interaktivni zadatak spreman za izvršenje (a ovo je vrlo stvaran

situacija, ako korisnici uređuju tekst), onda CPU

prebačen na probleme sa brojanjem, ali se dodaje jedan uslov: čim

pojavi se barem jedan interaktivni zadatak, zadatak brojanja je prekinut i

kontrola se prenosi na blok interaktivnih zadataka. To je ono što brine

prva funkcija kontrole procesa.

Upravljanje zamjenom i ulaznim baferom.

Ovdje su algoritmi planiranja neophodni, ali ne toliko kritični. IN

stvarni sistemi često kombinuju swap bafer, tj. taj prostor

na eksternim medijima, gdje se informacije crpe iz operativnog

memoriju i ulazni bafer procesa. Ovo je prva napomena.

Druga napomena. Moderni operativni sistemi su prilično "lijeni" i pumpajući

često se ne izvode od strane jedinica procesnih memorijskih blokova, već se ispumpavaju

cijeli proces. Ovdje se postavljaju dva pitanja: koji je kriterij zamjene

procesa i koji je kriterij odabira iz bafera procesa koji mi

potrebno za višeprogramsku obradu. Najjednostavnija opcija

je korištenje vremena provedenog u određenom stanju. IN

prvi slučaj, ako se odlučimo za pitanje pumpanja procesa iz aktivnog

stanja među onima koji su obrađeni u swap područje, onda to možemo uzeti

proces koji je najduže u stanju obrade

astronomsko vrijeme. Obrnuti proces može biti simetričan, tj. mi

možemo uzeti iz ulaznog bafera procesa proces koji je tamo najduži

nalazi. U stvari, ovo su jednostavni i stvarni algoritmi za zakazivanje, i

mogu se modifikovati prema različitim kriterijumima. Jedan od

kriterijuma, ako su svi zadaci podeljeni u različite kategorije, odnosno mogu

biti OS zadaci - u tom slučaju se oni razmatraju prvi (i

među njima postoji algoritam za procjenu vremena koje su tamo proveli) i sve

ostali zadaci. Ovaj model je sličan modelu životne nepravde.

u društvu gde postoje svemoćni ljudi kojima je sve dozvoljeno, ali ih ima

ljudi koji mogu da čekaju.

Zajedničko upravljanje resursima.

Ovdje samo označavamo problem, jer konkretna rješenja za njega

kao primjer ćemo razmotriti UNIX operativni sistem.

Pretpostavimo da postoje dva procesa koja dijele zajedničko

RAM prostor. U ovom slučaju, zajednički resursi mogu

rad u različitim režimima, tj. moguće je da dva procesa

zapravo se nalaze na različitim mašinama, ali su povezani zajedničkim operativnim poljem

memorija. U ovom slučaju postoji problem sa memorijskim baferovanjem,

jer svaka od mašina ima svoje mehanizme za čitanje međuspremnika -

evidencije. Ovdje nastaje loša situacija kada je stanje fizičkog

memorija ne odgovara njenom stvarnom sadržaju. Takođe, postoje

neki problemi za OS koji radi na dvije mašine.

Sledeći problem. Neka postoje dva procesa koja se pokreću

jedan auto. Mora postojati neka sredstva za to

sinhronizirati pristup zajedničkoj memoriji, odnosno omogućiti vam kreiranje

uslove pod kojima se vrši razmena svakog od radnih procesa sa operativnim

memorija će se pojaviti ispravno. To znači da svaki put kada čitate

informacije iz zajedničke memorije moraju biti zajamčene da sve

korisnici koji su počeli nešto pisati u ovu memoriju već ovaj proces

završeno - mora postojati sinhronizacija razmjenom sa zajedničkom memorijom.

Zapravo, prilikom rješavanja problema često nije potrebno

zajednički resursi, poput zajedničke memorije, ali bih želio procese

koje istovremeno funkcionišu, mogle bi uticati jedna na drugu

na prijatelja. Utjecaj sličan prekidnom aparatu. Za implementaciju ovoga u

onda mnogi operativni sistemi imaju sredstva za signalizaciju između procesa

postoji softverska emulacija prekida. Jedan proces kaže -

proslijediti signal drugom procesu. Do prekida dolazi u drugom procesu

izvršenje ovog procesa i prenošenje kontrole na neke

unaprijed definirana funkcija koja bi trebala obraditi primljeni signal. Ovo

treća funkcija OS-a.

Skrenuo sam vam pažnju na takve karakteristike OS-a koje utiču na njega

svojstva performansi. U stvari, svaki OS također sadrži ogroman skup

druge funkcije koje čine da ovaj sistem funkcioniše.

Predavanje #6

Na prošlom predavanju smo govorili o tome da skoro svaki

operativni sistem obezbeđuje I/O baferovanje. zapravo,

to je jedna od glavnih funkcija operativnog sistema. Po analogiji sa borbom

različite brzine pristupa različitim komponentama računarskog sistema

operativni sistem uvodi softversko baferovanje unutar svojih granica,

koji također rješava probleme i probleme ujednačavanja vremena pristupa

sinhronizacija općenito (primjer s uređajem za štampanje). Problem Smoothing

Pristup leži u činjenici da skoro svaki operativni sistem

ima keš bafere koji akumuliraju pristupe vanjskoj memoriji

uređaj (VDU) je sličan hardverskom baferovanju kada se radi sa operativnim

memorija. Ovo vam omogućava da značajno optimizujete operativni sistem.

Znak takvog baferovanja je zahtjev za zaustavljanjem

pokrenuti operativni sistem prije isključivanja stroja. Na primjer, rad

sa MS-DOS operativnim sistemom, možete isključiti računar u bilo kom trenutku

vrijeme, jer u njemu nema tog bafera. O operativnim sistemima

kao što su Windows i UNIX, smatra se netačnim jednostavno isključiti mašinu kada

pokrenuti sistem, u kom slučaju je vjerovatno da

neki gubitak informacija (jer su, na primjer, trenuci naloga za razmjenu i

direktna razmjena je daleko od iste). Obim ovog puferovanja

određuje stvarnu efikasnost sistema. Kada je počeo naš fakultet

Pojavljuju se Pentiumi, ispostavilo se da pri radu sa Windows 95

postoji mala ili nikakva kvalitativna razlika između toga da li sistem funkcioniše

486 procesor ili Pentium. To znači da je efikasnost

Sistem nije ograničen efikasnošću rada sa eksternim uređajem. Ako

uzmite UNIX operativni sistem, tada će ova razlika biti primjetna, jer

ovdje brzina procesora ima jači uticaj na kvalitet sistema,

nego za Windows 95, jer se u Windows 95 sistemu razmenjuje sa

vanjski medij je mnogo veći zbog neke "gluposti" algoritama

rad međuspremnika sa eksternim uređajima.

2. Sistem datoteka.

Rekli smo da svaki od operativnih sistema radi

neki entiteti, od kojih je jedan proces. Postoji drugi

Entitet koji je takođe važan je koncept fajla. Sistem datoteka je

komponenta operativnog sistema koja obezbeđuje organizaciju za kreiranje,

skladištenje i pristup imenovanim skupovima podataka. Ovi imenovani skupovi

podaci se nazivaju fajlovi.

Osnovna svojstva datoteke

1. Datoteka je objekt koji ima ime i koji vam omogućava da radite s njim

niz nekih znakova, čija dužina zavisi od specifičnosti

operativni sistem.

2. Nezavisnost datoteke od lokacije. Za rad sa određenim fajlom

nije potrebno imati informacije o lokaciji ove datoteke na eksternom

uređaj.

3. Skup ulaznih/izlaznih funkcija. Skoro svaki operativni sistem

jedinstveno definira skup funkcija koje obezbjeđuju razmjenu sa datotekom. obično,

ovaj skup funkcija sastoji se od sljedećih upita:

1. Otvorite datoteku za rad. Možete otvoriti bilo postojeće,

ili novi fajl. Može se postaviti pitanje - zašto otvoriti datoteku?

to je sredstvo za centralno izjašnjavanje

operativni sistem na kojem će datoteka raditi s određenim

proces. I ona već može uzeti neke od ovih informacija

rješenja (na primjer, blokiranje pristupa ovoj datoteci za druge

procesi).

2. Čitanje/pisanje. Obično se dijeljenje datoteka može organizirati

neki blokovi podataka. Blok podataka sa kojim

razmjena nosi dvojaku suštinu. S jedne strane, za bilo koje

kompjuterski sistem poznaje veličine blokova podataka, što

najefikasniji za razmjenu, odnosno softverski je

hardverske dimenzije. S druge strane, ovi blokovi podataka

stvarna razmjena može varirati sasvim proizvoljno

programer. Funkcije čitanja/pisanja obično uključuju veličinu

blok podataka za razmjenu i broj blokova podataka koji

mora se pročitati ili napisati. Od odabrane veličine bloka

podaci mogu zavisiti od efikasnosti stvarne razmene, jer

to, pretpostavimo za neku mašinu veličine efektivne

blok podataka je 256Kb, a želite da izvršite razmjenu do

128Kb, i napravite dva pogotka za čitanje

logički blokovi od 128Kb. Vrlo je vjerovatno da će umjesto

da biste pročitali blok od 256Kb u jednoj razmjeni, morate primijeniti dvije

puta na jedan blok i pročitajte prvo polovinu, a zatim

drugi. Ovdje postoje elementi neefikasnosti, iako mogu

biti izglađen "pametnim" operativnim sistemom, a ako nije

izgladi, onda si ti kriv.

3. Upravljanje pokazivačem datoteke. Sa skoro svakim otvaranjem

koncept pokazivača fajla je povezan sa fajlom. Ovaj pokazivač

po analogiji sa registrom programskog brojača, u svakom trenutku vremena

ukazuje na sljedeću relativnu adresu datoteke s kojom

može se izvršiti zamjena. Nakon razmjene sa ovim blokom, pokazivač

se prenosi na poziciju kroz blok. Za organizaciju rada sa

fajl treba da može da upravlja ovim pokazivačem. Dostupan

funkcija upravljanja pokazivačem datoteka koja omogućava

proizvoljno (unutar dostupnog) pomjerite pokazivač

fajl. Pointer je neka varijabla dostupna programu,

koja se odnosi na funkciju otvaranja datoteke (kreiranje ovog

varijabla).

4. Zatvaranje datoteke. Ova operacija se može izvesti sa dva

sadržaj datoteke. 2) Uništite datoteku.

Nakon što se datoteka zatvori, sve veze s njom se prekidaju i ona dolazi

u neko kanonsko stanje.

4. Zaštita podataka. Mnoge strateške odluke se ponavljaju kao i dalje

na nivou hardvera kao i na nivou operativnog sistema. Ako se setimo

multiprogramski način rada, tada jedan od neophodnih uslova za njegovo postojanje

je pružanje zaštite (memorije i podataka). Ako uzmemo u obzir fajl

sistem, onda to, kao i operativni sistem, može biti

single user. U ovom slučaju problem zaštite podataka ne postoji,

jer osoba koja radi sa ovim operativnim sistemom je

gospodar svih fajlova. Primjeri jednokorisničkih sistema su MS-DOS ili

Windows 95. Možete pokrenuti mašinu i uništiti sve datoteke drugih

korisnika koji se nalaze na disku, jer u ovim sistemima

nema zaštite. Višekorisnički sistem pruža ispravan

rad mnogih korisnika. MS-DOS se također može pokrenuti

multiprogramiranje, ali nije dovoljno ispravno, jer je greška u

jedan proces može prepisati operativni sistem i susjedni

proces. Takođe u operativnom sistemu Windows 95 može dosta raditi

korisnika, ali ovaj rad je netačan, jer ovaj operativni

sistem ne pruža sva prava zaštite. Dakle, multiplayer

Sistem mora osigurati zaštitu informacija od neovlaštenih

pristup. Zapravo, problem zaštite nije povezan samo sa fajlom

sistem. U stvarnosti, operativni sistem osigurava zaštitu podataka u svemu

područja: to su datoteke, procesi i resursi koji pripadaju procesima,

radi u ime jednog korisnika. Ovdje vam skrećem pažnju

ovu činjenicu, jer je za fajlove ovo najkritičnija tačka.

Osnovna svojstva sistema datoteka.

Sistem datoteka prirodno uključuje sva ona svojstva koja

su navedeni za fajlove, ali dodaje još neke. Ova svojstva

vezano za strukturnu organizaciju sistema datoteka.

Hajde da pogledamo neki OVC prostor i vidimo kako to radimo

možemo organizovati postavljanje fajlova unutar ovog prostora.

1. Organizacija datoteka na jednom nivou po kontinuiranim segmentima. Termin

"single-level" znači da sistem omogućava rad sa fajlovima

jedinstveno nazvana. Unutar OCD prostora, neki

područje za pohranjivanje podataka koje se zove imenik. Katalog ima

sljedeća struktura:

| naziv | početni blok | završni blok |

"Početni blok" se odnosi na neku relativnu adresu

VZU prostor iz kojeg počinje datoteka sa datim imenom. „Konačno

blok" definira posljednji blok date datoteke. Funkcija otvaranja datoteke

svodi se na pronalaženje naziva datoteke u direktoriju i određivanje njegovog početka i

kraj (u stvarnosti, podaci mogu zauzeti nešto manje prostora, to će biti

rečeno kasnije). Ova radnja je vrlo jednostavna, osim toga, direktorij se može pohraniti

u memoriji operativnog sistema, i time smanjiti broj razmjena.

Ako se kreira nova datoteka, upisuje se u slobodan prostor.

Slično direktoriju imena, može postojati tabela slobodnih prostora

(fragmenti).

Čitanje/pisanje se odvija gotovo bez dodatnih razmjena, od kada

otvaranjem dobijamo raspon postavljanja podataka. Čitanje se odvija u

prema ovoj blok strukturi i bez dodatnih informacija

nije potrebno, tako da je razmjena vrlo brza.

Šta će se dogoditi kada budete trebali napisati dodatni

informacije, ali iza ove datoteke nema slobodnog prostora? U ovom slučaju

Sistem može da uradi dve stvari. Prvo će ona reći da nema mjesta i tebe

moraju sami nešto učiniti, na primjer, pokrenuti određeni proces koji

će prenijeti ovu datoteku na drugu lokaciju i dodati potrebne informacije. Ovo

prijenos je prilično skupa funkcija. Druga mogućnost je u razmjeni

će biti odbijen. To znači da je prilikom otvaranja fajla bilo potrebno

rezervisati dodatno mjesto; dok sistem datoteka provjerava

veličina slobodnog bafera, a ako nije dovoljna, onda traži slobodan prostor gdje

ovaj fajl će biti postavljen.

Dakle, vidimo da je ova organizacija jednostavna, efikasna u razmenama, ali

u slučaju nedovoljnog prostora za fajl, počinje neefikasnost. Osim toga

Međutim, tokom dugotrajnog rada takvog sistema datoteka, nešto se dešava na disku

ista stvar koja nam se desila sa RAM-om - fragmentacija. tj

situacija u kojoj ima slobodnih fragmenata, ali među njima nema nijednog gdje

fajl može biti postavljen. Fragmentacija za takvu organizaciju

sistem datoteka je periodična kompresija kada dugo,

proces koji je težak i opasan za sadržaj sistema datoteka, koji

čvrsto pritišće sve datoteke jedna uz drugu.

Takva organizacija može biti prikladna za jednog korisnika

sistem datoteka, jer je kod velikog broja korisnika veoma

brzo će doći do fragmentacije, a stalni početak kompresije je smrt za

sistemi. S druge strane, sistem je jednostavan i ne zahtijeva gotovo ništa

iznad glave.

2. Sistem datoteka sa blok organizacijom datoteka. OVC prostor

podijeljeni na blokove (isto blokove koji su efikasni za razmjenu). IN

sistema datoteka ovog tipa, distribucija informacija se odvija na sličan način

distribucija procesnih informacija u RAM-u sa stranicom

organizacija. Općenito, svaki naziv datoteke ima skup brojeva povezanih s njim.

blokovi uređaja u koje se nalaze podaci ove datoteke. Štaviše, brojevi

Ovi blokovi imaju proizvoljan redoslijed, tj. blokovi se mogu raspršiti

kroz uređaj nasumično. Sa takvom organizacijom nema

fragmentacija, iako može doći do gubitaka u višestrukim blokovima (ako je datoteka barem potrajala

jedan bajt po bloku, smatra se da je cijeli blok zauzet). Dakle, ne

problemi sa kompresijom, a ovaj sistem se može koristiti kada

višekorisnička organizacija.

U ovom slučaju, svaka datoteka ima skup atributa povezanih s njom: naziv datoteke, naziv datoteke

korisnik kojem se pristupa datoteci. Takva organizacija

omogućava vam da se udaljite od jedinstvenosti imena, koja je bila potrebna u prethodnom

slučaj. U takvom sistemu, jedinstvena imena su potrebna samo među datotekama.

jedan korisnik.

Organizacija takvih datoteka može biti putem direktorija. Struktura imenika

mogao bi biti sljedeći. Direktorij sadrži nizove; svaki i-ti red

odgovara i-tom bloku sistema datoteka. Ova linija sadrži

informacije o tome da li je ovaj blok slobodan ili zauzet. Ako on

je zauzet, onda ovaj red sadrži naziv datoteke (ili vezu do njega), ime

korisnika, a može sadržavati i neke dodatne informacije.

Tokom razmene sistem može da deluje drugačije. Ili prilikom otvaranja

fajl, sistem prolazi kroz ceo direktorijum i pravi tabelu korespondencije

logičke blokove datoteke, njihovo postavljanje na disk. Ili sa svakom razmjenom

potražite ovu utakmicu.

Ova organizacija sistema datoteka je jednostepena u okviru

jedan korisnik, odnosno svi fajlovi su povezani u grupe prema njihovoj pripadnosti

neki korisnik.

3. Hijerarhijski sistem datoteka. Sve datoteke u sistemu datoteka

ugrađen u strukturu koja se zove drvo. U korenu drveta

je takozvani korijen sistema datoteka. Ako čvor stabla

je list, onda je ovo datoteka koja može sadržavati korisničke podatke,

ili biti datoteka direktorija. Čvorovi drveta osim lista su

datoteke direktorija. Imenovanje u takvom hijerarhijskom sistemu datoteka može

dešavaju na različite načine. Prvi tip je relativno imenovanje datoteka

najbliži direktorij, tj. ako pogledamo fajlove koji su

najbliži direktorijumu F0 je fajl F1, koji je takođe

direktorijum i fajl F2. Za uspješno imenovanje u ovakvom sistemu na jedan

nazivi nivoa se ne mogu ponavljati. S druge strane, pošto svi fajlovi

povezano sa stablom, možemo govoriti o tzv. punom nazivu

fajl, koji se sastoji od svih imena datoteka koja čine putanju od

root sistema datoteka na određenu datoteku. Puno ime F3 datoteke će biti

označeno kao: /F0/F1/F3. Takva organizacija je dobra zato što

omogućava vam da radite i sa kratkim imenom datoteke (ako je sistem

pretpostavlja se da radimo u ovom direktoriju), i to punim imenom

fajl. Puni nazivi datoteka su staze, iu bilo kojem stablu od njegovog korijena do

postoji samo jedan put za bilo koji čvor, dakle, ovo rješava

problem objedinjavanja imena. Ovaj pristup je prvi put korišten u

operativni sistem Multix, koji je razvijen na Univerzitetu Berkli

krajem 60-ih godina. Ovo prekrasno rješenje počelo se pojavljivati ​​kasnije u

mnogi operativni sistemi. Prema ovoj hijerarhiji, svaki od fajlova

možete vezati neke atribute koji se odnose na prava pristupa. Prava

pristup može imati i korisničke datoteke i direktorije.

Struktura ovog sistema je dobra za organizovanje višekorisničkog rada,

zbog odsustva problema imenovanja, a takav sistem može vrlo dobro

izgraditi.

4. Personalizacija i zaštita podataka u operativnom sistemu. Ova nijansa

koje ćemo sada razmotriti, i jednostavne i složene. Jednostavno - jer mi

recimo samo nekoliko fraza o tome, ali složenih, jer ih ima

problemi o kojima se može dugo pričati.

Personalizacija je sposobnost operativnog sistema da identifikuje

određenog korisnika i u skladu s tim prihvatiti određene

aktivnosti, posebno na zaštiti podataka.

Ako pogledamo naš omiljeni MS-DOS operativni sistem,

tada nije postojao koncept korisnika sa svim posljedicama koje iz toga proizlaze -

to je jedan korisnik.

Drugi nivo operativnih sistema su operativni sistemi koji

dozvoljavaju registraciju korisnika, ali svi korisnici su predstavljeni

u obliku jedinstvenog skupa nekih predmeta i nisu ni na koji način međusobno povezani.

Neki operativni sistemi su primjeri takvih operativnih sistema.

IBM sistemi za mainframe računare. Na primjer, predavač ne zna ko

svojih slušalaca kojoj grupi pripada, ali svi sjede ispred njega,

korisnici kurseva. Ovo je i dobro i loše. U smislu slušanja

tok predavanja je dobar, ali da ovaj predavač uradi neku anketu

ovo je loše, jer za jedan dan neće imati vremena da sve intervjuiše. On treba

će nekako podijeliti sve slušaoce, ali se ne zna kako.

Shodno tome, sa takvom jednodimenzionalnom personifikacijom, sve

one funkcije o kojima smo govorili (posebno zaštita), ali takve

organizacija korisnika ne podrazumijeva formiranje korisničkih grupa.

I meni je zgodno da, recimo, na našem fakultetskom serveru, moj

laboratorija je dodijeljena iu okviru ove laboratorije bilo bi moguće

daju jedno drugom prava pristupa fajlovima, itd.

Shodno tome, slično sistemu datoteka, hijerarhijski

organizacija korisnika. Odnosno, imamo koncept "svih korisnika"

i koncept "grupe korisnika". U grupi ima pravih korisnika.

Takva hijerarhijska organizacija personifikacije podrazumijeva sljedeće

momente. Prilikom registracije korisnika, prvo morate

vezati ga za neku grupu - to može biti laboratorija, odjel ili

studijska grupa. Pošto su korisnici kombinovani u grupe, pojavljuje se

mogućnost odvajanja prava pristupa korisničkim resursima. tj

korisnik može, na primjer, izjaviti da su mu svi njegovi resursi dostupni

svi korisnici grupe. Takva šema može biti na više nivoa (grupe

dijele se na podgrupe i sl.) sa odgovarajućom raspodjelom prava i

mogućnosti. Sada postoje operativni sistemi u kojima su prava

pristup može biti određen ne samo takvom hijerarhijskom strukturom, već i

može biti složeniji, tj. mogu se dodati prava pristupa, kršeći ovo

hijerarhija.

Predavanje #7

3. UNIX operativni sistem.

Okrećemo se proučavanju UNIX operativnog sistema, od mnogih

odluke koje se donose u operativnim sistemima, mi ćemo

Razmotrite ovaj operativni sistem kao primjer.

Sredinom 1960-ih izvršila je AT&T Bell Laboratories

istraživanje i razvoj jednog od prvih operativnih sistema u modernom

njegovo razumevanje - operativni sistem Multix. Ovaj operativni sistem

imao svojstva operativnog sistema za dijeljenje vremena,

predloženi su višekorisnički sistem, kao iu ovom sistemu

Glavne odluke o organizaciji sistema datoteka, posebno su bile

predlaže se hijerarhijski sistem datoteka nalik stablu. Iz ovog razvoja

nakon nekog vremena pokrenut je UNIX operativni sistem. Jedan od

Istorija razvoja ovog sistema govori da je kompanija imala nepotreban

računar PDP-7 sa veoma nerazvijenim softverom i potreban

mašina koja bi omogućila organizovanje udobnog rada za korisnika,

posebno obrada teksta. Dobro poznata grupa ljudi je

Ken Thompson i Dennis Ritchie, preuzeli su razvoj nove operacione sale

sistemi. Druga verzija ove priče kaže da su se navodno bavili

implementaciju neke igre i sredstva koja su im bila na raspolaganju,

ispalo je neprijatno - onda su odlučili da se igraju sa ovom mašinom. Kao rezultat

operativni sistem UNIX.

Posebnost ovog sistema bila je u tome što je to bio prvi sistem

program koji je napisan na jeziku koji nije

mašinski jezik (assembler). Za potrebe pisanja ovog sistema

softver, posebno UNIX operativni sistem, takođe

obavljen je rad koji je započeo sa BCPL jezikom. Od njega je nastala

jezik B, koji je operisao mašinskim rečima. Dalja apstrakcija mašine

riječi - BN, i na kraju C jezik. Od 1983. godine operativni sistem UNIX (njeg

originalna verzija) je prepisana u C jezik, a ispostavilo se da je oko

90% operativnog sistema je napisano na jeziku visokog nivoa, ne

zavisno od arhitekture mašine, a 10% ovog sistema je upisano

asembler. Ovih deset posto uključivalo je vremensko najkritičnije

dijelovi operativnog sistema.

Dakle, prvi važan i revolucionaran rezultat bila je upotreba

jezik visokog nivoa. Ova činjenica je izazvala diskusiju, jer niko

vjerovali da bi to moglo biti dugoročno, jer je jezik visokog

nivo je bio povezan sa visokom neefikasnošću. C jezik je bio

dizajniran na takav način da je s jedne strane omogućavao pisanje

prilično efektni programi, s druge strane, to emituju

efikasan kod.

Prva karakteristika jezika C koja ga je učinila efikasnijim bila je

rad sa pokazivačima. Drugo svojstvo je to

U programiranju asemblerskog jezika često koristimo nuspojave.

Na primjer, učinak kada je rezultat evaluacije nekog izraza

ne samo pisanu vrijednost, već i neke međuvrijednosti,

koji se može zapisati za kasniju upotrebu. Ove

karakteristike su postale dostupne i u C-u, jer je pojam izraza u

C jezik je mnogo širi nego u onim jezicima koji su bili dostupni u to vrijeme.

vrijeme. Konkretno, pojavio se operator dodjeljivanja umjesto operatora

zadatak, koji je omogućio programiranje nuspojava. Ove

svojstva i određivala "preživljivost" jezika, pogodnost za programiranje

komponente sistema i mogućnost optimalnog prevođenja koda raznih

Sa profesionalne (kanonske) tačke gledišta, jezik C je užasan

jezik. Glavni uslov za jezike

programiranje, je osigurati sigurnost programiranja.

Jezičke karakteristike treba da minimiziraju mogućnost unošenja grešaka

program, a svakako takva sredstva modernih jezika uključuju

sljedeće: stroga provjera tipa (tj. ne možete, na primjer, dodati

cjelobrojna varijabla sa realnom bez prethodnog pretvaranja tipa

jedan od njih tipu drugog). C jezik ima mogućnost konverzije

zadani tipovi. Još jedna kriminalna stvar je osigurati kontrolu nad

pristup memoriji programa (tj. ako memorijska ćelija pohranjuje

realan broj, onda ga ne možemo tumačiti na drugi način).

Mogućnost nekontrolisane upotrebe ovih vrednosti je obezbeđena

pokazivači. Štaviše, preko pokazivača možete "prevariti" funkcije

usklađenost i neusklađenost stvarnih parametara sa formalnim parametrima

itd. Treće svojstvo je kontrola nad interakcijom modula. Mnogi

greške se pojavljuju ako funkcija deklarira jedan skup

formalnih parametara, a pristupa se pomoću drugog skupa

(štaviše, razlike mogu biti i u broju parametara iu tipovima). IN

u C jeziku uvek možete prevariti program - umesto formalnog parametra

jednog tipa, dajte parametar drugog tipa, a umjesto deset parametara, prođite

jedan. To dovodi do grešaka.

Evo tri mjesta na kojima C jezik ne ispunjava zahtjeve

sigurnost. Međutim, iskustvo pokazuje da su najuporniji

loših (sa ove tačke gledišta) jezika.

Dakle, 1973. je godina pojavljivanja operativnog sistema napisanog na C jeziku.

UNIX sistemi. Koje su glavne karakteristike ovog sistema? Prvo

svojstvo je koncept fajlova. Glavni objekt kojim upravlja

operativni sistem, je datoteka. Fajl, operativna perspektiva

UNIX sistem je eksterni uređaj. Datoteka je direktorij koji

sadrži informacije o datotekama koje sadrži. I tako dalje, dalje

koji mogu da rade.

Drugo svojstvo je posebna struktura operativnog sistema. Za razliku od

iz prethodnih operativnih sistema u kojima je svaka naredba bila "žičana"

unutar operativnog sistema, tj. nije se moglo modificirati ni na koji način.

komandni problemi se rješavaju vrlo elegantno u UNIX-u. Prvo, UNIX

deklarira standardni interfejs za prosleđivanje parametara spolja ka unutra

proces. Drugo, sve komande su implementirane kao fajlovi. To znači,

da možete slobodno dodavati nove komande sistemu, kao i uklanjati i

modificirati ih. To jest, UNIX sistem je otvoren i može se lako razviti.

Počnimo s razmatranjem specifičnih svojstava operativnog sistema.

Sistem podataka. Organizacija fajlova. Rad sa fajlovima.

UNIX sistem datoteka je višekorisnički hijerarhijski

sistem podataka. Njegovu strukturu smo nacrtali u prošlom predavanju. Ona

predstaviti kao stablo čiji je korijen tzv

katalog. Čvorovi osim listova stabla su direktoriji. Lišće

mogu biti ili datoteke (u tradicionalnom smislu) ili prazni direktoriji.

Koncept imena datoteke je definiran u sistemu - ovo je ime koje je povezano s

skup podataka unutar direktorija kojem ova datoteka pripada. osim

Osim toga, postoji koncept punog imena - ovo je jedinstvena putanja iz korijena datoteke

sistema na određenu datoteku. Dozvoljeni su odgovarajući nazivi datoteka.

u različitim imenicima.

U stvari, sistem datoteka nije baš stablo. Dostupan

mogućnost razbijanja hijerarhije na račun sredstava koja vam omogućavaju udruživanje

nekoliko imena (punih imena) sa istim sadržajem datoteke, je, dakle

hijerarhijski i drvoliki.

UNIX operativni sistem koristi hijerarhiju na tri nivoa

korisnika (svi korisnici su podijeljeni u grupe), čija je struktura u

opšti slučaj je razmatran u prethodnom predavanju. S tim u vezi, svaki

Datoteka sistema datoteka ima dva atributa. Prvi atribut je

pozvani, vlasnik fajla. Ovaj atribut je povezan s jednim specifičnim

korisnik koji je vlasnik fajla. Vlasnik fajla može

postaje zadano ako kreirate ovu datoteku, a postoji i komanda koja

omogućava vam da promijenite vlasnika datoteke. Drugi atribut je atribut povezan s

zaštita pristupa datotekama (više o tome kasnije).

Pristup svakom fajlu je regulisan u tri kategorije. Prvo

može raditi šta god želi sa ovim fajlom. Druga kategorija je

prava grupe kojoj pripada vlasnik fajla (različito od prava

isključenje relevantne grupe. Za ove tri kategorije

regulirane su tri radnje - čitanje iz datoteke, pisanje u datoteku i izvršavanje

fajl. Svaki fajl definira može li korisnik ove kategorije

proces.

Rad sa fajlovima

Razmotrite strukturu sistema datoteka na disku. Za bilo koje

računarskog sistema, definisan je koncept sistemske eksterne memorije

uređaja (SVZU). SVZU je uređaj kojem se pristupa putem

hardverski bootloader mašine u svrhu pokretanja operativnog sistema. Skoro

svaki računar ima raspon memorijskog adresnog prostora,

nalazi se u takozvanoj memoriji samo za čitanje (ROM). IN

ROM sadrži mali program (hardverski učitavač) koji, kada

uključenje ili hard reset mašine, odnosi se na fiksno

blokira SVZU, stavlja ga u RAM i prenosi kontrolu na

fiksna adresa koja pripada očitanim podacima. Vjeruje se da je ovo

Čitani blok podataka je takozvani programski učitavač.

Treba napomenuti da je hardverski učitavač nezavisan od operativnog sistema.

sistem, a učitavač softvera je komponenta operativnog sistema.

Već zna gdje se nalaze podaci potrebni za pokretanje operativnog sistema.

U bilo kom sistemu je uobičajeno da se prostor VZU podeli na neke

područja podataka koja se nazivaju blokovi. Logička veličina bloka

je fiksni atribut operativnog sistema. U operacionoj sali

Na UNIX sistemu, veličina bloka definira neki parametar koji može

variraju u zavisnosti od verzije sistema. Radi definicije, hoćemo

recimo da je logički blok VRAM-a 512 bajtova.

Hajde da predstavimo SVZU adresni prostor kao sekvencu

blokova. SVZU blok nula je bootstrap blok, ili blok, u

gdje se nalazi učitavač softvera. Postavljanje ovog bloka u nulu

SVRAM blok je određen hardverom, jer hardverski učitavač

uvijek se odnosi na nulti blok. Ovo je posljednja komponenta datoteke

sistema, što zavisi od hardvera.

Sljedeći blok je super blok sistema datoteka. Sadrži

operativne informacije o trenutnom stanju operativnog sistema, kao i

informacije o postavkama sistema datoteka. Konkretno, superblok

sadrži informacije o broju takozvanih inoda u

sistem podataka. Superblok također sadrži informacije o broju blokova,

koji čine sistem datoteka, kao i informacije o slobodnim blokovima

datoteke, slobodne inode i druge podatke

karakterizira vrijeme, datum izmjene i druge posebne parametre.

|Blok |Superblok|Regija |Blokovi |Regija |

| početni | u | indeks | datoteke | sačuvaj |

|učitavanje |datoteka|deskriptor| | |

| |sistem | s | | |

Nakon superbloka slijedi područje (prostor) inoda.

Inode je posebna struktura podataka sistema datoteka

koji se stavlja u korespondenciju jedan na jedan sa svakim fajlom.

Veličina inode prostora je određena parametrom

generisanje sistema datoteka prema broju inoda koji

naveden u superbloku. Svaki inode sadrži sljedeće

informacije:

2. Polje sigurnosnog koda.

4. Dužina datoteke u bajtovima.

Sljedeći prostor sistema datoteka su blokovi datoteka. Ovo

prostor na sistemskom uređaju u kojem se nalaze sve informacije,

pohranjene u fajlovima i o datotekama koje se ne uklapaju u prethodne blokove

sistem podataka.

Posljednje područje podataka se različito implementira u različitim sistemima, ali

izvan blokova sistema datoteka nalazi se područje za spremanje.

Ovo je konceptualna struktura sistema datoteka. Sada razmislite

Superblock. Najzanimljivija u superbloku su posljednja dva

polja: polja informacija o besplatnim blokovima datoteka i slobodnom indeksu

deskriptori. U UNIX sistemu datoteka primetan je uticaj dva faktora.

Prvi faktor je da je sistem datoteka razvijen u to vrijeme

kada se volumen hard diska od 5-10MB smatrao veoma velikim. Unutrašnja struktura

prostor eksternog uređaja. Drugi faktor je svojstvo sistema datoteka

optimizacija pristupa. Kriterij optimalnosti pristupa - broj razmjena

sistem datoteka sa eksternim uređajem za koji proizvodi

obezbeđivanje potreba.

Lista (niz) besplatnih blokova datoteka sastoji se od pedeset

elemenata i zauzima 100 bajtova. U tamponu od pedeset

elemenata, bilježe se brojevi slobodnih blokova prostora memorijskih blokova. Ove

brojevi se pišu od drugog elementa do četrdeset devetog. Prvi element

niz sadrži broj posljednjeg unosa u tom nizu. Nulti element

ova lista se nastavlja i tako dalje.

Ako neki proces treba da proširi veličinu svoje datoteke

dodatni slobodni blok, tada je sistem označen brojem bloka (NB)

odabire element niza (kopija superbloka je uvijek prisutna u

RAM, tako da za skoro sve takve radnje sistem nema

treba upućivati ​​na SVZU) i ovaj blok je dostavljen odgovarajućim

fajl za ekstenziju (u ovom slučaju, NB pokazivač je podešen). Ako

tada se veličina datoteke smanjuje ili se cijeli fajl briše

oslobođeni brojevi se upisuju u niz slobodnih blokova, dok

NB pokazivač je također ispravljen.

Pošto je veličina niza pedeset elemenata, moguća su dva

kritične situacije. Prvi je kada, kada se puštaju novi blokovi, ne

ne mogu staviti svoje brojeve u ovaj niz jer je već pun. U tome

U slučaju, jedan slobodni blok se bira iz sistema datoteka (u ovom slučaju to

je uklonjen sa liste slobodnih blokova) i popunjeni niz slobodnih blokova

kopirano u ovaj blok. Nakon toga, vrijednost NB pokazivača se resetuje na nulu i in

nulti element niza zapisuje se broj bloka za koji smo odabrali

kopiranje našeg niza u njega. Kao rezultat, uz stalno oslobađanje

blokova, formira se lista u kojoj su brojevi apsolutno svih

slobodni blokovi sistema datoteka.

Druga kritična situacija je kada trebate dobiti besplatni blok, ali

sadržaj niza je iscrpljen. U ovom slučaju, sistem funkcionira ovako: if

nulti element liste je jednak nuli, to znači da je sve iscrpljeno

prostor sistema datoteka i prikazuje se poruka u tom smislu. Ako ne

je nula, tada je njegov sadržaj jednak adresi nastavka niza, i

operativni sistem čita odgovarajući blok i postavlja ga

nastavak umjesto niza u superbloku.

Drugi niz, koji se nalazi u superbloku, je niz koji se sastoji od

od stotinu elemenata i koji sadrži brojeve slobodnih inoda.

Rad sa ovim nizom je jednostavan. Sve dok ima prostora za ovo

niz, onda kada se inode oslobode, slobodne inode

deskriptori se zapisuju na slobodna mjesta u nizu. Ako je niz pun

potpuno, tada se upisivanje u ovaj niz zaustavlja. Ako je, s druge strane, sadržaj

niz je iscrpljen, tada se pokreće proces koji

skenira inode područje i popunjava u skladu s tim

niz sa novim vrijednostima. Može doći do situacije kada treba da kreirate fajl, tj.

potreban je novi inode, a u nizu nema elemenata i

pokrenuti proces također nije pronašao slobodne inode. Ovo

druga situacija, kada je sistem primoran da izjavi da je resurs iscrpljen

(prvi je kada ponestane slobodnih blokova sistema datoteka).

Predavanje #8

deskriptori indeksa. Inode se prostiru nekoliko za redom

pokretanje blokova na disku. Veličina inode područja je određena pomoću

parametar (koji je definisan tokom instalacije sistema) koji određuje

broj inoda za taj određeni sistem datoteka.

Veličina površine jednaka je proizvodu ovog broja i veličine indeksa

deskriptor.

Inode je UNIX objekat koji se stavlja u mutual

jedan-na-jedan podudaranje sa sadržajem datoteke, osim kada

datoteka je neka posebna datoteka povezana s vanjskim uređajem. IN

Deskriptor indeksa ima sljedeća polja:

1. Polje koje definira tip datoteke (direktorij ili ne).

2. Polje sigurnosnog koda.

3. Broj veza na dati inode od svih mogućih

direktorije sistema datoteka (u situaciji kršenja stabla datoteka

sistemi). Ako je vrijednost ovog polja nula, onda se smatra da je to

ovaj inode je besplatan.

4. Dužina datoteke u bajtovima.

5. Statistika: polja koja karakterišu datum i vreme kreiranja, itd.

6. Polje za adresiranje bloka datoteke.

Imajte na umu da nema naziva datoteke u inode-u,

iako ovaj objekt karakterizira sadržaj datoteke. Da vidimo kako

organizirano je adresiranje blokova u koje se nalazi sadržaj datoteke.

Polje adrese sadrži brojeve prvih deset blokova datoteka. Ako

datoteka je mala, onda se u njoj nalaze sve informacije o smještaju njegovih blokova

inode. Ako datoteka prelazi deset blokova, tada se pokreće

raditi neku strukturu liste. Jedanaesti element adresnog polja

sadrži broj bloka iz prostora bloka datoteke koji sadrži 128

reference na blokove u ovoj datoteci.

U slučaju da je fajl još veći, onda dvanaesti

element polja adrese. Sadrži broj bloka koji sadrži 128

blok brojeva zapisa koji sadrže 128 brojeva blokova datoteke

sistemi, odnosno ovdje se koristi dvostruka indirektnost. Ako je datoteka još uvijek

više, tada se koristi trinaesti element i trojka

indirektno (slično duplom, ali se dodaje još jedan nivo).

Ograničenje veličine datoteke (sa veličinom bloka od 512) bit će jednako (128 + 1282 +

1283) * 512 bajtova = 1Gb + 8Mb + 64Kb > 1Gb.

Dogovorili smo se sa vama da ćemo tokom našeg kursa platiti

obratite pažnju na neusklađenost između brzina i izglađivanje. Prvo

problem - ako sistem datoteka nije imao niz slobodnih

blokova, morali biste nekako besplatno tražiti

blokova, i ovaj posao bi bio lud, a sistem datoteka bi se srušio

ideološkom nivou. Slično sa listom slobodnih inoda,

iako bi ovdje pretraga bila lakša nego za besplatne blokove, ali ipak,

tu su i elementi optimizacije. Indirektno blok adresiranje

datoteke vam omogućava da povećate troškove čitanja blokova datoteka

proporcionalno veličini ove datoteke. Odnosno, ako je datoteka mala, onda iznad glave

nema troškova, jer kada otvorite datoteku u RAM-u, ona se stvara

kopiju inode datoteke i nema dodatnih VSD pristupa

može se pristupiti bilo kojem od deset blokova datoteke odjednom. Ako je potrebno

zatim rad sa blokovima koji se nalaze na prvom nivou indirektnog adresiranja

pojavljuje se još jedna razmjena, ali se može pristupiti

već na 128 blokova. Slično obrazloženje za drugi i treći blok

red. Čini se da je loša stvar to što kada razmjenjujete s velikim fajlom, morate

mnogo dodatnih razmjena, ali UNIX sistem je lukav -

koristi duboku baferovanu razmenu sa OVC. tj

ako dobijemo neke režije na istom nivou, onda oni

kompenziraju se na drugom nivou optimizacije interakcije sistema sa

eksternu memoriju.

Blokovi fajlova. Veličina blok prostora datoteke je nedvosmisleno definirana

način nauštrb informacija u superbloku.

Područje za spremanje procesa. Iako je ovo područje prikazano iza blokova

datoteke, ali se može staviti iu neki fajl sistema datoteka

ili na proizvoljnoj lokaciji drugih VZU. Zavisi od konkretne implementacije.

sistemi. U stvari, ovo područje je korisna oblast u kojoj

procesi se ispumpavaju, a ovo područje se također koristi za

optimizirati pokretanje najčešće korištenih procesa koristeći,

takozvani t-bit datoteke (više o tome kasnije).

Dakle, razmotrili smo strukturu sistema datoteka i njegovu

organizaciju na sistemskom uređaju. Kao i svaki dizajn sistema,

struktura fajl sistema i algoritmi povezani sa njim su jednostavni

tako da kada radite s njima, režijski troškovi ne prelaze više od toga

razumno. UNIX sistem datoteka u stvarnom radu je očigledno optimalniji

sistem datoteka Windows NT (uporedi datume razvoja !!!), zbog jednostavnosti

i optimizacija, koja se dešava na svakom koraku.

Katalozi

Rekli smo da je jedno od svojstava UNIX operativnog sistema

je da se sve informacije stavljaju u fajlove, tj. ne postoje

posebne tabele koje koristi operativni sistem, za

sa izuzetkom onih tabela koje kreira, u kojima već funkcionišu

RAM prostor. Direktorij, u smislu sistema datoteka,

Ovo je datoteka koja sadrži podatke o tim datotekama kojima pripadaju

imenik.

Direktorij A sadrži datoteke B, C i D, iako

da datoteke B i C mogu biti ili datoteke ili direktoriji, i

datoteka D je direktorij.

Imenik se sastoji od stavki koje sadrže dva polja. Prvo polje -

inode broj, drugo polje je ime datoteke koja

povezan sa datim inodom. Indeksni brojevi

deskriptori (u inode prostoru) počinju od jedan.

Prvi inode je inode direktorija. Uglavnom

mogu postojati unosi u direktoriju koji se odnose na isti inode

deskriptor, ali ne može biti unosa u direktoriju koji imaju isto ime.

Ime unutar direktorija je jedinstveno, ali sa sadržajem datoteke može

biti povezan sa proizvoljnim brojem imena. Stoga ih ima

dvosmislenost u definiciji koncepta datoteke u UNIX operativnom sistemu.

Ispostavilo se da je fajl više od samo imenovanog skupa podataka: ima

inode i može biti više imena (tj. ime je sekundarno

komponenta).

Kada se kreira direktorij, u njemu se uvijek kreiraju dva unosa: unos za

posebna datoteka pod nazivom "." (tačka) s kojom je indeks povezan

ručicu za sam direktorij, i datoteku ".." (dvije tačke) s kojom

pridruženi inode (ID) roditeljskog direktorija. Za naš

na primjer, imenik A ima, na primjer, ID broj 7, a imenik D ima ID broj

broj 5. Fajl F ima ID #10, fajl G ima ID #101. U ovom slučaju fajl je

direktorij D će imati sljedeći sadržaj:

|Ime |№ID |

|«.» |5 | Prvi unos je unos u sebe. |

|«..» |7 | Drugi unos je za nadređenog (direktorij A). |

| | | imenik | |

| "G" | 101 | Ovako će izgledati sadržaj direktorija D. |

Razlika između datoteke direktorija i običnih korisničkih datoteka je

sadržaj polja tipa datoteke u ID-u. Za korijenski direktorij, roditeljsko polje će biti

odnosi se na sebe.

Hajde sada da šematski pogledamo kako se mogu koristiti puna imena.

i strukturu imenika. U sistemu, u svakom trenutku rada

korisnički definiran trenutni direktorij, tj. direktorij i sve staze iz

root povezan sa ovim direktorijumom, koji je podrazumevano postavljen na

svi nazivi datoteka koji ne počinju znakom "/". Ako je trenutni direktorij D,

onda možete samo pričati o fajlovima F i G, a ako treba da dođete do fajla B,

tada morate koristiti puno ime ili posebnu datoteku "..", tj

U ovom slučaju, konstrukcija "../B". Pozivamo se na fajl ".." - ovo je

znači da morate pročitati roditeljski ID i koristiti ga da dođete do sadržaja

direktorij A. Zatim u datoteci direktorija A odaberite red s imenom B i

odredite ID datoteke B, a zatim otvorite datoteku. Cela ova operacija

prilično naporno, ali s obzirom da se fajlovi ne otvaraju često, ovo

neće uticati na brzinu sistema.

Rekli smo da se isti sadržaj može povezati

više imena, tj. datoteke sa istim imenom mogu se otvoriti u isto vrijeme

ID. Pojavljuje se problem - kako se sinkronizira rad sa sadržajem datoteke

ako ga otvaraju različiti procesi ili s različitim imenima. U UNIX-u je to

je riješeno sasvim ispravno (ovo ćemo razmotriti malo kasnije).

Datoteke specifične za uređaj

Već poznajemo dvije vrste datoteka: datoteke direktorija i radne datoteke, in

u kojoj se pohranjuju podaci. Postoji i treća vrsta - datoteke uređaja. Ovo

sorta se odlikuje vrstom navedenom u ID-u. Sadržaj datoteke

nema uređaja, već samo ID i ime. ID sadrži informacije o

koji tip uređaja je povezan sa ovom datotekom: bajt-orijentisan

uređaj ili blok orijentisan uređaj. Bajt orijentisan

uređaj - ovo je uređaj s kojim se razmjena vrši jedan po jedan

bajt (npr. tastatura). Blok orijentisan uređaj je

uređaj sa kojim se blokovi mogu razmjenjivati.

Takođe postoji polje koje navodi broj drajvera koji je povezan sa ovim

uređaj (jedan uređaj može imati više drajvera, ali ne

obrnuto). Ovo polje je zapravo broj u tabeli drajvera

odgovarajuću klasu uređaja. U sistemu postoje dvije tabele: za blok

i za bajt orijentisane uređaje. Također, ID definira neke

numerički parametar koji se može proslijediti vozaču kao

pojašnjavanje informacija o poslu.

Organizacija razmjene podataka sa fajlovima

Hajde da prvo definišemo šta je to niskorazinski ulaz/izlaz

sistem. UNIX sistem datoteka definira neke posebne

funkcije koje se nazivaju sistemski pozivi. Sistemski pozivi

direktno pristupiti operativnom sistemu, odnosno njemu

funkcije koje obavljaju neke operacije operativnog sistema. Implementacija

sistemske i bibliotečke funkcije (npr. matematika) u korijenu

je drugačije. Ako je funkcija biblioteke učitana u tijelo procesa,

ko koristi ovu biblioteku, tada sve radnje u većini slučajeva

će se izvršiti unutar ovog procesa, a sistemski poziv će se odmah

prenosi kontrolu na operativni sistem i on izvršava naređeno

akcija. U UNIX-u, za obezbjeđivanje I/O niskog nivoa, tj.

I/O, koji se implementira putem sistemskih poziva, postoji

skup funkcija. Evo glavnih:

1. open - Otvaranje postojeće datoteke. Jedan od parametara ove funkcije

je niz sa imenom datoteke i vraća neki broj,

koji se naziva deskriptor datoteke. U tijelu korisničkog procesa,

a takođe i u podatke koji su povezani sa ovim procesom

(osim koda i podataka, naravno) neke servisne informacije, u

posebno, tabela deskriptora datoteke. Ona, kao i svi stolovi

UNIX sistem, pozicioni, tj. broj deskriptora odgovara

broj zapisa u ovoj tabeli. Sa deskriptorom fajla (FD)

povezan s imenom datoteke i svim potrebnim atributima za rad s njim.

FD brojevi su jedinstveni unutar jednog procesa. Postoji sličan

funkcija kreiranja je funkcija za otvaranje nove datoteke.

2. read/write - čitanje/pisanje sistemskih poziva, čiji parametri

je FD broj i neki atributi za koje nisu toliko bitni

naše razmatranje.

3. zatvori - sistemski poziv za završetak rada sa fajlom, parametrom

što je FD broj. Nakon pozivanja ove funkcije, FD

postaje slobodan, a rad ovog procesa sa datotekom se završava.

Evo nekoliko sistemskih poziva koji pružaju ulaz/izlaz (usput rečeno, jesu

skoro da ne dodajete kod u svoj program). Pogledajte detalje

na svoju ruku. Skrenuo sam vam pažnju da se radi o sistemskim pozivima, jer

da se I/O može obaviti i preko I/O biblioteka. Za

postoji takozvana razmjena datoteka i funkcije fopen, fread i

itd. (sa prefiksom f). Ovo su funkcije biblioteke. Ove funkcije nazivaju same sebe

na funkcije niskog nivoa u sebi.

Razmotrite organizaciju razmjene sa sistemske tačke gledišta u operacionoj sali

UNIX sistem. Prilikom organizovanja razmene, operativni sistem se deli

i podatke povezane sa operativnim sistemom.

Tabela inoda otvorenih datoteka. Prva tabela podataka,

povezan sa operativnim sistemom - inode tabela

otvorene datoteke (TIDOF). Ova tabela sadrži unose, od kojih svaki

sadrži kopiju inode za svako otvaranje u sistemu

fajl. Preko ove kopije pristupa se blokovima datoteka. Svaki

Zapisi tabele takođe sadrže polje koje karakteriše broj otvorenih in

sistem datoteka koristeći dati deskriptor (brojač). Odnosno, ako

isti fajl je otvoren u ime dva procesa, zatim unos u TIDOF

jedan se kreira, ali se svako dodatno otvaranje ove datoteke povećava

brojač po jedinici.

Tabela fajlova. Tabela datoteka (TF) sadrži informacije o imenu

Predavanje #9

Rekli smo da sistem može raditi sa sadržajem datoteke u oba

samo ako je proces registrovao svoju želju za radom

ovaj fajl. Činjenica takve registracije naziva se otvaranjem datoteke. At

otvaranje datoteke unutar procesa za svako ime datoteke koja se otvara

(može se otvoriti postojeći fajl ili novi) se stavlja u njega

podudara se sa jedinstvenim cijelim brojem koji se zove datoteka

deskriptor (FD). U okviru procesa, PD su numerisani od 0 do k-1.

Vrijednost k je postavka operativnog sistema koja određuje da li

koliko istovremeno otvorenih datoteka proces može imati. Evo

treba napomenuti da je riječ o broju istovremeno otvorenih datoteka

(takođe napisano u bilo kojoj knjizi o UNIX-u), međutim, u stvari, k je

maksimalan broj FD-ova koji se mogu pridružiti jednom

fajl, jer se isti fajl u okviru procesa može otvoriti dva puta

puta i formiraju se dva FD. Gdje će to dovesti, razmotrit ćemo nekoliko

kasnije, ali je sasvim tačno. Nakon otvaranja datoteke, sve operacije razmjene

se izvode preko indikacija deskriptora fajla (tj. ime nije nigdje drugdje

nije određeno). Svaki deskriptor datoteke ima skup parametara povezanih s njim.

(o njima malo kasnije).

Pogledajmo kako je organiziran ulaz/izlaz, odnosno obrada

razmjena niskog nivoa, sa stanovišta operativnog sistema. Sada će biti

govori se o logičkoj šemi organizacije ulaza/izlaza, jer je prava šema

malo drugačije uređeno, ali to nama nije toliko bitno.

Svi podaci sa kojima sistem radi podijeljeni su na dva

klasa. Prva vrsta podataka su podaci povezani sa operacijom

sistem, tj. podaci u cijelom sistemu. Ovi podaci uključuju TIDOF.

Veličina stola je fiksna i određena je brojem istovremeno otvorenih

FD. Svaki unos u ovoj tabeli sadrži neke informacije, među

u kojem će nas zanimati sljedeće:

1) Kopija ID-a otvorene datoteke. Za bilo koju otvorenu datoteku, ID koji

karakterizira sadržaj ove datoteke, kopira se i stavlja u

TIDOF. Nakon toga, sve manipulacije s datotekom (na primjer, promjena

adrese datoteka) pojavljuju se s kopijom ID-a, a ne sa samim ID-om na disku.

TIDOF se nalazi u RAM-u, tj. pristup informacijama u

izvodi se brzo.

2) Brojač trenutno otvorenih fajlova povezanih sa datim ID-om. Ovo

znači da za bilo koji broj puta fajl povezan sa

dajući ID, sistem radi sa jednom kopijom tog ID-a.

Sada pređimo na takozvanu tabelu datoteka (TF). Tabela fajlova

sastoji se od fiksnog broja unosa. Svaki TF zapis

odgovara otvorenoj datoteci u sistemu ((ili bolje rečeno FD)). Istovremeno, u

U velikoj većini slučajeva, ovo je prepiska jedan na jedan.

Slučaj kada ovo nije prepiska jedan na jedan, mi

razmotrite u nastavku. Svaki TF zapis sadrži pokazivače za čitanje/pisanje

fajl. To znači da ako je isti fajl otvoren u dva procesa

ili dva puta u istom procesu, svaki otvor ima svoj pokazivač povezan s njim, i

nezavisne su jedna od druge (skoro uvijek, sa izuzetkom nekih

slučajevima). Svaki TF zapis sadrži takozvani indeks

nasljeđe je neki cijeli broj.

Ovo su podaci na nivou operativnog sistema, tj. podatke koji opisuju

stanje problema u sistemu u celini.

Svaki proces ima takozvanu otvorenu tabelu datoteka koja je povezana s njim.

(TOF). Broj zapisa u ovoj tabeli je FD broj. Svaki red ovoga

informacije o pokazivačima povezanim sa FD-om su, takoreći, pokvarene. Od jednog

ruku, deskriptori datoteka su podaci koji su atribut procesa,

s druge strane, pokazivač je podatak koji je atribut operacije

sistemi. Činilo bi se nelogično, a sada ćemo razmotriti šta je ovo

javlja se nelogičnost. Za to ćemo ukratko pregledati konceptualnu

pitanja vezana za formiranje procesa. UNIX operativni sistem

ima funkciju fork(). Ovo je sistemski poziv. Prilikom pristupa ovom sistemu

poziva, neka akcija se dešava u sistemu, što je za većinu

možete izgledati besmisleno - postoji kopija procesa, u

na koje je ova funkcija naišla, tj. kreira se proces blizanaca. Za što

potrebno je, reći ću malo kasnije.

Formiranje procesa blizanaca ima sljedeća svojstva. Prvo

svojstvo: podređeni proces koji će se formirati nakon poziva funkcije

fork() ima sve one datoteke koje su bile otvorene u nadređenom procesu. Sekunda -

sistem dozvoljava, na neki od svojih načina, da identifikuje gde

proces-otac, a gde je proces-sin, iako su u opštem slučaju apsolutno

su isti.

Pretpostavimo da postoji proces broj 1 i tabela otvorenih

fajlovi #1. Ovaj proces ima otvorenu datoteku pod nazivom Ime i ovu datoteku

mapirano u deskriptor datoteke I. To znači da u

odgovarajući red TOF-a će imati zapis sa vezom na TF. U TF

neki atributi povezani sa otvaranjem fajla su definisani, a postoji i

pokazivač čitanja/pisanja, tj. pokazivač na kojem radimo,

razmjenu informacija sa fajlom. Unosi u TF imaju link na TIDOF, in

koji sadrži kopiju ID-a koji odgovara datoteci pod nazivom Ime.

Pretpostavimo da ovaj proces još jednom otvara fajl pod imenom Name.

Sistem mu je dodijelio deskriptor datoteke J. ovo

otvor odgovara J-toj liniji TOF-a prvog procesa. U ovom unosu

otvaranje datoteke Ime. I dok su indeksi nasljeđa za oba slučaja

će biti jednaka jedan. Ovaj unos će imati svoje veze sa ovim otkrićem,

pokazivači čitanja/pisanja. Pokazivači deskriptora datoteke I i J su nezavisni

jedno od drugog, tj. kada čitate/pišete kroz deskriptor fajla I,

pokazivač deskriptora datoteke J se neće promijeniti. Ovaj post će povezati

na isti inode iz TIDOF-a, a vrijednost brojača će biti

jednako dva.

Pretpostavimo da je proces #1 uputio poziv funkciji fork(),

formirana je kopija procesa, štaviše, obje kopije počinju raditi na izlazu

iz fork(), a TOF #2 će biti povezan sa drugim procesom. Bit će isto

Ime datoteke otvaraju ID I i ID J. Ali u ovom slučaju, kada je proces primljen

otvorite datoteke naslijeđene od roditelja, zatim veze iz odgovarajućih linija

Pacifička flota se neće pojaviti na novim TF zapisima, već na istim, kojima

referencirao odgovarajući FD od roditelja. Ovi procesi imaju pokazivače čitanja

evidencija će biti ista, tj. ako pomjerite pokazivač u jednom procesu,

tada će se automatski preći i na drugi proces. Ovaj slučaj je kao

vremena kada ne postoji korespondencija jedan-na-jedan između nizova TF i

linije TOF-a. Kada se ove reference generiraju, brojač se povećava za dva. I,

shodno tome, iz ID-a, zbog adresiranja blokova, pristupa se

blokovi fajlova. Ova organizacija razmene informacija znači da razmena

sa sadržajem svake datoteke vrši se centralno, tj. na kraju

kao rezultat, svi nalozi za razmjenu prolaze kroz jedan jedini unos, bez obzira na količinu

nijedna datoteka povezana s ovim ID-om nije otvorena na sistemu. Ne postoje

kolizije, kada zabuna počinje u vremenu u izvršenom, ili

neuspjele razmjene povezane s jednom ručkom.

Sa bilo kojim formiranjem novog procesa, sistem se a priori postavlja

nula, prvi i drugi deskriptori datoteke iz TOF-a, pridružujući im

unapred definisane datoteke. Nula FD je povezana sa sistemskom ulaznom datotekom, sa

obično je povezan sa eksternim uređajem sa tastaturom. Prvi FD je

standardna izlazna datoteka, obično povezana sa ekranom monitora. Sekunda

FD je standardna izlazna datoteka dijagnostičke poruke, zajedno s njom

obično povezan sa ekranom monitora.

Razmotrite, na primjer, tipične radnje kada pristupate jednom ili drugom

sistemski pozivi.

Pozivanje funkcije fork(). Kao što znate, prilikom pozivanja ove funkcije

sistem kreira kopiju originalnog procesa. Istovremeno, sistem duplira Pacifičku flotu

jedan proces u TOF procesa nasljednika, a također se povećava za jedan

indeks nasljeđivanja u TF redovima povezanim s otvorenim datotekama

originalni proces, a također povećava brojač otvorenih datoteka povezanih s

ID podaci, u TIDOF-u.

Pozivanje funkcije open(). Kada se ova funkcija pozove,

sljedeće:

1. Puno ime određuje direktorij u kojem se nalazi

2. Određuje se ID broj. Za pretragu se koristi ID broj

TIDOF table.

3. Ako se pronađe zapis sa datim brojem, popravite broj

odgovarajući red TIDOF-a i idite na korak 5.

4. Ako niz nije pronađen, formacija

novi red koji odgovara novom ID-u i popravlja ga

5. Ispravljamo brojač referenci (strelice) za TIDOF zapis. Broj

zapisi u TIDOF se upisuju u TF zapis, kao i u TOF

ovim se programom vraća broj termina Pacifičke flote u kojem

U I/O operacijama, akcije sistema su očigledne.

Interakcija sa uređajima. Već smo rekli da su svi uređaji

koje opslužuje UNIX operativni sistem mogu biti

klasifikovani u dva tipa - bajt-orijentisani uređaji i uređaji zasnovani na blokovima

orijentisani uređaji. Treba napomenuti da je isti uređaj u

sistem se može smatrati i bajt-orijentiranim i blok-orijentiranim

orijentisan (primjer - RAM). Shodno tome, postoji

blok orijentisani i bajt orijentisani drajveri. Na prošlom predavanju smo

smatraju posebnim datotekama povezanim s vanjskim uređajima, i

govorili o tome da postoji tabela blok-orijentisanih drajvera uređaja

i tabela bajt orijentisanih drajvera uređaja. Shodno tome, za ove

Glavna karakteristika organizacije rada sa blok-orijentisanim

uređaja je mogućnost baferovanja razmjene. Suština je

sljedeći. Skup bafera je organiziran u RAM-u sistema, gdje

svaki bafer je veličine jednog bloka. Svaki od ovih blokova može biti

povezan sa drajverom jednog od fizičkih blok-orijentisanih

uređaja.

Razmotrite kako se redoslijed radnji izvodi tokom izvršenja

blok sa uređaja broj M.

1. Među međuspremnicima spremišta međuspremnika, vrši se pretraga za navedeni

blok, tj. ako se pronađe bafer koji sadrži N-ti blok Mth

uređaja, onda fiksiramo broj ovog bafera. U ovom slučaju,

stvarnom fizičkom uređaju se ne pristupa, ali

operacija čitanja informacija je predstavljanje informacije

iz pronađenog bafera. Idemo na korak 4.

2. Ako je potraga za specificiranim međuspremnikom neuspješna, onda u spremištu međuspremnika

bafer se traži za čitanje i postavljanje ovoga

blok. Ako postoji slobodan bafer (zapravo, ova situacija

moguće samo pri pokretanju sistema), tada popravljamo njegov broj i

idite na korak 3. Ako nema slobodnog bafera, onda mi

odaberite bafer kojem se nije pristupalo najduže vrijeme

vrijeme. Ako bafer ima postavljenu zastavicu

informacije upisane u bafer, zatim

stvarni zapis baferovanog bloka na fizičkom

uređaj. Zatim popravimo njegov broj i također idemo na

3. N-ti blok uređaja M se čita u pronađeno

4. Brojač vremena u ovom baferu se resetuje i

povećanje brojača u drugim baferima.

5. Prenosimo sadržaj ovoga

Vidite da ovdje postoji optimizacija vezana za minimizaciju

pravi pristup fizičkom uređaju. Ovo je veoma korisno kada

rad sistema. Blokovi se pišu na sličan način. Dakle

baferovanje je organizovano na način za ulaz/izlaz niskog nivoa.

Prednosti su očigledne. Nedostatak je što je sistem u ovom slučaju

je kritična za neovlaštene nestanke struje, tj.

situacija u kojoj sistemski baferi nisu istovareni, već je nenormalna

zaustavljanje izvršavanja programa operativnog sistema, što može dovesti do

gubitak informacija.

Drugi nedostatak je što, zbog puferiranja,

vremenom, činjenica pristupa sistemu za razmjenu i pravu razmjenu. Ovo

nedostatak se manifestuje ako, tokom prave fizičke razmene

dolazi do kvara. One. potrebno je, pretpostavimo, napisati blok, to

se upisuje u međuspremnik, a od sistema se prima odgovor da je razmjena završena

uspješno, ali kada sistem zapravo upisuje ovaj blok u VSD nije poznato. At

U ovom slučaju može nastati nenormalna situacija zbog činjenice da snimanje može

ne prođe, recimo, zbog nedostataka u medijima. Ispostavilo se da je situacija

što je poziv sistemu za funkciju razmjene za proces bio uspješan

(proces je dobio odgovor da je sve snimljeno), ali, u stvari, razmjena nije

Stoga je ovaj sistem dizajniran za pouzdan hardver i za

ispravne profesionalne uslove rada. Da se borim sa izgledima

gubitak informacija u slučaju vanrednih situacija, sistem je dovoljan

pametan i radi pravu stvar. Naime, sistem ima neki parametar,

koji se može brzo mijenjati, što definira vremenske periode,

preko kojeg se sistemski podaci resetuju. Drugo - dostupno

naredba kojoj korisnik može pristupiti je naredba SYNC. Po ovome

Naredba ispušta podatke na disk. I treće, sistem ima

neka redundantnost, koja omogućava da se u slučaju gubitka informacija proizvede

skup radnji koje će vratiti informacije ili kontroverzne blokove koje

ne može se identificirati po pripadnosti datoteci u koju će biti upisano

određenu lokaciju u sistemu datoteka. Na ovom mjestu možete ih isprobati

analizirati i vratiti ručno ili izgubiti nešto. Naš

Univerzitet je bio jedan od prvih u zemlji koji je počeo sa radom operacionu salu

UNIX sistem, a sada već možemo reći da su problemi nepouzdanosti sistema,

u smislu fatalnog gubitka informacija, nije ih bilo.

Danas smo počeli da pričamo o tome da imamo sistemske pozive i

I/O biblioteke. Još jedan alat koji omogućava

optimizira performanse sistema, standardna je ulazno/izlazna biblioteka,

povezan sa stdio.h uključivom datotekom. Suština konceptualne razmjene je ista

isto kao i kod organizovanja I/O niskog nivoa. Razlika je

da ako open() vraća broj deskriptora datoteke, fopen() vraća

pokazivač na neku strukturu posebnog tipa FILE. Drugi i glavni

Ovo je biblioteka funkcija. Mnoge funkcije usluge koje ovo pruža

biblioteka se implementiraju unutar vašeg adresnog prostora. IN

posebno, takva funkcija usluge je drugi nivo baferovanja

ulaz/izlaz. Njegova suština leži u činjenici da na resursima procesa možete

dodijelite međuspremnik koji će raditi slično kao bafer bafera

operativni sistem i koji minimizira poziv vašeg procesa na

I/O sistemski pozivi. Jasno je da ova I/O biblioteka

implementiran programom koristeći sistemske pozive

ulaz/izlaz. To znači da postoji dvostruki faktor puferiranja

ovo povećava nepouzdanost.

Dvostruko baferovanje je očigledno korisna stvar. Omogućava vam da kontaktirate

za čitanje ili pisanje kroz bibliotečke funkcije s polublokiranim volumenima podataka

ili trećina bloka, a ako su ti dijelovi u nizu, onda i sam sistem na štetu

baferovanje, prikuplja ove delove i umesto nekoliko poziva sistemu

poziv obavlja samo jedan poziv. To je isplativo. Nepovoljno je to

baferovanje je organizovano unutar adresnog prostora procesa sa

sve posljedice koje proizlaze (sinhronizacija se gubi zbog razmjena u tome

ako drugi procesi rade s ovom datotekom kroz ovu biblioteku,

jer u tijelu svakog procesa postoji bafer koji može

akumulirati ove podatke i nema uniformnosti, koja je u

shema koju smo razmatrali ne funkcionira). Međutim, standard

I/O biblioteka je zgodan alat; ona takođe ima sredstva

blokiranje ovog baferovanja.

Predavanje #10

U prošlom predavanju razgovarali smo o sljedećim tačkama koje se odnose na

organizacija sistema datoteka. To je sistemska organizacija

razmjena niskog nivoa. Utvrdili smo da organiziranjem podataka,

UNIX operativni sistem na prilično jednostavan i "transparentan" način

rješava probleme mogućih sukoba u slučaju više otvaranja jednog i

isti fajl. Vidjeli smo da su sva otvaranja iste datoteke (pod

fajl, ne razumijemo naziv, već sadržaj) na kraju se baci na posao

sa jednom kopijom lične karte. Saznali smo da su gotovo sva otkrića

datoteke povezane s istim ID-om daju procesima mogućnost pokretanja

sa svojim pokazivačima čitanja/pisanja datoteke, osim kada

kada je fajl u procesu dobijen nasljeđivanjem, tj. fajl je primljen

od oca procesa preko funkcije fork() od strane procesa podređenog.

Saznali smo da sistem dijeli servisirane uređaje

u dvije klase: blok-orijentisanu i bajt-orijentisanu. Isto

Uređaj može biti i bajt orijentiran i blok orijentiran u isto vrijeme.

orijentisan. Zavisi i od samog uređaja i od dostupnosti

drajveri - programi koji kontrolišu ovaj uređaj. Primjer takvog

uređaj je RAM.

Razmotrili smo principe organizovanja razmjene na niskom nivou za

blok-orijentisanim uređajima, au kontekstu toga smo se susreli sa

baferovanje znači koji se koriste u UNIX OS-u, čija je suština

leži u činjenici da, po analogiji sa baferima za čitanje/pisanje iz operativnog

memoriju (hardver), operativni sistem kreira softver

znači minimizirati broj poziva na

fizički uređaj. Ovaj mehanizam dobro razlikuje i razlikuje UNIX OS.

Ovdje treba napomenuti da baferiranje razmjene može biti na više nivoa.

Prvi dodatni nivo može se pojaviti zbog činjenice da je uređaj

može imati vlastite hardverske bafere, implementirane slično kao i baferi

ram memorija.

Razgovarali smo i o tome da pored I/O niskog nivoa, sa

koje su povezane funkcije koje pružaju sistemske pozive (otvaranje, čitanje, pisanje

itd.), postoje pristupnici visokog nivoa - ovo je standard

I/O biblioteka stdio.h, čija veza vam omogućava da koristite

organizirati razmjenu, drugi nivo baferovanja (ovo je optimizacija

sistemski pozivi) koji je povezan sa procesom, tj.

baferovanje se dešava na račun resursa procesa. Cijenili smo ono što je dobro,

šta nije uredu. Očigledno, baferovanje smanjuje broj razmjena sa

spor eksterni uređaj, i što više takvih nivoa, to manje

odvijaju se razmene. Međutim, loša stvar je što je zbog puferiranja

pouzdanost sistema. Na primjer, ako se sistem neočekivano isključi

napajanje, svi baferi gube informacije. Trenutak obraćanja razmjeni je daleko od toga

prava razmjena, pa su stoga moguće i neugodne situacije. Ali uprkos

ovi nedostaci, iskustvo pokazuje da dolazi do fatalnog gubitka informacija

rijetko.

Skrećem vam pažnju na to kako UNIX sprema pozive na VZU.

Superblok je u RAM-u, a stvarne akcije sa informacijama

superblokovi ne dolaze s diska, već iz RAM-a, iako ovdje

postoji isti problem s neovlaštenim isključenjem struje.

Prilikom otvaranja fajla radimo sa ID-om. Saznali smo da radeći sa ID

se odvija kroz rad sa njegovom kopijom smještenom u softveru

tabele u memoriji. To znači skoro da nema režijskih troškova

troškovi povezani s malim datotekama, a ovi troškovi su mali kada

rad sa ogromnim fajlovima. Ispostavilo se da skoro cijela infrastruktura,

podržava rad sistema datoteka, radi zbog dubokog

slojevito puferovanje.

Atributi datoteke

Razgovarali smo o organizaciji korisnika sistema; Ona ima

hijerarhijska struktura na tri nivoa.

Svaki korisnik pripada grupi. Hijerarhija

korisnika, definirana je hijerarhija zaštite datoteka i korisničkih prava.

Definiran je koncept vlasnika datoteke. Originalni vlasnik fajla je

Korisnik (točnije, korisnički proces) koji je kreirao datoteku. Atribut

"Vlasnik datoteke" se može promijeniti naredbom changeown. Svaki fajl ima

sigurnosni atributi povezani sa hijerarhijom. Imati prava pristupa nekima

radnje u fajlu od strane vlasnika fajla. Ovo su prava čitanja,

snimanje, za izvršenje. Svaki fajl, osim prava povezanih sa nivoom

korisnik, postoje prava povezana sa nivoom grupe. To je pravo za svakoga

korisnici grupe kojoj pripada vlasnik datoteke, s izuzetkom

sebe (tj. prava vlasnika i njegove grupe su različita). Treća kategorija

zaštita - sve ostalo. To su prava koja imaju svi korisnici

sistema, osim vlasnika i njegove grupe. Sistem ima komandu

promijenite dozvole changemode.

Pored atributa pristupa, svaka datoteka može imati znakove, in

posebno tzv. t-bit i s-bit, koje također postavljaju neki

tim. Mi, već poznavajući strukturu sistema datoteka, razumijemo da, u principu,

fajl može biti u veoma fragmentiranom obliku. osim toga,

datoteka može biti velika, a kada otvorite veliku datoteku, postoje dodatni troškovi

troškovi povezani sa pristupom udaljenim blokovima datoteke. Dakle, otkriće

fajl je dugotrajan proces. Da biste optimizirali ovu akciju,

sistem ima mogućnost označavanja izvršnih datoteka t-bitom. Poslije toga

dogodi se sljedeće: u slučaju da se pozove izvršna datoteka,

označen sa t-bitom, tada dolazi do prvog poziva u sistemskoj sesiji

kopiranje tijela datoteke u područje za spremanje. Svaki put kada ponovo nazoveš

datoteku, prvo se pregleda direktorij područja za spremanje iu njemu

ako postoji željeni fajl, onda se datoteka ne učitava sa VSD-a,

ali sa ovog područja. Odnosno, ovo je još jedan način da se minimiziraju pozivi na VZU.

Obično je mogućnost postavljanja t-bita prerogativ sistema

administrator, a administrator sistema bira te procese (i

odnosno datoteke) koje moraju biti označene t-bitom. Obično su označeni

oni procesi koji se najčešće koriste (ako npr

praksa, onda ima smisla označiti datoteku kompajlera t-bitom).

S-bit će biti obrađen donekle površno, ali ćemo se na njega vratiti kasnije.

Postoji sljedeći problem. Sva sredstva sistema pripadaju nekome, tk. sve

znači, sve naredbe (osim nekih ugrađenih) u finalu

račun su fajlovi koji imaju vlasnika. Neki od

od ovih naredbi mogu se odnositi na određene sistemske datoteke. Ustaje

problem povezan sa činjenicom da s jedne strane mora postojati zaštita od

neovlaštenog pristupa fajlu. S druge strane, svi timovi imaju

potencijalna prava za sve kategorije. Kako biti? Moguće je označiti

neki fajlovi sa s-bitom. Vlasnik s-bit datoteke ostaje nepromijenjen, ali

kada pokreće ovu datoteku, vlasnik procesa koji pokreće ovu datoteku,

daju se prava pristupa podacima od vlasnika izvorne datoteke.

Pretpostavimo da postoji izvršna datoteka pod nazivom i da se nekako radi

zatim sa datotekom file2, koja sadrži povjerljive informacije.

Pretpostavimo da datoteka ažurira file2, koja sadrži informacije o

svi registrovani korisnici, a posebno fajl se mogu promijeniti

korisničku lozinku u sistemu. Ako ja pokrenem fajl u svoje ime, onda mogu

javljaju se dvije situacije: ili neću moći raditi sa file2, koji ima

podatke o nalogu korisnika, jer je zatvoren za sve

ostalo; ili je otvoren za sve, onda nema zaštite. U ovom slučaju

s-bit radi. Suština njegovog rada je sljedeća. Vlasnik

izvorni fajl je korisnik ROOT. Pretpostavimo da ovaj fajl želi

pokrenite korisnika po imenu MASH. Ako MASH pokrene ovaj fajl i nema s-

bit, ispada da je vlasnik fajla ROOT, a vlasnik

proces je postao MASH. U ovom slučaju, datoteke koje su nedostupne korisniku

MASH, biće nedostupan svom procesu, a MASH neće moći da ga promeni

lozinku u sistemu. S-bit vam omogućava da proširite prava vlasnika (ROOT) datoteke na

vlasnika (MASH) procesa (pokrenutog iz ove datoteke) i za vrijeme trajanja sesije

procesa, imat će pristup svim onim datotekama koje su bile dostupne

vlasnik fajla (ROOT).

Sljedeće pitanje: kako se tumače dozvole direktorija

(jer su direktoriji također fajlovi)? Dozvola za čitanje iz

direktorij znači da vam je dozvoljeno da uđete u direktorij i otvorite datoteke iz njega

imenik. Dozvola za pisanje daje mogućnost kreiranja i

uništite datoteke u ovom direktoriju. Dozvola za izvršenje je

mogućnost pretraživanja u ovom direktoriju (na primjer, korištenjem naredbe ls).

Sistem datoteka sa stanovišta korisnika.

Pogledajmo strukturu sistema datoteka u smislu

korisnik. Ova struktura će se uzeti u obzir za generalizovanu

operativni sistem, jer njegova stvarna struktura može varirati.

U korijenskom direktoriju postoji datoteka koja se zove unix. Ovo je isti fajl

koji pokreće programski učitavač i koji formira kernel

ETC katalog. Ovaj direktorij sadrži standardne datoteke podataka

sistemi i komande koje pružaju određeni nivo kontrole

funkcionisanje sistema. 1. passwd fajl. Svi korisnici u

sistem registrovan preko ovog fajla. To znači da ako

korisnik može raditi, tada je označena linija u datoteci passwd

korisničko ime, koje sadrži skup nekih podataka razdvojenih sa

znak za razdvajanje. Konkretno, red datoteke passwd sadrži broj

grupa kojoj korisnik pripada ponekad može sadržavati

Kodirana lozinka za prijavu korisnika na sistem. Kodirano -

znači da sistem koristi obostrano dvosmislenu mogućnost

preslikavanje niza znakova u neki kod iu sistem

mapiranje ove lozinke je pohranjeno. Moderni UNIX-ovi pohranjuju lozinke u

zasebna sigurna baza podataka (iako je i passwd datoteka prisutna),

jer je passwd datoteka obično otvorena za čitanje, algoritam konverzije

je također obično poznat i moguće je pogoditi lozinku.

karakteriziranje prezimena, imena i patronimika korisnika; oblasti u kojoj

naznačen je status korisnika; polje koje specificira "home" direktorij.

Ista linija označava (ili se može specificirati) s kojim interpretatorom

komande koje će ovaj korisnik raditi. Možda ih ima još

parametri.

2. rc fajl. Ovaj fajl sadrži skup

naredbe koje se izvršavaju kada se operativni sistem pokrene.

Na primjer, prilikom pokretanja, operativni sistem može pokrenuti proces

provjera integriteta sistema datoteka.

Skrećem vam pažnju na činjenicu da UNIX operativni sistem, sa izuzetkom

nekoliko slučajeva, sadrži sve svoje sistemske informacije u običnom

tekstualne datoteke. Ove informacije je lako pregledati i lako ih je pregledati

je ispravljeno. Svojevremeno je to bio revolucionarni korak.

3. U istom direktoriju postoje naredbe koje vam to dozvoljavaju

promijeniti korisničke lozinke (passwd izvršni), dozvoliti

"mount" lokalne sisteme datoteka na sistem datoteka i

bazirati te iste lokalne sisteme, dozvoliti da se proces pokrene

testiranje i korekcija sistema datoteka. Ovaj proces provjerava datoteku

sistem prema određenom skupu karakteristika, na primjer, set besplatnih

fajlovi bi trebali, u kombinaciji sa puno zauzetih fajlova, dati sve

BIN imenik. Ovaj katalog sadrži ogromnu većinu standarda

sistemske komande dostupne korisniku.

MNT imenik. Ovo je direktorij na koji možete lokalno "montirati".

sistemi datoteka. Do danas smo mislili da je sistem datoteka

hostovan na jednom uređaju, ali u stvarnosti nije. Postoji glavni

sistem datoteka na sistemskom uređaju, a postoji proizvoljan (in

razumna ograničenja) broj lokalnih sistema datoteka koji

se montiraju na sistem pomoću neke komande. Korijen lokalnog

sistem datoteka će biti MNT direktorij.

DER imenik. Ovaj direktorij sadrži datoteke povezane sa

specifični upravljački programi eksternih uređaja, kao što su upravljački programi konzole,

linijska štampa itd. Da li se sećate da su fajlovi povezani sa drajverima

vanjski uređaji, u ID-u koji je pridružen njihovom imenu, imaju znak

da je ovo datoteka uređaja, te da imaju veze u ID-u do odgovarajućeg

stolovi vozača. Ovi fajlovi nemaju sadržaj.

USR imenik. Ovaj direktorij ima LIB poddirektorij, što je obično

postoje biblioteke koje implementiraju neke grupne funkcije,

dostavljeno korisniku, uklj. C kompajler sa odgovarajućim

biblioteke podrške.

Također, postoji BIN poddirektorij (/USR/BIN) koji sadrži

sistem administrator dodatne "homespun" komande, jer oni

postavljanje u /BIN direktorij smatra se netačnim.

INCLUDE poddirektorij. Sjećate li se kako izgleda linija uključivanja? .

Ova linija nalaže C preprocesoru da preuzme datoteku iz direktorija

/USR/INCLUDE. Ovaj direktorij ima svoje poddirektorije i nama je zanimljiv

SYS poddirektorij (/USR/INCLUDE/SYS). Sadrži uključene datoteke,

povezan sa sistemskim karakteristikama, posebno signal.h je

nabrajanje onih signala koji se mogu razmjenjivati ​​između dva procesa.

Dakle, završili smo opis sistema datoteka i možemo to zaključiti

UNIX sistem datoteka je hijerarhijski, višekorisnički. File

UNIX sistem ima duboko, višeslojno baferovanje u razmjeni sa

pravi uređaji. UNIX sistem datoteka je informativan

osnovu operativnog sistema. Ovo je proširivi fajl

sistema, uz zadržavanje njegovog integriteta, tj. dok uvek

postoji jedan put od njegovog korena do bilo kog čvora (ili lista).

UNIX sistem datoteka, u smislu logičke organizacije datoteka, ima

njegova jasna i transparentna struktura. To nameće određene uslove

na administraciju sistema, jer postoje problemi koordinacije prava pristupa

različitih komponenti sistema datoteka, postoje problemi sa prilagođavanjem novog

informacije unutar sistema datoteka.

-----------------------

Indeks nasljeđa

Top Related Articles