“İplik” nedir (gerçekten)?


237

Ben bir iş parçacığı gerçekten ne olduğunu iyi bir tanım bulmak ve bir anlayış elde etmeye çalışıyorum .

Görünüşe göre bariz bir şey eksik olmalı, ama bir iş parçacığının ne olduğunu her okuduğumda, neredeyse dairesel bir tanım, bir la "iş parçacığı yürütme iş parçacığı" veya "çalışan görevlere bölmek için bir yol". Uh uh. Ha?

Okuduğumdan, bir iş parçacığının bir süreç gibi gerçekten somut bir şey olmadığını okudum . Aslında sadece bir kavram. Bu arada bu eserler anladığım, bir işlemci (bir adlandırılan edildiği bir program için bazı komutları yürütür yürütme iş parçacığı o biraz diğer bazı program için işlem için anahtara ihtiyaç duyduğunda, o zaman, depolar) devlet arasında şu anda bir yerde yürüttüğü program (Yerel Yerel İş Parçacığı) ve diğer programın talimatlarını yürütmeye başlar. Ve ileri geri. Öyle ki, bir iş parçacığı gerçekten şu anda çalışan bir programın "yürütme yollarından biri" için bir kavramdır.

Gerçekten bir şey olan bir sürecin aksine - kaynakların bir araya gelmesi vb.

Bana çok fazla yardımcı olmayan bir tanım örneği olarak. . .

Gönderen Vikipedi :

"Bilgisayar bilimindeki bir iş parçacığı yürütme iş parçacığının kısaltmasıdır. İş parçacıkları, bir programın kendisini aynı anda iki veya daha fazla (veya sözde eşzamanlı) çalışan göreve ayırması (" bölme "olarak adlandırılır). işletim sistemini başka bir işleme tabi tutar, ancak genel olarak bir işlemin içinde bir iş parçacığı bulunur ve aynı işlemdeki farklı iş parçacıkları aynı kaynakları paylaşırken aynı çok görevli işletim sistemindeki farklı işlemler paylaşmaz. "

Ben de haklı mıyım? Yanlış? Gerçekten bir iş parçacığı nedir?

Düzenleme: Görünüşe göre bir iş parçacığı da kendi çağrı yığını verilir, böylece biraz somut bir şey .


6
"Süreç" soyut bir terimden daha az değildir.
19:19

Yerel iş parçacığı deposu yalnızca iş parçacığının çağrı yığını mıdır?
committedandroider


3
Aşağıdaki cevaplar ... soyut. Daha basit terimlerle (ve bazı ayrıntılar üzerinde göz kamaştırmak): bir zamanlar, bir bilgisayar programı aynı anda sadece bir şey yapabilirdi. Böylece A yaptı, sonra B sonra, sonra C, sonra .... Modern sistemlerde bu ideal değildir; örneğin bir dosyayı indirirken web'de gezinmeye devam etmek istersiniz. Yani programlarda artık bir veya daha fazla 'iş parçacığı' var. Her 'iş parçacığı' aynı anda yalnızca bir şey yapabilir, ancak farklı iş parçacıkları aynı anda iş yapabilir . İplik 1 A, sonra B, sonra C yapabilir; 2 A bitene kadar X, Y, daha sonra Z. B başlayamaz yapabilirsiniz iplik, ancak A ve X edebilir seferde olur.
Mohan

@Mohan bu harika ama bir süreçten farkı nedir?
eric

Yanıtlar:


153

Bir iş parçacığı, işlemci kayıtları (bağımsız bir çekirdek için) için bağımsız bir değerler kümesidir. Bu, Talimat İşaretçisi'ni (Program Sayacı olarak da bilinir) içerdiğinden, neyin hangi sırayla yürütüldüğünü kontrol eder. Ayrıca, her bir iş parçacığı için benzersiz bir bellek alanına daha iyi bir noktaya sahip olan Yığın İşaretçisi'ni içerir, aksi takdirde birbirlerine müdahale ederler.

İş parçacıkları kontrol akışından (işlev çağrısı, döngü, git) etkilenen yazılım birimidir, çünkü bu talimatlar Yönerge İşaretçisi üzerinde çalışır ve belirli bir iş parçacığına aittir. İş parçacıkları genellikle bazı önceliklendirme şemasına göre zamanlanır (işlemci çekirdeği başına bir iş parçacığı olan bir sistem tasarlamak mümkün olsa da, bu durumda her iş parçacığı her zaman çalışır ve programlamaya gerek yoktur).

