Anda di halaman 1dari 14

PERTEMUAN 3

PROSES

A. Tujuan Pembelajaran

1. Dapat mengerti apa itu Proses

2. Mengetahui penyebab Proses yang Utama

3. Process Termination

4. Implementasi Proses

5. Hierarki Proses

B. Uraian Materi

1. Pengertian Proses

Saat sistem di-boot, banyak proses dimulai secara diam-diam, sering kali
tidak diketahui oleh pengguna. Misalnya, suatu proses dapat dimulai menunggu
email masuk. Proses lain mungkin berjalan atas nama antivirus program untuk
memeriksa secara berkala apakah definisi virus baru tersedia. Selain itu, proses
pengguna eksplisit mungkin sedang berjalan, mencetak file dan mencadangkan
file foto pengguna di stik USB, sambil menjelajahi web. Semua aktivitas ini harus
dikelola, dan sistem multi programming mendukung banyak proses sangat
berguna di sini.

Dalam sistem multi programming apa pun, CPU beralih dari satu proses ke
proses lainnya dengan cepat, menjalankan masing-masing selama puluhan atau
ratusan milidetik. Sementara, tegasnya, pada satu saat CPU hanya menjalankan
satu proses, dalam 1 detik CPU dapat bekerja pada beberapa di antaranya,
memberikan ilusi paralelisme. Terkadang orang berbicara tentang
pseudoparalelisme dalam konteks ini, untuk membedakannya dengan
paralelisme perangkat keras yang sebenarnya dari sistem multiprosesor (yang
memiliki dua atau lebih CPU yang berbagi memori fisik yang sama). Melacak
berbagai aktivitas parallel sulit dilakukan orang. Oleh karena itu, perancang
sistem operasi selama bertahun-tahun telah melakukannya mengembangkan
model konseptual (proses sekuensial) yang membuat paralelisme lebih mudah
berurusan dengan. Model itu, kegunaannya, dan beberapa konsekuensinya
membentuk subjek Bab ini.

2. Model Proses

Dalam model ini, semua perangkat lunak yang dapat dijalankan di


komputer, terkadang termasuk sistem operasi, diatur ke dalam sejumlah proses
berurutan, atau hanya proses singkatnya. Sebuah proses hanyalah contoh dari
program yang sedang dieksekusi, termasuk nilai saat ini dari penghitung
program, register, dan variabel. Secara konseptual, setiap proses memiliki CPU
virtualnya sendiri. Pada kenyataannya, tentu saja, CPU sebenarnya beralihbolak-
balik dari proses ke proses, tetapi untuk memahami sistem, begitulah adanya
jauh lebih mudah untuk memikirkan kumpulan proses yang berjalan secara
paralel (semu) daripada mencoba melacak bagaimana CPU beralih dari program
ke program. Ini pergantian cepat bolak-balik disebut multiprogramming.

Pada Gambar 2-1 (a) kita melihat komputer melakukan multiprogramming


empat program dalam memori. Pada Gambar 2-1 (b) kita melihat empat proses,
masing-masing dengan aliran kontrolnya sendiri (yaitu, sendiri penghitung
program logis), dan masing-masing berjalan secara independen dari yang lain.
Tentu saja, hanya ada satu penghitung program fisik, jadi ketika setiap proses
berjalan, penghitung program logisnya dimuat ke penghitung program nyata.
Ketika selesai (untuk saat ini), penghitung program fisik disimpan dalam proses
disimpan penghitung program logis dalam memori. Pada Gambar 2-1 (c) kita
melihat bahwa, dilihat dalam interval waktu yang cukup lama, semua proses telah
mengalami kemajuan, tetapi pada setiap hal nstan hanya satu proses yang
benar-benar berjalan.

Dengan CPU beralih bolak-balik di antara proses, tingkat di mana suatu


