게으른 개발자

12강 - 2. Disk Management & Scheduling 2 본문

cs/운영체제

12강 - 2. Disk Management & Scheduling 2

Tomato_Coffee 2023. 11. 16. 09:02

  • Disk를 쓰는 이유
    • 메모리의 휘발성 때문
      • 파일 시스템처럼 영속적으로 데이터를 유지해야 하는 Dram에 저장못 함.
    • DRAM 메모리가 공간이 한정적이다
  • Swap space
    • 물리적인 disk를 partitioning
      • logical disk를 만듦
      • 각각의 logical disk는 운영체제가 독립적인 디스크로 간주한다.
    • File system에서는 512Byte (섹터단위)로 저장을 한다.
    • 쫓겨날 때도 가능한 한 빨리 써줘야 하고, 다시 물리적인 메모리로 빨리 올려야 한다.
    • swap area는 프로그램이 실행되는 동안에 머물렀던 프로세스의 주소공간이 프로그램이 끝나면 사라진다.
    • 공간 효율성보다는 속도 효율성이 중요하다.
      • 따라서 대용량의 단위로 프로그램을 올리고 내린다. (512KB, 128KB, 64KB, 32KB, 16KB)

  • RAID
    • 저렴한 디스크 여러 개를 묶어서 같이 사용
    • 여러 개의 disk에다가 어느 정도 중복저장할 것인가
      • 분산 저장하기도 한다.
    • 장점
      • Host 컴퓨터에서 데이터를 읽어오라고 할 때, 여러 군데서 동시에 조금씩 읽어올 수 있다.
        • 서로 협력을 하기 때문에 빠르다.(병렬) 
          • Interleaving : 여러 디스크에서 조금씩 읽어온다
          • striping : 여러 디스크에 조금씩 나눠서 저장
      • 신뢰성 향상
        • 하나 디스크에서 고장 시 다른 디스크에서 읽어옴(Mirroring, shadowing)
        • parity
          • 중복저장 정도를 낮게 해서 저장
          • 오류가 생겼는지 알아내고 복구할 수 있는 정도의 중복저장
            • 위에 이미지에서 호스트 아래에 4개의 디스크가 있는데
            • 3개 디스크에 있는 data에 대해서 나머지 1개에 hash 함수를 적용한 parity를 저장함.
          • 공간 효율성을 높인다.

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

12강 - 1. Disk Management & Scheduling 1  (1) 2023.11.16
11강 - 3. File System Implementations 2  (0) 2023.11.15
11강 - 2. File System Implementations 1  (0) 2023.11.15
11강 - 1. File System 1  (0) 2023.11.13
10강 - 2. Virtual Memory  (1) 2023.11.13