언어 및 엔진(79)
-
[C#] Object Type을 Value Type에 대입
Object Type을 Value Type에 대입하면 벌어지는 일 Value를 Reference Type으로 Boxing한다. Stack에 있던 Value를 Heap으로 복사 후 주소값을 할당함.
2024.04.20 -
[C#] Boxing / Unboxing
Boxing / Unboxing Boxing 값 타입을 오브젝트 형식 또는 이 값 형식에서 구현된 임의의 인터페이스 형식으로 변환하는 것. 기존에 저장된 스택영역에서 힙 영역으로 값 형식을 저장, 값 형식 -> 참조 형식 Unboxing 오브젝트 형식에서 값 형식 또는 인터페이스 형식으로 해당 인터페이스를 구현하는 값 형식으로 변환, 참조 형식 -> 값 형식
2024.04.19 -
[C#] Class / Struct
Class / Struct Class 값 타입. 직접적으로 메모리 접근이 가능하여 메모리 낭비 방지 Struct 참조 타입
2024.04.19 -
[C++] Friend Keyword
Friend Keyword private, protected 모두 friend로 선언된 대상에게는 public으로 작용 선언이 되는 쪽에서 선언을 함 단 방향, 명시적 지정, 한 번에 하나씩만 가능, 상속 불가 private, protected의 변수, 함수가 전역변수, 함수처럼 사용됨 사용 가능한 곳 : 전역 변수, 멤버 함수, 클래스 정보은닉의 예외
2024.04.19 -
[C++] Paging
Paging 페이징 가상 메모리는 페이지로 나뉘고 물리 메모리는 프레임으로 나뉨, 페이지 번호, 시작 물리주소 저장, 페이지와 일치하지 않는 메모리 요구 시 메모리 단편화 발생 세그멘테이션 서로 다른 크기의 논리적 단위인 세그먼트로 분할, 기준(시작 주소), 한계(길이)저장, 외부 단편화 발생 가능 프레그멘테이션 단편화. 사용 가능한 메모리가 충분하지만 사용할 수 없는 상태 내부 단편화 : 30중에 20을 사용하고 10이 남음 외부 단편화 : 30을 10씩 나눈 후 20을 사용하여 10이 남음 프레그멘테이션 해결 방안 메모리 풀 크기, 갯수 모두 사용자가 원하는 만큼 할당 받고 반납 페이징 : 내부단편화 발생 세그멘테이션 : 외부단편화 발생
2024.04.19 -
[C++] DeadLock
DeadLock 서로가 상대방의 자원을 내놓기를 바라면서 무기한 연기 상황에 빠지는 것 => 교착상태 발생 조건 상호 배제, 점유 대기, 비선점, 순환 대기 상호 배제 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권 요구 점유 대기 프로세스가 할당 된 자원을 가진 상태에서 다른 자원을 기다린다. 비선점 프로세스가 어떤 자원의 사용을 끝낼 때 까지 그 자원을 뺏을 수 없다 순환 대기 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다 해결 방안 상호 배제 해결 : 자원은 한 번에 한 프로세스만이 사용 점유 대기 해결 : 하나의 자원을 점유하고 있으면서 다른 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 비선점 해결 : 다른 프로세스의 사용이 끝날 때까지 강제로 자원을 뺏..
2024.04.19