Neljas praktikum - ressurssidega tutvumine
Selles praktikumis tutvume operatsioonisüsteemi ressurssidega. Selleks õpime tundma erinevaid tööriistu nii Linuxi kui Windowsi all. Unixis on alati olnud traditsiooniks terminali sagedasem kasutamine kui Windowsis. Kuna kasulik on osata kasutada nii käsurida kui ka graafilisi vahendeid, siis antud praktikumis kasutame Windowsis graafilisi vahendeid ja Linuxis terminali.
Ressursside haldamine
Operatsioonisüsteemide põhiülesandeks on protsesside ja ressursside üle arvepidamine. Iga protsess on mingi käivitatav programm, mis vajab oma tööks ressursse – mäluruumi, protsessoriaega ja ligipääsu sisend-väljundseadmetele. Nende ressursside jagamise reeglid on määratletud operatsioonisüsteemi loojate otsustega ja kasutajapoolsete seadistustega.
Tööriistad Windowsis
Task Manager (Tegumihaldur) – ilmselt on igaüks kokku puutunud Windowsi põhilise ressursside haldamisega seotud tööriistaga. Task Manageri abil on võimalik saada infot jooksvate protsesside ja ressursikasutuse hetkeolukorra kohta. Windows 8-st alates kuvab Task Manager infot ka automaatselt käivituvate protsesside kohta ning kuvab ka lihtsamat ajaloovaadet protsesside protsessori- ja võrgukasutuse kohta. Käsitsi tulpi nähtavaks (peidetuks) muutes (parem hiireklahv üleval tulba nimede alal) on võimalik Task Managerist kätte saada ka detailsemat infot, näiteks PID numbrid, sisend-väljundseadmete kasutus jne. Kiirklahvi kombinatsioon avamiseks CTRL
+SHIFT
+ESC
ehk klassikalisel klaviatuuril 3 vasakpoolseimat nuppu.
Process Explorer – alternatiiv/täiendus Task Managerile, mille kasutajaliides ja võimalused on oluliselt keerulisemad. Windows 8-st alates on Task Manageris samuti mõned uued võimalused, mis varem olid olemas ainult Process Exploreris. Kindlasti lisage veerge (column-e) algvaatesse olulise informatsiooni nägemiseks (parem hiireklahv üleval tulba nimede alal).
Sysinternals Suite mille osa on ka Process Explorer. Sisaldab erinevaid programme Windowsis toimuva kohta info kuvamiseks.
Autoruns – täiendus Task Managerile, mille abil on võimalik saada täpsemat infot kõikide automaatselt käivituvate protsesside ja teenuste kohta. Ideaalne programm puhastamaks automaatselt käivituvate programmide nimekirja ja leidmaks kurivara (ka nemad peavad ennast kuidagi käima panema).
Disk Management (Kettahaldus) – salvestusseadmete haldamiseks mõeldud tööriist, mille abil saab vaadata ja muuta partitsioone, hallata RAID massiive ja vormindada partitsioone erinevate failisüsteemide jaoks.
Device Manager (Seadmehaldus) – haldusvahend, millega saab hallata arvutisiseste ja perifeerseadmete tööd. Võimaldab uurida, millised seadmed on arvutiga ühendatud, kontrollida nende tööks vajalike draiverite olukorda, versioone ning algatada automaatset uuenduste kontrolli. Lisaks eelnevale saab Device Manager abil kontrollida näiteks katkestuste numbreid ja I/O aadressivahemikke, mis võivad keerulisemate vigade lahendamisel oluliseks osutuda. Katkestuste numbrite ja mäluaadressite vahemike vaatamiseks tuleb muuta Device Manageri peavaadet: View -> Resources by type
Resource Monitor – Task Manageri võimalusi laiendab oluliselt Resource Monitor tööriist. See kuvab detailsemat infot protsesside, teenuste, protsesside poolt kasutatavate lisamoodulite ja ressursside kohta. Resource Monitori kettahaldustööriist kuvab infot salvestusseadmete kohta, näidates lisaks põhiinfole mahu kohta ka aktiivsusaja ning tööjärjekorra pikkuse. Võrguhalduse tööriista abil saab täpsemalt uurida mõne protsessi poolt tekitatud võrguliiklust.
Performance Monitor – Tööriist mis võimaldab spetsiifilisi pikemaajalisi arvuti jõudlust mõõtvaid teste läbi viia.
Dxdiag – tööriist, mis kogub arvuti põhiinfo (protsessor, mälu, graafikaseadmed, olulisemad perifeerseadmed jne.) ühte kohta, kergesti käideldavasse formaati. Saab kasutada näiteks kaugabi andmisel või saamisel.
Tööriistad Linuxis
Linuxis soovitame kasutada käsureal töötavaid programme. Need annavad võimaluse andmeid analüüsida käsureal kiiresti skriptides, on kasutuskõlblikud ka hädaolukorras või keskkonnas,
kus graafilist liidest pole võimalik kasutada. Ainult programmi teadmisest on tihti Linuxis vähe ja ärge unustage lisada erinevaid parameetreid programmi nime taha neid käivitades, mis võivad täielikult muuta kuvatavat infot ehk programmi tööd.
Olulisemad programmid on:
ps
– näitab hetkel käimasolevaid protsesse. Täpsemalt uurigeman ps
.ps -ef
Näitab kõigi kasutajate protsesside tabelit. Kui on kasulik uurida ainult mõnede parameetrite väärtust, siis kasutage suvandeid -eo ja lisage vajalikud parameetridps -eo pcpu,pid,user,args | sort -k 1 -r | head -n 10
on näiteks, kuidas ühe käsuga väljastatakse protsesside protsessoriaja kasutus, protsessi ID, omanik ja nimi, järjestatakse saadud read protsessori kasutuse järgi (k1), suuremast väiksema poole (suvand r) ning seejärel lõigatakse välja ainult 10 esimest (head 10).
- Protsessid saavad käivitada omakorda teisi protsesse, nendest arusaamiseks kasutage programmi
pstree
. - Käsuga
top
saate teada, kui palju protsessoriaega ja mälu hetkel kasutatakse. Uurigeman top
. Näited:top -p pid
väljastab info ühe protsessi kohtatop -b -d 5 -n 10
väljastab tulemuse iga 5 (suvand b) sekundi pärast kokku 10 (n) kordatop -b -d 5 > logifail
, kirjutab top tulemuse iga 5 sekundi järgi faili nimega logifail. Käsul top on ka värvikam arendushtop
, mille võite iseseisvalt paigaldada. Käsutop
sorteerimise ideid saate siit top sorteerimine
- Informatsiooni vaba ja kasutatud mälu kohta saate käsuga
free
. Näide:free -h
- Käsuga
vmstat
saate uurida (lisaks arvuti mälu ja protsesside informatsiooni) ka saalimist ja katkestusi. vmstat väljund koosneb mitmest osast. Kuna sama info kordub mujal, siis veidi täpsem kirjeldus:- procs – väljastab protsesside arvu, mis on tööks valmis ja ootavad oma korda
- memory – mälukasutus (swpd, saalemälu kasutuses, cache – puhvriteks kasutatava mälu hulk, mida saab vajadusel vabastada),
- swap – si ja so näitavad, kui palju kirjutatakse ja loetakse kettalt saalemälu, eraldades nii statistika saalemälu operatsioonide kohta muust sisend- ja väljundstatistikast.
- io – bi, bo – sekundis väljundseadmetele kirjutatud ja loetud plokkide arv
- sys – siin in – katkestuste arv, cs – kontekstivahetuste arv
- cpu – protsessori kasutus (tähistus traditsiooniline: wa - I/O wait, id - idle jne).
- Lihtne on vmstat käsu abil monitoorida süsteemi pikema aja vältel, kasutades näiteks
vmstat 1 10
, kus 1 on vahemik sekundites, 10 korduste arv; kui korduste arvu ei kirjutata, jätkab vmstat tööd kuni katkestamiseni Ctrl+C abil. Väljundi suunamiseks faili hilisemaks analüüsiks saate kasutada näiteksvmstat 1 > mingi_fail
võivmstat 1 >> mingi_fail
. NB!>>
lisab uued kirjed eelneva faili lõppu,>
kirjutab aga eelneva faili üle, olge ettevaatlikud.
df
näitab failisüsteemide vabu ressursse, näiteks:df -h
väljastab info inimloetavas vormis (kasutades mega- ja kilobaite)df -i
näitab kasutatud ja kasutada olevate i-kirjete (inode) arvu.
- Eelmises praktikumis tutvusite ka kaustaga
/proc
, mis sisaldab tuuma (kernel) poolt näidatavaid andmeid. NB! Ettevaatust, antud kausta sisu on ainult lugemiseks, näitekscat
käsu abil.- Näide:
cat /proc/vmstat
- Näide:
- Lisaks võite uurida veel käske
mount
,netstat
,lsof
. Nende käskude kohta saate lisainfot vastavatest manuaalidest, näiteks käsugaman mount
.
Tuleb osata kasutada ka üldisemaid käske, et eelsoovitatud käske kiirelt ja efektiivselt kasutada.
Kindlasti tuleb osata kasutada käsku grep
ning kasutada torusid (pipe, märk |
), et luua käsukonveierit (pipeline), et suunata ühe käsu väljund teise käsu sisendisse. Edasises uurimises on kasulik vähemalt käskude sed
, sort
, cut
, head
, tail
, cat
tundmine.
Linux | Windows |
---|---|
ps | Task Manager |
pstree | Process Explorer |
top | Task Manager / Process Explorer |
free | Task Manager, Performance tab |
mount, df | My Computer, Disk Manager |
vmstat | Resource Monitor |
Eelnevaid käske kasutades leida vastused järgmistele küsimustele:
- Mitu protsessi kokku arvutis käib?
- Milliste kasutajate protsesse arvutis käib? (arvesta ka süsteemiprotsesse, mitte ainult sisse logitud kasutajaid ehk teisisõnu küsime mitme erineva kasutaja õigustes protsesse arvutis käib? )
- Milline on kõige esimesena käivitatud protsess? Kui kaua on arvuti järjest töötanud?
- Milline protsess käivitati kõige hiljem (viimasena)? (Mitte võtta arvesse programmi, millega seda infot otsida.)
- Milline on kõige rohkem virtuaalmälu (aadressiruumi, commit, Virtual Size) võttev protsess?
- Milline on kõige rohkem füüsilist mälu (working set) võttev protsess?
- Milline on kõige rohkem jagatud mälu (Shareable Memory) kasutav protsess?
- Milline on kõige rohkem protsessoriaega võttev protsess?
- Kui palju füüsilisest mälust (Physical Memory) on vaba?
- Kui palju saalimisalast (swap) on kasutuses? (Ainult Linuxis)
- Mitu protsessi käivitub automaatselt operatsioonisüsteemi käivitamisel (Ainult Windowsis)
- Milline on kõige suurem partitsioon?
- Millises partitsioonis on kõige vähem vaba ruumi protsentuaalselt?
- Kui kopeerid suurt faili (1GB), siis mille peale suurem osa protsessori ajast läheb? Mitu plokki sekundis kettale kirjutatakse? 1GB faili tekitamiseks saab kasutada järgmist käsku:
dd if=/dev/urandom of=/tmp/file.bin bs=1M count=1024
(tekitab juhusliku sisuga faili). Vihje: avage mitu terminaliakent, et saaksite vmstat ja/või top käivitada samaaegselt. (Ainult Linuxis) - Pakkige tekitatud fail
gzip
abil ja jälgige kuidas jaotub protsessori aeg erinevate tegevuste vahel. Too välja protsentidena user, system, idle, wait. Vihje: avage mitu terminali akent, et saaksite vmstat ja/või top käivitada samaaegselt. Kuna tekkinud gz laiendiga fail on üsna suur, kustutage see pärast katset (Ainult Linuxis). - Mis numbriga katkestusi (interrupt request, IRQ) kasutab virtuaalmasina klaviatuur? (Ainult Windowsis)
- Millist mäluaadressite vahemikku kasutatakse virtuaalmasina graafikakiirendi poole pöördumiseks? (Ainult Windowsis)
- Millise protsessi poolt tekitatud võrguliiklus on suurima mahuga? Vali antud protsessi poolt kasutatavatest ühendustest üks ning kirjuta välja järgnev: kohalik IP-aadress, kohalik port, ühenduse teise poole IP-aadress, port, latents ja antud ühenduse poolt kasutatav võrguliikluse kogumaht. (Ainult Windowsis)
- Milline protsess kõige rohkem salvestusseadmele kirjutab, kõige rohkem salvestusseadmelt loeb? Millisesse faili antud protsess kõige rohkem kirjutab, millisest failist kõige rohkem loeb? (Ainult Windowsis)
- Lisa vikilehele
dxdiag
esilehest ekraanivaade. Kirjuta tabelisse mis on page file (Ainult Windowsis)
Vastused tuleb panna oma praktikum 4. lehele, selle praktikumi tulemused esitage palun tabeli kujul.
juhend wiki vormistamiseks
Tutvu tabeli vormistamise juhendiga https://courses.cs.ut.ee/2018/os/fall/PmWiki/Tables ja https://courses.cs.ut.ee/2018/os/fall/PmWiki/TableDirectives
Näidis:
Küsimus | Linux | Windows | Linuxis kasutatud käsklus | Windowsis kasutatud tööriist |
---|---|---|---|---|
Mitu protsessi kokku arvutis käib? | 18 | 46 | ps | Task Manager |
Mitme erineva kasutaja protsesse arvutis käib? | 3 | 4 | pstree | Process Explorer |
Tabeli saate tekitada lehe muutmise akna kohal asuva nupuga, mille järel tekib tühi tabeli vorm kujul
||border=1 ||!Heading 1||!Heading 2||!Heading 3|| ||Cell 1.1||Cell 1.2||Cell 1.3|| ||Cell 2.1||Cell 2.2||Cell 2.3||
Heading tüüpi lahtritesse saate kirjutada tulba pealkirjad. Cell tüüpi lahtritesse küsimused ja vastused. Ridu saab kõige lihtsamalt lisada eelnevat rida kopeerides ning sinna sobivat sisu lisades. Tulpasid saab lisada rea viimase püstkriipsu ette ||
kopeerides.
Lisaks tabelile lisage praktikumi aruandesse ka ekraanivaated küsimuste 14 - 20 kohta. Ekraanivaates peab kajastuma vastus ning kasutatud rakenduse nimi või käsurea käsk.
- Ekraanipilte saab wiki'e üles laadida peale klikitavatena kui lisada
[[Attach:pilt1.png|Attach:pilt1.png]]
(ilma tühikuta) ja kasutada loodavat linki reaalse pildifaili üles laadimiseks. (võite kasutada ka%thumb% Attach:pilt1.png
)
Tulemus
Kui teil wiki lehekülg valmis on, siis lisage meile kommentaar (koos mingi tühja failiga).
4. Praktikum 4 - Ressursihaldus(Tähtaeg 2 nädalat)