728x90
반응형

CS 21

페이지 교체 알고리즘

페이지 교체 알고리즘은 메모리 관리에서 페이지 부재(page fault)가 발생할 때 어떤 페이지를 교체할지를 결정하는 알고리즘입니다. 페이지 부재란 프로세스가 필요한 페이지를 메모리에 찾지 못하고 디스크에서 가져와야 할 때 발생합니다. FIFO(First-In, First-Out) 가장 먼저 들어온 페이지를 우선적으로 교체합니다. 구현이 간단하며, 페이지의 시간적 특성을 반영하기 때문에 예측성이 높습니다. 하지만 최신 페이지가 교체되지 않는 문제점이 있습니다. 최적 페이지 교체(Optimal Page Replacement) 미래에 가장 오랫동안 사용하지 않을 페이지를 교체합니다. 최적의 교체 알고리즘이지만 구현이 불가능할 정도로 많은 예측이 필요합니다. LRU(Least Recently Used) 가장..

CS 2023.04.08

페이징 & 세그멘테이션

페이징(Paging)과 세그멘테이션(Segmentation)은 메모리 관리 기법 중 하나로, 가상 메모리를 물리적 메모리로 매핑하는 방식입니다. 페이징 프로세스를 고정 크기의 페이지(Page)로 분할하여, 물리적 메모리에 적재합니다. 이 때, 페이지 테이블(Page Table)을 사용하여 가상 주소와 물리 주소의 매핑 정보를 저장합니다. 프로세스가 필요한 페이지를 요청할 때마다, 페이지 테이블을 참조하여 해당 페이지의 물리 주소를 찾아 접근합니다. 🚀 장점 논리적 주소 공간을 동일한 크기의 페이지로 분할하기 때문에 메모리 공간을 효율적으로 사용할 수 있습니다. 내부 단편화를 해결할 수 있습니다. 💔 단점 페이지 크기를 정해야 하기 때문에, 페이지의 크기가 작으면 페이지 테이블의 크기가 커지게 되고, 큰 ..

CS 2023.04.08

경쟁 상태(Race Condition)

여러 프로세스나 스레드가 공유된 자원에 동시에 접근하면서 발생할 수 있는 문제입니다. 이러한 상황에서 각 프로세스나 스레드가 자원을 사용하는 순서나 시점이 일정하지 않아서 예상치 못한 결과가 발생할 수 있습니다. Race Condition으로 인하여 발생하는 문제 상호 배제 (Mutual exclusion) 동일한 자원을 여러 프로세스 또는 스레드가 동시에 접근할 때 발생할 수 있습니다. 이 때, 자원을 한 번에 하나의 프로세스 또는 스레드만이 사용할 수 있도록 제한하는 것이 필요합니다. 기아 상태 (Starvation) 프로세스나 스레드가 자원을 얻지 못해 영원히 대기하는 상태를 말합니다. 이는 일부 프로세스나 스레드가 우선적으로 자원을 사용하는 것을 방지하기 위해 대기 중인 프로세스나 스레드에도 자원..

CS 2023.04.08

데드락(Deadlock, 교착상태)

프로세스나 스레드가 서로 상대방의 자원을 점유하고 있는 상태에서 더 이상 진행할 수 없는 상태를 말합니다. 이러한 상태에서는 각각의 프로세스나 스레드가 다른 프로세스나 스레드가 점유한 자원을 기다리며 아무 일도 처리할 수 없게 됩니다. 데드락이 발생하면 시스템이 정지되어 모든 프로세스나 스레드가 종료되기 전까지 대기 상태로 남아 있게 됩니다. 이러한 상황은 시스템의 안정성과 가용성을 저하시키며, 대규모 시스템에서 데드락이 발생하면 심각한 문제를 초래할 수 있습니다. 발생 원인 상호 배제(Mutual Exclusion) 자원은 한 번에 한 프로세스나 스레드에 의해 점유될 수 있습니다. 이러한 상태에서 다른 프로세스나 스레드가 해당 자원을 점유하기 위해 대기하게 됩니다. 점유 대기(Hold and Wait)..

CS 2023.04.08

CPU 스케줄링

CPU 스케줄링은 여러 개의 프로세스가 동시에 실행될 때 CPU가 어떤 프로세스에게 우선순위를 부여하고 어떤 방식으로 처리할지를 결정하는 작업입니다. CPU 스케줄링의 종류 선점형 스케줄링 선점형 스케줄링은 실행 중인 프로세스가 다른 프로세스가 실행되어야 할 시점에 강제로 CPU를 빼앗겨 다른 프로세스가 실행될 수 있는 방식입니다. 이러한 방식으로 다른 프로세스에게 CPU를 양보하는 것을 컨텍스트 스위칭(Context Switching)이라고 합니다. 선점형 스케줄링은 우선순위가 높은 프로세스가 존재할 때 중요하며, 대표적으로 라운드 로빈, 다단계 큐 스케줄링 등이 있습니다. 🚀 장점 응답 시간이 더 짧아지므로, 시스템의 대화형 성능이 향상됩니다. 우선순위가 높은 작업에 더 많은 CPU 시간이 할당되므로..

CS 2023.04.08

IPC(Inter-Process Communication)

프로세스 간 통신(Inter-Process Communication, IPC)이란 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다. IPC 종류 1. 파이프(Pipe) 파이프는 단방향 통신을 지원하는 IPC 방법으로, 한 프로세스에서 생성한 데이터를 다른 프로세스로 전송하는 데 사용됩니다. 파이프는 읽기와 쓰기로 구성되며, 프로세스는 파일 디스크립터를 사용하여 파이프와 상호 작용합니다. 2. 메시지 큐(Message Queue) 메시지 큐는 비동기식 IPC 방법으로, 큐를 통해 메시지를 전송하는 방식입니다. 메시지 큐는 이름을 가진 큐에 메시지를 추가하거나 제거할 수 있으며, 메시지를 읽는 동안 큐의 메시지는 계속 존재합니다. 3. 공유 메모리(Shared Memor..

CS 2023.04.08
728x90
반응형