본문 바로가기

정보처리기사

[ OS ] 메모리 관리

운영체제의 역할 중 가장 핵심은

여러 프로세스들이 공유하는 컴퓨터 시스템 자원을 관리하는 것이다.

 

그 중, 메모리 관리에 대해 정리해보자.

 

 

[ 메모리 관리 개념 ]

- 메모리 관리는 중앙 처리 장치, 메모리, 스토리지, 주변 기기등을 적절히 관리하는 기법이다.

- CPU가 프로그램을 읽어서 연속적으로 동작하기 위해서는 메모리 관리의 역할이 중요하다.

 

 

[ 메모리 관리 기본 사항 ]

 

[1] 가상 메모리 ( Virtual Memory )

: 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 부여하는 방식

 

: 가상 주소(Virtual Address), 물리 주소(Physical Address)가 있고,

가상 주소의 범위를 가상 주소 공간, 물리 주소의 범위를 물리 주소 공간이라 한다.

 

: 가상 주소 공간은 메모리 관리 장치(MMU)에 의해 물리 주소로 변환된다.

 

 

*)  디스크의 SWAP 영역

: 운영체제는 프로세스를 통째로 메모리에 올릴 수 있지만,

CPU에서 당장 수행해야할 부분만 메모리에 올리고 나머지는 디스크의 swap 영역에 두어

메모리를 효율적으로 사용한다.

 

  •  가상 메모리는 왜 필요한가?

일반적으로 한 시스템의 여러 프로세스들은

CPU, 메인 메모리를 공유한다.

CPU를 공유하는 부분에서는, 일반적으로 순서를 기다리느라 느려질 뿐 ( CPU Scheduling )

심각한 오류가 발생하지는 않는다.

그러나, 프로세스들이 존재하는 메모리가 여유가 없이 지나치게 많은 요구에 의해 오염될 경우,

프로그램의 논리와 무관하게 오류가 난다.

이를 방지하기 위한 기술이 가상메모리이다.

 

운영체제는 프로그램이 자기 자신만의 가상 메모리를 사용하는 것처럼 가정해 프로그램 하는 것을 지원한다.

가상 메모리 주소 공간은 논리적 주소로서, 모든 프로그램마다 0부터 시작하게 된다.

즉, 가상메모리는 프로세스마다 논리적 주소공간을 가지고

이 주소공간의 일부는 물리적 메모리에 적재되고, 일부는 스왑영역(disk의 swap영역)에 존재한다

 

-> 가상 메모리 장점)

: 메모리 사용량 감소 ( Process의 일부만 올림 )

: 입출력 오버헤드 감소

: 시스템이 더 많은 프로세스를 수용할 수 있음.

: 프로그램이 물리적 메모리의 용량 제약에서 자유로워짐. ( 메모리보다 큰 프로그램 실행 가능 )

-> 가상메모리 기법은, 프로세스의 주소공간을 적재하는 단위에 따라

요구 페이징 기법 / 요구 세그멘테이션 기법 으로 나눌 수 있다.

 

  • 가상 메모리와 캡슐화, 정보은닉

가상메모리 기술은 사용자가 신경쓸 필요 없이, OS 측에서 자동으로 작동한다. ( 캡슐화, 정보은닉 )

사용자가 프로세스를 올리고 내림에 있어서 역시 사용자가 신경 쓸 필요없이

OS의 가상메모리를 활용하여 자동으로 메모리 관리를 위임할 수 있다는 장점이 있다.

 

  • MMU가 가상 메모리를 실제 물리 메모리로 매핑해준다.

가상메모리는 프로세스들에게 각각의 비어있는 메모리 영역을 부여한다.

프로세스의 가상 메모리 접근은 물리 메모리의 접근으로 이어진다

 

가상주소는 MMU에 의해 물리 주소로 매핑된다.

 

 

[2] 메모리 관리 장치 ( MMU : Memory Management Unit )

: CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어

 

: 가상 메모리 주소를 실제 메모리 주소로 변환

 

: 메모리 보호, 캐시 관리, 버스 중재 등의 역할을 담당

 

*) 버스 : 컴퓨터 안의 부품들 간에, 또는 컴퓨터 간에 