Aslında, Talimat İşaretçisinin değeri ve bu konumda saklanan talimat, Talimat İşaretçisi için yeni bir değer belirlemek için yeterlidir. Çoğu talimat için, bu sadece IP'yi talimatın boyutuna göre ilerletir, ancak kontrol akışı talimatları IP'yi diğer öngörülebilir yollarla değiştirir. IP'nin üstlendiği değerler dizisi, "thread" adına yol açan program kodu üzerinden bir yürütme yolu oluşturur.


10
+1. Bir iş parçacığı, bir dizi kayıt değerinden daha "somut" bir şey değildir.
Greg Hewgill

6
Ne "değerler kümesi"? Onlar neler? Bir iş parçacığını nasıl tanımlarlar ?
richard

20
@Richard: CPU kayıtlarının tam listesi mimariye bağlıdır, ancak talimat işaretçisi ve yığın işaretçisi hemen hemen evrenseldir. Bu iş parçacığı (kayıt değerleri kümesi) işlemci çekirdeğine yüklendiğinde, iş parçacığı çalışıyorsa bir iş parçacığı tanımlar . İşlemci, iş parçacığının istediği talimatları alıyor ve iş parçacığı kayıtlarını güncelliyor. Bir bağlam anahtarına ihtiyaç duyulduğunda, işlemci bu kayıt değerleri setini belleğe kaydeder ve tipik olarak kesme servis mantığının bir parçası olarak farklı bir iş parçacığına ait bir set yükler.
Ben Voigt

4
Teşekkürler Ben. Bu çok yardımcı oldu.
richard

2
Merhaba teşekkürler @BenVoigt. Benim gibi yeni başlayanların karşılaşabileceği birkaç açıklama: "işlemci kayıtları" ile ne kastedilmektedir? "Talimat işaretçisi" ve "yığın işaretçisi" ile kastedilen nedir?
BKSpurgeon

215

Bir iş parçacığı, bir CPU'nun bir yönerge akışı yürütmek için ihtiyaç duyduğu tüm bilgiler olan bir yürütme bağlamıdır.

Bir kitap okuduğunuzu ve şu anda bir mola vermek istediğinizi varsayalım, ancak geri gelip durduğunuz noktadan okumaya devam etmek istiyorsunuz. Bunu başarmanın bir yolu sayfa numarasını, satır numarasını ve kelime numarasını not almaktır. Yani kitap okumak için yürütme bağlamınız bu 3 sayıdır.

Eğer bir oda arkadaşınız varsa ve aynı tekniği kullanıyorsa, kitabı kullanmadığınız zamanlarda alabilir ve durduğu yerden okumaya devam edebilir. Sonra geri alabilir ve bulunduğunuz yerden devam edebilirsiniz.

İş parçacıkları aynı şekilde çalışır. Bir CPU size aynı anda birden fazla hesaplama yaptığı yanılsamasını veriyor. Bunu her hesaplama için biraz zaman harcayarak yapar. Bunu yapabilir, çünkü her hesaplama için bir yürütme bağlamı vardır. Bir kitabı arkadaşınızla paylaşabileceğiniz gibi, birçok görev de bir CPU'yu paylaşabilir.

Daha teknik düzeyde, bir yürütme bağlamı (bu nedenle bir iş parçacığı) CPU kayıtlarının değerlerinden oluşur.

Son: evreler süreçlerden farklıdır. Bir iş parçacığı yürütme bağlamı, süreç ise hesaplamayla ilişkilendirilmiş bir grup kaynaktır. Bir işlemin bir veya daha fazla iş parçacığı olabilir.

Açıklama: Bir işlemle ilişkili kaynaklar arasında bellek sayfaları (bir işlemdeki tüm iş parçacıkları belleğin aynı görünümüne sahiptir), dosya tanımlayıcıları (ör. Açık yuvalar) ve güvenlik kimlik bilgileri (ör. işlemi).


20
Daha iyi bir benzetme, kişiyi CPU ile eşitler (her ikisi de bir şeyler yapar) ve kitabı adres alanı ile eşitler (ikisi de sadece var). Bu şekilde, farklı kitaplardaki yer imleri, farklı süreçlerdeki konular gibidir. Birden fazla yer işaretine sahip tek bir kitap, çok iş parçacıklı bir sürecin analogu olacaktır, bu da insanların genellikle "iş parçacıkları" derken kastettiği şeydir. Tek bir işlemci makinesi için çalışır, ancak çoklu işleme hakkında konuştuğunuzda biraz parçalanır. Hiç kimse takar olan CPU yürütür f () işlev, ancak yapar önemli olan kişi bölüm 11. okur
Yavaş Solomon

