동일한 컴퓨터에서 다양한 운영 체제를 테스트했습니다. Windows 7, 8, 8.1, OS X, Ubuntu, Linux Mint, Android x86 및 Remix 운영 체제.
모든 Unix 계열/Unix 기반 운영 체제의 공통점 중 하나는 종료 시간이 약 3초로 0에 가깝다는 것입니다.
모든 Windows 버전의 종료 시간은 꽤 길며, 30초에서 1분 정도입니다.
이에 대한 일반적인 이유가 있습니까?
답변1
여러 개의일반적인 생각나는 이것으로 충분했다일반적인 질문들:
(1) Windows 종료 중에 대부분의 서비스는 하나 이상의 종료 이벤트를 생성합니다. 때로는 서비스당 많은 이벤트가 있을 수 있습니다. 예를 들어, "NTP 서비스가 종료 중입니다.", "프린터 드라이버가 종료 신호를 수신했습니다.", "프린터 드라이버가 대기열을 플러시 중입니다.", "프린터 드라이버가 종료 중입니다." 이것들이벤트는 "객체"이며 생성 및 파괴가 느립니다., 마감 시간까지 합산됩니다.
Unix에서 종료하는 동안 대부분의 프로세스는 콘솔이나 /var/log/messages에 한 줄을 인쇄하고 종료됩니다. 훨씬 더 빨리.
(2) 종료 중에 Windows GUI는 다음을 저장합니다.많은 상태 정보(대부분이 객체로 저장됨).
Unix의 CLI에는 쉘 기록 파일을 제외하고는 저장할 것이 거의 없습니다. 대부분의 상태 정보는 간단한 텍스트 파일에 있습니다. 훨씬 더 빨리.
(3) Windows는 많은 것을 캐시할 수 있습니다.캐시를 새로 고쳐야 합니다.종료 시 파일 시스템으로.
캐싱은 더 나은 파일 시스템에서 정기적인 "fsync" 실행을 통해 UNIX에서 더 잘 처리됩니다. 훨씬 더 빨리.
(4) Windows는 각 프로세스(또는 서비스)에 많은 양의 정보를 제공할 수 있습니다.종료하는 데 더 많은 시간이 걸리고 중단된 프로세스가 더 오래 머물 수 있습니다.강제 종료까지.
Unix는 각 프로세스(또는 서비스)의 종료 시간을 단축할 수 있으며 대부분의 프로세스는 빠르게 응답할 수 있습니다. 훨씬 더 빨리.
만약 있다면특정 상황, 그러면 다음이 있을 수 있습니다.구체적인 정답그렇지 않으면 우리는 모호하고 부정확하며 지나치게 단순화된 일반화에 의존해야 할 것입니다.