CPP 가 쓰이는곳
CPP 는
포퍼먼스 이슈를 가지고 있는 곳 에 쓰인다.
- Embeded
- Realtime App
- Finacial Industry
- Legacy
하드웨어랑 친하다.
또한 하드웨어 에대한 IO 를 배울 수 있다. (CPU, Memory, GPU, Disk, NIC, Keyboard, monitor)
HardwareFriendly
하드웨어랑 OOP 개념을 잡을 있다.
하드웨어 개념을 잡을 수 있다는것은,
성능상 이슈에 대해 하드웨어 단계에서 해결방법을 찾을 수 있다.
- HardwareFriendly
- memory, thread management
- machine code
- OS, ComputureAchitecture
- DataStructure, Algorithm
- OOP
C++ : 장치 입출력
C++ 프로그래밍을 통해 각 장치에 대한 입출력이 가능합니다.
컴퓨터에는 여러가지 장치가 장착됩니다.
CPU, GPU, Memory, NIC, KeyBoard, Monitor, ...
각 장치에 대한 입출력을 하는 방법을 배웁니다.
메모리 장치에 대고 값을 쓰고, 읽는것을 변수선언, 읽기, 쓰기 라 한다.
CPU 장치에 대고 계산을 요청하는것을 연산 이라 한다.
키보드 장치 의 입력을 받아오는것을 표준입력, stdio 라고 한다.
모니터 장치 에 출력 하는것을 표준출력 , stdio 라고 한다.
하드디스크 장치 에 파일을 쓰고 읽는 방법을 File I/O 이라 한다.
그래픽카드 장치에 입출력을 하는방법을 배우는것을 DirectX 이라 한다.
통신을위해 네트워크 카드 장치 에 입출력 하는 방법을 배우는것을 SocketPrograming 이라 한다.
행위 |
값 연산 |
값 저장,쓰기,읽기 |
표준 입력 |
표준 출력 |
하드디스크 입출력 |
그래픽카드 입출력 |
네트워크카드 입출력 |
목표 |
값 계산 |
값 임시 저장 |
사용자의 입력 가져오기 |
사용자에게 계산 결과를 보여주기 |
값 영구 저장 |
그래픽 연산 |
네트워크 통신 |
필요 이론 |
연산자 |
할당자 |
장치 입출력 |
장치 입출력 |
File System |
컴퓨터 그래픽스(벡터,행렬,변환) |
네트워크 |
API (장치 입출력 명령 기능제공자) |
연산자 |
변수선언자 |
iostream, stdio |
iostream, stdio |
File System |
DirectX |
WinSock |
Device Interface (장치의 추상화된 객체) |
|
|
stdin |
stdout |
FILE |
D3D12Device |
Socket |
Device (입출력 대상) |
CPU |
Memory |
KeyBoard |
Monitor |
HardDisk ( HDD, SSD) |
GPU |
NIC |
| File I/O |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| Memory I/O - Value Read & Write |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| CPU I/O - Operation |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| GPU I/O - DirectX |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| File I/O |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| NIC I/O - Socket Programing |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| Standard I/O [ KeyBoard ] |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|
| Standard I/O [ Monitor ] |
S/W |
UserMode |
|
| SystemCall |
KernelMode |
|
|
H/W |
|