Time (uus)

From EIK wiki

Autor

Ees ja perekonnanimi: Silver Viljaste

Rühm: A21 päevaõpe

Referaadi koostamise kuupäev: 17.11.2013. a.

Sissejuhatus

Käesolev referaat, mille teemaks on UNIX käsureal käivitatav käsk „time“, on täiendversioon IT Kolledži tudengi Karmen Matkuri referaadile, mis on koostatud õppeaine "operatsioonisüsteemide administreerimine ja sidumine" raames. Eelmise versiooniga saab tutvuda siit: https://wiki.itcollege.ee/index.php/Time

Time on käsk, mida kasutatakse UNIX-laadsetes operatsioonisüsteemides selleks, et kindlaks määrata näiteks konkreetse käsu või programmi täitmiseks kulunud aega. [1][2]

Käsk time on võimalik käivitada kahel viisil: eraldiseisva programmina või käsuna näiteks Bash kestas (Shell). Eraldiseisva programmina on time kasutatav igas Linux operatsioonisüsteemis. Selleks, et käivitada käsk time välise programmina, tuleb kasutajal Bash kestas määrata teekond, kus programm asub. Selleks on /usr/bin/time. [6]

Bash shell’i sisseehitatud käsu time tulemusena väljastatakse etteantud käskude täitmiseks kulunud reaalne aeg, kasutaja CPU aeg ja süsteemi CPU aeg. [4]

Lisaks ajalisele statistikale, mida saame käsu time täitmisel näha, on välise programmi korral võimalik pärida andmeid teiste ressursside kohta, näiteks mälu, andmete jagamist sisend–väljund seadmete ja loogiliste protsessorite (threads) vahel. [5]

Bash shell'i integreeritud käsk time

Süntaks

time [võtmed] käsklus [argumendid]

Võtmed

-p - interpreteerib väljundi POSIX vormingus. Tulemus esitatakse sekundites, ent kümnendike koht pole täpsustatud, kuid on piisava ajalise täpsusega. [3][5]

Kirjeldus

Time käsuga väljastatakse käskude täitmiseks kulunud ajaline statistika:

  • Reaalne aeg - programmi või käsu esilekutsumiseks ja lõpetamiseks kulunud aeg. [3]
  • Kasutaja CPU aeg – aeg, mis kulus protsessoril protsesside esilekutsumiseks kasutajarežiimis ja kerneliväliselt. [3]
  • Süsteemi CPU aeg – protsessori tööaeg, mis kulus rakendusprogrammil operatsioonisüsteemi poole pöördumiseks selleks, et kävitada operatsioonisüsteemis sisalduvaid rutiiine. [3]


Näited:

  • Käsu time kasutamine programmi paigaldamisel: time apt-get install [programmi nimi]
time apt-get install htop

Tulemus: Käsureale väljastatakse programmi paigaldamiseks kulunud aeg koos ülejäänud parameetritega.

real 0m3.659s

user 0m0.896s

sys 0m0.080s


  • Käsu time kasutamine programmi käivitamisel: time [programmi nimi]
time htop

Tulemus: Käsureale väljastatakse programmi töö alustamiseks ja lõpetamiseks kulunud aeg sõltuvalt programmi tööaja pikkusest koos ülejäänud parameetritega.

real 0m3.167s

user 0m0.008s

sys 0m0.064s


  • Käsu time kasutamine programmi käivitamisel koos võtmega -p: time –p [programmi nimi]
time –p htop

Tulemus: Käsureale väljastatakse POSIX vormingus programmi töö alustamiseks ja lõpetamiseks kulunud aeg sõltuvalt programmi tööaja pikkusest koos ülejäänud parameetritega.

real 10.57

user 0.02

sys 0.10

Välimine käsk time

Süntaks

/usr/bin/time [võtmed] käsklus [argumendid]

Võtmed

–v, – –verbose - kasutatakse siis, kui soovitakse väljundile detailsemat kirjeldust. [3]

