전체 글 9

9. 동기화(Synchronization) & 데드락(Deadlock)

1. 동기화(Synchronization)란?멀티스레딩 또는 멀티프로세스 환경에서, 여러 개의 작업이 동시에 실행될 때 "데이터의 일관성을 유지"하고 "경쟁 조건(Race Condition)을 방지"하는 기법  ✔️ 운영체제(OS)에서 여러 프로세스나 스레드가 동시에 실행될 때, 동일한 자원을 공유하면 충돌이 발생할 수 있음 ✔️ 동기화를 통해 공유 자원(Shared Resource) 접근을 조정하여 데이터의 무결성을 보장 ✔️ 동기화 문제를 해결하기 위해 뮤텍스(Mutex), 세마포어(Semaphore) 등의 기법을 사용 2. 동기화(Synchronization) 문제 발생 원인 ✔️ 멀티스레딩 & 멀티프로세싱 환경에서 공유 자원 접근 시 충돌 발생 가능 ✔️ 경쟁 조건(Race Condition)- ..

CS 2025.03.18

8. 파일 시스템

📌 파일 시스템(File System)운영체제가 데이터를 저장하고 관리하는 방식하드디스크(SSD/HDD), USB, SD 카드 등의 저장 장치에서 파일을 관리하는 구조  ✔️ 파일 시스템이 없으면 데이터를 저장하고 찾을 수 없음 ✔️ 운영체제(OS)는 파일 시스템을 통해 데이터 저장 위치를 관리하고 접근 가능하도록 함 ✔️ 파일 시스템은 파일을 저장하는 방식, 디렉터리 구조, 접근 방법, 보안 기능을 포함 1. 파일 시스템의 역할 ✔️ 파일 관리(File Management)- 파일을 저장, 수정, 삭제, 검색할 수 있도록 관리- 파일의 이름, 크기, 저장 위치, 생성 날짜, 접근 권한 등을 저장  ✔️ 디렉터리 구조(Directory Structure) 제공- 파일을 폴더(디렉터리) 단위로 그룹화하여..

CS 2025.03.17

7. 가상 메모리

