산타는 없다

Window via C/C++ 10장 본문

프로그래밍 서적/Window via C++

Window via C/C++ 10장

LEDPEAR 2021. 11. 7. 17:57
반응형
  • 0. 개요
    • 확장성 있는 애플리케이션이란 적은 수의 동시 작업을 수행하는 것만큼이나 호율적으로 많은 수의 동시 작업을 처리할 수 있는 애플리케이션을 말한다.
    • 서비스 애플리케이션의 경우 동시 작업이란 예측 불가능한 시점에 들어오는 클라이언트의 요청을 처리하는 것을 의미하므로 이를 위해 어느 정도의 처리 능력이 필요할지 예측할 수가 없다.
    • 스레드가 동기적인 장치 I/O를 요청하면 I/O 작업이 완료될 때까지 일시적으로 스레드의 수행이 블록킹되는데, 이처럼 스레드가 블로킹되면 다른 클라이언트의 요청을 처리하는 것과 같은 유용한 작업을 수행할 수 없으므로 수행 성능에 나쁜 영향을 미치게 된다.
    • 따라서 가능하면 스레드가 블로킹되지 않고 항상 어떤 작업을 수행하도록 하는 것이 좋으며, 스레드가 블로킹되는 상황은 가능한 한 피하는 것이 좋다.
    • 윈도우 개발자라면 I/O 컴플리션 포트의 동작 방식에 대해 완전히 이해해 둘 필요가 있다고 생각한다.
  • 1. 장치 열기와 닫기
    • 장치 일반적인 사용 예
      파일(File) 다양한 데이터에 대한 영속적인 저장소
      디렉터리(Directory) 특성과 파일 압축 설정
      논리적 디스크 드라이브(Logical disk drive) 드라이브 포매팅
      물리적 디스크 드라이브(Physical disk drive) 파티션 테이블 접근
      직렬 포트 (serial port) 전화선을 통한 데이터 전송
      병렬 포트 (Parallel port) 프린터로 데이터 전송
      메일 슬롯 (Mailslot) 윈도우가 수행 중인 머신들 사이에 네트워크를 통해 일대 다 데이터 전송
      네임드 파이프(Named pipe : 명명된 파이프) 윈도우가 수행 중인 머신들 사이에 네트워크를 통해 일대일 데이터 전송
      익명 파이프 (Anorymous pipe) 단일 머신 내에서 일대일 데이터 전송 (네트워크를 통하지 않음)
      소켓 (Socket) 소켓을 지원하는 다양한 머신들 간에 네트워크를 통해 데이터그램이나 스트림 형태로 데이터 전송
      콘솔(Console) 텍스트 윈도우 스크린 버퍼
    • ① CreateFile에 대한 세부사항 검토
      • CreateFile 함수를 이용하면 디스크에 새로운 파일을 생성하거나 기존 파일에 대한 열기를 수행할  수 있을 뿐만 아니라 파일이 아닌 다른 장치에 대해서도 열기 작업을 수행할 수 있다.
  • 2. 파일 장치 이용
    • 윈도우에서 파일 작업을 수행할 때 가장 먼저 알아두어야 할 것은 윈도우 운영체제가 매우 큰 마일을 다룰 수 있다는 사실이다. 윈도우는 최초 설계 시부터 파일의 크기를 나타내기 위해 32비트 값이 아닌 64비트 값을 이용하였다. 따라서 이론적으로 파일의 크기는 최대 16EB(엑사바이트)가 될 수 있다.
    • ① 파일 크기 얻기
      • 논리적인 크기와 물리적인 크기는 다르다. 논리적인 파일의 크기는 파일의 총 크기를 나타내지만, 물리적인 크기는 압축되어 디스크를 점유하고 있는 크기를 나타낸다.
    • ② 파일 포인터 위치 지정
    • ③ 파일의 끝 설정
      • 일반적으로 시스템은 파일을 닫을 때 파일의 끝을 설정하는 작업을 수행한다. 하지만 때로는 파일을 닫기 전에 파일을 더 작거나 크게 변경할 필요가 있다.
반응형
Comments