Praktikum 9 – ressursihaldus
Selles praktikumis tutvume operatsioonisüsteemi ressurssidega. Selleks õpime tundma erinevaid tööriistu nii Linuxis ja Windowsis. Unixis on alati olnud traditsiooniks terminali sagedasem kasutamine kui Windowsis. Kasulik on osata kasutada nii käsurida kui ka graafilisi vahendeid. Käesolevas praktikumis soovitame ka aktiivselt operatsioonisüsteemi eri protsesside, katkestuste ja tööriistade kohta Internetist infot juurde otsida ning vajadusel küsida õppejõu käest abi.
Ressursside haldamine
Operatsioonisüsteemide põhiülesandeks on protsesside ja ressursside üle arve pidamine. 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.
Järgnev praktikumijuhend on koostatud stiiliga, kus kirjeldame teile levinud operatsioonisüsteemi tööriistu, millega tuvastada ressursikasutust ning jälgida operatsioonisüsteemi tööd. Soovitame pärast kirjeldust vastav programm tööle panna (käivitada) ja tutvuda millist infot sealt on võimalik leida. Praktikumi lõpus on kontrollküsimused näiteks Kust leiab kui palju vaba ruumi on teie peamisel andmekandjal ( c: | / )?
.
Tööriistad Windowsis
Task Manager (Tegumihaldur) – ilmselt on igaüks kokku puutunud Windowsi põhilise ressursside kasutamise ülevaate saamise ja protsesside tapmisega 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 (protsessi identifikaator), sisend-väljundseadmete kasutus jne. Kiirklahvikombinatsioon avamiseks on CTRL
+SHIFT
+ESC
ehk klassikalisel klaviatuuril 3 vasakpoolseimat nuppu.
Resource Monitor – Task Manageri võimalusi laiendab oluliselt tööriist Resource Monitor. 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 (Seadmehaldur) – 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 Manageri 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 – Windowsi tööriist, mis kogub arvuti põhiinfo (protsessor, mälu, graafikaseadmed, olulisemad perifeerseadmed jne) ühte kohta ja 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 programme on käivitatavad nii tavakasutaja õigustes kui ka administraatori õigustes
. Loomulikult on süsteemi info nägemiseks 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 System Configurationile (käsurealt msconfig
), 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 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 Windowsi kohta kiiresti ülevaatlikku infot saada.
NB! System Idle Process, Registry, Interrupts on Windowsis eriprotsessid (nn pseudo-protsessid), seega ei ole need enamasti õiged vastused praktikumi küsimustele.
Tööriistad Linuxis
Linuxis soovitame kasutada käsureal töötavaid programme. Need annavad võimaluse andmeid käsureal kiiresti skriptides edasi töödelda ning on kasutuskõlblikud ka hädaolukorras või keskkonnas,
kus graafilist liidest pole võimalik kasutada. Samuti on enamik käsureaprogramme Linuxis vaikimisi olemas või paketihaldurist paigaldatavad, võrreldes graafiliste programmidega, mis kipuvad olema distributsioonipõhised. Käsureaprogrammidel on enamasti palju erinevaid parameetreid, mille tegevus ja väljund võivad olla väga erinevad.
Olulisemad programmid on:
ps
– näitab hetkel käimasolevaid protsesse. Täpsemalt uurigeman ps
.ps -ef
– näitab kõigi kasutajate protsesside tabelit. Kui soovitakse konkreetseid väärtusi, siis kasutage lippusid -eo ja lisage vajalikud parameetrid, näiteksps -eo pcpu,pid,user,args
:ps -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 (lipp r) ning seejärel lõigatakse välja ainult 10 esimest (head 10).
- Väljastatud read saab kokku lugeda käsuga
wc
, näiteksps -aux | wc -l
loeb kokku kõik ps-käsu väljundis olevad read ja kuvab vastuse ekraanile.
- Protsessid saavad omakorda käivitada teisi protsesse, nendest aru saamiseks 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 (lipp d) sekundi järel kokku 10 (n) kordatop -b -d 5 > logifail
kirjutab käsu top tulemuse iga 5 sekundi tagant faili nimega logifail- Käsu
top
sorteerimise ideid saate siit: top sorteerimine
- Käsul top on ka värvikam arendus
htop
, mille saate paigaldada käsugasudo apt install htop
.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älule ja protsesside informatsioonile) ka saalimist ja katkestusi. vmstati 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äljundstatistikastio
–bi
,bo
– sekundis väljundseadmetele kirjutatud ja loetud plokkide arvsys
– siinin
– katkestuste arv,cs
– kontekstivahetuste arvcpu
– protsessori kasutus (tähistus traditsiooniline:us
- user,sy
- system,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.
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 kaustade ja failide kasutatud kettamahtusudo 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 |
Ülesanded
Leida vastused alljärgnevatele küsimustele. Iga vale või puuduv küsimuse vastus annab -0.3 punkti, puuduv või vale alamvastus -0.1p. 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? (Kirjuta kasutajatunnused, mitte nende arv ja arvesta ka süsteemiprotsesse ja süsteemikasutajaid nagu
system
,root
jne, mitte ainult sisse logitud kasutajaid) - 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 protsessoriaega võttev protsess ja kui mitu protsenti protsessoriajast ta tarbib?
- 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?
- Kui palju füüsilisest mälust (Physical Memory) on vaba ja kui palju hõivatud?
- Kui palju on põhikettal (
C:
,/
) vaba ruumi mahult (GB
) ja protsentuaalselt? - Milline on kõige suurem arvutis olev
fail
ja kõige rohkem andmemahtu hõivavkaust
(arvesse võta ka alamkaustade mahtu, ja jätta juurkaust/
võiC:
välja)? - Võrrelge terminali käskude:
sha1sum /dev/zero | sha1sum /dev/zero
jasha1sum /dev/urandom | sha1sum /dev/urandom
protsessori kasutust. Võrdluseks avage teine terminaliaken jatop
samaaegseks käivitamiseks. Kirjutage millisele CPU alamtegevusele (us
,sy
,id
,wa
,st
jne) kulub enim protsessori aega kummagi käsu puhul. (Ainult Linuxis)Lisa ka ekraanipilt aruande juurde vähemalt ühe käsu vastuse kontrollimiseks.
. - Vasta järgnevatele alamküsimustele: (Ainult Windowsis)
- Milline protsess kõige rohkem salvestusseadmele kirjutab?
- Millisesse faili eelmise küsimuse protsess kõige rohkem kirjutab?
- Milline protsess kõige rohkem salvestusseadmelt loeb?
- Millisest failist eelmise küsimuse protsess kõige rohkem loeb?
- 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)
Lisa ka ekraanipilt aruande juurde näiteks pärast tabelit
. - Sõber kurdab, et tema arvuti on oluliselt aeglasemaks muutunud. Milliseid konkreetseid programme või käsureakäske kasutad põhjustaja tuvastamiseks. Mõlemal juhul kirjuta, mida konkreetselt jälgid (nt mis aken, veerud, numbrid jne). (Vali Linuxis või Windowsis)
- Vasta võimalikult konkreetselt ja tehniliselt ning proovi vältida subjektiivseid omadussõnu nagu vähe, palju, suur, väike jne.
Vastused tuleb panna dokumenti nimega praktikum9.md. GitHub ja GitLab on kaks enimkasutavat keskkonda erinevate IT-juhendite koostamiseks ja jagamiseks. Praktikumi aruanne on pikem ja IT-tudengitel on dokumentatsiooni koostamine vajalik oskus, seega hindame ka aruande välimust ja arusaadavust.
Vastused esitada soovitavalt tabeli kujul. Ekraanipildid on vajalikud ainult punktide juures, kus on vastav märge, kuid on lubatud lisada ka muude punktide kohta, illustreerimaks olukordi.
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 tekitamise kohta Markdownis saate lugeda siit: https://www.tablesgenerator.com/markdown_tables
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.
LISAMATERJALID
Tulemus
Praktikumi eelpool olevate ülesannete vastused tuleb panna GitHub/GitLabi dokumenti nimega praktikum9.md ja esitada moodles hindamiseks.
Otselink esitamisele: https://moodle.ut.ee/mod/assign/view.php?id=1213676
(Tähtaeg 2 nädalat)