@pwnall, benim gibi diğerleri için zor kavramları sindirdiğin için çok teşekkürler! Çok iş parçacıklı çoklu işleme (ya da yanlış terim kullanmam durumunda birçok işlemciye paralel bir işlem yürütme) dahil oluyor mu?
aerijman

51

Bir iş parçacığını resmi olarak tanımlamak için, önce bir iş parçacığının çalıştığı sınırları anlamalıyız.

Bir bilgisayar programı, bir mağazadan bilgisayarın belleğine yüklendiğinde ve yürütülmeye başladığında bir işlem haline gelir . İşlem, bir işlemci veya bir işlemci kümesi tarafından yürütülebilir. Bellekteki bir işlem açıklaması, programdaki geçerli konumu (yani şu anda yürütülmekte olan talimatı) izleyen program sayacı, kayıtlar, değişken depolar, dosya tanıtıcıları, sinyaller vb. Gibi hayati bilgileri içerir.

Bir iş parçacığı , bir program içindeki diğer kodlardan bağımsız olarak yürütülebilen bu talimatların bir dizisidir. Şekil kavramı göstermektedir: resim açıklamasını buraya girin

İş parçacıkları aynı işlem adres alanı içinde olduğundan, işlemin bellek açıklamasında bulunan bilgilerin çoğu iş parçacıkları arasında paylaşılabilir.

Yığın (iş parçacığı başına farklı bir bellek alanına yığın işaretçisi), kayıtlar ve iş parçacığına özgü veriler gibi bazı bilgiler çoğaltılamaz. Bu bilgiler , iş parçacıklarının programın ana iş parçacığından ve muhtemelen program içindeki bir veya daha fazla iş parçacığından bağımsız olarak zamanlanmasına izin vermek için yeterlidir .

Çok iş parçacıklı programları çalıştırmak için açık işletim sistemi desteği gerekir. Neyse ki, çoğu modern işletim sistemi Linux (NPTL aracılığıyla), BSD varyantları, Mac OS X, Windows, Solaris, AIX, HP-UX, vb. Gibi konuları destekler.

Burada, grafiksel olarak, konsept temsil edilir.

Burada konu hakkında daha fazla bilgi bulabilirsiniz. Bu aynı zamanda bilgi kaynağımdı.

Bana sadece gelen bir cümle ekleyelim Gömülü Sistem Giriş tarafından Edward Lee ve Seshia :

Konular eşzamanlı olarak çalışan ve bir bellek alanını paylaşan zorunlu programlardır. Birbirlerinin değişkenlerine erişebilirler. Alandaki pek çok uygulayıcı, “iş parçacığı” terimini, hafızayı paylaşan programları oluşturmanın belirli yollarına atıfta bulunmak için daha dar bir şekilde kullanır; [diğerleri], zorunlu programların eşzamanlı olarak çalıştığı ve hafızayı paylaştığı herhangi bir mekanizmaya genel olarak atıfta bulunur. Bu geniş anlamda, dişler, herhangi bir işletim sistemi olmasa bile (çıplak demir) neredeyse tüm mikroişlemcilerde kesintiler şeklinde bulunur.


45

İşlemler, gerektiğinde veri paylaşmak için ağı kullanan iki farklı bilgisayar kullanan iki kişi gibidir. İş parçacıkları, aynı bilgisayarı kullanan ve verileri açıkça paylaşmak zorunda olmayan ancak dikkatlice sırayla kullanmak zorunda olan iki kişi gibidir.

Kavramsal olarak, iş parçacıkları aynı adres alanında dolaşan çok sayıda işçi arılardır. Her iş parçacığının kendi yığını, kendi program sayacı vb. Vardır, ancak bir işlemdeki tüm iş parçacıkları aynı belleği paylaşır. Aynı anda çalışan iki program düşünün, ancak ikisi de aynı nesnelere erişebilir.

Bunu süreçlerle karşılaştırın. İşlemlerin her birinin kendi adres alanı vardır, yani bir işlemdeki bir işaretçi başka bir nesnedeki bir nesneyi belirtmek için kullanılamaz (paylaşılan belleği kullanmadığınız sürece).

