728x90
반응형

메모리 19

UTF-8, UTF-16 그리고 ASCII

https://nhj12311.tistory.com/59 UTF-8 형식으로 인코딩이 되지 않아서 소스코드가 망가졌다. 라는 말을 들어봤다면 자기 파일의 인코딩 방식이 뭔지 알아야 한다. 아마도.. ANSI로 되어 있을 것이다. 그렇다면 ANSI는 뭐고 UTF-8은 뭐고 UTF-16은 뭘까? 알아보자 유니코드라고 들어본적이 있다면 쉬울 것이다. 바로 UTF가 유니코드다. Unicode Tranformation Format - N-bit 라는 뜻이다. 유니코드가 전세계의 모든 문자를 표현하기 위해 나온 방식이라는 것을 알았다면 UTF-8은 8비트로 문자를 표현하는 방식이라는 것이다라는 느낌이 온다. 8-bit 즉, 1Byte로 표현하는데 우선 UTF-8은 ASCII 방식과 동일하게 작동한다. ** 다시 말..

미구분 2022.06.11

C#에서의 값 형식, 참조 형식, 박싱(Boxing), 언박싱(Unboxing) [Unity]

C#에는 2가지 데이터 형식이 존재한다. 중요하다고 볼 수 있는 점은 대입 연산자 과정에 있다. 더욱이 복사 연산이 될 때다. 이 차이점은 이들 형식이 복사되는 방식에 따라 나뉘게 된다. 값형식의 데이터는 항상 값으로 복사되지만, 참조형식 데이터는 항상 참조로 복사된다. 알아보자 참고로 값 형식은 얕은 복사(Shallow) 참조 형식은 깊은 복사(Deep) 기본 제공 데이터 형식 중 하나 또는 사용자 정의 구조체를 사용하여 선언된 변수는 값 형식을 가진다. ** 예외적으로 string 타입은 참조 형식이다. 기본 제공 타입은 이정도? bool, char, byte, decimal, double, enum, float, int long, short, sbyte, struct, uint, ulong, ush..

Paging, 페이징이란?(+단편화)

Paging 기법은 가상메모리의 기법에서 더욱 효율적이게 메모리를 관리하는 것이다. 가상 메모리에서는 해당 프로세스의 관련된 데이터 모두를 적재하는 것이 아니다.라고 말했다. 단순히 레지스터에 시작주소 값을 담아 사용하기에는 연속된 메모리영역이 필요하다. 하지만 연속된 메모리영역을 확보하는 것은 무척이나 힘든 일이기 때문에 이제 프로세스의 물리 주소 공간이 연속되지 않아도 되는 메모리 관리 기법인 페이징을 쓰는 것이다. 페이징이란? 페이징은 virtual memory를 page로 나누는 기법을 말한다. 일반적으로 물리메모리는 동일한 크기의 frame으로 논리메모리는 동일한 크기의 page로 나눈다. **page size는 하드웨어에 의해 결정된다. 페이징이 작동하는 원리 page table을 사용하여 논..

CS Interview 2021.10.10

스택과 힙 메모리 영역, Stack Heap Memory

운영체제를 배웠다면.. 조금이라도 알 수 있지만 시험이 끝나면 까먹는 우리에게 다시 익힐 시간이 필요하다. 다시 알아보자 ** 데이터 영역에는 전역 변수, static variable들이 저장된다. 숫자나 문자열 값인 리터럴도 저장된다. **리터럴이란 소스 코드의 고정된 값을 말한다. 즉, int i = 1; 에서 1을 말한다. -생존 주기, Life Cycle은 프로그램의 시작부터 끝까지 가지고 있다. text영역은 code segment라고도 불리는데 프로그램 코드가 저장되고 절대 변경되지 않는 구역이다. 우선 스택과 힙이 하는 역할에 대해서 알아보자. 스택에는 함수호출, Function Call에서 메모리 할당이 일어난다. 함수 호출에 쓰이는 지역변수, 매개변수가 저장되고 함수호출에 대한 활성 레코..

CS Interview 2021.08.25