proses melakukan perhitungannya tidak akan seragam dan mungkin bahkan
tidak dapat direproduksi jika proses yang sama dijalankan kembali. Dengan
demikian, proses tidak boleh diprogram dengan asumsi bawaan tentang waktu.
Pertimbangkan, misalnya, audio proses yang memutar musik untuk mengiringi
video berkualitas tinggi yang dijalankan oleh perangkat lain. Karena audio
seharusnya mulai sedikit lebih lambat dari video, ini memberi sinyal server video
untuk mulai memutar, dan kemudian menjalankan loop idle 10.000 kali sebelum
memutar ulang audio. Semua berjalan dengan baik, jika loop adalah pengatur
waktu yang andal, tetapi jika CPU memutuskan untuk beralih ke proses lain
selama loop idle, proses audio mungkin tidak berjalan lagi sampai bingkai video
yang sesuai telah datang dan pergi, dan video dan audio akan menjadi tidak
sinkron. Ketika suatu proses memiliki persyaratan real-time kritis seperti ini,
peristiwa tertentu harus terjadi dalam jumlah yang ditentukan dalam milidetik,
tindakan khusus harus diambil untuk memastikan hal itu terjadi. Namun,
biasanya, sebagian besar proses tidak dipengaruhi oleh multiprogramming yang
mendasari CPU atau kecepatan relatif dari berbagai proses.

Perlu dicatat bahwa jika sebuah program dijalankan dua kali, itu dihitung
sebagai dua proses. Misalnya, seringkali mungkin untuk memulai pengolah kata
dua kali atau mencetak dua file pada pada waktu yang sama jika dua printer
tersedia. Fakta bahwa dua proses terjadi menjalankan program yang sama tidak
masalah; mereka adalah proses yang berbeda. Sistem operasi mungkin dapat
berbagi kode di antara mereka sehingga hanya ada satu salinan yang masuk
memori, tetapi itu adalah detail teknis yang tidak mengubah situasi konseptual
dari dua proses yang sedang berjalan.

3. Process Creation

Sistem operasi membutuhkan beberapa cara untuk membuat proses.


Dalam sistem yang sangat sederhana, atau dalam sistem yang dirancang untuk
menjalankan hanya satu aplikasi (misalnya, pengontrol dalam oven microwave),
dimungkinkan untuk memiliki semua proses yang bahkan harus ada saat sistem
muncul. Dalam sistem tujuan umum, namun, beberapa cara diperlukan untuk
membuat dan menghentikan proses sesuai kebutuhan selama operasi. Sekarang
kita akan melihat beberapa masalah.

Empat peristiwa utama menyebabkan proses dibuat :

a. Inisialisasi sistem.

b. Eksekusi panggilan sistem pembuatan proses dengan proses yang sedang


berjalan.

c. Permintaan pengguna untuk membuat proses baru.

d. Inisiasi pekerjaan batch.

e. Saat sistem operasi di-boot, biasanya banyak proses dibuat.

Beberapa di antaranya adalah proses latar depan, yaitu proses yang


berinteraksi dengannya pengguna (manusia) dan melakukan pekerjaan untuk
mereka. Lainnya berjalan di latar belakang dan sedang tidak terkait dengan
pengguna tertentu, melainkan memiliki beberapa fungsi tertentu.

Selain proses yang dibuat pada saat boot, proses baru dapat dibuat setelah
itu juga. Seringkali proses yang sedang berjalan akan mengeluarkan panggilan
sistem untuk membuatnya atau lebih banyak proses baru untuk membantunya
melakukan tugasnya. Membuat proses baru sangat berguna ketika pekerjaan
yang harus diselesaikan dapat dengan mudah dirumuskan dalam beberapa hal
yang terkait, tetapi proses interaksi sebaliknya independen. Misalnya, jika jumlah
data sedang diambil melalui jaringan untuk pemrosesan selanjutnya, mungkin
lebih mudah untuk membuat satu proses untuk mengambil data dan
meletakkannya di buffer bersama sementara proses kedua menghapus item data
dan memprosesnya. Di multiprosesor, mengizinkan setiap proses untuk berjalan
pada CPU yang berbeda juga dapat membuat pekerjaan berjalan lebih cepat.

Dalam sistem interaktif, pengguna dapat memulai program dengan


