CPU 의 bit 는 한 번에 다룰 수 있는 데이터의 최대 크기를 의미한다.
예시: 32bit CPU 는 한 번에 다룰 수 있는 데이터의 최대 크기가 32bit 이다.
1 min read
CPU 의 bit 는 한 번에 다룰 수 있는 데이터의 최대 크기를 의미한다.
예시: 32bit CPU 는 한 번에 다룰 수 있는 데이터의 최대 크기가 32bit 이다.
CPU(Central Processing Unit)는 프로그램의 명령어를 해석하고 실행하는 핵심 연산 장치다. OS 관점에서는 Process 와 thread 가 실제로 실행 시간을 할당받는 물리적 자원으로 볼 수 있다.
Process 란 OS 로 부터 시스템 자원을 할당받고 메모리에 적재되어 실행되고 있는 프로그램 (program) 의 인스턴스를 의미하며, 여기서 프로그램은 실행 가능한 파일을 뜻한다.
CPU 에서 사용할 데이터를 메인 메모리에서 캐시 메모리로 미리 올려놓는 방식을 의미한다. References Cache prefetching - Wikipedia .
Facebook 에서 개발한 malloc 메모리 단편화를 최소화하고, 멀티프로세서/멀티스레드 환경에서 동시성을 제공한다.
Linux 는 I/O 성능을 높이기 위해서 Page Cache 를 사용한다.
현재 공유 자원에 접근할 수 있는 thread 또는 Process 의 수를 나타내는 값을 설정하여 mutual exclusion 를 달성하는 기법 Semaphore 는 리소스 상태를 나타내는 간단한 카운터를 사용하며, 이는 OS 또는 Kernel 에서 지정된 값이다.
버퍼는 CPU 와 보조 기억 장치에서 사용되는 임시 저장 공간을 의미한다. 버퍼는 CPU 내부에 있는 cache memory 보다는 느리지만 보조 기억 장치보다 훨씬 빠른 주기억 장치 (RAM) 을 사용한다.
Cache Locality? (참조) 캐시 지역성이 좋고 나쁘다는 것은 무슨 의미를 가지는가? CPU 는 일반적으로 특정 메모리에 접근할 때, 해당 메모리 근처의 chunks 들을 cache 에 미리 올려둔다.
Cache 는 느린 저장소나 계산 결과 앞에 더 빠른 저장 공간을 두어 반복 접근 비용을 줄이는 구조다. OS/architecture 에서는 CPU cache, page cache, disk cache 등이 대표적이다.
메모리의 구성 요소 4 개 Code 실행할 프로그램의 코드가 저장되는 영역 (컴파일 시 크기가 결정됨) Data 전역 변수, static variable 등 컴파일 시 결정되는 것들에 대한 영역 stack 지역 변수, parameters, return value 등 임시로 사용하는 값들에 대한 영역 (컴파일 시...