Sanırım anlaşılması gereken kilit noktalar:

  • Hem işlemler hem de iş parçacıkları "aynı anda çalışabilir".
  • İşlemler belleği paylaşmaz (varsayılan olarak), ancak iş parçacıkları tüm belleklerini aynı işlemdeki diğer iş parçacıklarıyla paylaşır.
  • Bir işlemdeki her iş parçacığının kendi yığını ve kendi talimat işaretçisi vardır.

"İşlemler hiçbir şey paylaşmıyor (varsayılan olarak)" diyorsunuz ama benzetmenizde "süreçlerin iki farklı bilgisayar kullanan iki kişi gibi olduğunu, gerektiğinde veri paylaşmak için ağı kullanan" olduğunu söylüyorsunuz. Yani bir şey paylaşıyorlar mı?
committedandroider

@committedandroider: İyi çağrı. Cevabımı, işlemlerin belleği paylaşmadığını (varsayılan olarak), ancak iş parçacıklarının tüm belleği paylaştığını söylemek için düzenledim .
Joey Adams

36

ABRAHAM SILBERSCHATZ, PETER BAER GALVIN ve GREG GAGNE'nin İşletim Sistemleri Kavramları kitabından birçok şeyi kendi anlayışımla birlikte kullanacağım.

süreç

Herhangi bir uygulama bilgisayarda metin (veya kod) biçiminde bulunur.

Bir programın kendi başına bir süreç olmadığını vurguluyoruz. Bir program, diskte depolanan talimatların listesini içeren bir dosya (genellikle yürütülebilir dosya olarak adlandırılır) gibi pasif bir varlıktır.

Bir uygulama başlattığımızda, bir yürütme örneği oluştururuz. Bu yürütme örneğine işlem denir. EDIT: (Benim yorumuma göre, bir sınıfa ve bir sınıf örneğine benzer, sınıf örneği bir süreçtir.)

Süreçlere bir örnek Google Chrome'dur. Google Chrome'u başlattığımızda 3 işlem ortaya çıkar:

Tarayıcı işlemi, kullanıcı arabiriminin yanı sıra disk ve ağ G / Ç'nin yönetiminden de sorumludur. Chrome başlatıldığında yeni bir tarayıcı işlemi oluşturulur. Yalnızca bir tarayıcı işlemi oluşturulur.

Oluşturucu işlemleri web sayfalarını oluşturmak için mantık içerir. Böylece HTML, Javascript, resim vb. İşlem mantığını içerirler. Genel bir kural olarak, yeni bir sekmede açılan her web sitesi için yeni bir oluşturma işlemi oluşturulur ve böylece aynı anda birkaç oluşturma işlemi etkin olabilir.

• Kullanılan her eklenti türü (Flash veya QuickTime gibi) için bir eklenti işlemi oluşturulur. Eklenti işlemleri, eklentinin kodunu ve eklentinin ilişkili oluşturucu işlemleri ve tarayıcı işlemi ile iletişim kurmasını sağlayan ek kodu içerir.

Konu

Bunu cevaplamak için önce bir işlemcinin ne olduğunu bilmeniz gerektiğini düşünüyorum. İşlemci gerçekte hesaplamaları gerçekleştiren bir donanım parçasıdır. EDIT: (İki sayı ekleme, bir dizi sıralama, temelde yazılan kodu yürütme gibi hesaplamalar)

Şimdi bir iş parçacığının tanımına geçiyoruz.

Bir iş parçacığı CPU kullanımının temel birimidir ; bir iş parçacığı kimliği, bir program sayacı, bir kayıt kümesi ve bir yığın içerir.

EDIT: intel web sitesinden bir iş parçacığının tanımı:

Bir İş Parçacığı veya yürütme iş parçacığı, tek bir CPU çekirdeğinden geçirilebilen veya işlenebilen sıralı temel talimatlar dizisi için kullanılan bir yazılım terimidir.

Bu nedenle, Chrome uygulamasındaki Renderer işlemi bir sayı dizisi sıralarsa, sıralama bir iş parçacığı / iş parçacığı üzerinde gerçekleşir. (İpliklerle ilgili gramer bana kafa karıştırıcı geliyor)

Şeyleri Yorumum

İşlem bir yürütme örneğidir. İş parçacıkları, CPU erişimi üzerinden hesaplamaları gerçekleştiren gerçek işçilerdir. Bir işlem için çalışan birden çok iş parçacığı olduğunda, işlem ortak bellek sağlar.

EDIT: Daha fazla bağlam vermek için yararlı bulduğum diğer bilgiler

