윈도우의 System API들은 ANSI 문자열이나 유니코드 문자열을 받도록 되어 있다.하지만 아스키코드와 유니코드를 처리하기 위해 시스템에서 char, wchar_t, string, wstring등을 혼용하면서 사용하는것은 불편하다고 생각된다.(ex: 문자열을 jso
컨텍스트 스위칭 주의데이터 접근 동기화 주의
UTF-8 문자열은 다양한 문자를 표현할 수 있다는 장점이 있지만 성능면에서 단점이 발생한다.단순한 인덱싱(예: my_text3으로 네 번째 문자를 가져옴)으로는 더 이상 빠르게(O(1) 상수 시간으로) 문자를 찾을 수 없다바로 앞의 글자가 가변 길이를 가질 수 있어,
=> 한마디로 고성능의 컴퓨팅 작업옛날에는 슈퍼 컴퓨터가 대표적인 HPC 사례였다. 슈퍼 컴퓨터에 많은 CUP를 추가하였다.하지만 한대의 컴퓨터에서 고성능의 컴퓨팅 작업을 하기에는 문제가 있다(IO, 발열, 확장성)따라서 현대에서는 Cluster 방식을 사용여러 서버
I/O 작업은 유저 프로세스가 커널에 데이터 처리를 요청하고 응답을 받는 작업이다.작업의 성향에 따라 다음 4가지로 분류된다.Sync(Synchronous)Async(Asynchronous)BlockingNon-Blocking이 4가지 작업에 대한 명확한 구분을 이해하
4 bytes = 32 bits = 2 ^ 32그렇다면 표현 가능한 양수는 ?(2 ^ 32) - 1 이다. -1 은 부호를 표현하는 bit 제외를 의미한다.
CPU가 수행할 어셈블리 명령어가 파일 형태로 존재하는데 이를 프로그램이라고 한다.이 프로그램을 OS가 실행하면 OS는 개별적인 메모리 영역을 할당하여 프로그램 파일에 있는 데이터를 이 메모리에 로딩 시킨다.이렇게 프로그램이 실행된 상태를 프로세스라고 한다.프로세스가
일부 ANSI C 함수 내부에서는 로컬 변수 뿐만 아니라 전역 변수를 사용하는 API 들이 있다.이런 API 들은 멀티 스레드 환경에서 사용할 경우 주의해야 한다.
캐시 메모리는 다른 메모리에 비해서 빠른 접근 성능을 보여준다.캐시는 지역성을 이용하여 성능을 향상 시킨다.Temporal Locality : 반복 접근Saptial Locality : 주변 접근프로그램은 한번 메모리에 접근하면 그 메모리에 다시 접근하거나 그 근처 메
MMU는 가상 메모리와 물리 메모리 사이의 주소 맵핑 역할을 한다
OS는 HW에 각 예외에 대해 핸들러를 등록하여 예외가 발생할 시 핸들러를 통해 처리한다그리고 프로세스도 OS에 각 예외에 대해 핸들러를 등록하여 예외가 발생할 시 핸들러를 통해 처리한다예외가 발생하는 시작점이 하드웨어(CPU, 메모리...)라면 HW 예외(div 0,