EP.1-4 운영체제
Phase 1: Hardware-Software Interface
EP.1-4 운영체제 — 지휘자의 탄생
B접점 차단과 레지스터 SET/RESET이 만든 물리적 시퀀스
1. 질문: 소프트웨어는 어떻게 물리적 힘을 갖는가?
운영체제(OS)도 결국 전기 신호의 뭉치입니다. 그런데 어떻게 다른 프로그램의 전기를 끊거나 메모리를 뺏어올까요? 그 비밀은 CPU 내부에 미리 설계된 물리적 강제 로직에 있습니다. 하드웨어가 지휘봉을 건네주지 않으면 소프트웨어는 아무것도 할 수 없습니다.
2. 제어권 탈환: 하드웨어 인터록(Interlock) 시퀀스
OS는 마법처럼 나타나는 게 아닙니다. CPU 외부의 독립적인 물리 플리커(Timer)에 의해 강제로 깨어납니다. 이 과정은 소프트웨어의 '판단'이 아니라 회로의 '전압'에 의해 결정됩니다.
1
물리적 플리커(Independent Oscillation): 전원 인가 시부터 스스로 뛰는 하드웨어 타이머가 일정 주기마다 CPU의 IRQ 핀에 High 신호를 쏩니다.
2
B접점 논리 차단: IRQ 신호가 들어오면 CPU 내부 연산 회로는 AND 게이트 논리에 의해 즉시 동결됩니다. 현재 돌던 일반 프로그램의 전깃길이 물리적으로 차단되는 순간입니다.
3
상태 래치(State Latch): 회로가 Reset되기 직전, 현재 플립플롭(레지스터)들의 출력값들을 RAM의 특정 구역으로 순식간에 병렬 전송(Parallel Transfer)하여 보존합니다.
4
강제 시퀀스 전환: CPU는 모드 비트를 지휘자 모드로 전환하고, 미리 약속된 OS의 시작 주소로 실행 위치를 강제 점프시킵니다.
3. OS 코딩: "레지스터에 직접 전기를 때려 넣는 작업"
운영체제의 코딩은 우리가 흔히 아는 파이썬이나 자바와는 차원이 다릅니다. 제어 엔지니어의 시각에서 보면 이것은 코딩이라기보다 배선 작업에 가깝습니다.
엔지니어의 직관:
ISA는 하드웨어와 소프트웨어의 '공통 배선 규격서' 하드웨어 업체(Intel, ARM 등)와 소프트웨어 제작자는 ISA(Instruction Set Architecture)라는 약속된 규격집을 공유합니다. OS 제작자는 이 규격집을 보고 특정 레지스터 비트에 어떤 전압 신호를 줄지 결정합니다.
결국 PLC에서 래더 로직(Ladder Logic)이 내부적으로 CPU의 특정 메모리 비트를 직접 건드리는 것처럼, OS 코딩도 ISA 규격에 맞춰 CPU 내부의 레지스터(Register)라는 임시 저장소의 비트에 직접 전기를 때려 넣어 SET/RESET 하는 물리적 작업입니다.
ISA는 하드웨어와 소프트웨어의 '공통 배선 규격서' 하드웨어 업체(Intel, ARM 등)와 소프트웨어 제작자는 ISA(Instruction Set Architecture)라는 약속된 규격집을 공유합니다. OS 제작자는 이 규격집을 보고 특정 레지스터 비트에 어떤 전압 신호를 줄지 결정합니다.
결국 PLC에서 래더 로직(Ladder Logic)이 내부적으로 CPU의 특정 메모리 비트를 직접 건드리는 것처럼, OS 코딩도 ISA 규격에 맞춰 CPU 내부의 레지스터(Register)라는 임시 저장소의 비트에 직접 전기를 때려 넣어 SET/RESET 하는 물리적 작업입니다.
저급 언어(Assembly)의 실체
- 물리적 명령: 파이썬이 "창문을 열어라"라는 추상적 명령이라면, OS의 어셈블리어는 "PLC 특정 출력 접점(Y0)에 24V를 인가해라"라는 물리적 명령입니다.
- 명령어 해독기(Decoder)와의 소통: CPU 내부에는 특정 비트 조합이 들어오면 특정 수문을 여는 '물리적 디코더'가 깎여 있습니다. OS 제작자는 ISA 규격집을 보고 "A 수문을 열려면 0101 신호를 보내야 한다"는 것을 확인하여, 디코더에 직접 전압 신호를 보냅니다.
- 속도의 생명: 인터럽트 신호가 들어오자마자 0.00000001초 만에 회로를 차단해야 하므로, OS는 번역이 필요 없는 기계어 직통 신호로 짜여야만 합니다.
4. 현대 OS의 타협: C언어의 등장
현대의 OS는 100% 기계어로만 짜여 있지는 않습니다. 효율적인 관리를 위해 두 가지 언어를 혼용합니다.
- 어셈블리어: 부팅 순간이나 인터럽트 처리처럼 가장 예민한 물리적 제어에 사용되는 진정한 저급 언어입니다.
- C언어: 하드웨어를 직접 건드릴 수 있으면서도 인간이 읽기 편하게 만든 언어입니다. 현대 OS의 90% 이상을 담당합니다.
5. 결론: 가장 정교한 자동 제어 시퀀스
운영체제는 단순한 프로그램이 아닙니다. 인간이 일일이 전선을 갈아 끼우던 노고를 하드웨어 발진 회로와 B접점 차단 논리로 자동화한 결정체입니다.
로직은 눈에 보이지 않지만, 전깃길은 분명히 존재합니다. 이제 이 물리적 신호들을 생성해내는 번역가(Compiler)의 세계로 넘어가 보겠습니다.
댓글
댓글 쓰기