728x90

CS 92

가상메모리와 가상메모리의 페이징

[운영체제] 가상 메모리(Virtual Memory System) (tistory.com) [운영체제] 가상 메모리(Virtual Memory System) 들어가기 전.. 메모리(memory)란? 메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치임. 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치 ahnanne.tistory.com 컴퓨터에서 말하는 메모리라는것은 프로그램 + 프로그램 수행에 필요한 데이터, 코드를 저장하는 장치를 말함 메모리는 크게 주기억장치, 보조기억장치로 분류됨 주기억장치에는 DRAM, CPU 안에 있는 레지스터, 캐쉬 등의 내부 기억장치가 해당됨 SSD, HDD같은 외부 기억장치가 보조기억장치임 초기 컴퓨터는 사용 가능한 RAM의..

CS/운영체제 2023.10.01

[공룡책] 운영체제

ex)windows 10, Linux, Mac OS X 운영체제: 컴퓨터를 운영하는 시스템 컴퓨터: 정보를 처리하는 기계 정보: I(x) = - log2P(x) 어떤 불확실한 상황을 측정해서 추측치로 표현하는 것 정보량 컴퓨터가 정보를 어떻게 처리하죠? 정보의 최소 단위 bit (binary digit) 정보의 처리: 정보의 상태 변환(0에서 1로, 1에서 0으로) 덧셈은? 반가산기, 전가산기 뻴셈은? 2의 보수 표현법 곱셈과 나눗셈은? 덧셈과 뺄셈의 반복 실수 연산은? 부동 소수점 표현법 함수는? GOTO 삼각함수, 미분, 적분, 사진촬영, 동영상 재생..... 컴퓨터가 만능이라는 건가요? 범용성: universality -NOT, AND, OR 게이트만으로 모든 계산을 할 수 있다. NAND 게이트만..

CS/운영체제 2023.10.01

[C++]Vector와 List의 차이점

1.Array Vs List 차이점 Array : 메모리 상에 데이터가 연속적으로 저장됨 List : 메모리 상에 데이터가 비연속적으로 저장됨 2.Vector Vs List 차이점 99퍼센트는 벡터를 씀 (벡터가 더 빠름) 랜덤 접근 삽입/삭제 뒤쪽 삽입/삭제 벡터 O(1) O(n) - 하나하나 다 밀어야함 O(1) 리스트 O(n) - iterator를 사용해야함 O(1) O(1) if find함수를 쓸 때는 둘 다 O(n) 시간복잡도가 필요함 but vector의 find가 훨씬 빠름 실제 저장 공간은 격자구조. vector는 순차적으로 저장됨 -> 다 cache안에 들어감 list는 여기저기 끊어져있음 -> cache miss가 일어남 더보기 자료구조의 성능을 비교할 때는 원소의 크기, 지역성에 대한..

CS/C++ 2023.10.01

