질 문

윈도우화면에 여러개의 창을 띄워 놓고 작업을 하다보면

"메모리가 부족하니 한 개 이상의 프로그램을 종료시키고 계속하라는 메시지"
가 나옵니다.

그런데 어떤 때는 별로 작업창이 많지도 않은데도 그럴 경우가 있는데
컴퓨터에 무슨 이상이 있는 것인지요.

아니면 사용방법을 개선하면 해결되는지 궁금합니다

분석

1. 바이러스에 의해서 윈도우 리소스가 없는 경우

2. 메인메모리(ram)이 부족한 경우

3. 프로그램에서 메모리나 디스크의 남은 양을 많이 요구하는 경우
4. 다른 프로그램과 같이 사용하는 환경(multi tasking:멀티태스킹)환경에서

같이 사용되는 프로그램과의 주변기기의 드라이버나 혹은
메모리(커널)에서 쓰는 메모리 영역에서 충돌이 나는 경우

해 결

1. 바이러스 검사 후

2. 재 부팅

3. 사용하지 않는 프로그램 삭제, 영상 음악파일과 tmp 파일 삭제로 디스크의 남은 양을 많이 잡아줍니다.

4. 제어판/시스템/고급에서 시각효과를 최적화에 체크하시고

5. 윈도우xp 같은 경우에는 윈도우하위에 프리페치 폴더가 있습니다.
 프로그램의 로딩속도를 빠르게 하기 위해서 프로그램의 캐시를 만들어 놓은
 폴더 인데 여기의 파일을 삭제를 한 다음.

사용자 삽입 이미지

5 프로그램을 하나씩 실행을 하면서 테스트를 해보세요. 하나에서 시작해서
  여러개의 창을 실행시켜 봐야죠...

추가정보


윈도우에는 작업스케쥴러라는 것이 있습니다.
여러개의 프로그램을 동시에 실행시킬 수 있는 윈도우의 멀티태스킹 특성상
포그라운드, 백그라운드로 실행되는 프로그램의 순서를 정하는 것입니다

다시 말해서
프로그램에서 cpu 쪽으로 어떤 연산작업 신호보내는 것을 우선순위를 어떻게
줄거냐를 결정하는 역할을 하는 것이 스케쥴러입니다.

스케쥴러에서 가장 우선순위에 있는 것은 포그라운드의 현재 작업 중인 창이
우선 되고, 그리고 프로그램을 사용한다는 것은 결국
디스크 저장, 불러오기, 랜카드, 사운드카드등
하드웨어와 정보를 주고 받아야 합니다. 이것을 i/o 컨트롤이라고 부르는데
I/O 컨트롤을 할 때는 다른 프로그램이나 작업에 영향을 받지 말아야 하므로
사용자가 마우스를 아무리 클릭을 해도 대기 상태가 됩니다.

예를 들자면 많은 파일을 복사를 할 때 보면 윈도우 자체가 버벅거리고
다른 프로그램을 실행시켜도 굉장히 느려지는 것을 볼 수 있을 겁니다.

윈도우 내부적인 메카니즘도 작동을 해서 그러니까
꼭 바이러스 체크를 한번 해보고
없다면 이런 윈도우의 로직이 작동하고 있구나 이해하면 될 것 같습니다.

참고로 윈도우비스타에서는 MMCSS라고 멀티미디어클래스를 컨트롤하는 스케쥴러가
따로 있는데.. 프로그램 진행 스케쥴 상 항상 최상위를 순위를 부여받는 습니다

쉽게 풀이하면 윈도우비스타에서는 동영상 관계된 프로그램은 언제든지
실행시켜도 다른 프로그램에 큰 영향없이 잘 돌아간다는 말입니다.