Thread, Program, Proses Dan Utas
Thread, Program, Proses Dan Utas
DISUSUN OLEH:
NAOMI CINDY HERMINA TAMPUBOLON
1184018
Kelas 1B
D4 TEHNIK INFORMATIKA
I. Program
Program adalah kode yang disimpan di komputer Anda yang dimaksudkan untuk
memenuhi tugas tertentu. Ada banyak jenis program, termasuk program yang membantu
fungsi komputer Anda dan merupakan bagian dari sistem operasi, dan program lain yang
memenuhi tugas tertentu. Program khusus tugas ini juga dikenal sebagai "aplikasi," dan
dapat mencakup program seperti pengolah kata, penelusuran web, atau mengirim email
pesan ke komputer lain.
Program biasanya disimpan pada disk atau memori non-volatile dalam bentuk
yang dapat dieksekusi oleh komputer. Mereka dibuat menggunakan bahasa pemrograman
seperti C, Lisp, Pascal, atau banyak lainnya menggunakan instruksi yang melibatkan
logika, manipulasi data dan perangkat, perulangan, dan interaksi pengguna. Hasilnya
adalah bahwa file teks dikompilasi ke dalam bentuk biner (1 dan 0) untuk dijalankan di
komputer. Jenis program lain disebut "ditafsirkan," dan alih-alih dikompilasi terlebih
dahulu untuk menjalankannya, ia ditafsirkan menjadi kode yang dapat dieksekusi pada
saat dijalankan. Beberapa bahasa pemrograman yang umum ditafsirkan, adalah Python,
PHP, JavaScript, dan Ruby.
Biner adalah bahasa asli komputer karena sirkuit listrik pada tingkat dasarnya
memiliki dua keadaan, hidup atau mati, diwakili oleh satu atau nol. Dalam sistem
penomoran yang umum kita gunakan setiap hari, basis 10, setiap posisi digit bisa apa saja
dari 0 hingga 9. Dalam basis 2 (atau biner), setiap posisi adalah 0 atau 1. (Dalam posting
blog di masa depan kita mungkin mencakup komputasi kuantum, yang melampaui
konsep komputasi hanya 1 dan 0.)
Decimal—Base 10 Binary—Base 2
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
II. Proses
Setelah program dimuat ke dalam memori komputer dalam bentuk biner.
Program pelaksana membutuhkan lebih dari sekadar kode biner yang memberi
tahu komputer apa yang harus dilakukan. Program ini membutuhkan memori dan
berbagai sumber daya sistem operasi untuk dapat berjalan. "Proses" adalah apa yang kami
sebut program yang telah dimuat ke dalam memori bersama dengan semua sumber daya
yang diperlukan untuk beroperasi. "Sistem operasi" adalah otak di belakang
mengalokasikan semua sumber daya ini, dan hadir dalam berbagai rasa seperti macOS,
iOS, Microsoft Windows, Linux, dan Android. OS menangani tugas mengelola sumber
daya yang diperlukan untuk mengubah program Anda menjadi proses yang berjalan.
Beberapa sumber daya penting yang diperlukan untuk setiap proses adalah
register, penghitung program, dan tumpukan. "Daftar" adalah area penyimpanan data
yang merupakan bagian dari prosesor komputer (CPU). Register dapat menyimpan
instruksi, alamat penyimpanan, atau jenis data lain yang dibutuhkan oleh proses.
"Penghitung program," juga disebut "penunjuk instruksi," melacak di mana komputer
berada dalam urutan programnya. "Stack" adalah struktur data yang menyimpan
informasi tentang subrutin aktif dari program komputer dan digunakan sebagai ruang
awal untuk proses tersebut. Ini dibedakan dari memori yang dialokasikan secara dinamis
ke proses yang dikenal sebagai "tumpukan."
Proses Komputer
Ada beberapa contoh satu program, dan setiap contoh program yang sedang
berjalan adalah suatu proses. Setiap proses memiliki ruang alamat memori yang terpisah,
yang berarti bahwa suatu proses berjalan secara independen dan terisolasi dari proses
lain. Itu tidak dapat secara langsung mengakses data bersama dalam proses lain. Beralih
dari satu proses ke proses lainnya membutuhkan waktu (relatif) untuk menyimpan dan
memuat register, peta memori, dan sumber daya lainnya.
Kemandirian proses ini sangat berharga karena sistem operasi mencoba merusak
atau menyebabkan malapetaka dengan proses lain. Tidak diragukan lagi ada situasi di
mana aplikasi pada komputer membeku atau memiliki masalah dan dapat keluar dari
program tanpa mempengaruhi yang lain.
III. Thread
Thread adalah unit eksekusi dalam suatu proses. Suatu proses dapat memiliki
mana saja dari hanya satu utas ke banyak utas.
Proses vs. Thread
Ketika suatu proses dimulai, itu diberikan memori dan sumber daya. Setiap utas
sedang dalam proses berbagi memori dan sumber daya itu. Dalam proses single-threaded,
proses tersebut berisi satu utas. Proses dan utasnya satu dan sama, dan hanya ada satu hal
yang terjadi.
Dalam proses multithreaded, proses tersebut berisi lebih dari satu utas, dan proses
mencapai sejumlah hal pada saat yang sama (secara teknis, kadang-kadang hampir pada
saat yang sama).
Process Thread
Proses adalah operasi kelas berat Proses adalah operasi kelas berat
Thread adalah operasi yang lebih
ringan
Setiap proses memiliki ruang Setiap proses memiliki ruang memori
memori sendiri sendiri Threads menggunakan
memori dari proses yang dimilikinya
Komunikasi antar proses lambat Komunikasi antar proses yang lambat
karena proses memiliki alamat Karena proses memiliki alamat
memori yang berbeda memori yang berbeda Komunikasi
antar-thread dapat lebih cepat
daripada komunikasi antar-proses
karena utas dari proses yang sama
berbagi memori dengan proses yang
mereka miliki
Pergantian konteks antar proses Pergantian konteks antar proses lebih
lebih mahal mahal Pergantian konteks antara utas
dari proses yang sama lebih murah
Memproses tidak membagikan Memproses tidak membagikan
memori dengan proses lain memori dengan proses lain Thread
berbagi memori dengan utas lain dari
proses yang sama
Thread dan proses tidak selalu (bergantung pada) berjalan pada saat yang sama.
Pada sistem dengan banyak prosesor atau inti CPU (seperti biasanya dengan prosesor
modern), banyak proses atau utas dapat dijalankan secara paralel. Pada satu prosesor,
meskipun, tidak mungkin untuk memiliki proses atau utas benar-benar mengeksekusi
pada saat yang sama. Dalam hal ini, CPU dibagi antara proses yang berjalan atau utas
menggunakan algoritma penjadwalan yang membagi waktu CPU dan menghasilkan ilusi
eksekusi paralel. Waktu yang diberikan untuk setiap tugas disebut "irisan waktu." Bolak-
balik antar tugas terjadi begitu cepat sehingga biasanya tidak terlihat. Istilah paralelisme
(eksekusi simultan asli) dan konkurensi (interleaving proses tepat waktu untuk
memberikan tampilan eksekusi simultan), membedakan antara dua jenis operasi simultan
nyata atau perkiraan.