전체 글 73

페이지 교체 알고리즘 (FIFO, LRU, LFU, OPT)란? 개념과 비교 분석

1. 페이지 교체 알고리즘이란? 운영체제(OS)에서 한정된 메모리(RAM)를 효율적으로 사용하기 위해 가상 메모리(Virtual Memory) 개념을 적용한다. 가상 메모리는 물리적 메모리(RAM)가 부족할 경우, 하드디스크(SSD/HDD)의 일부를 임시 메모리(Swap Space)로 사용하여 실행을 지속할 수 있도록 돕는다. 하지만, RAM의 크기가 제한되어 있기 때문에 새로운 프로세스가 실행될 때 필요한 데이터를 저장할 공간이 부족하면 기존 데이터를 삭제해야 한다. 이때, **어떤 데이터를 삭제하고 새로운 데이터를 저장할지를 결정하는 방법이 "페이지 교체 알고리즘(Page Replacement Algorithm)"**이다. ✅ 페이지 교체 알고리즘의 필요성효율적인 메모리 관리: RAM이 가득 찬 경..

컴퓨터공학 2025.03.07

캐시 메모리(Cache Memory)와 성능 최적화

1. 캐시 메모리(Cache Memory)란?캐시 메모리(Cache Memory)란, CPU와 메인 메모리(RAM) 간의 속도 차이를 줄이기 위해 자주 사용하는 데이터를 임시 저장하는 고속 메모리를 의미한다. CPU는 RAM보다 훨씬 빠르게 동작하지만, 직접 RAM에 접근하면 속도가 느려지므로 캐시 메모리를 활용하여 성능을 최적화함. ✅ 캐시 메모리의 주요 특징고속(High-Speed): RAM보다 훨씬 빠른 속도를 제공휘발성(Volatile): 전원이 꺼지면 저장된 데이터가 사라짐자동화(Automatic Management): CPU가 자주 사용하는 데이터를 자동으로 저장하고 관리📌 실생활 예시: "자주 가는 카페에서 미리 커피를 준비하는 바리스타"일반적으로 커피를 주문하면 바리스타가 재료를 꺼내서 ..

컴퓨터공학 2025.03.07

동기화 문제(Critical Section, Mutex, Semaphore)란? 개념과 해결 방법

1. 동기화(Synchronization) 문제란?멀티프로세스 또는 멀티스레드 환경에서는 여러 개의 프로세스(또는 스레드)가 동시에 실행되면서 동일한 자원(변수, 파일, 메모리 등)에 접근할 수 있음. 이 과정에서 데이터 충돌, 무결성 문제, 경쟁 조건(Race Condition)이 발생할 수 있으며, 이를 "동기화(Synchronization) 문제"라고 함 ✅ 동기화 문제가 발생하면?데이터 손상: 두 개의 스레드가 동시에 같은 데이터를 수정하면, 예상하지 못한 값이 저장될 수 있음일관성 문제: 여러 개의 프로세스가 같은 파일을 동시에 변경할 때, 올바르지 않은 데이터가 기록될 수 있음무한 대기 상태: 프로세스가 서로의 작업이 끝나기를 기다리면서 교착 상태(Deadlock)에 빠질 수 있음2. 동기화 ..

컴퓨터공학 2025.03.07

데드락(Deadlock)이란? 원인과 해결 방법

1. 데드락(Deadlock)이란?데드락(Deadlock, 교착 상태)이란, 두 개 이상의 프로세스가 서로의 자원을 기다리면서 무한히 대기하는 상태를 의미한다.즉, 각 프로세스가 필요한 자원을 다른 프로세스가 점유하고 있어 서로 양보하지 않으면, 영원히 실행되지 못하는 상태가 된다. 운영체제에서는 여러 개의 프로세스가 한정된 시스템 자원을 공유하기 때문에, 적절한 자원 관리가 이루어지지 않으면 데드락이 발생할 수 있음1-1. 쉽게 이해하는 데드락 예시데드락은 실생활에서도 비슷한 사례를 찾아볼 수 있다.📌 예시 1: 교차로에서 마주한 차량들이 서로 길을 양보하지 않는 경우네 방향에서 차량이 교차로에 진입했는데, 모두가 먼저 지나가려다 결국 아무도 움직이지 못하는 상태해결되지 않으면 도로가 마비됨 → 데드..

컴퓨터공학 2025.03.06

프로세스 스케줄링(Process Scheduling)이란? 선점형 vs 비선점형 스케줄링 비교

1. 프로세스 스케줄링이란?컴퓨터 운영체제는 CPU와 같은 한정된 자원을 여러 프로세스가 효과적으로 사용할 수 있도록 관리해야 한다. 하지만 CPU는 한 번에 하나의 프로세스만 실행할 수 있기 때문에, 운영체제는 어떤 프로세스를 언제 실행할지를 결정하는 과정이 필요하다. 이때 운영체제가 프로세스를 효율적으로 실행할 수 있도록 CPU 할당 순서를 정하는 과정을 **프로세스 스케줄링(Process Scheduling)**이라고 한다.1-1. 프로세스 스케줄링의 필요성만약 프로세스 스케줄링이 없다면, 어떤 프로세스가 CPU를 차지하면 끝날 때까지 계속 실행되므로, 다른 프로세스는 실행되지 못하고 기다려야 한다.✅ CPU 사용률을 극대화하여 한정된 자원을 최대한 활용✅ 사용자가 여러 프로그램을 실행할 때 멀티태..

컴퓨터공학 2025.03.06

