minyule.log
로그인
minyule.log
로그인
가상 메모리
김민영
·
2023년 2월 13일
팔로우
0
운영체제
0
CS 스터디
목록 보기
25/32
메인 메모리
Main Memory, Physical Memory, 주기억장치
CPU가 직접 접근할 수 있는 기억 장치.
프로세스가 실행되려면 프로그램 코드가 메인 메모리에 적재되어야 한다.
가상 메모리
Virtual Memory
프로그램 용량이 메인 메모리보다 클 때 사용
실제 물리 메모리 개념과 사용자의 논리 메모리 개념 분리
메인 메모리 용량이 부족하면, 사용자에게 더 많은 메모리를 제공하기 위해 가상 주소를 사용함.
메모리 관리 장치는 가상 주소를 이용해 실제 데이터가 담겨있는 주소로 변환
가상 주소 공간 : 하나의 프로세스가 메모리에 저장되는 논리적인 모습을 가상 메모리에 구현한 공간. 가상 주소는 해당 공간을 가리키는 주소
가상 메모리 필요성
물리 메모리 한계
모든 프로그램 코드를 물리 메모리에 올릴 수 없음
프로그램을 교체하면서 올리면 메모리 교체 성능 문제 발생
가상 메모리 장점
프로그램 용량이 실제 물리 메모리보다 커도 됨
전체 프로그램이 물리 메모리에 올라오지 않아도 실행 가능
더 많은 프로그램을 동시에 실행할 수 있음
응답시간 유지
CPU 이용률, 처리율 증가
물리 메모리 제약 보완, 프로세스 전체를 메모리에 올리지 않고 실행할 수 있게 함
가상 메모리 구현
OS는 디스크를 보조 기억 장치 Paging Space로 사용 함
주 기억 장치는 물리 메모리로서 제약이 있기 때문
메인 메모리(주 기억 장치)와 데스크의 페이징 스페이스(보조 기억 장치)를 하나의 메모리처럼 동작하게 함.
Swapping
CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억 장치로 내보내고 (swap-out) 다른 프로세스의 메모리를 불러오는(swap-in) 작업을 Swap 이라고 함.
Swap 작업에는 디스크 전송 시간이 필요
메모리 공간이 부족할 때 Swapping 발생
메모리 관리
다중 프로그래밍 시스템에서 여러 프로세스가 동작하기 위해서 주 기억 장치 RAM을 동적 분할하는 메모리 관리 작업 필요
하드 디스크의 프로그램을 어떻게 메인 메모리에 적재할 것인지
연속 메모리 관리 - 단편화 현상 발생
프로그램 전체가 하나의 커다란 공간에 연속적으로 할당되어야 함
고정 분할 기법 : 주 기억 장치가 고정된 파티션으로 분할 - 내부 단편화 발생
동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 - 외부 단편화 발생
단편화 Fragmentation
기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상
프로세스가 메모리에 적재, 제거되는 일이 반복되면, 프로세스들이 차지하는 메모리 틈 사이에 자유 공간들이 늘어난다.
내부 단편화
프로세스가 사용하는 메모리 공간에 남는 부분
프로세스가 요청한 양보다
더 많은 메모리 할당
시 발생.
메모리 분할 자유 공간과 프로세스가 사용하는 공간의 크기 차이
외부 단편화
메모리 공간 중 사용하지 못하게 되는 부분
메모리 할당 및 해제 작업 반복으로
작은 메모리가 중간 중간 존재
하게 됨. 총 메모리 공간은 충분하지만, 실제로 할당할 수 없는 상황
이를 해결하기 위해 압축하여 프로세스가 사용하는 공간을 할 쪽으로 몰 수 있지만, 작업 효율 좋지 않음
불연속 메모리 관리
프로그램 일부가 서로 다른 주소 공간에 할당되는 기법
외부 단편화 해소 : 페이징, 내부 단편화 해소 : 세그멘테이션
김민영
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=
팔로우
이전 포스트
Race Condition
다음 포스트
페이징 / 세그멘테이션
0개의 댓글
댓글 작성