데이터와 정보를 전송하는 통로(통신 시스템)

CPU가 가상 메모리 주소를 MMU에 넘겨주면, MMU는 그 주소를 받아 실제 메모리 주소로 변환하기 위해 변환 참조 버퍼(Translation Lookaside Buffer, TLB)라는 고속의 보조기억장치를 참조한다. 여기에 변환 정보가 없으면, 더 느린 다른 방법으로 페이지 변환 정보를 얻어오는데, 이 페이지 변환 정보가 담긴 정보를 페이지 테이블(Page Table)이라 한다.

 

 

[3] 메모리 관리자

: 기억장치의 어느 부분이 사용 중인지 아닌지를 조사하여,

프로세스에게 필요할 때마다 기억장치를 할당 후 회수하는 작업을 수행한다.

 

: 실행 파일 심볼의 재배치 주소를 프로세스의 논리 주소로 연결시키는 작업을 수행한다.

 

 

 

[ 메모리 관리 기법 ]

- 반입 기법, 배치 기법, 할당 기법, 교체 기법

 

[1] 반입 기법

- 주기억장치에 적재할 다음 프로세스의 반입시기를 결정하는 기법

: 요구 반입 기법, 예상 반입 기법

 

[2] 배치 기법

- 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법

- 메모리 적재 위치 결정

: 최초 적합, 최적 적합, 최악 적합

 

[3] 할당 기법

- 실행해야할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법

- 메모리 적재 방법 결정

: 연속 할당 기법, 분산 할당 기법

 

[4] 교체 기법

- 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법

- 메모리 교체 대상 결정

: Process Swap In, Swap Out / FIFO, LRU, LFU

 

----

 

<메모리 반입 기법> : When

- 요구 반입 기법

: 다음에 실행될 프로세스가 참조 요구가 있을 경우에 적재하는 기법

 

- 예상 반입 기법

: 시스템의 요구를 예측해서, 미리 메모리에 적재하는 방법.

: 요구되는 페이지 이외 다른 페이지도 함께 적재함.

 

<메모리 배치 기법> : Where

=> 프로세스들과 빈 공간(hole)의 연속으로 이루어진 메모리 상에서,

새로운 프로세스를 어디에 적재를 할 지 판단하는 알고리즘이 필요하다.

( first fit, best fit, worst fit )이 대표적으로 존재한다.

 

- 최초 적합

: 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식

 

- 최적 적합

: 가용 공간 중에서 가장 크기가 비슷한 공간을 선택해서 프로세스를 적재하는 방식

 

- 최악 적합

: 프로세스의 가용 공간 중에서 가장 큰 공간에 할당하는 방식

 

<메모리 할당 기법> : How

- 프로세스를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용

 

: 연속 할당 기법 ( Contiguoust Allocation )

-> 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법 ( = 프로세스를 쪼개지 않음 )

단일 분할 할당 기법, 다중 분할 할당 기법이 있다.

 

 

: 분산 할당 기법

-> 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법.

-> 주로 가상기억장치에서 사용한다.

프로세스를 조각내는 방식에 따라,

1) 페이징 기법

2) 세그멘테이션 기법

으로 나뉜다.

 

< 메모리 할당 기법 : Paging 기법>

- 가상기억장치 내의 프로세스를 일정하게 분할하여, 주기억장치의 분산된 공간 ( Frame )에 적재시킨 후,

프로세스를 수행시키는 기법

 

- 연속 할당 기법에 의한, 외부 단편화(External Fragment)를 해결하기 위해 제안됨.

 

- 실제 공간은 페이지 크기와 같은 페이지 프레임으로 나누어 사용한다.

( 논리 주소의 페이지의 크기 = 물리 주소에 매핑되는 프레임의 크기 )

 

- 이 때, 프로세스는 실제로 일정 단위로 쪼개져있지만

실행될 때는 그 자체가 연속적인 메모리공간 상에 있다고 이해하고 있어야

프로그램 실행이 효율적이게 된다.

 

-> 논리 주소 공간과 물리 주소 공간을 분리하고, 주소의 동적인 재배치가 허용되어야 한다.

