반응형

분류 전체보기 509

Disk System

Disk pack (HDD) - 데이터 영구 저장 장치 (비휘발성) - 구성 * sector : 데이터 저장/판독의 물리적 단위 * track : platter 한 면에서 중심으로 같은 거리에 있는 sector들의 집합 * cylinder : 같은 반지름을 갖는 track들의 집합 * platter : 원형 금속판, 데이터의 기록/판독이 가능한 기록 매체 * surface : platter의 윗면과 아랫면 Disk drive - Disk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치 - 구성 (위 그림 참조) * head : 디스크 표면에 데이터를 기록/판독 * arm : head를 고정/지탱 * positioner : arm을 지탱하고 head를 원하는 track으로 이동 * spindl..

[Memory] Other considerations

Page size - 적당한 크기가 좋음 page가 작을 경우 page가 클 경우 page table이 큼 : page 수가 많아서 page table이 작음 : page 수가 작아서 내부 단편화 감소 : 프로그램을 잘랐을 때 꼬투리가 적게 생성 내부 단편화 증가 : 프로그램을 잘랐을 떄 꼬투리가 많이 생성 I/O 시간 증가 : 많은 page를 읽기 때문에 I/O 시간 감소 : 적은 page를 읽기 때문에 Locality 향상 : 사용하지 않는 영역을 적게 포함하여 가져오기 때문에 Locality 저하 : 사용하지 않는 영역을 많이 포함해서 가져오기 때문에 page fault 증가 : page를 여러 번 가져오기 때문에 page fault 감소 : page를 여러 번 가져오지 않기 때문에 - 최근 경향 ..

[Memory] Replacement strategies

이전 post에서 가상 메모리 관리에 대해서 알아보았습니다. SW component에서 replacement strategies에 대해서 더 알아보겠습니다. Locality - 프로세스가 프로그램/데이터의 특정 영역을 집중적으로 참조하는 현상 - Replacement strategies에서 기준을 제시 - 원인 : loop 구조, 자료구조 - 공간적 지역성 : 참조한 영역과 인접한 영역을 참조하는 특성 - 시간적 지역성 : 한 번 참조한 영역을 곧 다시 참조하는 특성 Fixed allocation - 프로세스를 정해진 크기의 page frame으로 분할하여 메모리에 할당 - 할당하려고 하니 자리가 없어서 어떤 것과 교첼할 것인가? Fixed allocation을 위한 교체 기법 - MIN(OPT) alg..

[Memory] Virtual memory management

가상 메모리(기억장치) - Non-continuous allocation : 사용자 프로그램을 block으로 분할하여 적재/실행 - paging/segmentation system 가상 메모리 관리의 목적 - 가상 메모리 시스템 성능 최적화 - 성능의 기준 : page fault frequency(발생 빈도), page fault rate(발생률), etc 용어 표현 - page reference string : ω * 프로세스의 수행 중에 참조한 페이지 번호와 순서 기록 * ω = r1, r2, …, ri * i : 페이지 번호 - page fault rate : F(ω) * F(ω) = number of page fault during ω / |ω| * 전체 참조한 페이지 수 중에서 page faul..

[Memory] Hybrid paging segmentation system

Hybrid paging segmentation system - 논리 단위인 segment로 분할 -> 각 segment를 고정된 크기인 page로 분할 -> page 단위로 메모리에 적재 특징 - page sharing/protection이 쉬움 - 메모리 할당/관리 overhead가 적음 : 메모리에 적재는 paging system으로 하기 때문에 - 외부 단편화 없음 - 전체 테이블의 수 증가로 메모리 소모 큼 - direct mapping의 경우, 메모리에 3배 접근하기 때문에 성능 저하 (TLB 같은 방법으로 해결 가능) - 내부 단편화 발생 Address mapping - 가상 주소 : v = (s, p, d) - FPM과 유사 - SMT와 PMT 모두 사용 * 각 프로세스 마다 하나의 SMT..

[Memory] Segmentation system

