메모리 관리 - 2

Jeong seulho·2023년 2월 23일
0

운영체제

목록 보기
18/35

📌continuous memory allocation

  • 프로세스(context)를 하나의 연속된 메모리 공간에 할당
    • 프로그램, 데이터, 스택
  • 고려해야할 점
    • 메모리에 동시에 올라갈 수 있는 프로세스 수
    • 각 프로세스에게 할당 되는 메모리 공간크기
    • 메모리 분할 방법

📌uni-programming

  • 하나의 프로세스만 메모리 상에 존재
  • programing degree = 1

❌유니 프로그래밍 문제점

  • 프로그램 크기 > 메모리 크기일때, 해결법
    • overlay structure : 메모리에 현재 필요한 영역만 적재하는 것
    • 사용자가 프로그램의 흐름 및 자료구조를 모두 알아야 함
  • 커널 보호, 해결법
    • 경계 레지스터 사용
  • low system resource utilization
  • low system performance
  • 위의 자원 활용도, 성능 문제 해결 위해 multi-programming

📌multi-programing

📖fixed partition multi-programming

  • 메모리 공간을 고정된 크기로 분할
    • 이미 분할 해놓음
  • 편한 메모리 관리
  • 각 프로세스는 하나의 partition에 적재
  • partition의 수 = multiprogramming degree
  • 커널 및 사용자 영역 보호
    • boundary register, boundary address사용으로 각 partition을 침범하지 않게 구분, 커널을 보호

❌fragmentation 단편화 발생

  • internal fragmentation

    • partition 크기 > 내부 process 크기로 메모리 남는 부분 발생
  • external fragmentation

    • 남은 메모리 크기 > 들어오려는 process크기 인데도 진입 못하는 현상 발생(각 partiton에 조금씩 남아 있어서 합치면 많이 남아있는데도 사용 못함)

📖variable partition multi-programming

  • 초기에 전체가 하나의 영역
  • 프로세스 처리하는 과정에서 메모리 공간을 동적 분할
  • no internal fragmentation

❓남은 공간이 여러군데인데 어디에 배치할까

🔧배치 전략

  • first fit : 최초 적합
    • 탐색하면서 처음으로 만난 충분한 공간의 partition 선택
  • best fit : 최적 적합
    • 가능 공간의 partition중 가장 작은 곳 선택
    • 탐색이 오래 걸림
    • 크기가 큰 partition유지 가능
    • 작은 크기의 partition이 너무 많이 발생(활용 못할 정도의)
  • worst fit : 최악 적합
    • 가능 공간의 partition중 가장 큰 곳 선택
    • 탐색 오래 걸림
    • 크기가 큰 partition 확보 어려움
    • 작은 크기의 partition발생 줄임
  • next fit : 순차 최초 적합
    • state table에서 마지막으로 탐색한 위치부터 탐색
    • 이전에 어디에 선택했는지 기억하고 다음 탐색은 거기서 부터 시작, 이후 first fit
    • 메모리 영역의 사용 빈도 균등화

❓배치할 자리가 없을때 전략

🔧coalescing holes 공간 통합

  • 인접한 빈 영역을 하나의 partition으로 통합
  • Process가 memory를 release하고 나가면 수행

🔧storage compaction 메모리 압축

  • 모든 빈공간을 하나로 통합
  • 프로세스 처리에 필요한 적재 공간 확보가 필요할 떄 수행
  • 모든 프로세스 재배치할때, 모두 중지해야한다(overhead)

0개의 댓글