Time (uus): Difference between revisions

From ICO wiki
Jump to navigationJump to search
Sviljast (talk | contribs)
No edit summary
Sviljast (talk | contribs)
No edit summary
Line 11: Line 11:
Käesolev referaat, mille teemaks on UNIX käsureal käivitatav käsk '''„time“''', on täiendversioon IT Kolledži tudengi Karmen Matkuri referaadile. Eelmise versiooniga saab tutvuda siit: https://wiki.itcollege.ee/index.php/Time
Käesolev referaat, mille teemaks on UNIX käsureal käivitatav käsk '''„time“''', on täiendversioon IT Kolledži tudengi Karmen Matkuri referaadile. 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.
'''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'''.
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.
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.
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'''=
=Bash shell'i integreeritud käsk '''time'''=
Line 27: Line 27:
==Võtmed==
==Võtmed==


'''-p'''  - interpreteerib väljundi POSIX vormingus. Tulemus esitatakse sekundites, ent  kümnendike koht pole täpsustatud, kuid on piisava ajalise täpsusega.
'''-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==
==Kirjeldus==
Line 33: Line 33:
'''Time''' käsuga väljastatakse käskude täitmiseks kulunud ajaline statistika:
'''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.
* '''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.
* '''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.
* '''Süsteemi CPU aeg''' – protsessori tööaeg, mis kulus rakendusprogrammil operatsioonisüsteemi poole pöördumiseks selleks, et kävitada operatsioonisüsteemis sisalduvaid rutiiine. [3]




Line 101: Line 101:
==Võtmed==
==Võtmed==


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


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


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


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


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


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


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


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


===-format ehk -f võti===
===-format ehk -f võti===
Line 121: Line 121:
'''-f''' võtmega lubatakse kasutajal otsustada, millist informasiooni ja millises vormingus väljastatakse. Format string sisaldab:
'''-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. Karakterite valiku saab kätte käsuga:
'''%+karakter''' - määrab, milliseid andmeid väljundis näidatakse. [2] Karakterite valiku saab kätte käsuga:


{|style="background:lightyellow;width:700px;margin:3px;border:1px solid lightgrey" align=centre
{|style="background:lightyellow;width:700px;margin:3px;border:1px solid lightgrey" align=centre
Line 129: Line 129:
'''\''' - määrab tulemuse vormingu:
'''\''' - määrab tulemuse vormingu:


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


Ülejäänud tekst kuvatakse nii, nagu vaikimisi vorming ette näeb. '''/usr/bin/time''' vaikimisi vorming on kujul:
Ü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  
  %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k  

Revision as of 03:47, 28 December 2013

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. 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

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