리뷰 내 노트북이 절전모드에서 굉음을 내며 혼자 깨어나는 이유 - Sleep State와 Modern Stanby에 대하여
- Alternative
- 조회 수 1397
- 2024.11.11. 15:22
안녕하세요, Alternative입니다.
윈도우의 절전모드는 여러모로 문제가 많습니다. 노트북을 쓰다가 절전모드로 놓고 가방에 넣었는데, 나중에 꺼내 보니 절전모드가 해제되어 있고 팬이 굉음을 내며 노트북이 뜨거워져 있었던 경험을 해보신 분들이 많을 겁니다. 절전 모드를 잘 유지하더라도 배터리 소모가 심해 하루만 지나도 노트북이 꺼진 경우도 있었을 테고요.
로그 엘라이 같은 윈도우 핸드헬드를 쓰시는 분들은 절전모드에 진입할 때까지 시간도 너무 오래 걸리고, 절전모드를 해제하면 플레이하고 있던 게임에서 오류가 발생했던 경험도 있을 겁니다. 절전모드로 진입하다가 화면이 갑자기 다시 켜지면서 해제되는 경우도 자주 있습니다.
반대로, 스팀OS를 사용하는 스팀덱은 슬립 모드의 진입과 해제가 빠르고 안정적이며, 슬립 상태에서 배터리 소모도 윈도우보다 적은 편입니다.
이러한 차이는 두 운영체제가 절전모드에서 System Sleep State를 사용하는 방법이 다르기 때문입니다.
오늘 글의 내용은 다소 테크니컬하지만, 평소 윈도우의 절전모드에 불만을 느끼셨던 분들이라면 흥미롭게 읽을 수 있는 내용입니다.
System Sleep State에 관한 기본적인 설명
System Sleep State는 컴퓨터와 운영체제가 일시정지되어 있는 상태로, 겉으로 보기에는 꺼진 것처럼 보이지만 시스템 메모리(램)에 저장된 작업 상태를 보존하고 있어 Sleep State에서 벗어날 시 이전의 작업 상태를 그대로 이어받아 계속할 수 있습니다. Sleep State의 규격은 ACPI(고급 환경설정 및 전원 인터페이스)에 정의되어 있어 하드웨어에서 규격에 맞게 지원하는 것이며, 소프트웨어(운영체제)가 이를 제어하고 활용하는 방식입니다.
Sleep State에는 S1부터 S4까지 총 4가지 단계가 있고, 편의상 S0와 S5를 같이 다룹니다.
S0는 켜져 있는 상태입니다. 우리가 일반적으로 컴퓨터를 사용할 때를 의미합니다.
S1은 가장 얕은 Sleep 단계입니다. 프로세서(CPU)에 전원은 공급되지만 프로세서 클럭과 버스 클럭은 멈춰져 있어 작동이 중단됩니다. 나머지 하드웨어에는 정상적으로 전원이 공급됩니다.
S2은 프로세서에 전원 공급이 차단되어 프로세서가 완전히 꺼집니다. CPU와 캐시 메모리의 상태는 손실됩니다.
S3는 프로세서뿐만 아니라 Sleep을 유지하는데 필수적이지 않은 메인보드의 다른 칩셋들도 완전히 꺼집니다. 시스템 메모리(RAM에 있는 데이터)만 보존되며, 그 이외의 상태는 전부 손실됩니다.
S4는 Hibernation이라 불리는 단계로, CPU와 RAM을 포함해 모든 하드웨어 전원이 차단되며 종료됩니다. 하드웨어적으로는 시스템 종료(S5)와 같지만, 진입 전에 운영체제가 시스템 메모리의 정보를 저장장치(HDD, SSD)에 기록하기 때문에 해제될 때 정보를 다시 가져와 작업 상태를 복원할 수 있다는 차이점이 있습니다.
S5는 완전한 시스템 종료입니다. 시스템 메모리를 포함해 모든 데이터와 상태가 손실되며, 모든 하드웨어 전원이 차단됩니다.
S0에서 S5로 갈수록 깊은 Sleep 상태가 되며 전력 소모가 줄어들지만, 진입과 해제에 걸리는 시간은 길어집니다.
윈도우의 Connected/Modern Stanby
스팀OS는 리눅스 운영체제입니다. 리눅스는 기본적으로 절전모드에 S3를 사용합니다. 사실 대부분의 운영체제가 절전모드에 S3를 사용합니다.
윈도우도 윈도우 7까지는 절전모드에 S3를 사용했습니다. 그러나 마이크로소프트는 S3 Sleep으로는 소비자가 최신 기기에서 원하는 빠른 절전모드 해제가 어렵다고 판단했습니다. 그래서 태블릿에 특화된 윈도우 8에서 마이크로소프트는 Connected Stanby라는 기술을 도입했습니다.
Connected Stanby는 S0 low power idle (S0ix)라는 특별한 Sleep State를 사용합니다.
S0ix는 기본적으로 S0 상태이지만, 켜져 있는 프로그램과 운영체제는 Low power mode에 돌입합니다. 이 상태에서 프로그램과 운영체제는 완전히 정지되지 않고, 진행하는 작업을 최대한 정지한 채로 필수적인 백그라운드 프로세스만 가동합니다.
이런 백그라운드 프로세스는 S0ix 상태에서 지속적으로 돌아가며, 30초마다 한 번씩 프로세서가 완전하게 작동해 밀려 있는 작업들을 처리하기도 합니다. 또한 필요 시 추가적으로 프로세스를 실행하거나 하드웨어를 사용할 수 있습니다.
하드웨어도 Low power mode에 진입하지만 전원은 지속적으로 공급되며(= 꺼지지 않으며), 특정 하드웨어는 필요 시 Low power mode에서 벗어나 작동할 수 있습니다. 특히 Connected Stanby에서 네트워크와 관련된 하드웨어는 항상 켜져 있습니다. 프로그램이나 하드웨어가 적절하게 요청한다면 사용자의 조작 없이도 절전모드에서 깨어날 수 있다는 점도 특기할 만 합니다.
조금 어려운 이야기인데, 예시를 보면 이해가 쉽습니다.
카카오톡이 컴퓨터에서 작동한다고 생각해 봅시다. 컴퓨터가 절전모드에서 S3 State에 있다면 프로세서(CPU)가 꺼지기 때문에 카카오톡의 프로세스가 작동하지 않으며, 네트워크 칩셋도 꺼지기 때문에 인터넷을 통해 새로운 카카오톡 메세지 정보를 받는 것도 불가능합니다.
하지만 Connected Stanby 상태에서는 카카오톡의 백그라운드 프로세스가 지속적으로 작동할 수 있고, 네트워크 칩셋이 켜져 있으므로 인터넷에서 새로운 메세지 정보를 가져오는 것도 가능합니다. 즉, Connected Stanby 상태에서는 절전 모드일지라도 카카오톡 알림을 받는 것이 가능해지고, 보이스톡 등의 상황에서는 절전 모드에서 해제되어 알림을 울릴 수 있습니다. (엄밀히 말하자면 인증된 Microsoft store의 앱만이 Connected Stanby 상태에서 백그라운드 프로세스를 돌릴 수 있습니다. 현재의 카카오톡은 지원하지 않습니다.)
마이크로소프트는 궁극적으로 Connected Stanby를 통해 윈도우가 스마트폰처럼 작동하길 원했습니다. 절전 모드 상태에서도 지속적으로 새로운 알림이나 정보를 받아오면서 최신 상태를 유지할 수 있기를 바란 것이죠. 이런 마이크로소프트의 목표는 윈도우 10에서도 지속되며 Modern Stanby라는 기술로 진화했습니다.
Modern Standy는 Connected Stanby에서 프로세서가 완전히 작동하는 간격을 30초에서 허용되는 최대한으로 늘려 전력 소모를 더 줄이고, 네트워크 하드웨어를 완전히 끈 Disconnected 상태를 추가적으로 도입해 필요 시 인터넷 연결이 필요한 작업을 전부 멈출 수 있게끔 하였습니다. 또한 여러 제약으로 Connected Stanby를 사용하지 못했던 기기에서도 지원을 확장해 Modern Stanby를 사용할 수 있게 했습니다.
마이크로소프트는 Modern Stanby를 통해 여러가지 이득을 얻을 수 있다고 설명합니다. 앞서 말했듯 절전모드 상태에서도 필요한 정보를 실시간으로 받을 수 있고, 진입과 해제 속도도 빠릅니다. S3 Sleep과 달리 하드웨어/BIOS와 상호작용을 하는 과정 없이 윈도우 시스템에서 모든 작업을 하게 되므로 과정이 간단해지고 오류가 날 가능성도 적어집니다.
하지만 지금쯤이면 짐작이 가는 바와 같이, 도입부에서 언급한 여러 윈도우 절전모드의 문제점 또한 Modern Stanby에서 비롯됩니다. 기본적으로 절전 상태에서도 CPU를 포함한 여러 하드웨어에 전부 전원이 공급되는 데다가 백그라운드 프로세스까지 작동하기 때문에 전력 소모량이 상당합니다.
또한 Modern Stanby에서 Screen off에서 Sleep으로 이행하기 전에 일부 프로그램에서 작업을 강제로 지속하거나 사용자의 입력(키보드 누름, 전원버튼 누름, 조이스틱 움직임)이 있으면 Sleep State로 들어가지 못하고 Screen off 상태에서 벗어나 다시 켜집니다. 실행중인 프로그램의 관리와 정지를 담당하는 Desktop Activity Moderator(DAM)이 실행중인 프로그램을 제대로 처리하지 못하면 프로그램에 오류가 생기거나 비정상적으로 종료될 수도 있습니다. Modern Stanby의 프로토콜에 맞게 하드웨어, 소프트웨어, 운영체제가 같이 작동해야 Modern Stanby 절전모드로 진입하는데, 일부 하드웨어/소프트웨어가 프로토콜에 맞게 작동하지 않으면 절전모드 진입까지 상당히 오랜 시간이 걸릴 수도 있습니다.
특히 윈도우의 경우 구형(레거시) 프로그램들이 상당하고, 최신 소프트웨어도 레거시 프로그램과 유사한 방식으로 구현된 경우가 있기 때문에 Modern Stanby에서 요구하는 데로 작동하지 않는 경우가 많습니다. 그래서 여러 프로그램이 돌아갈 때, 절전모드로 제대로 진입하지 못할 가능성이 큽니다.
하드웨어적으로 지원하지 않는 S3 Sleep State
그러면 원흉인 Modern Stanby를 끄고 S3 Sleep을 사용하면 되지 않냐고요? 맞습니다. 명령어 또는 레지스트리 수정으로 윈도우에서 Modern Stanby를 강제로 끌 수 있습니다.
하지만 최신 하드웨어가 S3 Sleep을 지원하지 않는 경우가 대부분입니다. 마이크로소프트가 2019년쯔음부터 Modern Stanby 규격을 정립하고 하드웨어 제조사들에도 해당 규격에 맞게 설계할 것을 강제하면서, 제조사들은 S3 Sleep State 규격에 맞는 하드웨어/펌웨어적 구현을 제대로 해놓지 않기 시작했습니다. 이전에는 메인보드의 UEFI 설정에서 S3 State를 활성화시킬 수 있었지만, 지금은 활성화시킬 수 있는 옵션이 없습니다. 따라서 윈도우에서 Modern Stanby를 끄면 절전모드가 사라지거나, 절전모드로 들어가는 도중 버그가 발생하면서 컴퓨터가 재부팅됩니다.
강제로 BIOS 펌웨어를 수정해 숨겨진 S3 State를 활성화시킬 수도 있지만, 이렇게 활성화시키더라도 제조사에서 제대로 구현을 하지 않았기 때문에 프로세서 클럭이 고정되고 일부 장치가 작동하지 않는 등 여러 심각한 버그가 발생합니다.
윈도우에서 터미널을 실행시킨 뒤 아래 명령어를 입력하면 컴퓨터에서 어떤 Sleep State를 지원하는지 확인할 수 있습니다.
2019년 이전에 나온 노트북이나 메인보드라면 대기 모드(S3)가 사용할 수 있는 절전 모드에 있을 수 있습니다. 하지만 대부분 위 스크린샷처럼 '시스템 펌웨어에서 이 대기 모드를 지원하지 않습니다.'라고 나올 겁니다. 이런 경우 S3 Sleep State는 사용이 힘들다고 보면 됩니다.
따라서 이런 기기에 리눅스를 설치하더라도 하드웨어가 S3를 지원하지 않기 때문에 절전모드를 실행하면 Modern Stanby와 유사하게 S0에서 절전을 시행합니다. 하지만 Modern Stanby와 달리, 리눅스는 S0 기반 절전모드에서도 백그라운드 프로세스의 구동을 허용하지 않고, 네트워크 칩셋 등의 하드웨어에도 최소한의 전원만을 공급합니다. 따라서 S3 Sleep보다는 못하지만 Modern Stanby보다는 훨씬 빠르고 안정적, 효율적으로 절전모드를 사용할 수 있습니다. 그러므로 리눅스 기반 운영체제를 쓰면 윈도우보다는 훨씬 나은 절전모드 경험을 할 수 있습니다.
제가 엘라이에 스팀OS를 설치해 사용하는 주 이유 중 하나도 절전모드를 편하게 사용하기 위해서입니다. 윈도우보다 훨씬 나은 경험을 주기 때문에 굉장히 만족하는 편입니다.
참고문헌
System Sleep State 설명: https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/system-sleeping-states
Modern Stanby에 대한 설명: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby
Modern Stanby의 State: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby-states
Modern Stanby가 S3와 어떻게 다른가: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby-vs-s3
참 원시적인 시스템이죠. 저렇게 뜯어고쳐놓고도 cpu 제조사들이나 oem들에게는 제대로 된 표준안 제공을 안한건지 amd는 여전히 모던스탠바이에서 허우적대는 뭣같은 버그가 있는게... 이거 해결하려고 아수스는 최대 절전모드 도우미라는 설정 넣어놨는데 제대로 작동을 하는건지 긴가민가합니다. 웃긴건 델은 S3 state 지원 끊은지 오래면서도 UEFI에는 S3 state 관련 옵션이 남아있습니다.