프레임 할당

이한수·2022년 3월 22일
0

OS

목록 보기
10/10
post-thumbnail

개인 공부 내용 정리 목적입니다.
참고 : 양희재 교수님(OS)
참고 : https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-17.-%ED%94%84%EB%A0%88%EC%9E%84-%ED%95%A0%EB%8B%B9

1.쓰레싱?

메모리에 올라와 있는 프로세스가 많을 수록 CPU의 이용률이 높아진다고 생각할 수 있다.

하지만 , 초기에는 프로세스의 수 비례하여 이용률이 증가하지만 , 일정 범위 이상을 많아질수록

오히려 사용률은 떨어진다.

왜?

프로세스들이 메모리를 가득 차지 하게 될 경우

backing store에서 필요한 페이지를 가져오기 위한 빈번한 page in/out 으로 인해 그렇다.

해당 명령들은 디스크 I/O 작업으로써 CPU를 사용하지 않기 때문이다.

해결방안은 없을까?

  • Global Replace 보다 Local Replace 를 사용한다.
  • 프로세스당 적절한 수의 프레임(메모리)을 할당 한다.

참고


Global Replace?

메모리 상의 모든 프로세스 페이지에 대한 교체 작업을 수행한다.

Local Replace

메모리 상의 자기 자신의 프로세스 페이지에 대해서만 교체 작업을 수행한다.

메모리 효율은 일반적으로 Global Replace가 좋다고 한다.


프레임 할당 방식으로는 크게 정적과 동적 방법이 있다.

정적

equal allocate

→ 올라오는 프로세스마다 동일한 프레임 수를 할당한다.

비례할당

→ 프로세스의 크기를 따져 비례적 으로 할당한다.

동적

working set model

→과거에 시간대 별로 사용되는 프로세스 혹은 페이지들이 모여있는 구간을 측정한다.

이것을 근거로 삼아 특정 시간대에 사용될 페이지들을 예측하여 할당해주는 것을 말한다.

특정 시간대에 사용된 페이지들의 집합을 working set이라고 한다.

page fault frequency

→ 한 프로세스에 할당된 프레임 갯수와 페이지 부재 간의 관계를 나타낸 것이다.

즉 , 한프로세스에 할당되는 프레임 갯수가 많을 수록 page fault가 조금 발생하고 , 적을 수록 많이 발생한다는 것이다.

OS는 이러한 관계를 알고 page fault 발생 비율의 상한선과 하한선을 정해놓고 , 해당 프로세스에서 상한선을 초과하면 더 많은 프레임을 할당해주고 , 하한선 이하면 프레임을 회수하는 방식이다.


2.페이지 크기

일반적으로 4KB~4MB 이다.

시간이 갈수록 점차 커지는 경향이 있다.

페이지 크기 영향

  • 내부 단편화 → 크기가 클수록 내부 단편화도 커진다.
  • Page-in , Page-out → 크기가 클수록 빈도수가 적다.
  • 페이지 테이블 크기 → 크기가 클수록 불연속한 메모리가 적어지므로 페이지 테이블의 엔트리들이 줄어든다.
  • Memory Resolution → 메모리에 필요한 데이터만 있는 정도를 의미한다. 쉽게 말해 , 올라온 페이지가 정말 당장 필요한 것들만 있는가 , 아니면 필요치 않은것도 있는가를 나타내는 것이다.
  • Page fault → 크기가 클수록 Page fault는 줄어든다.
profile
성실하게

0개의 댓글