분류 전체보기(638)
-
U-Boot 포팅 (1. U-Boot 개요 및 기본 개념 / U-Boot란?)
U-Boot란?U-Boot(Unified Bootloader)는 임베디드 시스템에서 널리 사용되는 오픈소스 부트로더입니다.ARM, RISC-V, PowerPC, MIPS 등의 임베디드 프로세서에서 작동하며, 운영체제(예: 리눅스, RTOS 등)를 로드하고 실행하는 역할을 수행합니다.임베디드 시스템에서 하드웨어 초기화, 부팅 옵션 설정, 네트워크 부팅, 환경 변수 관리 등 다양한 기능을 제공하여, 사용자가 원하는 방식으로 시스템을 부팅할 수 있도록 지원합니다.1. 부트로더의 개념 및 역할부트로더란?부트로더(Bootloader)는 전원이 켜졌을 때 CPU가 실행하는 첫 번째 소프트웨어입니다.운영체제(OS)를 실행하기 전에 하드웨어를 초기화하고, 커널을 로드하는 역할을 합니다.부트 과정 요약1️⃣ ROM 코드 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (마무리: 락(Lock)과 동기화 정리)
📌 마무리: 락(Lock)과 동기화 정리멀티스레딩 환경에서는 여러 개의 스레드가 동시에 실행되면서 공유 자원(Shared Resource) 에 접근하게 됩니다.이 과정에서 데이터 무결성(Data Integrity) 을 보장하고, 경쟁 상태(Race Condition) 를 방지하기 위해 락(Lock) 을 사용하여 동기화를 수행합니다.이번 학습에서는 뮤텍스(Mutex), 재진입 가능 락(RLock), 읽기-쓰기 락(RWLock), 스핀락(Spinlock), 세마포어(Semaphore) 등을 다루며,각 기법이 어떤 상황에서 적절한지, 어떤 문제점을 가질 수 있는지, 어떻게 해결해야 하는지 를 배우고 실습하였습니다.✔ 락을 활용하여 동기화를 이해하기🔹 락(Lock)이 필요한 이유멀티스레드 프로그래밍에서 여러..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (4. OS 내부 락과 문제 해결)
🔍 락의 문제점과 해결 방법 (데드락, 우선순위 역전)멀티스레딩 환경에서 락(Lock)을 사용할 때 데드락(Deadlock) 및 우선순위 역전(Priority Inversion) 같은 문제가 발생할 수 있습니다.이를 방지하고 해결하기 위한 운영체제(OS)에서 제공하는 기법들을 학습해보겠습니다.🎯 학습 목표락(Lock)의 주요 문제점:데드락(Deadlock): 여러 개의 스레드가 서로 Lock을 해제하기를 기다리며 무한 대기 상태에 빠지는 문제.우선순위 역전(Priority Inversion): 낮은 우선순위 스레드가 높은 우선순위 스레드보다 먼저 Lock을 획득하여 성능 저하를 유발하는 문제.해결 방법:데드락 해결 방법: 예방, 회피, 탐지 기법 학습.OS 커널 락(Kernel Lock) 학습: Li..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (Mutex, RLock, RWLock, 스핀락, 세마포어 비교 요약 정리)
🔍 Mutex, RLock, RWLock, 스핀락, 세마포어 비교 요약 정리운영체제(OS)에서 멀티스레딩 동기화 기법으로 사용되는 뮤텍스(Mutex), 재진입 가능 락(RLock), 읽기-쓰기 락(RWLock), 스핀락(Spinlock), 세마포어(Semaphore) 의 차이를 정리했습니다.1. 개념 요약 동기화 기법 개념 특징사용 예시Mutex (뮤텍스)하나의 스레드만 임계 영역 접근 가능다른 스레드는 Lock이 해제될 때까지 대기 (Blocking)단순한 공유 자원 보호RLock (재진입 가능 락)같은 스레드가 여러 번 Lock 가능Lock 획득 횟수만큼 Unlock 필요재귀 호출, OOP에서 동일 객체 내 여러 메서드 사용RWLock (읽기-쓰기 락)여러 개의 스레드가 동시에 읽기 가능, 쓰기는 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (3. 고급 락(Spinlock & Semaphore) / 스핀락(Spinlock)과 세마포어(Semaphore))
📖 스핀락(Spinlock)과 세마포어(Semaphore)운영체제에서 멀티스레딩(Multithreading) 환경에서는 공유 자원(Shared Resource)에 대한 동기화(Synchronization) 가 필수적입니다.스핀락(Spinlock) 과 세마포어(Semaphore) 는 동기화를 위한 중요한 기법으로, 각각의 목적과 사용 방식이 다릅니다.✅ 스핀락(Spinlock)🔹 스핀락이란?락(🔒)이 해제될 때까지 CPU가 계속 바쁜 대기(Busy-Waiting)하면서 반복적으로 확인하는 방식.pthread_spinlock_t을 사용하여 구현.빠른 락 해제가 예상되는 경우 뮤텍스(Mutex)보다 성능이 좋을 수 있음.멀티코어 CPU 환경에서 커널 락과 같은 저수준 동기화에서 자주 사용.🔹 스핀락의 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (2. 기본 락(Lock) / 2-3. 읽기-쓰기 락(Read-Write Lock, RWLock))
📖 2-3. 읽기-쓰기 락(Read-Write Lock, RWLock)읽기-쓰기 락(Read-Write Lock, RWLock)은 읽기 작업은 여러 개의 스레드가 동시에 수행할 수 있지만, 쓰기 작업은 오직 하나의 스레드만 수행할 수 있도록 제한하는 동기화 기법입니다.멀티스레딩 환경에서 읽기 작업이 많고, 쓰기 작업이 상대적으로 적은 경우 성능을 향상시키는 데 유용합니다.✅ 읽기-쓰기 락이란?🔹 기본 개념읽기(Read) 락: 여러 개의 스레드가 동시에 공유 자원을 읽을 수 있음.쓰기(Write) 락: 하나의 스레드만 공유 자원을 수정할 수 있으며, 쓰기 중에는 어떤 스레드도 접근할 수 없음.pthread_rwlock_t 를 사용하여 구현.🔹 읽기-쓰기 락의 필요성일반 Mutex를 사용하면 쓰기뿐만 ..
2025.02.26