Neljas praktikum - ressurssidega tutvumine
Kohapeal olijad palun registreerige enda praktikumis osalemine vastaval veebilehel http://cs.ut.ee/reg
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.
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.
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
Dxdiag – Windows 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.
Sysinternals Suite mille osa on ka Process Explorer. Sisaldab erinevaid programme Windowsis toimuva kohta info kuvamiseks. Enamik programmid on käivitatatavad nii tavakasutaja õigustes kui ka "Administraatori õigustes". Loomulikult süsteemi info nägemiseks on vajalikud administraatori õigused.
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).
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).
WinDirStat - eraldi paigaldatav "tasuta" programm, mis võimaldab visuaalselt uurida Windows arvuti ketta kasutust. Kui palju mingi fail või kaust salvestusmahtu enda alla võtab?
Systeminfo.exe
(käsurida) ja MSINFO32
(graafiline) käsud on ka hea võimalus Windows'i kohta kiiresti ülevaatlikku infot saada.
NB! System Idle Process
, Registry
, Interrupts
on Windowsis eriprotsessid (nn liba-protsessid), seega need ei ole enamasti õiged vastused praktikumi küsimustele.
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).- väljastatud read saab kokku lugeda käsuga
wc
näteksps -aux | wc -l
loeb kokku kõik ps käsu väljundis olevad read ja kuvab vastuse ekraanile.
- 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äsu
top
sorteerimise ideid saate siit top sorteerimine
- Käsul top on ka värvikam arendus
htop
, mille võite iseseisvalt paigaldada.htop
võimaldab kasutada hiirt ja lisab muid mugavusi. - 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 kordamemory
– mälukasutus (swpd, saalemälu kasutuses, cache – puhvriteks kasutatava mälu hulk, mida saab vajadusel vabastada),swap
–si
jaso
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 arvsys
– siinin
– katkestuste arv,cs
– kontekstivahetuste arvcpu
– 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 katkestamiseniCTRL
+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.
du
- näitab kasutatud kettamahtu kaustale ja failidelesudo du -h --max-depth=1
du -s /*
du -a / | sort -n -r | head -n 5
- 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 alljärgnevatele küsimustele (iga õige vastus annab 0.2 punkti). Lisaks vastusele tuleb panna tabelisse ka seotud Linuxi käsk või Windowsi puhul programminimi ja veerg või väli, kust info saadi (vaadake näidist allpool).
- Mitu protsessi kokku arvutis käib?
- Milline on kõige esimesena käivitatud protsess? (lisalugemine: init vs systemd)
- 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? )
- Kui kaua on arvuti järjest töötanud (up time) ? (Alternatiivselt võib vastata ka millal (kuupäev ja kellaaeg) arvuti viimati käima pandi?)?
- 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 protsessoriaega võttev protsess?
- Kui palju füüsilisest mälust (Physical Memory) on vaba?
- Millises partitsioonis on kõige vähem vaba ruumi protsentuaalselt?
- Milline on kõige suurem kõvakettal olev
fail
ja kõige suuremkaust
? - 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 saaksitevmstat
ja/võitop
käivitada samaaegselt. (Ainult Linuxis) - Pakkige tekitatud fail
gzip
abil ja jälgige kuidas jaotub protsessori aeg erinevate tegevuste vahel. Too välja protsentidenauser
,system
,idle
,wait
. Vihje: avage mitu terminali akent, et saaksite vmstat ja/või top käivitada samaaegselt. Kuna tekkinudgz
laiendiga fail on üsna suur, kustutage see pärast katset (Ainult Linuxis). - 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)
- 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)
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/2020/os/fall/PmWiki/Tables ja https://courses.cs.ut.ee/2020/os/fall/PmWiki/TableDirectives
Näidis:
Küsimus | Linux | Windows | Linuxis kasutatud käsklus | Windowsis kasutatud tööriist |
---|---|---|---|---|
Mitu protsessi kokku arvutis käib? | 201 | 76 | ps -aux | wc -l | Task Manager -> Jõudlus |
Milline on kõige esimesena käivitatud protsess? | /sbin/init splash | smss.exe | ps axo pid,cmd,comm,etime | Process Explorer -> Start Time |
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 kohta kus see on vajalik. 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)