[OS] Memory management

HyunDong Lee·2021년 10월 21일
0

OS

목록 보기
6/7
post-thumbnail

🗣 Memory managing

  • Ideally programmers want memory that is fast
    • large
    • fast
    • non-volatile
  • Memory Hierarchy
    • small amount of fast, expensive memory - cache
    • some medium speed, medium price main memory
    • cheap disk storage - SSD
  • Memory manager
    • part of the ioerating system that manages the memory hierarchy

Basic memory management

  • an operating system with one user process
  • Three simple ways of organizing memory
    • (a) mainframes, minicomputers
      • Ram, Ram아래 os 위에 user program이 있다.
        - (b) palmtop computers, embeded systems
    • (c) personal computers

🙈 Multiprogramming with Fixed Partitions

  • Fixed memory partitions (메모리 파티션으로 나누어 놓음)

    • separate input queues for each partition
    • single input queue

separate input queue
파티션 마다 input queue가 존재하는 (a), 단점으로 수용할 수 있는 가장 작은 partition 에 가는데 partition3같은 큰 메모리 주소 공간에 배당되지 않아서 메모리를 사용하지 않을 수 있다.

single Input queue
size만 맞으면 먼저 도착한 작은 job이 유리하다.

🙈 Relocation and protection

multiprogramming에서 존재하는 두가지 문제점이다. 위 두 문제를 해결하기 위해 각각 두가지 문제가 존재한다. When it comes to multiprogramming usually face two different problems we're going to figure it out

  • cannot be sure where program will be loaded in memory

    • Relocation
      • address locations of variable. code routines cannot be absolut.
      • protection
      • must keep a program out of other processe's partitions 한 프로세스가 다른 프로세스에 침범할 수 없게 해야한다.
  • Relocation and protection

    • Modify the instruction as the program is loaded into memory
    • Use base and limit register.

🧠 relocation solution

Linker should tell which program words adre addresses to be relocated or use base register.

program이 memory에서 로딩도리 때 call 100번지를 하는 instruction을 call 100k + 100으로 바꿔서 call한다.
base register를 사용하면 로딩시 ins를 바꾸지 않고 그냥 로딩한 후 call 100k 한후 100을 더한다.

🧠protection solution

use limit register

program partition1에 배당 될 때 주소 100k partition의 size가 limit register로 들어가고 그 size를 넘는지 program size와 비교한다.

🙈Memory management

SwappingVirtual memory
bring in each process in its entirety, running it for a while, then put it back on disk 프로세스 통째로 disk로 보냈다가 mm로 가져온다.Allow programs to run ecen when they are only partially in main memory Active한 프로세스 mm에 넣지 못하면 disk에 넣게된다.

⛑Swapping

Multiprogramming with Variable partitions

  • Memory allocation chages as
    • processes come into memory
    • Leave memory
  • Shaded regions are unused memory
  • Memory compaction
    • Combine multiple holes into one big one by moving all the processes downward. 빗금 쳐 있는 부분을 합쳐서 memory로 사용할 수 있게 하는 것.

0개의 댓글