Chatpter 07 메모리 관리 01 메모리 관리의 개요 02 연속 메모리 할당 03 분산 메모리 할당 1 : 페이징

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
제 8 장 메모리 관리전략. 개요 2 기억장치 관리의 발전 개요 SSD(Solid State Drive) – 반도체 메모리 내장함, 처리속도 빠르고 소음이 없고 전력소모량이 적은 플래시 메모리 기반의 모델 주소 바인딩 (address binding) – 정의 논리적.
컴퓨터와 인터넷.
뇌를 자극하는 Windows Server 2012 R2
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
제14장 동적 메모리.
연결리스트(linked list).
컴퓨터 프로그래밍 기초 [Final] 기말고사
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
Windows Server 장. 사고를 대비한 데이터 백업.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Chap 6.Assembler 유건우.
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
27장. 모듈화 프로그래밍.
메모리 관리 & 동적 할당.
7장 메모리 관리 메모리 관리를 위한 메모리 할당 기법 과 경영에 대해 알아본다. 단편화 현상의 원인과 해결 방법을 알
제 8장 가상 기억장치 구성 A 박남규.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
뇌를 자극하는 Windows Server 2012 R2
제 8장 기억장치 관리 (Memory Management) 8.1 배경 주소 바인딩 (Address Binding)
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
7장 주기억장치 관리 A박도하.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Canary value 스택 가드(Stack Guard).
( Windows Service Application Debugging )
알고리즘 알고리즘이란 무엇인가?.
제 6 장 가상 기억 장치의 구성 Section 1 개 요 Section 2 페이징 기법 Section 3 세그먼테이션 기법
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
8 가상 메모리.
AT MEGA 128 기초와 응용 I 기본적인 구조.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
8장 가상 기억장치의 구성 C반 권예용.
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
운영체제 레프토 (8장 가상 기억장치 구성) b반 박상수.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
Numerical Analysis Programming using NRs
제 4 장 Record.
과 목 명 : 운영체제 담당교수 : 박 승 기 학 과 : 컴퓨터 소프트웨어 학 번 : 이 름 : 최 현 식
 6장. SQL 쿼리.
Reversing 발표자 : 박현우.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
CODE INJECTION 시스템B 김한슬.
제 8장 가상 기억장치의 구성과 관리 장태양.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
7 생성자 함수.
6 객체.
2. 프로세스 B 안우진 - 운영체제 -.
ARP.
Presentation transcript:

Chatpter 07 메모리 관리 01 메모리 관리의 개요 02 연속 메모리 할당 03 분산 메모리 할당 1 : 페이징 04 분산 메모리 할당 2 : 세그먼테이션 요약 연습문제

메모리를 관리하는 정책과 메모리 할당 방법을 알아본다. 연속 메모리 할당 방법을 살펴본다. 분산 메모리 할당 방법인 페이징 방법을 살펴본다. 분산 메모리 할당 방법인 세그먼테이션을 살펴본다.

Section 01 메모리 관리의 개요(1. 메모리 관리의 개념과 정책) 메모리 관리는 프로세스들을 위해 메모리 할당, 제거, 보호하는 활동 디스크에 있는 프로그램을 실행하려면 먼저 메모리에 적재 후 메모리 관리자가 예약된 메모리 할당해 주는 것 다중 프로그래밍 시스템에서 여러 프로세스가 메모리에 상주할 수 있도록 운영체제가 동적으로 메모리 세분화 메모리 관리 정책 적재 정책 : 디스크에서 메모리로 프로세스 반입 시기 결정하는 것 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청에 따라 다음에 실행 할 프로 세스를 메모리에 적재하는 오래된 방법 예상 적재 : 시스템의 요청을 미리 예측하여 메모리에 적재하는 방법 배치 정책 : 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정 대치 정책 : 메모리가 충분하지 않을 때 현재 메모 리에 적재된 프로세스 중 제거할 프로 세스를 결정하는 교체 방법