mengetik perintah atau (ganda) mengklik ikon. Mengambil salah satu dari
tindakan ini memulai proses baru dan berjalan program yang dipilih di dalamnya.
Dalam sistem UNIX berbasis perintah yang menjalankan X, yang baru proses
mengambil alih jendela tempat dimulainya. Di Windows, saat proses dimulai, ia
tidak memiliki jendela, tetapi dapat membuat satu (atau lebih) dan sebagian besar
melakukan. Di kedua sistem, pengguna mungkin membuka beberapa jendela
sekaligus, masing-masing sedang berjalan beberapa proses.
Menggunakan mouse, pengguna dapat memilih jendela dan berinteraksi dengan
proses, misalnya, memberikan masukan saat dibutuhkan.

Situasi terakhir di mana proses dibuat hanya berlaku untuk sistem batch
yang ditemukan di mainframe besar. Pikirkan manajemen inventaris di akhir hari
di rantai toko. Di sini pengguna dapat mengirimkan tugas batch ke sistem
(mungkin dari jarak jauh). Ketika sistem operasi memutuskan bahwa ia memiliki
sumber daya untuk menjalankan pekerjaan lain, itu membuat proses baru dan
menjalankan pekerjaan berikutnya dari antrian masukan di dalamnya. Secara
teknis, dalam semua kasus ini, proses baru dibuat dengan memiliki yang sudah
ada proses menjalankan panggilan sistem pembuatan proses. Proses itu
mungkin pengguna yang sedang berjalan proses, proses sistem yang dipanggil
dari keyboard atau mouse, atau proses batch-manager. Apa yang dilakukan
proses itu adalah menjalankan panggilan sistem untuk membuat yang baru
proses. Panggilan sistem ini memberi tahu sistem operasi untuk membuat proses
baru dan menunjukkan, secara langsung atau tidak langsung, program mana
yang akan dijalankan di dalamnya.

4. Process Termination

Setelah proses dibuat, proses tersebut mulai berjalan dan melakukan apa
pun tugasnya. Namun, tidak ada yang bertahan selamanya, bahkan tidak proses.
Cepat atau lambat proses baru akan berhenti, biasanya karena salah satu kondisi
berikut :

a. Normal exit (voluntary).

b. Error exit (voluntary).

c. Fatal error (involuntary).

d. Killed by another process (involuntary).

Sebagian besar proses berhenti karena mereka telah menyelesaikan


tugasnya. Saat menjadi compiler telah mengkompilasi program yang diberikan
padanya, kompilator mengeksekusi panggilan sistem untuk memberitahu sistem
operasi yang sudah selesai. Panggilan ini keluar di UNIX dan ExitProcess di
Windows. Program berorientasi layar juga mendukung penghentian sukarela.
Kata prosesor, browser Internet, dan program serupa selalu memiliki ikon atau
menu item yang dapat diklik pengguna untuk memberi tahu proses untuk
menghapus file sementara yang dimilikinya buka lalu akhiri.
Alasan kedua untuk penghentian adalah karena proses tersebut
menemukan kesalahan fatal.

Alasan ketiga penghentian adalah kesalahan yang disebabkan oleh


proses, seringkali karena bug program. Contohnya termasuk menjalankan
instruksi ilegal, referensi memori yang tidak ada, atau membaginya dengan nol.
Di beberapa sistem (misalnya, UNIX), sebuah proses dapat memberi tahu sistem
operasi bahwa ia ingin menangani kesalahan tertentu itu sendiri, di mana kasus
proses ini ditandai (terputus) bukannya dihentikan ketika salah satu kesalahan
terjadi.

Alasan keempat suatu proses mungkin berhenti adalah bahwa proses


tersebut menjalankan panggilan sistem yang memberi tahu sistem operasi untuk
menghentikan beberapa proses lain. Di UNIX panggilan ini adalah membunuh.
Fungsi Win32 yang sesuai adalah TerminateProcess. Dalam kedua kasus, file
pembunuh harus memiliki otorisasi yang diperlukan untuk dilakukan di killee.
Dalam beberapa sistem, ketika suatu proses berakhir, baik secara sukarela atau
sebaliknya, semua proses yang dibuatnya segera dibunuh juga. Baik UNIX
maupun Windows tidak bekerja dengan cara ini, bagaimanapun.

5. Hierarki Proses

