일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 위젯킷
- cs
- 영남대
- 1일1알골
- 스위프트
- 멋사
- composable architecture
- Swift
- TCA
- 문법
- SwiftUI
- 웹
- swift concurrency
- 스유
- spritekit
- widget
- widgetkit
- 대외활동
- uikit
- 알고리즘
- 네트워크
- Protocol
- 후기
- 컴퓨터그래픽스
- 운영체제
- 리액트
- 백준
- dispatchqueue
- 멋쟁이사자처럼
- c++
- Today
- Total
목록CS (30)
맛동산이
가상메모리물리메모리의 한계는 결국 메모리 주소 버스 크기에 좌우된다.32비트의 cpu면 2^32 가 물리메모리가 4gb가 되고. 64비트라면 2^64가 될것이다. 하지만 실제적으로는 비용상 8~32gb정도 장착된다.그렇다면 만약 프로그램이 5gb처럼 큰 프로세스는 돌아갈수 없으며, 동시수행되는 프로세스의 크기의 총합은 물리메모리 보다 클수가 없다는 단점이 발생한다.즉 프로세스보다 메모리가 작으면, 할당이 될수가 없다. 이를 해결하는 방법은프로세스의 메모리와 보조저장장치에 동시에 프로세스를 나눠서 저장하게 되면 프로세스는 실행하기에 충분한 메모리가 잇다고 착각하게 된다.스와핑(swapping)을 통해서 해결할수 있다. 메모리가 부족할때 실행에 필요하지 않는 부분은 보조저장장치에 이동 하는것이다.이렇게 하..
세그멘테이션(segmentation) 페이징은 분명, 외부단편화가 생기지 않고, 간단하게 메모리 효율을 높일수 있었지만,하나의 문제점이 발생한다.바로, 하나의 프로세스를 구성하는 논리적인 의미의 코드나 데이터들을 나눌수 없었던 것이다.즉 하나의 프로세스 안에서 영역을 나눌수 없었다. segmentation은 프로세스의 데이터를 데이터, 힙 스텍 코드 영역을 나누고 코드영역을 함께 나눠서 사용할수 있도록 하기 위해서 하나의 페이지 안에서 데이터 종류에 따라 세그먼트 단위를 할당하는 방식을 의미한다.즉, 페이징은 프로세스 별로 메모리를 할당하는것이고, 세그멘테이션은 할당된 프로세스를 좀더 잘게 나누는 방법이다. Segment라는 서로 다른 길이를 가질수 있는 블럭을 구성해주기 때문에 비연속 할당또한 하기 때..
페이징 한 프로세스의 논리 주소 공간을 연속적인 하나의 긴 메모리가 아닌, 메모리를 여러개의 포스트잇과 같이 작은 동떨어진 공간들에 배정할수 있도록 하는 방법이다. 이를 통해 외부단편화를 해결할 수 있다. 모든 논리 주소는 페이징 하드웨어에 의해서 물리주소로 매핑된다.Frame : 물리메모리를 고정된 크기로 분할한 것.Page : 논리주소를 물리메모리 처럼 분할한 것논리주소를 물리주소로 변환하기 위해서 페이지 테이블을 이용하게 된다. 페이징 특징구현이 고정크기로 분할하기 때문에 쉽다.Cpu에 의존하는게 없다. 이식성이 높다.시스템에 따라 page크기를 다르게 설정도 가능하다. 융통성이 높다.시간 오버헤드 적에서 우수하다. 외부단편화가 생기지 않고, 홀 선택 알고리즘을 실행할 필요가 없다.페이징 또한, 내..
메모리는 해당 위치를 알려주는 주소가 존재하며, 메모리 주소는 크게 두가지 종류로 나눠진다.물리적 메모리주소 : 실제 메모리 상에 존재하는 주소를 의미한다.논리적 메모리주소 : 프로세스에 메모리가 할당이 됐을때, 현재 물리메모리 안에서 실행중인 메모리의 위치를 나타내는 주소로, 프로세스 내부에서는 0~끝 까지를 의미하게 되며, 이말은 즉, 프로세스 내부에서 사용하는 메모리의 위치를 나타내는 값이다. 이러한 논리적 메모리를 읽기 위해서는 mmu라는 것이 필요하다. MMU(memory allocator) : 논리주소를 물리주소에 매핑시켜주는 역할로, 실제 프로세스의 요구하는 정보 위치를 메모리에 할당하게 하는 녀석이러한 과정에서 메모리테이블을 사용하기도 한다. 메모리할당메모리 할당 방법은 크게 연속적 메모리..
texture mapping : 물체에 표면에 세부적인 질감을 표현하는 방법 texture mapping, pattern mapping프레임과 실제 이미지를 1대1로 매핑하는것으로, 질감을 입힐수 있다.이러한 방법은 무늬를 그냥 입히는것으로 사실감을 극대화 하고, 기하학적인 복잡도를 올리지 않고, 간단하게 표현하게 되는 장점이 존재 한다.쉽게 말하면 그냥 이미지 색처리해주는거임. bump mapping시각적으로는 튀어나온 부분은 밝게, 들어간 부분은 어둡게 느껴지는 현상을 up facing과 down facing을 표현해주는 방법이다.environment mapping물체의 표면 재질이 반사가 가능한 경우, 주변 환경이 물체의 표면에 반사 되는것을 표현하는것을 의미한다. Uploaded by N2T
우리는 물체의 곡선을 나타내기 위해서 polygon mesh라는 기법을 사용하고, 이 polygon mesh는 여러개의 폴리곤으로 이루어져 있다. 이러한 폴리곤 mesh는 각각의 폴리곤을 색칠해야하는데, 이때 사용하는기법이 두가지가 존재한다. constant shading interpolated shading constant shading : faceted shading, 혹은 flat shading이라고 하며, 하나의 물체 표면을 구성하고 있는 면(하나의 폴리곤)에 전부 동일한 밝기 값을 부여하는 음영처리 기법이다. interpolated shading(보간음영처리) : vetex intensities를 계산하여, 보간 법으로 단일 폴리곤 내부에서 빛의 밝기를 다르게 주는 방법이다. 즉 가장자리와 중심..
specular reflection : 거울반사 혹은 , 정반사를 의미한다.물체의 재질이 매우 매끄러운 경우 입사각과 반사각이 동일한 부분에서, 관측자와 전반사 되는 반사선에서의 차이가 작을수록 밝게 빛난다.즉 l 이 광원일때, N이 물체 표면과 수직인 선이면, 그 n의 기준에서 동일한 각도로 나오는 R이, 거울반사 각도이며, 관측자 v와 의 각도인 a가 차이가 없을수록 밝게 느끼며, 반사빛의 부위가 좁아진다. pong illumination model관측자가 반사되는 위치에 가까울수록 즉 a값이 작을수록 더 밝게 느낀다. a값이 0일때 전반사가 일어남, 이를 모델링 하기 위해서 cos ^n a로 계산하는것이다. 하이라이트 되는 브라이트 스팟의 크기가 급격하게 작아지는것을 계산하기 위한 방법이다.n값이 ..
illumination model 그래픽스의 최종적인 목표는 현실과 구분할수 없을 정도의 정확한 표현이다. 하지만 이를 위해서는 다음과같은 조건이 존재한다.물체들에 대해서 정확한 표현이 이루어 져야 한다.(질감, 크기, 색감 등등..)빛의 효과를 잘 반영 해야한다. light source우리가 보는 물체는 광원이 아니며, 불투명 하다. 여기에서 우리가 물체를 보기 위해서는 빛이 반사 되어야 하고 이러한 빛의 총합은 아래와 같다.광원에서 오는 빛다른 물체의 반사 되는 빛 광원은 종류가 2개가 있다.point source(점광원) : 묘사 하고자 하는 물체보다 들어오는 빛이 상대적으로 작은 경우distributed light(확산광원) : 묘사 하고자 하는 물체보다 빛의 넓이가 상대적으로 큰 경우(레이저 포..
가시표면 결정 알고리즘은 두 종류가 있다.object-precision algorithm : 객체 단위로 보이는 것인가 아닌가를 확인image-precision algorithm : 픽셀 단위로 보이는것인가 아닌가를 확인 보통 객체단위가 계산이 줄고, 간단한 편이지만 그래픽스에서 가장 중요한것은 사실적인 표현이며 이를 위해서는 픽셀 단위로 표현하는게 더 좋다.하지만 픽셀단위로 확인하면, 데이터 계산량이 많아지는데, 이를 해결하기 위한 방법은 픽셀의 Coherence(일관성)과 Sorting(정렬)이다. 정렬을 통해서 동일한 투영선 상에 존재하면 깊이순서로 , 즉 관측자로부터 먼 픽셀은 비가시픽셀로 선택하는 방법을 사용하고,일관성을 통해서 규칙성을 찾아낸다. 해당알고리즘의 대표적인 방법들두개의 방법의 대표..