IPC (Inter Process Communication)
프로세스들끼리 통신하는 기술
병렬 처리
병행성 (Concurrency)
하나의 코어로 여러 프로세스를 처리 (1 코어 n 스레드)
한 순간에 한 개의 프로그램만 처리
문제점 : 프로세스 동기화
해결방안 : 세마포어, 모니터(세마포어를 관찰하기 위한 알고리즘)
병렬성 (Parallelism)
복수 프로세서로 여러 개 또는 한 프로그램의 분할된 부분을 동시에 처리
한 순간에 두 개 이상의 프로그램 처리
여러 코어로 하나의 프로그램을 처리 (n 코어 n 스레드)
멀티 스레드
문제점 : 프로세서 동기화
해결 방안 : 버스락, 스핀락, 베리어

메모리 공유 방식 - Flynn의 분류
SISD (Single Instruction Single Data)
하나의 데이터로 하나의 명령을 처리한다
SIMD (Single Instruction Multi Data)
여러 데이터로 하나의 명령을 처리한다
GPU에서 이 방식을 사용
- Vector3D의 경우, float 3개가 묶여서 하나의 명령어로 처리된다
MISD (Multi Instruction Multi Data)
하나의 데이터로 여러 명령을 처리한다
MIMD (Multi Instruction Multi Data)
여러 데이터로 여러 명령을 처리한다
크로노스 그룹 (Khronos Group)
OpenGL 발명한 그룹
APU (Accelerated Processing Unit)
CPU와 GPU를 합해서 만든 성능 가속 프로세서
콘솔게임기 x박스 플레이스테이션 같은거에 쓰인다
탄생 배경 : CPU 와 GPU가 따로 있으면 속도처리, RAM, VRAM이 따로있는것에 문제가 생긴다 -> 합침
멀티스레딩
하나의 코어에서 여러개의 스레드를 실행 - 병렬성
하이퍼스레딩
코어를 분할해서 마치 여러개처럼 만들어주는것
안드로이드 에뮬레이터 / 윈도우 내에서 리눅스 실행하는 것
'> CS' 카테고리의 다른 글
| [컴퓨터 구조] 캐시 메모리, 주기억장치 (0) | 2023.08.08 |
|---|---|
| [컴퓨터 구조] 기억 장치 (0) | 2023.07.20 |
| [컴퓨터 구조] 시스템 구성 요소, CPU와 GPU (0) | 2023.07.11 |
| [자료구조] 스택 구현 _ 1차원 배열 (C++) (0) | 2023.07.07 |
| [알고리즘] 삽입 정렬(Insertion Sort) 구현 (C++) (0) | 2023.06.08 |