2. 메모리의 구조와 매핑(사상) 메모리의 구조 실제 데이터나 프로그 램을 저장하는 공간 프로그래머가 프로그래밍에 사용하는 공간

2. 메모리의 구조와 매핑(사상) 메모리 장치의 주소 변환

2. 메모리의 구조와 매핑(사상) 매핑mapping 논리적 주소와 물리적 주소의 연결 ❷ 적재 시간 프로세스를 메모리의 어디에 적재해야 할지 컴파일 과정에 알려 주지 않으면 컴파일러는 대체 가능한 상대 주소 생성. 상대 주소는 프로그램의 시작 주소가 0으로 생성되므로 최종 바인딩을 적재시간까지 연기. 시작 주소가 변하면 단지 변화된 값을 반영하 려고 사용자 코드를 재적재(정적 대치) 매핑mapping 논리적 주소와 물리적 주소의 연결 바인딩binding : 매핑시켜 주는 작업 ❸ 실행 시간 프로세스 실행 도중 메모리의 한 세그먼트에서 다른 세그먼트로 이동 한다면 바인딩은 수행 시간까지 연기(지연). 이런 주소 체계는 기본 및 경계(한계) 레 지스터 등 특수 하드웨어의 지원 필요. 현재 범용 운영체제 대부분 실행 시간에 바인딩 방법 사용 . ❶ 컴파일 시간 프로세스가 메모리에 적재될 위치를 컴파일 과정에서 알 수 있다면 컴파일러는 물리적 주 소 생성 가능

3. 메모리 관련 용어 동적 적재 바인딩을 최대한 늦춰 실행 직전에 주소 확정하는 메모리 효율적으로 운영 방법 모든 루틴을 메모리에 적재하지 않고 교체 가능한 형태로 디스크에 저장 메인 프로그램만 먼저 메모리에 적재하여 수행 메인 프로그램에 다른 루틴이 필요 할 때 메모리에 적재되어 있는지 조사. 적재되어 있지 않다면 해당 루틴을 메모리로 적재 하려고 호출하면서 프로그램의 주소 테이블을 갱신 동적 적재는 사용하지 않을 루틴을 메모리에 적재하지 않으므로 메모리 효율적으로 사용 오류가 발생하기도 하지만 프로그램 전체 양이 많을 때 더 유용

3. 메모리 관련 용어 중첩(오버레이) 실행하려는 프로그램이 메모리보다 클 때는 당장 필요하지 않은 프로그램의 일부는 중첩 (오버레이)으로 설정 가능. 운영체제 영역과 메모리의 일부 영역에는 프로 그램 실행에 꼭 필요한 명령어와 데이터만 저장, 나머지 중첩 영역에는 필요할 때 호출하여 적재하는 방법 구조

3. 메모리 관련 용어 중첩 예

3. 메모리 관련 용어 스와핑(프로세스 교체) 프로세서 할당이 끝나고 수행 완료 된 프로세스는 보조기억장치로 보내고(스왑 아웃), 새롭게 시작하는 프로세스는 메모리에 적재(스왑 인). 프로세스는 메모리에 있어야 수행되므로 일시적으로 디스크로 이 동했다가 메모리로 되돌아와 다시 수행 가능 개념

3. 메모리 관련 용어 프로세스의 스와핑 과정

3. 메모리 관련 용어 메모리 적재 방법 연속 메모리 적재 방법 비연속(분산) 메모리 적재 방법

Section 02 연속 메모리 할당(1. 단일 프로그래밍 환경에서 할당) 단일 사용자 메모리 할당의 예

1. 단일 프로그래밍 환경에서 연속 메모리 할당 기준 레지스터는 가장 작은 물리적 주소 저장, 경계 레지스터는 프로그램 영역이 저장되어 있는 크기 저장 즉, 기준 레지스터는 물리적 주소, 경계 레지스터는 논리적 주소

2. 다중 프로그래밍 환경에서 연속 메모리 할당 고정 분할 방법 연속 메모리 할당에서는 메모리를 여러 개의 고정된 크기로 분할하고 분할된 각 메모리는 프로세스 하나 실행 가능 예