Tüm günümüz bilgisayarları birden fazla iş parçacığına sahiptir. Bir bilgisayardaki iş parçacığı sayısı, bilgisayardaki çekirdek sayısına bağlıdır.

Eşzamanlı Hesaplama :

Wikipedia'dan:

Eşzamanlı hesaplama, çakışan zaman periyotlarında (eşzamanlı olarak) sıralı olarak (bir sonraki başlatmadan önce tamamlanan) yerine birkaç hesaplama yürütüldüğü bir hesaplama şeklidir. Bu, bir sistemin bir özelliğidir - bu tek bir program, bir bilgisayar veya bir ağ olabilir - ve her hesaplama ("işlem") için ayrı bir yürütme noktası veya "denetim dizisi" vardır.

Böylece, 4 sayının toplamını hesaplayan bir program yazabilirim:

(1 + 3) + (4 + 5)

Bu toplamı hesaplamak için programda (bu bir yürütme iş parçacığı üzerinde çalışan bir işlem olacaktır) Ben hesaplamak için farklı bir iş parçacığı üzerinde çalışabilir (4 + 5) ve sonucu orijinal işlemine döndürmek başka bir süreç çatal olabilir orijinal işlem (1 + 3) toplamını hesaplar.


5
Bu gerçek anlaşma cevabı
Suhail Mumtaz Awan

1
Çok yardımcı oldu. Açıklama böyle görünüyor.
Dinesh Kumar

Bu cevabın büyük bir değeri, gerektiğinde daha fazla ayrıntı bulabileceğiniz bir referans kitabı sağlamasıdır. Teşekkürler @chatuur!
desa

7

Ne yazık ki, iş parçacıkları var. Bir iş parçacığı somut bir şeydir. Birini öldürebilirsin, diğerleri hala koşuyor olacak. Yeni iş parçacıkları oluşturabilirsiniz .... Her iş parçacığı kendi işlemi olmasa da, işlem içinde ayrı olarak çalışırlar. Çok çekirdekli makinelerde, 2 iş parçacığı aynı anda çalışabilir.

http://en.wikipedia.org/wiki/Simultaneous_multithreading

http://www.intel.com/intelpress/samples/mcp_samplech01.pdf


1
Onu "somut bir şey" yapan nedir? Sadece veriler TLS ve çağrı yığınında mı saklanıyor?
richard

Bu sadece anlamak için bir soyutlama değildir ... Eğer gerçekten sadece birden fazla iş parçacığı olarak maskeleyen ileri ve tek bir iş parçacığı olsaydı, OP doğru olurdu, ama evet, bu verilerin somut olacağını söyleyebilirim .
Yörünge

Beni aydınlat . . . peki cevap nedir?
richard

@Richard anlambilim hakkında bir tartışmaya girmek istemiyor, sadece OP'ye kavramsal olarak açıklığa kavuşturmak için cevabımı ifade etti.
Yörünge

@richard TLS nedir?
committedandroider

6

