본문 바로가기

C67

Chapter 01. 환경 설정과 기초 입출력 보호되어 있는 글 입니다. 2022. 4. 7.
Chapter 21. Dynamic Linking Library 21.1-1 C Runtime Library 설정 Note) 이 장에서는 DLL이 메모리 상에서 어떤 의미를 지니는지만 알아 볼 예정. C언어 개발시에 printf() 함수와 같은 것들도 결국 Library에 의해 제공 받음. 테스트 할때는 (debug)가 달린 걸로 테스트하면 되고, 개발 완료 후 배포할 때는 안 달린 걸로 빌드하면 됨. Note) VS 6.0 버전 이후부터 Multi-threaded debug library로 설정됨. 21.1-2 Static Library Vs. Dynamic Linking Library Note) 정적 라이브러리의 경우에는, 실행 파일안에 정적 라이브러리가 그대로 무겁게 통째로 들어감. 즉, 똑같은 정적 라이브러리임에도 불구하고 세 개의 실행 파일안에 각각 들어가 .. 2022. 2. 14.
Chapter 20. 메모리 관리(Virtual Memory, Heap, MMF) 20.1 가상 메모리 컨트롤(Virtual Memory Control) Prologue) 코드 상으로 구현하는 능력보다는, 세 가지(Virtual Memory, Heap, MMF)가 갖는 의미, 왜 하는가, 장점이 뭔가를 이해 해야함. 그래서 적재적소에 쓸 수 있어야 함. 16장의 내용이 기본적으로 필요함. 20.1-1 가상 메모리의 Commit, Free와 물리 메모리의 관계 Note) CPU나 프로그래머나 메모리를 바라보는 관점은 4G가 모두 있다고 믿음. 즉, "가상 메모리"를 바라보고 있는것. 실제 메모리는 이보다 적게 별도로 존재함. 이 가상 메모리를 컨트롤 한다는게 어떤 의미를 지니는지 살펴보자 Note) 가상 메모리의 세 가지 페이지 상태 - 가상 메모리는 페이지 단위로 나뉘어짐. 페이지의 .. 2022. 2. 14.
Chapter 19. 비동기 I/O와 APC 19.1 비동기 IO(Asynchronous IO) Prologue) 비동기 IO지만, 크게보면 파일 IO도 포함하는 내용. 19.1-1 IO와 CPU 클럭의 관계 Note) CPU 클럭이 높아지면 성능도 따라서 올라간다는 걸 전제로 함. IO도 CPU 클럭이 높아지면 성능이 높아지긴 하나, 긴밀한 관계를 갖고 있진않음. 대신 버스 클럭에는 의존도가 높음. Note) 두 개의 시스템이 있다고 가정해 보자. A 시스템과 B 시스템. 두 시스템은 생성한 데이터를 가공해서, 목적지로 보냄. A 시스템은 100 클럭[?], B 시스템은 200 클럭임. 그럼 B 시스템이 IO처리가 더 빠를까? 아님. IO라는 것(File, network, console, ...)은 결국 Buffering이 필요함. 즉 Buffe.. 2022. 2. 14.