RB 트리로 구현되어 있음hash로 구현되어 있음O(n)의 메모리 사용량을 보이며 갯수가 일정이상 넘어서면 rehasing 작업을 수행
AAA.exe가 실행할때 DLL 라이브러리 역시 같이 메모리에 로딩되어 AAA.exe는 DLL 라이브러리에 있는 코드를 사용할 수 있다DLL은 AAA.exe에 포함되지 않기에 파일 크기가 줄어든다. 하지만 별도의 DLL 라이브러리는 있어야 한다. 만약 DLL 라이브러리
메모리와 파일을 맵핑 시킨다. 파일의 일부 공간을 프로세스의 가상 메모리에 연결을 한다연결이 된후 프로세스의 가상 메모리에 데이터를 쓰면 파일에 반영 된다성능과 사용 편의성의 장점이 있다만약 파일의 내용을 일부 수정해야 한다면 파일의 모든 내용을 메모리에 읽어 온 후
OS는 메모리를 페이지 단위로 관리한다사용자가 메모리를 할당(malloc)하면 해당 메모리는 COMMIT 상태가 되고 소멸(free)시키면 FREE 상태가 된다메모리 단편화 문제로 재할당 하는 문제를 해결하기 위해 RESERVE 상태가 존재한다C++ 에서도 reserv
모든 쓰레드는 자신만의 APC Queue를 소유하고 있다Alertable 가능한 I/O 작업들이 완료(알림 상태)되면 APC Queue에 추가되고 시스템에서 이 작업들을 순차적으로 처리한다
파일 포인터 시스템 API32bit 시스템에서는 파일의 최대 크기는 4G byte - 2 이다32bit 는 4G - 1 만큼 표현 가능 하다. 여기서의 -1 은 인덱스 0부터 시작하기에 -1 보정그리고 에러가 났을 경우 사용할 INVALID_SET_FILE_POINTE
쓰레드 생성과 소멸은 비용이 많이 드는 작업. 이 비용을 줄이기 위해 쓰레드를 쓰레드 풀에서 할당 받아서 사용하고 다 사용하면 소멸 시키는 것이 아니라 쓰레드 풀에 다신 반환한다다시 쓰레드가 필요할때는 쓰레드를 생성할 필요 없이 쓰레드 풀에서 할당 받으면 된다WORK
태스크가 kernel에 의해 운영 되면서 여러 상태로 전이를 한다(ready, running, dead ...)이는 태스크가 요청했던 자원이 사용 가능해지면 다시 수행시켜 줌으로써 보다 높은 시스템 활용률을 제공하려 한다일단 태스크가 생성되면 그 태스크는 준비 상태TA
컴퓨터가 느려진다 싶으면 가장 먼저 확인해보는 작업 관리자의 CPU 이용률이 수치가 높으면 CPU가 바쁘고 특정 프로세스의 수치가 높으면 자원을 많이 잡아먹는 CPU로 생각하며 정작 이 CPU 이용률값이 어떻게 계산 되는지는 관심이 없었다그러다 우연히 저 작업 관리자
OS는 HW에 각 예외에 대해 핸들러를 등록하여 예외가 발생할 시 핸들러를 통해 처리한다그리고 프로세스도 OS에 각 예외에 대해 핸들러를 등록하여 예외가 발생할 시 핸들러를 통해 처리한다예외가 발생하는 시작점이 하드웨어(CPU, 메모리...)라면 HW 예외(div 0,
캐시 메모리는 다른 메모리에 비해서 빠른 접근 성능을 보여준다.캐시는 지역성을 이용하여 성능을 향상 시킨다.Temporal Locality : 반복 접근Saptial Locality : 주변 접근프로그램은 한번 메모리에 접근하면 그 메모리에 다시 접근하거나 그 근처 메
동기화 관점 실행 순서 동기화 여러 쓰레드가 하나의 작업을 같이 처리하면서 실행 순서를 보장 메모리 접근 동기화 여러 쓰레드간 특정 메모리에 접근할때 반드시 하나의 쓰레드만 접근할 수 있도록 보장한다 즉 임계 영역을 설정한다. 접근 순서는 상관 없다. 임계 영역은
일부 ANSI C 함수 내부에서는 로컬 변수 뿐만 아니라 전역 변수를 사용하는 API 들이 있다.이런 API 들은 멀티 스레드 환경에서 사용할 경우 주의해야 한다.
사실 스레드는 두가지가 있다.윈도우 OS에서 API 형태로 제공커널 영역에서 쓰레드 정보를 가지고 관리OS에서 쓰레드를 관리하기에 유저 영역의 모든 쓰레드에 대해 공평한 CPU 자원 할당아래 그림에서는 모든 쓰레드에 대해 1/3 씩 자원 할당하고 있다.장점 : 커널에서
함수에서 스택 정리파라미터는 스택에 저장함수 호출자에서 스택 정리파라미터는 스택에 저장함수에서 스택 정리파라미터는 2개 까지는 레지스터(ecx, edx)에 저장하고 나머지는 스택에 저장함수에서 스택 정리ecx를 인자로 전달, C++에서 멤버 함수 호출시 ecx에 thi
컴퓨터에서 표현하는 시간 단위. N 클럭(CPU)이 타임 슬라이스가 된다.타임 슬라이스가 지날때마다 스케줄러는 프로세스들의 우선 순위를 확인하여 CPU가 처리할 다음 프로세스를 결정한다N 클럭이 높은 타임 슬라이스는 응답성이 떨어진다N 클럭이 낮은 타임 슬라이스는 응답
EX) Add 메서드를 구현한 객체를 받는 함수 구현IAdd, Foo와 같은 새로운 타입을 구현해야 한다.하지만 델리게이트를 사용하면 개선 1개선 2
프로세스간 통신이다. 궁극적으로는 데이터를 공유하기 위한 기법이다.윈도우, 리눅스, 임베디드에 있는 기법이며 각 구현은 플랫폼마다 다르다.Sender, Receiver로 나뉜다.주소를 통해서 전달Sender에서 Receiver로 단방향 데이터 전송만 가능Sender에서