해결된 질문
작성
·
54
·
수정됨
0
CPU 스케줄링 개요 20:20초 즈음부터 나오는 내용인데요
윈도우에서 프로그램 / 백그라운드 서비스 중 둘중 하나를 최적화시킬 수 있는 설정이 있고,
[IO가 있음 + 클라가 많음]라는 서버특성상 대기하는 상황이 많다고, 그래서 백그라운드 서비스에 최적화하는 게 좋다~ 와 같은 뉘앙스로 말씀해주신 것 같은데요
궁금한점이 있습니다
백그라운드 운영체제라는 게 무엇인가요? 제가 이해한바로는 그냥 우선순위가 낮게 설정된 녀석들로 이해했는데 맞을까요?
그러면 윈도우에서 백그라운드 최적화를 한다는 게 무슨 의미인지도 궁금하네요. 우선순위와 무관하게 그냥 라운드로빈? 같이 좀더 순차적으로 cpu를 할당해주는 그런느낌인가 싶기도하고 ㅎㅎ..
백그라운드에 무엇인가를 두는 게 이점이 있는건가요?
설명해주신 부분, 그러니까 20분 걸릴 게 어차피 25분 걸린다 그래서 우선순위를 낮춰서(백그라운드에 둬서) 그냥 알아서 되게 하고, 대신 다른 프로세스(예를 들면 gui관련)를 조금 더 잘 동작하게하자~ 라는 부분은 이해했습니다
그런데 서버의 입장에서 보면 , 어차피 서버는 클라의 요청을 처리하는 것이 주목적인만큼 처리하게 되는 대부분의 프로세스가 IO기반의 클라이언트 요청일테고, 그러면 거기서 뭔가 우선순위를 나눠서 백그라운드로 돌리는 것의 의의를 잘 모르겠네요(물론 이건 제가 지식이 부족한 백엔드 웹개발자라.. 그렇게 느끼는 것 같기도 하네요 ㅎㅎ.. )
양질의 강의 감사합니다
답변 2
0
'백그라운드 운영체제' 라는 말은 없습니다. 백그라운드에서 작동하는 프로그램 중 상당수가 운영체제의 구성요소이긴 합니다. 윈도우 서비스나 리눅스 데몬 같은 것을 이야기 합니다. 우선순위는 별개의 문제 입니다.
최적화는 너무나 대상이 다양합니다. 다만 GUI가 없는 백그라운드 프로그램들은 동작 특성에 알맞게 스케쥴링한다는 정도로는 생각할 수 있겠습니다.
GUI가 있는 경우 화면을 렌더링하느라 느려집니다. 굳이 화면이 필요없다면 백그라운드로 작동하는 것이 훨씬 효율적입니다. 보통 대다수의 서버들이 그렇게 작동합니다. 화면에 "HelloWorld"를 출력하는 것보다 네트워크로 "HelloWorld"를 보내는 것이 더 빠를 수 있습니다. 참고하시기 바랍니다. 😄
0
안녕하세요, 인프런 AI 인턴입니다.
백그라운드 운영체제라는 용어 보다는 백그라운드 프로세스 운영에 대한 언급으로 보입니다. 일반적으로 백그라운드 프로세스는 사용자가 직접적으로 인터랙션하지 않는 작업을 수행하는 프로세스로, 시스템 자원을 사용할 때 낮은 우선순위를 가질 수 있습니다. 님의 이해하신 바가 맞습니다.
윈도우에서 백그라운드 최적화를 한다는 것은, 시스템이 백그라운드에서 실행되는 프로세스의 자원 사용을 조절하여 전체 시스템 성능을 개선하는 설정을 의미합니다. 예를 들어, IO가 많고 대기 시간이 긴 작업을 우선순위가 낮은 백그라운드 작업으로 설정함으로써, 사용자와 상호작용하는 프로세스(예: GUI)에 더 많은 CPU 자원을 할당하여 전체적인 시스템 반응성을 향상시키는 것입니다.
백그라운드에 작업을 두는 것의 이점은, 사용자 경험을 저해하지 않으면서 시스템 자원을 효율적으로 사용할 수 있다는 점입니다. 이는 시스템이 다른 중요한 작업에 더 많은 자원을 할당할 수 있도록 하여, 전체적인 시스템 성능 및 반응성을 유지하게 해줍니다. 서버에서도 유사한 원리가 적용될 수 있는데, 예를 들어 비동기적으로 처리할 수 있는 작업들을 백그라운드에서 처리함으로써, 실시간으로 반응해야 하는 요청들에 더 많은 자원을 집중할 수 있습니다.
님이 이해하신 부분처럼, 특정 프로세스의 우선순위를 낮추어 전반적인 시스템의 성능을 조율하는 것은 중요한 기법 중 하나입니다. 서버의 경우, 모든 요청이 중요할 수 있으나, 요청의 성격에 따라 우선순위를 다르게 설정하여 자원을 효율적으로 사용할 수 있는 전략을 수립하는 것이 중요합니다.
강의에 대한 칭찬 감사드리며, 추가적인 질문이 있으시면 언제든지 문의해주세요.