Pendahuluan
Sistem operasi (Operating System atau OS) merupakan perangkat lunak utama yang mengelola sumber daya komputer, seperti prosesor (CPU), memori utama (RAM), perangkat penyimpanan, dan perangkat input/output. Salah satu tugas penting sistem operasi adalah mengelola proses, yaitu program yang sedang dieksekusi oleh komputer.
Ketika pengguna membuka aplikasi peramban, menjalankan program pengolah kata, memutar musik, atau menyalin berkas, sistem operasi mengelola proses-proses yang terlibat dalam aktivitas tersebut. Bahkan ketika beberapa aplikasi terlihat berjalan secara bersamaan, sistem operasi tetap harus mengatur penggunaan CPU, memori, dan perangkat lainnya agar setiap proses dapat bekerja secara teratur.
Untuk memahami cara kerja sistem operasi, terdapat empat konsep utama yang perlu dipelajari, yaitu proses, program, siklus hidup proses, dan Process Control Block (PCB).
4.1 Proses (Process)
A. Pengertian proses
Proses adalah program yang sedang dieksekusi oleh komputer, beserta keadaan dan sumber daya yang diperlukan selama pelaksanaannya.
Program yang tersimpan dalam berkas belum tentu merupakan proses yang sedang berjalan. Ketika program dimuat dan mulai dieksekusi, sistem operasi membentuk serta mengelola proses yang berkaitan dengan program tersebut.
Sebagai contoh, sebuah aplikasi kalkulator yang tersimpan di komputer merupakan program. Ketika pengguna membuka kalkulator, sistem operasi menjalankan program tersebut sebagai proses. Selama kalkulator digunakan, proses itu dapat menerima masukan, melakukan perhitungan, dan menampilkan hasil.
Satu program juga dapat menghasilkan beberapa proses. Misalnya, ketika pengguna membuka beberapa jendela peramban, sistem operasi dan peramban dapat mengelola sejumlah proses untuk menangani tab, ekstensi, atau tugas tertentu. Jumlah dan pembagian prosesnya bergantung pada rancangan aplikasi.
B. Perbedaan program dan proses
| Aspek | Program | Proses |
|---|---|---|
| Pengertian | Kumpulan instruksi yang tersimpan | Program yang sedang dieksekusi |
| Sifat | Pasif ketika hanya tersimpan | Aktif selama pelaksanaan |
| Lokasi | Dapat tersimpan di SSD atau HDD | Menggunakan sumber daya saat dijalankan |
| Informasi | Kode dan data program | Keadaan eksekusi, memori, register, dan sumber daya |
| Contoh | Berkas kalkulator.exe | Kalkulator yang sedang berjalan |
Contoh nyata: berkas aplikasi pengolah kata yang tersimpan di SSD merupakan program. Ketika aplikasi tersebut dibuka, sistem operasi menjalankan proses yang menggunakan CPU dan RAM untuk menerima ketikan, mengolah dokumen, serta menampilkan hasilnya.
C. Bagian-bagian proses di dalam memori
Ketika program dijalankan, ruang alamat proses secara konseptual dapat mencakup beberapa bagian, yaitu text, data, heap, dan stack. Susunan dan pengelolaan memori sebenarnya dapat berbeda bergantung pada sistem operasi, arsitektur prosesor, bahasa pemrograman, serta mekanisme pengelolaan memori yang digunakan.
<text><strong>Gambar 1. Ilustrasi sederhana bagian-bagian memori proses</strong></text>
<box border radius="lg" padding={3} gap={2}> <box background="#DCEBFF" theme="light" radius="md" padding={3} align="center" gap={1}> **TEXT / KODE PROGRAM** <text size="sm" textAlign="center">Instruksi mesin yang akan dijalankan CPU</text> </box> <box background="#E1F5E8" theme="light" radius="md" padding={3} align="center" gap={1}> **DATA** <text size="sm" textAlign="center">Variabel global dan variabel statis</text> </box> <box background="#FFF0D9" theme="light" radius="md" padding={3} align="center" gap={1}> **HEAP** <text size="sm" textAlign="center">Memori untuk alokasi dinamis saat program berjalan</text> </box> <box background="#F1E5FF" theme="light" radius="md" padding={3} align="center" gap={1}> **STACK** <text size="sm" textAlign="center">Parameter fungsi, variabel lokal, dan informasi pemanggilan fungsi</text> </box> <text color="secondary" size="xs">Catatan: Diagram ini menunjukkan konsep umum, bukan urutan alamat memori yang berlaku untuk semua sistem operasi.</text> </box>
Berikut penjelasan masing-masing bagian.
1. Text (kode program)
Bagian text menyimpan instruksi program yang telah diterjemahkan ke dalam bentuk yang dapat dieksekusi prosesor. Instruksi tersebut menentukan operasi yang dilakukan program.
Contohnya, dalam aplikasi kalkulator terdapat instruksi untuk membaca angka, melakukan penjumlahan, dan menampilkan hasil. Kode program ini tidak sama dengan Program Counter atau register CPU. Program Counter adalah register yang menunjukkan lokasi instruksi berikutnya yang akan dieksekusi.
2. Data
Bagian data berkaitan dengan variabel global dan variabel statis yang memiliki masa hidup tertentu selama program berjalan. Dalam implementasi nyata, data yang telah diinisialisasi dan data yang belum diinisialisasi dapat ditempatkan pada segmen yang berbeda.
Contoh:
int jumlah_pengguna = 10;
int main(void) {
return 0;
}Variabel global jumlah_pengguna memiliki nilai awal 10. Variabel tersebut merupakan contoh data yang dapat disimpan dalam bagian data program.
3. Heap
Heap merupakan area memori yang digunakan untuk alokasi dinamis, yaitu ketika program meminta memori selama pelaksanaan.
Contohnya, aplikasi pengolah foto membuka gambar berukuran besar dan membutuhkan ruang untuk menyimpan data piksel yang sedang diolah. Memori dapat dialokasikan secara dinamis sesuai kebutuhan aplikasi.
Dalam bahasa C, alokasi dinamis dapat dilakukan menggunakan malloc() dan dilepaskan menggunakan free().
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *angka = malloc(sizeof(int));
if (angka == NULL) {
printf("Alokasi memori gagal.\n");
return 1;
}
*angka = 100;
printf("Nilai: %d\n", *angka);
free(angka);
return 0;
}Program tersebut meminta memori untuk sebuah bilangan bulat, menyimpan nilai 100, menampilkan nilai itu, kemudian melepaskan memori yang telah digunakan.
4. Stack
Stack digunakan untuk menyimpan informasi yang berkaitan dengan pemanggilan fungsi, termasuk parameter, variabel lokal tertentu, dan informasi yang diperlukan untuk kembali dari pemanggilan fungsi.
Contoh:
int tambah(int a, int b) {
int hasil = a + b;
return hasil;
}Ketika fungsi tambah() dipanggil, parameter a dan b, serta variabel lokal hasil, memerlukan penyimpanan selama pelaksanaan fungsi. Implementasi sebenarnya bergantung pada kompiler dan arsitektur, sehingga tidak semua variabel harus selalu berada di stack.
Contoh nyata penggunaan keempat bagian memori
Ketika aplikasi pengolah kata dibuka, kode instruksinya tersedia untuk dieksekusi, variabel global atau statis berada pada area data yang sesuai, objek dan struktur yang dibuat secara dinamis dapat menggunakan heap, dan informasi pemanggilan fungsi dapat menggunakan stack. CPU kemudian mengeksekusi instruksi aplikasi sambil sistem operasi mengatur sumber daya yang diperlukan.
4.2 Program
A. Pengertian program
Program adalah kumpulan instruksi yang dirancang untuk melakukan tugas tertentu ketika dijalankan oleh komputer. Program dapat terdiri atas beberapa baris kode sederhana hingga jutaan baris kode dalam aplikasi berskala besar.
Program umumnya dibuat menggunakan bahasa pemrograman, seperti C, C++, Java, Python, dan JavaScript. Kode sumber kemudian diproses atau diinterpretasikan sesuai mekanisme bahasa dan lingkungan eksekusinya.
B. Contoh program sederhana dalam bahasa C
Berikut contoh program untuk menampilkan tulisan “Halo, Dunia!” pada layar:
#include <stdio.h>
int main(void) {
printf("Halo, Dunia!\n");
return 0;
}Penjelasan kode:
#include <stdio.h>menyertakan deklarasi fungsi input/output standar yang digunakan program.int main(void)merupakan fungsi utama tempat pelaksanaan program C dimulai.printf("Halo, Dunia!\n");menampilkan teks ke keluaran standar.return 0;mengakhiri fungsi utama dengan status yang lazim digunakan untuk menunjukkan keberhasilan.
Hasil keluaran:
Halo, Dunia!Saat kode tersebut baru tersimpan sebagai berkas sumber, kode itu belum berarti sedang dieksekusi. Setelah program dikompilasi sesuai kebutuhan, kemudian dijalankan, sistem operasi mengelola proses yang melaksanakan instruksi tersebut.
C. Perbedaan program, proses, algoritma, dan perangkat lunak
Keempat istilah ini saling berkaitan, tetapi memiliki arti yang berbeda.
Algoritma adalah urutan langkah logis untuk menyelesaikan masalah. Contohnya, langkah menjumlahkan dua bilangan.
Program adalah implementasi instruksi yang dibuat agar komputer dapat melaksanakan tugas.
Proses adalah program yang sedang dieksekusi beserta keadaan dan sumber daya yang terkait.
Perangkat lunak (software) adalah istilah yang lebih luas, yang dapat mencakup program, pustaka, data, konfigurasi, dan komponen pendukung lainnya.
Sebagai ilustrasi, algoritma penjumlahan dapat ditulis dalam bahasa C menjadi sebuah program. Ketika program dijalankan, terbentuk proses yang menggunakan sumber daya komputer untuk menghitung dan menampilkan hasil.
4.3 Siklus Hidup Proses (Process Life Cycle)
A. Pengertian siklus hidup proses
Siklus hidup proses adalah rangkaian keadaan yang dilalui proses sejak dibuat hingga selesai atau dihentikan. Sistem operasi menggunakan informasi keadaan tersebut untuk menentukan apakah suatu proses siap dijalankan, sedang menggunakan CPU, atau menunggu suatu peristiwa.
Dalam model dasar yang umum digunakan untuk pembelajaran, proses mempunyai lima keadaan:
Start / New — proses baru dibuat.
Ready — proses siap berjalan dan menunggu giliran CPU.
Running — instruksi proses sedang dieksekusi CPU.
Waiting / Blocked — proses menunggu peristiwa atau operasi tertentu.
Terminated / Exit — proses telah selesai atau dihentikan.
Istilah dan jumlah keadaan dapat berbeda pada sistem operasi nyata. Beberapa sistem juga mengenal keadaan tambahan, misalnya proses yang ditangguhkan.
B. Penjelasan setiap keadaan
1. Start / New (proses baru)
Keadaan ini terjadi ketika proses dibuat. Sistem operasi menyiapkan informasi pengelolaan proses dan sumber daya yang dibutuhkan.
Contoh: pengguna mengklik ikon aplikasi kalkulator. Sistem operasi mulai membuat proses yang diperlukan untuk menjalankan aplikasi.
2. Ready (siap)
Proses telah siap dieksekusi, tetapi belum memperoleh giliran CPU. Proses dapat berada dalam antrean penjadwalan sampai prosesor tersedia.
Contoh: aplikasi musik dan aplikasi pengolah kata sama-sama siap berjalan. Ketika CPU sedang menangani pekerjaan lain, salah satu proses menunggu giliran.
3. Running (berjalan)
CPU sedang mengeksekusi instruksi dari proses tersebut. Pada sistem dengan satu inti CPU, hanya satu proses yang dapat menggunakan inti itu untuk mengeksekusi instruksi pada satu waktu. Pada prosesor multicore, beberapa proses atau thread dapat berjalan secara paralel pada inti yang berbeda.
Contoh: aplikasi kalkulator sedang menjalankan operasi untuk menghitung 125 × 8.
4. Waiting / Blocked (menunggu)
Proses tidak dapat melanjutkan pekerjaan tertentu sampai suatu peristiwa terjadi, misalnya data dari perangkat input tersedia atau operasi pembacaan berkas selesai.
Contoh: aplikasi sedang membaca data dari SSD. Selama menunggu operasi tersebut, proses dapat berada dalam keadaan menunggu sehingga CPU dapat menjalankan proses lain.
5. Terminated / Exit (selesai)
Proses telah menyelesaikan tugasnya atau dihentikan. Sistem operasi kemudian membersihkan sumber daya dan informasi proses sesuai mekanisme yang digunakan.
Contoh: setelah program menampilkan “Halo, Dunia!”, program mencapai akhir pelaksanaannya dan prosesnya berakhir secara normal.
C. Diagram transisi keadaan proses
<box border radius="lg" padding={3} gap={2} align="center"> <box background="#E3EEFF" theme="light" radius="md" padding={3} width="70%" align="center"> **NEW / START** <text size="sm">Proses dibuat</text> </box> <icon name="arrow-down" size="xl" /> <box background="#DFF5E6" theme="light" radius="md" padding={3} width="70%" align="center"> **READY** <text size="sm">Menunggu giliran CPU</text> </box> <row align="center" justify="center" gap={3}> <icon name="arrow-up-down" size="xl" /> <text size="xs" color="secondary">Penjadwalan / interupsi</text> </row> <box background="#FFF0D8" theme="light" radius="md" padding={3} width="70%" align="center"> **RUNNING** <text size="sm">Instruksi dieksekusi CPU</text> </box> <row align="center" justify="center" gap={3}> <icon name="arrow-down-up" size="xl" /> <text size="xs" color="secondary">Menunggu I/O / peristiwa selesai</text> </row> <box background="#F0E6FF" theme="light" radius="md" padding={3} width="70%" align="center"> **WAITING / BLOCKED** <text size="sm">Menunggu peristiwa atau operasi</text> </box> <text size="xs" color="secondary" textAlign="center">Setelah peristiwa yang ditunggu selesai, proses umumnya kembali ke Ready, bukan langsung ke Running.</text> <divider /> <box background="#E6E6E6" theme="light" radius="md" padding={3} width="70%" align="center"> **TERMINATED / EXIT** <text size="sm">Proses selesai atau dihentikan</text> </box> <text size="xs" color="secondary">Diagram konseptual: panah menggambarkan transisi yang umum. Peralihan Ready ke Running dilakukan melalui penjadwalan CPU; proses Running juga dapat kembali ke Ready saat jatah CPU berakhir atau terjadi preemption.</text> </box>
D. Contoh nyata siklus hidup proses
Perhatikan proses ketika pengguna membuka aplikasi pengolah kata, mengetik dokumen, menyimpan berkas, lalu menutup aplikasi.
| Tahap | Keadaan proses | Peristiwa |
|---|---|---|
| 1 | New | Pengguna membuka aplikasi dan proses dibuat. |
| 2 | Ready | Proses siap dijalankan, tetapi menunggu giliran CPU. |
| 3 | Running | Aplikasi mulai menampilkan antarmuka. |
| 4 | Waiting | Aplikasi menunggu operasi penyimpanan selesai atau menunggu masukan tertentu. |
| 5 | Ready | Operasi yang ditunggu selesai dan proses siap menggunakan CPU lagi. |
| 6 | Running | Pengguna mengetik, aplikasi memproses masukan, dan dokumen diperbarui. |
| 7 | Terminated | Pengguna menutup aplikasi dan proses berakhir. |
Urutan tersebut merupakan ilustrasi untuk membantu memahami konsep. Dalam sistem nyata, proses dapat berpindah berkali-kali antara Ready, Running, dan Waiting sebelum akhirnya berakhir.
E. Mengapa siklus hidup proses penting?
Pengelolaan keadaan proses membantu sistem operasi:
Membagi waktu CPU secara teratur di antara proses yang siap berjalan.
Menghindari pemborosan waktu CPU ketika proses menunggu perangkat I/O.
Menangani banyak aplikasi yang aktif secara bersamaan.
Melacak kemajuan proses dan menentukan pekerjaan yang perlu dijalankan berikutnya.
Mengakhiri proses dan membersihkan sumber daya yang tidak lagi diperlukan.
4.4 Blok Kontrol Proses (Process Control Block / PCB)
A. Pengertian PCB
Process Control Block atau PCB adalah struktur data yang dikelola sistem operasi untuk menyimpan informasi penting tentang suatu proses. PCB membantu sistem operasi mengenali proses, mengetahui keadaannya, menyimpan konteks eksekusi, serta mengatur penjadwalan dan penggunaan sumber daya.
Setiap proses umumnya memiliki identitas unik yang disebut Process ID (PID) selama proses tersebut hidup. Sistem operasi menggunakan informasi pengelolaan proses, termasuk PCB atau struktur internal yang setara, untuk mengatur pelaksanaan proses.
PCB tidak harus memiliki susunan yang sama pada semua sistem operasi. Informasi yang disimpan bergantung pada rancangan sistem operasi dan arsitektur perangkat keras.
B. Informasi yang terdapat dalam PCB
1. Process State (keadaan proses)
Mencatat keadaan proses, misalnya Ready, Running, Waiting, atau Terminated, sesuai model dan implementasi sistem.
Contoh: proses yang sedang menunggu pembacaan berkas dapat ditandai sebagai menunggu.
2. Process Privileges (hak akses proses)
Berkaitan dengan hak dan izin yang menentukan sumber daya apa yang dapat diakses oleh proses. Informasi ini mendukung mekanisme perlindungan sistem.
Contoh: aplikasi biasa tidak seharusnya dapat mengubah berkas sistem yang dilindungi tanpa hak yang sesuai.
3. Process ID (PID)
Merupakan identitas numerik yang digunakan untuk membedakan suatu proses dari proses lainnya pada sistem operasi.
Contoh: pada Linux, pengguna dapat menggunakan perintah ps untuk melihat daftar proses dan PID-nya.
ps -efPada Windows, daftar proses dapat dilihat melalui Task Manager atau menggunakan perintah:
Get-ProcessNomor PID yang terlihat bergantung pada kondisi komputer dan dapat berubah ketika proses baru dibuat.
4. Pointer atau informasi hubungan proses
Informasi ini dapat digunakan untuk menghubungkan proses dengan struktur lain yang dikelola sistem operasi, misalnya proses induk atau antrean penjadwalan. Detail implementasinya tidak selalu berupa satu pointer yang sama pada setiap OS.
Contoh: sebuah aplikasi dapat membuat proses anak untuk menjalankan pekerjaan tambahan.
5. Program Counter
Menyimpan atau merepresentasikan alamat instruksi berikutnya yang perlu dieksekusi ketika konteks proses dipulihkan. Informasi ini penting saat sistem operasi beralih dari satu proses ke proses lain.
Contoh: ketika proses dihentikan sementara agar proses lain dapat menggunakan CPU, konteks eksekusinya perlu dipertahankan supaya dapat dilanjutkan.
6. CPU Registers (register CPU)
Berisi nilai register yang perlu dipertahankan untuk melanjutkan eksekusi proses, seperti register umum, stack pointer, dan register status yang relevan.
Contoh: nilai sementara hasil perhitungan harus dipulihkan dengan benar agar proses melanjutkan pekerjaan tanpa kehilangan keadaan eksekusinya.
7. CPU Scheduling Information (informasi penjadwalan CPU)
Mencakup informasi yang digunakan dalam penjadwalan, misalnya prioritas proses atau data lain yang dibutuhkan algoritma penjadwalan.
Contoh: sistem operasi dapat memilih proses berdasarkan prioritas dan kebijakan penjadwalan yang berlaku.
8. Memory Management Information (informasi pengelolaan memori)
Mencakup informasi yang membantu sistem operasi mengelola ruang alamat proses, seperti referensi ke tabel halaman atau struktur pengelolaan memori lainnya.
Contoh: sistem operasi mengatur agar proses memiliki ruang alamat yang terpisah dan tidak sembarangan membaca memori milik proses lain.
9. Accounting Information (informasi akuntansi penggunaan sumber daya)
Dapat mencakup informasi penggunaan CPU, waktu pelaksanaan, identitas pengguna, atau data pengukuran sumber daya lainnya. Rincian yang disimpan bergantung pada sistem operasi.
Contoh: administrator dapat menganalisis proses yang menghabiskan waktu CPU secara berlebihan.
10. I/O Status Information (informasi status input/output)
Berkaitan dengan perangkat I/O, operasi yang sedang berlangsung, atau sumber daya I/O yang digunakan proses. Bentuk pencatatannya bergantung pada implementasi sistem operasi.
Contoh: sebuah proses sedang membaca data dari berkas atau menunggu respons dari perangkat.
C. Ringkasan komponen PCB
| No. | Informasi | Fungsi utama |
|---|---|---|
| 1 | Process State | Mengetahui keadaan proses. |
| 2 | Process Privileges | Mendukung pengaturan hak akses. |
| 3 | Process ID | Mengidentifikasi proses. |
| 4 | Pointer / hubungan proses | Menghubungkan proses dengan struktur pengelolaan lain. |
| 5 | Program Counter | Menunjukkan lokasi instruksi berikutnya. |
| 6 | CPU Registers | Menyimpan konteks register proses. |
| 7 | CPU Scheduling Information | Mendukung penjadwalan CPU. |
| 8 | Memory Management Information | Mendukung pengelolaan memori proses. |
| 9 | Accounting Information | Mencatat penggunaan sumber daya. |
| 10 | I/O Status Information | Mencatat informasi terkait operasi I/O. |
D. Hubungan PCB dengan pergantian proses (context switch)
Ketika CPU beralih dari menjalankan satu proses ke proses lain, sistem operasi melakukan mekanisme yang disebut context switch. Secara sederhana, sistem menyimpan konteks proses yang sedang berjalan dan memulihkan konteks proses yang akan dijalankan.
Contohnya, saat aplikasi musik berjalan lalu sistem operasi memberi CPU kepada peramban, keadaan eksekusi aplikasi musik perlu dipertahankan agar musik dapat terus diproses atau dilanjutkan ketika memperoleh giliran CPU lagi. Mekanisme ini juga memungkinkan sistem operasi menangani banyak proses tanpa mencampuradukkan konteks eksekusinya.
Perlu diperhatikan bahwa context switch tidak selalu terjadi karena proses melakukan operasi I/O. Pergantian dapat pula terjadi karena jatah waktu CPU berakhir, proses dengan prioritas lebih tinggi perlu dijalankan, atau terjadi peristiwa penjadwalan lainnya.
E. Siklus hidup PCB
Secara konseptual, PCB dikelola selama proses masih membutuhkan informasi pengelolaan oleh sistem operasi. Ketika proses berakhir, sistem operasi membersihkan struktur terkait dan melepaskan sumber daya sesuai mekanisme yang berlaku.
Urutan sederhananya adalah:
Proses dibuat dan informasi pengelolaannya disiapkan.
PCB atau struktur setara digunakan untuk melacak keadaan proses.
Informasi diperbarui saat proses berjalan, menunggu, atau mengalami pergantian konteks.
Ketika proses berakhir, sistem operasi membersihkan informasi dan sumber daya yang tidak lagi diperlukan.
4.5 Studi Kasus: Menjalankan Program di Laboratorium Komputer
Bayangkan seorang siswa menjalankan program sederhana yang menghitung luas persegi panjang.
#include <stdio.h>
int main(void) {
int panjang = 10;
int lebar = 5;
int luas = panjang * lebar;
printf("Luas persegi panjang = %d\n", luas);
return 0;
}Hasil keluaran:
Luas persegi panjang = 50Berikut gambaran konsep sistem operasi yang terlibat.
Tahap 1 — Program disiapkan.
Kode sumber ditulis dan disimpan sebagai berkas. Pada tahap ini, berkas sumber merupakan program, bukan proses yang sedang dieksekusi.
Tahap 2 — Program dijalankan.
Setelah dikompilasi sesuai kebutuhan dan dijalankan, sistem operasi membuat serta mengelola proses untuk melaksanakan program tersebut.
Tahap 3 — Memori digunakan.
Instruksi program dan data yang diperlukan ditempatkan atau dipetakan ke ruang alamat proses. Variabel lokal dapat disimpan pada register atau stack, bergantung pada optimasi kompiler dan implementasi.
Tahap 4 — Proses memperoleh CPU.
Ketika dijadwalkan, CPU menjalankan instruksi untuk menghitung 10 * 5.
Tahap 5 — Hasil ditampilkan.
Fungsi printf() menggunakan fasilitas keluaran standar. Pada akhirnya, data ditampilkan di terminal atau konsol melalui mekanisme I/O sistem.
Tahap 6 — Proses berakhir.
Program mengembalikan status 0. Sistem operasi menyelesaikan proses dan membersihkan sumber daya yang tidak lagi dibutuhkan.
Kasus sederhana ini menunjukkan bahwa pelaksanaan program melibatkan proses, memori, CPU, fasilitas I/O, serta informasi pengelolaan proses.
4.6 Perbedaan Proses dan Thread
Dalam sistem operasi, proses dan thread merupakan konsep yang berhubungan, tetapi tidak sama.
Proses menyediakan lingkungan eksekusi dan ruang alamat yang dikelola sistem operasi.
Thread merupakan unit eksekusi di dalam suatu proses. Thread-thread dalam proses yang sama umumnya berbagi ruang alamat dan sejumlah sumber daya proses, tetapi masing-masing memiliki konteks eksekusi sendiri.
Sebagai contoh, aplikasi pengolah kata dapat menggunakan satu thread untuk antarmuka pengguna dan thread lain untuk melakukan pekerjaan tertentu di latar belakang. Dengan rancangan yang tepat, pekerjaan tersebut dapat berjalan lebih responsif tanpa harus membuat setiap tugas menjadi proses terpisah.
Namun, tidak semua aplikasi menggunakan pola thread yang sama. Pembagian pekerjaan bergantung pada desain perangkat lunak dan fasilitas yang disediakan sistem operasi.
4.7 Kesimpulan
Proses merupakan konsep mendasar dalam sistem operasi karena menghubungkan program dengan pelaksanaan nyata di komputer. Ketika program dijalankan, sistem operasi mengelola proses beserta keadaan, ruang alamat, dan sumber daya yang diperlukan.
Empat konsep utama yang perlu dipahami adalah:
Proses: program yang sedang dieksekusi beserta keadaan dan sumber daya terkait.
Program: kumpulan instruksi yang dirancang untuk menyelesaikan tugas tertentu.
Siklus hidup proses: rangkaian keadaan yang membantu sistem operasi mengatur kapan proses siap, berjalan, menunggu, atau selesai.
Process Control Block (PCB): struktur pengelolaan yang menyimpan informasi penting untuk melacak dan mengatur proses.
Pemahaman terhadap proses, memori, penjadwalan, dan PCB membantu mahasiswa memahami bagaimana sistem operasi menjalankan banyak aplikasi, menjaga konteks eksekusi, membagi sumber daya CPU, serta mengelola memori secara teratur.
Referensi untuk Bacaan Lanjutan
Silberschatz, A., Galvin, P. B., dan Gagne, G. Operating System Concepts. Wiley.
Tanenbaum, A. S., dan Bos, H. Modern Operating Systems. Pearson.
Dokumentasi Linux
proc(5)danps(1)untuk mempelajari informasi proses pada sistem Linux.Dokumentasi Microsoft tentang proses dan manajemen tugas Windows.
Catatan: Artikel ini menyajikan model konseptual yang umum digunakan dalam pembelajaran sistem operasi. Detail implementasi proses, memori, PCB, dan penjadwalan dapat berbeda antara sistem operasi dan arsitektur perangkat keras.

0 Komentar