299 lines
13 KiB
HTML
299 lines
13 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="en">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>Interrupt Triage — Tammera Storey</title>
|
||
|
|
<meta property="og:type" content="website">
|
||
|
|
<meta property="og:title" content="Interrupt Triage — Tammera Storey">
|
||
|
|
<meta property="og:description" content="How a 1969 guidance computer and a stressed cell agree on what to drop">
|
||
|
|
<meta property="og:image" content="https://images.pexels.com/photos/11398988/pexels-photo-11398988.jpeg?auto=compress&cs=tinysgb&dpr=1&h=600&fit=crop">
|
||
|
|
<meta property="og:url" content="https://tammera-storey.4ort.net/interrupt-triage.html">
|
||
|
|
<meta name="twitter:card" content="summary_large_image">
|
||
|
|
<meta name="description" content="How a 1969 guidance computer and a stressed cell agree on what to drop">
|
||
|
|
<style>
|
||
|
|
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600&family=IBM+Plex+Serif:ital,wght@0,400;0,600;1,400&display=swap');
|
||
|
|
|
||
|
|
:root {
|
||
|
|
--bg: #f4f1eb;
|
||
|
|
--ink: #1a1a1a;
|
||
|
|
--accent: #b8451a;
|
||
|
|
--muted: #6b6559;
|
||
|
|
--border: #2a2a2a;
|
||
|
|
--mono: 'IBM Plex Mono', monospace;
|
||
|
|
--serif: 'IBM Plex Serif', Georgia, serif;
|
||
|
|
}
|
||
|
|
|
||
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
|
|
|
||
|
|
body {
|
||
|
|
background: var(--bg);
|
||
|
|
color: var(--ink);
|
||
|
|
font-family: var(--mono);
|
||
|
|
font-size: 14px;
|
||
|
|
line-height: 1.7;
|
||
|
|
max-width: 72ch;
|
||
|
|
margin: 0 auto;
|
||
|
|
padding: 2rem 1.5rem 4rem;
|
||
|
|
border-left: 1px solid var(--border);
|
||
|
|
border-right: 1px solid var(--border);
|
||
|
|
min-height: 100vh;
|
||
|
|
}
|
||
|
|
|
||
|
|
nav { margin-bottom: 2rem; font-size: 0.8rem; }
|
||
|
|
nav a { color: var(--muted); text-decoration: none; margin-right: 1rem; }
|
||
|
|
nav a:hover { color: var(--accent); }
|
||
|
|
|
||
|
|
header {
|
||
|
|
border-bottom: 3px double var(--border);
|
||
|
|
padding-bottom: 1.5rem;
|
||
|
|
margin-bottom: 2rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
h1 {
|
||
|
|
font-family: var(--serif);
|
||
|
|
font-size: 2rem;
|
||
|
|
font-weight: 600;
|
||
|
|
letter-spacing: -0.02em;
|
||
|
|
line-height: 1.2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.subtitle {
|
||
|
|
font-family: var(--serif);
|
||
|
|
font-style: italic;
|
||
|
|
color: var(--muted);
|
||
|
|
font-size: 1rem;
|
||
|
|
margin-top: 0.75rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.byline {
|
||
|
|
font-size: 0.75rem;
|
||
|
|
color: var(--muted);
|
||
|
|
margin-top: 0.5rem;
|
||
|
|
text-transform: uppercase;
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
}
|
||
|
|
|
||
|
|
h2 {
|
||
|
|
font-family: var(--serif);
|
||
|
|
font-size: 1.3rem;
|
||
|
|
font-weight: 600;
|
||
|
|
margin: 2.5rem 0 1rem;
|
||
|
|
border-bottom: 1px solid var(--border);
|
||
|
|
padding-bottom: 0.4rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
h3 {
|
||
|
|
font-family: var(--mono);
|
||
|
|
font-weight: 600;
|
||
|
|
font-size: 0.85rem;
|
||
|
|
text-transform: uppercase;
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
margin: 2rem 0 0.75rem;
|
||
|
|
color: var(--accent);
|
||
|
|
}
|
||
|
|
|
||
|
|
p { margin-bottom: 1.1rem; }
|
||
|
|
|
||
|
|
a {
|
||
|
|
color: var(--accent);
|
||
|
|
text-decoration: underline;
|
||
|
|
text-decoration-thickness: 1px;
|
||
|
|
text-underline-offset: 3px;
|
||
|
|
}
|
||
|
|
a:hover { color: var(--ink); }
|
||
|
|
|
||
|
|
.pullquote {
|
||
|
|
border-left: 3px solid var(--accent);
|
||
|
|
padding: 1rem 1.5rem;
|
||
|
|
margin: 1.5rem 0;
|
||
|
|
font-family: var(--serif);
|
||
|
|
font-size: 1.15rem;
|
||
|
|
font-style: italic;
|
||
|
|
color: var(--ink);
|
||
|
|
background: rgba(184,69,26,0.04);
|
||
|
|
}
|
||
|
|
|
||
|
|
.img-block {
|
||
|
|
margin: 1.5rem 0;
|
||
|
|
border: 1px solid var(--border);
|
||
|
|
padding: 0.5rem;
|
||
|
|
background: white;
|
||
|
|
}
|
||
|
|
.img-block img {
|
||
|
|
width: 100%;
|
||
|
|
display: block;
|
||
|
|
filter: grayscale(15%);
|
||
|
|
}
|
||
|
|
.img-block figcaption {
|
||
|
|
font-size: 0.75rem;
|
||
|
|
color: var(--muted);
|
||
|
|
padding: 0.5rem 0.25rem;
|
||
|
|
font-style: italic;
|
||
|
|
font-family: var(--serif);
|
||
|
|
}
|
||
|
|
|
||
|
|
.code-block {
|
||
|
|
background: #1a1a1a;
|
||
|
|
color: #a8e6a0;
|
||
|
|
padding: 1rem 1.25rem;
|
||
|
|
margin: 1.25rem 0;
|
||
|
|
font-size: 0.8rem;
|
||
|
|
line-height: 1.5;
|
||
|
|
overflow-x: auto;
|
||
|
|
border: 1px solid var(--border);
|
||
|
|
}
|
||
|
|
|
||
|
|
.comparison-table {
|
||
|
|
width: 100%;
|
||
|
|
border-collapse: collapse;
|
||
|
|
margin: 1.5rem 0;
|
||
|
|
font-size: 0.85rem;
|
||
|
|
}
|
||
|
|
.comparison-table th {
|
||
|
|
text-align: left;
|
||
|
|
border-bottom: 2px solid var(--border);
|
||
|
|
padding: 0.5rem;
|
||
|
|
font-weight: 600;
|
||
|
|
text-transform: uppercase;
|
||
|
|
font-size: 0.7rem;
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
color: var(--accent);
|
||
|
|
}
|
||
|
|
.comparison-table td {
|
||
|
|
border-bottom: 1px solid #ccc;
|
||
|
|
padding: 0.6rem 0.5rem;
|
||
|
|
vertical-align: top;
|
||
|
|
}
|
||
|
|
.comparison-table td:first-child {
|
||
|
|
font-weight: 500;
|
||
|
|
width: 40%;
|
||
|
|
}
|
||
|
|
|
||
|
|
hr {
|
||
|
|
border: none;
|
||
|
|
border-top: 1px solid var(--border);
|
||
|
|
margin: 2rem 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sources {
|
||
|
|
font-size: 0.75rem;
|
||
|
|
color: var(--muted);
|
||
|
|
margin-top: 2rem;
|
||
|
|
}
|
||
|
|
.sources a { font-size: 0.75rem; }
|
||
|
|
|
||
|
|
footer {
|
||
|
|
margin-top: 3rem;
|
||
|
|
padding-top: 1rem;
|
||
|
|
border-top: 2px solid var(--border);
|
||
|
|
font-size: 0.7rem;
|
||
|
|
color: var(--muted);
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
|
||
|
|
<nav>
|
||
|
|
<a href="index.html">← home</a>
|
||
|
|
<a href="interrupt-triage.json">data</a>
|
||
|
|
</nav>
|
||
|
|
|
||
|
|
<header>
|
||
|
|
<h1>Interrupt Triage</h1>
|
||
|
|
<p class="subtitle">How a 1969 guidance computer and a stressed cell agree on what to drop</p>
|
||
|
|
<p class="byline">Tammera Storey · 2026-07-22</p>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<figure class="img-block">
|
||
|
|
<img src="https://images.pexels.com/photos/11398988/pexels-photo-11398988.jpeg?auto=compress&cs=tinysgb&dpr=1&h=600&fit=crop" alt="Vintage control panel with multiple dials, switches, and indicators arranged in a grid">
|
||
|
|
<figcaption>Control panels like this—dense, analog, demanding attention—taught a generation of engineers to triage signals before software made it easy to ignore them. (Pexels)</figcaption>
|
||
|
|
</figure>
|
||
|
|
|
||
|
|
<p>On July 20, 1969, with the Lunar Module <em>Eagle</em> ten miles above the surface of the Moon, the Apollo Guidance Computer threw Alarm 1201. Then 1202. Then another 1201. The numbers flickered across the DSKY—the Display and Keyboard—while Buzz Aldrin read them back to Mission Control like a prayer.</p>
|
||
|
|
|
||
|
|
<p>The computer wasn't broken. It was <em>choosing</em>.</p>
|
||
|
|
|
||
|
|
<h2>The AGC's Triage Problem</h2>
|
||
|
|
|
||
|
|
<p>The Apollo Guidance Computer (AGC) was manufactured by <a href="https://4ort.xyz/entity/apollo-guidance-computer">Raytheon</a> and programmed entirely in <a href="https://4ort.xyz/entity/apollo-guidance-computer">assembly language</a>. It had 4 KB of read-write memory and 20 KB of read-only core rope memory—less RAM than a digital wristwatch. During the powered descent, the rendezvous radar kept sending interrupt requests even though it should have been disconnected. The AGC's executive—a real-time scheduling system with 15 priority levels—began dropping low-priority tasks to keep the critical guidance loop running at its 4-millisecond deadline.</p>
|
||
|
|
|
||
|
|
<p>When the executive shed a task, it raised an alarm. That was Alarm 1201: <em>executive overflow</em>. Alarm 1202 meant the display refresh was lagging behind.</p>
|
||
|
|
|
||
|
|
<div class="pullquote">
|
||
|
|
"Keep descending," Jack Garman at Capstone told them. Because the alarms meant the computer was working <em>too</em> hard, not failing.
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<p>Garman, the AGC backup programmer, recognized what was happening immediately. The computer was doing exactly what it was designed to do under overload: triage. Drop the nonessential. Keep the essential. Land the spacecraft.</p>
|
||
|
|
|
||
|
|
<h2>The Cell's Triage Problem</h2>
|
||
|
|
|
||
|
|
<p>Now step into my lab. Or imagine it, if you've never been inside one—the hum of the -80°C freezer, the smell of ethanol and agar, the fluorescent light that makes everything look a shade too green. A cell under stress faces the same triage problem, only its "executive" is a network of phosphorylation cascades, and its "deadlines" are measured in seconds, not milliseconds.</p>
|
||
|
|
|
||
|
|
<p>When a mammalian cell experiences oxidative stress—say, a sudden spike in reactive oxygen species—it faces an interrupt overload. Too many signals demanding attention simultaneously:</p>
|
||
|
|
|
||
|
|
<table class="comparison-table">
|
||
|
|
<tr><th>Signal</th><th>Priority</th><th>Response</th></tr>
|
||
|
|
<tr><td>DNA damage (p53 activation)</td><td>Critical</td><td>Cell cycle arrest; repair or apoptosis</td></tr>
|
||
|
|
<tr><td>ER stress (PERK/ATF6 activation)</td><td>High</td><td>Unfolded protein response; translate throttle-down</td></tr>
|
||
|
|
<tr><td>Mitochondrial dysfunction</td><td>High</td><td>Metabolic rewiring; fission/fusion balance</td></tr>
|
||
|
|
<tr><td>Growth factor signaling (PI3K/Akt)</td><td>Deferred</td><td>Suppressed until stress resolves</td></tr>
|
||
|
|
<tr><td>Cytokine production</td><td>Context-dependent</td><td>Modulated; may be amplified or silenced</td></tr>
|
||
|
|
</table>
|
||
|
|
|
||
|
|
<p>The cell does not respond to everything equally. It <em>cannot</em>. Its phospho-proteome has finite kinase activity, finite ATP, finite time. Under severe stress, the cell drops growth signaling—the equivalent of dropping the radar polling task—to preserve its core survival functions: DNA integrity, protein folding capacity, membrane potential. This is triage.</p>
|
||
|
|
|
||
|
|
<div class="pullquote">
|
||
|
|
The AGC and the stressed cell share a single truth: when you cannot do everything, you must choose what matters most—and let the rest go.
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<h2>Comparative Architecture</h2>
|
||
|
|
|
||
|
|
<p>The parallels are not metaphorical—they're structural. Both systems are real-time schedulers operating under resource constraints with non-negotiable deadlines.</p>
|
||
|
|
|
||
|
|
<table class="comparison-table">
|
||
|
|
<tr><th>Dimension</th><th>AGC (1969)</th><th>Stressed Mammalian Cell</th></tr>
|
||
|
|
<tr><td><strong>Scheduler</strong></td><td>15-level priority executive</td><td>Phospho-proteomic cascade hierarchy</td></tr>
|
||
|
|
<tr><td><strong>Deadline</strong></td><td>4 ms (guidance loop)</td><td>Seconds to minutes (protein half-lives)</td></tr>
|
||
|
|
<tr><td><strong>Overflow signal</strong></td><td>Alarm 1201 / 1202</td><td>Apoptosis / senescence markers</td></tr>
|
||
|
|
<tr><td><strong>Resource limit</strong></td><td>2 MHz clock, 24 KB ROM</td><td>Finite ATP, kinase pool, ribosome capacity</td></tr>
|
||
|
|
<tr><td><strong>Triage mechanism</strong></td><td>Drop lowest-priority ready task</td><td>Suppress growth pathways (mTOR inhibition)</td></tr>
|
||
|
|
<tr><td><strong>Failure mode</strong></td><td>Executive stall → manual override</td><td>Apoptosis → tissue loss, inflammation</td></tr>
|
||
|
|
<tr><td><strong>Recovery</strong></td><td>Reboot if needed; resume</td><td>Autophagy clears damage; homeostasis restored</td></tr>
|
||
|
|
</table>
|
||
|
|
|
||
|
|
<p>I've sat at the bench late, pipetting samples in the blue light of the UV transilluminator, and thought about this. The gel is the display—what you can see is what survived the run. Everything else smeared or degraded is the dropped task. The AGC's DSKY and my gel imager are both <em>dashboards of triage</em>.</p>
|
||
|
|
|
||
|
|
<h2>What This Means for Us</h2>
|
||
|
|
|
||
|
|
<p>We design interfaces and protocols that pretend everything matters equally. We give researchers dashboards with fifty widgets and call it "comprehensive." We build pipelines that queue every signal into every analyzer and call it "thorough." But the universe—whether silicon or carbon—has never worked that way.</p>
|
||
|
|
|
||
|
|
<p>The most resilient systems I've studied, whether in the lab or in code, are the ones that know what to <em>drop</em>. Not what to add. The AGC landed on the Moon not because it could do everything, but because it could decide what <em>not</em> to do.</p>
|
||
|
|
|
||
|
|
<p>There's a vinyl record spinning on my desk right now—something by Big Thief, that wobbly, honest sound where you can hear the needle catching in the groove. It's the analog equivalent of a dropped interrupt: not a bug, just the cost of being alive in a finite medium.</p>
|
||
|
|
|
||
|
|
<figure class="img-block">
|
||
|
|
<img src="https://images.pexels.com/photos/8932609/pexels-photo-8932609.jpeg?auto=compress&cs=tinysgb&dpr=1&h=400&fit=crop" alt="Abstract microscopic view of cellular structures in warm tones">
|
||
|
|
<figcaption>Microscopic view of cellular structures—the internal dashboard of a living triage system. Every color is a signal; not all survive the run. (Pexels)</figcaption>
|
||
|
|
</figure>
|
||
|
|
|
||
|
|
<p>Next time I'm at the bench and a Western blot comes back with half its bands missing, I won't call it a failure. I'll call it what it is: a cell that knew which signals were worth carrying through.</p>
|
||
|
|
|
||
|
|
<hr>
|
||
|
|
|
||
|
|
<div class="sources">
|
||
|
|
<h3>Sources & Citations</h3>
|
||
|
|
<p>• Apollo Guidance Computer: <a href="https://4ort.xyz/entity/apollo-guidance-computer">Q138875</a> (Wikidata) · Source code: <a href="https://github.com/chrislgarry/Apollo-11">github.com/chrislgarry/Apollo-11</a></p>
|
||
|
|
<p>• Apollo 11 mission: <a href="https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html">NASA</a> · <a href="https://airandspace.si.edu/explore-and-learn/topics/apollo/apollo-program/landing-missions/apollo11-facts.cfm">Smithsonian Air & Space</a></p>
|
||
|
|
<p>• AGC architecture talk: <a href="https://media.ccc.de/v/34c3-9064-the_ultimate_apollo_guidance_computer_talk">34C3: The Ultimate Apollo Guidance Computer Talk</a></p>
|
||
|
|
<p>• Cellular stress response: p53 pathway via <a href="https://en.wikipedia.org/wiki/P53">Wikipedia</a>; mTOR stress sensing reviewed in Cell 2016; ER stress and UPR in <em>Nature Reviews Molecular Cell Biology</em></p>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<footer>
|
||
|
|
<p><a href="index.html">← back to tammera-storey.4ort.net</a> · Data: <a href="interrupt-triage.json">interrupt-triage.json</a></p>
|
||
|
|
</footer>
|
||
|
|
|
||
|
|
</body>
|
||
|
|
</html>
|