[운영체제] Memory Management (메모리 관리)
CS/운영체제2022. 7. 11. 14:45[운영체제] Memory Management (메모리 관리)

들어가기 앞서 .. 복습 ! 논리적 주소 vs 물리적 주소 논리적 주소(가상 주소) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 논리적 주소이다. 물리적 주소 메모리에 실제로 올라가는 위치 보통 메모리의 낮은 주소 영역에는 운영체제가 올라가고, 높은 주소 영역에는 사용자 프로세스가 올라간다. Address Binding (주소 바인딩) 어떤 프로그램이 메모리의 어느 위치에 즉, 어떤 물리적 주소에 load 될지를 결정하는 과정이다. 즉, 프로세스의 논리적 주소를 물리적 메모리 주소로 연결하는 작업을 말한다. 이는 binding하는 시점에 따라 분류된다. Symbolic Address → Logical Address → Address Binding → Ph..

[운영체제] 고정 분할 방식과 가변 분할 방식의 메모리 관리
CS/운영체제2022. 7. 7. 16:47[운영체제] 고정 분할 방식과 가변 분할 방식의 메모리 관리

OS는 할껀데 핵심만 합니다. 13편 가변 분할 메모리와 고정 분할 메모리, 단편화 과거에는 메모리가 정말 작았다. 요즘은 메모리가 차고 넘치지만, 프로그램도 그만큼 무거워지고 용량이 커졌다. 가령 스타2라는 게임을 플레이한다고 하자. 스타2 프로그램이 총 20GB인데, 메모 velog.io 페이징과 세그멘테이션에 대해 공부하던 중 고정 분할 방식과 가변 분할 방식의 차이점에 대해 잘 설명된 글을 찾았다. 연속 메모리 관리 프로그램 전체가 메모리에 연속적으로 할당되어야 하는 관리 기법 고정 분할 기법 : 메모리가 고정된 파티션으로 분할 → 내부 단편화 발생 동적(=가변) 분할 기법 : 파티션들이 동적 생성, 프로세스는 자신의 크기와 같은 파티션에 적재 → 외부 단편화 발생 가변 분할 방식 vs 고정 분할..

[운영체제] 페이지 교체 알고리즘
CS/운영체제2022. 7. 7. 15:14[운영체제] 페이지 교체 알고리즘

Page reference string 페이지 교체 알고리즘을 살펴보기 전에 Page reference string이라는 용어를 알아야 한다. CPU가 내는 주소는 이진수 단위이지만, 페이지 교체 알고리즘을 계산하기 위해서는 이진수 주소 단위가 아닌 페이지 단위로 계산해야한다. CPU 논리 주소 요청할 페이지 번호 100 1 101 1 432 4 612 6 103 1 104 1 611 6 612 6 예를 들어, CPU가 내는 주소를 위와 같이 표현해보자. 편의를 위해 주소는 십진수로 표현했다. 만약 페이지 크기를 100이라 하면, 우측과 같이 된다. 주소 100번지는 1번 페이지에서 offset이 0인 위치이고, 101은 1번 페이지의 offset 1인 위치라고 볼 수 있다. 마지막으로 페이지 번호로 나..

[운영체제] 내부 단편화 vs 외부 단편화
CS/운영체제2022. 7. 7. 14:08[운영체제] 내부 단편화 vs 외부 단편화

고정 분할 기법을 사용하면 내부 단편화가 발생하고 동적 분할 기법을 사용하면 외부 단편화가 발생하는 이유는 무엇일까 ? 내부 단편화와 외부 단편화의 원인 프로세스가 수행되기 위해서는 프로세스가 주기억장치, 즉 메인 메모리에 적재되어야 하는데 이 과정에서 프로세스는 일정 크기의 메모리를 요청한다. 이 때 요청한 크기보다 큰 메인 메모리의 파티션을 할당해 주었을 때 내부 단편화가 발생한다. 일반적으로 고정 분할 기법은 한 파티션에 하나의 프로세스만 적재될 수 있는데 위와 같은 상황에서는 프로세스보다 큰 파티션을 할당해 주었기 때문에 남는 메모리가 생긴다. 남는 메모리라 하더라도 한 파티션에는 하나의 프로세스만 들어갈 수 있기 때문에 그 남은 메모리는 사용할 수가 없다. 이 내부 단편화를 보완하기 위해 나온 ..

[운영체제] 페이징과 세그멘테이션
CS/운영체제2022. 7. 7. 12:17[운영체제] 페이징과 세그멘테이션

메모리 개념 메인 메모리(Main Memory, Physical Memory, 주기억장치) 메인 메모리란 CPU가 직접 접근할 수 있는 기억 장치로, 프로세스가 실행되려면 프로그램 코드를 메인 메모리에 적재해두어야 한다. 이때, 프로그램 용량이 메인 메모리보다 크다면 어떻게 될까 ? 가상 메모리(Virtual Memory) 실제 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리한 것이다. Memory 공간은 한정적이므로 사용자에게 더 많은 Memory를 제공하기 위해 가상 주소를 사용한다. MMU를 통해 논리 주소, 물리 주소를 나누어 사용하며 CPU의 메모리를 관리한다. MMU란 ? Memory Management Unit로 가상 주소를 실제 메모리 주소로 변환해주는 장치 가상 주소 공간 - 하나의..

[운영체제] Process Management
CS/운영체제2022. 3. 17. 18:21[운영체제] Process Management

✔️ 프로세스의 상태 1. 생성(Created) 작업(Job)을 커널에 등록 PCB 할당 및 프로세스 생성 - created Ready 쓸 수 있는 메모리 공간 체크 및 프로세스 상태 전이 (메모리 공간 있을 때) suspended ready 쓸 수 있는 메모리 공간 체크 및 프로세스 상태 전이 (메모리 공간 없을 때) 2. 준비(Ready) 프로세서(CPU) 할당 대기 상태 Queue에서 대기하고 있는 상태를 의미 (물리적인 메모리에 적재된 상태를 말한다.) 3. 실행(Running) 프로세서와 필요한 자원을 모두 할당 받은 상태 프로세스를 실행하는 중 Time runout(preemption) Running State에서 Ready State로 돌아가는 것 sleep(block) Running Sta..

image