◇ OpenCyber Academy
Engenharia · Capítulo 6 · Português

Capítulo 6 — Cálculo II

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 6 — Cálculo II

Mapa da aula

Aula 06 publicada. Mapa, exemplo, EX016.

flowchart TD
  N0["6.1 Séries geométricas e novas tentativas"]
  N1["6.2 Modelo diferencial de um backlog"]
  N2["6.3 Quando o contínuo basta"]
  N3["6.3b Escolhendo um limite de tentativas a partir da"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX016"]

Desenho lógico

flowchart LR
  N0["6.1 Séries geométricas e novas tentativas"]
  N1["6.2 Modelo diferencial de um backlog"]
  N2["6.3 Quando o contínuo basta"]
  N3["6.3b Escolhendo um limite de tentativas a partir da"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX016"]
[6.1 Séries geométricas e novas tentativas]
    |
    v
[6.2 Modelo diferencial de um backlog]
    |
    v
[6.3 Quando o contínuo basta]
    |
    v
[6.3b Escolhendo um limite de tentativas a partir da]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX016]

Objetivos de aprendizagem

Você vai (1) usar séries e acumulação para raciocinar sobre sondagens repetidas; (2) aplicar um modelo diferencial simples a um backlog de remediação; (3) decidir quando um modelo contínuo basta para um debate sobre a ROE.

6.1 Séries geométricas e novas tentativas

Se cada tentativa de enviar evidências tem sucesso com probabilidade p = 0,8, de forma independente, a chance de ter sucesso em até k tentativas é 1 − (1 − p)^k. Isso é uma série geométrica finita. Com k = 3, 1 − 0,2³ = 0,992. As novas tentativas elevam a taxa de sucesso, mas também multiplicam o tráfego: o número esperado de tentativas até o sucesso é 1/p = 1,25, então um lote de 1.000 envios espera 1.250 requisições. A ROE precisa contar as novas tentativas, não só os envios lógicos.

"""Reliability of a synthetic evidence-upload step with retries (deterministic)."""
import random
random.seed(7)
P_FAIL = 0.2
def upload_attempts(max_tries):
    for t in range(1, max_tries + 1):
        if random.random() > P_FAIL:
            return True, t
    return False, max_tries
for tries in (1, 2, 3, 5):
    random.seed(7)
    ok = sum(upload_attempts(tries)[0] for _ in range(1000))
    print(f"max_tries={tries} success={ok}/1000 theory={1-P_FAIL**tries:.4f}")

Saída esperada:

max_tries=1 success=784/1000 theory=0.8000
max_tries=2 success=949/1000 theory=0.9600
max_tries=3 success=988/1000 theory=0.9920
max_tries=5 success=1000/1000 theory=0.9997

Contar apenas os envios lógicos subestima a carga pelo fator de novas tentativas. Com p igual a 0,8, cada mil envios lógicos significam, em média, cerca de mil duzentas e cinquenta tentativas, e é isso que o limitador de taxa do cliente vai ver. A semente do laboratório mantém a demonstração estável entre máquinas; em produção, usa-se a mesma fórmula com taxas de falha medidas. Sam escreve o número esperado de tentativas no orçamento de volume da ROE antes do engajamento.

6.2 Modelo diferencial de um backlog

Seja B(t) o número de achados abertos. Os achados chegam à taxa a e são fechados à taxa c quando há equipe. Então B′(t) ≈ a − c. Se a = 4/dia e c = 6/dia, o backlog cai cerca de 2 por dia; partindo de 30, chega a zero em 15 dias. Se as chegadas saltam para 8/dia (uma semana de campanha) enquanto a equipe continua em 6, o backlog cresce. O modelo é grosseiro — ignora a prioridade —, mas torna quantitativa a decisão sobre a equipe. O sinal de a menos c conta a história num relance: negativo, a pilha encolhe; positivo, ela cresce. A prioridade continua importando nas filas reais, então Sam usa o modelo para pedir equipe, não para prometer uma data no calendário. Quando uma semana de campanha dobra as chegadas, o mesmo modelo mostra quantas pessoas a mais são necessárias para fechar tickets e manter o nível. Plotar B(t) ao longo de um mês torna o efeito visível para gestores que não vão ler a equação.

6.3 Quando o contínuo basta

Debates sobre a ROE costumam precisar de uma ordem de grandeza, não de uma forma fechada. "Uma varredura a 5 req/s por 30 minutos vai produzir cerca de 9.000 requisições?" Sim: 5 × 1.800 = 9.000. Reserve o cálculo exato para agendas com picos (§1) e para modelos que o cliente vai auditar. Agendas exatas com picos precisam do tratamento mais completo do primeiro capítulo de cálculo, e são essas que Sam leva a um cliente que vai auditar os números. Para uma varredura plana, multiplicar a taxa pela duração basta, e escrever o produto ao lado do limite de volume mostra a conformidade num relance. Se o produto fica perto do limite, ele passa para a verificação da agenda exata em vez de torcer para que as rajadas fiquem pequenas.

Caso sintético — Riverstone Transit. O FindingsDesk mostrava um backlog de 28 achados médios, com duas remediações por dia. O modelo B′ de Sam previu 14 dias para zerar se não houvesse novas chegadas; o gestor financiou um terceiro engenheiro para aquela quinzena.

6.4 Erros e limites

A independência das novas tentativas falha quando a falha é sistemática (um endpoint quebrado). Modelos de backlog ignoram prioridade e SLA; use-os para iniciar uma conversa, não como uma previsão que o conselho vai citar. Um endpoint quebrado falha em todas as tentativas, então multiplicá-las não eleva a taxa de sucesso e só acrescenta carga. Modelos de equipe que ignoram a severidade vão fechar os tickets fáceis enquanto os críticos envelhecem. Sam rotula cada modelo com suas premissas e não deixa que um gráfico de backlog seja citado como data de entrega.

6.3b Escolhendo um limite de tentativas a partir da série

A série geométrica dá a chance de todas as tentativas falharem como p elevado a n. Sam a usa de trás para frente: o envio de evidências do TrackScope precisa ter sucesso 99% das vezes, e execuções sintéticas mostram uma taxa de falha de 20% por tentativa; então três tentativas (0,8%) atingem a meta, enquanto duas (4%) não. Ele escreve a derivação na nota de design para que um revisor possa conferir o limite sem repetir os experimentos. Trabalhar de trás para frente a partir de uma meta de confiabilidade transforma uma questão de gosto numa derivação curta. Três tentativas deixam menos de um por cento de falha quando cada tentativa falha uma vez em cinco, o que bate com o laboratório. Pôr a derivação na nota de design significa que um engenheiro, mais tarde, pode mudar a taxa de falha e recalcular o limite sem adivinhar por que três foi o número escolhido. Sam repete a verificação sintética sempre que o caminho de envio muda.

Exercícios

Síntese

Séries e taxas transformam "tente de novo" e "contrate alguém" em números que cabem numa ROE ou num pedido de equipe.

Continue estudando — capítulo 06 de 50

← Capítulo 05 (rascunho) · Índice de capítulos do curso · Capítulo 07 (rascunho) →