컨텍스트 전환이 컴퓨터 성능에 나쁜 이유는 무엇인가요?
프로세스가 CPU에 의해 일시 중지되고 다른 프로세스가 실행되기 시작할 때 발생하는 컨텍스트 전환은 몇 가지 이유로 컴퓨터 시스템 성능에 영향을 줄 수 있습니다. 컨텍스트 전환은 그 자체로 시간이 많이 걸리는 작업은 아닙니다. 실제 성능 저하는 프로세스마다 가상 메모리 주소 공간이 다르기 때문에 시스템의 모든 캐시를 무효화하고 플러시해야 한다는 사실에서 비롯됩니다. CPU가 실행할 수 있는 속도와 주 메모리에서 명령어와 데이터를 검색할 수 있는 속도에는 큰 차이가 있기 때문에 이러한 것들은 온보드 캐시에 CPU와 가까운 곳에 캐시됩니다. 가상 주소와 실제 주소의 매핑에 대한 포인터도 캐시되므로 메모리 액세스가 더 빨라집니다. 주소 공간과 가상 주소와 실제 주소의 매핑이 다른 새 프로세스가 CPU에서 로드되면 캐시에 있는 모든 데이터가 유효하지 않으므로 플러시해야 합니다. 이렇게 되면 CPU는 새 프로세스를 위해 처음부터 다시 구축해야 하는 빈 캐시를 남기게 되며, 이는 이제 명령어와 데이터를 CPU의 캐시보다 훨씬 느린 주 메모리에서 가져오게 되므로 검색 속도가 크게 느려진다는 것을 의미합니다.
why is context switching bad for computer performance?
context switching, which occurs when a process is paused by the cpu and another process starts running can affect performance of a computer systems for a couple of reasons. The act of switching the context is not in itself very time consuming. The real performance hit comes from the fact that different processes have different virtual memory address spaces so all the caches in the system need to be invalidated and flushed. Since there is such a huge difference in how fast a cpu can run compared to how fast instructions and data can be retrieved from main memory, these things are cached close to the cpu in onboard caches. Even a pointer to a mapping of virtual addresses to physical addresses are cached so that memory access is faster. When a new process gets loaded by the cpu with a different address space and mapping of virtual to physical addresses, all of the data in the caches is invalid and needs to be flushed. This leaves the cpu with empty caches that have to be rebuilt from scratch for the new process, meaning there will be a big slowdown in retrieving instructions and data since these will now be coming from main memory, which is much slower than the cpu's cache.