운영체제
-
[OS] NVM / RAID 구조운영체제 2020. 12. 12. 17:34
디스크 고장 Disk write 도중에 전원이 나가면 consistency 가 깨짐. 버퍼는 휘발성이라 cpu는 버퍼에 쓴 순간 디스크에 썼다고 생각하지만 고장으로 인해 디스크에 써지지 못한 상황 → 비휘발성 버퍼(journaling file system)을 추가 NVM (Nonvolatile Memory Device) SSD 나 USB 드라이브가 NVM 의 일환이며 seek time 이 일정하기에 FCFS 스케쥴링을 사용함 Merging 기법 : 요청 중 비슷한 공간에 있는 애들을 합쳐서 한 번에 요청 NAND 반도체 특성 상 Write 할 때마다 기능이 열화되므로 wear leveling 기법이 사용됨 DWPD(Drive Writes Per Day) : 제품에 명시된 보증기간을 사용하기 위한 하루 권..
-
[OS] 디스크 스케쥴링운영체제 2020. 12. 12. 17:32
디스크 스케쥴링 사용자는 버퍼에 write 를 한 뒤 disk 에 write 했다고 생각한 뒤 작업을 이어감 → 버퍼 → 디스크 큐 → 디스크 디스크 큐에 쌓인 데이터를 어떤 순서로 디스크에 write 할지를 결정하는 것이 디스크 스케쥴링 디스크 스케쥴링을 하는 이유는 seek time 을 줄이기 위해서 → SSD 는 seek time 이 일정해서 스케쥴링이 의미가 없음 FCFS(First Come First Serve) 스케쥴링 디스크 요청이 오는 순서대로 그대로 접근하는 방법 SSTF(Shortes Seek Time First) 스케쥴링 가장 가까운 애 순서대로 스케쥴링하는 방법 CPU 스케쥴링 기법 중 SJF 와 비슷하지만 다른 점은 SJF 는 프로세스의 수행 시간을 예측해야했지만 SSTF 는 이미..
-
[OS] Mass Storage (HDD, SSD)운영체제 2020. 12. 12. 17:32
Mass Storage (HDD, SSD) 마그네틱 디스크(hdd) 는 데이터를 읽고 쓸 때 걸리는 시간들이 있음 Transfer time : 데이터를 읽기 시작하여 끝까지 다 읽어들이는 데까지 걸린 시간 (읽어야하는 데이터 총 크기에 비례) Positionting time(Random-access time) = Seek time + Rotation time Seek time : 디스크 헤더가 데이터가 위치한 트랙으로 이동하기까지 걸리는 시간 Rotation time : 헤더를 데이터가 위치한 섹터로 위치시키기 위해 Platter 가 회전하는 시간 따라서 총 데이터 접근 시간 = Seek time + Rotation time + Transfer time = Positioning time + Transfe..
-
[OS] 디스크 볼륨과 파티션 / 가상 파일 시스템운영체제 2020. 12. 12. 17:31
볼륨과 파티션 하드웨어 저장장치는 볼륨을 담고있는 파티션으로 구분됨 각 볼륨은 파일 시스템으로 정형화됨 마운팅 마운팅 : 마운트 포인트에 파일 시스템이 연결되는 것 OS 는 디바이스 이름과 마운트 포인트를 전달받아 해당 디바이스를 주어진 포인트에 마운트함 A 라는 마운트 포인트에 U1 이 마운트 되어 있다면 사용자는 A에 접근하면 U1 에 접근할 수 있음 그러던 중 A에 U2 를 새로 마운팅하게 된다면 사용자는 A를 통해 U2 만을 접근할 수 있으며 U1 은 접근하지 못함. 중요한 점은 U1이 삭제되는 것이 아니라 그냥 접근을 하지 못할 뿐이라는 것임. 다른 공간에 마운팅하면 접근 가능 파티션 파티션 : 볼륨을 논리적으로 나눈 것 파티션은 특정 파일 시스템으로 포맷하거나 raw 한 상태로 둘 수도 있음...
-
[OS] 디스크 볼륨과 파티션 / 가상 파일 시스템운영체제 2020. 12. 12. 17:31
볼륨과 파티션 하드웨어 저장장치는 볼륨을 담고있는 파티션으로 구분됨 각 볼륨은 파일 시스템으로 정형화됨 마운팅 마운팅 : 마운트 포인트에 파일 시스템이 연결되는 것 OS 는 디바이스 이름과 마운트 포인트를 전달받아 해당 디바이스를 주어진 포인트에 마운트함 A 라는 마운트 포인트에 U1 이 마운트 되어 있다면 사용자는 A에 접근하면 U1 에 접근할 수 있음 그러던 중 A에 U2 를 새로 마운팅하게 된다면 사용자는 A를 통해 U2 만을 접근할 수 있으며 U1 은 접근하지 못함. 중요한 점은 U1이 삭제되는 것이 아니라 그냥 접근을 하지 못할 뿐이라는 것임. 다른 공간에 마운팅하면 접근 가능 파티션 파티션 : 볼륨을 논리적으로 나눈 것 파티션은 특정 파일 시스템으로 포맷하거나 raw 한 상태로 둘 수도 있음...
-
[OS] Disk free space 관리운영체제 2020. 11. 30. 16:31
Free space 관리 Bit vector, bit map 디스크의 free space 를 관리하는 기법으로 디스크 블럭 사이즈만한 bit 배열을 두고, 가용하면 1, 누군가 사용중이면 0으로 표시하는 기법 free space 계산법 (0 인 word 수) * (word 의 bit 수) + offset 1비트 bit map 크기 계산 block size = 4KB = 212 bytes disk size = 1TB = 240 bytes n = 240 / 212 = 228 bits = 32 MB 32MB 에서 더 줄이고 싶다면 block 단위에서 N 개의 block 을 묶은 cluster 단위로 available list 를 관리하면 됨 예를 들어 4개를 한 묶으로 관리하면 8MB 로 줄어듦 → 대신 in..
-
[OS] 파일 시스템의 구현운영체제 2020. 11. 30. 16:31
파일 시스템의 구현 디스크 파일 시스템 Boot control block (부트 제어 블럭) Volume control block (볼륨 제어 블럭) = 슈퍼 블록 볼륨(혹은 파티션)의 블록 수, 블록 크기, 가용 블록 수와 포인터, 가용 FCB 수와 포인터 등의 파티션 정보 저장 Inode table FCB (File Control Block) : unix 에서는 inode Allocation method Contiguous allocation ( 연속 할당 ) 하나의 파일에 무조건 연속적인 디스크 block 을 할당 : First fit, best fit, worst fit External fragmentation 이 발생 → Compaction offline or online ( 한 쪽으로 몰아서 ..
-
[OS] 디렉터리 관리 구조운영체제 2020. 11. 30. 16:29
Directory Structure Directory : 파일의 위치 정보를 의미 장점 Efficiency : 사람이 파일을 빨리 찾을 수 있음 Naming : 이름 중복 가능 Grouping Single level directory 디렉토리가 없는 것과 다름 없음 Naming, Grouping 문제 발생 Two level directory 사용자 단위로 구분하는 기능이 추가됨 Grouping 문제 발생 Tree Structure 디렉토리 Multilevel tree 로 subdirectory 를 만들어 파일을 구성할 수 있음 효율적인 탐색 논리적 그룹핑 현재 디렉토리 (working directory) 개념이 등장 절대경로(Absolute path), 상대경로(Relative path)를 제공 Acyc..