OS Critical Section 임계 구역
·
Interview/OS
임계 구역 (Critical Section)임계 구역은 여러 스레드 또는 프로세스가 동시에 접근할 수 없는 코드 블록을 말합니다. 이는 공유 자원에 접근하는 코드에서 동시 실행으로 인해 잘못된 동작이 발생할 수 있는 부분을 보호하는 역할을 합니다. 즉, 여러 작업이 경쟁 상태(Race Condition)를 일으킬 수 있는 부분을 임계 구역으로 설정하여 동기화합니다.임계 구역에서는 하나의 스레드 또는 프로세스만 접근할 수 있으며, 다른 스레드나 프로세스는 그 구역이 해제될 때까지 기다려야 합니다. 이로 인해 공유 자원에 대한 동시 접근이 제한되어, 데이터의 일관성과 무결성을 유지할 수 있습니다.임계 구역의 주요 요구 사항임계 구역을 설정할 때는 다음과 같은 조건을 만족해야 합니다.상호 배제(Mutual E..
OS Disk Swap 디스크 스왑
·
Interview/OS
디스크 스왑 Disk Swap디스크 스왑(Swap)은 운영체제에서 물리 메모리(RAM)가 부족할 때, 디스크의 일부를 가상 메모리로 사용하는 기법입니다. 스왑은 페이징 시스템의 연장선으로, 운영체제가 메모리 부족 문제를 해결하기 위해 디스크를 사용하는 방법입니다. 아래에서는 디스크 스왑의 내부 로직과 작동 방식을 설명하겠습니다.디스크 스왑의 개념스왑 공간은 운영체제가 디스크 상에 설정한 특정 영역입니다. 이 공간은 주로 RAM이 부족할 때, 일시적으로 데이터를 저장하는 데 사용됩니다.스왑은 주로 비활성 페이지(현재 자주 사용되지 않는 메모리 영역)를 디스크에 옮겨, 활성 메모리에 자리를 마련하고, 현재 필요로 하는 데이터를 메모리에 올리기 위한 목적입니다.디스크 스왑의 동작 방식1. 메모리 부족 상황 발..
OS Delayed Write 지연 쓰기
·
Interview/OS
Delayed Write지연 쓰기(Delayed Write)는 운영체제에서 디스크 쓰기 작업을 효율적으로 처리하기 위해 사용되는 기술로, 데이터를 즉시 디스크에 기록하지 않고 메모리에 임시로 저장한 후 나중에 한 번에 기록하는 방식입니다. 이 방식은 주로 배치 작업(Batch Operation)으로 처리되며, 여러 쓰기 요청을 모아서 디스크 I/O를 최소화하고 시스템 성능을 높이는 역할을 합니다.지연 쓰기의 내부 로직1. 데이터 쓰기 요청 발생애플리케이션이 파일에 데이터를 쓰려는 요청을 보냅니다. 이 때, 운영체제는 디스크 I/O 작업을 바로 실행하지 않고, 데이터를 먼저 메모리 캐시(Page Cache)에 저장합니다.이 메모리 캐시는 페이지 캐시 또는 버퍼 캐시라고 하며, 자주 접근하는 데이터를 저장해..
OS 페이징과 캐시
·
Interview/OS
OS 페이징과 캐시운영체제에서 캐싱과 페이징은 메모리 관리와 성능 향상을 위한 핵심 개념입니다. 이 둘은 프로세스와 데이터를 더 빠르고 효율적으로 처리하기 위해 CPU와 메모리 사이의 자원 관리 방식에 관련된 개념입니다. 아래에서는 각각의 내부 로직을 설명하겠습니다.1. 캐싱 (Caching)개념:캐싱은 자주 사용되거나 접근할 가능성이 높은 데이터를 저장 공간에 임시로 저장하여, 해당 데이터에 대한 접근 속도를 높이는 방법입니다. 일반적으로 CPU 캐시나 디스크 캐시로 나누어지며, 운영체제는 이 캐싱을 통해 I/O 병목 현상을 줄이고, 데이터 접근 속도를 크게 향상시킬 수 있습니다.캐시의 내부 로직:1. CPU 캐시:CPU는 메모리(RAM)보다 속도가 훨씬 빠릅니다. 하지만 RAM에서 데이터를 가져오는 ..
Multiprocess간 IPC 중 메모리 매핑 파일
·
Interview/OS
메모리 매핑 파일Multiprocess 간의 통신(IPC, Inter-Process Communication)은 서로 다른 프로세스가 데이터를 주고받거나 리소스를 공유하는 방법입니다. 운영체제에서 프로세스는 독립된 메모리 공간을 가지기 때문에 직접적으로 데이터를 공유할 수 없습니다. 따라서 IPC 기법을 사용하여 프로세스 간의 데이터를 전달하거나 동기화해야 합니다.Linux 및 Unix에서 사용하는 다양한 IPC 방법들을 아래에 설명합니다.메모리 매핑 파일 (Memory-Mapped File)메모리 매핑 파일(Memory-Mapped File)은 파일을 메모리에 매핑하여, 여러 프로세스가 파일 내용을 메모리처럼 접근할 수 있는 방식입니다.이를 통해 파일 기반 데이터 공유가 가능하며, 프로세스 간에 파일을..
Multiprocess간 IPC 중 공유 메모리
·
Interview/OS
Multiprocess간 통신 방법Multiprocess 간의 통신(IPC, Inter-Process Communication)은 서로 다른 프로세스가 데이터를 주고받거나 리소스를 공유하는 방법입니다. 운영체제에서 프로세스는 독립된 메모리 공간을 가지기 때문에 직접적으로 데이터를 공유할 수 없습니다. 따라서 IPC 기법을 사용하여 프로세스 간의 데이터를 전달하거나 동기화해야 합니다.Linux 및 Unix에서 사용하는 다양한 IPC 방법들을 아래에 설명합니다.3. 공유 메모리 (Shared Memory)공유 메모리는 여러 프로세스가 같은 메모리 공간을 공유하여 데이터를 주고받는 방법입니다. 가장 빠른 IPC 방법 중 하나로, 프로세스 간에 직접적인 메모리 접근을 가능하게 합니다.하지만, 동기화 문제가 발생..
OS Semaphore 세마포어
·
Interview/OS
Semaphore 세마포어세마포어(Semaphore)는 동기화를 위해 공유 자원에 대한 접근을 제어하는 메커니즘입니다. 여러 프로세스가 동시에 공유 메모리에 접근할 때 경쟁 조건(Race Condition)이 발생하지 않도록 세마포어를 사용하여 동기화할 수 있습니다.세마포어의 주요 동작:P 연산(Wait 또는 Down): 세마포어 값을 감소시키며, 값이 0보다 크면 자원을 사용할 수 있다는 의미입니다. 만약 값이 0이면, 자원이 해제될 때까지 대기합니다.V 연산(Signal 또는 Up): 세마포어 값을 증가시키며, 자원의 사용을 해제하여 다른 프로세스가 접근할 수 있게 만듭니다.C에서는 System V 세마포어 API를 통해 세마포어를 사용할 수 있습니다.1. 세마포어 관련 함수1) semget(): 세..
OS Race Condition
·
Interview/OS
Race Condition (경쟁 상태)Race Condition은 다중 스레드 또는 다중 프로세스 환경에서 두 개 이상의 작업이 동시에 수행되면서 공유 자원에 대한 비정상적이고 예기치 않은 동작을 유발하는 상황입니다. 동시성이 필요한 상황에서 올바른 동기화가 이루어지지 않았을 때 발생하는 문제로, 특정 코드나 데이터를 올바른 순서로 처리하지 못해 의도하지 않은 결과를 초래할 수 있습니다.Race Condition의 발생 조건Race Condition은 다음 두 가지 조건이 충족될 때 발생합니다:병렬 처리: 여러 스레드나 프로세스가 동시에 실행되고 있는 환경.공유 자원 접근: 여러 작업이 동일한 공유 자원(예: 변수, 메모리)에 접근 및 수정하려 할 때.Race Condition 예시다음은 Race Co..
김 정출
'Interview/OS' 카테고리의 글 목록