728x90
반응형

가상 메모리

728x90
반응형
Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 4 (Paging System에서 LRU, LFU, Clock Algorithm)

[ Paging System에서 LRU, LFU 사용 가능? ] 만약 CPU에서 프로세스 A가 Running 중일 경우, 프로세스 A의 논리적인 메모리에서 Instruction을 하나씩 읽어와서 실행한다. CPU가 프로세스 A에 대한 논리적 주소를 주면 Page Table을 통해서 물리적 메모리 주소로 변환하여 해당 주소의 내용을 CPU로 읽어 들어야 한다. 주소 변환 후, 해당 페이지가 물리적 메모리에 올라와 있으면 물리적 메모리에서 직접 내용을 읽어 CPU로 가져간다. 이 과정에서 운영체제가 하는 일은 없다. 주소 변환은 하드웨어적으로 일어나는 일이며, CPU는 프로세스 A가 가지고 있으면서 주소 변환 후 메모리 참조를 한다. ​ 반면에 프로세스 A가 Running 하면서 주소 변환을 요청했는데 In..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 3 (다양한 캐싱 환경, Paging System, Cache Memory, Buffer Caching, Web Cacging)

● 다양한 캐싱 환경 Replacement 알고리즘은 가상 메모리 시스템에서만 사용되는 게 아니라 Caching이라는 다양한 곳에서 사용이 되고 있다. 한정된 빠른 공간에다 데이터를 저장해 놓고, 다음에 똑같은 요청이 왔을 때 느린 저장 장치까지 가지 않고 Cache로부터 바로 서비스를 한다. 속도가 더 빠르다. ​ ✓ Paging System Paging System에서는 한정된 빠른 공간이 메인 메모리이고 느린 저장 장치가 Backing Store이다. 그래서 가능하면 물리적 메모리에서 서비스를 하며, 메모리에 올라와 있지 않을 때 (Page Fault)에만 Backing Store에서 읽어온다. ✓ Cache Memory CPU가 메모리에 접근할 때, 메모리에 직접 접근하는 게 아니라 CPU와 Ma..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 2 (페이지 교체, Page Replacement, Optimal Algorithm, LRU, LFU)

[ 페이지 교체 (Page Replacement) ] 페이지를 쫓아내는 걸 Page Replacement라고 하며 OS가 하는 일이다. 이때 사용하는 알고리즘은 Replacement Algorithm이다. ​비어있는 페이지가 없는 경우에는 어떤 페이지를 쫓아낸 후, 해당 메모리에 페이지를 올려야 한다. 가능하면 Page Fault가 일어나지 않고 되도록이면 메모리에서 직접 처리할 수 있도록 되어있다. 왜냐하면 페이지를 쫓아내고 난 후, 시간이 얼마 지나지 않아 그 페이지가 다시 참조가 되면 해당 페이지를 Swap area에서 메모리로 다시 올려야 한다. 이 과정은 시간이 매우 오래 걸린다. ​ 어떤 페이지를 메모리에서 쫓아내고 그 자리에 어떤 페이지를 올려놓을 것인가를 결정해야 한다. 가능한 Page F..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 1 (Demand Paging)

[ Demand Paging ] 물리적 메모리 주소 변환은 운영체제가 관여하지 않는다. 하지만 Virtual Memory 기법은 전적으로 운영체제가 관여를 하고 있다. Demand Paging이라는 것은 Page 요청이 있으면 그 페이지를 메모리에 올리겠다는 것이다. ​ 프로그램이 실행될 때, 그 프로세스를 구성하는 주소 공간을 한꺼번에 물리적 메모리에 올리는 게 아니라 요청이 있을 때 메모리에 올려놓는다. 이렇게 되면 I/O 양이 상당히 줄어들고 그만큼 물리적 메모리를 사용하는 양이 감소된다. 좋은 소프트웨어일수록 방어적으로 코드를 짜기 때문에 이상한 사용자가 이상한 짓을 하더라도 문제가 생기지 않도록 하는 것이 좋다. 즉 프로그램을 구성하는 주소 공간에서 빈번히 사용되는 부분은 제한적이므로 사용이 되..

Embedded system/[KOCW] 운영체제

[운영체제] 프로그램 실행

● 프로그램의 실행 (메모리 Load) 실행 파일은 하드 디스크에 저장이 되고, 실행을 시키면 가상 메모리 단계를 거쳐 물리적 메모리에 올라가 프로세스가 된다. 프로그램을 실행시키면 자기 자신만의 독자적인 주소 공간이 만들어지며, 주소 공간은 Stack, Data, Code영역으로 구성되어 있다. ​ 코드 영역 메모리의 코드 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부른다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. 데이터 영역 메모리의 데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역이다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 스택 영역 메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수와..

728x90
반응형
라닝
'가상 메모리' 태그의 글 목록