컴퓨터 과학/운영체제
💻 [운영체제] 가상 메모리와 스와핑 - RAM이 부족하면 왜 느려질까?
2025.04.25
📌 가상 메모리(Virtual Memory)란?실제 RAM보다 큰 프로그램도 실행 가능하게 하는 운영체제의 메모리 관리 기법프로그램은 자신이 아주 큰 메모리를 가진 것처럼 행동함실제로는 일부만 RAM에 올리고, 나머지는 디스크에 보관필요한 시점에 디스크에서 RAM으로 데이터를 페이지 단위로 불러옴→ 이를 Demand Paging이라 함💿 스와핑(Swapping)이란?RAM이 부족할 때 사용되지 않는 데이터를 디스크로 내보내고, 다시 불러오는 작업RAM이 꽉 찬 경우, OS는 덜 사용 중인 메모리 영역을 디스크로 내보냄나중에 다시 필요해지면 디스크에서 읽어와 RAM에 다시 적재이 과정을 반복하는 것이 스와핑📚 쉬운 비유: 책상과 책가방개념책상/책가방 비유RAM책상 (작고 빠름)디스크책가방 (크지만 느..
컴퓨터 과학/운영체제
💻 [운영체제] 메모리 관리 (페이징 vs 세그멘테이션)
2025.04.25
📌 메모리 관리에 필요한 핵심 개념 먼저 이해하기📍 논리 주소 vs 물리 주소📖 비유: 독서실 자리 예약 시스템논리 주소: 프로그램이 인식하는 주소→ 예약한 자리 번호 (예: 3번)물리 주소: 실제 RAM 상의 위치→ 실제 앉는 책상 (예: 실제 주소 12번)🧠 프로그램은 논리 주소만 알고 있음→ 실제 메모리 주소는 MMU가 변환해줌📍 MMU (Memory Management Unit)📦 비유: 자리 안내 도우미CPU가 논리 주소를 주면,MMU는 페이지 테이블 또는 세그먼트 테이블을 통해물리 주소로 바꿔서 접근함📍 단편화 (Fragmentation)구분설명비유내부 단편화고정된 크기로 메모리를 나눌 때 일부 공간이 낭비됨넓은 책상에 작은 책만 올려둠외부 단편화연속되지 않은 빈 공간이 흩어져 있..
컴퓨터 과학/운영체제
💻 [운영체제] CPU 스케줄링 알고리즘 정리 (FCFS, SJF, Priority, RR)
2025.04.24
📌 CPU 스케줄링이란?CPU가 어떤 프로세스를 먼저 실행할지를 결정하는 운영체제의 핵심 기능프로세스가 실행되기 위해서는 CPU를 점유해야 함모든 프로세스가 동시에 실행될 수 없기 때문에, 공정하고 효율적인 스케줄링 방식이 필요함1️⃣ FCFS (First-Come, First-Served)✅ 정의먼저 도착한 프로세스부터 순차적으로 CPU를 할당🔍 특징간단하고 직관적큐(Queue) 구조로 구현📉 단점Convoy Effect 발생 가능→ 긴 작업이 먼저 오면 뒤의 짧은 작업들이 오랫동안 대기하게 됨💡 예시프로세스도착 시간실행 시간P1010P212P321→ 실행 순서: P1 → P2 → P3→ 평균 대기 시간 증가2️⃣ SJF (Shortest Job First)✅ 정의실행 시간이 가장 짧은 프로세스..
컴퓨터 과학/운영체제
💻 [운영체제] 멀티태스킹 & 컨텍스트 스위칭 정리
2025.04.24
📌 개념 요약🔹 멀티태스킹 (Multitasking)하나의 CPU가 여러 작업을 동시에 처리하는 것처럼 보이게 만드는 방식실제로는 CPU가 여러 작업을 매우 빠르게 번갈아가며 처리함사용자 눈엔 동시에 실행되는 것처럼 보이지만, 순차적으로 조금씩 처리 중🔹 컨텍스트 스위칭 (Context Switching)CPU가 작업을 전환할 때 현재 작업 상태를 저장하고, 새로운 작업 상태를 불러오는 과정상태 저장에는 레지스터, 프로그램 카운터(PC) 등이 포함됨저장 공간: PCB (Process Control Block)💡 예시 & 비유🔸 현실 비유“책 A를 읽다가 책갈피 꽂고 → 책 B 펴서 읽는 것”프로세스 간 전환 = 책 변경스레드 간 전환 = 같은 책 안에서 페이지 전환🔸 실무 예시웹 서버(Tomc..
컴퓨터 과학/운영체제
💻 [운영체제] 프로세스 vs 스레드 차이 정리
2025.04.23
📌 개념 요약프로세스(Process)운영체제로부터 자원을 할당받아 실행 중인 프로그램 단위독립된 메모리 영역을 가짐 (코드, 데이터, 힙, 스택 전부 별도)다른 프로세스와 메모리 공유 불가 → 통신 위해 IPC 사용스레드(Thread)하나의 프로세스 내에서 실행되는 작은 단위의 작업 흐름힙/데이터 영역 공유, 스택은 독립적으로 사용컨텍스트 스위칭 비용이 낮아 빠른 전환 가능📊 차이점 요약항목프로세스스레드메모리 구조완전 독립힙/데이터 공유, 스택은 개별생성/종료 비용큼 (무겁다)작음 (가볍다)통신 방식IPC 사용공유 자원 접근안정성하나 죽어도 영향 없음하나 죽으면 전체 영향💡 실무에서의 예시Java 웹 서버 (예: Tomcat)하나의 프로세스가 실행됨각 사용자 요청마다 새로운 스레드가 할당됨성능 최적..