본문 바로가기

운영체제

(13)
운영체제: 가상 메모리 ① - 요구 페이징과 페이지 교체 기초 지난 글에서는 페이징(Paging)의 기본 원리와 주소 변환 과정, 그리고 TLB와 다중 레벨 페이징을 통해 성능과 효율성을 높이는 방법을 알아보았습니다. 하지만 지금까지 설명한 페이징은 프로세스를 실행하기 위해 모든 페이지를 미리 물리 메모리에 올려놓는 것을 가정했습니다. 과연 이것이 효율적일까요? 이번 글에서는 현대 운영체제 메모리 관리의 핵심인 가상 메모리(Virtual Memory) 개념을 도입하고, 그 기반 기술인 요구 페이징(Demand Paging)과 페이지 교체(Page Replacement) 알고리즘의 기초를 다뤄보겠습니다. 참고 강의 - KOCW 반효경 운영체제 반효경 [운영체제] 22. Virtual Memory 1설명이 없습니다.core.ewha.ac.kr1. 가상 메모리(Virtu..
운영체제: 메모리 관리 ③ - 페이징 심화 및 세그멘테이션 지난 글에서는 페이징(Paging)의 기본 개념과 TLB, 다중 레벨 페이징에 대해 알아보았습니다. 페이징은 외부 단편화를 해결하는 강력한 기법이지만, 페이지 테이블 관리의 효율성과 메모리 보호, 공유 등 추가적인 고려 사항들이 있습니다. 이번 글에서는 다중 레벨 페이징의 성능 문제, 페이지 테이블의 부가 정보(보호 비트 등), 페이지 테이블 관리의 다른 접근법(역 페이지 테이블), 그리고 페이징과 다른 관점에서 메모리를 관리하는 세그멘테이션(Segmentation) 기법에 대해 자세히 살펴보겠습니다. 마지막으로 이 둘을 결합한 방식까지 소개합니다. 반효경 [운영체제] 20. Memory Management 3설명이 없습니다.core.ewha.ac.kr 1. 다중 레벨 페이징과 성능 (Multileve..
운영체제: 메모리 관리 ② - 페이징 (Paging) 기초 지난 글에서는 논리 주소와 물리 주소의 개념, 주소 바인딩 시점, 그리고 초기 메모리 할당 방식인 연속 할당과 그 문제점(단편화)에 대해 알아보았습니다. 연속 할당 방식의 가장 큰 문제인 외부 단편화(External Fragmentation)를 해결하기 위해 등장한 것이 바로 불연속 할당(Noncontiguous Allocation) 기법이며, 그중 가장 널리 사용되는 핵심 기술이 페이징(Paging)입니다. 이번 글에서는 현대 운영체제 메모리 관리의 근간을 이루는 페이징 기법의 기본 원리, 주소 변환 과정, 페이지 테이블 구현 및 성능 향상을 위한 TLB, 그리고 페이지 테이블 크기 문제를 해결하기 위한 2단계 페이징(Two-Level Paging)까지 자세히 살펴보겠습니다. https://core.e..
운영체제: 메모리 관리 ① - 주소 변환과 메모리 할당 기초 안녕하세요! CPU 스케줄링과 프로세스 동기화에 이어, 운영체제의 또 다른 핵심 기능인 메모리 관리(Memory Management)에 대해 알아보겠습니다. 여러 프로세스가 동시에 실행되려면, 한정된 물리 메모리를 어떻게 효율적으로 나누어 사용하고 서로 보호할 수 있을까요? 이번 글에서는 메모리 관리의 가장 기본적인 개념인 논리 주소와 물리 주소의 차이점, 그리고 이 둘을 연결하는 주소 바인딩(Address Binding)과 MMU(Memory Management Unit)의 역할, 초기 메모리 할당 방식인 연속 할당(Contiguous Allocation)까지 살펴보겠습니다.  참고 강의 링크: https://core.ewha.ac.kr/publicview/C010102014042515121910014..
운영체제: 교착 상태 (Deadlock) - 원인과 해결 전략 참고 자료:  반효경 [운영체제] 16. Deadlock 1설명이 없습니다.core.ewha.ac.kr 반효경 [운영체제] 17. Deadlocks 2설명이 없습니다.core.ewha.ac.kr 안녕하세요! 이전 글에서는 세마포어와 모니터를 이용한 프로세스 동기화 기법들을 살펴보았습니다. 이러한 동기화 도구들은 공유 자원에 대한 안전한 접근을 가능하게 하지만, 잘못 사용하면 시스템 전체를 멈추게 할 수 있는 심각한 문제, 바로 교착 상태(Deadlock)를 유발할 수 있습니다. 이번 글에서는 교착 상태가 무엇인지, 왜 발생하는지, 그리고 운영체제가 이를 어떻게 다루는지 다양한 전략들을 중심으로 알아보겠습니다. 프로세스 동기화(Process Synchronization)의 또 다른 중요한 측면인 병행 제어..
운영체제: 프로세스 동기화 - 모니터 (Monitor)를 이용한 병행 제어 https://core.ewha.ac.kr/publicview/C0101020140411143154161543?vmode=f 반효경 [운영체제] 15. Process Synchronization 4설명이 없습니다.core.ewha.ac.kr 지난 글에서는 세마포어(Semaphore)를 이용하여 고전적인 동기화 문제들(유한 버퍼, 판독자-기록자, 식사하는 철학자)을 해결하는 방법을 살펴보았습니다. 세마포어는 강력한 도구이지만, P와 V 연산을 정확한 순서와 위치에 사용해야 하므로 프로그래머가 실수하기 쉽고, 복잡한 동기화 로직의 정확성을 검증하기 어렵다는 단점이 있습니다. 이번 글에서는 이러한 세마포어의 어려움을 해소하고, 더 높은 수준의 추상화를 통해 안전하고 쉬운 동기화를 지원하는 모니터(Monitor..
운영체제: 프로세스 동기화 - 고전적인 동기화 문제들 (세마포어 활용) 지난 글에서는 임계 구역 문제 해결을 위한 기본적인 조건들과 고전적인 알고리즘(피터슨 등), 하드웨어 기반 해결책, 그리고 바쁜 대기(Busy Waiting) 문제를 해결하는 강력한 도구인 세마포어(Semaphore)의 개념을 소개했습니다. 이번 글에서는 세마포어를 활용하여 고전적인 동기화 문제들을 어떻게 해결하는지 구체적인 사례를 통해 살펴보겠습니다. 이 문제들은 동시성 제어의 어려움을 잘 보여주며, 다양한 동기화 메커니즘 설계의 기반이 됩니다. 아래 강의를 참고했습니다: 반효경 [운영체제] 14. Process Synchronization 3설명이 없습니다.core.ewha.ac.kr 세마포어(Semaphore) 복습시작하기 전에 세마포어의 핵심을 다시 짚어보겠습니다.개념: 정수 값을 가지는 동기화 ..
운영체제: 프로세스 동기화 - 세마포어 (Semaphore) 지난 글에서는 임계 구역 문제와 이를 해결하기 위한 고전적인 알고리즘들(피터슨 알고리즘 등) 및 하드웨어 기반의 해결책(Test-and-Set)에 대해 알아보았습니다. 하지만 이들 방법은 대부분 바쁜 대기(Busy Waiting), 즉 기다리는 동안 CPU 자원을 낭비하는 문제를 안고 있었습니다. 이번 글에서는 이러한 바쁜 대기 문제를 해결하고 동기화를 보다 추상적이고 효율적으로 관리할 수 있게 해주는 강력한 도구, 세마포어(Semaphore)에 대해 자세히 알아보겠습니다. 세마포어는 운영체제 동기화 메커니즘의 핵심 개념 중 하나입니다.   반효경 [운영체제] 13. Process Synchronization 2설명이 없습니다.core.ewha.ac.kr 1. 세마포어 (Semaphores)란? - 동기..