본문 바로가기

운영체제

6. 메모리

인프런의 [그림으로 쉽게 배우는 운영체제] 강의를 듣고 정리한 내용이다.

간단하게 들은 내용을 정리한 것으로, 더 자세한 내용을 원한다면 위 강의를 구매하는 것을 추천한다.

짧은 강의 형태로 단시간에 운영체제를 배우고 싶은 사람, 쉽게 운영체제를 배우고 싶은 사람에게 적합하다고 생각한다.

 

 

✏️ 메모리 종류

  • 레지스터 - 가장 빠른 기억 장소. CPU 내에 존재. 전원 종료 시 데이터가 날라가므로 휘발성 메모리. 속도 빠름. 용량 작음. 가격 비쌈.
    • 32bit, 64bit - 레지스터의 크기
    • 메인 메모리에 있는 값을 가져와 계산 후 다시 메모리에 저장
  • 캐시 - 레지스터와 메인메모리 사이에 존재
    • 휘발성. L1, L2, L3 캐시로 보통 이루어져 있음.
    • CPU가 사용하는 메모리로 빠른 속도를 가짐
    • 메인 메모리에 있는 것을 레지스터로 가져오는데는 시간이 많이 걸림 > 자주 사용하는 데이터를 미리 캐시 메모리에 저장함
  • 메인 메모리(RAM) - 실제 운영제체와 다른 프로세스들이 올라가는 공간
    • 속도 빠르지만 비쌈
    • 휘발성. (전원이 공급되지 않으면 데이터가 지워짐)
    • 데이터를 저장하기 보다는 실행 중인 프로그램을 저장함
  • 보조 저장장치(HDD, SSD)
    • 비휘발성. 데이터 저장에 활용성 좋음.
    • 가격이 저렴함

 

✏️ 메모리와 주소

  • 주소 - 운영체제는 메모리를 관리하기 위해 1byte의 크기로 나누어 관리
  • 물리 주소 공간 - 메모리를 컴퓨터에 연결하면 0x0번지부터 시작하는 주소 공간 (메로리 관리자가 바라본 주소)
  • 논리 주소 공간 - 사용자가 접근하는 주소 공간. 논리 주소 공간을 활용하여 물리 주소에 접근 가능 (사용자가 바라본 주소)
  • 경계 레지스터 - 하드웨어적으로 운영체제 공간과 사용자 공간을 나누어 CPU 내의 레지스터. 메모리 관리자가 사용자 프로세스가 경제 레지스터 값을 벗어났는지 검사하고, 만약 벗어났다면 그 프로세스를 종료시킴

 

✏️ 메모리 할당방식

  • 메모리 오버레이 - 큰 프로그램을 작게 나누어 일부만 실행하고 나머지 프로그램은 하드디스크에 저장
  • SWAP - 데이터 일부를 메모리로 가져오고 메모리에 있는 데이터를 스왑 영역으로 옮김
  • 메모리 할당 방식
    • 가변 분할 방식 - 프로세스의 크기에 따라 메모리를 나누는 방식. 외부 단편화 발생 위험 존재. (내부 단편화는 발생 X)
    • 고정 분할 방식 - 프로세스의 크기와 상관 없이 일정 크기로 나누어 할당하는 방식. 구현이 간단하고 오버헤드가 적음.
  • 세그멘테이션 - 가변 분할 방식. 외부 단편화.
  • 페이징 - 고정 분할 방식. 내부 단편화.
  • 버디 시스템 - 2의 승수로 메모리를 분할하여 메모리 할당 방식. 프로세스를 할당할 수 있을 때까지 2의 승수로 나눈 후 프로세스를 할당하는 방식.

'운영체제' 카테고리의 다른 글

8. 입출력 장치  (0) 2022.05.21
4. 데드락  (0) 2022.05.14
3. 프로세스 동기화  (0) 2022.05.14
2. CPU 스케줄링  (0) 2022.05.07
1. 프로세스와 쓰레드  (0) 2022.05.06