동시성(Concurrency) 동시성(Concurrency)은 Task들이 빠르게 전환하면서 실행되어 동시에 실행되는 것처럼 보이는 것입니다. 싱글 코어에서도 여러 작업은 동시적(Concurrent)으로 실행되며 Task간의 Context Switch가 발생하면서 여러 작업들을 동시에 실행하는 것처럼 보이게합니다. 하지만 동시성은 싱글 코어에서만 실행되는 것을 의미하지 않고 실제로는 멀티 코어에서 실행되는 상황이 더 많습니다. 즉, 동시성은 독립적인 작업을 작은 단위의 연산으로 나누어 시간 분할 형태로 연산하고 논리적으로 동시에 실행하는 것처럼 보이게하여 유휴 시간(Idle Time)을 최소화 하는 구조나 개념을 의미합니다. 📘 유휴시간이란? 컴퓨터가 작동 가능한데도 작업을 하지 않는 시간을 의미합니다...
마샬링과 직렬화 차이 개발자들과 대화에서 마샬링과 직렬화는 어떤 차이가 있는지에 대한 주제가 논의로 발생해서 이에 대해서 궁금증이 생겨 이 두 개의 차이점을 알아보고 정리해보려고합니다. 마샬링이란? 위키피디아를 번역한 내용입니다. 미국식 철자는 Marshaling CS에서 마샬링(Marshalling)은 파일로 저장하거나 네트워크 전송하기 위해서 객체의 데이터 포맷을 적합한 형태로 변환하여 메모리에 표현하는 과정입니다. 일반적으로 컴퓨터 프로그램에서 서로 다른 파트끼리 데이터를 전달하거나 하나의 프로그램에서 다른 프로그램으로 데이터를 전달할 때 사용됩니다. 마샬링(Marshalling)은 직렬화(Serialization)와 유사하거나 동의어일 수 있습니다. 마샬링은 클라이언트에서 서버에 어떠한 객체를 전..
페이징 교체 알고리즘 이란? 페이지 교체 알고리즘(Paging Replacement Algorithm)은 페이징 기법으로 메모리를 관리하는 운영체제에서 페이지 부재(Page Fault)가 발생하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법이다. 페이지 부재(Page Fault)는 실행중인 프로그램이 가상 메모리에 맵핑되었지만 실제 물리적 메모리에 로드되지 않은 메모리 페이지에 접근할 때 오류가 발생합니다. 물리적 메모리는 가상 메모리보다 작기 때문에 이러한 오류가 발생할 가능성이 높습니다. 이때 기존 페이지를 희생(Victim Page)하여 새로운 페이지를 교체하는 것이 페이징 교체 알고리즘입니다. 📘 Info 프레임: 물리 메모리를 일정 크기로 나눈 블록 ..