concept 7

컴퓨터 시스템의 메모리 계층 및 가상 메모리 구조

I. 메모리 계층 구조 (Memory Hierarchy)컴퓨터의 메모리는 속도와 용량에 따라 계층적으로 구성되어 있습니다.위치 이름용도속도CPU 연산 장치 (레지스터)실제 계산 수행제일 빠름 ($\sim \text{ns}$)캐시(Cache)CPU 칩 안쪽의 임시 저장소 (자주 쓰는 데이터)매우 빠름메인 메모리(RAM)주기억장치 (실행 중인 프로그램 전체 저장)중간 속도 ($\sim \text{ns}$ $\sim \mu\text{s}$)디스크(Disk) (HDD/SSD)보조기억장치 (실행 안 된 프로그램, 데이터 보관)느림 ($\sim \text{ms}$)II. 가상 메모리 및 주소 변환 (Virtual Memory & Address Translation)1. 가상 메모리 (Virtual Memory)의 ..

concept 2025.10.17

운영체제 프로세스 개념 정리

1. fork() 함수기본 개념fork()는 새로운 프로세스(child)를 만드는 시스템 콜입니다.#include pid_t pid = fork();실행하면 운영체제가 현재 프로세스(parent)를 복제해서 자식 프로세스(child)를 하나 만듭니다. 즉, 실행 후에는 두 개의 프로세스가 동시에 실행됩니다.fork()의 반환값프로세스 fork() 반환값 설명부모 프로세스> 0 (자식의 pid 값)자식이 누구인지 알 수 있음자식 프로세스0부모로부터 만들어졌음을 뜻함에러 발생 시-1프로세스 생성 실패예제 1: 기본 fork()#include #include int main() { printf("A\n"); fork(); printf("B\n"); return 0;}실행 과정:프로그램 시..

concept 2025.10.17

x86-64 레지스터의 자동 Zero-Extension 규칙

x86-64 아키텍처를 공부하다 보면 만나게 되는 흥미로운 설계 특징이 있는데, 바로 32비트 레지스터에 값을 쓸 때 상위 32비트가 자동으로 0으로 클리어되는 규칙입니다.핵심 규칙32비트 레지스터(EAX, EBX 등)에 값을 쓰면, 대응하는 64비트 레지스터(RAX, RBX 등)의 상위 32비트가 자동으로 0이 됩니다.코드 예시기본 동작mov eax, 0x12345678 ; EAX에 값을 씀; 결과: RAX = 0x0000000012345678; 상위 32비트가 자동으로 0으로 클리어됨!산술 연산에서도 동일add ebx, ecx ; 32비트 덧셈 연산; 결과: RBX의 상위 32비트는 자동으로 0으로 클리어됨xor edi, edi ; EDI를 0으로 만드는 일반적..

concept 2025.10.05

[임시] 강의자료 정리: 함수 호출 과정 - Virtual Memory

연세대학교 운영체제론 OSTEP 강의 자료 정리전체 구조 ┌─────────────┬──────────────────────────────┐│ 단계 │ 역할 │├─────────────┼──────────────────────────────┤│ 1. Prologue │ 스택 프레임 생성 ││ 2. Body │ 함수 코드 실행 ││ 3. Epilogue │ 스택 프레임 복원 및 반환 │└─────────────┴──────────────────────────────┘0. call 명령 직후 (callee 진입 시점)스택은 높은 주소에서 낮은 주소로 성장 높은 주소 (예: 0x500)┌──..

concept 2025.10.05

x86-64 어셈블리 명령어

데이터 이동 명령어movq - Move Quadword (64비트) 형식: movq source, destination기능: 64비트 데이터를 source에서 destination으로 복사예시:movq %rsp, %rbp # %rsp의 값을 %rbp로 복사movq %rsi, -16(%rbp) # %rsi를 메모리 [%rbp-16]에 저장movl - Move Long (32비트) 형식: movl source, destination기능: 32비트 데이터를 source에서 destination으로 복사특징: 목적지가 64비트 레지스터면 상위 32비트 자동 0예시:movl $0x0, %eax # 상수 0을 %eax에 저장movl %edi, -4(%rbp) # %edi를 메..

concept 2025.10.05