Çok çekirdekli bir işlemci aynı anda birden çok işlemi çalıştırabilir mi?


9

Çok çekirdekli bir işlemcinin, farklı çekirdeklerini kullanarak aynı işlemin birden çok iş parçacığını aynı anda çalıştırabileceğini anlıyorum.
Aynı anda birden fazla işlem de yapabilir mi (her çekirdek farklı bir işlem yürütüyor)?

Yanıtlar:


14

İşletim sistemi ve uygulamalar söz konusu olduğunda, her çekirdek ayrı bir işlemcidir ve birden fazla işlemciye sahip olmakla aynı afinite kurallarına tabidir .

Bir işlemin hangi işlemci (gerçek, çekirdek veya hiper iş parçacıklı) üzerinde çalıştığı tamamen işletim sisteminin zamanlama sistemine bağlıdır. Bir sürecin nerede ve ne zaman çalışması gerektiğine karar veren bu zamanlama sistemidir ( yakınlık ayarlarından etkilenir ). Süreçler ve iş parçacıkları, zamanlayıcının uygun gördüğü şekilde istekler ve işlemciler arasında geçiş yapabilir.


7

İşletim sistemleri hakkındaki sınırlı bilgimden, her sürecin en az bir iş parçacığına sahip olduğuna inanıyorum ve bu iş parçacıkları, işlemlerin kendileri değil, planlanan iş parçacıklarıdır. İşlem, program ve çalıştırdığı ayarlanmış evreler hakkında bilgi tutar. Bu şekilde, tek iş parçacıklı bir uygulama çok iş parçacıklı bir uygulama ile aynı işlemi görür, ancak çok iş parçacıklı uygulama kaynakları daha iyi kullanabilir.

Örneğin, her biri iki iş parçacığına ve tek bir iş parçacıklı uygulamaya sahip iki işlemimiz olduğunu varsayalım, hepsi çift çekirdekli işlemcide (veya çift CPU'da çok çalışıyor), burada fark yok)

 Process A
    |_Thread A-1
    |_Thread A-2

 Process B
    |_Thread B-1
    |_Thread B-2

 Process C
    |_Thread C

Her iş parçacığı CPU'nun tüm çekirdekleri boyunca programlanabilir ve yük OS zamanlayıcısı tarafından dengelenir.

Daha sonra İşlem B için bir CPU ile sınırlandırmak üzere işlemci benzeşimi kurarsak, bu işlemin tüm iş parçacıkları da bu CPU'ya bağlanır ve başka bir CPU'da çalışmaz. Aynı işlemi C işlemine yapmak aynı anda yalnızca bir CPU üzerinde çalışabileceğinden gerçek bir değişikliğe neden olmaz.


2

Kısa cevap:

  1. Evet, işletim sisteminin desteklemesi şartıyla.
  2. Günümüzde tüm işletim sistemleri bunu destekliyor.

İşlemler ve iş parçacıkları (çoklu iş parçacığında olduğu gibi) OS düzeyinde yapılardır. Programlamada yeterince düşük bir seviyeye ulaştığınızda bunlar kaybolur ve yürütme süresini elde etmek için yalnızca bir grup yürütme kuyruğuna sahip olursunuz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.