<Sebelumnya | Konten | Selanjutnya>
Selain itu, Linux didasarkan pada UNIX, yang merupakan kebijakan umum untuk memiliki banyak pengguna yang menjalankan banyak perintah, pada waktu yang sama dan pada sistem yang sama. Jelas bahwa langkah-langkah harus diambil agar CPU mengelola semua proses ini, dan fungsionalitas harus disediakan sehingga pengguna dapat beralih antar proses. Dalam beberapa kasus, proses harus terus berjalan bahkan ketika pengguna yang memulainya logout. Dan pengguna memerlukan sarana untuk mengaktifkan kembali proses yang terputus.
Kami akan menjelaskan struktur proses Linux di bagian selanjutnya.
4.1.2. Jenis proses
4.1.2.1. Proses interaktif
Proses interaktif diinisialisasi dan dikontrol melalui sesi terminal. Dengan kata lain, harus ada seseorang yang terhubung ke sistem untuk memulai proses ini; mereka tidak dimulai secara otomatis sebagai bagian dari fungsi sistem. Proses ini dapat berjalan di latar depan, menempati terminal yang memulai program, dan Anda tidak dapat memulai aplikasi lain selama proses ini berjalan di latar depan. Alternatifnya, perintah tersebut dapat berjalan di latar belakang, sehingga terminal tempat Anda memulai program dapat menerima perintah baru saat program sedang berjalan. Hingga saat ini, kami terutama berfokus pada program yang berjalan di latar depan - lamanya waktu yang dibutuhkan untuk menjalankannya terlalu singkat untuk diperhatikan - namun melihat file dengan kurang command adalah contoh bagus dari perintah yang menempati sesi terminal. Dalam hal ini, program yang diaktifkan menunggu Anda melakukan sesuatu. Program ini masih terhubung ke terminal tempat dimulainya, dan terminal hanya berguna untuk memasukkan perintah yang dapat dipahami oleh program ini. Perintah lain hanya akan menghasilkan kesalahan atau
ketidakresponsifan sistem.
Meskipun suatu proses berjalan di latar belakang, pengguna tidak dicegah untuk melakukan hal lain di terminal tempat ia memulai program, saat program sedang berjalan.
Shell menawarkan fitur yang disebut kontrol pekerjaan yang memungkinkan penanganan berbagai proses dengan mudah. Mekanisme ini mengalihkan proses antara latar depan dan latar belakang. Dengan menggunakan sistem ini, program juga dapat langsung dijalankan di latar belakang.
Menjalankan proses di latar belakang hanya berguna untuk program yang tidak memerlukan input pengguna (melalui shell). Menempatkan pekerjaan di latar belakang biasanya dilakukan ketika pelaksanaan pekerjaan diperkirakan memakan waktu lama. Untuk membebaskan terminal penerbit setelah memasukkan perintah, tambahan ampersand ditambahkan. Dalam contoh, menggunakan mode grafis, kita membuka jendela terminal tambahan dari yang sudah ada:
billy:~> xterm &
[1] 26558
billy:~> pekerjaan
[1]+ Lari
xterm &
billy:~> xterm &
[1] 26558
billy:~> pekerjaan
[1]+ Lari
Fitur kontrol pekerjaan selengkapnya dijelaskan secara rinci di menampar Halaman info, jadi hanya aplikasi kontrol pekerjaan yang sering digunakan yang tercantum di sini:
Tabel 4-1. Mengontrol proses
(bagian dari) perintah | Arti |
perintah_reguler | Jalankan perintah ini di latar depan. |
memerintah & | Jalankan perintah ini di latar belakang (lepaskan terminal) |
pekerjaan | Tampilkan perintah yang berjalan di latar belakang. |
Ctrl+Z | Tangguhkan (stop, but not quit) suatu proses yang berjalan di latar depan (suspend). |
Ctrl+C | Interupsi (hentikan dan keluar) proses yang berjalan di latar depan. |
%n | Setiap proses yang berjalan di latar belakang mendapat nomor yang ditetapkan padanya. Dengan menggunakan ekspresi %, suatu pekerjaan dapat dirujuk menggunakan nomornya, misalnya fg %2. |
bg | Aktifkan kembali program yang ditangguhkan di latar belakang. |
fg | Mengembalikan pekerjaan ke latar depan. |
membunuh | Akhiri proses (lihat juga Perintah Bawaan Shell di halaman Info menampar) |
Contoh praktis lainnya dapat ditemukan dalam latihan.
Sebagian besar sistem UNIX kemungkinan besar dapat dijalankan layar, yang berguna ketika Anda sebenarnya ingin shell lain menjalankan perintah. Setelah menelepon layar, sesi baru dibuat dengan shell dan/atau perintah yang menyertainya seperti yang ditentukan, yang kemudian dapat Anda singkirkan. Dalam sesi baru ini Anda dapat melakukan apa pun yang ingin Anda lakukan. Semua program dan operasi akan berjalan secara independen dari shell yang mengeluarkannya. Anda kemudian dapat melepaskan sesi ini, sementara program yang Anda mulai di dalamnya terus berjalan, bahkan ketika Anda keluar dari shell asal, dan memilih layar naik lagi kapan pun Anda mau.
Program ini berasal dari masa ketika konsol virtual belum ditemukan, dan semuanya perlu dilakukan menggunakan satu terminal teks. Bagi para pecandu, hal ini masih memiliki arti di Linux, meskipun kita sudah memiliki konsol virtual selama hampir sepuluh tahun.
4.1.2.2. Proses otomatis
Proses otomatis atau batch tidak terhubung ke terminal. Sebaliknya, ini adalah tugas-tugas yang dapat diantrekan ke dalam area spooler, di mana tugas-tugas tersebut menunggu untuk dieksekusi berdasarkan FIFO (masuk pertama, keluar pertama). Tugas tersebut dapat dilaksanakan dengan menggunakan salah satu dari dua kriteria:
• Pada tanggal dan waktu tertentu: dilakukan dengan menggunakan at perintah, yang akan kita bahas di bagian kedua bab ini.
• Pada saat total beban sistem cukup rendah untuk menerima pekerjaan tambahan: dilakukan dengan menggunakan sekumpulan memerintah. Secara default, tugas dimasukkan ke dalam antrian di mana tugas tersebut menunggu untuk dieksekusi hingga beban sistem lebih rendah dari 0.8. Dalam lingkungan yang besar, administrator sistem mungkin lebih memilih pemrosesan batch ketika sejumlah besar data harus diproses atau ketika tugas-tugas yang menuntut banyak sumber daya sistem harus dijalankan pada sistem yang sudah dimuat. Pemrosesan batch juga digunakan untuk mengoptimalkan kinerja sistem.
4.1.2.3. daemon