-> 논리 주소와 물리 주소를 변환해주는 전용 하드웨어인 MMU가 필요하다.

 

페이지의 크기 = 프레임의 크기, 일반적인 운영체제에서 페이지와 프레임의 크기는 보통 4KB가 된다.

 

외부 단편화 문제는 해결했으나,

프로세스가 실행될 때 자기는 연속된 위치의 메모리라고 이해한 상태로 각각의 페이지가 어디에 있는지를 매번 빠르게 찾을 수 있어야지만이 프로세스가 실행이 된다.

각각의 페이지가 실제 메모리에 어떤 프레임에 저장이 되어있는가에 대한 매핑 정보를 담고 있는 자료구조가

Page Table이다.

 

Page Table은 프레임 번호를 담고있는 배열이고, 그 인덱스는 페이지 번호를 가리킨다.

즉, 페이지 번호를 가지고 인덱스로 직접 접근 시, 해당 페이지가 담고 있는 프레임을 바로 알 수 있게 된다.
( 배열 자료구조를 활용한 O(1) 의 탐색속도 )

Page Table은 프로세스 마다 존재하며, 프로세스는 PCB에 해당 정보를 저장한다.

P는 논리 주소의 페이지 번호, f는 물리 주소의 프레임 번호이다. d는 변위(offset)이다. 페이지 테이블에서 실제 메모리 기준 주소를 찾고, 변위를 더해 물리 메모리 주소를 결정한다.

 

< 메모리 할당 기법 : Segmentation 기법 >

- 프로세스를 세그멘트로 나눠 관리하는 방식

 

- 가상기억장치 내의 프로세스를

서로 크기가 다른 논리적 단위인 세그먼트로 분할하고 메모리를 할당하는 기법

 

- 분할 형태가 배열이나 함수와 같은 논리적인 다양한 크기의 가변적인 크기로 관리한다.

 

우리가 프로그램을 보면, 같은 크기로 나누기는 힘들다. ( 페이징 기법처럼 )

왜냐하면, main문 / 입출력함수 / 그래픽부분등의 파트들이 모두 사이즈가 다를 가능성이 높기 때문이다.

고정된 크기가 아닌, 논리적 내용을 기반으로 한 크기로 나눠서 메모리에 배치한다.

 

 

CPU가 이를 읽을 때는 페이징의 Page Table 처럼, Segment Table을 참조한다.

Segment Table을 만들때에는, 세그멘트 번호와 시작 주소(Base Address),

세그멘트의 길이를 지정하는 길이(limit)로 구성된다.

 

- 세그먼트 계산 시에는 세그먼트의 크기가 일정하지 않기 때문에, 테이블에 시작 주소와 세그먼트 크기(limit) 정보가 주어진다.

- 단, CPU에서 해당 세그먼트의 크기를 넘어서는 주소가 들어오면, 인터럽트/trap이 발생하셔 해당 프로세스를 강제로 종료시킨다.

 

세그멘테이션은 보호와 공유에서 효율적이나 외부단편화문제로 페이징 기법을 대부분 사용한다.

페이징 기법에도 내부단편화문제가 존재하여

이를 보완하기 위한 페이징/세그멘테이션 기법이 개발되었다.

하나의 세그멘트를 정수 배의 부분 페이지로 다시 분할하는 방식이다.

 

 

< 메모리 교체 기법 >

- 주기억 장치에 있는 프로세스 중, 어떤 프로세스를 제거할 것인지를 결정하는 기법이다.

 

- 새로운 페이지를 할당하기 위해, 현재 할당된 페이지 중 어느 것과 교체할 것인지를 결정하는 방법이다.

 

- 대표적인 알고리즘으로는, FIFO / LRU / LFU / OPT / NUR / SUR 등이 있다.

 

- Page Fault

=> CPU에서 요청한 페이지가 현재 메모리에 없어 유효-무효 비트가 무효로 세팅되어 있는 경우를 말한다.

Page Fault 발생 시, 페이지를 디스크에서 읽어와야 하는데 이 과정에서 막대한 오버헤드가 발생한다. (I/O 작업)

