2026/01 3

비동기성과 동시성, 병렬성(Asynchrony & Concurrency & Parallelism)

비동기성과 동시성, 병렬성(Asynchrony & Concurrency & Parallelism)서론더보기 센서응답이나 I/O를 다루는 경우, 코드 한 줄에 불과한데 흐름을 오래 점유하는 상황은 한 번쯤 겪어봤을 법하다. 이러한 시스템 응답성 문제를 해결하기 위한 과정에서 병렬컴퓨팅, 비동기성, 동시성, 병렬성 등 외관상 유사한 기술 용어의 구분이 필요함을 느껴 이 글을 작성한다.비동기성/동시성/병렬성에 대해 각각 알아보고, 유사 개념간 비교를 거치며 마무리한다.비동기성, 동시성, 병렬성동기성(Synchrony)과 비동기성(Asynchrony)더보기 동기성은 A작업의 끝과 B작업의 시작을 동기화하는 것, 비동기성은 이 둘을 분리하는 것이다. A, B, C작업을 요청하는 상황을 떠올려보자. B작업의 착수가..

프로세스와 스레드(Process & Thread)

프로세스와 스레드(Process & Thread)프로세스(Process)더보기 실행 중인 프로그램의 인스턴스로, 운영체제가 자원 할당과 실행을 관리하는 단위이다. 각 프로세스는 독립된 가상 주소 공간(코드, 데이터, 힙, 스택)을 가지며, 다른 프로세스의 메모리에 직접 접근할 수 없다. 단, 같은 실행파일에서 생성된 여러 프로세스는 코드 세그먼트를 공유할 수 있다. 멀티프로세싱(Multi Processing)더보기전통적으로 프로세서(Processor)는 짙은 하드웨어적 성격을 지니고 사용됐다는 것을 알아야 한다. 프로세서는 중앙처리장치(Central Processoing Unit)를 짧게 이르는 말이었다. 멀티프로세서는 하나의 CPU캐시를 공유하도록 설계된 다수의 물리적 CPU를 구비한 하드웨어 시스템을..

프로세스 메모리 레이아웃(Process Memory Layout)

프로세스 메모리 레이아웃(Process Memory Layout)서론더보기탄탄한 개발을 위해서는 메모리에 대해 알아야 한다. 단순히 어떻게 동작하는지 이해하는 지적 유희의 문제가 아니다. 오류를 처리하고 기능을 구현하는 과정에서 메모리에 대한 이해 없이는 난황을 겪기 쉽기 때문이다. 그러므로 이 글에서는 프로세스 메모리 레이아웃에 대해 알아본다.우선 프로세스 메모리 레이아웃이 무엇인지 알아본다. 이후에는 네티이브/와 VM의 구체적인 메모리 레이아웃을 살펴본다.프로세스 메모리 레이아웃 프로세스의 가상주소공간을 논리적으로 구획하는 구조를 의미한다.더보기 프로세스의 가상주소공간이라는 말을 붙이는 이유를 알기 위해 우선 운영체제를 짚고 넘어갈 필요가 있다. 운영체제의 본질은 하드웨어자원의 할당이다. 운영체제 ..