CPU scheduling 문맥교환(Context Switching) 새로운 프로세스에게 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업. (Overhead가 발생하는 주요 원인) CPU 스케줄링이란? 메모리에 있는 준비(Ready) 상태의 프로세스 중 하나를 선택해 CPU자원을 할당하는 것 CPU 스케줄링이 일어나는 시점 실행상태에서 대기상태로 전환될 때 (예, 입출력 요청) - Non preemptive(비선점) 실행상태에서 준비상태로 전환될 때 (예, 인터럽트 발생) - preemptive(선점) 대기상태에서 준비상태로 전환될 때(예, 입출력이 종료될 때) 종료될 때(Terminated) ..
Hyper threading 하이퍼 스레딩이라는 기술을 사용하게 되면 멀티코어를 사용해야 할 작업에서 20~30% 성능향상이 있습니다. 단, 멀티코어가 필요없는 싱글코어로도 충분한 작업에서는 오히려 10%정도의 성능이 저하됩니다. 위의 그래프에 대해 설명합니다. 첫번째 그래프에서 주황색과 파란색의 막대가 각각 시간적 흐름에 따라 하나의 프로세스에서 필요로 하는 자원의 양을 나타내고 있습니다. 멀티태스킹이 이루어지는 원리는 운영체제 상에서 매우 작은 시간 단위로 각각의 작업을 번갈아가며 실행시키기 대문에 가능한 것입니다. 따라서 두번째 그래프에서 묘사된 대로 하이퍼스레딩이 적용되기 전의 일반적이 상황에서 두개의 작업이 완료될 때까지 각각의 작업을 따로 실행시킨 것과 동일 한 시간이 걸리게 됩니다. *세번째..
CPU cache cpu cache란? cache memory는 속도가 빠른 장치와 느린 장치 사이에서 속도차에 따른 병목 현상을 줄이기 위한 범용 고속 buffer 메모리를 지칭합니다(SRAM이라고도 합니다). CPU에서는 CPU 코어와 메모리 사이에서 속도차에 따른 병목 현상을 완화하는 역할을 합니다. 프로그램에서 직접적으로 읽거나 쓸 수 없고 하드웨어의 메모리 관리 시스템이 내부적으로 제어합니다. 대부분의 프로그램은 한번 사용할 데이터를 다시 사용할 가능성이 높고, 그 주변의 데이터도 곧 사용할 가능성이 높은 데이터 지역성을 가지고 있습니다. 데이터 지역성을 활용하여 메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하면 성능을 향상시킬 수 있습..
CPU란? 중앙처리장치(CPU: Cnetral Processing Unit)는 사람의 두뇌와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치입니다. 중앙 처리장치는 제어장치, 연산장치, 레지스터 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있습니다. CPU의 구성장치 제어장치(control unit) 제어장치(Control Unit)는 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치입니다. 제어장치는 명령 레지스터에서 읽어들인 명령어를 해독하여 해당하는 장치에게 제어 신호를 보내 정확하게 수행하도록 지시합니다. 연산장치(ALU, Arithmetic) 연산장치(ALU, Artihmetic)는 제어장치의 명령에 따라 실제로 연산을 수행하는 장치입니다. 연..