Dalam beberapa sistem, ketika suatu proses membuat proses lain, proses
induk dan proses anak terus dikaitkan dengan cara tertentu. Proses anak bisa itu
sendiri menciptakan lebih banyak proses, membentuk hierarki proses.

Di UNIX, sebuah proses dan semua anaknya dan keturunannya bersama


membentuk kelompok proses. Saat pengguna mengirim sinyal dari
keyboard,sinyalnya adalah dikirim ke semua anggota grup proses yang saat ini
terkait dengan keyboard (biasanya semua proses aktif yang dibuat di jendela saat
ini). Secara individual, setiap proses dapat menangkap sinyal, mengabaikan
sinyal, atau mengambil tindakan default, yang akan dimatikan oleh sinyal.

Sebagai contoh lain di mana hierarki proses memainkan peran kunci, mari
kita lihat tentang bagaimana UNIX menginisialisasi dirinya sendiri ketika
dijalankan, tepat setelah komputer di-boot. Proses khusus, yang disebut init, ada
di gambar boot. Saat mulai berjalan, itu membaca file yang memberitahukan
berapa banyak terminal yang ada. Kemudian itu membagi proses baru per
terminal. Proses ini menunggu seseorang untuk masuk. Jika proses masuk
berhasil, proses login menjalankan shell untuk menerima perintah. Perintah ini
mungkin dimulai up lebih banyak proses, dan sebagainya. Jadi, semua proses di
seluruh sistem adalah milik satu pohon, dengan init di akarnya.

Sebaliknya, Windows tidak memiliki konsep hierarki proses. Semua proses


adalah sama. Satu-satunya petunjuk dari hierarki proses adalah bahwa saat
proses dibuat, file orang tua diberi token khusus (disebut pegangan) yang dapat
digunakan untuk mengontrol anak. Namun, ini bebas untuk meneruskan token ini
ke beberapa proses lain, sehingga file hirarki. Proses di UNIX tidak dapat
mencabut hak waris anak mereka.

6. Status Proses

Meskipun setiap proses adalah entitas independen, dengan penghitung


programnya sendiri dan keadaan internal, proses sering kali perlu berinteraksi
dengan proses lain. Satu proses dapat menghasilkan beberapa keluaran yang
digunakan proses lain sebagai masukan. Di perintah shell cat chapter1 chapter2
chapter3 | grep tree.

Proses pertama, menjalankan cat, menggabungkan dan mengeluarkan tiga


file. Kedua proses, menjalankan grep, memilih semua baris yang berisi kata ''
pohon. '' Bergantung pada kecepatan relatif dari dua proses (yang bergantung
pada kompleksitas relatif program dan berapa banyak waktu CPU yang dimiliki
masing-masing proses), hal ini dapat terjadi grep tersebut siap dijalankan, tetapi
tidak ada masukan yang menunggunya. Kemudian harus diblokir sampai
beberapa masukan tersedia.

Ketika sebuah proses memblokir, ia melakukannya karena secara logis ia


tidak dapat melanjutkan, biasanya karena menunggu masukan yang belum
tersedia. Mungkin juga untuk proses yang secara konseptual siap dan dapat
dijalankan untuk dihentikan karena sistem operasi telah memutuskan untuk
mengalokasikan CPU ke proses lain untuk sementara waktu. Ini dua kondisi yang
sama sekali berbeda. Dalam kasus pertama, penangguhan melekat pada
masalah (Anda tidak dapat memproses baris perintah pengguna hingga itu telah
dilakukan diketik). Dalam kasus kedua, ini adalah masalah teknis sistem (tidak
cukup CPU untuk berikan setiap proses prosesor pribadinya sendiri). Pada
Gambar 2-2 kita melihat diagram keadaan menunjukkan tiga keadaan proses
mungkin :
a. Running (sebenarnya menggunakan CPU saat itu juga).

b. Ready (dapat dijalankan; dihentikan sementara untuk membiarkan proses lain


berjalan).

c. Blocked (tidak dapat dijalankan hingga beberapa peristiwa eksternal terjadi).

Secara logis, dua kondisi pertama serupa. Dalam kedua kasus,


