cti uso tema2 update3

8
Utilizarea Sistemelor de Operare: Tema 2 Termen de predare: Marti, 26 Noiembrie 2013, ora 23:55

Upload: grazzyelagrazzy

Post on 14-Apr-2016

3 views

Category:

Documents


0 download

DESCRIPTION

ACS Automatica Calculatoare USO CTI

TRANSCRIPT

Page 1: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare: Tema 2Termen de predare: Marti, 26 Noiembrie 2013, ora 23:55

Page 2: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare - Tema 2

Descriere

Tema consta ın realizarea unui set de task-uri asupra unui sistem de operare Linux, gata instalat ıntr-o

mas, ina virtuala.

Pentru predarea temei sunt necesare:

• conexiunea la internet

Termen de predare:

• Timpul de lucru efectiv este de 7 de zile (+1 zi prelungire deadline)

• Uploadarea codului: 26 noiembrie, ora 23:55

• Uploadarea se face pe formularul de la adresa urmatoare:

https://docs.google.com/forms/d/1WvH6uvv9jWzhMsZNemZWOSfW1qJM3afcCR94olP92as/viewform

Deadline-ul temei este hard. NU se accepta ıntarzieri dupa 26 noiembrie, ora 23:55.

Atent, ie!

Chiar s, i dupa ce at, i predat codul, NU s,terget, i arhiva cu mas, ina virtuala pana nu va aflat, i nota! Daca vor

exista probleme ın corectarea temei, fara arhiva NU se pot face contestat, ii sau rezolva eventualele probleme

aparute.

Pagina 1/ 7

Page 3: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare - Tema 2

Testare

Testarea temei se va face DOAR autentificat ca utilizator ”root”, folosind programul instalat uso. Progra-

mul ”uso” implementeaza testele pentru toate task-urile din aceasta tema. Acesta poate fi executat ın orice

moment pentru a verifica daca au fost rezolvate corect task-urile.

Versiunea programului check este afis,ata pe prima linie a output-ului.

Versiunea curenta este: v9. Codename: What side was that, private Pyle?

In cazul ın care testele vor fi actualizate, modificarile ajung ın mod automat pe mas, inile virtuale. Comanda

uso update va descarca ultima versiune a programului uso folosit pentru testarea temei. Pentru a actualiza

manual checker-ul, putet, i apela uso update ca utilizator root.

Testarea finala a temei se realizeaza prin intermediul utilitarului automat de verificare a temelor. Tot ce

trebuie voi sa facet, i este sa rulat, i uso submit s, i sa ıncarcat, i codul ın formularul descris ın pagina anterioara.

Pentru a us,ura testarea, recomandam:

• Setarile mas, inii virtuale NU ar trebui modificate (nici macar o actualizare a VMWare Tools). Daca

totus, i considerat, i ca este necesara o modificare ıntrebat, i ıntai pe forum-ul temei daca este acceptata.

• Mas, ina virtuala sa porneasca iar sistemul de operare sa se ıncarce complet fara interact, iune din

exterior

• Parola de root sa ramana cea implicita (”student”)

ATENT, IE: Mas, ina virtuala vine implicit cu aceste condit, ii ındeplinite s, i nici un task nu va afecta vreuna

din ele. Va rugam sa NU alterat, i vreuna din aceste componente deoarece riscat, i sa primit, i 0 puncte pe

tema.

Notare

Nota pe ıntreaga tema este data de punctajul acumulat pe toate task-urile, punctaj afis,at de catre programul

check la execut, ia fara nici un parametru.

Se pot lua maxim 100 de puncte pe ıntreaga tema. Acest punctaj este echivalent cu 0.5 puncte din nota

finala.

Nu este obligatorie rezolvarea tuturor task-urilor. Task-urile pot fi rezolvate ın orice ordine, mai put, in ın

situat, ia ın care un task depinde de rezolvarea unui alt task.

Pagina 2/ 7

Page 4: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare - Tema 2

Task 1 (20p)

Hint: man bash

Creat, i scriptul /home/student/task01.sh care:

• Primes,te 2 argumente

• Seteaza o variabila locala scriptului TASK01 ce va avea valoarea egala cu valoarea primului argu-

ment primit

• Al doilea argument reprezinta calea catre un alt script pe care va trebui sa-l lansat, i ın execut, ie din

interiorul scriptului vostru task01.sh. Acest script primit ca al doilea argument trebuie sa fie rulat cu

argumentul TASK01 (nu valoarea variabilei anterior definita, ci textual) s, i va trebui sa s,tie de existent,a

variabilei TASK01 cat s, i de valoarea acesteia, anterior setata.

Info! Pentru acest exercit, iu nu se acorda punctaj part, ial.

Task 2 (15p)

Hint: trap

Creat, i scriptul /home/student/task02.sh care creaza directorul /home/student/folder02 s, i 5 fis, iere ın direc-

torul /home/student/folder02/, fiecare la interval de 2 secunde, respectand urmatoarele cerint,e:

• Fiecare fis, ier cont, ine o singura linie ce respecta format-ul A\B:C:D E

– A reprezinta numarul de secunde scurse de la 1970-01-01 00:00:00 UTC

– B reprezinta ora ın format 12 ore

– C reprezinta minutele

– D reprezinta secundele

– E reprezinta AM sau PM

– Atent, ie! Intre A s, i B exista caracterul ”\” iar ıntre D s, i E exista caracterul ” ” (spat, iu)

• Fis, ierele vor fi denumite task02.N.P

– N reprezinta numarul fis, ierului (1, 2, 3, 4, 5)

– P reprezinta ID-ul procesului care a creat fis, ierul

• Dupa ce sunt create cele 5 fis, iere, acesta le s,terge pe toate, inclusiv directorul folder02

– Daca scriptul este suspendat temporar din execut, ie (ıntrerupt de comanda CTRL+Z pe

perioada rularii sale), atunci acesta trebuie sa s,tearga toate fis, ierele create pana la acel moment

(inclusiv directorul folder02 iar procesul sa se termine imediat fara a mai continua crearea

fis, ierelor ramase

Info! Pentru acest exercit, iu nu se acorda punctaj part, ial.

Pagina 3/ 7

Page 5: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare - Tema 2

Task 3 (15p)

No hint :(

Creat, i un one-liner /home/student/task03.sh care primes,te ca argument calea catre un director ce cont, ine

mai multe fis, iere s, i mai multe subdirectoare. Gasit, i mai jos un exemplu de director care respecta aceasta

ierarhie. Fis, ierele din aceasta ierarhie de directoare cont, in cuvinte separate print-un singur spat, iu (” ”), o

singura virgula (”,”) sau un singur caracter \n (new line).

Se dores,te ca scriptul sa scrie ın fis, ierul /home/student/caractere03 numarul total de caractere printa-

bile care se gasesc ın toate fis, ierele de la calea data ca argument scriptului.

Atent, ie! Urmatoarele caractere printabile nu vor fi luate ın considerare la numarul total de caractere

printabile:

• Caracterul spat, iu (” ”)

• Caracterul virgula (”,”)

Atent, ie! In fis, ierul /home/student/caractere03.err vor fi scrise toate erorile care apar pe parcursul rularii

scriptului.

Info! Exemplu de astfel de director gasit, i la adresa:

http://swarm.cs.pub.ro/~tibi/uso/tema2/task03_sample.tar.gz

Info! Pentru acest exercit, iu nu se acorda punctaj part, ial.

Task 4 (20p)

No hint :(

Dorim sa cream un script care este capabil sa ruleze un Makefile pentru noi, dar s, i sa ruleze executabilul

generat de acest Makefile. Pentru aceasta este nevoie sa creat, i:

1. [10p] Fis, ierul Makefile ın directorul /home/student/task04/ care:

(a) [8p] Pe dependent,a build preia fis, ierele main.c, rulz.c, uso.h, libuso.so din directorul /home/student/task04/

s, i creaza fis, ierul executabil uso.bin ın acelas, i director. Acest lucru se ıntampla s,tiind ca:

i. [0p] libuso.so este o biblioteca partajata (uso.h este fis, ierul header ce cont, ine prototipul

funct, iei definite ın bibioliteca libuso.so)

ii. [4p] Generarea fis, ierelor obt, inute ın urma etapei de asamblare este obligatorie (Atent, ie!

Salvat, i aceste fis, iere cu extensia .xo)

iii. [4p] O modificare ıntr-un fis, ier sursa nu trebuie sa genereze recompilarea ıntregului executabil

ci doar ce este necesar

(b) [2p] Pe dependint,a clean s,terge toate fis, ierele create ın urma compilarii, dar nu s, i fis, ierele sursa

ori biblioteca partajata (avet, i grija sa nu va s,terget, i fis, ierul Makefile sau celelate taskuri/scripturi;

se recomanda sa facet, i backup ınainte!)

2. [10p] Scriptul /home/student/task04.sh care:

Pagina 4/ 7

Page 6: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare - Tema 2

(a) Ruleaza Makefile creat anterior (la pasul 1)

(b) Lanseaza ın execut, ie uso.bin

(c) Scriptul returneaza procesului parinte valoarea de ies, ire a executabilului (uso.bin), lansat ın

execut, ie anterior (la pasul b)

Info! Exemple de fis, iere necesare la punctul 1.(a) gasit, i la adresa:

http://swarm.cs.pub.ro/~tibi/uso/tema2/task04_sample.tar

Atent, ie! Toate subpunctele sunt dependente de subpunctele anterioare. In concluzie, nu se acorda punctaj

pentru subpunctul 1.(a).iii daca subpunctul 1.(a).ii nu este funct, ional, s, .a.m.d. Aceasta regula este valabila

pentru orice subpunct.

Task 5 (25p)

No hint :(

Lucrat, i ıntr-o companie de succes s, i avet, i o funct, ie de analist financiar. Unul din task-urile voastre este

sa gasit, i angajatul cu cel mai mic salariu care are cele mai bune rezultate profesionale, pe baza unor date

deja existente. In acelas, i timp trebuie sa va asigurat, i ca datele existente sunt valide s, i provin din surse

sigure. In cazul ın care datele sau sursele nu sunt corecte va trebui sa comunicat, i acest lucru superiorului

vostru prin-un mesaj. La final, s,eful vostru va va comunica rezultatul muncii printr-o promovare la funct, ia

de analist programator daca at, i rezolvat cu succes acest task. Multa bafta!

Din fericire, suntet, i un bun utilizator al sistemului de operare Linux datorita studiului intens depus ın facul-

tate s, i dorit, i sa va us,urat, i aceasta munca. Pentru aceasta trebuie sa creat, i scriptul /home/student/task05.sh

care:

1. Primes,te 2 parametri:

(a) [3p] Scriptul trebuie sa verifice ca s-au primit exact 2 argumente. In caz contrar scriptul trebuie

sa iasa cu o valoare de retur (vezi mai jos codurile de retur)

(b) Primul parametru reprezinta o cale catre un director. In acel director se gases,te un fis, ier ce

cont, ine date despre angajat, i, angajati.txt

i. [3p] Daca directorul nu exista, atunci scriptul trebuie sa iasa cu o valoare de retur (vezi mai

jos codurile de retur)

ii. [5p] Scriptul trebuie sa verifice ca primul argument primit este o cale absoluta ce nu se afla ın

afara directorului /home/student/task05/. In caz contrar scriptul trebuie sa iasa cu o valoare

de retur (vezi mai jos codurile de retur)

iii. [3p] Daca fis, ierul nu exista, atunci scriptul trebuie sa iasa cu o valoare de retur (vezi mai jos

codurile de retur)

(c) Al doilea parametru reprezinta numele unui angajat din compania vostra

2. [0p] Cauta ın fis, ier, atat ın lista primilor 10 angajat, i cat s, i ın lista ultimilor 10 angajat, i, tot, i angajat, ii

care au numele de familie identic cu numele primit ca al doilea argument

3. [0p] Dintre aces,ti angajat, i ıl alege pe acela care are salariul cel mai mic

4. [0p] Daca sunt mai mult, i angajat, i care au acelas, i nume de familie s, i salarii egale atunci va trebui sa ıl

gasit, i pe acela care are cel mai mare scor de performant, a

Pagina 5/ 7

Page 7: CTI USO Tema2 Update3

Utilizarea Sistemelor de Operare - Tema 2

5. [10p] Dupa ce acest angajat a fost gasit, va trebui sa afis,at, i la ies, irea de eroare standard ID-ul acestui

angajat.

6. [1p] La final, scriptul trebuie sa iasa cu o valoare de retur specificata mai jos.

Info! Formatul fis, ierului ce cont, ine date despre angajat, i este urmatorul:

ID ANGAJAT\NUME ANGAJAT\PRENUME ANGAJAT\SALARIU ANGAJAT\SCOR -

PERFORMANT, A

Exemplu de fis, ier gasit, i la adresa:

http://swarm.cs.pub.ro/~tibi/uso/tema2/task05_sample.txt

Info! Codurile de retur pe care trebuie sa le returneze scriptul vostru:

4 - daca scriptul nu primes,te 2 argumente

5 - daca directorul primit ca prim argument nu exista

6 - daca directorul primit ca prim argument nu este o cale absoluta ce se afla ın directorului /home/student/task05/

7 - daca fis, ierul angajati.txt nu se gases,te ın directorul primit ca prim argument

8 - daca nu a avut loc nicio eroare

Atent, ie! Toate subpunctele sunt dependente de subpunctele anterioare. In concluzie, nu se acorda punctaj

pentru subpunctul 1.(b).i daca subpunctul 1.(a) nu este funct, ional, s, .a.m.d. Aceasta regula este valabila

pentru orice subpunct.

Task 6 (5p + 10p BONUS)

No hint because you are a PRO :)

Suntet, i administratorului unui sistem s, i pentru o mai buna monitorizare dorit, i sa urmarit, i anumite eveni-

mente care au loc ın sistem. Pentru aceasta trebuie sa se modifice comportamentul daemon-ului rsyslogd

astfel ıncat:

1. [5p] Toate mesajele de tip mail care au cel put, in prioritatea notice, exceptandu-le pe cele de prioritate

err, vor fi logate ın fis, ierul /var/log/usomail.log

2. [10p] Toate mesajele de prioritate crit, exceptand mesajele de tip mail s, i news vor fi logate ın fis, ierul

/var/log/usocrit.log

Atent, ie! Toate subpunctele sunt dependente de subpunctele anterioare. In concluzie, nu se acorda punctaj

pentru subpunctul 2 daca subpunctul 1 nu este funct, ional.

Pagina 6/ 7

Page 8: CTI USO Tema2 Update3

Lista schimbarilor

7