운영체제

입출력 시스템과 저장장치

medai0 2025. 1. 18. 01:15

 

저속 주변장치 : 키보드, 마우스...

고속 주변장치 : 그래픽 카드, 하드 디스크...

 

단일 버스로 주변장치를 묶으면 저속장치가 고속장치의 데이터 전송 방해

→ 속도에 따라 버스를 분리하여 운영할 필요가 있음

 

대용량 데이터 전송 : 그래픽 카드/하드디스크

중간 데이터 전송 : SB메모리

저용량 데이터 전송 : 프린트 ,키보드, 마우스

 

채널: 데이터가 지나다니는 하나의 통로

채널 공유와 채널 분리: 채널을 모든 주변장치가 공유하면 전체적을 데이터 전송 속도가 느려짐 속도가 비슷한 장치끼리 채널을 할당하면 전체 데이터 전송속도가 향상될 수 있음

 

[초기의 입출력 버스 구조]

모든 장치(cpu,메모리 포함)가 하나의 버스로 연결됨

polling방식 이용 : cpu가 작업을 진행중 입출력 명령을 만나면 직접 입출력장치에서 데이터를 가져옴

 

[입출력 제어기를 사용한 입출력 버스 구조]

: 현대식 컴퓨터의 버스는 메인 버스와 입출력 버스의 2개 채널로 나뉨

메인버스 고속으로 작동하는 cpu와 메모리가 사용

입출력 버스 : 주변 장치가 사용

 

입출력 제어기 : 입출력 요청이 발생하면 cpu대신에 입출력 장치로부터 데이터를 송수신

느린 입출력 장치를 cpu가 직접 접근하는 것을 막을 수 있음(전체 작업 효율 향상)

 

[입출력 버스의 분리]

저속 주변장치 때문에 고속 주변장치의 데이터 전송이 느려짐

: 고속 / 저속 입출력 버스를 분리하여 운영(두 버스 사이의 데이터 전송은 체널 선택기가 관리)

그래픽 카드는 입출력 버스에서 분리하고 메인 버스에 바로 연결(현대로 오면서 입출력 버스만으로는 그 데이터 전송량을 감당하기 어려워짐)

 

[현대의 컴퓨터가 사용하는 버스의 종류]

- cpu 와 메모리를 연결하는 메인버스

- cpu와 그래픽 카드를 연결하는 그래픽 버스

고속/저속 입출력버스

 

[하드 디스크의 구성요소]

 

 

플래터 : 자기력을 이용하여 01의 데이터를 저장(표면에 자성체가 발려있음)

플래터의 표면이 N극을 띠면 0으로 S극을 띠면 1로 인식

보통 2장 이상으로 구성되며 항상 일정한 속도로 회전

 

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

블록: 하드디스크와 컴퓨터 사이에 데이터를 전송하는 가장 작은 단위

(비교- 윈도우 운영체제에서는 블록 대신 클러스터라고함)

- 블록은 여러개의 섹터로 구성됨(블록>섹터)

- 하드 디스크 입장에서는 섹터가 가장 작은 저장단위

- 운영체제 입장에서는 하드디스크에 데이터 전송 시 블록이 가장 작은 저장단위

 

트랙: 플래터에서 회전축을 중심으로 데이터가 기록되는 동심원

(동일한 동심원상에 있는 섹터의 집합)

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

 

헤드와 플래터

: 하드디스크에서 데이터를 읽거나 쓸 때 읽기/쓰기 헤드를 사용

플래터가 회전을 시작하면 표면에 약한 바람이 생성됨헤드는 이 바람에 의해 표면에서 약간 떠 있는 상태로 작동

배드섹터: 플래터의 포면에 생긴 물리적인 상터(데이터 저장 불가)

 

CD : 소형 원반에 데이터를 저장하는 광 디스크

하드디스크와 마찬가지로 트랙과 섹터로 구성됨(수평으로 움직이는 헤드가 트랙 사이를 움직이면서 데이터를 읽음)

헤드에서 발사된 레이저가 홈에 들어가 반사되지 않으면 0으로 인식(반사되면 1)

 

[하드디스크와 CD의 디스크회전]

 

각속도 일정방식(하드디스크) : 플래터는 항상 일정한 각속도로 회전

바깥쪽 트랙의 속도가 안쪽 트랙의 속도보다 훨씬 빠름

가장 바깥쪽에 있는 섹터가 가장 안쪽에 있는 섹터보다 큼

 

선속도 일정방식(CD) : 어느 트랙에서나 단위 시간당 디스크의 이동거리가 같음

헤드가 안쪽 트랙에 있을 때는 디스크의 회전 속도를 빠르게

헤드가 바깥쪽 트랙으로 이동했을 때는 디스크의 회전 속도를 느리게 함

 

