LabHub
배우기 러닝패스 코스

연결 하나가 느려지자 나머지가 전부 멈췄다 · 운영자의 연결 진단기: 예산·원인·회수 · 퀴즈

퀴즈: 운영자의 연결 진단기: 예산·원인·회수

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 소켓을 미리 가진 Dial 100개에 limit=8을 주었다. 정확한 자원 설명은?

    1. 진행 중 연결뿐 아니라 모든 FD가 정확히 8개 이하이다
    2. 대기 중 Dial은 소켓을 가져도 FD 한도를 소비하지 않는다
    3. 제어 채널과 selector는 운영체제 자원을 사용하지 않는다
    4. 진행 중 상한과 전체 열린 FD 수를 별도로 계산해야 한다
  2. 정리 반복문 첫 close에서 예외가 났다. 다른 FD를 보호하는 설계는?

    1. 각 회수를 계속 시도하고 오류를 보관해 나머지 정리 후 전파한다
    2. 즉시 반환해 남은 소켓이 다음 호출에서 닫히기를 기대한다
    3. 오류를 무시한 뒤 회수하지 않은 항목도 성공으로 반환한다
    4. FD 한도를 늘려 회수되지 않은 소켓의 영향을 미룬다
  3. 결과 집계에서 error=0을 error or '없음'으로 바꾸면 무엇을 잃는가?

    1. 오류 숫자의 정렬 순서만 바뀌고 의미는 그대로 보존된다
    2. 성공을 나타내는 유효한 0과 정보 누락의 구분을 잃는다
    3. 오류가 모두 음수가 되어 연결 재시도가 자동으로 시작된다
    4. 연결이 취소되어 제어 채널이 다시 열리는 결과가 된다
  4. 완료 처리 예산을 검증하려면 어떤 시험이 중요한가?

    1. 연결이 항상 시작하자마자 하나씩 완료하는 경우만 반복한다
    2. 소스에 budget이라는 변수 이름이 등장하는지만 확인한다
    3. 완료 이벤트를 모아 한꺼번에 돌려주고 턴별 처리 수를 센다
    4. 모든 연결을 없애고 빈 결과가 빨리 반환되는지만 잰다
  5. 가득 찬 socketpair로 마감과 취소를 시험했다. 올바른 결과 보고는?

    1. 공인 인터넷의 SYN 유실과 원격 방화벽 장애를 재현했다
    2. TCP 재전송 알고리즘의 모든 시간 초과 분기를 검증했다
    3. 외부 서버의 지연 분포와 서비스 용량 한도를 측정했다
    4. 연결 상태는 합성했고 커널 쓰기 대기와 깨우기를 실제 검증했다
  6. 한 번의 진단 결과에 pending이 섞여 있다. 최종 summarize는?

    1. 미완료 입력을 거절하고 종료 결과만으로 집계한다
    2. pending을 connected에 더해 분모와 분자를 맞춘다
    3. pending을 무조건 failed로 바꿔 실행 이력을 끝낸다
    4. pending을 조용히 버려 합계가 작아져도 반환한다