BAB 2
LANDASAN TEORI
2.1
Sistem Operasi
2.1.1 Definisi Sistem Operasi
Secara umum, sebuah sistem komputer terbagi atas hardware, sistem operasi, program aplikasi, dan user. Perangkat Keras terdiri atas CPU, memori dan I/O device yang merupakan Pinjamans dasar. Program aplikasi berisi compiler, basis data, Permainan dan program-program bisnis, yang merupakan suatu cara atau alat dimana PinjamanPinjaman akan diakses untuk menyelesaikan masalah user. Ada beberapa definisi yang dapat diberikan untuk sistem operasi, antara lain: 1. Peranggkat Lunak yang mengontrol hardware, hanya berupa program biasa (seperti beberapa file pada DOS). 2. Program yang menjadikan hardware lebih mudah untuk digunakan. 3. Kumpulan program yang mengatur kerja hardware (seperti: mengatur memori, printer dll). 4. Pinjaman Manager atau Pinjaman allocator (seperti: mengatur memori, printer dll).
7
5. Sebagai program pengontrol (program yang digunakan untuk mengontrol program yang lainnya). 6. Sebagai Kernel, yaitu program yang terus-menerus running selama komputer dihidupkan. 7. Sebagai guardian, yaitu mengatur atau menjaga komputer dari berbagai kejahatan komputer.
2.1.2 Fungsi dan Sasaran Sistem Operasi
Sistem operasi mempunyai dua fungsi utama, yaitu : 1. Pengelola seluruh sumber daya sistem komputer (sebagai
manager
Pelanggan). Mengelola seluruh sumber daya yang terdapat pada sistem komputer. 2. Sistem operasi sebagai penyedia layanan (sebagai extended / virtual machine).Sistem operasi menyediakan sekumpulan layanan (disebut system calls) ke pemakai sehingga memudahkan dan menyamankan penggunaan atau pemanfaatan sumber daya sistem komputer. Sistem operasi mempunyai fungsi-fungsi minor yang merupakan penjabaran dua fungsi utama. Fungsi-fungsi minor sistem operasi antara lain, 1. Mengimplementasikan antarmuka untuk pemakai. 2. Memungkinkan pemakaian bersama perangkat keras di antara banyak pemakai. 3. Memungkinkan pemakai-pemakai data secara bersama. 4. Mencegah pemakai-pemakai saling mengganggu satu dengan lainnya 5. Menjadwalkan pemakaian sumber daya.
8
6. Memberi fasilitas masukan / keluaran. 7. Memulihkan kesalahan-kesalahan. 8. Menghitung penggunaan sumber daya. 9. Mengorganisasi data agar pengamanan dan cepat diakses. 10. Menangani komunikasi jaringan.
Untuk memenuhi semua fungsi, sistem operasi mempunyai subsistem antara lain, 1. Manajemen proses. 2. Manajemen memori. 3. Manajemen berkas (sistem manajemen berkas). 4. Manajemen perangkat masukan / keluaran. 5. Pengamanan sistem. 6. Sistem komunikasi. 7. dan sebagainya.
Menurut William Stallings, sistem operasi mempunyai tiga sasaran, yaitu: 1. Kenyamanan. Sistem operasi harus membuat penggunaan komputer menjadi lebih nyaman. 2. Efisiensi. Sistem operasi menjadikan penggunaan sumber daya sistem komputer secara efisien. 3. Mampu Berevolusi.
9
Sistem operasi harus dibangun sehingga memungkinkan dan memudahkan pengembangan, pengujian dan pengajuan fungsi-fungsi yang baru tanpa menganggu layanan yang dijalankan sistem komputer.
2.1.3 Sumber Daya Sistem Komputer
Sumber daya sistem komputer adalah semua komponen di sistem komputer yang dapat memberi manfaat. Sumber daya ini terdiri dari: 1. Sumber daya fisik. 2. Sumber daya abstrak.
2.1.3.1 Sumber Daya Fisik
Sumber daya fisik misalnya : 1. Keyboard, bar-code reader. 2. Mouse, joystrick, light-pen, track-ball, touch-screen, dan perangkat-perangkat penunjuk (pointing devices) lain. 3. Floopy disk drive, harddisk, tape drive, optical disk, CD-ROM drive dan perangkat-perangkat penyimpan data sekunder lain. 4. Layar monitor baik CRT, LCD dan perangkat-perangkat display lain. 5. Printer. 6. Modem, ethernet card, PCMCIA dan alat-alat untuk komunikasi lain. 7. Memori akses acak (RAM = Random Access Memory), chace memory, register, dan memori-memori volatile lain.
10
8. Perangkat-perangkat multimedia seperti kamera, sound card, radio dan sebagainya. 9. Perangkat-perangkat grafis seperti digitizer, scanner, plotter dan sebagainya. 10. Perangkat-perangkat pengendalian proses yang terhubung ke komputer yaitu sensor-sensor dan aktuator-aktuator. 11. dan sebagainya.
2.1.3.2 Sumber Daya Abstrak
Sumber daya abstrak terdiri dari : 1. Data. a. Semaphore untuk pengendalian sinkronisasi proses-proses. b. PCB (Process control block) untuk mencatat dan mengendalikan proses. c. Tabel segmen, tabel page, i-node, FAT (File Penempatan Table) adalah tabel untuk mencatat penggunaan sektor di disk. Untuk menjaga kemungkinan kerusakan maka dibuat beberapa salinan FAT. Rusaknya FAT juga mengakibatkan data-data di disk tidak dapat diakses. d. Berkas (file) untuk penyimpanan data atau program. 2. Program. Program berupa kumpulan instruksi yang dapat dijalankan sistem komputer untuk melakukan suatu pekerjaan. Program dapat berupa utilitas atau aplikasi untuk mencapai tujuan komputasi (pengolahan) tertentu.
11
Pada dasarnya semua yang terdapat atau terhubung ke sistem komputer adalah sumber daya. Seluruh sumber daya harus dapat dimanfaatkan secara efektif dan efisien. Pemanfaatan harus benar dan mempunyai efisiensi setinggi mungkin, merupakan sasaran yang harus dicapai sistem operasi.
2.1.4 Sistem Komputer dalam Beragam Sudut Pandang
Pandangan ke sistem komputer dapat dikelompokkan menjadi tiga yaitu : 1. Pemakai terdiri dari pemakai awam (end user) dan administrator sistem. Pemakai awam menggunakan aplikasi tertentu, tidak berkepentingan dengan arsitektur komputer. Pemakai memandang sistem komputer dalam antarmuka yang disediakan aplikasi. Aplikasi dikembangkan pemrogram aplikasi. Administrator bertugas agar sistem berfungsi secara benar dan optimal. 2. Pemrogram. Bila pemrogram aplikasi mengembangkan aplikasi dengan menggunakan kumpulan instruksi mesin secara langsung, maka pemrogram bertanggung jawab sepenuhnya untuk mengendalikan perangkat keras komputer. Tugas ini amat kompleks. Untuk mempermudah pemrogram, sekumpulan fasilitas disediakan sistem operasi. Pemrogram menggunakan fasilitas ini dalam mengembangkan aplikasi, mengelola berkas, dan mengendalikan masukan / keluaran, tak perlu menulis atau membuat sendiri.
Sistem operasi menyembunyikan rincian operasi perangkat keras dan menyediakan antarmuka yang nyaman untuk menggunakan perangkat. Sistem operasi bertindak sebagai mediator, mempermudah pemrogram. Sistem operasi juga memberi
12
cara program aplikasi mengakses dan menggunakan fasilitas-fasilitas dan layananlayanan sistem komputer.
Pandangan terhadap sistem komputer sebagai berlapis atau hirarki seperti terlihat pada gambar 2.1 di bawah ini : Pemakai awam Aplikasi
Pemrogram
Utilitas-utilitas Sistem operasi Perangkat Keras Sistem Komputer
Perancang sistem operasi
Gambar 2.1 Hirarki Pandangan terhadap Sistem Komputer 3. Perancang sistem operasi. Perancang sistem operasi harus membuat sistem operasi yang dapat mempermudah dan menyamnakan terutama untuk pemrogram aplikasi membuat aplikasi-aplikasi.
2.2
Proses
Proses adalah entitas dinamis. Proses berisi instruksi dan data, program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal. Istilah lain untuk proses adalah task.
2.2.1 Diagram Keadaan Proses
2.2.1.1 Diagram Keadaan Dasar (Tiga Keadaan Dasar)
13
Proses melewati serangkaian keadaan diskrit. Beragam kejadian dapat menyebabkan perubahan keadaan proses. Tabel 2.1 mendaftarkan keadaan-keadaan dasar yang dialami proses. Proses dapat berada di salah satu dari tiga keadaan dasar.
Tabel 2.1 Tiga Keadaan Dasar Proses Status
Deskripsi
Running
Pemroses sedang mengeksekusi instruksi proses itu.
Ready
Proses siap (ready) dieksekusi, tapi pemroses tidak tersedia untuk eksekusi proses ini.
Blocked
Proses menunggu kejadian untuk melengkapi tugasnya. Contoh: Proses menunggu: - Selesainya operasi perangkat masukan/keluaran. - Tersedianya memori. - Tibanya pesan jawaban. - dsb.
Hubungan ketiga keadaan dasar digambarkan dengan diagram keadaan. Timeout
READY
Dispatch
RUNNING
Completion
t en s Ev cur oc
Ev w ent ai t
Submit
BLOCKED
Gambar 2.2 Diagram Keadaan Tiga Keadaan Dasar Proses
14
Gambar 2.2 menunjukkan transisi di antara keadaan-keadaan selama siklus hidup proses. 1. Proses yang baru diciptakan akan segera mempunyai keadaan ready. 2. Proses dengan keadaan running menjadi blocked karena sumber daya yang diminta belum tersedia atau meminta layanan perangkat masukan/keluaran sehingga menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya atau selesainya layanan perangkat masukan/keluaran (event wait). 3. Proses ber-keadaan running menjadi ready karena penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis (time-out). 4. Proses ber-keadaan blocked menjadi ready saat sumber daya yang diminta/diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai (event occurs). 5. Proses ber-keadaan ready menjadi running karena penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses yang saat itu running berubah keadaan-nya (menjadi ready atau blocked) atau telah menyelesaikan sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah pemroses.
2.2.1.2 Diagram Keadaan Lanjut (Lima Keadaan)
Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan biasanya berlangsung singkat. Penundaan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.
15
Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain me-resume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan . Keputusan membebaskan sumber daya-sumber daya bergantung sifat masing-masing sumber daya. Memori utama seharusnya segera dibebaskan begitu proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan kembali) proses yaitu menjalankan proses dari titik (instruksi) dimana proses ditunda.
Operasi suspend dan resume penting, sebab: 1. Jika sistem berfungsi secara buruk dan mungkin gagal, maka proses-proses dapat di-suspend agar di-resume setelah masalah diselesaikan. Contoh: Pada proses pencetakan, bila tiba-tiba kertas habis maka proses di-suspend. Setelah kertas dimasukkan kembali, proses pun dapat di-resume. 2. Pemakai yang ragu/kawatir mengenai hasil proses dapat men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat disuspend) proses yang di-suspend. 3. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapat di-suspend dan di-resume saat beban kembali ke tingkat normal.
16
State-state aktif.
Timeout
Submit
Dispatch
READY
Completion
t en s Ev cur oc
Ev w ent ai t
RUNNING
BLOCKED
Resume
Suspend
Resume
Suspend
State-state di-suspend. I/O completion, atau event completion.
Suspended Ready
Suspended Blocked
Gambar 2.3 Diagram Lima Keadaan
Gambar 2.3 menunjukkan modifikasi diagaram keadaan dengan memasukkan kejadian suspend dan resume. Dua keadaan baru dimasukkan sehingga membentuk diagram 5 keadaan, yaitu: 1. Suspendedready. 2. Suspendedblocked.
Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain. 1. Pada sistem monoprocessor, proses running dapat men-suspend dirinya sendiri karena tak ada proses lain yang juga running yang dapat memerintahkan suspend.
17
2. Pada sistem multiprocessor, proses running dapat di-suspend proses running lain pada pemroses berbeda. Proses ready hanya dapat di-suspend oleh proses lain.
Pada proses blocked, terdapat transisi menjadi suspendedblocked. Pilihan ini dirasa aneh. Apakah tidak cukup menunggu selesainya operasi masukan/keluaran atau kejadian yang membuat proses ready atau suspendedready? Bukankah keadaan blocked, readyblocked, suspendedblocked sama-sama tidak mendapat jatah waktu pemroses?
Kenapa
dibedakan?
Alasannya,
karena
penyelesaian
operasi
masukan/keluaran bagi proses blocked mungkin tak pernah terjadi atau dalam waktu tak terdefinisikan sehingga lebih baik di-suspend agar sumber daya-sumber daya yang dialokasikan untuk proses tersebut dapat digunakan proses-proses lain. Untuk kondisi ini, lebih baik sumber daya-sumber daya yang dipegang proses yang berkondisi seperti ini dipakai proses-proses lain.
Proses
blocked
di-suspend
sistem
atau
secara
manual
menjadi
suspendedblocked. Bila akhirnya operasi masukan/keluaran berakhir maka segera proses suspendedblocked mengalami transisi. Karena resume dan suspend mempunyai prioritas tinggi maka transisi segera dilakukan. Suspend and resume dapat digunakan untuk menyeimbangkan beban sistem saat mengalami lonjakan di atas normal.
2.2.2 Tabel-Tabel untuk Proses
Tiap proses mempunyai keadaan yang perlu diperhatikan sistem operasi. Sistem operasi mencatat keadaan proses dengan beragam tabel atau senarai, antara lain:
18
1. Tabel informasi manajemen memori Tabel informasi manajemen memori untuk menjaga keutuhan memori utama dan memori sekunder. Tabel ini memuat informasi berikut: a. Alokasi memori utama yang dipakai proses. b. Alokasi memori sekunder yang dipakai proses (bila menggunakan manajemen memori dengan swapping). c. Atribut segmen memori utama dan sekunder. d. Informasi-informasi lain yang digunakan untuk pengelolaan memori. 2. Tabel informasi manajemen masukan/keluaran. Tabel ini untuk mengelola perangkat masukan/keluaran. Pada satu saat, perangkat masukan/keluaran digunakan proses tertentu, perlu dijaga agar proses lain tidak memakainya. Sistem operasi perlu mengetahui status operasi masukan/keluaran dan lokasi memori utama yang digunakan untuk mengirim data. a. Tabel informasi sistem file. Tabel ini berisi informasi mengenai ekstensi file, lokasi pada memori sekunder, status saat itu dan menyimpan atribut-atribut file lainnya. b. Tabel proses. Tabel proses mengelola informasi proses di sistem operasi, lokasinya di memori.
Keempat tabel saling berhubungan. Proses ditempatkan di memori utama di lokasi tertentu, proses mempunyai satu ruang alamat tersendiri. Ruang alamat yang digunakan proses disebut citra proses (process image) karena selain seluruh kode
19
biner program, proses ditambahi atribut-atribut lain berkaitan penempatannya pada suatu lokasi memori dan status eksekusi pada saat itu. 2.2.3 Tahap-Tahap Penciptaan Proses
Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses ini meliputi beberapa tahap. Tahap-tahap penciptaan proses adalah sebagai berikut: 1. Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian per proses. 2. Alokasikan ruang untuk proses. 3. PCB (Program Control Block) harus diinisialisasi. 4. Kaitan-kaitan antar tabel dan senarai yang cocok dibuat. 5. Bila diperlukan struktur data lain maka segera buat struktur data itu.
2.3
Deadlock
Proses disebut deadlock jika proses menunggu satu kejadian tertentu yang tak akan pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses yang ada di kumpulan itu menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu. Proses menunggu kejadian yang tidak akan pernah terjadi. Deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya. Semua deadlock yang terjadi melibatkan persaingan memperoleh sumber daya ekslusif oleh dua proses atau lebih.
Proses dikatakan sebagai mengalami starvation bila proses-proses itu menunggu alokasi sumber daya sampai tak berhingga, sementara proses-proses lain
20
dapat memperoleh alokasi sumber daya. Starvation disebabkan bias pada kebijaksanaan atau strategi alokasi sumber daya. Kondisi ini harus dihindari karena tidak adil tetapi dikehendaki penghindaran dilakukan seefisien mungkin.
2.3.1 Model Deadlock
Urutan kejadian pengoperasian perangkat masukan/keluaran adalah: 1. Meminta ( Permintaan), yaitu meminta pelayanan perangkat masukan / keluaran. 2. Memakai(use), yaitu memakai perangkat masukan/keluaran. 3. Melepaskan(release), yaitu melepaskan pemakaian perangkat masukan / keluaran.
Misalnya, terdapat dua proses P0 dan P1 dan dua sumber daya R0 dan R1.
P0
R0
R1
P1 (a)
(b)
Gambar 2.4 Graph meminta sumber daya dan alokasi sumber daya Gambar 2.4 (a) P0 meminta sumber daya R0, ditandai busur (edge) berarah dari proses P0 ke sumber daya R0. Gambar 2.15 (b) sumber daya R1 dialokasikan ke P1, ditandai busur berarah dari sumber daya R1 ke proses P1. Kemudian terjadi skenario berikut,
21
-
P0 sambil masih menggenggam R0, meminta R1.
-
P1 sambil masih menggenggam R1, meminta R0.
Kejadian ini mengakibatkan deadlock karena sama-sama akan saling menunggu. Deadlock tidak hanya terjadi pada dua proses dan dua sumber daya, deadlock dpat terjadi dengan melibatkan lebih dari dua proses dan dua sumber daya. P0 R0
R1 P1
Gambar 2.5 Graph deadlock dua proses dan dua sumber daya
2.3.2 Syarat-Syarat Terjadinya Deadlock
Coffman, menyatakan empat syarat terjadinya deadlock, yaitu: 1. Kondisi mutual exclusion (mutual exclution condition). Tiap sumber daya saat itu diberikan pada tepat satu proses. 2. Kondisi genggam dan tunggu (hold and wait condition). Proses-proses yang sedang mengenggam sumber daya dan menunggu sumber daya-sumber daya baru. Kondisi hold and wait condition dapat dilihat pada gambar 2.6.
22
R3
R1
Held by
Held by
Wait Wait
P1
P2
Held by
P3
Held by
R2
Gambar 2.6 Skema hold and wait condition 3. Kondisi non-preemption (non-preemption condition). Sumber daya-sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses itu. Sumber daya-sumber daya harus secara eksplisit dilepaskan dari proses yang mengenggamnya. 4. Kondisi menunggu secara sirkuler (circular wait condition). Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
Ketiga syarat pertama merupakan syarat perlu (necessary condition) bagi terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi di atas, tak mungkin terjadi deadlock bila tidak ada ketiga kondisi itu. Deadlock terjadi berarti terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu belum berarti terjadi deadlock. Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi. Kondisi
23
keempat merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu kondisi saja tidak terpenuhi, maka deadlock tidak terjadi.
2.3.3 Pencegahan Deadlock
Havender, J.W dalam bukunya berjudul „Avoiding Deadlock in Multitasking Systems‟ mengemukakan jika sembarang syarat dari keempat syarat tak terpenuhi maka tidak akan terjadi deadlock. Havender menyarankan starategi-strategi berikut untuk meniadakan syarat-syarat tersebut, yaitu: 1. Tiap proses harus meminta sumber daya yang diperlukan sekaligus dan tidak berlanjut sampai semuanya diberikan. 2. Jika proses telah sedang memegang sumber daya tertentu, untuk permintaan berikutnya proses harus melepas dulu sumber daya yang dipegangnya. Jika diperlukan, proses meminta kembali sekaligus dengan sumber daya yang baru. 3. Beri pengurutan linear terhadap tipe-tipe sumber daya pada semua proses, yaitu jika proses telah dialokasikan suatu tipe sumber daya, proses hanya boleh meminta sumber daya-sumber daya tipe pada urutan yang berikutnya.
2.3.3.1 Meniadakan Mutual Exclusion
Deadlock disebabkan terdapatnya pengaksesan ekslusif sumber daya. Jika tidak ada sumber daya eksklusif ke satu proses tunggal, maka akan tak pernah dijumpai deadlock. Cara yang dapat ditempuh untuk mengakali pengaksesan eksklusif adalah spooling perangkat-perangkat yang harus didedikasikan ke suatu proses. Pengaksesan sumber daya seolah-olah tidak eksklusif walau sebenarya tetap eksklusif, hanya
24
sekarang diantrikan di disk. Job-job di antrian spooler dilayani satu per satu. Terdapat masalah terhadap teknik ini adalah: -
Tidak setiap sumber daya eksklusif dapat di-spooling, misalnya tabel proses.
-
Kompetisi terhadap ruang disk untuk spooling dapat menuntun ke deadlock. Abstraksi ini sebenarnya kembali terjadi kondisi yang mengharuskan mutual exclusion hanya di level lebih bawah menjadi mutual exclusion untuk suatu lokasi memori bukan lagi satu perangkat.
Mutual Exclusion benar-benar tidak dapat dihindari.
2.3.3.2 Meniadakan Syarat Hold and Wait
Metode untuk meniadakan syarat hold and wait dapat dilakukan dengan: 1. Mengalokasikan semua sumber daya atau tidak sama sekali. Proses hanya dilayani permintaannya bila semua sumber daya yang diperlukan tersedia. Teknik ini berbasis pada semua atau tidak sama sekali. a. Jika semua sumber daya tersedia, proses dialokasikan yang diperlukan dan berjalan sampai selesai. b. Jika tidak tersedia sedikitnya satu sumber daya maka proses harus menunggu sampai semua sumber daya yang dperlukan tersedia untuk dialokasikan kepadanya.
Masalah yang dihadapi dalam teknik ini adalah: a. Sukar mengetahui lebih dulu semua sumber daya yang diperlukan suatu proses karena di awal proses tidak diketahui berapa sumber daya yang akan diperlukan.
25
b. Cara ini dapat menjadi tidak efisien.
2. Hold and Release. Genggam dan lepaskan (hold and release), yaitu setiap kali terjadi permintaan suatu sumber daya maka proses harus melepas sumber daya lain yang telah digunakan. Jadi pada satu saat, hanya ada atu sumber daya yang dialokasikan untuk proses. Masalah yang dihadapi adalah teknik ini tidak mungkin sebab terdapat proses yang mensyaratkan harus memegang beberapa sumber daya sekaligus. Misalnya, menggambar pada plotter memerlukan plotter serta disk untuk menyimpan data gambar yang di-plot.
2.3.3.3 Meniadakan Kondisi Non-Preemption
Peniadaan non-preemption mencegah proses-proses lain harus menunggu. Seluruh proses menjadi preemption, sehingga tidak ada tunggu-menunggu. Masalah: Tidak mungkin meniadakan non-preemptive. Misalnya: Saat proses A menulis ke printer, tiba-tiba dihentikan proses B yang juga akan menulis ke printer yang sama. Bila dimungkinkan kondisi preemption ini maka kedua proses akan mencetak secara tak benar.
2.3.3.4 Meniadakan Kondisi Menunggu Sirkuler
Kondisi ini dapat ditiadakan dengan bermacam cara, antara lain: 1. Proses hanya dibolehkan menggenggam satu sumber daya pada satu saat.
26
Jika memerlukan sumber daya kedua, proses harus melepas sumber daya pertama (sama dengan hold and release). 2. Penomoran global semua sumber daya. Proses dapat meminta proses kapanpun menginginkan, tapi permintaan harus dibuat terurut secara numerik. Cara ini tidak akan menimbulkan siklus. Masalahnya, tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.
2.3.4 Penghindaran Deadlock
Gagasan dasar penghindaran deadlock adalah hanya memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan deadlock. Strategi ini biasanya diimplementasikan dengan pengalokasi sumber daya memeriksa dampak-dampak pemberian akses ke suatu permintaan. 1. Jika pemberian akses sumber daya tidak mungkin menuju deadlock, sumber daya diberikan ke peminta. 2. Jika tidak aman (memungkinkan terjadinya deadlock), proses yang meminta di-suspend sampai suatu waktu permintaannya aman diberikan. Kondisi ini biasanya terjadi setelah satu sumber daya atau lebih yang semula dipegang oleh proses-proses aktif lain dilepaskan.
Agar dapat mengevaluasi safe-nya keadaan sistem individu, penghindaran deadlock mengharuskan semua proses menyatakan jumlah kebutuhan sumber daya maksimum sebelum eksekusi. Begitu eksekusi dimulai, tiap proses meminta sumber daya saat diperlukan sampai batas maksimum yang dinyatakan di awal. Proses-proses
27
yang menyatakan kebutuhan sumber daya melebihi kapasitas total sistem tidak dapat dieksekusi.
Pengalokasi sumber daya mencatat jumlah sumber daya teralokasi dan jumlah sumber daya masing-masing tipe, serta mencatat jumlah sumber daya tersisa yang diklaim tetapi belum diminta proses. Proses yang meminta sumber daya yang tak tersedia harus menunggu sementara. Jika sumber daya yang diminta tersedia, pengalokasi sumber daya memeriksa apakah pmberian dapat menuntun ke deadlock dengan memeriksa apakah proses-proses yang telah aktif dapat secara aman selesai. Jika dapat berakhir secara aman, keadaan sistem setelah alokasi adalah aman (safe), maka sumber daya dialokasikan ke proses yang meminta. Jika pemberian sumber daya mempunyai potensi menuntun ke deadlock, maka pengalokasi sumber daya mensuspend proses yang meminta sampai sumber daya dapat diberikan dengan aman.
2.3.4.1 Keadaan Aman dan Keadaan Tidak Aman
Keadaan dinyatakan sebagai keadaan aman (safe keadaan) jika tidak deadlock dan terdapat cara untuk memenuhi semua permintaan yang ditunda tanpa menghasilkan deadlock dengan menjalankan proses-proses secara hati-hati mengikuti suatu urutan tertentu.
Keadaan dinyatakan sebagai keadaan tak aman (unsafe keadaan) jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.
28
2.3.4.2 Algoritma Banker
Algoritma Banker dikemukakan oleh Edsger W.Dijkstra dan merupakan sebuah strategi untuk menghindari deadlock. Algoritma ini disebut algoritma Banker karena memodelkan banker di kota kecil yang berurusan dengan sekumpulan nasabah yang memohon kredit.
Algoritma ini mencegah terjadinya deadlock dengan memutuskan apakah menyetujui atau menunda permintaan sumber daya oleh proses. Ketika sebuah proses meminta sumber daya, maka permintaan tersebut harus diperiksa oleh bankir. Analogi dari algoritma Banker dengan sistem operasi adalah 1. Nasabah merupakan proses-proses yang sedang berjalan. 2. Uang (dana yang dimiliki bank) merupakan sumber daya. 3. Bankir merupakan sistem operasi. Dalam algoritma Banker, setiap nasabah memiliki batas kredit dan apabila seorang nasabah telah mencapai batas kredit pinjaman maksimum, maka diasumsikan nasabah tersebut telah menyelesaikan semua permasalahan bisnisnya dan dapat mengembalikan semua pinjamannya kepada bank. Tetapi ada kalanya, seorang nasabah dapat menyelesaikan semua permasalahan bisnisnya dan mengembalikan semua pinjamannya kepada bank sebelum mencapai batas kredit maksimum.
Bankir adalah seorang peminjam yang konservatif. Ketika sebuah proses meminta peminjaman sumber daya, bankir melihat buku bank dengan cermat dan berusaha untuk memutuskan apakah peminjaman tersebut dapat menyebabkan keadaan deadlock (setelah peminjaman tersebut disetujui).
29
Keputusan bankir dibuat dengan berpura-pura menyetujui peminjaman sumber daya dan kemudian menganalisis keadaan sistem. Setelah peminjaman, akan terdapat sejumlah sumber daya tersisa di dalam sistem. Kita asumsikan masing-masing proses meminta batas maksimum sumber daya. Jika bankir memiliki cukup sumber daya yang tersisa untuk memastikan bahwa semua proses dapat berakhir dengan aman. Ini menunjukkan keadaan berada dalam safe keadaan dan peminjaman disetujui.
Tetapi apabila setelah peminjaman, bankir tidak dapat menjamin semua proses dapat berakhir dengan semestinya, maka ini disebut unsafe keadaan. Dalam kasus ini, peminjaman akan ditunda atau diblok hingga peminjaman tidak menyebabkan unsafe keadaan pada sistem.
Pada algoritma Banker ini, kondisi mutual exclusion, hold-and-wait, dan nopreemption diijinkan dan proses-proses melakukan klaim penggunaan sumber daya – sumber daya yang diperlukan. Proses-proses diizinkan mengenggam sumber dayasumber daya sambil meminta dan menunggu sumber daya-sumber daya lain serta sumber daya-sumber daya itu tidak diijinkan untuk di-preempt proses lain.
Proses-proses dapat meminta satu sumber daya pada satu waktu. Sistem operasi dapat memberikan akses sumber daya atau menolak permintaan. Jika ditolak, proses masih mengenggam sumber daya yang telah dialokasikan untuknya dan menunggu selama waktu tak berhingga sampai permintaannya dapat diberikan.
30
Sistem hanya memberikan permintaan yang menghasilkan keadaan aman. Permintaan proses yang akan menghasilkan keadaan tak aman secara berulang ditolak sampai permintaan dapat dipenuhi. Tentunya karena sistem selalu memelihara agar dalam safe keadaan, cepat atau lambat (yaitu dalam waktu yang berhingga) semua permintaan dapat dipenuhi dan semua proses dapat berakhir.
2.3.4.2.1 Safety Algorithm
Algoritma ini adalah algoritma yang dipakai untuk menentukan apakah sebuah sistem berada dalam keadaan aman atau tidak aman.
Algoritma ini dipakai oleh bankir untuk memeriksa keadaan sistem setelah peminjaman, apakah berada dalam kondisi safe atau tidak. Apabila berada dalam kondisi safe, maka ini berarti sumber daya yang tersisa dapat menjamin pemenuhan pinjaman oleh semua proses yang masih aktif, semua proses akan berakhir dengan aman dan tidak akan menyebabkan deadlock. Apabila kondisi unsafe, maka ini berarti terdapat kemungkinan untuk terjadinya deadlock.
Algoritma keamanan (Safety algorithm) adalah sebagai berikut: 1. LANGKAH 1: TA a.
Work := Tersedia;
b.
for i = 1,2,...,n Atur Finish[i] = false
2. LANGKAH 2: Tentukan i ke-2 a. Finish[i] is false
31
b. Need_i <= Work c. Jika bukan i, Kembali ke LANGKAH 4 3. LANGKAH 3: Work := Work + Penempatan_i a.
Finish[i] = true
b.
Kembali ke LANGKAH 2
4. LANGKAH 4: jika Finish[i] = true untuk semua i, sistem dalam keadaan aman
2.3.4.2.2 Algoritma Permintaan Pinjaman (Resource Permintaan Algorithm)
Algoritma ini dipakai bankir untuk menentukan apakah peminjaman sumber daya disetujui atau tidak. Algoritma ini dieksekusi oleh sistem setiap terjadinya permintaan peminjaman atas sumber daya oleh proses.
Implementasi algoritma ini adalah dengan berpura-pura memberikan pinjaman kepada proses dan menganalisis keadaan setelah pinjaman (sumber daya dan proses yang tersisa) dengan Safety Algorithm. Apabila menghasilkan keadaan safe, maka pinjaman disetujui. Bila tidak, maka pinjaman diblokir atau ditunda.
Algoritma Permintaan pinjaman adalah sebagai berikut: 1 LANGKAH 0: P_i Dijadikan sebagai permintaan_i for Pinjaman 2 LANGKAH 1:
if Permintaan_i <= Need_i kembali ke LANGKAH 2
else ERROR 3 LANGKAH 2: if Permintaan_i <= Tersedia Kembali ke LANGKAH 3
32
atau suspend P_i 4 LANGKAH 3: pretend to allocate Permintaan Pinjaman a. Tersedia := Tersedia - Permintaan_i b. Penempatan_i := Penempatan_i + Permintaan_i; c. Need_i := Need_i - Permintaan_i 5 LANGKAH 4: jika pretend keadaan is AMAN then do a real Penempatan and P_i proceeds atau restore the original keadaan and suspend P_i
2.3.5 Pemulihan Deadlock
Beberapa cara yang dapat dilakukan untuk memulihkan keadaan deadlock adalah: 1. Mengakhiri (terminate) semua proses yang deadlock. 2. Mem-backup semua proses yang deadlock dan me-restart semua proses tersebut. 3. Mengakhiri (terminate) proses-proses yang deadlock secara berturut-turut hingga tidak ada deadlock. 4. Mengakhiri (terminate) pengalokasian Pinjaman-Pinjaman secara berturutturut hingga tidak ada deadlock. 5. Proses-proses yang diakhiri dipilih dengan kriteria-kriteria sebagai berikut: 6. Memiliki waktu proses (yang telah berjalan) kecil. 7. Jumlah keluaran sedikit. 8. Mempunyai estimasi sisa waktu eksekusi terbesar. 9. Jumlah total sumber daya terkecil yang telah dialokasikan.
33
2.4
Penjadwalan Proses
Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan bertugas untuk memutuskan : 1. Proses yang harus berjalan. 2. Kapan dan selama berapa lama proses itu berjalan.
Kinerja untuk mengukur dan optimasi kerja penjadwalan antara lain : 1. Adil (fairness) 2. Efisiensi 3. Waktu tanggap (response time) 4. Turn around time 5. Throughput.
Terdapat tiga tipe penjadwal berada secara bersama-sama pada sistem operasi yang kompleks yaitu : 1. Penjadwal jangka pendek (short-term scheduller). Penjadwal ini bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di memori utama. 2. Penjadwal jangka menengah (medium-term scheduller). Penjadwal jangka menengah berfungsi untuk menangani proses-proses swapping. Proses-proses mempunyai kepentingan kecil saat itu sebagai proses yang tertunda. 3. Penjadwal jangka panjang (long-term scheduller).
34
Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan / keluaran), program-program berprioritas rendah.
Terdapat dua strategi penjadwalan yaitu : 1. Penjadwalan Nonpreemptive Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai. 2. Penjadwalan Preemptive Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih proses lain sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu.
2.5
Manajemen Memori
Organisasi dan manajemen memori sangat mempengaruhi kinerja komputer. Manajemen memori melakukan tugas penting dan kompleks yang berkaitan dengan : 1. Memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama di antara sejumlah proses yang aktif. Agar dapat memanfaatkan pemroses dan fasilitas masukan / keluaran secara efisien, maka diinginkan memori yang dapat menampung sebanyak mungkin proses. 2. Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.
35
Manajemen memori mempunyai fungsi berikut : 1. Mengelola informasi memori yang dipakai dan tidak dipakai. 2. Mengalokasikan memori ke proses yang memerlukan. 3. Mendealokasikan memori dari proses yang telah selesai. 4. Mengelola swapping antara memori utama dan disk.
Dengan keberadaan banyak ruang milik proses-proses di memori utama secara bersama, maka sistem operasi harus mendukung dua kebutuhan yang saling bertentangan yaitu : 1. Pemisahan ruang-ruang alamat, yaitu memisahkan ruang alamat menjadi blokblok dengan ukuran tertentu agar dapat ditempati oleh proses. 2. Pemakaian bersama memori, yaitu sistem operasi harus memungkinkan beberapa aplikasi untuk menggunakan memori secara bersamaan agar pekerjaan cepat selesai.
Manajer memori harus memaksakan isolasi ruang-ruang alamat tiap proses agar mencegah proses aktif atau proses yang ingin berlaku „jahat‟ mengakses dan merusak ruang alamat proses lain. Manajer memori di lingkungan multiprogramming melakukan dua hal, yaitu : 1.
Proteksi memori dengan isolasi ruang-ruang alamat secara disjoint.
2.
Pemakaian bersama memori, yang memungkinkan proses-proses untuk bekerja sama dalam mengakses daerah memori bersama.
36
2.6
Model dan Simulasi
Model adalah representasi dari suatu objek (benda) atau ide-ide dalam bentuk yang lain. Model juga dapat didefenisikan sebagai suatu gambaran, abstraksi atau imajinasi suatu sistem nyata. Ataupun berupa suatu abstraksi dunia nyata yang pada akhirnya dapat digunakan untuk mengambil keputusan. Model berisi informasi-informasi tentang sesuatu yang dibuat dengan tujuan untuk mempelajari sistem yang sebenarnya. Model dapat berupa tiruan dari suatu benda, sistem atau peristiwa sesungguhnya yang hanya mengandung informasi-informasi yang dipandang penting untuk ditelaah. Model yang dibuat dapat berguna untuk: 1. Membantu dalam berpikir, model menyajikan deskripsi yang sistematis tentang suatu sistem sehingga dapat mempermudah mempelajari sistem tersebut. 2. Membantu untuk berkomunikasi atau mempermudah menjelaskan tentang suatu sistem kepada orang lain. 3. Sebagai alat latihan, untuk melatih ketrampilan orang-orang yang berhubungan dengan sistem sebenarnya yang dimodelkan. Contohnya : Simulator dalam dunia penerbangan, ini digunakan untuk melatih seorang calon pilot yang dalam taraf belajar, belum boleh mengemudikan pesawat yang sebenarnya, tetapi belajar mengemudikan suatu model yang mewakili pesawat dan juga mengoperasikan model tersebut terhadap suatu model lapangan terbang, udara, lingkungan terbang dan sebagainya. 4. Sebagai alat prediksi terhadap kelakuan sistem untuk waktu yang akan datang, yaitu pengaruh-pengaruh yang ingin diketahui jika ada perubahan sistem atau operasi sistem dan membantu dalam melakukan percobaan, dalam hal
37
melakukan percobaan atau eksperimen tidak mungkin langsung dilaksanakan atau diadakan secara praktis karena biaya yang mahal dan bahaya atau resiko yang tinggi.
Sebelum menentukan model yang akan dibuat, terlebih dahulu dipelajari sistemnya. Sistem yang ada seringkali sangat kompleks, tapi model diusahakan dibuat sesederhana mungkin
Simulasi adalah proses merancang model dari suatu sistem yang sebenarnya, mengadakan percobaan-percobaan terhadap model tersebut dan mengevaluasi hasil percobaan tersebut. Adapun manfaat dari simulasi adalah sebagai berikut : 1. Menjelaskan kelakuan sistem. 2. Menirukan bekerjanya suatu sistem melalui melalui suatu model. 3. Memecahkan suatu persoalan matematik dengan analisis numerik. 4. Mempelajari dinamika suatu sistem. 5. Memberikan suatu deskripsi perilaku sistem dalam perkembangan sejalan dengan bertambahnya waktu. 6. Membangun teori atau hipotesa yang mempertanggungjawabkan kelakuan dari sistem yang diamati.