title: What is responsible for changing core's load and frequency in multicore processor
body: <p>Having looked for a description of the multicore design i keep finding several diagrams, but all of them look somewhat like this:</p>
  
  <p><a href="https://i.stack.imgur.com/n99NY.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/n99NY.gif" alt="multicore design"></a></p>
  
  <p>I know from looking at <code>i7z</code> command output that different cores can run at different frequencies.</p>
  
  <p>This would suggest that the decisions regarding which core will be given a new process and for changing the frequency of the core itself are done either by the operating system or by the control block of the core itself.</p>
  
  <p>My question is: What controls the frequencies of each individual core? Is the job of associating a <code>READY</code> process with the specific core placed upon the operating system or is it done by something within the processor.</p>