목록분류 전체보기 (198)
포도가게의 개발일지
dynamic memory allocation - 동적 메모리 할당기는 heap이라고 하는 프로세스의 가상메모리 영역을 관리한다. - 힙이 미초기화된 데이터 영역 직후에 시작해서 위쪽으로(높은 주소 방향으로) 커지는 메모리 영역으로 가정 - 커널은 힙의 꼭대기를 가리키는 변수 brk(break)를 사용한다. 할당기는 힙을 다양한 크기의 블록들의 집합으로 관리하며, 각 블록은 할당되었거나 가용한 가상메모리의 연속적인 묶음이다. 할당기 기본 유형 명시적 할당기 : C표준 라이브러리는 malloc 패키지라고 하는 명시적 할당기를 제공한다. c는 malloc 함수를 호출해서 블록을 할당하며, free 함수를 이용하여 블록을 반환한다. 묵시적 할당기 : 묵시적 할당기는 가비지 컬렉터라고 알려져 있으며, 자동으로 ..
https://www.youtube.com/watch?v=xLovOdiRtjI&t=2s 한국기술대학교 김덕수 교수님의 강의를 참조하였습니다. Replacement Strategies(교체 기법) Locality 프로세스가 프로그램/데이터의 특정 영역을 집중적으로 참조하는 현상 Locality (example)
https://www.youtube.com/watch?v=1gHHBa8UTjM 한국기술대학교 김덕수 교수님의 강의를 참조하였습니다. 개요 Allocation Strategies 각 프로세스에게 메모리를 얼마 만큼 줄것인가?에 대한 전략 Fixec allocation(고정 할당) - 프로세스의 실행 동안 고정된 크기의 메모리 할당 Variable allocation (가변 할당) - 프로세스의 실행 동안 할당하는 메모리의 크기가 유동적 고려사항 프로세스 실행에 필요한 메모리 양을 예측해야함 너무 큰 메모리 할당(too much allocation) 너무 적은 메모리 할당(too small allocation) Fetch Strategies 특정 page를 메모리에 언제 적재할 것인가? Demand Fet..
https://www.youtube.com/watch?v=W8q3TKB9Lbo&t=214s 한국기술대학교 김덕수교수님 강의를 참조하여 작성하였습니다. Virtual Memory management 가상 메모리(기억장치) - non-continuous allocation : 사용자 프로세스를 block으로 분할하여 적재/실행하는 방법 가상 메모리 관리의 목적 - 가상 메모리 시스템 성능 최적화(Cost Model, 다양한 최적화 기법.. etc) Cost Model for virtual Mem. sys. page fault frequency (발생 빈도) page fault rate (발생률) Page fault rate를 최소화 할 수 있도록 전략들을 설계해야 함 - page Fault 발생시 conte..
https://www.youtube.com/watch?v=ctfTntZ-RBo Hybrid Paging / Segmentation system 1. 논리 단위의 segment 분할 2. 각 segment 를 고정된 크기의 page단위로 분할 Address mapping Virtual address : v = (s, p, d) Smt와 PMT모두 사용 - 각 프로세스 마다 하나의 SMT - 각 segment 마다 하나의 PMT 메모리 관리 FPM과 육사 Direct(address) Mapping *단점 메모리를 3번 접근하지만 장점이 그 이상이어 많이 사용됨 ->메모리 접근 하는것은 TLB를 이용하여 해결할수있겠다 좀 비싸겠지만
https://www.youtube.com/watch?v=Dprd7V842WY 한국기술대학교 김덕수교수님의 강의를 참조하였습니다. Segmentation system - 프로세스를 논리적이지 않게 다루게되어 나온 시스템 프로세스를 논리적으로 block으로 분할 (sement로 부름) - segment의 크기가 서로 다를 수 있음 - stack, heap, main precedure, shared lib, etc... 특징 - segment의 크기가 다를 수 있엉 메모리를 미리 분할 하지 않음(VPM과 유사) - segment sharing/protection이 용이함 - 크기가 달라 관리하기 복잡하고 -> 이건 overhead가 크다 - No internal fragmentation(External fr..
https://www.youtube.com/watch?v=B_QLTChsi04&t=10s 한국기술대학교 김덕수교수님의 강의를 참조하였습니다. Frame table page fram당 하나의 Entry 구성 - allocated/availabel field - PID field - Link field : For free list(사용 가능한 fp들을 연결) - AV : Free list header (Free list의 시작점) 처음 비어있는 entry 위치 : 링크드 리스트로 다른 비어있는 entry에 연결해줌 *PID = Process ID (어떤 프로세스가 할당 받았는지 표시) Page Sharing 여러 프로세스가 특정 page 공유 가능 - non-continuous allocation Page ..
https://www.youtube.com/watch?v=mTFYeZwPj0s Paging System 프로그램을 같은 크기의 블록으로 분할 (pages) Terminologies - page : 프로그램의 분할된 block - page frame : page를 넣어야하므로 같은 크기로 분할된 메모리 공간 Address Mapping block mapping과 거의 유사함 대신 v = (p,d). *블록 매핑에서는 v = (b,d) *residence bit = 0인경우(메모리에 안올라와있을때) Page fault 발생 그 후 swap device에서 해당 page를 메모리로 적재 -> 하지만 running program -> asleep 상태가 될때 context swich가 발생(over head가 ..