본문 바로가기
IT Auditor Study/운영체제

[Part2-공룡책] 10. 입출력 시스템(2/2) - Operating System(OS)

by latteart 2024. 6. 11.
반응형

Operating System(OS)에 이어서 Part2에는  다음과 같은 순서*로 알아보겠습니다. 

*공룡책 기반

 [프로세스 관리]

 1. 프로세스 

2. 스레드와 병행성 

3. CPU 스케줄링

 [프로세스 동기화] 

4. 프로세스동기화 

5. 동기화 예제 

6. 교착상태

 [메모리 관리] 

7. 메인 메모리 

8. 가상 메모리

[저장장치 관리]

9. 대용량 저장장치 구조

10. 입출력 시스템

[파일시스템]

11. 파일시스템 인터페이스

12. 파일시스템 구현

 
Operating System(OS) Part2 -  10. 입출력 시스템 (2/2)

 

5. 입출력 방식
5.1 프로그램된 입출력 (Programmed I/O)
프로그램된 입출력은 CPU가 직접 입출력 장치를 제어하고 데이터 전송을 수행하는 방식입니다. 이 방식에서는 CPU가 입출력 작업 동안 다른 작업을 수행할 수 없어 비효율적일 수 있습니다.

5.2 인터럽트 구동 입출력 (Interrupt-Driven I/O)
인터럽트 구동 입출력은 입출력 장치가 데이터 전송이 필요할 때 CPU에 인터럽트를 발생시켜, CPU가 해당 작업을 처리하도록 하는 방식입니다. 이 방식은 CPU가 입출력 작업을 기다리지 않고 다른 작업을 수행할 수 있어 효율적입니다.

5.3 직접 메모리 접근 (Direct Memory Access, DMA)
DMA는 입출력 장치가 메모리와 직접 데이터를 교환할 수 있도록 하는 방식입니다. DMA 컨트롤러가 데이터 전송을 담당하여 CPU의 개입을 최소화하고, 입출력 작업의 속도와 효율성을 크게 향상시킵니다.

 

 

삼성전자 갤럭시북4 프로360 NT960QGK-K71A 인텔 코어 울트라 7 삼성노트북 고해상도 AI 노트북 사무용

COUPANG

www.coupang.com

* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.



6. 입출력 성능 향상 기법
6.1 버퍼링과 캐싱
버퍼링은 입출력 데이터를 일시적으로 저장하여 데이터 전송 속도의 차이를 완화하는 기법입니다. 캐싱은 자주 사용되는 데이터를 메모리에 저장하여 빠르게 접근할 수 있도록 하는 기법입니다. 두 기법 모두 입출력 성능을 향상시키는 데 중요한 역할을 합니다.

6.2 스풀링 (Spooling)
스풀링은 여러 입출력 작업을 큐에 저장하고 순차적으로 처리하는 기법입니다. 프린터와 같은 장치에서 자주 사용되며, 시스템의 병목 현상을 줄이고 입출력 효율을 높입니다.

6.3 입출력 스케줄링
입출력 스케줄링은 입출력 작업의 순서를 최적화하여 전체 시스템 성능을 향상시키는 기법입니다. 디스크 스케줄링 알고리즘(예: FCFS, SSTF, SCAN 등)은 디스크 입출력의 효율성을 극대화하는 데 사용됩니다.

6.4 오류 검출 및 수정
입출력 과정에서 발생할 수 있는 오류를 검출하고 수정하는 기법입니다. 패리티 비트, 해밍 코드, CRC 등 다양한 오류 검출 및 수정 방법이 사용됩니다. 이 기법들은 데이터 전송의 신뢰성을 보장합니다.

7. 파일 시스템
7.1 파일 시스템의 개요
파일 시스템은 데이터를 논리적 단위인 파일로 관리하고 저장하는 시스템입니다. 파일 시스템은 파일의 생성, 삭제, 읽기, 쓰기 등의 작업을 지원하며, 파일 및 디렉토리 구조를 통해 데이터를 체계적으로 관리합니다.

7.2 파일 시스템 구조와 구현
파일 시스템은 일반적으로 부트 블록, 슈퍼 블록, inode 테이블, 데이터 블록 등으로 구성됩니다. 파일 시스템의 구현은 하드웨어와 운영체제에 따라 다르며, NTFS, FAT32, ext4 등 다양한 파일 시스템 형식이 존재합니다.

7.3 파일 접근 방법
파일 접근 방법에는 순차 접근과 직접 접근이 있습니다. 순차 접근은 파일의 데이터를 순차적으로 읽거나 쓰는 방식이고, 직접 접근은 파일의 특정 위치에 임의로 접근하는 방식입니다. 파일 시스템은 이러한 접근 방식을 지원하여 효율적인 데이터 처리를 가능하게 합니다.

7.4 디렉토리 구조
디렉토리는 파일을 논리적으로 그룹화하여 체계적으로 관리하는 구조입니다. 디렉토리 구조는 단일 수준, 이중 수준, 트리 구조, 비순환 그래프 구조 등으로 구현될 수 있으며, 각 구조는 파일 및 디렉토리의 효율적 관리와 접근을 지원합니다.

반응형