운영체제

내가 공부하기 위한 공간 - [운영체제] 9 - 입출력, 디스크 스케쥴링

AbiTindt 2025. 5. 30. 13:13
반응형

[입출력]

<주변장치>

저속주변장치 : 메모리와 전송률이 비교적 낮은 장치(키보드)

고속주변장치 : 메모리와 전송률이 비교적 높은 장치(하드디스크)

 

주변장치는 메인보드 내 버스로 연결

채널을 통해 지나감, 채널 선택기를 통해 선택

  • 채널은 주소, 데이터, 제어로 구성

채널 공유 : 한 채널을 모든 장치가 공유

채널 분리 : 비슷한 장치끼리 묶어서 채널 할당

 

<입출력>

입출력 <> 입출력제어기 <> 메인버스 <> 메모리, CPU, AGP

  • 초기에는 입출력 제어기가 없음, 폴링방식
  • 입출력 제어기를 통해 작업효율을 높임(고속은 저속땜에 속도 느려짐)
  • 입출력 제어기에 고속과 저속을 분리
  • 그래픽카드의 발전으로 입출력에서 분리하여 직접 메인버스에 연결

 

입출력제어기 <> DMA제어기 <> 입출력메모리

  • 분리형 : 메인과 별도의 메모리에 보관(작업낭비발생)
  • MMIO : 메인메모리에서 공간을 분리(DMA제어기를 통해 겹치는걸 막음)

 

<인터럽트>

하드웨어(외부)인터럽트 : 하드웨어로 인한 발생

예외상황(내부)인터럽트 : 프로세스의 잘못이나 예상치 못한 문제로 인한 발생

시그널 : 사용자 의도적으로 인한 발생

 

인터럽트백터 : 인터럽트 발생을 모은 자료구조

  • 핸들러가 저장된 메모리 주소를 가짐(포인터형태)

인터럽트핸들러 : 인터럽트 처리방법(함수형태)

  • 시그널인 경우 만든 핸들러 등록 가능

 

<버퍼>

단일버퍼 : 하나의 버퍼가 양방향

이중버퍼 : 방향이 다른 단방향 버퍼 둘 사용

 

 

[저장장치]

<하드디스크>

스핀들 : 플래터들을 중심에 고정, 회전

플래터 : 자기 디스크

섹터 : 가장 작은 저장 단위

트랙 : 섹터의 집합, 원형으로 나뉜 기록 선

디스크암 : 헤드 이동

읽기쓰기헤더 : 플래터의 데이터를 읽고 씀(플래터의 표면 수)

  • 외부 충격에 민감
  • N극0, S극 1

 

파킹 : 종료시 헤드를 플래터 맨 바깥으로 이동

  • 비정상 종료시 배드섹터(파킹없이 헤드가 플래터에 붙는 것)가 될 가능성

 

<SSD>

보조저장장치, 플레시메모리

  • 소음없음, 크기작음, 외부충격에강함, 전력과발열수준이 비교적 낮음, 비쌈
  • 입출력이 빠름

 

둘다 단편화발생

  • 하드디스크 : 헤드가 여러곳을 확인, 조각모음을 주기적
  • SSD : 메모리를 사용 > 어디에 있든 차이가 없음(조각모음 필요없음) > 최대사용횟수로 인해 오히려 안하는 편이 나음

 

<CD>

트랙과 섹터로 구성

  • 홈으로 반사 안되면 0, 반사되면 1
  • 하드디스크는 각속도 일정방식(안과 밖의 섹터크기가 다름, 단순, 조용, 바깥으로 갈수록 낭비 공간, 밖에서 안으로 데이터가 채워짐)
  • CD는 선속도 일정방식(크기가 같음, 복잡, 소음, 낭비없음, 안에서 밖)

 

 

[디스크스케쥴링]

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

  • 전송시간과 회전시간은 하드웨어 영향
  • 비중이 큰 탐색시간으로 개선(조각모음, 스케쥴링)

 

<FCFS>

요청 순서대로 서비스

  • 비효율, 헤더 이동 거리 큼

 

<SSTF>

현재 헤더를 기준으로 가장 가까운 트랙부터 서비스

  • 빠르지만 아사현상 가능성

 

<블록SSTF>

요청을 일정한 블록으로 묶어서 SSTF

  • n개로 묶으면 전체가 아닌 n개로 SSTF, 그다음 n개만큼 SSTF …
  • 공평하지만 느림

 

<SCAN>

헤드가 한 방향으로만 움직이면서 서비스

  • 현재 헤드에서 한 방향의 끝(0 또는 최대트랙번호)으로 이동하면서 서비스
  • 끝에 도달하면 다른 방향으로 전환 후 똑같이 실행
  • 공평성 위배

 

<C-SCAN>

반대방향으로 이동할 때 서비스 안함

  • 현재 헤드에서 한 방향의 끝(0 또는 최대트랙번호)으로 이동하면서 서비스
  • 끝에 도달하면 다른 방향의 끝으로 이동 후 서비스
  • 작업없이 이동하는건 비효율

 

<LOOK>

헤드가 끝까지 가는게 아닌 해당 방향에 더이상 서비스 할 것이 없으면 전환

  • 기본은 SCAN과 동일

 

<C-LOOK>

LOOK버전의 C-SCAN

 

<SLTF>

헤드가 고정된 저장장치(모든 트랙일 읽도록 여러 헤드 부착)에서 사용

  • 디스크 회전 방향에 맞추어 요청을 재정렬 서비스

 

[RAID]

여러 개의 하드 디스크를 하나처럼 묶어, 속도 향상이나 데이터 안정성을 높이는 기술

RAID 0 스트라이핑(Striping). 데이터를 여러 디스크에 분산 저장 빠른 속도 장애 시 데이터 전부 손실
(복구 불가)
RAID 1 미러링(Mirroring). 동일 데이터를 두 디스크에 저장 높은 안정성 저장 용량의 50%만 사용 가능
RAID 5 최소 3개 디스크 필요. 데이터 + 패리티 정보 분산 저장 성능+복구 균형
디스크 1개 장애 복구 가능
복잡함, 성능 약간 저하
RAID 6 RAID 5 + 패리티 2개. 디스크 2개까지 장애 복구 가능 높은 안전성 쓰기 성능 감소
최소 4개 디스크 필요
RAID 10 (1+0) RAID 1 + RAID 0. 미러링 + 스트라이핑 빠르고 안전 디스크 절반만 실제 용량 사용

 

반응형