(2024모각소)운영체제-demand paging

LEEHYUNJE·2024년 7월 29일
0

아주대학교_모각소!

목록 보기
14/23

Demand paging의 필요 조건 3가지

  1. page table은 valid/invalid bit를 가져야한다.
  • exception을 통해서 disk에서 가져오는 것을 결정해야한다.
  1. 세컨더리 스토리지
  • disk가 존재해야 swap space가 존재할 수 있기 때문이다.
  1. Instruction restart는 모르겠음

Virtual Memory

  • application은 모두 logical memory 주소를 사용해서 메모리를 참조한다.
  • 현대 시대의 거의 대부분 device는 virtual memory를 사용한다.

virtual Memory Advantages

  • 위와 같은 여러가지 장점이 있다.

Shared Memory

  • 한개의 피지컬 페이지를 서로다른 프로세스가 공유해서 사용할 수 있도록 한다.
  • 즉, 서로 공유할 수 있는 메모리를 사용할 수 있도록한다
    -> 프로세스끼리 쉽게 통신할 수 있다.

  • 위 Shared Memory를 fork()에서 유용하게 사용할 수 있다.
    • fork()를 했을 때 physical memory 공간을 더 쓰지말고 공유해서 메모리를 낭비하지말자.
      -> but, 자식프로세스, 부모프로세스가 진행할 때 실제 피지컬 메모리를 update 하면 충돌 발생
  • 해결방법(Copy-on-Write)
    1. 운영체제paging table에 존재하는 entry의 permission bit를 재설정하여 write를 하지 못하게 만든다.
    2. 프로세스에서 Write를 하게 되면 page fault를 통해서 write를 한 page에 새로운 frame을 할당하여 포인팅하게 만 든다.
    • 이때 frame내의 숫자(ref count)는 그 frame을 참조하고 있는 page의 수이다.

OS는 memory의 어디에 저장되어있나?

  • process address space를 모두 다쓰지 않는다.
    user address space, kernel address space로 나위어진다.
  • 유저 프로세스들은 같은 kerner address space를 공유한다.

Thrashing


working sets:

Prepaging

  • disk에서 조만간 참조할 것 같은 애를 어떻게 잘 찾을 것인가에 대한 이슈
    • 수업시간에는 배우지 않을 것이다.

external fragmentation을 해결하는 방법

buddy System Allocator: allocate 자체를 2의 n승 만큼을 allocation하고 free하도록 만든다.

  • 전체 16page로 가정하고 2page를 달라고하면 계속 2로 나눠, 2page만큼을 할당한다.
    -> 따로 공부해라

chunks: physically contigeous한 메모리 덩어리

반환은?

그럼 위 과정이 반복되면, 할당해줄 수 있는 공간이 계속 작아져서, 조금 큰 process는 할당이 안될 수 밖에 없지 않나?

해결방법

  • 할당하기 전 buddy관계였던 두 chunk들이 서로 free됐다면, 합쳐저서 더 큰 공간을 만들어 쪼개지지 않는 상태를 유지한다.

모각소 후기

오늘도 다같이 모여 모각소를 진행했다. 혼신을 쏟은 SW융합창업캠프에서 수상을 못한 덕에 분위기는 좋지 않았지만, 다같이 묵묵히 열심히 하는 모습을 보며 나도 동기부여되고 열심히 할 수 있었던 것 같다. 오늘도 운영체제 공부를 진행했다. 어제 운영체제를 슬쩍 봤는데 처음 보는 느낌이여서 충격을 받아 다음학기 재수강할 운영체제를 대비해 공부를 진행했고, 이번주는 우리 창업동아리가 개발중인 어플리케이션의 로그인을 위해 spring security 를 공부해야겠다

profile
현재진행중

0개의 댓글