이제 디스크 관리를 알아보자
Sector - 디스크 관리하는 최소 단위
저장은 Sector 단위로 되어있지만 ,
외부에서 데이터를 요청할때는 Logical block 단위다.
Logical block 이 Sector에 맵핑이 되어있다.
피지컬 포맷팅 - 공장에서 디스크를 만들때 섹터 단위로 나누게 되는데 이 작업을 Physical formatting 이라 한다.
파티셔닝 - 디스크를 하나 이상의 그룹으로 나누는 과정 (C드라이브, D드라이브)
로지컬 포맷팅 - 해당 파티션에 파일 시스템을 설치 하는 경우를 말한다.
부팅 - 메모리가 전원이 나가도 저장이되는 아주 소량의 부분 ROM 에 부팅을 위한 로더가 저장되어있다.
디스크가 접근하는 엑세스 타임은 3가지로 구성된다.
Seek Time - 디스크 헤드가 읽고 쓰는 요청을 한 track 으로 이동하는데 걸리는 시간
가장 큰 시간이 걸린다.
디스크는 항상 회전을 하고 있는데 , 저 원하는 sector s 까지 회전을 해서 가는 시간을
Rotational latency 라 한다.
Transfer time - 실제 데이터의 전송 시간 . 아주 작은 시간을 차지한다.
디스크는 seek time 을 줄이는게 목표다!
그래서 필요한게 디스크 스케쥴링
그냥 들어온 순서대로 처리해준다.
현재 헤드 위치에서 가장 가까운 요청을 먼저 처리한다.
계속 가까운 요청이 들어오게 되면 starvation 문제가 발생하게 된다.
디스크의 한쪽 끝에서 다른 쪽 끝으로 이동하면서
길목에 있는 모든 요청을 처리한다.
한방향으로 가면서 처리하기 때문에 디스크 헤더의 이동거리가 짧아진다.
starvation문제도 발생하지 않는다.
하지만, 위치에 따라 대기시간이 다르게 발생하는 문제가 있다.
디스크 헤드가 이쪽에서 저쪽으로 지나갈때는 요청을 처리하고,
끝까지 가서 다시 이동할때는 요청을 처리하지 않고 이동만한다.
이걸 반복.
스캔과 어떤 차이가 있냐면, 이동거리는 다소 길어지지만 , 큐에 들어온 요청들의 대기시간은 어느정도 균일해진다.
n-scan 은 디스크 헤드가 이동하면서, 스캔과 똑같지만
출발할때 큐에 들어온건 처리하고 지나가다 들어온건 다음번에 처리를 한다.
Look and C-look - 헤드가 진행중이다가 뒤에 더이상 요청이 없으면
즉시 반대로 이동한다.
이제 마지막으로 , Swap space management 를 보고 끝내자
보조기억장치 (하드 디스크) 를 사용하는 2가지 이유
1. 메모리의 휘발성 특징 때문에 저장을 위해
2. 프로그램 실행을 위한 메모리 공간이 부족하기 때문에 , swap space 를 둔다.
파일 시스템은 512byte 의 섹터단위로 저장을 하고 있고, 파일 시스템에 데이터를 넣는 방식은 ,
indexed allocation 등등 여러가지가 있었다.
Swap-space
프로그램이 실행되는 동안에 Swap-area 에 머물러있던 주소 공간이 프로그램이 끝나면 사라질 내용이다.
물리 메모리의 연장 공간으로 쓰는거기때문에 쫒겨날 때도 가능하면 빨리 디스크에 써줘야하고,
page fault 가 나서 물리메모리로 다시 올릴때도 굉장히 빨리 올려야한다.
디스크는 seek 타임이 가장 오래걸리는데
swap area 는 공간 효율성(어차피 사라질 데이터니까)보다는 속도 효율성을 늘리는게 중요하다.
그래서 seek 타임을 줄이기 위해서 swap area 에 저장되는 단위를 굉장히 크게 쓰고 있다.
512KB .. 1000배 가 넘는 대용량
RAID - 저렴한 디스크 여러개를 묶어서 사용하는 방식
여러개의 방식이 있는데,
여러 디스크에 데이터를 어느정도 중복 저장할 것인가
중복 저장과 분산 저장을 하는게 RAID 인데, 이렇게 사용하는 2가지 장점은
1.여러 디스크에서 조금씩 읽어서 속도 향상이 될 수 있고,
2. 한 디스크가 고장이 나도 다른 디스크에서 읽어올수 있게 신뢰성이 향상된다.
여기까지가 운영체제 끝~
이제 정리하고 운영체제는 끝내도록 하자
'프로그래밍 > 운영체제' 카테고리의 다른 글
[운영체제] Page Cache and Buffer Cache (0) | 2020.06.21 |
---|---|
[운영체제] File System Implementation (0) | 2020.06.21 |
[운영체제] File and File System (0) | 2020.06.20 |
[운영체제] Virtual Memory 2 - Clock , Working set, PFF (0) | 2020.06.20 |
[운영체제] Virtual Memory - FIFO, LRU, LFU (0) | 2020.06.20 |