Так что я читал о процессах и потоках, и у меня возник вопрос. Ниже приведен сценарий.Процесс с несколькими потоками на многопроцессорной системе. Как они работают?
Uniprocessor Environment
Я понимаю, что ОС вращает процессы над процессором в течение определенного периода времени. (Квант). Теперь я получаю его, когда процесс одинарный, т.е. только один путь выполнения. В этом случае всякий раз, когда ему назначается процессор, он продолжает выполнение. Скажем, процесс вилки и просто создает новый поток. Теперь как работает весь процесс? Является ли это тем, что ОС скажет, чтобы обрабатывать P «Продолжайте, продолжайте выполнение», и процесс внутри себя выберет новый поток или родительский поток при вращении? Так что, если есть более двух потоков, вращение кажется справедливым для каждого потока. Или ОС фактически взаимодействует с потоками? (В этом случае я не уверен, что произойдет).
многопроцессорной Environment
Теперь у меня есть многопроцессорной. Теперь в этом случае, если бы был только однопоточный процесс, тогда ОС назначит ему один из процессоров, и он пойдет с его исполнением. Теперь скажите, что в Процессе есть несколько потоков. Теперь, если я назначу один из процессоров процессу и попрошу его продолжить его выполнение, и Process должен выбрать любой из потока для его выполнения, тогда в этом конкретном процессе никогда не будет параллельной обработки. Поскольку процесс должен будет поместить любой из его потоков в процессор.
Как это происходит в обоих случаях?
Cheers.
Этот вопрос слишком широк для формата SO. Вы должны потратить немного времени на свою любимую поисковую систему, просматривая планирование операционной системы. Статья [Wikipedia] (http://en.wikipedia.org/wiki/Scheduling_ (вычисления)). См. Http://oreilly.com/catalog/linuxkernel/chapter/ch10.html для получения информации о планировании Linux. Для Windows см. [О процессах и потоках] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms681917 (v = vs.85).aspx), особенно раздел о планировании. –