인터럽트(Interrupt)란? 하드웨어 인터럽트 vs 소프트웨어 인터럽트

1. 인터럽트(Interrupt)란?컴퓨터에서 프로세스는 CPU에서 명령어를 순차적으로 실행한다. 하지만 실행 도중에 예기치 않은 이벤트(입출력 요청, 오류 발생, 사용자 입력 등)가 발생할 수 있다. 이때, CPU가 현재 실행 중인 작업을 멈추고 해당 이벤트를 처리할 수 있도록 도와주는 메커니즘이 바로 **인터럽트(Interrupt)**이다.즉, 인터럽트는 컴퓨터 시스템이 특정 이벤트에 신속하게 반응할 수 있도록 하는 중요한 기능이다. 인터럽트가 발생하면, CPU는 현재 실행 중인 작업을 잠시 중단하고, 운영체제가 해당 이벤트를 처리할 수 있도록 제어를 넘긴다.1-1. 인터럽트가 없으면 어떻게 될까?만약 인터럽트가 존재하지 않는다면, 운영체제는 외부 장치(키보드, 마우스, 네트워크 등)의 상태를 계속해..

컴퓨터공학 2025.03.06

컨텍스트 스위칭(Context Switching)의 원리와 성능 최적화

1. 컨텍스트 스위칭이란?컴퓨터 운영체제에서 CPU는 한 번에 하나의 프로세스만 실행할 수 있다. 하지만 현대의 컴퓨터는 멀티태스킹(Multitasking) 환경을 지원하기 때문에, 여러 개의 프로그램이 동시에 실행되는 것처럼 보인다. 그러나 실제로는 운영체제가 빠르게 여러 프로세스를 번갈아가며 실행하는 방식으로 멀티태스킹을 구현한다. 이 과정에서 CPU는 현재 실행 중인 프로세스를 일시 중단하고, 다른 프로세스를 실행해야 하는 경우가 발생하는데, 이를 위해 기존 프로세스의 상태를 저장하고 새로운 프로세스의 상태를 불러오는 작업이 필요하다. 이때, CPU가 현재 실행 중인 프로세스의 정보를 저장하고 새로운 프로세스의 정보를 복원하는 과정을 **컨텍스트 스위칭(Context Switching)**이라고 한..

컴퓨터공학 2025.03.06

프로세스 상태: 생성, 실행, 대기, 종료

1. 프로세스란?컴퓨터에서 프로그램이 실행되면, 운영체제는 해당 프로그램을 **프로세스(Process)**로 관리한다. 즉, 프로세스는 실행 중인 프로그램을 의미하며, CPU와 메모리를 할당받아 동작한다. 운영체제는 컴퓨터의 리소스를 효율적으로 사용하기 위해 여러 개의 프로세스를 동시에 실행할 수 있도록 멀티태스킹(Multitasking) 환경을 제공한다. 이 과정에서 운영체제는 프로세스를 여러 가지 상태로 나누어 관리하며, 각 상태 간 전환이 이루어진다.1-1. 프로세스와 프로그램의 차이많은 사람들이 "프로세스"와 "프로그램"을 혼동하지만, 두 개념은 다르다.  구분 프로그램 프로세스 정의실행 가능한 명령어와 데이터의 집합실행 중인 프로그램저장 위치하드디스크(SSD/HDD)RAM(메모리)실행 여부실..

컴퓨터공학 2025.03.06

가상 메모리(Virtual Memory)의 개념과 작동 원리

1. 가상 메모리란?컴퓨터에서 프로그램을 실행하려면 **RAM(주기억장치, 메인 메모리)**에 로드해야 한다. 하지만 실행해야 할 프로그램이 많거나, RAM 용량보다 많은 데이터를 처리해야 하는 경우 문제가 발생한다. 이를 해결하기 위해 운영체제는 **가상 메모리(Virtual Memory)**를 활용하여 RAM보다 더 많은 용량을 사용할 수 있도록 지원한다. 즉, 실제 물리적 메모리(RAM)보다 더 큰 "가상의 메모리 공간"을 제공하여 메모리 부족 문제를 해결하는 기술이다.1-1. 가상 메모리의 핵심 개념프로세스는 실제 RAM보다 더 많은 메모리를 사용할 수 있음하드디스크(SSD/HDD)의 일부를 가상 메모리로 사용하여 RAM처럼 활용프로그램 실행 시 필요한 부분만 RAM에 올리고, 나머지는 디스크에 ..

컴퓨터공학 2025.03.05

운영체제의 스케줄링 알고리즘: 개념과 종류

1. CPU 스케줄링이란?운영체제는 한정된 CPU 자원을 효율적으로 분배하기 위해 프로세스를 관리해야 한다.이때, CPU가 어떤 프로세스를 실행할지 결정하는 과정이 **CPU 스케줄링(CPU Scheduling)**이다.CPU는 한 번에 하나의 프로세스만 실행할 수 있으므로, 여러 프로세스를 공정하고 효율적으로 배치하는 방법이 필요하다.운영체제는 특정 규칙을 기반으로 프로세스의 실행 순서를 결정하는데, 이를 CPU 스케줄링 알고리즘이라고 한다.1-1. 스케줄링 알고리즘의 목표CPU 사용률(CPU Utilization) 극대화: CPU가 최대한 유휴 상태 없이 동작하도록 함처리량(Throughput) 증가: 단위 시간당 더 많은 프로세스를 처리응답 시간(Response Time) 최소화: 사용자 요청에 대..

컴퓨터공학 2025.03.05