logo

Süreç Vs. Konu | Süreç ve Konu Arasındaki Fark

'Süreç ve iş parçacığı arasındaki fark' teknik röportajlarda yaygın olarak sorulan sorulardan biridir. Hem süreçler hem de iş parçacıkları birbiriyle ilişkilidir ve çok benzerdir, dolayısıyla ikisi arasındaki farkları anlamakta kafa karışıklığı yaratır. İşlem ve iş parçacığı bağımsız bir yürütme dizisidir, ancak her ikisi de, işlemlerin farklı bellek alanlarında yürütüleceği, aynı işlemin iş parçacıklarının ise paylaşılan bellek alanında yürütüleceği şekilde farklılaşır.

Bu konuda, süreçlerin ve iş parçacıklarının kısa tanıtımını ve ikisi arasındaki diğer farkların neler olduğunu anlayacağız.

Süreç Vs. İplik

Süreç Nedir?

Süreç, yürütülmekte olan bir programın örneğidir. Bir programı çalıştırdığımızda doğrudan çalışmaz. Programı yürütmek için gereken tüm adımları takip etmek biraz zaman alır ve bu yürütme adımlarını takip etmek bir süreç olarak bilinir.

dize java içerir

Bir süreç aynı anda birden fazla görevi gerçekleştirmek için başka süreçler yaratabilir; oluşturulan süreçler olarak bilinir klon veya alt süreç ve ana süreç şu şekilde bilinir: ana süreç . Her süreç kendi hafıza alanını içerir ve bunu diğer süreçlerle paylaşmaz. Aktif varlık olarak bilinir. Tipik bir süreç bellekte aşağıdaki biçimde kalır.

Süreç Vs. İplik

İşletim sistemindeki bir işlem aşağıdaki durumların herhangi birinde kalabilir:

    YENİ: Yeni bir süreç yaratılıyor.HAZIR: Bir süreç hazırdır ve bir işlemciye atanmayı beklemektedir.KOŞMA: Program yürütülüyor.BEKLEMEK: Bir olayın gerçekleşmesini veya gerçekleşmesini beklemek.SONLANDIRILMIŞ: Yürütme tamamlandı.

Süreçler nasıl çalışır?

Programı çalıştırmaya başladığımızda işlemci onu işlemeye başlar. Aşağıdaki adımları alır:

  • Öncelikle program çeviriden sonra ikili kod olarak bilgisayarın belleğine yüklenir.
  • Bir programın çalıştırılması için belleğe ve diğer işletim sistemi kaynaklarına ihtiyaç vardır. Kayıtlar, program sayacı ve yığın gibi kaynaklar ve bu kaynaklar işletim sistemi tarafından sağlanır.
  • Bir kayıtta bir talimat, bir depolama adresi veya sürecin gerektirdiği diğer veriler bulunabilir.
  • Program sayacı program sırasının takibini sağlar.
  • Yığın, bir bilgisayar programının aktif alt yordamları hakkında bilgi içerir.
  • Bir program, onun farklı örneklerine sahip olabilir ve çalışan programın her bir örneği, bireysel süreç olarak bilinir.

Sürecin Özellikleri

  • Her süreç oluşturduğumuzda, işletim sistemine her süreç için ayrı bir sistem çağrısı yapmamız gerekir. çatal () işlevi süreci oluşturur.
  • Her süreç kendi adresinde veya hafıza alanında bulunur.
  • Her süreç bağımsızdır ve işletim sistemi tarafından yalıtılmış bir süreç olarak ele alınır.
  • Süreçlerin birbirleriyle iletişim kurabilmesi için IPC'ye (İşlemler Arası İletişim) ihtiyacı vardır.
  • İşlemler arasında uygun bir senkronizasyon gerekli değildir.

Konu Nedir?

Bir iş parçacığı, bir işlemin alt kümesidir ve aynı zamanda hafif işlem olarak da bilinir. Bir prosesin birden fazla iş parçacığı olabilir ve bu iş parçacıkları zamanlayıcı tarafından bağımsız olarak yönetilir. Bir süreçteki tüm iş parçacıkları birbiriyle ilişkilidir. Konuların bazı ortak bilgileri vardır: veri bölümü, kod bölümü, dosyalar vb., bu, akran konu dizileriyle paylaşılır. Ancak kendi yazmaçlarını, yığınını ve sayacını içerir.

Süreç Vs. İplik

İplik nasıl çalışır?

Bir iş parçacığının bir alt işlem veya bir işlem içindeki yürütme birimi olduğunu tartıştığımız gibi. Bir işlem, tek bir iş parçacığından birden çok iş parçacığına kadar içerebilir. Bir iş parçacığı şu şekilde çalışır:

  • Bir işlem başladığında, işletim sistemi belleği ve kaynakları ona atar. Bir işlem içindeki her iş parçacığı yalnızca o işlemin belleğini ve kaynaklarını paylaşır.
  • Konular esas olarak bir uygulamanın işlenmesini geliştirmek için kullanılır. Gerçekte, bir seferde yalnızca tek bir iş parçacığı yürütülür, ancak iş parçacıkları arasındaki hızlı içerik değişimi nedeniyle iş parçacıklarının paralel çalıştığı yanılsamasını verir.
  • Bir işlemde tek bir iş parçacığı yürütülürse buna denir. tek iş parçacıklı Ve eğer birden fazla iş parçacığı aynı anda yürütülürse, buna şu ad verilir: çoklu iş parçacığı.

