
RTOS(Real-Time Operating System)는 일반적인 운영체제(Windows, macOS 등)와 달리, 특정 작업이 정해진 시간 내에 완료됨을 보장(Determinism)하는 데 최적화된 시스템입니다.일반 OS는 여러 프로그램을 최대한 공평하고 빠르게

Real Time system마감 기한(Deadline)을 단 한 번이라도 어기면 시스템 전체가 실패(Failure)하거나 치명적인 재앙이 발생하는 시스템입니다.특징: 지연 시간(Latency)에 대한 관용이 전혀 없습니다.결과: 기한을 넘긴 데이터는 아무리 정확해도

복잡한 시스템에서 서로 느슨하게 연결된(loosely coupled) 여러 작업(Foreground tasks)을 효율적으로 처리하기 위해서는 어떻게 해야 할까요?해결책: 스레드 스케줄러(Thread Scheduler)가 포함된 실시간 운영체제(RTOS)를 사용하는 것
우리가 흔히 쓰는 변수 포인터(int \*ptr)는 데이터가 저장된 주소를 가리킵니다. 마찬가지로 함수 포인터는 함수 코드가 저장된 메모리 주소를 가리키는 변수입니다. 함수 포인터를 사용하면 함수를 변수처럼 주고받거나, 실행 중에 어떤 함수를 호출할지 결정할 수 있습니

NVIC(Nested Vectored Interrupt Controller) is a ARM Cortex-M processorARM Cortex-M 프로세서에서 인터럽트는 시스템의 흐름을 바꾸는 예외(Exception)의 일종입니다.리셋(Reset): 시스템 전원이 켜
멀티스레딩 환경에서 가장 중요한 문제 중 하나는 여러 스레드가 하나의 자원(전역 변수, I/O 포트 등)을 공유할 때 발생하는 충돌입니다. 이를 방지하기 위한 보호 메커니즘이 필수적입니다.임계 영역 (Critical Section):정의: 공유 자원에 접근하는 코드의

현재 열심히 실행 중이던 스레드(예: Task1)를 일시 정지하고, 현재 상태를 스택에 안전하게 백업하는 과정입니다.하드웨어의 자동 백업 (1번): SysTick 타이머 인터럽트가 터지는 순간, CPU 하드웨어는 우리가 코드를 짜지 않아도 아주 똑똑하게 핵심 레지스터

시간 낭비의 주범: 앞선 챕터에서 세마포어를 구현할 때 사용한 스핀락(while(s == 0))은 자원을 얻지 못하면 자신의 할당 시간(Time Slice, 예: 1ms)이 끝날 때까지 CPU를 붙잡고 아무 의미 없는 대기만 하며 시간을 낭비했습니다.해결책 (협력과 블

이전 Lab 2에서는 세마포어 값이 무조건 0 아니면 양수였습니다. 하지만 진짜 블로킹 세마포어에서는 값이 음수(-)로 떨어질 수 있으며, 이 음수 값이 대기자의 수를 의미합니다.Wait 함수 논리s = s - 1을 먼저 실행합니다.만약 s < 0이 되었다면? 자

두 스레드(Thread 1, Thread 2)가 각자 일을 하다가 특정 지점에서 만나 동시에 다음 작업을 시작(Rendezvous, 랑데부)하도록 맞추는 기술입니다.원리: 두 개의 세마포어(S1, S2)를 모두 0으로 초기화하여 사용합니다. 먼저 도착한 스레드는 상대방
가장 기본입니다. 어셈블리의 단순한 상수 정의(EQU)를 C 언어에서는 "이 주소는 메모리가 아니라 하드웨어 핀이니까 맘대로 최적화하지 말고 직접 건드려!"라는 뜻의 volatile 포인터로 캐스팅해야 합니다.Assembly:C Language:임베디드에서 가장 많이

그림을 보면 지시봉(PutPt와 GetPt)이 배열의 맨 아래(노란색 칸)까지 내려갔다가, 다음 번에는 배열의 맨 위(첫 번째 칸)로 휙! 하고 꺾여서 올라가는 화살표가 보이시죠?이것이 바로 메모리 낭비와 폭발을 막아주는 환형 큐의 핵심입니다.수정 사항 1 & 2: P

CPU가 쉴 틈 없이 while(1)을 도는 스핀락(Spinlock)의 낭비를 막기 위해, 스레드 스스로 "나 1초 동안 기절할 테니까, 내 차례 건너뛰고 다른 애들 먼저 실행시켜 줘!"라고 운영체제에 양보하는 우아한 기술입니다.교수님이 슬라이드 하단에 적어둔 글은 "

핵심 공식: L = λ × W가장 먼저 기억해야 할 절대 공식입니다. 세 가지 변수의 관계를 나타냅니다.L (Average number of items): 큐잉 시스템(Queuing system) 안에 머물고 있는 평균 항목의 수 (예: 줄 서 있는 사람 수, 대기 중