profile
mohadang
post-thumbnail

unordered_map vs map

RB 트리로 구현되어 있음hash로 구현되어 있음O(n)의 메모리 사용량을 보이며 갯수가 일정이상 넘어서면 rehasing 작업을 수행

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

Windows System Programming DLL

AAA.exe가 실행할때 DLL 라이브러리 역시 같이 메모리에 로딩되어 AAA.exe는 DLL 라이브러리에 있는 코드를 사용할 수 있다DLL은 AAA.exe에 포함되지 않기에 파일 크기가 줄어든다. 하지만 별도의 DLL 라이브러리는 있어야 한다. 만약 DLL 라이브러리

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

Windows System Programming MMF(Memory Mapped File)

메모리와 파일을 맵핑 시킨다. 파일의 일부 공간을 프로세스의 가상 메모리에 연결을 한다연결이 된후 프로세스의 가상 메모리에 데이터를 쓰면 파일에 반영 된다성능과 사용 편의성의 장점이 있다만약 파일의 내용을 일부 수정해야 한다면 파일의 모든 내용을 메모리에 읽어 온 후

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

Windows System Programming 가상 메모리(Virtual Memory) 컨트롤

OS는 메모리를 페이지 단위로 관리한다사용자가 메모리를 할당(malloc)하면 해당 메모리는 COMMIT 상태가 되고 소멸(free)시키면 FREE 상태가 된다메모리 단편화 문제로 재할당 하는 문제를 해결하기 위해 RESERVE 상태가 존재한다C++ 에서도 reserv

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

Windows System Programming APC(Asynchronous Procedure Call)

모든 쓰레드는 자신만의 APC Queue를 소유하고 있다Alertable 가능한 I/O 작업들이 완료(알림 상태)되면 APC Queue에 추가되고 시스템에서 이 작업들을 순차적으로 처리한다

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

Windows System Programming I/O

파일 포인터 시스템 API32bit 시스템에서는 파일의 최대 크기는 4G byte - 2 이다32bit 는 4G - 1 만큼 표현 가능 하다. 여기서의 -1 은 인덱스 0부터 시작하기에 -1 보정그리고 에러가 났을 경우 사용할 INVALID_SET_FILE_POINTE

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

Windows System Programming 쓰레드 풀

쓰레드 생성과 소멸은 비용이 많이 드는 작업. 이 비용을 줄이기 위해 쓰레드를 쓰레드 풀에서 할당 받아서 사용하고 다 사용하면 소멸 시키는 것이 아니라 쓰레드 풀에 다신 반환한다다시 쓰레드가 필요할때는 쓰레드를 생성할 필요 없이 쓰레드 풀에서 할당 받으면 된다WORK

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

Linux Kernel OS 2(작성중)

태스크가 kernel에 의해 운영 되면서 여러 상태로 전이를 한다(ready, running, dead ...)이는 태스크가 요청했던 자원이 사용 가능해지면 다시 수행시켜 줌으로써 보다 높은 시스템 활용률을 제공하려 한다일단 태스크가 생성되면 그 태스크는 준비 상태TA

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

작업 관리자 CPU 이용률의 의미

컴퓨터가 느려진다 싶으면 가장 먼저 확인해보는 작업 관리자의 CPU 이용률이 수치가 높으면 CPU가 바쁘고 특정 프로세스의 수치가 높으면 자원을 많이 잡아먹는 CPU로 생각하며 정작 이 CPU 이용률값이 어떻게 계산 되는지는 관심이 없었다그러다 우연히 저 작업 관리자

2023년 5월 7일
·
0개의 댓글
·
post-thumbnail

예외

