정보기술/운영체제 (OS)(22)
-
시스템 콜 (System Call) - 요약
1. 시스템 콜이란?시스템 콜(System Call)은 프로그램이 운영체제의 기능을 요청하는 메커니즘입니다.일반적인 애플리케이션은 사용자 모드(User Mode)에서 실행되며, 운영체제의 핵심 기능(파일 시스템, 프로세스 관리, 메모리 관리 등)을 사용하려면 커널 모드(Kernel Mode)로 전환해야 합니다.이때 시스템 콜을 통해 운영체제에게 요청을 전달합니다.✅ 사용자 프로그램 → 시스템 콜 호출 → 커널 모드 전환 → 요청 처리 → 사용자 모드 복귀2. 시스템 콜의 종류와 예제📌 주요 시스템 콜 종류1️⃣ 파일 조작 (File Management)open() : 파일 열기read() : 파일 읽기write() : 파일 쓰기close() : 파일 닫기2️⃣ 프로세스 관리 (Process Manage..
2025.03.05 -
운영체제 락 개념과 동기화 기법 (마무리: 락(Lock)과 동기화 정리)
📌 마무리: 락(Lock)과 동기화 정리멀티스레딩 환경에서는 여러 개의 스레드가 동시에 실행되면서 공유 자원(Shared Resource) 에 접근하게 됩니다.이 과정에서 데이터 무결성(Data Integrity) 을 보장하고, 경쟁 상태(Race Condition) 를 방지하기 위해 락(Lock) 을 사용하여 동기화를 수행합니다.이번 학습에서는 뮤텍스(Mutex), 재진입 가능 락(RLock), 읽기-쓰기 락(RWLock), 스핀락(Spinlock), 세마포어(Semaphore) 등을 다루며,각 기법이 어떤 상황에서 적절한지, 어떤 문제점을 가질 수 있는지, 어떻게 해결해야 하는지 를 배우고 실습하였습니다.✔ 락을 활용하여 동기화를 이해하기🔹 락(Lock)이 필요한 이유멀티스레드 프로그래밍에서 여러..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (4. OS 내부 락과 문제 해결)
🔍 락의 문제점과 해결 방법 (데드락, 우선순위 역전)멀티스레딩 환경에서 락(Lock)을 사용할 때 데드락(Deadlock) 및 우선순위 역전(Priority Inversion) 같은 문제가 발생할 수 있습니다.이를 방지하고 해결하기 위한 운영체제(OS)에서 제공하는 기법들을 학습해보겠습니다.🎯 학습 목표락(Lock)의 주요 문제점:데드락(Deadlock): 여러 개의 스레드가 서로 Lock을 해제하기를 기다리며 무한 대기 상태에 빠지는 문제.우선순위 역전(Priority Inversion): 낮은 우선순위 스레드가 높은 우선순위 스레드보다 먼저 Lock을 획득하여 성능 저하를 유발하는 문제.해결 방법:데드락 해결 방법: 예방, 회피, 탐지 기법 학습.OS 커널 락(Kernel Lock) 학습: Li..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (Mutex, RLock, RWLock, 스핀락, 세마포어 비교 요약 정리)
🔍 Mutex, RLock, RWLock, 스핀락, 세마포어 비교 요약 정리운영체제(OS)에서 멀티스레딩 동기화 기법으로 사용되는 뮤텍스(Mutex), 재진입 가능 락(RLock), 읽기-쓰기 락(RWLock), 스핀락(Spinlock), 세마포어(Semaphore) 의 차이를 정리했습니다.1. 개념 요약 동기화 기법 개념 특징사용 예시Mutex (뮤텍스)하나의 스레드만 임계 영역 접근 가능다른 스레드는 Lock이 해제될 때까지 대기 (Blocking)단순한 공유 자원 보호RLock (재진입 가능 락)같은 스레드가 여러 번 Lock 가능Lock 획득 횟수만큼 Unlock 필요재귀 호출, OOP에서 동일 객체 내 여러 메서드 사용RWLock (읽기-쓰기 락)여러 개의 스레드가 동시에 읽기 가능, 쓰기는 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (3. 고급 락(Spinlock & Semaphore) / 스핀락(Spinlock)과 세마포어(Semaphore))
📖 스핀락(Spinlock)과 세마포어(Semaphore)운영체제에서 멀티스레딩(Multithreading) 환경에서는 공유 자원(Shared Resource)에 대한 동기화(Synchronization) 가 필수적입니다.스핀락(Spinlock) 과 세마포어(Semaphore) 는 동기화를 위한 중요한 기법으로, 각각의 목적과 사용 방식이 다릅니다.✅ 스핀락(Spinlock)🔹 스핀락이란?락(🔒)이 해제될 때까지 CPU가 계속 바쁜 대기(Busy-Waiting)하면서 반복적으로 확인하는 방식.pthread_spinlock_t을 사용하여 구현.빠른 락 해제가 예상되는 경우 뮤텍스(Mutex)보다 성능이 좋을 수 있음.멀티코어 CPU 환경에서 커널 락과 같은 저수준 동기화에서 자주 사용.🔹 스핀락의 ..
2025.02.26 -
운영체제 락 개념과 동기화 기법 (2. 기본 락(Lock) / 2-3. 읽기-쓰기 락(Read-Write Lock, RWLock))
📖 2-3. 읽기-쓰기 락(Read-Write Lock, RWLock)읽기-쓰기 락(Read-Write Lock, RWLock)은 읽기 작업은 여러 개의 스레드가 동시에 수행할 수 있지만, 쓰기 작업은 오직 하나의 스레드만 수행할 수 있도록 제한하는 동기화 기법입니다.멀티스레딩 환경에서 읽기 작업이 많고, 쓰기 작업이 상대적으로 적은 경우 성능을 향상시키는 데 유용합니다.✅ 읽기-쓰기 락이란?🔹 기본 개념읽기(Read) 락: 여러 개의 스레드가 동시에 공유 자원을 읽을 수 있음.쓰기(Write) 락: 하나의 스레드만 공유 자원을 수정할 수 있으며, 쓰기 중에는 어떤 스레드도 접근할 수 없음.pthread_rwlock_t 를 사용하여 구현.🔹 읽기-쓰기 락의 필요성일반 Mutex를 사용하면 쓰기뿐만 ..
2025.02.26