[CS] 메모리 할당 방식과 운영체제 관련 추가 개념

최지나·2023년 12월 27일
2

CS

목록 보기
37/55

메모리 할당: 연속할당 VS 불연속 할당

메모리 단편화 (Memory Fragmentation)

  • 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태

내부 단편화

  • 정의: 프로그램에 할당된 메모리 "내"에서 사용되지 않는 여분의 공간이 발생
  • 발생상황: 주로 고정 크기의 메모리 블록을 할당할 때 발생

외부 단편화

  • 정의: 메모리에 충분한 총 공간이 있음에도 불구하고, 연속적인 공간이 부족해 특정 프로세스를 수용할 수 없는 상황 -> 메모리 전체에서 발생하는 비연속적인 작은 공간들로 인해 큰 메모리 요청을 수용할 수 없는 상황

연속할당

  • 개념: 메모리 공간을 연속적으로 할당하는 방식
  • 종류:
고정분할 방식메모리를 같은 크기로 미리 분할하여 할당. 내부 단편화 발생
가변분할 방식프로그램 필요량에 맞춰 동적으로 메모리 할당. 외부 단편화 발생 가능

가변분할 방식 종류

  • 최초적합, 최적적합(필요한 메모리 크기 이상인 공간 중 가장 작은 홀부터 할당), 최악적합
  • 홀 : 할당할 수 있는 비어있는 메모리 공간

불연속 할당

  • 개념: 메모리를 쪼개어 서로 다른 위치에 할당하는 방식
  • 종류:
페이징고정된 사이즈의 페이지 단위로 프레임에 나누어 할당. 외부 단편화 해결, 내부 단편화 발생
세그멘테이션의미 단위인 세그먼트(코드, 데이터 스택 힙,...)로 나누어 할당, 외부 단편화 발생
페이지드 세그멘테이션세그멘트를 페이지로 나누어 할당
  • 페이징

  • 세그멘테이션

운영체제 관련 추가 개념

Convoy Effect와 Starvation

Convoy Effect

몇 개의 긴 프로세스로 인해 다른 프로세스의 실행이 지연되는 현상. 주로 FCFS 알고리즘에서 발생

Starvation

특정 프로세스가 무기한 대기 상태에 빠져 CPU를 할당받지 못하는 상황. SJF 알고리즘에서 발생 가능

Busy Wait

  • 정의: 프로세스 또는 스레드가 조건이 충족될 때까지 계속 상태를 확인하는 동기화 기술
  • 특징: 자원 낭비가 발생할 수 있으며, CPU 우선순위 변경이 어려움

운영체제와 펌웨어의 차이

  • 메모리 사용: 펌웨어는 주로 비휘발성 메모리 사용, 운영체제는 휘발성 및 비휘발성 메모리를 계층화하여 사용
  • 업데이트 및 설치: 펌웨어는 제한적 업데이트와 프로그램 설치, 운영체제는 정기적 업데이트 및 자유로운 프로그램 설치 가능
  • 예시: 펌웨어는 키보드나 세탁기에 사용, 운영체제 예로는 macOS, windowsOS 등이 존재

REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글