페이징과 세그먼테이션, 그리고 페이지 교체 알고리즘
왜 메모리 관리 기법이 필요한가 다중 프로그래밍 시스템에서는 여러 프로세스를 동시에 주기억장치(Main Memory)에 올려야 한다. 그런데 메모리는 한정되어 있고, 프로세스의 크기는 제각각이기 때문에 어떻게 나눠서 할당할 것인가에 대한 전략이 필요하다. 이 전략에 따라 메모리 관리 기법은 크게 두 갈래로 나뉜다. 연속 메모리 관리: 프로그램...
왜 메모리 관리 기법이 필요한가 다중 프로그래밍 시스템에서는 여러 프로세스를 동시에 주기억장치(Main Memory)에 올려야 한다. 그런데 메모리는 한정되어 있고, 프로세스의 크기는 제각각이기 때문에 어떻게 나눠서 할당할 것인가에 대한 전략이 필요하다. 이 전략에 따라 메모리 관리 기법은 크게 두 갈래로 나뉜다. 연속 메모리 관리: 프로그램...
코딩 테스트에서 가장 자주 등장하는 해시, 스택/큐, 힙, 정렬, 완전 탐색, 그리디, DP, DFS/BFS, 이분 탐색, 그래프의 개념과 풀이 접근법을 정리한 포스트입니다.
프로세스 메모리 구조 (Code, Data, Heap, Stack) 📌 개념 프로세스가 실행될 때 운영체제는 RAM을 효율적으로 사용하기 위해 메모리 공간을 역할별로 구분하여 관리한다. 이를 프로세스 메모리 구조(Process Memory Layout) 라고 하며, 크게 Code, Data, Heap, Stack 4가지 영역으로 나뉜다. ...
데드락 (DeadLock, 교착 상태) 📌 개념 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해 다음 처리를 하지 못하고, 무한히 대기하게 되는 상태 마치 외나무 다리 양 끝에서 서로 비켜주길 기다리는 것과 같다. 시스템 내 한정된 자원을 여러 프로세스가 동시에 사용하려 할 때 발생한다. 🔁 데드락 발생 예시 ...
경쟁 상태 (Race Condition) 📌 개념 공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 실행 순서에 따라 결과값이 달라질 수 있는 상태 동시 접근 시 자료의 일관성(Consistency)이 깨질 수 있으며, 이는 예측 불가능한 버그로 이어진다. 간단한 예시: 전역 변수 count = 0 Thread A: count =...
CPU와 메모리의 속도 차이를 해결하는 캐시 메모리의 개념, 참조 지역성 원리, L1/L2/L3 계층 구조를 정리한 포스트입니다.
CPU의 구성 요소(제어장치·ALU·레지스터·내부버스), 명령어 사이클, 데이터 계층 구조를 정리한 포스트입니다.
ARM(RISC) 설계 철학과 비즈니스 모델, x86(CISC)과의 비교, big.LITTLE·ARMv9 심화 트렌드, 백엔드 인프라 관점의 변화까지 한 번에 정리한 포스트입니다.
커널·스레드 심화 개념과 선점/비선점 스케줄링 전략을 정리하고, 현대 백엔드 서버가 선점 스케줄링을 표준으로 채택한 이유를 살펴봅니다.
CPU 스케줄링의 개념, 선점/비선점 방식, 주요 알고리즘(FCFS·SJF·HRN·Round Robin·SRTF·Multilevel Queue 등)과 추가 심화 내용을 정리한 포스트입니다.