作者: Martin Rinard , Cristian Cadar , William S. Beebee , Daniel M. Roy , Tudor Leu
DOI:
关键词: Call stack 、 Operating system 、 Memory corruption 、 Memory errors 、 Process (computing) 、 Computing with Memory 、 Computer science 、 Data structure 、 Server 、 Interleaved memory
摘要: We present a new technique, failure-oblivious computing, that enables servers to execute through memory errors without corruption. Our safe compiler for C inserts checks dynamically detect invalid accesses. Instead of terminating or throwing an exception, the generated code simply discards writes and manufactures values return reads, enabling server continue its normal execution path. We have applied computing set widely-used from Linux-based open-source environment. results show our techniques 1) make these invulnerable known security attacks exploit errors, 2) enable operate successfully service legitimate requests satisfy needs their users even after trigger errors. We observed several reasons this successful continued execution. When occur in irrelevant computations, on relevant computation. Even when converts unanticipated dangerous paths into anticipated inputs, which error-handling logic rejects. Because tend small error propagation distances (localized computation one request little no effect computations subsequent requests), redirecting reads would otherwise cause addressing discarding corrupt critical data structures (such as call stack) localizes prevents exceptions computation, process requests. The overall result is substantial extension range can process.