정보처리기사43 OS - 메모리 관리와 페이지 교체 메모리 관리 (페이지, LRU, 가상메모리)운영체제의 가장 까다로운 책임 중 하나가 한정된 물리 메모리(RAM)를 여러 프로세스가 안전하고 효율적으로 나눠 쓰도록 관리하는 일이다. 메모리가 부족하면 프로그램이 멈추고, 분배가 불공평하면 한 프로세스가 시스템 전체를 마비시킬 수 있으며, 단편화가 누적되면 빈 공간이 충분한데도 큰 메모리를 할당할 수 없는 사태가 벌어진다. 이 모든 문제를 풀어 주는 핵심 메커니즘이 가상 메모리(Virtual Memory)와 페이징(Paging)이며, 그 위에 페이지 교체 알고리즘이 얹어진다. 본 글은 메모리 계층·가상 메모리·페이지 교체 알고리즘을 정보처리기사 시험 범위와 실무 입문 영역에 모두 닿도록 세심하게 정리한다(출처: 위키백과 — Virtual memory). 제가.. 2026. 5. 18. OS - 동기화 세마포어 뮤텍스 동기화 (세마포어, 뮤텍스, 데드락)여러 스레드가 같은 메모리를 공유한다는 멀티스레드의 강점은 그대로 동기화 문제의 출발점이 된다. 두 스레드가 같은 변수에 동시에 쓰면 결과가 실행 순서에 따라 달라지는 경쟁 조건(race condition)이 발생하고, 그 결과는 매번 다른 값으로 떨어진다. 이 문제를 푸는 도구가 동기화 메커니즘이며, 그 중에서도 가장 자주 등장하는 세 가지가 뮤텍스(Mutex)·세마포어(Semaphore)·모니터(Monitor)이다. 본 글은 임계 구역의 정의부터 세 동기화 도구의 차이, 그리고 잘못 쓰면 발생하는 데드락(Deadlock)까지 세심하게 정리한다(출처: 위키백과 — Mutual exclusion). 제가 학교 OS 수업에서 처음 같은 카운터를 두 스레드로 1만 번씩 증.. 2026. 5. 18. OS - 프로세스와 스레드 프로세스 스레드 (PCB, 상태, 컨텍스트)운영체제를 배우면서 가장 먼저 명확히 구분해야 할 두 개념이 프로세스(Process)와 스레드(Thread)이다. 두 단어가 일상 대화에서도 혼용되어 쓰이지만, 실제로는 메모리 격리·생성 비용·통신 방식·확장 전략이 모두 다른 별개의 실행 단위이다. 이 차이를 정확히 이해해야 멀티프로세스 vs 멀티스레드 설계, 컨테이너의 동작 원리, 동시성 프로그래밍의 트레이드오프까지 자연스럽게 손에 잡힌다. 본 글은 프로세스와 스레드의 정의·구성·상태·컨텍스트 스위칭을 세심하게 정리한다(출처: 위키백과 — Process (computing)). 제가 학교 OS 수업에서 가장 인상 깊었던 실습이 ps -ef와 top 명령으로 시스템에 떠 있는 수백 개의 프로세스를 직접 본 일이.. 2026. 5. 18. 자료구조 - 해시 블룸필터 심화 해시 심화 (블룸필터, 일관성해싱)자료구조 #6에서 해시 테이블의 기본을 다뤘다면, 본 글은 그 응용으로 한 단계 더 들어간다. 거대한 데이터 셋에서 "존재 여부"를 메모리 단 몇 비트로 검사하는 블룸 필터(Bloom Filter), 분산 캐시·분산 DB에서 노드를 추가·제거할 때 키 재배치를 최소화하는 일관성 해싱(Consistent Hashing), 그리고 암호학적 해시 함수의 핵심 성질까지 — 해시가 시스템 설계 전반에서 어떻게 변형되어 쓰이는지를 세심하게 정리한다(출처: 위키백과 — Bloom filter). 제가 학교 캡스톤에서 사용자가 100만 명 가까이 늘었을 때 "이 이메일이 가입자 목록에 있는지" 검사를 매번 DB 쿼리로 하다가 화면 응답이 5초 가까이 늦어진 사고를 겪고 나서, 블룸 필.. 2026. 5. 17. 자료구조 - 정렬 알고리즘 정렬 알고리즘 (퀵, 병합, 안정)정렬은 컴퓨터 과학에서 가장 오래 연구된 문제이자 실무에서 가장 자주 마주치는 작업이다. 데이터를 보여주기 위해, 검색을 빠르게 하기 위해, 중복을 제거하기 위해, 통계를 계산하기 위해 — 어느 방향으로 가도 결국 정렬이 한 번 끼어든다. 본 글은 입문자가 반드시 익혀야 할 여덟 가지 핵심 정렬 알고리즘을 시간복잡도·안정성·실전 채택 기준으로 비교하면서 세심하게 정리한다(출처: CLRS — Introduction to Algorithms). 제가 학교 알고리즘 수업에서 같은 100만 개 데이터를 버블 정렬과 퀵 정렬로 비교 측정해 본 후 시간 차이가 1000배가 넘는 모습을 직접 본 후로는 "정렬 알고리즘 선택 한 줄이 시스템의 응답 시간을 결정한다"는 사실을 손끝으로 .. 2026. 5. 17. 자료구조 - 해시 자료구조 해시 (충돌, 체이닝, 자료구조)배열·연결리스트·트리·힙은 모두 데이터의 순서나 구조를 메모리에 어떻게 배치할지에 답을 준 자료구조였다. 해시 테이블은 완전히 다른 질문에 답한다. "키만 알면 그 값을 거의 즉시 찾을 수 있는 자료구조가 있을까?"라는 질문이며, 그 답이 평균 O(1) 시간의 조회·삽입·삭제를 보장하는 해시 테이블(Hash Table)이다. 파이썬 dict, 자바 HashMap, JavaScript Object, Redis 같은 거의 모든 현대 키-값 저장소의 토대가 해시 테이블이며, 그 위에서 데이터베이스 인덱스·캐시·세션 저장소·중복 제거 같은 일상적인 기능들이 동작한다. 본 글은 해시 함수·충돌 해결·시간복잡도와 실전 응용까지 세심하게 정리한다(출처: 위키백과 — Hash Table.. 2026. 5. 16. 이전 1 2 3 4 5 6 7 8 다음