0

멀티 코어 노트북이 있다고 가정 해 보겠습니다.파이썬과 MATLAB 프로그램을 동시에 실행하면 내 컴퓨터에서 무슨 일이 벌어 질까요?

파이썬에서 코드를 작성하고 실행합니다. 내 파이썬 코드가 실행되는 동안, 내 matlab을 열고 다른 코드를 실행합니다.

아래에 무슨 일이 일어나고 있습니까? 이 두 프로세스가 멀티 코어를 사용하여 병렬로 병렬 처리됩니까?

또는 컴퓨터가 완료 될 때까지 대기 한 다음 다른 프로세스를 처리합니까?

감사합니다.

P. 언급하고있는 두 가지 프로그램은 본질적으로 가장 단순한 것으로 간주 될 수 있습니다. 1 + 2 + 3을 계산하십시오 ..... + 10000000

답변

0

답변은 ... 달라집니다!

운영 체제는 실행중인 프로세스를 계속 전환하고 있습니다. 화면을 새로 고치고, 스피커에 소리를 게시하고, 업데이트를 확인하고, 마우스를 폴링하는 등의 프로세스가 항상 백그라운드에서 실행됩니다. 이러한 프로세스는 프로세서 시간이 어느 정도 걸릴 때만 실제로 실행될 수 있습니다. 많은 코어를 사용하는 경우 운영 체제는 어떤 프로세스가 코어에 시간을 가져야하는지 파악하기 위해 일종의 경험적 방법을 사용합니다. 어떤 의미에서, 은 복수 코어를 가지고 있으므로 동시에 실행되는이기 때문에 (2) 전환이 너무 빨라서 알아 채지 못하기 때문에 모든 것이 동시에 실행되고 있다는 환상을 가지고 있습니다 그것은 일어난다.

내가 이것을 가져 오는 이유는 같은 시간에 Python과 MATLAB을 동시에 실행하면 원칙적으로 동시에 쉽게 실행할 수 있지만 톤이있을 수 있기 때문에 그런 일이 발생하지 않는다는 것입니다. 다른 일들도 마찬가지입니다. 파이썬과 MATLAB이 동시에 조금씩 실행 된 다음 일시적으로 일시 중지되어 음악을 재생하는 일부 프로그램이 메모리로 재생 될 다음 사운드 클립을로드 한 다음 OSP가 디스크의 일부 메모리에서 페이지를 일시 중지 할 수 있습니다 다른 하나가 인계받습니다.

평행으로 운영 될 것이라고 가정 할 수 있습니까? 확실한! 가장 합리적인 운영체제가이를 파악하고 올바르게 할 것입니다. 이 (가)과 독점적으로 동시에 실행되고 있다고 가정 할 수 있습니까? 꼭 그런 것은 아닙니다.

+0

대단한 통찰력, 감사합니다! 전체적으로, 두 프로그램을 동시에 실행하거나 다른 프로그램을 실행하기 전에 끝내기를 기다리는 것이 더 빠릅니까? 또한 멀티 코어를 사용하려면 코드에서 특별한 배열이 필요하다고 생각했습니다. 그렇지 않으면 멀티 스레딩 (번개 속도로 작업 톤 간 전환)이 OS에서 자동으로 처리됩니다. 그게 정확하지 않은 것 같습니다. – wudanao

+0

@wudanao 운영 체제는 여러 프로그램을 동시에 실행하는 작업을 자동으로 처리하므로 Python 프로그램과 MATLAB 프로그램 *이 있고 각 스레드가 단일 스레드 * 인 경우 OS가 동시에 실행될 수 있으며 사용자가 아무것도 할 필요가 없다. 동시에 두 가지를 모두 실행하는 것이 하나씩 실행하는 것보다 빠를 가능성이 큽니다. – templatetypedef

+0

위대한, 감사합니다! – wudanao