즉, 요구 페이징 기법은 페이지 부재 발생률이 성능에 큰 영향을 미친다.

cf. Page Hit

 

페이지 부재 시 동작 과정
1. MMU(Memory Management Unit)가 페이지 부재 트랩을 발생시킨다. (트랩=소프트웨어 인터럽트)
2. 인터럽트로 인해 커널모드로 전환되어 OS의 페이지 부재 처리 루틴이 호출된다.
3. 해당 부재 페이지의 보호비트를 참조해 접근이 가능한지 체크한다.
4. 물리메모리에 비어있는 프레임을 할당받고 그곳에 페이지를 읽어온다.
5. 페이지를 읽어오는 동안 프로세스는 wait상태가 된다.
6. 디스크 입출력 완료시 인터럽트를 발생시키고 해당 페이지의 유효-무효 비트를 유효로 세팅한다

 

특수 상황) 페이지 교체

 

페이지 부재 발생 시, 메모리에 해당 페이지를 적재해야하는데 이때 메모리가 꽉 찼다면?

- 이때는, 메모리에 있는 페이지 중 가장 쓸모 없어보이는 것을 골라 Disk의 Swap 영역으로 쫓아내고,

그 자리에 부재된 페이지를 적재해야한다. 이 과정이 페이지 교체이다.

 

교체할 페이지를 선정할 때, 교체 대상이 될 프레임의 범위에 따라

전역 교체와 지역 교체로 나눌 수 있다.

전역교체 방법은 모든 페이지 프레임이 교체 대상이 될 수 있는 방법이고,

지역교체 방법은 현재 수행중인 프로세스에게 할당된 페이지 프레임 내에서만

페이지 교환을 하는 방법이다.

-> 이 때, FIFO / LRU / LFU 등의 페이지 교체 알고리즘 (정책)이 적용된다.

 

*) LRU는 최근에 참조된 페이지가 다시 참조될 가능성이 높다는

'시간 지역성' 개념을 전제로 제시되었다.

Page Fault를 처리하는 과정 ( page table 의 i는 무효 비트, 즉 해당하는 페이지가 메모리에 올라와있지 않음을 나타낸다. cf. v 로 표시되면, 페이지가 메모리에 올라와있다는 의미 : Page Hit )

[ 페이징 기법의 문제 및 해결방안 ]

 

1) 스레싱 ( Thrashing )

- 어떤 프로세스가 계속적으로 Page Fault가 발생하여, 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상이다

( Process가 Running 하는 시간보다, Wait 상태에 있는 시간이 더 길다 )

 

- 메모리 영역에 접근하게 될 때, 메모리에 페이지 부재율이 높은 것 -> 심각한 시스템 성능 저하를 일으킴

 

- Page Fault가 계속 증가하여, 기억장치 접근 시간이 증가한다.

 

- 다중프로그래밍 정도가 높아지면 어느정도까지는 CPU 이용률이 오르지만,

한계치를 넘으면 스레싱이 발생하고 CPU이용률이 급감한다.

 

*) 

https://jwprogramming.tistory.com/56

 

Thrashing (쓰레싱)이란?

Thrashing(쓰레싱)- 메모리 영역에 접근하게 될 때, 메모리에 페이지 부재(=페이지 폴트(Page fault)율이 높은 것을 의미하며, 심각한 성능 저하를 초래합니다. - 활발하게 사용되는 페이지 집합을 지원

jwprogramming.tistory.com

위 블로그에서 쓰레싱에 대해 너무 잘 설명해놔서 내용을 가져온다.

 

( 쓰레싱의 원인 )

 

1) 다중 프로그래밍 정도가 높아짐에 따라 CPU 이용률이 높아지게 되고,

CPU 이용률이 최대값에 도달했을 때, 다중 프로그래밍의 정도가 그 이상으로 커지게 되면

쓰레싱이 일어나게 되고 CPU 이용률은 급격하게 떨어진다.

 

2) 운영체제는 CPU 이용률을 감시하며, CPU이용률이 너무 낮아지면 새로운 프로세스를 시스템에 추가하여

다중 프로그래밍의 정도를 높이게 된다.

