본문 바로가기

C67

Chapter 18. 파일 I/O와 디렉터리 컨트롤 Note) ANSI에서는 파일 I/O에 대해 규격을 정해놓음. 그럼 그렇게 정의된 ANSI 표준 파일 I/O 함수를 쓰면 Windows, Linux, Unix, ...와 같은 플랫폼과 독립적으로 똑같은 과정으로 똑같은 결과물을 얻을 수 있음. 그럼 이걸 어떻게 구성했는지에 대해 알아보자. Note) 하드웨어에 Window를 설치할수도, Linux나 Unix를 설치할 수도 있음. 그리고 그 OS위에 APP이 실행됨. 파일을 하나 생성하고 저장했다고 해보자. 그럼 파일이 저장되는 방식은 File System에 의존적임. 파일을 어떻게 정의하고 어떻게 구성할 것이냐에 대한 것이 File System. 이는 OS의 중요한 일부. 어찌되었든, ANSI 이전에는 각 OS의 File System 함수들이 완성되어 있.. 2022. 2. 14.
Chapter 17. 구조적 예외처리(Structured Exception Handling) 17.1 SEH(Structured Exception Handling) Prologue) 우리의 컴퓨터 시스템에서 발생하는 예외라는 것이 어떤 방식으로 발생하고 처리되는가. 컴퓨터 시스템은 CPU + OS + APP으로 구성됨. - 내부 외부를 나누는 기준은 CPU + OS를 내부, APP을 외부로 나누기도 함. - 또는 CPU를 하드웨어, OS와 APP을 소프트웨어로 나눔. CPU로는 명령어들이 하나씩 순차적으로 FDE됨. 이 명령어는 경우에따라 OS일수도, APP일수도있음. 다만 CPU는 이를 구분하진 못함. 전달되어진 명령어를 연산할 뿐임. OS인지 APP인지 관심없음. 다만 CPU를 디자인할때, CPU의 연산 방법은 정해져 있음. ex. 4byte 피연산자 나누기 1byte 피연산자는 불가능. C.. 2022. 2. 13.
Chapter 16. 컴퓨터 구조에 대한 네 번째 이야기 16.1 메모리 계층(Memory Hierarchy) 16.1-1 메모리 계층 구조 Note) 하드 디스크와 메인 메모리를 같은 관점으로 봐야함. - 하드 디스크에는 저장이라는 기능이 있음. 즉 비휘발성 메모리. 파워를 꺼도 날아가지 않음. 그리고 실행의 기능도 있음. 그러나 메모리는 저장 기능은 없고 실행의 기능만 있음. - 익히들 하드디스크를 배울 때는 저장 관점으로, 메모리를 배울 때는 실행 관점으로 배움. 그러나 이 챕터에서만큼은 둘 다 실행의 관점. 즉, 메모리 매니지먼트는 실행의 관점에서 배우는 파트. 저장은 File system 파트. 이 파트를 배울때는 저장의 관점에 너무 매몰되면 안됨. 그렇다고 저장 관점이 아에 필요없진 않음. Note) 메모리 계층 구조의 필요성 - 컴퓨터를 직접 만든.. 2022. 2. 13.
Chapter 15. 쓰레드 풀링 15.1 쓰레드 풀에 대한 이해 Prologue) 책의 Part4는 윤성우 저자가 실무적인 부분을 집중적으로 집필한 부분. 그리고 집필 당시, 가장 먼저 집필한 파트. 내용도 프로그램의 성능과 성격을 결정짓는 Memory Management, I/O에 대한 내용이 들어있어서 꽤나 중요한 파트. 15.1-1 쓰레드 풀이란 Note) 쓰레드 풀은 대표적인 FrameWork. - 쓰레드 풀은 제공되는 API를 이용해서 작성하면 쉽게 구현할 수 있음. 그래서 막상 구현해보라 하면 뭔진 아는데 구현을 못함. - FrameWork로 제공이 되지만, 직접 구현해 봄으로써 쓰레드 관련 내용인 동기화 기법들이 하나의 모델로 활용이 됨. 그래서 종합적인 점검의 느낌. Note) 쓰레드 풀이 왜 필요할까? - 쓰레드라 생각.. 2022. 2. 13.