# Görev (bilgisayar bilimi)
Bilgisayar biliminde görev, bilgisayarın yaptığı işi ölçen ölçü birimidir. Alternatif olarak "işlem", "adım", "istek" veya "sorgu" şeklinde adlandırılabilir. Yandaki diyagramda tamamlanan ve tamamlanmayan görevler ile görevleri tamamlayan, "işlem havuzu" dahilindeki iş parçacıkları gösterilmiştir. Bu bağlamda "görev" terimi, hem tamamlanmayan görevler hem de görevleri tamamlayan işlem havuzu birimlerini ifade edebilir.


## Terminoloji.
Bazı işletim sistemlerinde işlem ile görev aynı şeyi ifade ederken bazılarında görev, işlem havuzu birimleri olan iş parçacığını ifade eder. Toplu işlemlerde (Batch processing) ise her bir görev, ayrı işlemleri ifade edebilir ve genellikle görevin kendisi de bir işlemdir. "Çoklu görev" terimi, esas olarak bilgisayarın aynı anda birden çok "görev" yapması anlamını taşısa da günlük konuşmada aynı anda birden fazla yazılımın çalışması anlamında da kullanılabilir.
"İş birimi" anlamında, bir işte (tek seferlik iş parçacığı anlamında) görev tek bir adıma karşılık gelebilir (adımın yürütülüşü değil, kendisi). Toplu işlemede ise tekil görevler, bir toplu iş içindeki tek bir ögeyi işlemenin tek bir adımına ya da bir toplu işin tüm ögelerini işlemenin tek bir adımına karşılık gelebilir. Çevrimiçi sistemlerde, görevler genellikle tek bir isteğe (istek-yanıt mimarisinde) veya bir sorguya (bilgi erişiminde) karşılık gelir. Bu, tek bir işleme aşamasına veya tüm sistem genelinde işlemeye karşılık gelebilir.


### Örnekler.
Java dilinde iş birimi ve işlem birimi kavramları, doğrudan iş parçacıklarıyla çalışırken birbirine karışır; ancak Executors tnımlaması ile açıkça ayırt edilebilirler:
İş parçacıklarıyla doğrudan çalıştığınızda, bir iş parçacığı hem iş birimi hem de bu işi yürüten mekanizma olarak görev yapar. Ancak yürütücü çerçevesinde, iş birimi ile yürütme mekanizması birbirinden ayrıdır. Buradaki ana birim, görev olarak adlandırılan iş birimidir. 


### IBM terminolojisi.
IBM'in bu terimi sıkça kullansa da terimin muğlaklığı göz önüne alındığında IBM terminolojisinde "görev" teriminin onlarca anlamı vardır. Bunların bazıları şu şekildedir:
  - Bir işlemdeki adımlardan birini temsil eden iş birimi.
  - Bir cihaz veya işlemle gerçekleştirilen iş birimi.
  - Bir süreç ve süreci çalıştıran prosedürler.
  - Belirli bir amaca ulaşmak üzere tanımlanmış eylem kümesi. Bir görev, belirli bir zaman çizelgesine göre bir dizi hedef üzerinde gerçekleştirilir.
  - Bir hesaplama birimi. Paralel bir işte, iki veya daha fazla eşzamanlı görev, mesaj iletimi ve paylaşımlı bellek aracılığıyla birlikte çalışır. Fiziksel veya mantıksal işlemci başına bir görev tahsis etmek yaygın olsa da, "görev" ve "işlemci" terimleri birbirinin yerine kullanılamaz.
  - Bir kullanıcı tarafından başlatılan ve yazılım tarafından gerçekleştirilen, ticari değeri olan bir etkinlik.
Z/OS'ta şu şekilde tanımlanır: 
  - "Çoklu programlama veya çoklu işlem ortamında, bir kontrol programı tarafından bir bilgisayar tarafından gerçekleştirilecek bir işin ögesi olarak ele alınan bir veya daha fazla talimat dizisi."
OS/360'tan z/OS'a kadar olan sistemlerde "görev" terimi kabaca "hafif iş (light-weight process)" ile eşdeğerdir, bir iş adımındaki görevler aynı adres alanını paylaşır. Ancak MVS/ESA'dan z/OS'a kadar bir görev veya Hizmet Talep Bloğu (SRB), erişim listesi aracılığıyla diğer adres alanlarına erişebilir.


### Linux çekirdeği.
"Görev" terimi, Linux çekirdeğinde (en dar kapsamda v2.6.13'ten v4.8'e kadar ) bir işlem birimini ifade eder ve bu birim, sistemdeki diğer görevlerle çeşitli sistem kaynaklarını paylaşabilir. Paylaşım düzeyine bağlı olarak "görev," bir iş parçacığı veya işlem anlamına gelebilir. Görevler, kullanıcının kaynak paylaşım düzeyini belirleyebildiği clone() sistem çağrısı aracılığıyla oluşturulur. 


## Tarihçe.
Bir işin parçası anlamında kullanılan görev teriminin tarihçesi 1960'ların başındaki çoklu programlamaya kadar uzanır. 1961'deki örnekte olduğu gibi:
 - YÖNLENDİR 
Bu terim, OS/360'ın tanıtılmasıyla (1964) popülerlik kazandı. Bu durumda görevler "hafif işlemler" ile tanımlanıyordu, dolayısıyla bir iş çok sayıda görevden oluşuyordu ve görevler de alt görevlerden oluşabiliyordu.
Günümüzde "görev" terimi oldukça muğlak bir biçimde kullanılmaktadır. Örneğin, Windows Görev Yöneticisi (çalışan) "işlemleri" yönetirken, geleneksel olarak "iş zamanlayıcı" olarak bilinen ve .job uzantısını kullanan Windows Görev Zamanlayıcı, gelecekte çalıştırılacak programları zamanlamak için kullanılır. Buna karşılık, "görev kuyruğu" terimi ise genellikle "iş birimi" anlamında kullanılmaktadır.