<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Computer Science on Hojoon Kim</title><link>https://hojoon.me/categories/computer-science/</link><description>Recent content in Computer Science on Hojoon Kim</description><generator>Hugo -- 0.146.0</generator><language>en</language><lastBuildDate>Sun, 10 Dec 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://hojoon.me/categories/computer-science/index.xml" rel="self" type="application/rss+xml"/><item><title>[CS330] 10. FFS와 Crash Consistency</title><link>https://hojoon.me/posts/cs330/10-ffs-crash-consistency/</link><pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/10-ffs-crash-consistency/</guid><description>VSFS의 성능 문제를 해결하는 FFS(Fast File System), 그리고 시스템 크래시 시 파일 시스템 일관성을 보장하는 Journaling 기법을 다룹니다.</description></item><item><title>[CS330] 9. 저장장치와 파일 시스템</title><link>https://hojoon.me/posts/cs330/9-storage-file-system/</link><pubDate>Sat, 09 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/9-storage-file-system/</guid><description>HDD와 SSD의 동작 원리, I/O 스케줄링, 그리고 파일 시스템의 구조(Inode, 디렉토리, VSFS)를 정리합니다.</description></item><item><title>[CS330] 8. 동시성 버그와 교착 상태</title><link>https://hojoon.me/posts/cs330/8-concurrency-bugs-deadlock/</link><pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/8-concurrency-bugs-deadlock/</guid><description>Atomicity violation, Order violation 등 동시성 버그의 유형과 교착 상태(Deadlock)의 4가지 조건, 예방·회피·탐지 전략을 정리합니다.</description></item><item><title>[CS330] 7. 동기화 - Lock과 Condition Variable</title><link>https://hojoon.me/posts/cs330/7-locks-condition-variables/</link><pubDate>Thu, 07 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/7-locks-condition-variables/</guid><description>Race condition과 Critical section 문제부터 Lock 구현(Test-And-Set, Compare-And-Swap), Condition Variable, Semaphore까지 동기화 메커니즘을 정리합니다.</description></item><item><title>[CS330] 6. 스와핑과 페이지 교체 정책</title><link>https://hojoon.me/posts/cs330/6-swapping-page-replacement/</link><pubDate>Wed, 06 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/6-swapping-page-replacement/</guid><description>물리 메모리보다 큰 가상 메모리를 지원하는 스와핑, 다양한 페이지 교체 알고리즘(OPT, FIFO, LRU, Clock), 그리고 메모리 매핑(mmap)을 다룹니다.</description></item><item><title>[CS330] 5. 페이징과 TLB</title><link>https://hojoon.me/posts/cs330/5-paging-tlb/</link><pubDate>Tue, 05 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/5-paging-tlb/</guid><description>세그멘테이션의 한계를 극복하는 페이징 기법, 페이지 테이블 구조, TLB 캐시, 그리고 멀티레벨 페이지 테이블까지 정리합니다.</description></item><item><title>[CS330] 4. 가상 메모리와 주소 변환</title><link>https://hojoon.me/posts/cs330/4-virtual-memory-address-translation/</link><pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/4-virtual-memory-address-translation/</guid><description>가상 메모리의 개념과 목표, 정적/동적 재배치, Base and Bounds, 세그멘테이션까지 주소 변환의 발전 과정을 살펴봅니다.</description></item><item><title>[CS330] 3. 스레드와 CPU 스케줄링</title><link>https://hojoon.me/posts/cs330/3-thread-scheduling/</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/3-thread-scheduling/</guid><description>스레드의 개념과 다양한 스레딩 모델(1:1, N:1, M:N), 그리고 CPU 스케줄링 알고리즘(FIFO, SJF, STCF, Round Robin)을 비교합니다.</description></item><item><title>[CS330] 2. 인터럽트, 시스템 콜과 프로세스</title><link>https://hojoon.me/posts/cs330/2-interrupt-syscall-process/</link><pubDate>Sat, 02 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/2-interrupt-syscall-process/</guid><description>하드웨어 인터럽트와 소프트웨어 트랩의 차이, 시스템 콜의 동작 원리, 그리고 프로세스의 개념과 생명주기를 다룹니다.</description></item><item><title>[CS330] 1. 운영체제 소개와 커널 보호 메커니즘</title><link>https://hojoon.me/posts/cs330/1-os-intro-kernel-protection/</link><pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs330/1-os-intro-kernel-protection/</guid><description>운영체제가 무엇인지, 왜 커널 보호가 필요한지, 그리고 이중 모드(Dual Mode)를 통한 보호 메커니즘까지 정리합니다.</description></item><item><title>[CS320] 7. 가비지 컬렉션</title><link>https://hojoon.me/posts/cs320/7-garbage-collection/</link><pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/7-garbage-collection/</guid><description>Reference Counting, Mark &amp;amp; Sweep, Two-Space Collection 세 가지 가비지 컬렉션 알고리즘의 원리와 장단점을 비교합니다.</description></item><item><title>[CS320] 6. 지연 평가와 Continuation</title><link>https://hojoon.me/posts/cs320/6-lazy-evaluation-and-continuation/</link><pubDate>Sun, 11 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/6-lazy-evaluation-and-continuation/</guid><description>지연 평가(Lazy Evaluation)를 지원하는 LFAE와 Continuation Passing Style(CPS)의 개념을 통해 프로그래밍 언어의 제어 흐름을 이해합니다.</description></item><item><title>[CS320] 5. 가변 상태 — BFAE와 MFAE</title><link>https://hojoon.me/posts/cs320/5-mutable-state-bfae-mfae/</link><pubDate>Fri, 09 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/5-mutable-state-bfae-mfae/</guid><description>Box를 통한 힙 메모리 모델(BFAE)과 가변 변수(MFAE)를 도입하며, Store를 이용한 상태 관리 인터프리터를 구현합니다.</description></item><item><title>[CS311] 8. GPU 아키텍처와 CUDA 프로그래밍</title><link>https://hojoon.me/posts/cs311/8-gpu-cuda/</link><pubDate>Thu, 08 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/8-gpu-cuda/</guid><description>CPU/GPU 용어 정리, Hardware Multi-Threading(SMT)부터 GPU 아키텍처(SP, SM), CUDA 프로그래밍과 Tiled Matrix Multiplication까지 정리합니다.</description></item><item><title>[CS311] 7. 명령어 수준 병렬성과 멀티프로세서</title><link>https://hojoon.me/posts/cs311/7-ilp-multiprocessor/</link><pubDate>Wed, 07 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/7-ilp-multiprocessor/</guid><description>VLIW와 Superscalar를 통한 명령어 수준 병렬성(ILP)부터 멀티프로세서의 캐시 일관성, 동기화 메커니즘까지 정리합니다.</description></item><item><title>[CS320] 4. 재귀와 조건 분기 — RFAE</title><link>https://hojoon.me/posts/cs320/4-recursion-rfae/</link><pubDate>Wed, 07 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/4-recursion-rfae/</guid><description>조건 분기(if0)와 재귀 함수(Rec)를 지원하는 RFAE 언어를 설계하고, mkRec 패턴과 var 키워드를 이용한 재귀 구현 기법을 살펴봅니다.</description></item><item><title>[CS311] 6. 메모리 계층구조: 캐시와 가상 메모리</title><link>https://hojoon.me/posts/cs311/6-cache-virtual-memory/</link><pubDate>Tue, 06 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/6-cache-virtual-memory/</guid><description>캐시 메모리의 구조(Direct Mapped, Set Associative)와 성능 분석, 그리고 가상 메모리의 주소 변환, 페이지 테이블, TLB를 정리합니다.</description></item><item><title>[CS311] 5. 파이프라인 프로세서와 해저드</title><link>https://hojoon.me/posts/cs311/5-pipeline-hazards/</link><pubDate>Mon, 05 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/5-pipeline-hazards/</guid><description>5단계 파이프라인 설계, SC vs Pipeline 비교, 그리고 구조적/데이터/제어 해저드와 그 해결책(포워딩, 스톨, 분기 예측)을 정리합니다.</description></item><item><title>[CS320] 3. 함수의 세계 — F1VAE에서 FAE까지</title><link>https://hojoon.me/posts/cs320/3-functions-f1vae-to-fae/</link><pubDate>Mon, 05 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/3-functions-f1vae-to-fae/</guid><description>일급이 아닌 함수(F1VAE)에서 일급 함수와 클로저(FVAE, FAE)까지 발전하는 과정과 Static/Dynamic Scope의 차이를 살펴봅니다.</description></item><item><title>[CS311] 4. 단일 사이클 프로세서 설계</title><link>https://hojoon.me/posts/cs311/4-single-cycle-processor/</link><pubDate>Sun, 04 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/4-single-cycle-processor/</guid><description>MIPS 단일 사이클 프로세서의 데이터패스 요소, 제어 유닛, ALU 제어 유닛 설계와 전체 프로세서 회로를 정리합니다.</description></item><item><title>[CS311] 3. MIPS 명령어 집합 구조</title><link>https://hojoon.me/posts/cs311/3-isa-mips/</link><pubDate>Sat, 03 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/3-isa-mips/</guid><description>ISA의 개념부터 MIPS-32의 명령어 형식(R/I/J), 핵심 명령어, 레지스터 규약, 프로시저 호출, 메모리 레이아웃까지 정리합니다.</description></item><item><title>[CS320] 2. 산술식에서 변수까지 — AE와 VAE</title><link>https://hojoon.me/posts/cs320/2-ae-and-vae/</link><pubDate>Sat, 03 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/2-ae-and-vae/</guid><description>가장 단순한 산술식 언어(AE)부터 변수 바인딩을 지원하는 VAE까지, 인터프리터를 단계적으로 확장하며 프로그래밍 언어의 기초를 쌓습니다.</description></item><item><title>[CS311] 2. 메모리 소자와 컴퓨터 성능</title><link>https://hojoon.me/posts/cs311/2-memory-performance/</link><pubDate>Fri, 02 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/2-memory-performance/</guid><description>SRAM과 DRAM의 구조, 2차원 주소 디코딩부터 CPU 성능 평가(CPU Time, CPI, Amdahl&amp;rsquo;s Law)와 전력 소비까지 정리합니다.</description></item><item><title>[CS311] 1. 디지털 논리 기초: 조합 논리와 순차 논리</title><link>https://hojoon.me/posts/cs311/1-digital-logic/</link><pubDate>Thu, 01 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs311/1-digital-logic/</guid><description>Boolean 대수와 조합 논리 회로(가산기, 디코더, MUX)부터 순차 논리(래치, 플립플롭, 레지스터)까지, 디지털 논리의 핵심을 정리합니다.</description></item><item><title>[CS320] 1. Scala 기초와 프로그램 설계 방법론</title><link>https://hojoon.me/posts/cs320/1-scala-basics-and-program-design/</link><pubDate>Thu, 01 Jun 2023 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs320/1-scala-basics-and-program-design/</guid><description>Scala의 Trait, Class, Case Class 차이점과 프로그래밍 언어를 설계하는 체계적인 방법론(Syntax, Semantics)을 정리합니다.</description></item><item><title>[CS230] 1. 데이터 표현 - Bits, Integers, Floating Point</title><link>https://hojoon.me/posts/cs230/1-data-representation/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs230/1-data-representation/</guid><description>컴퓨터가 데이터를 표현하는 방법을 다룹니다. ASCII/Unicode 문자 인코딩부터 정수의 비트 표현(2의 보수), 부동소수점(IEEE 754)까지 정리합니다.</description></item><item><title>[CS230] 2. 어셈블리와 기계어 기초 - Machine Basics &amp; Control</title><link>https://hojoon.me/posts/cs230/2-machine-basics/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs230/2-machine-basics/</guid><description>C 코드가 어셈블리와 기계어로 변환되는 과정, x86-64 레지스터, mov/leaq 명령어, 조건 분기와 반복문의 어셈블리 구현을 다룹니다.</description></item><item><title>[CS230] 3. 어셈블리 심화 - Procedures, Data, Advanced</title><link>https://hojoon.me/posts/cs230/3-machine-advanced/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs230/3-machine-advanced/</guid><description>함수 호출의 어셈블리 구현(스택 프레임, caller/callee-saved), 배열과 구조체의 메모리 배치, 버퍼 오버플로 공격과 방어를 다룹니다.</description></item><item><title>[CS230] 4. 링킹과 예외 제어 흐름 - Linking &amp; ECF</title><link>https://hojoon.me/posts/cs230/4-linking-ecf/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs230/4-linking-ecf/</guid><description>링커의 역할(심볼 해석, 재배치), 예외 제어 흐름(Exceptions, Process, Signals), 시스템 콜과 프로세스 관리를 다룹니다.</description></item><item><title>[CS230] 5. 가상 메모리와 동적 할당 - Virtual Memory &amp; Malloc</title><link>https://hojoon.me/posts/cs230/5-vm-malloc/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs230/5-vm-malloc/</guid><description>가상 메모리의 원리(페이지 테이블, 주소 변환, TLB), 동적 메모리 할당(malloc/free, implicit free list, fragmentation)을 다룹니다.</description></item><item><title>[CS230] 6. I/O, 네트워크, 동시성 - System I/O, Network, Concurrency</title><link>https://hojoon.me/posts/cs230/6-io-network-concurrency/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://hojoon.me/posts/cs230/6-io-network-concurrency/</guid><description>Unix I/O(파일 디스크립터, RIO), 네트워크 프로그래밍(소켓, HTTP), 동시성 프로그래밍(프로세스, 스레드, 동기화)을 다룹니다.</description></item></channel></rss>