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. Kasulik on osata kasutada nii käsurida kui ka graafilisi vahendeid, mida läheb antud praktikumis vaja. 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.
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 (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 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. Meie käsitleme vastavaid Linuxi käske ja torusid praktikumides 5 ja 6.
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 |
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)
- Mitu ja milliste kasutajate protsesse arvutis käib? (arvesta ka süsteemiprotsesse, 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?
- 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?
- Kui palju on põhikettal (
C:
,/
) vaba ruumi mahult (GB
) ja protsentuaalselt? - Milline on kõige suurem kõvakettal olev
fail
ja kõige suuremkaust
? - Võrrelge terminali käskude:
sha1sum /dev/zero | sha1sum /dev/zero
jasha1sum /dev/urandom | sha1sum /dev/urandom
protsessori nõudlust. Avage teine terminaliaken jatop
samaaegseks käivitamiseks. Uurige, millisele CPU alamtegevuseleus
,sy
,id
,wa
,st
jne kulub enim protsessori aega ja mitu protsenti kulub kummagi käsu korral. (Ainult Linuxis)Lisa ka ekraanipilt aruande juurde näiteks pärast tabelit
. - 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)
Lisa ka ekraanipilt aruande juurde näiteks pärast tabelit
. - Sõber kurdab, et tema arvuti on oluliselt aeglasem kui varasemalt. Millise programmiga ja milliste parameetrite abil saate tuvastada, milline protsess või teenus muudab arvuti aeglaseks?
Vastused tuleb panna Githubi dokumenti nimega praks4_ressursihaldus.md. Soovitame käesoleva praktikumi lahenduse esitamiseks kasutada Githubi, sest praktikumi aruanne on pikem ja IT-tudengitel on dokumentatsiooni koostamine vajalik oskus. Github ja viki on kaks enimkasutavat keskkonda erinevate IT-juhendite koostamiseks ja jagamiseks.
Juhend Githubis konto ja repo tegemiseks ning kodutöö esitamiseks – https://github.com/AndresNamm/opsys_Namm/blob/main/INTRO.md
NB! Need, kes ei soovi Githubi kontot luua, võivad esitada praktikumi aruande (lahenduse) ka Osalejate omanimelisel alamlehel, mis on korrektselt vormistatud. NB! Courses-viki redigeerimisega võib suure koormuse hetkedel esineda probleeme.
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
Heading-tüüpi lahtritesse saate kirjutada tulba pealkirjad. Cell-tüüpi lahtritesse käivad küsimused ja vastused. Ridu saab kõige lihtsamalt lisada eelnevat rida kopeerides ning sinna sobivat sisu lisades.
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
Kodutöö esitamiseks lisage allolevasse aknasse kommentaar Githubi URLiga (privaatsed repod peavad olema jagatud ka aine õppejõududega) (või Courses-viki link), kus esitus olemas, ja mingi fail.
4. Praktikum 4 - Ressursihaldus(Tähtaeg 2 nädalat)