2. 다중 프로그래밍 환경에서 연속 메모리 할당 내부 단편화의 개념

2. 다중 프로그래밍 환경에서 연속 메모리 할당 내부 단편화의 개념

2. 다중 프로그래밍 환경에서 연속 메모리 할당 스케줄링과 분할 크기에 따른 내부 단편화의 변화

2. 다중 프로그래밍 환경에서 연속 메모리 할당 고정 분할 방법에서 메모리 보호 예 고정 분할 방법에서는 프로그래밍의 성능이 분할 수에 제한

2. 다중 프로그래밍 환경에서 연속 메모리 할당 각 영역별로 독립된 큐가 있는 고정 분할 시스템 크기에 따라 담당하는 큐가 있어 큐 Q2가 차면 다른 큐 Q6과 Q12가 비어 있어도 사용할 수 없다는 문제가 발생

2. 다중 프로그래밍 환경에서 연속 메모리 할당 각 영역별로 독립된 큐가 있는 고정 분할 시스템 통합 큐에서도 작업 5와 작업 6이 사용할 수 있 는 2KB 영역과 6KB 영역이 비어 있더라도 7KB 작업 4 때문에 기다려야 한다는 문제가 발생

2. 다중 프로그래밍 환경에서 연속 메모리 할당 각 영역별로 독립된 큐가 있는 고정 분할 시스템 통합 큐에서도 작업 5와 작업 6이 사용할 수 있 는 2KB 영역과 6KB 영역이 비어 있더라도 7KB 작업 4 때문에 기다려야 한다는 문제가 발생

2. 다중 프로그래밍 환경에서 연속 메모리 할당 다중 프로그래밍의 성능 향상을 위한 메모리 분할, 작업 큐와 관련된 사항 결정 분할 영역의 크기 시스템 부하를 분석하여 분할 영역의 개수와 크기를 결정. 이때 개수는 다중 프로그래밍의 정도가 될 수 있음 영역의 크기 결정은 시스템 전체의 효율 나타냄 영역의 배치 프로그램 작업을 어느 영역에 배치하는지 결정해야 하는데, 작업 스케줄러 필요

2. 다중 프로그래밍 환경에서 연속 메모리 할당 가변 분할 방법 고정된 경계를 없애고 각 프로세스가 필요한 만큼 메모리 할당 예

2. 다중 프로그래밍 환경에서 연속 메모리 할당 가변 분할 방법 예 작업 1~작업 3에 메모리 할당하면 (b)의 ❶. 5시간 후에 작업 2를 종료하여 사용한 메모리 해제하면 ❷, 여기에 작업 4를 할당하면 ❸, 작업 1을 10시간 후에 종료하여 메모리 해제하면 ❹, 작업 5에 메모리 할당하면 ❺가 됨

2. 다중 프로그래밍 환경에서 연속 메모리 할당 사용 가능 공간을 어느 작업에 할당하는 것이 가장 좋은지 결정하는 메모리 배치 방법 최초 적합 방법 프로세스를 사용 가능 공간 중 충분히 큰 첫 번째 공간에 할당, 검색을 사용 가능 공간의 리스트 맨 앞이나 이전의 최초 적합 검색이 끝났던 곳에서 시작하면 충분히 큰 사용 공간 빨리 찾기 가능. 공간 활용률 떨어질 수 있는 단점 예

2. 다중 프로그래밍 환경에서 연속 메모리 할당 최적 적합 방법 프로세스를 충분히 큰 사용 가능 공간 중에서 들어갈 수 있는 가장 작은 공간에 할당. 사용 가능 공간이 크기 순으로 정렬되어 있지 않으면 전체를 검색 해야 함. 사용 가능 공간을 계속 정렬하는 과정이 필요하므로 비효율적. 사용 가능 공간 이용률은 향상될 수 있으나 할당 과정에 많은 시간 소요. 예

