Selasa, 18 Januari 2011

Perbedaan istilah Multiprogramming, Multiprocessing,MultiTasking, Time Sharing

Multi-programming adalah salah satu teknik penjadwalan dimana tugas (task) yang sedang berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar (external event), misalnya membaca data dari disket/CD/dsb, atau sampai komputer memaksa untuk menukar tugas yang sedang berjalan dengan tugas lainnya. Sistem operasi yang yang menggunakan multi-program sebagai scheduler-nya bertujuan untuk memaksimalkan penggunaanCPU.

Pada masa-masa awal dunia perkomputeran, CPU cukup mahal dan periherals sangat lamban. Saat komputer menjalankan sebuah program yang membutuhkan akses ke peripheral, CPU harus menghentikan instruksi-instruksi program lainnya selama peripheral memproses data. Hal ini dianggap sangat tidak efisien.

Usaha pertama untuk membuat sistem operasi berbasis multi-program dilakukan pada tahun 1960an. Beberapa program yang berlainan di dalam batch di-load ke memori komputer, dan program yang pertama akan dijalankan. Saat program tersebut mencapai instruksi untuk menunggu akses ke peripheral, konteks dari program ini disimpan, dan program berikutnya di memori mulai dijalankan. Proses ini berulang terus sampai semua program selesai dijalankan.

Multi-program tidak memberi garansi bahwa program-program akan berjalan bersamaan. Bisa saja program pertama yang dijalankan tidak membutuhkan akses ke peripheral sehingga program tersebut berjalan terus berjam-jam. Namun demikian multiprogramming cukup mengurangi waktu user untuk menunggu karena user tinggal memasukan sederetan program ke komputer dan kembali beberapa jam kemudian untuk melihat hasilnya.

Primary Control Program (PCP) padaOS/360 versi awal menggunakan sistem multiprogramming seperti yang disebut barusan, namun kemudian diganti pada tahun berikutnya oleh MFT dengan sistem multi-program yang membatasi waktu proses bagi CPU sebelum mengganti dengan proses lainnya.

Multiprocessing adalah istilah teknologi informasi dalam bahasa inggris yang merujuk kepada kemampuan pemrosesan komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan menggunakan duaCPU atau lebih dalam sebuah sistem komput. Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosessor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.

Multiprocessing juga kadang merujuk kepada kemampuan eksekusi terhadap beberapa proses perangkat lunak dalam sebuah sistem secara serentak, jika dibandingkan dengan sebuah proses dalam satu waktu, meski istilah Multi-programming lebih sesuai untuk konsep ini. Multiprocessing sering diimplementasikan dalam perangkat keras (dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali.

Jenis-jenis multiprocessing

Multiprocessing dapat dibagi ke dalam beberapa kelas, yakni:

  • Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam
    • Symmetric Multiprocessing (ASMP)
    • Symmetric Multiprocessing(SMP)
    • Non-uniform memory access (NUMA) multiprocessing
    • Clustering
  • Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam (lihat Taksonomi Flynn )
    • SISD(Single Instruction on Single Data Stream)
    • SIMD(Single Instruction on Multiple Data Stream)
    • MISD (Multiple Instruction on Single Data Stream)
    • MIMD (Multiple Instruction on Multiple Data Stream)
  • Berdasarkan kedekatan antar prosesor, dapat dibagi ke dalam
    • Loosely coupled
    • Thigtly coupled

Multitasking adalah istilah teknologi informasi dalam bahasa inggris yang mengacu kepada sebuah metode dimana banyak pekerjaan atau dikenal juga sebagai proses diolah dengan menggunakan sumberdaya CPU yang sama. Dalam kasus sebuah komputer dengan prosesor tunggal, hanya satu instruksi yang dapat bekerja dalam satu waktu, berarti bahwa CPU tersebut secara aktif mengolah instruksi untuk satu pekerjaan tersebut. Multitasking memecahkan masalah ini dengan memjadwalkan pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang lain menunggu untuk diolah dapat dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan satu ke pekerjaan yang lain disebut contxt switch. Ketika context switch terjadi dengan sangat cepat — kondisi ini cukup untuk memberikan ilusipengolaan paralell. Bahkan dalam komputer yang memiliki lebih dari satu CPU (disebut multi-prosesor), multitasking memperbolehkan lebih banyak pekerjaan dijalankan dibanding dengan jumlah CPU yang tersedia.

Sistem operasi komputer dapat juga mengadopsi berbagai macam strategi penjdwalan, yang secara garis besar dapat dikategorikan sebagai berikut:

  • Dalam sistemmulti program, pekerjaan yang sedang diolah terus berjalan hingga membutuhkan suatu operasi yang memerlukan interaksi dari luar. (e.g. membaca dari tape). Sistem multi-program didesain untuk memaksimalkan penggunaan CPU.
  • Dalam sistemtime sharing , pekerjaan yang sedang diolah diharuskan melepaskan kerja CPU, baik secara sukarela atau dari interaksi luar, seperti interupsi-perangkat-keras. Sistem Time-sharing didesain untuk memperbolehkan beberapa program seolah diproses secara bersamaan.
  • Dalam sistem real-time, beberapa program yang sedang menunggu dijamin untuk mendapatkan pengolahan dari CPU ketika interaksi luar terjadi. Sistem real-time didesain untuk melakukan kontrol mekanik seperti robot-robot industri, yang memerlukan ketepatan pemrosesan.

Time sharing

Adalah inovasi yang memungkinkan komputer komputer besar memproses banyak tugas secara simultan, dengan memberikan potongan waktu pada masing-masing tugas, dan beralih dari satu tugas ketugas lainnya dengan cepat.

Tidak ada komentar:

Posting Komentar