management

Memory vs Storage memory(DRAM)는 단기 데이터 액세스 허용(웹 탐색, 애플리케이션 로드 등) storage(HDD)는 장기적 데이터 액세스 허용(파일, 애플리케이션 및 os) memory와 storage는 함께 작동 가능 : 컴퓨터에 프로세스를 지원하기에 충분한 RAM이 없으면 HDD의 일부를 가상메모리로 변환 Storage Management 사용자가 스토리지 장치 사용을 최적화하고 데이터가 상주하는 모든 미디어의 데이터 무결성을 보호하는 프로세스 보안, 가상화 등의 측면을 다룸 성능, 신뢰성, 복구 가능성, 용량 ❗ 자료가 너무 없네...? ❗
Virtual Memory (메인 메모리 크기) < (프로세스 크기)를 위해 나왔다. 필요한 부분만 메모리에 올림으로써 메인 메모리에 올라가는 프로세스의 크기를 줄인다. 페이징 과정을 걸쳐 필요한 페이지만 메모리에 적재 "요구 페이징(Demand Paging)" Demand Paging 프로세스의 이미지를 backing store에 저장(swap device) valid bit를 페이지 테이블에 추가(1 - memory에 적재 중, 0 - memory에 없음) valid bit가 0인데 해당 페이지를 부르면 Page Fault 발생 pure demand paging : 처음부터 모든 페이지를 적재시키지 않고 CPU가 요구할 때 valid를 바꾸어 페이지를 적재 prepaging : 우선 필요할 것 같은 ..
Segmentation 프로세스를 물리적인 단위인 페이지 말고 논리적 내용 단위인 세그먼트로 자르자! segment의 크기는 다 다를 수 있음.(code(main함수, 사용자 함수,...), data(array, structure,..), stack) 하위 변위 비트(n bit)를 제외한 나머지 상위 비트가 segment number가 된다. segment의 크기는 가변적, 동적 메모리 할당이 필요하다. → 외부 단편화 발생 가능 Segmentation + Paging 프로세스를 세그먼트 단위로 자르고 이를 다시 일정 간격인 페이지 단위로 자른다. 외부 단편화는 없앴지만 두 가지 테이블을 거쳐야 해서 속도가 조금 떨어진다.
Paging 최초 적합과 최적 적합(1/3정도 메모리 낭비) → Compaction(메모리 계산 부담) → Paging 프로세스를 일정 크기인 페이지로 잘라 메모리에 적재하는 방식 hole과 프로세스를 모두 특정 페이지 단위로 잘라서 관리 프로세스를 나눈 페이지 마다 relocation register를 만들어 놓으면 CPU는 마치 프로세스가 연속된 메모리 공간에서 동작하고 있다고 생각... MMU ⇒ page table CPU가 내는 주소 : Logical Address / page table을 거쳐 Physical Address ex) logical address = 50, page size = 16byte 50 = 110010(2) 하위 4bit(0010)은 n비트 상위 2bit(11)가 '3'의 ..
Allocate continuous memory(연속 메모리 할당) 부팅 직후에는 os만 적재되어 있으므로 나머지는 빈공간(big single hole) 이를 여러 가지의 프로그램이 동시에 올라와 스케줄링에 의해 CPU나 I/O를 할당받아 여러 위치에 적재된다.(scattered holes) 프로세스가 순서대로 쌓이더라도 작업이 끝나는 순서는 정해져 있지 않고 다시 들어오는 프로세스와도 메모리 공간 차지 사이즈가 달라 메모리 중간중간 빈공간이 생성될 것 scattered holes가 계속 발생하면 hole들이 불연속하게 흩어져 있게 되어 메모리 단편화 현상 발생 (메모리의 빈 공간) < (프로세스 크기) : "외부 단편화" "외부 단편화를 없애기 위해 연속 메모리 할당 방식을 사용!" 최초 적합(Firs..
목표 프로그래밍을 할 때 쉽게 메모리를 사용할 수 있도록 abstraction을 제공해주는 것 minimal overhead로 성능을 최대한 이끌어낼 수 있도록 프로세스들 사이에서 부족한 메모리 자원을 적절히 잘 할당하는 것 프로세스들 사이에서 isolation을 제공(Memory Protection) Step in Creating and Running Code "Source file → (Compile) → Object file → (Linker) → Executable file" "Executable file → (Loader) → memory" Link: HDD에 들어가 있는 다양한 library들을 실행하기 위해 연결해주는 과정 하나의 프로그램이 실행되기 위해서는 code, data, stack이..
yj_oo_
'management' 태그의 글 목록