2. 다중 프로그래밍 환경에서 연속 메모리 할당 최악 적합 방법 프로세스를 가장 큰 사용 가능 공간에 할당. 공간이 크기 순으로 정렬되어 있지 않으면 전체 검색해야 함. 가장 큰 사용 가능 공간에 할당하기 때 문에 가장 작은 또 다른 사용 가능 공간을 만드는 최적 적합보다 메모리 활용 면에서 더 유용 예

2. 다중 프로그래밍 환경에서 연속 메모리 할당 가변 분할에서 메모리를 보호하는 과정 프로세서가 생성한 모든 주소는 레지스터와 함께 검사하기 때문에 다른 사용자의 프로그램과 데이터 보호가능

2. 다중 프로그래밍 환경에서 연속 메모리 할당 메모리 통합 방법 하나의 작업이 끝났을 때 다른 빈 공간과 인접해 있는지 점검하여 하나로 합치는 것. 물론 메모리 전반에 흩어진 빈 공간을 모두 통합하기는 곤란 예

2. 다중 프로그래밍 환경에서 연속 메모리 할당 메모리 압축 방법 메모리의 내용을 적절히 움직여 사용 가능 공간을 큰 블록 하나로 만드는 것 압축이 항상 가능한 것은 아님. 주소 대체가 정적이고 컴파일이나 적재할 때 실행된다면 압축을 수행 불가능. 주소들을 동적으로 대체하면 프로세스들이 이동하고 기준 레지스터의 변화를 요구하여 새로운 기준 주소를 반영하므로 압축은 대체가 동적일 때만 가능. 실행 시간에 가능

2. 다중 프로그래밍 환경에서 연속 메모리 할당 다양한 메모리 압축 방법

2. 다중 프로그래밍 환경에서 연속 메모리 할당 메모리 압축의 단점 압축하는 동안 시스템은 모든 일을 중지해야 함. 이때 대화형 사용자는 응답시간이 일정하지 않게 되고, 실시간 시스템은 심각한 문제 발생 가능 메모리에 있는 작업들을 이동해야 하므로 프로그램을 적재할 때 제거되는 대치 관련 정보를 액세스 가능한 형태로 보관해야 함 압축 작업을 자주 요구하여 시스템 자원의 소모가 큼

3. 다중 프로그래밍 환경의 버디 시스템 버디 시스템buddy system 의 개념 단편화 현상을 해결하는 방법 큰 버퍼들을 반복적으로 이등분하여 작은 버퍼들을 만들며, 가능할 때마다 인접한 빈 버퍼들을 합치는 과정 반복, 버퍼를 나눌 때 각각을 서로의 버디라고 함 예

Section 03 분산 메모리 할당 1 : 페이징(1. 페이징의 개념) 작업을 크기가 동일한 페이지로 나눠 처리하는 방법 연속 메모리 할당과 비연속 메모리 할당 예

1. 페이징의 개념 페이징 시스템에서 프로그램 실행 준비 페이징의 특징 프로세스에 필요한 페이지를 결정하여 페이지 번호 부여 메모리의 빈 프레임을 조사하여 프로세스를 적재할 위치 파악 프로세스의 페이지를 빈 프레임에 적재하도록 준비 페이징의 특징 빈 프레임에 어떤 페이지든 적재할 수 있어 메모리 효율적 사용 프레임 간에 외부 단편화도 발생하지 않음 한 프로세스의 페이지를 메인 메모리의 여러 위치에 분산 적재하여 운영체제의 페이지 관리 부담 큼 프레임 단위로 적재하므로 어떤 프로세스에 필요한 공간이 페이지 크기와 맞지 않으면, 마지막 페이지에 할당된 프레임이 완전히 차지 않아 내부 단편화가 발생 가능

2. 페이징 시스템의 하드웨어 구조와 원리 페이징 시스템의 하드웨어 구조

2. 페이징 시스템의 하드웨어 구조와 원리 페이지 테이블과 페이징 모델

2. 페이징 시스템의 하드웨어 구조와 원리 16비트 논리적 주소 IBM 370의 논리적 주소(32비트) 크기가 1KB인 최대 64개의 페이지로 구성