OS는 HW에 각 예외에 대해 핸들러를 등록하여 예외가 발생할 시 핸들러를 통해 처리한다그리고 프로세스도 OS에 각 예외에 대해 핸들러를 등록하여 예외가 발생할 시 핸들러를 통해 처리한다예외가 발생하는 시작점이 하드웨어(CPU, 메모리...)라면 HW 예외(div 0,

2023년 5월 1일
·
0개의 댓글
·
post-thumbnail

MMU

MMU는 가상 메모리와 물리 메모리 사이의 주소 맵핑 역할을 한다

2023년 5월 1일
·
0개의 댓글
·
post-thumbnail

캐시

캐시 메모리는 다른 메모리에 비해서 빠른 접근 성능을 보여준다.캐시는 지역성을 이용하여 성능을 향상 시킨다.Temporal Locality : 반복 접근Saptial Locality : 주변 접근프로그램은 한번 메모리에 접근하면 그 메모리에 다시 접근하거나 그 근처 메

2023년 5월 1일
·
0개의 댓글
·
post-thumbnail

Windows System Programming 동기화 기법

동기화 관점 실행 순서 동기화 여러 쓰레드가 하나의 작업을 같이 처리하면서 실행 순서를 보장 메모리 접근 동기화 여러 쓰레드간 특정 메모리에 접근할때 반드시 하나의 쓰레드만 접근할 수 있도록 보장한다 즉 임계 영역을 설정한다. 접근 순서는 상관 없다. 임계 영역은

2023년 5월 1일
·
0개의 댓글
·
post-thumbnail

C Thread Safe 하지 않은 API

일부 ANSI C 함수 내부에서는 로컬 변수 뿐만 아니라 전역 변수를 사용하는 API 들이 있다.이런 API 들은 멀티 스레드 환경에서 사용할 경우 주의해야 한다.

2023년 4월 29일
·
0개의 댓글
·
post-thumbnail

Windows System Programming 쓰레드(커널, 유저)

사실 스레드는 두가지가 있다.윈도우 OS에서 API 형태로 제공커널 영역에서 쓰레드 정보를 가지고 관리OS에서 쓰레드를 관리하기에 유저 영역의 모든 쓰레드에 대해 공평한 CPU 자원 할당아래 그림에서는 모든 쓰레드에 대해 1/3 씩 자원 할당하고 있다.장점 : 커널에서

2023년 4월 29일
·
0개의 댓글
·
post-thumbnail

Windows System Programming 함수 호출 규약

함수에서 스택 정리파라미터는 스택에 저장함수 호출자에서 스택 정리파라미터는 스택에 저장함수에서 스택 정리파라미터는 2개 까지는 레지스터(ecx, edx)에 저장하고 나머지는 스택에 저장함수에서 스택 정리ecx를 인자로 전달, C++에서 멤버 함수 호출시 ecx에 thi

2023년 4월 29일
·
0개의 댓글
·
post-thumbnail

Windows System Programming OS

컴퓨터에서 표현하는 시간 단위. N 클럭(CPU)이 타임 슬라이스가 된다.타임 슬라이스가 지날때마다 스케줄러는 프로세스들의 우선 순위를 확인하여 CPU가 처리할 다음 프로세스를 결정한다N 클럭이 높은 타임 슬라이스는 응답성이 떨어진다N 클럭이 낮은 타임 슬라이스는 응답

2023년 4월 24일
·
0개의 댓글
·
post-thumbnail

C# 델리게이트 파라미터

EX) Add 메서드를 구현한 객체를 받는 함수 구현IAdd, Foo와 같은 새로운 타입을 구현해야 한다.하지만 델리게이트를 사용하면 개선 1개선 2

2023년 4월 23일
·
0개의 댓글
·
post-thumbnail

C# as 와 using 조합

2023년 4월 23일
·
0개의 댓글
·
post-thumbnail

Windows System Programming IPC

프로세스간 통신이다. 궁극적으로는 데이터를 공유하기 위한 기법이다.윈도우, 리눅스, 임베디드에 있는 기법이며 각 구현은 플랫폼마다 다르다.Sender, Receiver로 나뉜다.주소를 통해서 전달Sender에서 Receiver로 단방향 데이터 전송만 가능Sender에서

2023년 4월 23일
·
0개의 댓글
·