Cache, 캐시란?

물론 캐시에 대해서 할 말은 많지만 우아한 테크톡의 설명을 보면서 https://www.youtube.com/watch?v=c33ojJ7kE7M&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=123 을 보면서 같이 내 언어로 바꿔보는 시간을 가져보려고 한다. # 동영상의 내용 메모리의 속도와 용량은 반비례? 설명이 틀렸다. 속도와 가격이 비례라고 하는 것이 더 맞는 표현이겠다. 메모리 계층구조가 왜 나왔는지를 설명하기에 조금 부족했다. 메모리 계층 구조는 locality를 이용하기 위해 나왔는데 계층구조를 설명하고 그 다음에 locality를 설명했다. 파레토 법칙을 이용해서 캐시의 지역성을 설명하는 것은 좋았다. 배열에 대해서는 단일 메모리 블럭, 연속된 메모리를 사..

CS Interview 2021.06.23

캐시, Cache 와 메모리 종류 - 기본 개념 [컴퓨터구조]

메모리에서 Cache, Main memory, Secondary Memory 3가지로 나누어지는데 이 중 우리가 가장 중요하다고 생각하는 캐시에 대해서 알아보자 넥슨캐시 이런거 아니다. cash (x) 다만 발음은 똑같다. 그래서 캐시를 말할 때 L1 cache를 -> L1 $이라고도 표현한다. 일반적으로 메모리는 이렇게 발전했다. 빠를수록 용량이 작고 비싸다. 하지만 점점 발전하고 기술이 발전해서 여기까지 온거다. 메모리의 중요성도 커지고 있다. 현재는 DRAM을 Main Memory로 보편적으로 씀 SRAM이 뭔데? 단순한 집적회로로 읽기, 쓰기를 제공하는 접근 포트가 하나밖에 없는 메모리 배열이다. **SRAM은 읽기 접근 시간과 쓰기 접근 시간이 다를 수는 있지만, 데이터의 접근시간은 같다. **..

Virtual Memory, 가상메모리 [운영체제]

앞서 페이징에 대해 먼저 알고와야한다. [컴퓨터(Computer Science)/운영체제(Operation System)] - Paging, 페이징, 불연속 메모리 할당 [운영체제] Virtual Memory란 별 거 아니다. 진짜 가상메모리다. 가상 메모리는 실제 물리 메모리 개념과 개발자의 논리 메모리 개념을 분리한 것이다. 가상 주소 공간은 그 프로세스가 메모리에 저장되는 논리적인 형태를 말한다. 이런 아이디어는 여기서 나왔다. 만약 프로그램을 일부만 올려놓고도 실행할 수 있게 된다면?? **실제로 프로그램이 실행될 때 모든 부분이 실행되지 않는다. 1. 프로그램은 물리 메모리 크기에 의해 더는 제약을 받지 않는다. ** 즉, 큰 가상 주소 공간을 가정하고 프로그램을 만든다 2. 각 프로그램이 더 ..

Paging, 페이징, 불연속 메모리 할당 [운영체제]

[Memory Management, 메모리 할당 방식 [운영체제] 에 이어서 불연속 할당에 대해서 알아보자 그 중 가장 대표적인 페이징에 대해서 알아보자 Paging 기법은 앞서 설명했던 것처럼 해당 프로세스의 관련된 데이터 모두를 적재하는 것이 아니다. 단순히 레지스터에 시작주소 값을 담아 사용하기에는 연속된 메모리영역이 필요하다. 이제 프로세스의 물리 주소 공간이 연속되지 않아도 되는 메모리 관리 기법인 페이징을 쓰는 것이다. 페이징은 연속 메모리 할당을 괴롭히는 2가지 문제인 외부 단편화, 관련 압축의 필요성을 피할 수 있게 한다. 이러한 많은 이점을 제공하기 때문에 대형 서버용 시스템부터 모바일 장치용 시스템까지 대부분의 운영체제에서 다향한 형태의 페이징이 사용된다. ++페이징은 운영체제와 컴퓨터..

728x90
반응형