Bir iş parçacığı, yürütme kuralları ile bir bellek bağlamından (veya Tanenbaum'un onu nasıl daha iyi koyduğunu, kaynak gruplandırmasını) başka bir şey değildir. Bir yazılım yapısı. CPU'nun bir iş parçacığının ne olduğu hakkında hiçbir fikri yoktur (bazı istisnalar, bazı işlemcilerin donanım dişleri vardır), sadece talimatları yürütür.

Çekirdek, bellek ve talimat sırasını anlamlı bir şekilde yönetmek için iş parçacığı ve işlem kavramını sunar.


5

Bu bir Yahoo Cevabından alınmıştır:

Bir iş parçacığı, bir uygulamanın mimarisinden etkilenmeyen bir kodlama yapısıdır. Tek bir işlem sıklıkla birden çok iş parçacığı içerebilir. Konular aynı değişkenleri paylaştıkları için birbirleriyle doğrudan iletişim kurabilirler.

Süreçler, kendi durum bilgilerine sahip bağımsız yürütme birimleridir. Ayrıca kendi adres alanlarını kullanırlar ve yalnızca süreçler arası iletişim mekanizmaları aracılığıyla diğer süreçlerle etkileşime girebilirler.

Ancak, daha basit terimlerle iş parçacıkları farklı "görevler" gibidir. Bir şey yaparken düşünün, örneğin bir kağıda formül yazıyorsunuz. Bu bir iş parçacığı olarak düşünülebilir. Sonra başka bir iş parçacığı başka bir kağıda başka bir şey yazmak. Çoklu görev burada devreye giriyor.

Intel işlemcilerin "hiper iş parçacığı" (AMD'de var) olduğu söylenir ve birden çok "iş parçacığı" veya çoklu görevi çok daha iyi gerçekleştirmesi amaçlanır.

Bir iş parçacığının nasıl ele alındığının lojistiği konusunda emin değilim. İşlemcilerin aralarında gidip geldiklerini duyduğumu hatırlıyorum, ancak bundan% 100 emin değilim ve umarım başka biri buna cevap verebilir.


Intel işlemciler birden çok iş parçacığını nasıl daha iyi işler? Tek bir çekirdekle, aynı anda yalnızca bir iş parçacığı yürütülmelidir. İşlemcinin ileri geri gitmesine katılıyorum. Gerçekten daha iyisini yapamazsın değil mi?
committedandroider

Bazı kullanım durumları için daha iyi performans sağlayan bir optimizasyon. Hiper iş parçacığı hakkında burada okuyabilirsiniz: en.wikipedia.org/wiki/Hyper-threading
Jeremy Friesner

5

Cevap , farklı sistemler ve farklı uygulamalar arasında büyük farklılıklar gösterir , ancak en önemli kısımlar şunlardır:

  1. Bir iş parçacığının bağımsız bir yürütme iş parçacığı vardır (yani, içerikten ondan uzaklaşıp sonra geri dönebilirsiniz ve olduğu yerde çalışmaya devam edecektir).
  2. Bir iş parçacığının ömrü vardır (başka bir iş parçacığı tarafından oluşturulabilir ve başka bir iş parçacığının bitmesini bekleyebilir).
  3. Muhtemelen bir "işlemden" daha az bagaja sahiptir.

Bunun ötesinde: iş parçacıkları bir dil çalışma zamanı tarafından tek bir işlem içinde uygulanabilir, iş parçacıkları eşgüdümlü olabilir, iş parçacıkları bir iş parçacığı kitaplığı tarafından tek bir işlem içinde uygulanabilir veya iş parçacıkları bir çekirdek yapısı olabilir.

Ben en aşina olduğum Linux dahil olmak üzere birçok modern bir Unix sistemlerinde, her şey ipler - bir süreç sadece bir olan tipi ile üst hisseleri nispeten az şey (o, kendi dosya tablosunu kendi hafıza eşleştirmeleri alır yani o dişin okumalar man 2 clone, özellikle bayrakların listesi, burada gerçekten öğreticidir.


Bağlam anahtarı yalnızca işlemci bir iş parçacığından diğerine geçtiğinde mi (aynı işlemde veya başka bir işlemde olsun)?
committedandroider

-1

Bu cevaplardan herhangi biriyle gerçekten mutlu değilim, bu yüzden buraya kendim ekleyeceğim :) Bir iş parçacığı, işlemci üzerinde zamanlama için bir çekirdek soyutlamasıdır, bir iş parçacığı, işlemci zamanını yönetmeniz için ne sağlar ve çalışmaları başkalarıyla paylaşın


1
-1 İş parçacıklarının çekirdek tarafından oluşturulması gerekmez. Çekirdek düzeyinde desteğe sahip iş parçacıkları gerçekten de çekirdek tarafından zamanlanır (bir tür sistem çağrısı yayınlanır). Ancak, iş parçacığı tablosu kullanıcı alanında bulunan kullanıcı kitaplığı düzeyinde desteğe sahip iş parçacıkları da vardır.
AleksandrH

-1

Önce süreç ve evreler arasındaki farkı açıklayayım.

Bir işlem {1..N} numaralı iş parçacığına sahip olabilir. Sanal bellek ve sanal işlemci hakkında küçük bir açıklama.

Sanal bellek

Takas alanı olarak kullanılır, böylece bir işlem yürütme için birincil bellekte oturduğunu düşünür.

Sanal işlemci

Bunun dışında sanal bellekle aynı konsept işlemci içindir. Bir işlem için, işlemciyi kullanan tek şey görünecektir.

İşletim sistemi, sanal belleği ve sanal işlemciyi bir işleme ayırmaya ve işlemler arasında geçiş gerçekleştirmeye ve yürütmeye özen gösterecektir.

Bir işlemdeki tüm iş parçacıkları aynı sanal belleği paylaşır. Ancak, her iş parçacığının kendilerine ayrı sanal işlemcileri atanır, böylece ayrı ayrı yürütülebilirler.

Böylece bellek tasarrufu ve CPU'yu kendi potansiyeline kullanma.

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.