prosesnya bersedia dijalankan, hanya di yang kedua, sementara tidak ada CPU
yang tersedia untuk itu. Ketiga negara pada dasarnya berbeda dari dua yang
pertama karena prosesnya tidak dapat berjalan, bahkan jika CPU menganggur
dan tidak ada yang bisa dilakukan.

Empat transisi dimungkinkan di antara tiga kondisi ini, seperti yang


ditunjukkan. Transisi 1 terjadi ketika sistem operasi menemukan bahwa suatu
proses tidak dapat dilanjutkan dengan benar sekarang. Dalam beberapa sistem,
proses dapat menjalankan panggilan sistem, seperti jeda, untuk mendapatkan ke
dalam keadaan diblokir. Dalam sistem lain, termasuk UNIX, ketika proses
membaca dari a pipa atau file khusus (misalnya, terminal) dan tidak ada input
yang tersedia, prosesnya diblokir secara otomatis.

Transisi 2 dan 3 disebabkan oleh penjadwal proses, bagian dari operasi


sistem, tanpa proses bahkan mengetahui tentang mereka. Transisi 2 terjadi saat
penjadwal memutuskan bahwa proses yang berjalan telah berjalan cukup lama,
dan inilah waktunya agar proses lain memiliki waktu CPU. Transisi 3 terjadi ketika
semua lainnya proses telah mendapatkan bagian yang adil dan inilah saatnya
untuk proses pertama untuk mendapatkan CPU untuk lari lagi. Subjek
penjadwalan, yaitu memutuskan proses mana yang harus dijalankan kapan dan
untuk berapa lama, itu penting; kita akan melihatnya nanti di bab ini. Banyak
algoritme telah dirancang untuk mencoba menyeimbangkan tuntutan persaingan
efisiensi untuk sistem secara keseluruhan dan keadilan untuk proses individu.

Transisi 4 terjadi ketika peristiwa eksternal yang prosesnya sedang


menunggu (seperti datangnya beberapa masukan) terjadi. Jika tidak ada proses
lain yang berjalan saat itu seketika, transisi 3 akan dipicu dan proses akan mulai
berjalan. Jika tidak itu mungkin harus menunggu dalam keadaan siap sebentar
sampai CPU tersedia dan nya giliran datang.

Dengan menggunakan model proses, akan lebih mudah untuk memikirkan


tentang apa yang sedang terjadi di dalam sistem. Beberapa proses menjalankan
program yang menjalankan perintah diketik oleh pengguna. Proses lain adalah
bagian dari sistem dan menangani tugas-tugas seperti melaksanakan
permintaan untuk layanan file atau mengelola rincian menjalankan disk atau a
tape drive. Ketika terjadi interupsi disk, sistem membuat keputusan untuk
berhenti menjalankan proses saat ini dan menjalankan proses disk, yang diblokir
menunggu interupsi itu. Jadi, alih-alih memikirkan interupsi, kita bisa memikirkan
pengguna proses, proses disk, proses terminal, dan sebagainya, yang memblokir
saat mereka sedang menunggu sesuatu terjadi. Ketika disk telah dibaca atau
karakter diketik, proses yang menunggu untuk dibuka blokirnya dan memenuhi
syarat untuk dijalankan kembali.

Tampilan ini memberikan model yang ditunjukkan pada Gambar 2-3. Di sini
tingkat terendah sistem operasi adalah penjadwalan, dengan berbagai proses di
atasnya. Semua penanganan interupsi dan detail proses memulai dan
menghentikan sebenarnya tersembunyi di dalam apa yang disebut penjadwalan,
yang sebenarnya tidak banyak kode. Sistem operasi lainnya terstruktur dengan
baik dalam bentuk proses. Namun, beberapa sistem nyata terstruktur sebaik ini.
7. Implementasi Proses

Untuk mengimplementasikan model proses, sistem operasi memelihara


tabel (file array struktur), yang disebut tabel proses, dengan satu entri per proses.
(Beberapa penulis menyebut entri ini blok kontrol proses.) Entri ini berisi penting
informasi tentang status proses, termasuk penghitung programnya, penunjuk
tumpukan, alokasi memori, status file yang terbuka, informasi akuntansi dan
penjadwalannya, dan segala sesuatu tentang proses yang harus disimpan saat
proses dialihkan dari berjalan ke status siap atau diblokir sehingga dapat dimulai
ulang nanti seolah-olah tidak pernah dihentikan.

