OS 19

페이징을 통한 가상 메모리 관리

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다. 페이징을 통한 가상 메모리 관리란?두 가지 메모리 접근 방식하나는 프로세스가 연속된 메모리 공간에 올라가는 방식이고,다른 하나는 조각조각 나눠진 메모리 공간에 올라가는 방식입니다.전자는 실행 시 전체 메모리가 필요하기 때문에 공간이 부족하면 실행을 못하지만,후자는 메모리를 쪼개서 필요한 부분만 올리는 방식이라 효율적입니다.가상 메모리란?가상 메모리(Virtual Memory)는 실제 물리 메모리(RAM)보다 더 큰 메모리 공간을 제공하는 기술입니다.하나의 프로세스를 실행할 때 전체 프로그램이 한 번에 메모리에 올라올 필요 없이, 일부만 메모리에 올라가도 실행이 가능하게 합니다.예를 들어, 실제 RAM이 4GB여도 프로세스가 8GB..

OS 2025.06.27

연속 메모리 할당

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다.연속 메모리 할당 개요핵심 개념:운영체제는 프로세스를 메모리 내에서 연속된 공간에 배치한다는 전제입니다.이런 방식을 연속 메모리 할당 방식이라 하며, 사용자가 여러 개의 프로세스를 실행하면 그 순서대로 메모리에 쌓입니다.스와핑:메모리가 부족하면 실행 중인 프로세스를 디스크에 저장했다가 필요할 때 다시 메모리로 가져오는 방식입니다.이를 통해 실제 메모리보다 더 많은 프로세스 실행 가능.단점: 디스크와 메모리 간의 이동이 잦으면 성능 저하. 연속 메모리 할당의 문제점과 스와핑 시나리오문제:프로세스가 종료되면 그 자리에 빈 공간(메모리 조각) 이 생깁니다.이러한 빈 공간을 어떻게 재활용할지가 메모리 관리의 핵심입니다.적합(적재) 전략 세..

OS 2025.06.27

교착 상태 해결 방법

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다. 교착 상태 예방 (Deadlock Prevention)목적:교착 상태의 발생 조건 네 가지 중 하나 이상을 사전에 제거하여 교착 상태가 애초에 발생하지 않도록 만드는 방법입니다.핵심 아이디어:자원 할당 방식이나 순서를 제한함으로써 "순환 대기"나 "점유 대기" 등 교착 상태의 조건을 만족하지 못하게 만듭니다.예시 방식들:자원 선점 순서를 정함 (모든 자원에 번호를 부여하고, 순서대로만 요청)자원 점유 전에 모두 확보하게 함 (모든 자원을 한 번에 요청하게 함)점유 중인 자원 반납하게 함 (자원을 요청하기 전에 점유 중인 자원을 반납)장단점:장점: 교착 상태 방지 확실단점: 자원 활용률이 떨어지고, 시스템 효율이 낮아질 수 있음 교..

OS 2025.06.26

교착 상태

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다. 교착 상태란교착 상태란 무엇인가요?교착 상태(Deadlock)는 서로 서로 기다리기만 하는 상황을 말합니다.예를 들어, 도로에서 차량이 사방에서 들어와 교차로에서 서로 막혀버려 움직이지 못하는 상태를 떠올리면 됩니다.이것은 운영체제에서 여러 프로세스가 자원을 사용하는 방식 때문에 발생할 수 있습니다.즉, 어떤 프로세스는 다른 자원이 필요해서 기다리는데, 그 자원을 가진 다른 프로세스도 또다른 자원을 기다리고 있고… 이런 상황이 순환적으로 반복되어 결국 모두 멈춘 상태가 되는 것입니다. 철학자 문제와 교착 상태대표적인 예로 철학자 문제(Dining Philosophers Problem)가 있습니다.철학자 문제란?원형 테이블에 철학..

OS 2025.06.26

동기화 기법

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다. 동기화 없이 여러 프로세스가 동시에 자원에 접근하면 문제가 발생합니다.대표적인 예로는 공유 자원에 대한 충돌입니다. 예를 들어, 여러 프로세스가 하나의 임계 구역을 동시에 사용하려고 하면 문제의 원인이 됩니다.프로세스 A, B, C, D가 하나의 공유 자원에 동시에 접근하려 함충돌 가능성이 있으므로 이를 방지하기 위해 동기화 기법이 필요함 뮤텍스 락(Mutex lock)의미와 역할임계 구역: 동시에 하나의 프로세스만 들어가야 하는 공유 구역 (예: 탈의실)다른 사람이 들어가 있는 동안에는 다른 사람이 못 들어감 (동기화 필요)이럴 때 사용하는 것이 뮤텍스 락. 뮤텍스는 락(lock)을 걸어서 동시에 하나의 프로세스만 입장하게 함작..

OS 2025.06.25

