← Capitol

Manual · pagina 89

Exercițiul 10 · Indicele de încărcare al serverului

Ești administrator de rețea și ai un server care gestionează utilizatorii. Pentru a monitoriza „sarcina” serverului, folosești o funcție a cărei variabilă reprezintă numărul de utilizatori activi (nn) după formula f(n)=3nn+100f(n) = \dfrac{3n}{n + 100}, unde 100100 este o constantă de calibrare a serverului. Sistemul automat de securitate este programat să restarteze serverul dacă indicele de încărcare ff atinge valoarea 2,52{,}5. Pentru a fi siguri că sistemul este stabil și predictibil, trebuie să demonstrăm că fiecărui număr de utilizatori nn îi corespunde un indice de încărcare unic.

a) Demonstrează că funcția de lege ff este injectivă pe domeniul [0,∞)[0, \infty).

b) Interpretează următorul rezultat: este posibil ca serverul să confunde un număr mic de utilizatori cu un număr mare și să dea același indice?

a)Demonstrează că funcția de lege ff este injectivă pe domeniul [0,∞)[0, \infty).

Pornește de la f(n1)=f(n2)f(n_1) = f(n_2) și ajunge la n1=n2n_1 = n_2. Numitorii sunt pozitivi, deci poți înmulți „în cruce”.
  1. 1. Ce trebuie arătat

    Ca în exemplul rezolvat 3 de la p. 86, presupunem că două numere de utilizatori n1,n2≥0n_1, n_2 \ge 0 dau același indice:
    3n1n1+100=3n2n2+100\frac{3n_1}{n_1 + 100} = \frac{3n_2}{n_2 + 100}
    Numitorii sunt pozitivi (n+100≥100n + 100 \ge 100), deci înmulțim în cruce:
    3n1(n2+100)=3n2(n1+100)3n_1(n_2 + 100) = 3n_2(n_1 + 100)
  2. 2. Calculul

    Desfacem parantezele în ambii membri și reducem termenii care apar în ambele părți.

    Verifică-te

    Ce egalitate rămâne după reducere?
    Împărțind la 300300: n1=n2n_1 = n_2. Deci ff este injectivă pe [0,∞)[0, \infty): două numere diferite de utilizatori dau mereu indici diferiți.
  3. 3. Pe grafic

    1002003004005006000,511,522,53Oxy
    ff
    y=3y = 3

    Graficul urcă tot timpul și se apropie de 33 fără să-l atingă: o dreaptă orizontală îl taie cel mult o dată.

Răspuns
Din f(n1)=f(n2)f(n_1) = f(n_2) rezultă 300n1=300n2300n_1 = 300n_2, deci n1=n2n_1 = n_2: ff este injectivă pe [0,∞)[0, \infty).

b)Este posibil ca serverul să confunde un număr mic de utilizatori cu un număr mare și să dea același indice?

Folosește rezultatul de la a). Ca să vezi și „cum” crește indicele, scrie f(n)f(n) ca 33 minus o fracție.
  1. 1. Ce spune injectivitatea

    La a) am arătat că ff este injectivă: dacă n1≠n2n_1 \ne n_2, atunci f(n1)≠f(n2)f(n_1) \ne f(n_2).

    Deci nu: un număr mic și un număr mare de utilizatori dau mereu indici diferiți.

    Mai mult, indicele crește cu numărul de utilizatori. Scriem 3n=3(n+100)−3003n = 3(n + 100) - 300:

    f(n)=3(n+100)−300n+100=3−300n+100\begin{aligned} f(n) &= \frac{3(n + 100) - 300}{n + 100} \\[4pt] &= 3 - \frac{300}{n + 100} \end{aligned}
    Când nn crește, n+100n + 100 crește, fracția 300n+100\frac{300}{n + 100} scade, iar f(n)f(n) crește. ff este strict crescătoare: mai mulți utilizatori înseamnă mereu un indice mai mare, mereu sub 33.
  2. 2. Pragul de restart

    Restartul are loc la f(n)=2,5f(n) = 2{,}5. Fiind injectivă, ff atinge valoarea 2,52{,}5 pentru cel mult un nn. Să-l aflăm din 3n=2,5(n+100)3n = 2{,}5(n + 100).

    Verifică-te

    La câți utilizatori se restartează serverul?
    1002003004005006000,511,522,53Oxy
    y=2,5y = 2{,}5

    Pragul 2,52{,}5 este atins o singură dată, la n=500n = 500 de utilizatori.

    Sistemul este deci predictibil: restartul corespunde unui singur număr de utilizatori, 500500, și nu poate fi declanșat „din greșeală” de un număr mic.
Răspuns
Nu. ff este injectivă (chiar strict crescătoare), deci numere diferite de utilizatori dau indici diferiți; pragul de restart 2,52{,}5 corespunde doar lui n=500n = 500.