CS 14

최성원·2022년 2월 4일
0

CS

목록 보기
13/16

Day-14

5장 컴퓨터 아키텍처와 운영체제

-컴퓨터는 어떻게 프로그램과 메모리를 관 리할까

5. 메모리 관리 장치

  • 통신 작업은 계속 백그라운드에서 실행해야 하기 떄문에 멀티태스킹은 필수가 됨
  • 누군가가 의도적으로 다른 프로그램을 들여다보거나 변경을 할 수 없도록
    오늘날 대부분 마이크로프로세서에서 메모리 관리 장치(MMU)가 들어 있음
  • MMU가 들어 있는 시스템은 가상 주소와 물리 주소를 구분함
  • MMU의 가상 주소 범위는 물리적 메모라 주소보다 큰 경우가 많으며,
    MMU는 가상 메모리 주소를 두 부분으로 나눈다.
  • 페이지 테이블이라는 RAM 영역을 통해 주소를 변환
  • 메모리는 256바이트 크기의 페이지로 분할된다 1~256 바이트까지 순차적으로 분할 됨
  • 이를 통해 시작하는 프로그램은 다른 곳에 넣을 수 있으나
    모든 내용은 페이지 경계 안에 들어 있어야 한다.
  • 현대적 프로세서의 MMU는 페이지 테이블 크기가 정해져 있다.
  • 전체 페이지 테이블 항목은 주 메모리에 저장 되거나 주 메모리가 부족한 경우 디스크에 저장됨
  • MMU는 페이지 테이블 항목 중 일부를 필요할 때만 자신의 페이지 테이블로 읽어 들임

6. 가상 메모리

  • 운영체제(OS)는 희소한 하드웨어 자원을 사용하려는 프로그램들 사이에서 자원 분배를 관리함
  • OS는 MMU를 사용해 사용자 프로그램에게 가상메모리(virtual memory)를 제공
  • 요청 받은 메모리가 사용 가능한 메모리 크기보다 크면?
    스왑 아웃(swap out)
    OS는 현재 필요하지 않은 메모리 페이지를 더 느리지만
    더 용량이 큰 대용량 저장장치인 디스크로 옮김
    스왑 인(swap in)
    프로그램이 접근하면 운영체제는 필요한 메모리 공간을 확보하고
    요청 받은 페이지를 다시 메모리로 불러들임
  • 이런 식으로 페이지를 처리 하는 것을 요구불 페이징(demand paging)이라고 부름
  • 스와핑이 일어나면 시스템 성능이 크게 저하됨
  • 하지만 메모리가 부족해서 프로그램 실행을 못하는 것보다는 느리더라도 실행 하는 편이 더 낫다

시스템 공간과 사용자 공간

  • 멀티태스킹은 모든 프로그램에게 자신이 컴퓨터 안에서 실행되는 유일한 프로그램이라는 환상을 심어줌
  • MMU는 각 프로세스에게 자신만의 메모리 주소 공간을 제공해서 이런 환상을 키워줌
  • 하지만 I/O 장치가 끼어들면 이런 환상을 유지하기 힘들어짐
  • CPU는 이런 문제를 해결할 수 있는 추가 하드웨어를 제공
  • CPU에는 컴퓨터가 시스템 모드에 있는지 사용자 모드에 있는지 결정하는 비트가 어떤 레지스터 안에 들어있음
  • I/O를 처리하는 명령어 등 일부 명령어는 특권 명령어라서 오직 시스템 모드에서만 실행할 수 있음
    • 장점
      1. 사용자 프로그램으로부터 운영체제를 보호하고, 사용자 프로그램을 다른 사용자 프로그램으로부터 보호험
      2. 사용자 프로그램이 MMU 등의 몇몇 요소에 손을 댈 수 없기 때문에 운영체제가 프로그램에 대한 자원 할당을 전적으로 제어

참고자료
https://www.youtube.com/watch?v=5pEDL6c--_k

profile
각성구

0개의 댓글