동기화

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다.동기화란운영체제가 프로세스를 관리하는 서비스 중 중요한 두 가지는 스케줄링과 동기화입니다.앞에서는 "스케줄링"에 대해 공부했는데, 이제는 "동기화"에 대해 알아봅니다.즉, 여러 프로세스가 동시에 실행될 때 서로 영향을 주지 않도록 순서나 자원 접근을 조절하는 것이 동기화입니다. 동기화의 의미현대의 컴퓨터 시스템은 여러 프로세스를 동시에 실행하는 구조입니다. 예를 들어:두 개 이상의 프로세스가 같은 데이터를 읽거나 쓸 수 있습니다.또는 한 프로세스가 수행하는 작업이 다른 프로세스에게 영향을 줄 수도 있습니다.이때 발생할 수 있는 문제를 방지하기 위해 프로세스 간의 실행을 조율하는 방법, 즉 "동기화"가 필요합니다.예를 들어:어떤 파일..

OS 2025.06.25

CPU 스케줄링 알고리즘

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다.선입선처리 스케줄링 (FCFS: First Come, First Served)개념이름 그대로 먼저 온 프로세스가 먼저 CPU를 배정받는 방식입니다.대기열(FIFO 큐)처럼 줄 서는 순서대로 처리됩니다.비선점형 스케줄링입니다. → 실행 중인 프로세스는 끝날 때까지 CPU를 계속 사용합니다.예시준비 큐 상태 (도착 순서: C → A → B):프로세스 C: 실행 시간 2ms프로세스 A: 실행 시간 17ms프로세스 B: 실행 시간 5msCPU 사용 순서: C → A → B각 프로세스 대기 시간:C: 0ms (첫 번째로 실행)A: 2ms (C 끝날 때까지 기다림)B: 19ms (C + A 끝날 때까지 기다림)➡️ 평균 대기 시간 = (0 +..

OS 2025.06.24

CPU 스케줄링 개요

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다.CPU 스케줄링이란 무엇인가?모든 프로세스는 CPU를 원한다모든 프로세스는 “내가 먼저 실행되고 싶다!”고 CPU를 요구합니다.하지만 CPU는 하나이기 때문에 여러 프로세스가 동시에 사용할 수 없습니다.따라서 운영체제는 어떤 순서로, 어떤 기준으로 CPU를 나눠줄지 정해줘야 합니다.이것이 바로 CPU 스케줄링입니다.❗ CPU 스케줄링이란?준비 상태(ready)에서 대기 중인 여러 프로세스 중에서 어떤 프로세스에게 CPU를 할당할지 결정하는 것 프로세스 우선순위CPU를 누가 먼저 쓸까?운영체제는 여러 프로세스 중에 우선순위가 높은 프로세스에게 먼저 CPU를 줍니다.예를 들어,긴급한 알림을 처리하는 프로세스시스템 핵심 작업을 수행하는..

OS 2025.06.24

스레드

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다.스레드란 무엇인가?정의스레드(Thread)란 프로세스를 구성하는 실행 단위입니다.쉽게 말해, 실제로 CPU에서 명령어를 수행하는 단위가 스레드입니다.스레드와 프로세스의 관계일반적으로 하나의 프로세스(Process)는 하나 이상의 스레드를 가질 수 있습니다.프로세스는 실행 중인 프로그램 전체이며, 그 안에서 작업을 나누어 수행하는 각각의 흐름이 스레드입니다.이해를 돕는 비유하나의 프로세스를 회사라고 한다면, 그 안에서 동시에 일하는 직원 각각이 스레드입니다.즉, 회사(프로세스)가 전체 자원(메모리 등)을 가지고 있고, 그 자원을 공유하면서 동시에 일하는 직원들(스레드)이 있는 구조입니다.단일 스레드 프로세스 vs 멀티 스레드 프로세스..

OS 2025.06.24

프로세스 상태와 계층 구조

혼자공부하는 컴퓨터구조 + 운영체제제책으로 공부한 내용을 정리한 글입니다.프로세스 상태주요 상태생성 상태 (new)메모리에 적재되고 PCB 생성됨. 아직 실행 전 단계준비 상태 (ready)CPU 할당을 기다림 (대기 큐에 있음)실행 상태 (running)CPU를 받아 실제 실행 중대기 상태 (waiting)입출력 같은 이벤트 기다림 (CPU는 사용 안 함)종료 상태 (terminated)실행 완료, PCB 제거되고 메모리에서 해제됨 상태 전이 다이어그램준비 → 실행: 디스패치(dispatch)실행 → 대기: 입출력 요청대기 → 준비: 입출력 완료실행 → 준비: 타이머 인터럽트실행 → 종료: 작업 완료 프로세스 계층 구조개념하나의 프로세스는 실행 중에 다른 프로세스를 생성할 수 있음이때 부모 프로세스가..

OS 2025.06.23