Gambar 2-4 menunjukkan beberapa bidang kunci dalam sistem tipikal.


Bidang di kolom pertama berhubungan dengan manajemen proses. Dua lainnya
terkait dengan manajemen memori dan manajemen file. Itu harus dicatat dengan
tepat bidang mana yang dimiliki tabel proses sangat bergantung pada sistem,
tetapi angka ini memberikan gambaran umum tentang jenis informasi yang
dibutuhkan.

Sekarang setelah kita melihat tabel proses, Anda dapat menjelaskan sedikit
lebih lanjut tentang bagaimana ilusi beberapa proses berurutan dipertahankan
pada satu proses (atau masing-masing) CPU. Terkait dengan setiap kelas I / O
adalah sebuah lokasi (biasanya di lokasi tetap di dekat bagian bawah memori)
yang disebut vektor interupsi. Ini berisi alamat dari prosedur layanan interupsi.
Misalkan proses pengguna 3 sedang berjalan ketika terjadi interupsi disk.
Penghitung program proses pengguna 3, status program word, dan terkadang
satu atau lebih register didorong ke tumpukan (saat ini) oleh perangkat keras
interupsi. Komputer kemudian melompat ke alamat yang ditentukan dalam vektor
interupsi. Hanya itu yang dilakukan perangkat keras. Mulai sekarang, terserah
perangkat lunaknya, khususnya, prosedur layanan interupsi.

Semua interupsi dimulai dengan menyimpan register, seringkali dalam entri


tabel proses untuk proses saat ini. Kemudian informasi yang didorong ke
tumpukan oleh interupsi dihapus dan penunjuk tumpukan diatur untuk menunjuk
ke tumpukan sementara yang digunakan oleh penangan proses. Tindakan
seperti menyimpan register dan mengatur penunjuk tumpukan bahkan tidak
dapat diekspresikan dalam bahasa tingkat tinggi seperti C, sehingga dilakukan
oleh rutinitas bahasa assembly kecil, biasanya sama untuk semua interupsi sejak
pekerjaan menyimpan register identik, tidak peduli apa penyebab interupsi

Ketika rutinitas ini selesai, ia memanggil prosedur C untuk melakukan sisa


pekerjaannya untuk jenis interupsi khusus ini. (Kami menganggap sistem operasi
ditulis dalam C, pilihan biasa untuk semua sistem operasi nyata.) Ketika telah
melakukan tugasnya, mungkin membuat beberapa proses sekarang siap,
penjadwal dipanggil untuk melihat siapa yang harus dijalankan selanjutnya.
Setelah itu, kontrol diteruskan kembali ke kode bahasa assembly untuk memuat
register dan peta memori untuk proses sekarang-saat ini dan mulai
menjalankannya. Mengganggu penanganan dan penjadwalan diringkas pada
Gambar 2-5. Perlu dicatat bahwa detailnya agak berbeda dari sistem ke sistem.
Suatu proses dapat terputus ribuan kali selama pelaksanaannya, tetapi Ide
utamanya adalah bahwa setelah setiap interupsi, proses yang terputus kembali
ke file keadaan yang sama seperti sebelum interupsi terjadi.

8. Pemodelan Multiprogramming

Saat multiprogramming digunakan, penggunaan CPU dapat ditingkatkan.


Secara kasar, jika proses rata-rata hanya menghitung 20% dari waktu yang
dihabiskan memori, maka dengan lima proses di memori sekaligus CPU harus
sibuk semua waktu. Namun, model ini sangat optimis, karena diasumsikansecara
diam-diam bahwa kelima proses tidak akan pernah menunggu I / O padasaat
yang bersamaan.
Model yang lebih baik adalah melihat penggunaan CPU dari sudut pandang
probabilistik. Misalkan suatu proses menghabiskan sebagian kecil dari waktunya
menunggu I / O selesai. Dengan n proses dalam memori sekaligus, probabilitas
bahwa semua n proses sedang menunggu I / O (dalam hal ini CPU akan idle)
adalah pn Pemanfaatan CPU kemudian diberikan dengan rumus

