Wireframe

[잡담] 스레싱, 버벅이는 컴퓨터

컴퓨터의 메모리는 물리적으로 그 크기가 한정되어 있는데 비해, 메모리를 사용하고자 하는 프로그램은 많다. 특히 윈도와 같은 환경에서는 동시에 여러가지의 프로세스가 동시에 실행되면서 시스템이 운용되는데, 이런 경우 특정한 프로그램이 많은 양의 메모리를 필요로한다면 운영체제는 “페이징”이라는 기법을 사용해서 부족한 메모리를 최대한 활용하게 한다.
페이징이란 메모리의 내용을 그대로 하드디스크에 써두고, 따로 써둔 메모리를 비워 여유 공간을 확보하는 방법이다. 그렇다, 윈도에서 흔히 말하는 “가상메모리”가 바로 이 페이징을 말한다.
윈도를 사용하다보면 메모리가 아직 여유 공간이 20~40% 이상 남아 있음에도 불구하고 하드디스크를 미친 듯이 읽으며 반응이 없거나 계속해서 잠깐 잠깐 멈추는 것처럼 동작하는 경우를 종종 느낄 수 있다. 이런 경우 재부팅을 해보기도 하지만 만약 메모리를 많이 차지하는 프로그램을 몇 가지 계속 사용해야 하는 경우라면 얼마 지나지 않아 이러한 상태를 반복적으로 만나게 된다.
컴퓨터가 계속해서 페이징을 하면서 버벅이는것을 스레싱(Thrashing)이라고 한다. 스레싱을 일반적으로 컴퓨터에 장착된 물리적인 자원보다도 더 많은 자원을 계속적으로 필요로 할 때 발생한다. 2GB가 물려 있는 PC에서 여러 프로그램들이 필요로하는 메모리의 양이 그보다 많을 때 시스템은 계속해서 페이징을 하면서 순차적으로 각 프로그램들에게 필요한 메모리를 공급해 주려하게 된다.
이 때, 일반적으로 디스크에 입출력이 일어날 때 실제 프로세스는 잠시 대기하게 되어 실제로 프로세스가 CPU를 사용하는 일은 적고, 시스템은 계속 페이징을 하게되다보니 사용자가 느끼기에 컴퓨터가 멈추는 것처럼 보이는 것이 스레딩이다. 즉 컴퓨터가 프로세스를 실행하는 것보다 각 프로세스에게 자원을 돌려 막기 식으로 할당하느라 아무것도 못하는 상태를 말한다.
이미 말했지만 스레딩은 컴퓨터에 장착된 메모리가 부족할 때 발생한다. 하지만 경험적으로 윈도 상에서는 메모리의 여유공간이 꽤 남아 있음에도 스레딩을 경험할 수 있다. 이는 실제 메모리 상에는 여유공간이 있지만, OS가 프로세스에 할당해줄 수 있는 메모리의 주소가 부족할 때도 같은 증상이 발생할 수 있다. (특히 여유 메모리가 30% 미만일 때 프로그램 사이를 전환하면 이런 증상을 경험하기 쉽다.)
윈도XP의 경우 자원 관리가 그리 괜찮은 수준이 아니어서 그렇다고 하더라도 비스타나 7에 이르면서도 이런 자원의 효율적인 관리는 여전히 만족할만한 수준으로 이뤄내고 있지는 못하는 것 같다.
몇 년 전 주로 쓰는 컴퓨터의 운영 체제를 리눅스로 바꿨을 때, 이러한 스레딩을 별로 경험하지 못한다는 걸 알았고 맥으로 전향한 이후에도 상당히 쾌적한 (심지어 몇 달씩 컴퓨터를 끄지 않아도 되는) 사용을 계속해 왔다.
컴퓨터는 별로 느려지지 않았지만 메모리 사용량이 99%에 달했을 때 솔직히 개인적으로 충격을 받았다. 그렇다 유닉스 계열 (엄밀히 리눅스를 유닉스 계열이라 칭하는 게 정확한 표현인지는 모르겠으나)에서는 정말이지 극도로 메모리를 잘 활용하고 있더라는 걸 깨닫는 순간.
맥을 사용해온지 만2년이 되는 것 같다. 역시나 맥에서도 스레싱을 거의 경험해보지 못한 것 같다. 회사에서 무거운 아웃룩, 파워포인트, 엑셀을 거의 항상 띄워두고 일하다 보면 회사 컴퓨터도 맥으로 지급해주면 얼마나 좋을까 하는 생각을 오늘도 해 본다. 만약 이런 버벅임 때문에 컴퓨터를 쓰기가 힘든 지경이고 업그레이드를 고민하고 있다면, 더 높은 성능의 컴퓨터를 사기보다는 리눅스나 맥으로의 전향을 고려해 보는 것이 정신 건강에 좋을 것이라고 말해주고 싶다.

Exit mobile version