정보기술(84)
-
ARM Core - 0. ARM을 배우기 전에 (3. 개발 환경 설정 및 학습 리소스)
3. 개발 환경 설정 및 학습 리소스ARM 기반 개발을 위해서는 크로스 컴파일러, 개발 도구, 디버깅 환경을 설정하는 것이 필수적이다. 또한 최신 기술을 익히고 문제를 해결하기 위해 공식 학습 리소스 및 개발자 커뮤니티를 적극적으로 활용하는 것이 중요하다.1. 크로스 컴파일러 및 개발 도구 (GCC ARM Toolchain, LLVM)1) 크로스 컴파일러란?크로스 컴파일러(Cross Compiler)는 개발 환경과 실행 환경이 다른 경우에 사용되는 컴파일러이다. 예를 들어, x86 기반 PC에서 ARM 코드를 작성하고 실행 파일을 생성하려면 크로스 컴파일러가 필요하다.2) GCC ARM Toolchain (GNU Toolchain for ARM)GCC(GNU Compiler Collection)는 가장 ..
2025.03.07 -
ARM Core - 0. ARM을 배우기 전에 (2. 기본적인 컴퓨터 아키텍처 개념)
2. 기본적인 컴퓨터 아키텍처 개념컴퓨터 아키텍처는 CPU(중앙처리장치)와 메모리 시스템이 어떻게 구성되고 동작하는지를 설명하는 중요한 개념이다. ARM 프로세서를 학습하기 위해서는 CPU의 동작 방식과 메모리 구조를 먼저 이해하는 것이 필수적이다.1. CPU의 동작 방식 (명령어 실행, 레지스터, 파이프라인)CPU는 프로그램을 실행하기 위해 명령어를 처리하는 핵심 장치이다. CPU의 동작 과정은 명령어를 가져오고(Fetch), 해석하고(Decode), 실행(Execute)하는 기본적인 흐름을 따른다.1) 명령어 실행 과정 (Fetch-Decode-Execute-Cycle)CPU는 프로그램을 실행하기 위해 다음 단계를 반복한다.Fetch (명령어 가져오기)메모리에서 명령어(Instruction)를 읽어와..
2025.03.07 -
ARM Core - 0. ARM을 배우기 전에 (1. ARM을 배우는 이유)
ARM을 처음 접하는 사람이 기본 개념과 개발 환경을 쉽게 이해할 수 있도록 한다. 1. ARM을 배우는 이유ARM 프로세서는 스마트폰, IoT, 자동차, 서버 등 다양한 분야에서 널리 사용되며, 저전력 설계, 높은 성능 확장성, 유연한 라이선스 모델 덕분에 지속적으로 발전하고 있다. 최신 기술 동향을 반영하여 ARM의 주요 특징과 활용 사례를 정리하였다.1. ARM 프로세서의 특징과 장점1) 저전력 설계ARM의 가장 큰 장점 중 하나는 낮은 전력 소비이다. ARM은 RISC(Reduced Instruction Set Computing) 기반으로 단순한 명령어 구조를 사용하여 고효율, 저전력 연산이 가능하다.스마트폰, 태블릿, 웨어러블 기기에서 ARM이 널리 사용되는 이유는 배터리 지속시간을 극대화할 수..
2025.03.07 -
시스템 콜 (System Call) - 요약
1. 시스템 콜이란?시스템 콜(System Call)은 프로그램이 운영체제의 기능을 요청하는 메커니즘입니다.일반적인 애플리케이션은 사용자 모드(User Mode)에서 실행되며, 운영체제의 핵심 기능(파일 시스템, 프로세스 관리, 메모리 관리 등)을 사용하려면 커널 모드(Kernel Mode)로 전환해야 합니다.이때 시스템 콜을 통해 운영체제에게 요청을 전달합니다.✅ 사용자 프로그램 → 시스템 콜 호출 → 커널 모드 전환 → 요청 처리 → 사용자 모드 복귀2. 시스템 콜의 종류와 예제📌 주요 시스템 콜 종류1️⃣ 파일 조작 (File Management)open() : 파일 열기read() : 파일 읽기write() : 파일 쓰기close() : 파일 닫기2️⃣ 프로세스 관리 (Process Manage..
2025.03.05 -
운영체제 락 개념과 동기화 기법 (마무리: 락(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