[C#]박싱 언박싱

[c#] 박싱(boxing), 언박싱(unboxing) 개념과 사용 이유 (tistory.com) [c#] 박싱(boxing), 언박싱(unboxing) 개념과 사용 이유 기존에 타입을 변환하는것을 형변환(type casting)이라고 했었습니다. (형변환은 관련 포스팅 참조 바랍니다.) 박싱과, 언박싱도 형변환을 하는것이지만 조금 결이 다른데요. 1. 박싱과 언박싱이란? yeko90.tistory.com 형변환과 비슷하지만 다른 개념 박싱(boxing) : 값 형식을 참조 형식(Object타입)으로 변환 언박싱(unboxing): 박싱했던 값을 다시 원상태로 복귀 명시적으로 적어주면서 언박싱해야함 왜 사용? 배열에 다양한 타입으로 넣고 싶어서 단점: 메모리상 비효율 1.값형 -> 참조형으로 바뀔 때, ..

CS/C# & Unity 2023.09.27

정렬(선택,버블,삽입,병합,퀵,힙) / 무엇이 가장 빠르고 왜 빠른가 (동작과정)

(2) [게임코딩급행열차] 정렬 알고리즘 - YouTube 1.선택정렬 정렬되지 않은 데이터들 중에서 가장 작은 값을 추출하여 가장 맨 앞으로 정렬해나가는 알고리즘 시간복잡도 매 실행마다 최솟값 찾아야 하므로 이중 for문 사용하여 O(n^2) 2.버블정렬 인접한 두 수를 계속해서 비교하는 정렬 알고리즘 맨 뒤 인덱스부터 앞으로 정렬이 될 것임 시간복잡도 : O(n^2) 매번 자리를 바꿔야 하므로 비효율적임 (데이터가 많아졌을 경우 엄청난 연산) 3.삽입정렬 자료 배열의 모든 요소를 앞에서 부터 비교하고자 하는 타겟값(tmp)과 정렬된 값을 비교하여 자신의 위치를 찾아 삽입하면서 정렬해나가는 알고리즘이다. 매번 비교할 때마다 앞 부분에 해당하는 범위 모두 타겟값과 비교하여 해당 원소를 삽입할 수 있는 위..

렌더링 파이프라인

[Computer Graphics] 렌더링 파이프라인 요약 (velog.io) [Computer Graphics] 렌더링 파이프라인 요약 3차원으로 만들어진 모델을 2차원 픽셀 데이터로 변환하는 렌더링 과정인 렌더링 파이프라인(Rendering Pipeline)에 대해 알아보자. velog.io 3차원으로 만들어진 모델을 2차원에 투영하는 렌더링 과정의 프로세스를 자세하게 표현한 것이다. 컴퓨터에 데이터로 존재하는 3D 리소스가 모니터에 출력되는 과정이 렌더링 파이프라인을 따르게 된다. 위의 과정에 따라 화면에 도형을 표시할 수 있으며, 주황색 박스로 된 과정이 조작 가능한(Programmable) 단계 1.Input Assembler (Vertex Specification) CPU로부터 렌더링 수행할 ..

C++과 C#의 차이 (+ 속도차이)

C#과 C++간의 가장 중요한 차이점은 메모리 관리 메모리 할당/해제 플랫폼 지원 구문 C malloc, free 사용 프로그래머가 메모리 수동으로 관리해야 하기 때문에 많은 메모리누수 C++ new, delete로 직접 할당, 해제 스마트포인터를 사용해 자동으로 할당, 해제로 진화하였지만 여전히 순환참조 같은 특정 상황에서 메모리 누수 특정 하드웨어 및 운영체제에 맞게 컴파일할 수 있는 네이티브 언어 C와 유사한 구문을 사용하는 저수준 언어 C# 가비지 콜렉터를 채택 오버헤드가 있어 시스템이 바쁘게 돌아가고 있을때 GC가 실행되면 시스템에 장애 여러 운영체제에서 공통 런타임 환경을 제공하는 .NET플랫폼에서 사용 Java와 유사한 구분을 사용하는 고수준 언어 C#은 C++보다 느릴까?

CS/ETC 2023.09.27

트랜잭션

"쪼갤 수 없는 업무 처리의 최소 단위" ex) 'A라는 사람이 B라는 사람에게 1000원을 지급, B가 그 돈을 받을 경우' 이는 더이상 작게 쪼갤 수 없는 하나의 트랜잭션임 A의 돈 지불 행위와 B의 돈 받는 행위는 별개로 분리될 수 없음 트랜잭션 처리가 정상적으로 완료될 경우 커밋을 하고, 오류가 발생할 경우 원래 상태대로 롤백해야 함. 목적 데이터베이스 서버에 여러 개의 클라이언트가 동시에 액세스하거나 , 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용 조건 ACID 1.원자성 (Atomicity) 하나의 트랜잭션이 더 이상 작게 쪼갤 수 없는 최소한의 업무 단위 트랜잭션이 데이터베이스에 모두 반영되던지, 아니면 전혀 반영되지 않아야 함 Al..

[Unity]코루틴과 스레드의 차이

1.Unity는 기본적으로 멀티쓰레드를 지원하지 않음 Monobehavior에서 상속받아서 Thread를 사용하려고 하면 경고문 or 에러가 발생함. 메인쓰레드 하나로 생명주기를 돌며 update문을 실행하면서 1/60초에 한 번씩 이 메인쓰레드의 실행이 반복됨 2.Unity에서 싱글쓰레드를 사용하는 이유 상용 엔진에서는 async/await를 사용해야만 하는 경우가 극히 드뭅니다. 일반적으로 그 외적인 방법으로도 컨트롤 할 수 있는 영역 내에서 스크립팅이 진행되고, Scalable한 비동기 API를 제공한다고 해도 그 효과를 적극적으로 누릴 수 있는 분야는 다소 제한적이기 때문입니다. 렌더링을 비롯한 게임 로직을 비동기로 동시에 사용할 수 있게 제공하더라도 그 효율성보다 그 준비단계에서의 부담이 더 크..

CS/C# & Unity 2023.09.23
728x90