Segmentation system - 프로그램을 논리적 block으로 분할 - Segment : 논리적으로 분할된 block - 논리적으로 분할하기 때문에 block의 크기가 다름 특징 - Block의 크기가 다르므로 메인 메모리를 미리 분할하기 않음 - VPM과 유사 - 공유와 보호에 용이 - block의 크기가 달라서 관리하기 힘들기 때문에 overhead가 큼 - 내부 단편화 발생하지 않음 - 외부 단편화 발생 Address mapping - 가상 주소 : v = (s, d) - SMT(segment map table) 사용 - 동작 * paging system과 유사 -> 프로세스의 SMT가 저장되어 있는 주소 b에 접근 -> SMT에서 segment s의 entry를 찾음(위치 : b + s ..

[Memory] Paging system

Paging system - 프로그램을 같은 크기의 블록으로 분할하여 관리 - 필요한 page만 page frame에 적재하여 사용 용어 표현 - page : 프로그램의 분할된 block - page frame : page 크기로 분할된 메모리 영역 특징 - 논리적 분할이 아닌 단지 크기로 분할 - segmentation 대비 page 공유 및 보호 과정이 복잡 - segmentation 대비 simple 및 efficient - 내부 단편화 발생 : 프로그램을 page로 잘랐을 때, 마지막 꼬투리는 page의 크기보다 작을 수 있으므로 page frame에 넣으면 내부 단편화 발생 - 외부 단편화 발생 안함 : 메인 메모리와 프로그램 모두 page 크기로 분할되어 있기 때문에 문제점 - 단지 크기로 분..

[Memory] Memory allocation : Non-continuous memory allocation

Non-continuous memory allocation - 사용자 프로그램을 여러 개의 block으로 분할 - 실행 시, 필요한 block들만 메모리에 적재 - 나머지 block들은 swap device에 적재 Address mapping - 가상 주소와 실제 주소 연결 - 가상 주소 : 연속된 메모리 할당을 가정한 주소 - 실제 메모리에 적재된 주소 - Block mapping * 사용자 프로그램을 block 단위로 분할하여 mapping * 가상 주소 : v =(b, d) + b : block number + d : displacement(offset) in a block * BMT(block map table) + address mapping 정보 관리 + kernel 공간에 프로세스마다 하나의..

[Memory] Memory allocation : Continuous memory allocation

Continuous memory allocation - 프로세스(context)를 하나의 연속된 메모리 공간에 할당하는 정책 1. Uni-programming - 하나의 프로세스만 메모리 상에 할당하는 방법 - 문제점과 해결 * 문제점 1 : 프로그램의 크기 > 메모리 크기 * 해결 1: 프로그램을 잘라서 필요한 부분만 적재, 하지만 사용자가 프로그램의 흐름과 자료구조를 모두 알아야 함 * 문제점 2 : kernel 보호 * 해결 2 : 경계 레지스터(boundary register) 사용 * 문제점 3 : 낮은 자원 활용도, 하나의 프로세스만 사용하므로 낮은 수행능력 2. Multi-programming Fixed partition multiprogramming - 메모리 공간을 고정된 크기로 분할 -..

[Memory] Memory Basic

메모리를 배우는 이유? - 본인이 직접 OS를 설계할 일은 거의 없다. 그러나 배운 내용을 본인이 개발한 프로그램 내부에 설계한다면 어떨까? 예를 들어, 디스크에서 데이터를 그대로 가져와서 프로그램에 넣지 않고, 본인이 직접 설계한 메모리 형식에 디스크에서 가져온 데이터들을 먼저 넣는다. 그리고 프로그램의 성격에 맞게 데이터를 어떻게 가져올지 결정하면 프로그램의 성능이 높아질 것이다. 메모리의 종류 용어 표현 - Block : 보조기억장치와 주기억장치 사이의 데이터 전송 단위 * size : 1 ~ 4kb - Word : 주기억장치와 레지스터 사이의 전송 단위 * size : 16 ~ 64kb * 예시 : windows 64 bits 운영체제 - Address binding : 프로그램의 논리 주소와 실..

반응형