𝐶𝑃𝑈 𝑢𝑡𝑖𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛 = 1 – 𝑝𝑛

Gambar 2-6 menunjukkan penggunaan CPU sebagai fungsi dari n, yang


disebut derajat multiprogramming.

Dari gambar tersebut jelaslah bahwa jika proses menghabiskan 80%


waktunya menunggu I / O, minimal 10 proses harus ada di memori sekaligus
untuk mendapatkan limbah CPU di bawah ini 10%. Ketika Anda menyadari
bahwa proses interaktif menunggu pengguna untuk mengetik sesuatu di terminal
(atau mengklik ikon) dalam status tunggu I / O, harus jelas bahwa Waktu tunggu
I / O 80% dan lebih sering terjadi. Tetapi bahkan di server, proses melakukan
banyak I / O disk akan sering memiliki persentase ini atau lebih.

Demi akurasi, perlu ditunjukkan bahwa model probabilistic yang baru saja
dijelaskan hanyalah perkiraan. Ini secara implisit mengasumsikan bahwa semua
n proses independen, artinya cukup dapat diterima untuk sistem dengan lima
proses dalam memori untuk menjalankan tiga dan dua menunggu. Tapi dengan
satu CPU, kami tidak bisa menjalankan tiga proses sekaligus, jadi proses menjadi
siap sementara CPU sibuk harus menunggu. Jadi prosesnya tidak independen.
A lebih model yang akurat dapat dibangun dengan menggunakan teori antrian,
tetapi intinya kita ada making — multiprogramming memungkinkan proses
menggunakan CPU saat sebaliknya menjadi menganggur — tentu saja masih
valid, meskipun kurva sebenarnya pada Gambar 2-6 sedikit berbeda dari yang
ditunjukkan pada gambar.

Meskipun model Gambar 2-6 sederhana, model ini bisa saja digunakan
untuk membuat prediksi yang spesifik, meskipun hanya perkiraan, tentang kinerja
CPU. Misalkan, misalnya, komputer memiliki memori 8 GB, dengan
pengoperasian sistem dan tabelnya membutuhkan 2 GB dan setiap program
pengguna juga membutuhkan 2 GB. Ukuran ini memungkinkan tiga program
pengguna berada di memori sekaligus. Dengan menunggu I / O rata-rata 80%,
kami memiliki penggunaan CPU (mengabaikan overhead sistem operasi)
sebesar 1 - 0. 83 atau sekitar 49%. Menambahkan memori 8 GB lainnya
memungkinkan sistem berjalan dari multiprograming tiga arah menjadi
multiprogramming tujuh arah, sehingga meningkatkan pemanfaatan CPU hingga
79%. Dengan kata lain, tambahan 8 GB akan meningkatkan throughput sebesar
30%.

Menambahkan 8 GB lagi hanya akan meningkatkan penggunaan CPU dari


79% menjadi 91%, sehingga meningkatkan throughput hanya 12% lagi. Dengan
menggunakan model ini, pemilik komputer mungkin memutuskan bahwa
penambahan pertama adalah investasi yang bagus tapi itu yang kedua tidak.
C. Latihan

Untuk Mengetahui apakah anda telah mampu memahami materi Proses, kerjakan
latihan berikut :

1. Soal : Empat peristiwa utama menyebabkan proses ?. Sebutkan..

2. Soal : Penyebab proses akan berhenti, biasanya kondisi dari ? . Jelaskan

D. Referensi

Andrew S. Tanenbaum Herbert BOS “Modern Operating System”

Operating Systems by P. Balakrishna Prasad [ScitechPublication]

Operating System concepts : James L.Peterson Abraham Silberschatz [Addison-


Wesley Publishing Company].

Operating System Concepts : Silbershaz [Addision Education]

SAMS Teach Yourself Linux by Craig and Coletta Witherspoon [Techmedia]

LINUX complete reference by Richard Peterson

Unix The complete Guide by Jason J. Manger[Galgotia Publication Pvt. ltd]

Operating System Concepts 8th Edition by Silberschatz ,Galvin, Gagne

Anda mungkin juga menyukai