본문 바로가기
반응형

반도체 그 다음 학문73

운영체제 Virtual Memory ( 필요한 이유 ) Virtual Memory 간단하게 말해서 프로세스의 논리 메모리와 물리 메모리를 분리하기 위해 생긴 개념이다. 왜 분리를 해야 하냐면, 물리 메모리의 한계를 극복하기 위해서이다. 무슨 말이냐면 여러 프로그램을 돌리면 메모리 부족의 문제가 생긴다. 이는 메모리 침범의 문제로 이어지기 때문에 이를 해결하고자 한 방법이다. 이런 이유 때문에 가상 메모리와 물리 메모리를 분리한다는 의미다. 논리 메모리가 가상 메모리다. 왜 가상 주소가 필요한지 예를 들어보자, 3개의 프로그램을 일정 시간에 따라 반복적(time에 따라)으로 돌리고 메인 메모리의 크기는 64KB라고 가정해보자. 그러면 먼저 taks1 (32KB), task2(16KB), task3(48KB)의 정보는 Hard disk에 다 들어있을 것이다. 그.. 2022. 6. 8.
운영체제 Swapping ( page in, page out ) Swapping 여러 프로그램을 메모리상에서 돌리다 보면 메모리가 부족할 수밖에 없다. 이런 메모리 부족을 해결하기 위해서 나온 방법이 Swapping이다. 더 많은 프로세스가 메모리에 존재할 수 있도록 하는 것이다. swapping을 사용하면 프로세스를 다시 실행할 때 처음부터 메모리에 올리는 것이 아니라 더 빨리 할 수 있기 때문이다. Swapped은 backing store를 만들어서 프로세스 단위로 swap in, swap out을 동작한다. ( backing store는 임시저장소로 하드디스크나 NVM처럼 여러 하드웨어가 될 수 있다. 즉 Secondary Storage다.) 프로그램이 실행되면 Bakcing store에 있는 필요한 page 정보를 메모리에 올린다. 이렇게 프로세스 단위로 왔다.. 2022. 6. 8.
운영체제 TLB ( Translation Look-aside Buffer ) TLB에 대해서 다른 포스팅에도 적어놨는데 좀 더 자세히 알고 싶다면 참고하길 바란다. 아래 내용과 대부분 겹치기 때문에 아래 포스팅만 읽어도 된다. 간단히 알길 원하면 아래 포스팅은 스킵하면 된다. 2022.08.24 - [내가 하는 공부/Arm] - Arm TLB란? ( page table, 48bit 가상 공간, virtual memory, ASID , TTBR ) Arm TLB란? ( page table, 48bit 가상 공간, virtual memory, ASID , TTBR ) TLB (Translation Lookaside Buffer) 요놈을 알기 위해선 page table이라는 개념을 알고 있어야 한다. 알아보자 page table page table이란 간단히 말해 가상 주소와 실제 주.. 2022. 6. 8.
운영체제 paging 페이징 ( page란, page table, TLB가 나온 이유, page table entry ) Paging 연속적으로 물리 주소를 할당하니 여러 문제가 생겨서 이 문제를 해결하기 위해 나온 개념이다. paging이란 간단히 말해 논리 주소 (= 가상 주소)는 연속적으로 할당하나 물리 주소를 비연속적으로 할당하는 것이다. 할당할 때 하나의 단위로 메모리를 나누는데 논리 주소와 물리 주소에서 부르는 명칭이 다르다. 논리 주소에서 고정적 단위를 Page라고 한다. 조금 더 자세히 말하면, DRAM에서 Row 하나에서 Active되는 Column의 갯수를 말한다. 물리 주소에서 고정적 단위를 Frames라고 한다. 보통 하나의 page 크기는 512B ~ 16MB로 지정하는데 보통 4MB로 지정한다. 그런데 고정적인 크기로 지정하여 할당하면 예전에 말했던 static allocation과 뭐가 다르냐는 .. 2022. 6. 8.
운영체제 Memory Allocation (논리메모리, 물리메모리, Dynamic Loading, paging이 나온 이유 ) memory를 나눌 때 어떻게 눌지 정해야 한다. 모든 프로세스는 메모리에 올라와서 실행되는데 각각의 프로세스는 자신만의 할당 메모리가 있다. 이때 하나의 프로세스가 다른 프로세스 메모리에 침범하면 문제가 생긴다. 이런 이유 때문에 메모리의 구분이 필수적이다. 예방하는 방법으로 가장 단순하게는 시작 주소와 끝 주소를 지정하는 것이다. base 주소로부터 limit 주소를 하나의 프로세스에게 할당한다. (+아래서 보이지만, 운영체제 또한 메모리 상에 존재한다.) 어떤 프로세스를 할당할 때, base 주소보다 크고 base + limit 주소보다 작은 공간이 비어 있다면 할당하는 순서를 가질 수 있다. Memory Address 메모리에는 Logical address와 Physical address가 존재한.. 2022. 6. 8.