이 때, 전역 페이지 교체 알고리즘을 사용하여 어떤 프로세스의 페이지인지에 대한 고려없이 교체를 수행하게 된다. 

 

그런데, 교체된 페이지들이 해당 프로세스에서 필요로 하는 것이었다면,

그 프로세스 역시 Page Fault를 발생시키고, 또 다른 프로세스에서 프레임을 가져온다.

 

이러한 프로세스들이 페이지 Swap In, Swap Out을 위해 페이징 장치를 사용해야하는데,

이 장치에 대한 Queueing 이 진행되며, Ready-Queue는 비게 된다.

 

프로세스들이 페이징 장치를 기다리는 동안 ( Wait ),

CPU 이용률은 떨어지게 되고, CPU 스케줄러는 이용률이 떨어지는 것을 보고

이를 높이기 위하여 새로운 프로세스를 추가하여 다중 프로그래밍의 정도를 더 높인다.

 

새로 시작하는 프로세스는 실행중인 프로세스들로부터 프레임을 가져오고자 하며,

더 많은 페이지 폴트와 더 긴 페이징 대기시간을 야기한다.

 

결과적으로 CPU 이용률은 더 떨어지게 되며,

CPU 스케줄러는 다중 프로그래밍의 정도를 더 높이려 하게 되며 쓰레싱이 일어나게 된다.

따라서, 시스템 처리율은 상당히 낮아지고, 페이지 폴트는 늘게되어

실질적인 메모리에 접근하는 시간은 증가하고, 프로세스들은 페이징 하는데에 시간을 소비하게 되어

아무런 일도 할 수 없는 상태가 된다.

 

다중프로그래밍 정도 : 메모리에 동시에 올라가 있는 프로세스의 수

 

 

x축은 다중프로그래밍 정도 ( = 메모리에 동시에 올라가 있는 프로세스의 수 )이다.

해결책

- 다중프로그래밍 정도를 적정 수준으로 유지한다.

- 페이지 부재 빈도를 조절한다.

- Working Set을 유지한다.

- 일부 프로세스를 중단한다.

 

<Thrashing 관리 : Working Set>

- 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여

빈번한 페이지 교체 현상을 줄이고자 하는 방법

 

워킹 세트의 예시

장점 : 멀티프로그래밍 정도를 높일 수 있고( Page Hit ) 증가, CPU 활용률을 최적화할 수 있음.

단점 : 워킹 세트의 추적관리가 복잡하고, 워킹 세트 크기 설정의 모호함 발생

 

- 프로세스의 지역성(Locality) 특성을 활용해서 구현.

 

<Thrashing 관리 : 페이지 부재 빈도 관리 >

- '허용 가능한' 페이지 오류 비율을 설정한다.

 

- 실제 속도가 너무 낮으면, 프로세스가 프레임을 잃는다.

 

- 실제 속도가 너무 높으면, 프로세스가 프레임을 얻는다.

 

 

 

< 지역성 >

 

- 지역성(Locality)의 개념

 

: 프로세스가 실행되는 동안 주기억장치를 참조할 때, 일부 페이지만 집중적으로 참조하는 특성이다.

 

: 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법의 하나로, 가상 기억장치 관리의 이론적 근거가 되었다. ( = 잘 안쓰이는 프로세스의 페이지 -> 디스크에 관리, Swap In, Swap Out )

 

: 스레싱을 방지하기 위한 워킹 셋 이론의 기반이 되었다. ( = 자주 사용되는 페이지 집합을 설정 , 다중 프로그래밍 정도는 높이고 / 쓰레싱은 방지하고 )

 

< 지역성의 유형 >

- 시간 지역성

: 최근 사용되었던 기억장소들에 집중저으로 엑세스하는 현상

: 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높은 특성

-> ex. Loop, Stack, SubRoutine, Counting, Totaling에 사용되는 변수

-> ex. 운영체제 메모리 교체 기법 중, LRU 알고리즘

 

- 공간 지역성

: 프로세스 실행 시 일정 위치의 페이지를 집중적으로 엑세스하는 현상

: 참조된 메모리 근처의 메모리를 참조하는 특성

-> ex. 배열 순회,