–quite - välditakse programmi staatuse raporteerimist väljundis. [3]

–f, – –format - kasutaja saab määrata väljundi vormingut. [3]

–p - Võimaldab määrata väljundi vormingu, mis on vastavuses POSIX-ga. [3]

–o FILE – väljund suunatakse faili. [3]

– –output=FILE – väljund suunatakse faili, kus vana sisu kirjutatakse üle. [3]

–a, – –append – väljund kirjutatakse faili lõppu, välditakse ülekirjtamist. [3]

–V, – –version - kuvatakse versiooni informatsioon. [3]

– –format ehk –f võti

–f võtmega lubatakse kasutajal otsustada, millist informasiooni ja millises vormingus väljastatakse. Format string sisaldab:

%+karakter - määrab, milliseid andmeid väljundis näidatakse. [2] Karakterite valiku saab kätte käsuga:

man time

\ - määrab tulemuse vormingu:

  • \t - tabeli vorm; [2]
  • \n - iga järgnev tulemus kuvatakse uuele reale; [2]
  • \\ - kuvatakse tähemärk \ [2]

Ülejäänud tekst kuvatakse nii, nagu vaikimisi vorming ette näeb. /usr/bin/time vaikimisi vorming on kujul: [3]

%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k 
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

Kirjeldus

Ülejäänud võtmete kasutamiseks tuleb käsk time käivitada välise programmina. Selleks tuleb määrata programmi Time asukoht.


  • Programmi Time kataloogi teekonna määramine: whereis [programmi nimi]
whereis time

Tulemus: Käsureale kuvatakse väljundina kataloogi teekond, kus asub programmi Time käivitatav fail.


Näited:

  • Käsu time kasutamine programmi käivitamisel: /usr/bin/time [programmi nimi]
/usr/bin/time htop

Tulemus: Käsureale väljastatakse programmi töö alustamiseks ja lõpetamiseks kulunud aeg sõltuvalt programmi tööaja pikkusest koos ülejäänud parameetritega.

0.01user 0.09system 0:07.33elapsed 1%CPU (0avgtext+0avgdata 9088maxresident)k

0inputs+0outputs (0major+1617minor)pagefaults 0swaps


  • Käsu time kasutamine programmi käivitamisel koos võtmega -f, mis muudab väljundi vormingut: /usr/bin/time –f [programmi nimi]
/usr/bin/time -f "\t%U user,\t%S system,\t%e real" htop

Tulemus: Käsureale väljastatakse programmi töö alustamiseks ja lõpetamiseks kulunud aeg ette määratud vormingus.

0.02 user, 0.08 system, 7.65 real

Kokkuvõte

Käesolevas referaadis tehti lühike ülevaade käsust time, mida kasutatakse UNIX-laadsetes operatsioonisüsteemides. Lisaks kirjalikule kokkuvõttele toodi referaadis välja praktilisi näiteid käsuga time (näidete saamisel on kasutatud Ubuntu serveri versiooni 12.04.3 LTS), mille eesmärk on pakkuda lugejale täiendavaid selgitusi antud referaadi sisust. Kõik näited on lihtsasti realiseeritavad Linux operatsioonisüsteemi omamisel. Näidetele on juurde lisatud selgitused nii käsu enda kui ka selle tulemuse kohta. Arvan, et antud referaat sobib eelkõige neile, kellel on ettekujutus ja kogemus käsurea töömehhanismist.

Kasutatud kirjandus

1. http://en.wikipedia.org/wiki/Time_(Unix)

2. http://linux.about.com/library/cmd/blcmdl1_time.htm

3. http://www.thegeekstuff.com/2012/01/time-command-examples/

4. http://linux.about.com/library/cmd/blcmdl1_whereis.htm

5. http://www.cs.utah.edu/dept/old/texinfo/time/time.html

6. http://www.tutorialspoint.com/unix_commands/time.htm