Operacn´I Syst´Emy
Total Page:16
File Type:pdf, Size:1020Kb
S´arkaˇ Vavreˇckov´a Operaˇcn´ısyst´emy pˇredn´aˇsky Slezsk´auniverzita v Opavˇe Filozoficko-pˇr´ırodovˇedeck´afakulta Ustav´ informatiky Opava, posledn´ıaktualizace 25. kvˇetna2017 Anotace: Tento dokument je urˇcenpro studenty druh´ehoroˇcn´ıkuIVT na Ustavu´ infor- matiky Slezsk´euniverzity v Opavˇe. Obsahuje l´atkuprob´ıranouna pˇredn´aˇsk´ach pˇredmˇetu Operaˇcn´ısyst´emy. Prob´ıran´al´atka navazuje na pˇredmˇet Praktikum z operaˇcn´ıch syst´em˚u. Pˇredpokl´ad´ase z´akladn´ıorientace v adres´aˇrov´estruktuˇrea textov´emreˇzimu UNIXov´ych syst´em˚u,nejd˚u- leˇzitˇejˇs´ıch konfiguraˇcn´ıch souborech, z´akladypˇr´ıstupov´ych opr´avnˇen´ıv UNIXov´ych syst´e- mech. Doplnˇen´ımtˇechto skript jsou skripta pro cviˇcen´ı(dva soubory { pro Windows a Linux). Operaˇcn´ısyst´emy { pˇredn´aˇsky RNDr. S´arkaˇ Vavreˇckov´a,Ph.D. Dostupn´ena: http://vavreckova.zam.slu.cz/opsys.html Ustav´ informatiky Filozoficko-pˇr´ırodovˇedeck´afakulta v Opavˇe Slezsk´auniverzita v Opavˇe Bezruˇcovo n´am.13, Opava S´azenov syst´emu LATEX Tato inovace pˇredmˇetu Operaˇcn´ısyst´emy je spolufinancov´anaEvropsk´ymsoci´aln´ımfondem a St´atn´ım rozpoˇctem CR,ˇ projekt ˇc.CZ.1.07/2.3.00/0 9.0197, Pos´ılen´ıkonkurenceschopnosti v´yzkumu a v´yvoje " informaˇcn´ıch technologi´ıv Moravskoslezsk´emkraji\. Pˇredmluva Co najdeme v tˇechto skriptech Tato skripta jsou urˇcenapro studenty informatick´ych obor˚una Ustavu´ informatiky Slezsk´euniverzity v Opavˇe.Na pˇredn´aˇsk´ach pˇredmˇetuOperaˇcn´ısyst´emy prob´ır´amepˇredevˇs´ımteoretick´ekoncepty sou- visej´ıc´ıse strukturou operaˇcn´ıch syst´em˚u,rol´ıjednotliv´ych ˇc´ast´ıj´adraa mechanismy spr´avyproces˚u, pamˇetia zaˇr´ızen´ı,ovˇsemkaˇzd´et´emaje n´aslednˇevztaˇzenona konkr´etn´ıoperaˇcn´ısyst´emy (obvykle Windows a Linux). Doplnˇen´ımteoretick´ev´yukyz pˇredn´aˇsekje praktick´av´yuka na cviˇcen´ıch. Navazujeme na obdobn´askripta z pˇredmˇetuPraktikum z operaˇcn´ıch syst´em˚u,tedy pˇredpokl´adaj´ı se jiˇzz´akladn´ıznalosti pr´acev UNIXov´ych syst´emech, v pˇr´ıstupov´ych opr´avnˇen´ıch a z´akladpr´ace v textov´emreˇzimu. Nˇekter´eoblasti jsou tak´e nav´ıc\ (jsou oznaˇceny ikonami fialov´ebarvy), ty nejsou prob´ır´any a ani " se neobjev´ına zkouˇsce{ jejich ´ukolem je motivovat k dalˇs´ımu samostatn´emu studiu nebo pom´ahat v budoucnu pˇriz´ısk´av´an´ıdalˇs´ıch informac´ıdle potˇreby v zamˇestn´an´ı. Znaˇcen´ı Ve skriptech se pouˇz´ıvaj´ın´asleduj´ıc´ıbarevn´eikony: • . Nov´e pojmy, znaˇcen´ıapod. jsou oznaˇceny modr´ymsymbolem, kter´yvid´ımezde vlevo. Tuto ikonu (stejnˇejako n´asleduj´ıc´ı)najdeme na zaˇc´atkuodstavce, ve kter´emje nov´ypojem zav´adˇen. • $ Konkr´etn´ı postupy a n´astroje (pˇr´ıkazy, programy, soubory, skripty), zp˚usoby ˇreˇsen´ır˚uzn´ych situac´ı,atd. jsou znaˇceny tak´emodrou ikonou. • Nˇekter´eˇc´astitextu jsou oznaˇceny fialovou ikonou, coˇzznamen´a,ˇzejde o nepovinn´e´useky, kter´enejsou prob´ır´any (vˇetˇsinou; studenti si je mohou podle z´ajmu vyˇz´adatnebo sami prostudo- vat). Jejich ´uˇcelemje dobrovoln´erozˇs´ıˇren´ıznalost´ıstudent˚uo pokroˇcil´at´emata,na kter´aobvykle pˇriv´yucenezb´yv´amoc ˇcasu. • Zlutouˇ ikonou jsou oznaˇceny odkazy, na kter´ych lze z´ıskat dalˇs´ıinformace o t´ematu.Nejˇcastˇeji u t´etoikony najdeme webov´eodkazy na str´anky, kde se dan´et´ematicejejich autoˇrivˇenuj´ıpo- drobnˇeji. • Cerven´ajeˇ ikona pro upozornˇen´ı a pozn´amky. iii iv • J Toto znaˇcen´ıznamen´a,ˇzesi u zkouˇskym˚uˇzetevybrat mezi nˇekolika alternativami. Typicky jde o rozhodnut´ı, zda dan´ypostup, pojem, strukturu apod. vysvˇetl´ıte na Windows nebo na Linuxu. Pokud je mnoˇzstv´ıtextu patˇr´ıc´ıho k urˇcit´eikonˇevˇetˇs´ı,je cel´yblok ohraniˇcenprostˇred´ıms ikonami na zaˇc´atkui konci, napˇr´ıkladpro definov´an´ınov´ehopojmu: . Definice V takov´emprostˇred´ıdefinujeme pojem ˇcivysvˇetlujemesice relativnˇezn´am´y,ale komplexn´ıpojem s v´ıcev´yznamy ˇcivlastnostmi. Podobnˇem˚uˇzevypadat prostˇred´ıpro delˇs´ıpostup nebo delˇs´ıpozn´amkuˇciv´ıceodkaz˚una dalˇs´ıinfor- mace. Mohou b´ytpouˇzitatak´ejin´aprostˇred´ı: M Pˇr´ıklad Takto vypad´aprostˇred´ıs pˇr´ıkladem,obvykle nˇejak´ehopostupu. Pˇr´ıkladyjsou obvykle komentov´any, aby byl jasn´ypostup jejich ˇreˇsen´ı. M C Ukol´ Ot´azkya ´ukoly, n´amˇety na vyzkouˇsen´ı, kter´ese doporuˇcujepˇriprocviˇcov´an´ı uˇciva prov´adˇet,jsou uzavˇreny v tomto prostˇred´ı. Pokud je v prostˇred´ıv´ıce´ukol˚u,jsou ˇc´ıslov´any. C Pro ´usekyk´odu, pˇr´ıkazy a jejich v´ystupy je pouˇz´ıv´anoneproporcion´aln´ıp´ısmo. Jak prob´ıh´azkouˇska Zkouˇska je p´ısemn´a.Na str´ank´ach pˇredmˇetuje k dispozici orientaˇcn´ıseznam ot´azek,kter´ese mohou objevit na p´ısemce, jsou pˇr´ıpustn´ei drobn´emodifikace. Tato skripta plnˇepokr´yvaj´ıodpovˇedina vˇsechny ot´azkyze seznamu a jejich modifikace. Obsah Pˇredmluva iii 1 Uvod´ do operaˇcn´ıch syst´em˚u1 1.1 Co je to operaˇcn´ısyst´em....................................1 1.2 Funkce operaˇcn´ıhosyst´emu..................................2 1.3 Typy operaˇcn´ıch syst´em˚u...................................3 1.3.1 Z´akladn´ırozdˇelen´ı...................................3 1.3.2 Realtimov´eoperaˇcn´ısyst´emy.............................4 1.3.3 Distribuovan´eoperaˇcn´ısyst´emy............................6 1.4 Cloud Computing a operaˇcn´ısyst´emy............................8 2 Struktura operaˇcn´ıch syst´em˚u 11 2.1 Z´akladn´ıtypy architektur................................... 11 2.2 Syst´emy MS-DOS a Windows................................. 12 2.2.1 MS-DOS a Windows do verze 3.x........................... 13 2.2.2 Windows s DOS j´adrem................................ 15 2.2.3 Windows ˇradyNT do verze XP............................ 16 2.2.4 Windows od verze Vista a Server 2008........................ 20 2.3 Syst´emy UNIXov´ehotypu................................... 23 2.3.1 Klasick´yUNIX..................................... 23 2.3.2 Podrobnˇejik j´adruLinuxu.............................. 25 2.4 Hardwarov´ezabezpeˇcen´ısyst´emu............................... 26 3 Spr´ava pamˇeti 27 3.1 Modul spr´avce pamˇeti..................................... 27 3.2 Re´aln´emetody pˇridˇelov´an´ıpamˇeti.............................. 28 3.2.1 Pˇridˇelen´ıjedn´esouvisl´eoblasti pamˇeti........................ 28 3.2.2 Pˇridˇelov´an´ıblok˚upevn´evelikosti........................... 29 3.2.3 Dynamick´epˇridˇelov´an´ıblok˚upamˇeti......................... 30 3.2.4 Segmentace....................................... 31 3.2.5 Jednoduch´estr´ankov´an´ı................................ 33 v vi 3.3 Reˇsen´ıfragmentaceˇ pamˇeti.................................. 34 3.3.1 V´ybˇervhodn´ehobloku pamˇeti............................ 34 3.3.2 Setˇr´as´an´ıpamˇeti.................................... 35 3.4 Virtu´aln´ıpamˇet' ......................................... 36 3.4.1 Odkl´adac´ıprostor a str´anky.............................. 36 3.4.2 Str´ankov´an´ına ˇz´adost................................. 36 3.4.3 Segmentace se str´ankov´an´ımna ˇz´adost........................ 38 3.4.4 Swapov´an´ıproces˚u................................... 39 3.5 Technologie........................................... 40 3.5.1 Adresov´yprostor a virtu´aln´ıpamˇet' .......................... 40 3.5.2 NUMA architektura.................................. 40 3.5.3 Little a Big Endian................................... 41 3.6 Spr´ava pamˇetiv nˇekter´ych operaˇcn´ıch syst´emech...................... 42 3.6.1 MS-DOS........................................ 42 3.6.2 Windows........................................ 42 3.6.3 UNIXov´esyst´emy vˇcetnˇeLinuxu........................... 44 4 Procesy 47 4.1 Evidence proces˚u........................................ 47 4.1.1 Pojmy proces a ´uloha................................. 47 4.1.2 Bin´arn´ıspustiteln´esoubory.............................. 48 4.1.3 Datov´estruktury souvisej´ıc´ıs procesy........................ 49 4.1.4 Priority proces˚u.................................... 50 4.1.5 Vznik a z´anikprocesu................................. 55 4.1.6 Pˇr´ıstupov´aopr´avnˇen´ıprocesu............................. 56 4.2 Bˇehproces˚ua multitasking.................................. 57 4.2.1 Pseudomultitasking.................................. 58 4.2.2 Kooperativn´ımultitasking............................... 58 4.2.3 Preemptivn´ımultitasking............................... 59 4.3 Multithreading......................................... 60 4.3.1 Princip......................................... 60 4.3.2 Programov´an´ıv´ıcevl´aknov´ych aplikac´ı........................ 62 4.3.3 Dalˇs´ımoˇznostiprogramov´an´ıv´ıcevl´aken...................... 65 4.4 Spr´ava front proces˚u...................................... 65 4.5 Pˇridˇelov´an´ıprocesoru..................................... 66 4.5.1 Fronta { FCFS..................................... 67 4.5.2 Cyklick´epl´anov´an´ı{ RR............................... 68 4.5.3 Nejkratˇs´ı´uloha{ SPN................................. 68 4.5.4 Pl´anov´an´ıpodle priorit................................ 69 4.5.5 Kombinace metod s v´ıcefrontami........................... 70 4.6 Pl´anov´an´ıv jednotliv´ych operaˇcn´ıch syst´emech....................... 70 4.6.1 Windows........................................ 70 4.6.2 Linux.......................................... 72 vii 4.7 Komunikace proces˚u...................................... 74 4.7.1 Princip komunikace proces˚u.............................. 74 4.7.2 Komunikace ve Windows............................... 76 4.7.3 Komunikace v Linuxu................................. 78 5 Synchronizace proces˚u 84 5.1 Uvod´ do problematiky..................................... 84 5.2 Petriho s´ıtˇe..........................................