본문 바로가기

분류 전체보기16

스레드 프로세스만 있었을 때 CPU가 프로세스 A를 실행하다가 B를 실행한다고 생각을 합시다. 프로세스 A는 잠시동안 쓸 일 없으니 상태를 PCB에 저장하고, B의 상태를 레지스터에 저장해주어야 합니다. 그리고 또 캐시 메모리에 있던 데이터도 새로운 프로세스에 맞게 바꾸어주어야 합니다. 상당히 시간이 지체되는 작업들이였습니다. 이 두개의 프로세스의 데이터를 서로간 공유를 해주고 싶다고 생각해봅시다. 프로세스들은 독립된 주소공간을 가지고 있기 때문에 공유메모리나 소켓등을 이용하여 접근을 해야합니다. 이런 문제들이 있기때문에 스레드가 등장하게 되었습니다. 스레드의 정의 스레드는 한 프로세스에서 독립적인 순차흐름 또는 제어를 뜻합니다. 프로세스에는 최소 하나 이상의 스레드가 작동하며, 메인 스레드가 존재합니다. 스레.. 2020. 6. 18.
캐시 메모리: 리스트와 벡터의 속도차이 개요 리스트와 벡터, 어떤게 더 빠를까? 이 물음을 듣고나선 고등학생때 배웠던 리스트와 벡터의 차이를 생각해보았습니다. 벡터는 연속된 메모리 주소를 가진 Dynamic Array형태의 자료구조입니다. 리스트는 힙공간에 값을가진 노드가 생성되어있고, 노드가 다음 인덱스의 또 다른 노드를 가르키는 구조입니다. 단편적인 생각으로서는, 리스트와 벡터의 속도 차이에서 가장 큰 차이점은 중간 인덱스에 접근할때 구조적으로 속도 차이가 날수밖에 없다고 생각합니다. 그렇다면 만약에 리스트와 벡터 둘다 순차적으로 접근할때 어느 자료구조가 더 접근이 빠를까? 위와 같은 질문을 토대로 찾아 보았습니다. 답 커트 건서로스의 C++ 최적화: 최고 성능을 구현하는 10가지 검증된 기법에서 답을 찾을 수 있었습니다. 배열이나 벡터처.. 2020. 6. 17.
NDK / ADB NDK 정의 NDK(Native Development Kit)은 C와 C++같은 네이티브 코드 언어를 사용하여 앱을 구성할수 있게 해주는 도구 모음입니다. NDK를 사용하게 된 이유는, 맨 처음 JAVA로 안드로이드 어플리케이션을 개발할 때 다른 네이티브 코드와 달리 가상머신을 통하여 실행되었기 때문에 속도가 많이 느려질수밖에 없었습니다. 그렇기 때문에 조금 더 빠른 어플리케이션을 구성할 수 있도록 어플리케이션 코드의 일부를 가상머신을 통하지 않고 연산을 하도록 만든게 NDK입니다. 네이티브 언어로 구현할 수 있는 모듈을 가져와서 사용할수 있다면 어플리케이션 코드의 일부를 더욱 빠르게 연산시킬 수 있을것입니다. 유니티에서 유니티에서는 IL2PP기능을 이용하여 빌드를 한다고 하면 NDK를 사용해야 합니다... 2020. 5. 29.
앱번들 개요 / AAB 확장자의 의미와 테스트 AAB와 APK APK의 등장 및 변화 안드로이드는 기본적으로 앱을 APK라는 패키지 파일로 배포를 합니다. APK는 개발자가 만들어 놓은 프로그램을 컴파일 한 후, 어플리케이션을 구성하는 모든 파일을 하나의 패키지로 구성을 합니다. APK로 어플리케이션을 배포를 할 때, 이 어플리케이션이 어떤 기기에 설치될지 모르기 때문에 APK에선 여러기기에 대응하는 정보들을 APK에 적재합니다. 이를 유니버셜 바이너리라고 하며, 호환성이 좋지만 용량을 많이 차지하기 때문에 FAT 바이너리라고도 합니다 유니티에서는 이러한 FAT 바이너리를 덜어내는 설정이 있는데, 그게 Configuration의 Device Filter 설정입니다. 다른 방법으로는 APK를 특정 아키텍처에 맞게 빌드를 할수 있는 Split APKs .. 2020. 5. 28.
[Directx 11] 스터디 5일차 조명 Direct x 11 스터디 5주 차 조명 참고 블로그 https://copynull.tistory.com/253?category=649932category=649932 [DirectX11] Tutorial 6 - 조명 Tutorial 6 - 조명 원문 : http://www.rastertek.com/dx11tut06.html 이 튜토리얼에서는 조명(Diffuse lighting)과 DirectX 11을 활용하여 3D 객체를 그리는 방법을 다룹니다. 코드는 이전 튜토리얼의 소스에서 시.. copynull.tistory.com 이 블로그를 보며 작성한 글입니다. 이 게시글을 기준으로 보는 걸 추천드립니다. 개요 저번엔 모델링에게 셰이더를 이용하여 텍스쳐를 붙여줬다면, 이번에는 조금 더 자연스럽게 조명을 넣.. 2020. 2. 1.
[DirectX 11] 스터디 4일 텍스쳐 Direct x 11 스터디 4주 차 텍스쳐 참고 블로그 https://copynull.tistory.com/243?category=649932 [DirectX11] Tutorial 5 - 텍스쳐 Tutorial 5 - 텍스쳐 원문 : http://www.rastertek.com/dx11s2tut05.html 이 튜토리얼은 DirectX 11에서 텍스처를 사용하는 방법을 설명합니다. 텍스처를 사용하면 도형 표면에 사진과 다른 이미지를 적용하여 더.. copynull.tistory.com 이 블로그를 보며 작성한 글입니다. 이 게시글을 기준으로 보는 걸 추천드립니다. 개요 저번에는 단색 또는 버텍스의 색이 섞인 모델링을 출력해보았다면, 이번에는 이미지를 입힌 모델을 출력해봅시다. 텍셀 좌표계 텍스쳐를 입힐.. 2020. 2. 1.
[DirectX 11] 스터디 3일 버퍼/셰이더 Direct x 11 스터디 3주 차 버퍼, 셰이더 및 HLSL 참고 블로그 https://copynull.tistory.com/ Thinking Different Thread-safe 보다는 Reentrant 하게 copynull.tistory.com 이 블로그를 보며 작성한 글입니다. 이 게시글을 기준으로 보는 걸 추천드립니다. 개요 2주차 까지는 Directx에 관련한 요소들을 초기화를 했습니다. RenderTargetView, Depth/StencilView, 레스터 라이저 설정, 뷰포트 설정 등 여러가지 설정을 했지만 단색의 화면만 나왔습니다. 이번에는 Direct 3D의 시작인 모델링 출력에 관해서 만들어봅시다. 렌더링 파이프라인 모델링을 출력하기 전에 먼저 알아야 될 개념 중 하나는 렌더링 .. 2020. 1. 19.