프로그래머들이 관련된 변수들을 서로 근처에 선언하여 할당되는 기억장소,

같은 영역에 있는 변수 참조

 

- 순차 지역성

: 데이터가 순차적으로 엑세스 되는 현상

: 프로그램 내의 명령어가 순차적으로 구성된 특성

-> ex. 순차적 코드 실행

 

참고) 프로세스의 가상메모리 구조

프로세스의 PCB에 들어있는 메모리 구조, 논리적 단위인 세그먼트라 생각해도 될거같다.

 

 

참고자료 :

https://namu.wiki/w/%EA%B0%80%EC%83%81%20%EB%A9%94%EB%AA%A8%EB%A6%AC

 

가상 메모리 - 나무위키

가상 메모리의 주요한 기능은 다음 3가지로 요약할 수 있다. 메모리 관리의 단순화: 각 프로세스마다 가상메모리의 통일된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해진다. 메모리

namu.wiki

https://velog.io/@adam2/OS%EA%B8%B0%EC%B4%88-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC-%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%B6%80%EC%9E%AC-%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B1%84-%EC%8A%A4%EB%A0%88%EC%8B%B1

 

[OS기초] 메모리 관리(가상 메모리, 페이지 부재, 페이지 교채, 스레싱)

운영체제의 메모리 관리 운영체제는 자원의 효율적인 관리를 도맏아 하는 소프트웨어이다. 따라서 운영체제는 어떤 프로그램에 얼마만큼의 메모리를 할당해야 할지를 결정해야한다. 메모리 할

velog.io

 

https://m.blog.naver.com/dilector/221787085698

 

10. 가상메모리 – 개념

1. 개념 - 물리 메모리(Physical Memory)의 크기에 따른 한계를 극복하기 위한 기술 - 물리적인 메인 메...

blog.naver.com

https://parksb.github.io/article/12.html

 

🦕 공룡책으로 정리하는 운영체제 Ch.8: Memory-Management Strategies

메모리에 로드된 프로세스를 효율적으로 관리하는 방법을 다루는 챕터로, 복잡한 매커니즘과 계산이 나오기 시작해 조금 어려워지는 단계다.BackgroundCh.1 Overview에서 언급했듯 메모리는 현대 컴

parksb.github.io

 

https://jhnyang.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-OS-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC%EA%B8%B0%EB%B2%95-%ED%8E%98%EC%9D%B4%EC%A7%95-paging

 

[운영체제 OS] 메모리 관리기법 - 페이징 (paging)이란? 내부 단편화(Internal Fragmentatoin)에 대해 알아

[운영체제 완전정복 링크 모음] 안녕하세요 양햄찌 블로그 입니당. 오늘은 드디어 운영체제에서 중요한 한 섹션을 차지하고 있는 페이징(paging)에 대해 살펴보려고 해요. 오늘 진행하려는 포스팅

jhnyang.tistory.com

 

https://goodmilktea.tistory.com/35

 

7. 메모리 관리 기법(3) - 페이징, 세그멘테이션

지금까지 메모리공간을 효율적으로 할당해보기 위해 연속메모리할당, 스와핑에 대해 알아보았다. 이로인해 발생하는 외부 단편화문제를 해결하기 위한 접근방법으로써 페이징이라는 메모리

goodmilktea.tistory.com

https://blog.naver.com/hblee4119/222568158562

 

가상 메모리 (Virtual Memory)

가상 메모리 시스템 ( Virtual Memory System ) 메모리 관리 기법 중 하나로 기계에서 실제로 이용 가능...

blog.naver.com

 

https://steady-coding.tistory.com/524

 

[운영체제] 페이징과 세그멘테이션

cs-study에서 스터디를 진행하고 있습니다. 메모리 메인 메모리 (Main Memory, Physical Memory, 주기억장치) CPU가 직접 접근할 수 있는 기억 장치로, 프로세스가 실행되려면 프로그램 코드를 메인 메모리

steady-coding.tistory.com

 

'정보처리기사' 카테고리의 다른 글

[ OS ] 운영체제 기초 - 운영체제 개념, 종류  (0) 2023.06.25