목록IT/CS (14)
And Brain said,

ABI (Application Binary Interface)는 컴퓨터 소프트웨어 컴포넌트가 다른 컴포넌트와 상호 작용하는 박싱을 규정하는 인터페이스로, ABI는 소프트웨어의 실행 파일인 이진 파일과 운영체제 또는 하드웨어 간의 상호 작용을 조정하는 규칙들의 집합입니다. ABI는 프로그래밍 언어, 컴파일러, 라이브러리, 운영체제, 프로세서 아키텍처 등과 관련이 있는데, ABI를 통해 서로 다른 소프트웨어 구성 요소가 상호 작용하고 통신할 수 있습니다. 예를 들어, 함수 호출 규약, 매개변수 전달 방식, 레지스터 및 스택 사용방법, 데이터 구조 정렬 등 다양한 측면을 다룹니다. ABI는 이식성과 상호 운용성을 보장하는데 중요한 역할을 합니다. 각 운영체제나 하드웨어 플랫폼은 고유한 ABI를 갖고 있으며, ..

https://theworldaswillandidea.tistory.com/151 Garbage Collector, 프로그래밍 시스템의 스캐빈저오늘은 프로그래머의 뒤처리를 담당해 주는 가비지 컬렉터(Garbage Collector, GC)에 대해서 알아보도록 합시다. 메모리 관리 방법 중 하나인 가비지 컬렉션(Garbage Collection)은 프로그래머가 동적으로 theworldaswillandidea.tistory.com 가비지 컬렉터(Gabage Collector)에 관한 주요 내용은 위 포스팅으로, Stop-the-world (이하, STW)는 가비지 컬렉터가 자신을 제외한 모든 쓰레드를 중단시키는 것을 말합니다. 즉, 가비지 컬렉터는 가비지 컬렉션을 제외한 모든 애플리케이션을 멈춥니다. 이는 ..

오늘은 프로그래머의 뒤처리를 담당해 주는 가비지 컬렉터(Garbage Collector, GC)에 대해서 알아보도록 합시다. 메모리 관리 방법 중 하나인 가비지 컬렉션(Garbage Collection)은 프로그래머가 동적으로 할당한 메모리 영역 중 사용되지 않는 영역을 자동으로 식별하고 해제하는 기능입니다. 이 개념은 1959년 존 매카시(John McCarthy)가 LISP 언어의 메모리 관리를 위해 처음 도입했다고 알려져 있습니다. 과거 프로그래밍 언어들은 동적 메모리 할당 기능이 전혀 없거나, C 계열 언어와 같이 프로그래머가 직접 메모리를 할당한 후 수동으로 해제해야 하는 방식이었습니다. 프로그래머의 메모리 관리가 완벽하지 않을 수 있기 때문에 메모리 누수, 이미 해제된 메모리의 재사용, 해제된..

오늘은 프로그램이 운영체제로부터 할당받는 메모리 영역에 대해서 알아보도록 하자. 엄밀히 따지면 코드 영역과 데이터 영역 또한 메모리 공간에 할당되지만, 스택(Stack) 영역과 힙(Heap) 영역에 대해서만 간단히 알아볼 것이다. 스택과 힙 둘다 여러분의 코드상에서 런타임에 사용할 수 있는 메모리지만, 이들은 각기 다른 방식으로 구조화 되어있다. 스택(Stack) 스택은 값을 받아들인 순서대로 값을 저장하고 반대 방향으로 값을 지운다. 이것을 lifo(last in, first out)이라고 한다. 쌓여있는 접시를 생각해보면 된다. 여러분이 접시를 더 추가하려면 접시더미의 꼭대기에 쌓아올리고, 여러분이 접시가 필요해지면 꼭대기에서부터 한장 꺼낼 것이다. 중간이나 밑에서부터 접시를 추가하거나 제거하려고 시..

운영체제에서 커널은 하드웨어와 소프트웨어 간의 인터페이스 역할. 이는 운영체제와 애플리케이션 프로그램 등이 하드웨어와 상호작용할 수 있도록 중재하는 역할을 한다. 커널은 운영체제의 핵심적인 부분으로, 시스템 자원 관리, 입출력 관리, 프로세스 관리 등 운영체제의 기능을 수행하며, 이러한 기능들은 하드웨어와 상호작용하여 동작한다. 커널은 운영체제의 성능과 안정성에 큰 영향을 미치기에, 지속적으로 업데이트되고 보안 취약점이 발견될 경우 즉시 패치가 이루어짐. 또한 커널을 최적화하여 시스템의 성능을 향상시키는 것이 중요. 커널의 종류와 특징은 운영체제에 따라 다르다. 예를 들어, 리눅스 운영체제에서 사용되는 커널은 유닉스와는 다르게 개발되었으며, 윈도우 운영체제에서 사용되는 커널은 리눅스와는 또 다른 특징을 ..