Konu Türleri

İki tür iş parçacığı vardır:

1. Kullanıcı Seviyesi Konusu

Adından da anlaşılacağı gibi, kullanıcı düzeyindeki iş parçacıkları yalnızca kullanıcılar tarafından yönetilir ve çekirdekte bu bilgilere yer yoktur.

Bunlar daha hızlıdır, oluşturulması ve yönetilmesi kolaydır.

Çekirdek tüm bu iş parçacıklarını tek bir süreç olarak alır ve bunları yalnızca tek bir süreç olarak ele alır.

Kullanıcı düzeyindeki iş parçacıkları, sistem çağrıları tarafından değil, kullanıcı düzeyindeki kitaplıklar tarafından uygulanır.

2. Çekirdek Düzeyinde Konu

java ile bir dosya nasıl açılır

Çekirdek düzeyindeki iş parçacıkları İşletim sistemi tarafından işlenir ve çekirdeği tarafından yönetilir. Bu iş parçacıkları kullanıcı düzeyindeki iş parçacıklarından daha yavaştır çünkü bağlam bilgileri çekirdek tarafından yönetilir. Çekirdek düzeyinde bir iş parçacığı oluşturmak ve uygulamak için bir sistem çağrısı yapmamız gerekir.

Konunun Özellikleri

  • İş parçacıkları, bir işlem içindeki eş iş parçacıklarıyla verileri, belleği, kaynakları, dosyaları vb. paylaşır.
  • Bir sistem çağrısı birden fazla iş parçacığı oluşturma kapasitesine sahiptir.
  • Her iş parçacığının kendi yığını ve kaydı vardır.
  • Konular aynı adres alanını paylaştıkları için birbirleriyle doğrudan iletişim kurabilirler.
  • Beklenmeyen senaryolardan kaçınmak için iş parçacıklarının senkronize edilmesi gerekir.

Süreç ve Konu Arasındaki Temel Farklılıklar

  • Bir süreç bağımsızdır ve başka bir sürecin içinde yer almaz, oysa tüm iş parçacıkları mantıksal olarak bir sürecin içinde yer alır.
  • Süreçler ağır ağırlığa sahiptir, oysa iş parçacıkları hafiftir.
  • Bir süreç, kendi belleğini ve diğer kaynaklarını içerdiği için ayrı ayrı var olabilirken, bir iş parçacığının kendi bireysel varlığı olamaz.
  • İşlemler arasında uygun bir senkronizasyon gerekli değildir. Bunun aksine, beklenmeyen senaryolardan kaçınmak için iş parçacıklarının senkronize edilmesi gerekir.
  • Süreçler birbirleriyle yalnızca süreçler arası iletişimi kullanarak iletişim kurabilir; Bunun aksine, iş parçacıkları aynı adres alanını paylaştıklarından birbirleriyle doğrudan iletişim kurabilirler.

İşlem ve Konu Arasındaki Fark Tablosu

İşlem İplik
İşlem, yürütülen veya işlenen bir programın örneğidir. İş parçacığı, zamanlayıcı tarafından bağımsız olarak yönetilen bir işlemin veya hafif bir işlemin bir bölümüdür.
Süreçler birbirinden bağımsızdır ve dolayısıyla bir belleği veya diğer kaynakları paylaşmazlar. Konular birbirine bağımlıdır ve hafızayı paylaşırlar.
Her süreç işletim sistemi tarafından yeni bir süreç olarak ele alınır. İşletim sistemi tüm kullanıcı düzeyindeki iş parçacıklarını tek bir işlem olarak alır.
Bir süreç işletim sistemi tarafından engellenirse diğer süreç çalışmaya devam edebilir. Kullanıcı düzeyindeki herhangi bir iş parçacığı engellenirse, işletim sistemi bunların hepsini tek bir işlem olarak aldığından, eş iş parçacıklarının tümü de engellenir.
İki işlem arasında bağlam geçişi, iş parçacığına kıyasla ağır olduğundan çok zaman alır. Çok hafif oldukları için iş parçacıkları arasında bağlam geçişi hızlıdır.
Her sürecin veri bölümü ve kod bölümü diğerinden bağımsızdır. İş parçacıkları veri segmentini ve kod segmentini eş iş parçacıklarıyla paylaşır; dolayısıyla diğer konular için de aynıdır.
İşletim sisteminin bir işlemi sonlandırması daha fazla zaman alır. Konular çok kısa sürede sonlandırılabilir.
Her yeni süreç tüm kaynakları gerektirdiğinden, yeni süreç oluşturmak daha fazla zaman alır. Bir iş parçacığının oluşturulması için daha az zamana ihtiyaç vardır.