각속도 일정방식의 섹터

+) 디스크가 일정한 속도로 회전하기 때문에 구동장치가 단순하고 조용하게 작동

-) 바깥쪽 섹터의 크기가 안쪽 섹터보다 커서 바깥쪽 트랙으로 갈수록 공간낭비

 

선속도 일정방식의 섹터

안쪽 트랙보다 바깥쪽 트랙에 더 많은 섹터가 존재(모든 트랙에 존재하는 섹터의 크기가 같기때문)

+)한정된 공간에 많은 데이터가 들어가고 바깥쪽 트랙의 공간이 낭비되지 않음

-)모터 제어가 복잡하고 소음 발생

 

[하드 디스크의 데이터 전송과정]

 

탐색시간 : 헤드가 현재 위치에서 데이터가 저장된 특정 트랙까지 이동하는데 걸리는 시간

회전 지연 시간 : 헤드가 트랙 탐색 후 플래터가 회전하여 원하는 섹터를 찾을 때 까지 걸리는 시간

전송시간 : 헤드가 섹터에 있는 데이터를 읽어 전송하는데 걸리는 시간

 

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

 

[디스크의 파티션]

 

파티션: 논리적으로 분할된 디스크의 영역

파티션 하나에 하나의 파일시스템(FAT) 탑재

 

파티션 사용 예

하드디스크가 2개인 경우: 첫 번째와 두 번째 하드디스크가 별도의 파티션으로 구분됨

대용량 디스크의 경우 여러 파티션으로 나누어 사용하면 관리하기 편리

ex) C드라이브의 운영체제,D드라이브의 데이터 백업

여러개의 하드디스크를 하나의 파티션으로 통합하여 대용량으로 사용하기도 함

 

포매팅: 디스크에 파일 시스템을 탑재하고 디스크 표면을 초기화, 사용 가능 형태로 구축함

빈 저장장치에 파일 테이블을 탑재

 

빠른 포메팅: 데이터는 그대로 둔 채 파일 테이블만 초기화 하는 방식->파일 삭제 후 복원가능

느린 포메팅: 디스크 표면 자체를 초기화 하는 방식

조각모음: 큰 파일은 보통 여러조각으로 나뉘어 저장됨

이를 읽기 위해 HDD의 여러곳을 돌아다녀야 하기 때문에 성능 저하로 이어짐

하나의 파일을 HDD상의 연속된 위치로 옮기는 작업(여러개의 파일도 연속된 위치에 저장되도록 이동)

잦은 조각모음은 오히려 HDD의 수명을 단축시킬 수 있음

 

디스크 스케줄링 : 트랙의 이동을 최소화하여 탐색 시간을 줄이는 것이 목적

트랙 접근 순서>디스크 스케줄링의 결과물

 

FCFS디스크 스케줄링 :요청이 들어온 순서대로 서비스

 

SSTF 디스크 스케줄링 : 현재 헤드가 있는 위치에서 가장 가까운 트랙부터 탐색

다음에 서비스할 두 트랙의 거리가 같다면 먼저 요청받은 트랙을 탐색

효율성은 좋지만 아사현상을 이르킬 수 있어 사용하지 않음

 

블록 SSTF 디스크 스케줄링 : 큐에 있는 트랙 요청을 일정한 크기의 블록으로 붂음

(블록 내에 있는 트랙끼리만 SSTF스케줄링)

대개의 경우 FCFS디스크 스케줄링보다 성능이 좋지 않음

 

SCAN디스크 스케줄링 : 헤드가 움직이면 마지막 트랙에 도착할 때 까지 현재 진행방향으로만 전진

바깥쪽 트랙이 아사현상을 겪는 문제(동일한 트랙이나 실린더가 연속적으로 요청되면 헤드가 더 이상 나아가지 못함)

 

C-SCAN 디스크 스케줄링 : 헤드가 한쪽 방향으로 움직일 때는 요청받은 트랙을 탐색하고 반대방향으로 돌아올 때는 탐색하지 않고 이동만 함

작업 없이 헤드를 이동하는 것은 매우 비효율적

바깥쪽 트랙의 여전한 아사현상

 

LOOK디스크 스케줄링 : 더 탐색할 트랙이 없으면 헤드가 끝까지 가지 않고 중간에서 방향을 바꿈

 

C-LOOK 디스크 스케줄링 : C-SCAN 디스크 스케줄링의 LOOK버전

 

SLTF 디스크 스케줄링: 큐에 들어온 요청을 디스크의 회전 방향에 맞추어 재정렬 한 후 탐색

 

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

프로세스 동기화  (0) 2024.12.22
컴퓨터의 구성  (1) 2024.11.24
운영체제의 역할  (3) 2024.10.27