tgool
Tgool
tgool
전체 방문자
오늘
어제
  • 분류 전체보기
    • Data Science
      • AI
      • Data Mining
      • ML(Machine Learning)
    • Computer Science
      • 자료구조
      • 알고리즘
      • 시스템 프로그래밍
      • 운영체제
      • 컴퓨터 구조
      • 컴퓨터 네트워크
      • 데이터 베이스
      • 파이썬
      • 자바
      • 아두이노
    • Math
      • 통계학
      • 확률론
      • 선형대수학
      • 수리통계학
      • 회귀분석
    • TOFEL
    • Git
    • Plan
    • Book
    • Working out
      • 영양과 생활
      • 운동 정보
      • 운동 기록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
tgool

Tgool

Computer Science/컴퓨터 구조

[CSAPP] Chapter 10. System-Level I/O

2023. 3. 18. 01:52

Chapter 10. System-Level I/O 

  • 입출력(I/O)은 주 기억장치와 디스크 드라이브, 터미널, 네트워크와 같은 외부 장치 간 데이터를 복사하는 과정이다.
  • 입력 작업은 I/O 장치에서 데이터를 메인 메모리로 복사하고, 출력 작업은 메인 메모리에서 어느 장치로 데이터를 복사한다.
  • 모든 언어 런타임 시스템은 I/O 수행을 위한 high- level 함수를 제공한다.
    • 예를 들어, ANSI C는 printf 및 scanf와 같은 버퍼링된 I/O를 수행하는 표준 I/O 라이브러리를 제공한다. C++ 언어는 << (“put to”) 및 >> (“get from”) 연산자를 오버로딩하여 유사한 기능을 제공한다. L
  •  inux 시스템에서는 이러한 high- level I/O 함수가 커널에서 제공하는 시스템 수준 Unix I/O 함수를 사용하여 구현된다. 대부분의 경우, high-level I/O 함수는 잘 작동하며 Unix I/O를 직접 사용할 필요가 없다.
  • 그렇다면 Unix I/O를 배우는 것이 왜 중요한 것일까?
  • Unix I/O를 이해하면 다른 시스템 개념을 이해하는 데 도움이 된다.
  • I/O는 시스템 작동에 본질적인 역할을 하므로, 종종 I/O와 다른 시스템 개념 간에 순환 종속성이 발생한다.
    • 예를 들어, I/O는 프로세스 생성 및 실행에 중요한 역할을 한다. 반대로, 프로세스 생성이 서로 다른 프로세스에서 파일을 공유하는 방식에 대해 중요한 역할을 한다. 따라서 I/O를 완전히 이해하려면 프로세스를 이해해야 하고, 그 반대도 마찬가지다.
  • 또한, 때로는 Unix I/O를 사용하지 않을 수 없다.
  • high-level I/O 함수를 사용할 수 없거나 부적절한 경우가 있다.
    • 예를 들어, 표준 I/O 라이브러리에는 파일 크기나 파일 생성 시간과 같은 파일 메타데이터에 접근할 수 있는 방법이 없다. 또한, 네트워크 프로그래밍에 사용하기 위해 표준 I/O 라이브러리를 사용하는 것이 위험할 수 있다.
  •  이번 챕터에서는 Unix I/O와 표준 I/O의 일반적인 개념을 소개하고, C 프로그램에서 신뢰성 있게 사용하는 방법을 보여 준다. 이번 챕터는 일반적인 소개뿐만 아니라, 네트워크 프로그래밍과 동시성 연구를 위한 견고한 기반을 마련하는 역할도 하게 될 것.

'Computer Science > 컴퓨터 구조' 카테고리의 다른 글

[CSAPP] 10.2 File(파일)  (1) 2023.03.18
[CSAPP] 10.1 Unix I/O  (1) 2023.03.18
[CSAPP] 9.9 Dynamic Memory Allocation(동적 메모리 할당)  (0) 2023.03.08
[CSAPP] 4.5 Pipelined Y86-64 implementations  (0) 2023.03.01
[CSAPP] 4.4 General Principles of Pipelining  (0) 2023.03.01
    'Computer Science/컴퓨터 구조' 카테고리의 다른 글
    • [CSAPP] 10.2 File(파일)
    • [CSAPP] 10.1 Unix I/O
    • [CSAPP] 9.9 Dynamic Memory Allocation(동적 메모리 할당)
    • [CSAPP] 4.5 Pipelined Y86-64 implementations
    tgool
    tgool

    티스토리툴바