운영체제 저장장치 관리

2024. 5. 22. 12:33카테고리 없음

채널(시스템버스)

을 모든 주변장치가 공유하면 전체적으로 속도가 느려짐

 

전송 속도별로 버스를 나누어서 채널을 만든다 ->속도 향상

 

cpu,메모리를 연결하는 메인버스 cpu와 그래픽카드를 연결하는 그래픽 버스

고속 입출력 버스, 저속 입출력 버스를 사용한다

고속과 저속은 입출력 제어기와 연결되며 입출력 제어기는 메인버스와 연결한다.

 

 

DMA

원래 메모리는 cpu만 접근한다

하지만 주변장치에서 메모리로 정보를 보낼때 직접 접근할 수 있게 해주는게 메모리 제어기 (DMA제어기)

입출력제어기에 있는 채널별로 어떤 데이터를 먼저 보낼지 제어함

 

메모리는 입출력 메모리 영역을 만들어서 DMA제어기가 데이터를 옮기는 공간을 분리하여 운영한다

이를 메모리 맵 입출력 이라고 부름 

 

CPU와 DMA가 동시에 메모리에 접근하면 CPU가 양보해줌 CPU는 사이클대로 동작하기 때문에 한사이클을 미뤄서 

이거를 사이클 훔치기라고 함

 

인터럽트

주변장치의 입출력 요구, 하드웨어의 이상 현상을 CPU에 알려주는 것(끼어들기)

 

외부 인터럽트: 입출력장치로부터 온느 인터럽트, 전원 이상 등을 기계 오류로 발생하는 것

 

내부 인터럽트: 프로세스의 잘못이나 예상치 못한 문제로 발생한다 , 예외 상황 인터럽트라고도 함

 

시그널: 사용자가 직접 발생시킴 

 

 

인터럽트 벡터:

인터럽트가 발생하면 1차원 배열에 1로 바꿈 그에 해당하는 주소로 인터럽트 핸들러가 처리

 

인터럽트 핸들러:  그 인터럽트를 어떻게 처리할지 하는거 (함수)

 

버퍼

버퍼는 속도가 다른 장치의 속도차이를 완화하기 위한 장치 

보통은 단방향이라 2개를 사용해 퍼가는 작업과 담는 작업을 한번에 함

 

하드디스크

 

플래터(동그란거) 표면에 자성체가 발려있어 자기를 이용해 비트단위 데이터 저장 일정 속도로 회전한다

N극 0 S극 1 

 

섹터: 하드의 가장 작은 저장단위 

블록: 하드디스크와 컴퓨터 사이에 데이터를 저장하는 논리적 단위중 가장 적은 단위(운영체제 입장)

 

트랙: 플레터에서 회전축 중심으로 데이터가 기록되는 원 안에서부터 죽 기록하는데 그 동일한 원에 있는 섹터에 집합

실린더: 여러개의 플래터에 있는 트랙의 집합

 

헤드와 플래터

플래터가 회전하면 공중에 뜸

플래터 표면에 상처가 나면 배드섹터가 됨

컴퓨터 종료시 흠집이 안나도록 바깥쪽으로 이동하는 걸 파킹이라고 함

 

SSD

조각모음이 필요없고 플래시 메모리로 구성되어있음

 

CD

표면에 흠이있으면 0 없으면1

 

하드디스크에서 데이터를 전송하는 과정

 

탐색시간+회전지연시간+전송시간=데이터 전송 시간

 

탐색시간이 가장 오래걸려서 이 시간을 줄이는 방법

 

FCFS 디스크 스케줄링

SSTF 디스크 스케줄링

현재 헤드로부터 가장 가까운 트랙 부터 서비스 만약 다음 서비스할 트랙의 거리가 같으면 먼저 요청받은 순서로 서비스

헤드가 가운데쪽에 위치하면 양 사이드에 있는 정보는 서비스 확률이 낮아져 아사현상 발생

 

블록 SSTF 디스크 스케줄링

 

블록 안에서 거리가 가까운 순으로 찾음

블록이 끝나면 다음 블록 중에서 가까운걸 찾아서 또 그 블록 안에서 찾음

 

 

SCAN디스크 스케줄링

헤드가 움직이면 가장 마지막 트랙에 도착할 때 까지 계속 앞으로 가다가 끝에 도착하면 반대로 이동

동일 트렉에서 많은 실린더 요청이 발생하면 헤드가 전진하지 못하고 제자리에 머물러서 아사현상 발생

 

 

C-SCAN

공평성을 위배하지 않기 위해서
헤드가 한쪽 끝에 도착하고 나면 반대쪽으로 이동할때는 트랙을 읽지 않고 끝까지 이동한 후 다시 앞으로 읽으면서 이동한다

작업 없이 이동하는건 너무 비효율적임

 

LOOK 디스크 스케줄링

더이상 서비스할 트랙이 없으면 헤드가 중간에서 방향을 바꾼다

 

 

 

C-LOOK 디스크 스케줄링

C-SCAN과 유사함 

한쪽으로 이동할 때 앞에 더이상 서비스할 트랙이 없으면 바로 방향을 바꿔서 돌아감

돌아갈때는 마찬가지로 작업을 하지 않고 이동한다

 

 

 

 

 

 

RAID

자동 백업을 하고 장애가 발생하면 복구하는 시스템

 

미러링: 하나의 원본 디스크와 같은 크기의 백업 디스크에 동시저장 하나가 고장나면 사용함

 

스트라이핑: 여러 디스크에 데이터를 동시저장 하나에 4개의 데이터를 저장하면 4번 작업

스트라이핑은 4개의 디스크에 동시저장하여 1번만 작업

 

 

RAID 0(스트라이핑)

병렬로 연결된 여러 디스크에 동시에 입출력 4개로 구성하면 이론상 4배 빠르다 장애 발생시 복구 기능이 없어

데이터를 잃지만 입출력이 빠르다.

 

 

RAID 1(미러링)

하나의 데이터를 2개의 디스크에 나누어 저장 저장하는 데이터와 같은 크기의 디스크가 더 필요해 비용 증가

같은 내용을 두 번 저장하기 때문에 속도가 더 느림

 

RAID 2

 

n개의 데이터를 저장하면 n-1개의 추가 디스크를 설치해 ECC를 저장

ecc는 오류 검출 코드로 오류가 발생했는지 아닌지를 검사 ex)패리티 비트

오류 교정 코드: 오류를 확인하는 동시에 교정할 수 있는 코드 ex)해밍코드

 

단점: 오류 교정 코드를 계산하는데 시간이 오래걸림

 

RAID 3

 

섹터 단위로 데이터를 나누어 저장 

 

 

패리티비트로 데이터를 복원

 

RAID 4

데이터를 블록 단위로 저장해, 패리티 비트를 블록과 연결해 구성 패리티로 계산하는건 똑같음

 

RAID 3이나 4는 디스크 1개만 추가하면 됨

 

RAID 5

패리티 비트를 각 디스크에 분산하여 보관해 오류를 검출, 복구한다 

 

 

 

 

RAID 6

RAID5에서 패리티비트를 하나씩 추가 

디스크 장애 복구 능력이 5보다 좋지만 디스크를 하나씩 추가로 잡아먹는다

 

RAID 10

RAID 1+0을 의미 

0+1은 RAID 0을 먼저 함 전체에 나누어 저장 후 미러링

1+0은 미러링 후 나누어  저장

 

 

RAID 50 , 60 

 

RAID 5로 묶은 두 쌍을 다시 0으로 묶어 사용