방금 dot
너무 큰 입력 파일로 합리적인 시간 내에 렌더링 할 수없는 (직접 그래프를 그리는 프로그램)을 실행 했습니다.
내 전체 시스템이 얼어 붙었습니다. Ctrl+ Alt+ F1를 사용하여 텍스트 콘솔로 간신히 만들 dot
수는 있지만 몇 분이 걸렸습니다.
왜 시스템이 이와 같은 것을 허용합니까? 왜 dot
시스템의 99 % 와 같이 중요하지 않은 프로그램을 제공하고 응답을 유지하기 위해 나머지 1 %를 사용합니까?
방금 dot
너무 큰 입력 파일로 합리적인 시간 내에 렌더링 할 수없는 (직접 그래프를 그리는 프로그램)을 실행 했습니다.
내 전체 시스템이 얼어 붙었습니다. Ctrl+ Alt+ F1를 사용하여 텍스트 콘솔로 간신히 만들 dot
수는 있지만 몇 분이 걸렸습니다.
왜 시스템이 이와 같은 것을 허용합니까? 왜 dot
시스템의 99 % 와 같이 중요하지 않은 프로그램을 제공하고 응답을 유지하기 위해 나머지 1 %를 사용합니까?
답변:
이것이 GNU / Linux 및 기타 멀티 태스킹 시스템이 작동하는 방식으로, 실행중인 프로세스간에 프로세서를 공유하며 dot
99 %는 아니지만 99 % 동안 100 %를 갖습니다. 각 프로세스는 특정 기간 동안 프로세서를 지배합니다.
이것은 스케줄러에 의해 처리됩니다 (리눅스는 여러 스케줄러가 있으며 일부는 일반적인 전략을 사용하고 일부는 사용자 인터페이스에 더 많은 시간을 주려고하는 등).
이제 귀하의 경우 문제는 dot
프로세서 시간이 많이 걸리지 않고 메모리가 많이 소요되었을 수 있습니다. 그리고 프로그램이 너무 많은 메모리를 사용하면 스 래싱 이 발생합니다. 이는 프로세스를 dot
많이 멈추는 것이 아니라 커널이 디스크 사이에서 메모리 페이지를 앞뒤로 이동해야하기 때문에 정확히 프로세스입니다 (스왑 파티션) 그리고 시스템 메모리.
dot
CPU 시간의 99 % 만 사용 하더라도 텍스트 터미널로 변경하는 것이 거의 즉각적 일 수 있습니다. 커널은 dot
메모리에서 항목 을 이동 하여 키를 볼 수 X
있도록 메모리 에 다시 넣을 X
수 있어야합니다. 텍스트 터미널을 누르고 이동하면 커널 은 여전히 실행중인 X
메모리에서 벗어나고 텍스트 터미널 프로세스 (어쩌면 ?)를 메모리로 다시 이동해야합니다 . (이것이 지저분 해 보인다면, 그 예가 지저분하기 때문이 아니라 현실 이 지저분합니다.)dot
dot
login
예를 들어, 텍스트 터미널에 로그인하면 키를 누르거나 백 스페이스를 치면 행복하게 실시간으로 발생하지만 작은 도구를 실행하는 것처럼 간단한 작업을 수행 ps
하면 "동결"됩니다. "메모리를로드해야하기 때문에 잠시 동안 ps
(또한 ps
파일 시스템에서 요청할 수있을 때까지 데이터를 메모리로 이동하는 데 사용되는 디스크 I / O 대기열에서 대기해야 함 ) .