Skip to main content
QUICK REVIEW

[논문 리뷰] Critical Sections Are Not Per-Thread: A Trace Semantics for Lock-Based Concurrency

Martin Sulzmann|arXiv (Cornell University)|2026. 03. 13.
Distributed systems and fault tolerance인용 수 0
한 줄 요약

논문은 전통적인 잠금-집합 분석이 각 스레드의 임계 구역(critical sections)을 가정한다고 보고, C/Pthread 프로그램에서 임계 구역이 여러 스레드에 걸칠 수 있도록 하는 trace 기반 의미론을 도입한다.

ABSTRACT

Locks are a standard mechanism for synchronizing concurrent threads. The standard lock set construction assumes that critical sections are confined to a single thread, and therefore only accounts for locks acquired within that thread. The commonly used notion of a critical section implicitly assumes that protected events belong to the same thread. We show that this assumption is not valid for general C/Pthread executions. Using a trace model that captures the essence of C/Pthread programs, we give a trace-based characterization of critical sections that does not impose a per-thread restriction. As a result, critical sections may span multiple threads. Such \emph{multi-thread} critical sections arise naturally in real programs and close a semantic gap in the standard lock set construction.

연구 동기 및 목표

  • Identify and formalize the implicit per-thread assumption in the standard lock set and critical section definitions.
  • Provide a trace-based semantics that captures C/Pthread executions with multi-thread critical sections.
  • Demonstrate semantic completeness and show that per-thread definitions are strictly subsumed.
  • Highlight implications for deadlock and data race analyses that rely on lock sets.

제안 방법

  • Model program executions as traces with events for fork, join, lock, and unlock operations.
  • Define well-formedness and correctly reordered prefixes to capture feasible reordering of traces under different schedules.
  • Introduce entry and exit points for critical sections and define exit points using a trace-dependent mechanism.
  • Provide a trace-based definition of critical sections and lock sets that allows cross-thread protection of events.
  • Prove semantic correctness and completeness of the trace-based lock set in comparison with the per-thread notion.

실험 결과

연구 질문

  • RQ1Do traditional per-thread critical section definitions accurately capture all protected events in C/Pthread executions?
  • RQ2Can a trace-based semantics describe multi-thread critical sections that cross thread boundaries while preserving correctness?
  • RQ3Is the per-thread lock set strictly contained within a more general trace-based lock set?
  • RQ4What are the implications of cross-thread critical sections for deadlock and data race analyses?
  • RQ5How does the new semantics affect the understanding and modeling of lock protection in real programs?

주요 결과

  • A per-thread notion of critical sections is semantically incomplete for C/Pthread programs.
  • A trace-based characterization yields complete semantics for a minimal trace model of C/Pthread execution traces.
  • Critical sections may span multiple threads, as demonstrated by the trace model examples.
  • The trace-based lock set LH_T(e) coincides with the events protected by locks, establishing semantic correctness and completeness.
  • The traditional per-thread lock set LH_T^τ(e) is strictly contained within the trace-based LH_T(e).
  • Extending analyses to the trace-based semantics closes semantic gaps in deadlock and data race detection.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.