📌 가상 메모리(Virtual Memory)란?운영체제가 실제 RAM(물리 메모리)보다 더 큰 메모리를 사용할 수 있도록 하는 기술, 디스크(HDD/SSD)를 RAM처럼 활용하여 부족한 메모리를 확장하는 개념  ✔️ 실제 물리 메모리(RAM)가 부족해도 프로그램 실행이 가능하도록 지원 ✔️ 디스크(하드디스크, SSD)의 일부를 "가상 메모리"로 사용하여 부족한 메모리를 보완 ✔️ 운영체제가 필요한 데이터만 RAM에 올리고, 나머지는 가상 메모리에 저장 ✔️ 가상 메모리 덕분에 하나의 프로그램이 RAM 크기보다 더 많은 메모리를 사용할 수 있음 1. 가상 메모리의 핵심 개념 ✔️ 논리 주소(Logical Address)와 물리 주소(Physical Address)- 프로세스가 사용하는 주소는 논리 주소(..

CS 2025.03.13

6. 스왑

📌 스왑(Swapping)이란?운영체제가 RAM이 부족할 때, 프로세스를 디스크(가상 메모리)로 이동하고 필요할 때 다시 불러오는 기법  ✔️ RAM(물리 메모리)이 가득 차서 더 이상 새로운 프로세스를 올릴 수 없을 때, 일부 프로세스를 디스크(Swap 영역)로 내리고, 다시  실행할 때 불러오는 과정 ✔️ 이를 통해 RAM을 더 효율적으로 사용하고, 실행 중인 프로그램을 계속 유지할 수 있음. ✔️ 하지만, **디스크는 RAM보다 속도가 훨씬 느리기 때문에 성능 저하(스왑 오버헤드)**가 발생할 수 있음. 1. 스왑(Swapping) 과정 1️⃣ RAM이 가득 참- 현재 실행 중인 프로세스가 많아서 새로운 프로세스를 올릴 공간이 부족  2️⃣ 운영체제가 RAM에서 오래 사용되지 않은 프로세스를 선택..

CS 2025.03.12

5. 페이지 폴트

📌 페이지 폴트(Page Fault)란?프로세스가 실행 중 필요한 페이지가 물리 메모리(RAM)에 없는 경우 발생하는 이벤트 즉, CPU가 특정 데이터를 읽으려고 했는데, 해당 데이터가 RAM에 없을 때 발생하는 현상이 경우, 운영체제(OS)는 디스크에서 해당 페이지를 가져와야 함 → 이 과정에서 속도가 느려질 수 있음. 1. 페이지 폴트가 발생하는 이유 ✔️ 가상 메모리 시스템에서 운영체제가 필요한 데이터만 RAM에 올려두기 때문 ✔️ 모든 프로그램 데이터를 한 번에 RAM에 올릴 수 없으므로, 필요할 때마다 디스크에서 RAM으로 불러오는 방식 사용 ✔️ 하지만 디스크에서 데이터를 불러오는 과정은 속도가 느려서 성능 저하 가능 2. 페이지 폴트 발생 과정 📌 예제: 프로세스가 4KB 크기의 페이지를..

CS 2025.03.07

4. 메모리 관리

1. 메모리 관리의 기본 개념 ✔️ 운영체제는 프로세스가 CPU를 실행할 수 있도록 메모리를 할당하고 관리하는 역할을 한다. ✔️ 메모리 관리는 프로세스가 메모리를 어떻게 배정받고, 실행되는 동안 메모리를 어떻게 활용하는지를 결정하는 과정이다. ✔️ 메모리 관리는 크게 두 가지 방식으로 나뉜다:- 연속 메모리 할당 (Contiguous Memory Allocation)- 불연속 메모리 할당 (Non-contiguous Memory Allocation) 2. 연속 메모리 할당 vs 불연속 메모리 할당구분설명장점단점연속 메모리 할당프로세스를 물리 메모리에 연속된 공간에 배치주소 변환이 빠름외부 단편화 발생, 메모리 활용도 낮음불연속 메모리 할당프로세스를 여러 개의 작은 메모리 블록에 나누어 배치메모리 활용도..

CS 2025.03.06

3. 페이지 교체 알고리즘(FIFO, LRU, OPT, LFU)의 단점과 해결 방법

1. FIFO (First In First Out) - 선입선출 ✅ 단점- 오래된 페이지가 먼저 제거되므로, 자주 사용되는 페이지도 제거될 가능성이 있음- Belady's Anomaly(벨라디의 역설) 발생 가능  * 일반적으로 페이지 프레임 개수가 증가하면 페이지 폴트가 감소해야 하지만, FIFO에서는 오히려 페이지 폴트가 증가할 수도 있음  * 오래된 페이지를 무조건 제거하기 때문에, 최근 자주 사용된 페이지라도 교체될 수 있음  ✅ 해결 방법 ✔️ Second Chance (Clock Algorithm) 적용- FIFO 방식에서 페이지를 제거하기 전에 한 번 더 기회를 줌- 페이지에 **참조 비트(Reference Bit)**를 추가해서,  * 참조 비트가 1이면: 페이지를 교체하지 않고, 비트를 ..

CS 2025.03.05

2. CPU 스케줄링 & 페이지 교체 알고리즘 개념 정리

1. CPU 스케줄링 (CPU Scheduling) ✅ CPU 스케줄링이란?운영체제는 여러 개의 프로세스를 동시에 실행해야 함. 하지만 CPU는 한 번에 하나의 프로세스만 실행 할 수 있기 때문에, 어떤 프로세스를 먼저 실행할지 결정하는 과정이 필요한데 이를 CPU 스케줄링이라고 함.  📌 CPU 스케줄링이 필요한 이유- 프로세스가 많을 때, 어떤 프로세스를 먼저 실행할지 결정해야 함- CPU를 최대한 효율적으로 사용하기 위해 필요함- 응답 시간, 처리량(Throughput), 대기 시간을 최적화할 수 있음  ✅ CPU 스케줄링 알고리즘 종류알고리즘특징단점FCFS (First Come First Serve)먼저 온 프로세스부터 실행오래 걸리는 작업이 먼저 오면 대기 시간이 길어짐SJF (Shortest..

CS 2025.02.27

1. 운영체제 개요 & 프로세스 & 스레드 개념 공부

1. 운영체제 개요 ✅ 운영체제(OS)란?운영체제(OS, Operating System)는 하드웨어와 소프트웨어를 관리하고, 프로그램이 실행될 수 있도록 도와주는 소프트웨어  📌 운영체제의 주요 역할1. 프로세스 관리 → 여러 프로그램을 동시에 실행하고, CPU 자원을 배분2. 메모리 관리 → 실행 중인 프로그램이 사용할 메모리를 관리3. 파일 시스템 관리 → 하드디스크에 파일을 저장하고 읽을 수 있도록 관리4, 장치(디바이스) 관리 → 키보드, 마우스, 프린터 같은  하드웨어를 제어5. 보안 및 접근 제어 → 사용자 인증 및 시스템 보호  📌 운영체제의 종류- Windows, macOS, Linux (일반적인 OS)- iOS, Android (모바일 OS)- 임베디드 OS (자동차, 스마트워치 등에..

CS 2025.02.26