2. 페이징 시스템의 하드웨어 구조와 원리 페이지 테이블을 이용한 물리적 주소 변환 예 해당 프로세스 저장

2. 페이징 시스템의 하드웨어 구조와 원리 8바이트 페이지와 64바이트 메모리 페이징 예

3. 다중 단계 페이징 시스템의 구조와 원리 원리 2단계 페이징 시스템의 구조 논리적 주소가 클수록 물리적 주소로 변환하는 과정에서 필요한 페이지 테이블 크기도 증가 하므로 메모리에 더 큰 적재 공간 필요 2단계 페이징 시스템의 구조 다중 단계 페이징 시스템 예 VAX와 윈도우 NT는 2단계, 스팍SPARC은 3단계, 모토로라Motorola 68030은 4단계 페이징 시스템 사용

4. 페이지 테이블의 구현 페이지 테이블과 페이지 테이블 항목

4. 페이지 테이블의 구현 페이비 테이블 관리 방법 전용 레지스터 사용 레지스터는 효율적으로 페이징 주소를 변환 하려고 초고속 논리회로로 설계 메모리의 모든 액세스는 페이징 테이블 정보로 수행하므로 효율성을 중요하게 고려해야 함. 레지스터를 사용하여 페이지 테이블을 구현할 때는 페이지 테이블 항목이 적으면 좋은데, 쉽게 관리 가능. 대부분의 컴퓨터는 페이지 테이블이 매우 커서 레지스터로 구현하기에 부적합 대개 페이지 테이블 메모리에 두고 페이지 테이블 기준 레지스터PTBR, Page Table Base Register로 페이지 테이블 지시 페이지 테이블을 메모리에 두면 레지스터 값 하나를 바꿔서 페이지 테이블 변경할 수 있어 문맥 교환 시간이 감소 실제 문맥 교환은 메모리 정보를 모두 교환해야 하나, 페이지 테이블 기준 레지스터는 단순히 레지스터 값을 바꿔서 문맥 교환과 똑같은 효과. 메모리 액세스 시간이 문제 페이지 테이블 항목과 워드를 위한 메모리 액세스가 필요, 이 액세스 때문에 속도가 느려진다는 문제 발생 발생 연관 레지스터나 변환 우선참조 버퍼TLB, Translation Look-aside Buffer를 이용하여 해결 가능

4. 페이지 테이블의 구현 연관 레지스터를 이용하여 논리적 주소를 물리적 주소로 변환하는 방법 직접 매핑direct mapping으로 주소 변환 연관 매핑associative mapping으로 주소 변환 연관·직접 매핑을 결합한 주소 변환

4. 페이지 테이블의 구현 직접 매핑으로 주소 변환 메모리나 캐시에 완전한 페이지 테이블을 유지 프로세스의 메모리를 구성하는 모든 페이지 항목이 페이지 테이블에 있음 직접 매핑으로 주소를 변환하는 과정

4. 페이지 테이블의 구현 직접 매핑으로 주소 변환 메모리나 캐시에 완전한 페이지 테이블을 유지 프로세스의 메모리를 구성하는 모든 페이지 항목이 페이지 테이블에 있음 레지스터만 변경해도 페이지 테이블 변경 가능 사용자 메모리 위치에 액세스하는 데 시간 소요(해결하는 방법으로 연관 레지스터 또는 보조예비기억장치라고 하는 특별히 작은 하드웨어 메모리 사용)

4. 페이지 테이블의 구현 직접 매핑으로 주소를 변환하는 과정

4. 페이지 테이블의 구현 연관 매핑으로 주소 변환 논리적 주소를 프로세서의 페이지 번호와 프로세서에 대응하는 프레임 번호가 있는 연관 레지스터의 집합으로 표현 각 레지스터는 키와 값으로 구성. 연관 레지스터에 항목을 추가하면, 동시에 모든 키와 비교하여 해당 항목을 찾아 이에 대응하는 값 출력 매우 빠르게 검색 가능, 하드웨어가 무척 비싸다는 단점 시스템에 모든 프로세스의 페이지 테이블 항목을 저장할 만큼 크기가 충분한 연관 레지스터를 갖추기 곤란 물론 페이지 테이블 기준 레지스터 필요 없음

