728x90

2024/11 15

OSAL(Operating System Abstraction Layer)란?

코드를 분석하며 OSAL이라는 것이 등장해서 궁금해졌다. 한번 알아보자. OSAL은 이름 그대로 운영 체제를 추성화한 계층이다. 이 계층은 소프트웨어가 특정 운영 체제에 종속되지 않고도 다양한 플랫폼에서 동작할 수 있도록 도와준다. 운영 체제에 대한 특성을 통합하고 공통된 인터페이스를 제공하기 때문에, 소포트웨어 개발자들이 하나의 코드로 여러 운영 체제에서 호환되도록 프로그램을 작성할 수 있다. OSAL의 작동 원리OSAL은 다양한 운영 체제의 기능들을 하나의 공통된 API로 추상화한다. 예를 들어, 멀티태스킹, 메모리 관리, 타이머, 동기화 같은 운영 체제의 핵심 기능들이 OSAL을 통해 일관된 방식으로 제공된다. 개발자는 OS에 따라 각각 다른 API를 사용할 필요 없이, OSAL에서 제공하는 공통 ..

CS 2024.11.05

[C언어] NULL과 null

NULL, NULL pointer, NULL character 등을 보며 어떤 블로그에는 null, 어떤 블로그에는 NULL으로 나와 있어서 NULL와 null에 대한 의문이 생겼다. NULL와 null에 대해서 알아보자. NULL표준에 정의된 매크로 상수로, 포인터가 유효한 주소를 가리키지 않는다는 것을 나타내는 특별한 값이다. 보통 #define NULL ((void*) 0) 형태로 정의되며, 주로 포인터가 특정한 값을 가리키지 않을 때 사용된다. nullC언어에는 null이라는 키워드나 상수가 없다. null이라는 이름은 C언어에서 사용하려고 하면 컴파일 오류가 발생한다.하지만 개념적으로 "널"을 의미하며, 코드 내에서 직접 사용되는 것이 아니라 설명이나 문서에서 사용된다. 널 포인터(null po..

C언어 2024.11.04

[C언어] Call by Value, Call by Reference란?

Call by Value, Call by Reference는 함수 호출 방식의 두 가지 방법으로, 함수에 전달되는 매개변수가 원본 데이터에 영향을 미치는지 여부에 따라 구분된다. Call by Value ( 값에 의한 호출 )함수에 매개변수의 값을 복사하여 전달한다.함수 내부에서 매개변수의 값을 변경해도 원본 데이터에는 영향을 주지 않는다.C언어에서는 기본적으로 Call by Value 방식이 사용된다.#include void add_ten(int num) { num += 10; printf("Inside function: %d\n", num); // 20}int main() { int x = 10; add_ten(x); printf("After function call: %..

C언어 2024.11.04

프리패칭(Prefetching)이란?

프리패칭이란, CPU가 메모리에서 데이터를 필요로 하기 전에 미리 데이터를 가져와 캐시에 저장하는 기술이다. 이를 통해 데이터를 실제로 필요로 할 때 메모리 접근 지연을 피하고, CPU가 기다리지 않고 빠르게 작업을 이어갈 수 있게 된다. 즉, 프리패칭은 데이터를 사전에 준비하여 CPU 대기 시간을 줄이는 기법이다. 프리패칭은 보통 순차적인 메모리 접근 패턴이 있을 때 효과적이다.센서 데이터 처리그래픽 렌더링통신 패킷 처리프리패칭을 사용하면 CPU 대기 시간을 감소시켜 전반적인 성능을 향상시킬 수 있다. 그러나 잘못된 예측으로 불필요한 데이터를 미리 가져오게 되면, 오히려 캐시 오염이 발생하여 성능이 저하될 수 있다. 임베디드 시스템에서는 자원이 한정적이기 때문에, 프리패칭의 예측 정확성을 높이는 것이 ..

CS 2024.11.04

부동소수점에 대해서

부동소수점은 컴퓨터에서 실수를 표현하고 연산하기 위해 사용하는 방법이다. 정수는 소수점 없이 정확히 표현할 수 있지만, 실수는 소수점 아래 많은 자릿수를 가지며 매우 크거나 매우 작은 값을 포함할 수 있다.  C언어에서 부동소수점은 주로 float와 double형으로 표현된다. float형은 단정도 부동소수점 방식으로, 32비트를 사용해 숫자를 저장한다. 이는 소수점 이하 약 7자리 정도를 표현 할 수 있으며, 크기가 작은 실수를 다룰 때 유용하다. 부동소수점에는 한 가지 중요한 특징이 있다. 그것은 숫자를 근사값으로 표현한다는 것이다. 컴퓨터는 유한한 메모리를 사용하기 때문에 실수의 모든 자릿수를 정확히 표현할 수 없다. 이 때문에 오차가 발생할 수 있다. 부동소수점의 구조는 세 가지로 이루어져 있다...

CS 2024.11.01
728x90