4. 페이지 테이블의 구현 순수 연관 매핑으로 주소를 변환하는 과정

4. 페이지 테이블의 구현 연관·직접 매핑을 결합한 주소 변환 연관·직접 매핑을 혼용하기도 함 최근에 사용한 페이지만 연관 레지스터에 유지하고, 연 관 레지스터에 해당 페이지가 없을 때만 직접 매핑하는 방법 제안 프로세스가 메모리의 정보를 균일하게 액세스하는 것이 아니라 많이 참조한 것을 또 참조하는 경향이 있 다는 ‘지역성’을 적절히 활용 페이지 번호를 연관 레지스터에서 발견하는 비율을 적중률이라고 함 유효 접근시간은 ❶과 같다. 메모리 액세스 시간은 26.6% 더 늦어져 750나노초에서 950나노초로 바뀌며, 적중률이 90%일 때 유효 접근시간은 ❷처럼 계산 가능

4. 페이지 테이블의 구현 연관·직접 매핑으로 주소를 변환하는 과정

5. 공유 페이지 공유 페이지의 개념 페이징 시스템의 장점인 시분할 환경에서 중요한 공통 코드 공유 페이징 시스템에서는 프로세스를 메모리에 연속적으로 할당할 필요가 없기 때문에 여러 프로세스가 메모리 공유 가능 다른 프로세스는 메모리의 같은 페이지(지역)를 단순히 가리키도록 해야 하며, 공유 라이브러리 코드에도 사용 가능 공유 코드는 재 진입을 허용하므로 재진입 코드reentrant code 또는 순수 코드pure code라고 함 오직 읽을 수만 있으며 스스로 수정하지는 못함. 프로세스들은 재진입 코드에서 데이터 항목 지정할 수 없으며 수행 도중 변하지 않음(2개 또는 그 이상의 프로세스가 동시에 같은 코드 수행 가능 스레드가 텍스트와 메모리를 공유하는 방법과 비슷 프로세스에서 논리적 주소 공간의 다른 부분에 나타날 수 있음. 이때 공유 코드 는 모든 프로세스에서 논리적 주소 공간의 동일한 위치에 나타나야 함

5. 공유 페이지 페이징에서 공유 코드

5. 공유 페이지 공유 코드 예

6. 페이징에서 보호 페이지 테이블에 보호 비트를 추가하여 페이지 보호 보호용 비트

6. 페이징에서 보호 페이지 테이블의 액세스 타당과 비타당 주소가 14 비트인 시스템은 0~16383의 물리적 주소 사용. 논리적 주소가 0~10468인 프 로세스에 크기가 2KB인 페이지가 주어진다면, 페이지 0~4까지는 크기가 10,240바이트이므로 페이지 테이블로 정상적 매핑. 페이지 5는 12287까지 합법적으로 처리되므로 타당 분류, 228(=10468-10240)바이트만 사용하여 2KB(=2048-228) 규모의 내 부 단편화 발생. 그리고 나머지 12268~16383 영역은 비타당 분류하므로 페이지 6과 페이지 7은 비타당이 되어 운영체제로 트랩

Section 04 분산 메모리 할당 2 : 세그먼테이션 (1. 개념) 세그먼테이션segmentation의 개념 프로세스 관점을 지원하여 메모리를 크기가 변할 수 있는 세그먼트로 나누는 것 프로그램을 구성하는 서브루틴, 프로시저, 함수나 모듈 등으로 세그먼트 구성 각 세그먼트는 연관된 기능을 수행하는 하나의 모듈 프로그램으로 생각, 메모리의 연속된 위치 에서 구성하되 서로 인접할 필요 없음 메모리의 사용자 관점을 지원하는 비연속 메모리 할당 방법, 논리적 영역을 세그먼트의 집합으로 인식 보통 컴파일러가 원시 프로그램을 실행 프로그램으로 자동 변환하면서 서브루틴과 프로시저, 함수, 모듈 등 각기 크기가 다른 세그먼트로 구성 하드웨어 보호 등 관리에 필요한 사항은 페이징과 비슷하거나 동일 프로세스에 따라 세그먼트 크기가 달라 메모리를 크기가 일정한 페이지 프레임으로 나누지 않고 동적 분할(가변 분할) 방법으로 할당

1. 세그먼테이션의 개념 프로그램(사용자) 관점의 메모리와 프로세스 관점의 메모리

1. 세그먼테이션의 개념 페이징과 세그먼테이션 메모리 할당 비교

2. 세그먼테이션에서 하드웨어 구조와 원리 세그먼트의 논리적 구조 예 : IBM 370

2. 세그먼테이션에서 하드웨어 구조와 원리 세그먼트 하드웨어 시스템의 구조

2. 세그먼테이션에서 하드웨어 구조와 원리 세그먼테이션 예

3. 세그먼트 공유 세그먼트 공유의 개념 페이징 시스템과 달리 매우 단순 페이징 시스템은 페이지 테이블의 공유 항을 표시, 세그먼트는 공유한다고 선언만 하면 됨 공유 기능을 사용하는 시스템은 적절한 보호 체계를 제공하여 승인한 사용자만 세먼트에 액세스할 수 있도록 해야 함 세그먼테이션에서 세그먼트 공유 세그먼트(43062)를 지정하여 공유

4. 페이징과 세그먼테이션 비교 페이징과 세그먼테이션 비교 프로그램을 나눈 모든 세그먼트에서 메모리의 빈 공간을 찾아 할당하는 것 페이징과 비슷 페이징과 달리 프로그램을 나누는 크기가 변함 가변 크기 분할 방법처럼 세그먼테이션도 보통 최적 적합 알고리즘이나 최초 적합 알고리즘으로 해결하는 동적 메모리 할당 방법 이용 따라서 외부 단편화가 일어날 수 있는데, 사용 가능한 메모리의 모든 블록이 너무 작아서 세그먼트를 수용할 수 없을 때 발생. 대부분 기다리거나 압축하여 더 큰 공간 만듬 세그먼테이션은 동적 대치 알고리즘 이므로 원할 때마다 메모리 압축 가능 프로세서 큐에서 몇 번 건너뛰어 크기가 작고 우선권이 더 낮은 프로세스 찾을 수도 있음 외부 단편화 문제는 대부분 평균 세그먼트 크기에 의존, 일반적으로 평균 세그먼트 크기가 작으면 외부 단편화 또한 작음 페이징은 물리적 주소 없이도 큰 가상 주소 공간이 가능하게 하려고 등장. 세그먼테이션 은 프로그램과 데이터를 논리적으로 독립된 주소 공간으로 나누고 쉽게 공유·보호할 수 있 게 하려고 등장

4. 페이징과 세그먼테이션 비교 페이징과 세그먼테이션 비교

5. 페이지화된 세그먼테이션 페이지화된 세그먼테이션 개념 페이징과 세그먼테이션의 장단점 취합 페이징은 내부 단편화가 발생할 수 있으나, 메모리 효율적 사용, 작업 크기가 동일하여 다양한 알고리즘을 개발 세그먼테이션은 외부 단편화가 발생할 수 있으나, 가변적인 데이터 구조와 모듈 처리, 공유와 보호의 지원 편리 외부 단편화 문제를 제거하면서 할당 과정 쉽게 해결 멀틱스 시스템과 인텔 386계열에서 사용 페이지화된 세그먼트의 논리적 구조 예 : 멀틱스 시스템

5. 페이지화된 세그먼테이션 페이징 세그먼테이션 하드웨어 시스템의 구조 : 멀틱스(GE645)

5. 페이지화된 세그먼테이션 페이지화된 세그먼트 메모리 주소 변환 예

5. 페이지화된 세그먼테이션 세그먼트 메모리 관리의 장단점