BAB 2 LANDASAN TEORI. Secara umum, sebuah sistem komputer terbagi atas hardware, sistem operasi, program

dokumen-dokumen yang mirip
1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block?

Bab 6. Deadlock POKOK BAHASAN: TUJUAN BELAJAR:

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

Fairuz El Said Sekedar Berbagi Sistem Operasi (SO) Konkurensi KONGKURENSI

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

BAB II TINJAUAN PUSTAKA

Sistem Operasi Terdistribusi

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

BAB VIII DEADLOCK ...

7. Pengaturan Proses

Deskripsi Penjadwalan Proses

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

STRUKTUR SISTEM OPERASI

DESKRIPSI PENJADWALAN PROSES

Perbedaan Proses dan Program

Sistem Operasi. Konkurensi

Sistem Operasi Komputer. Pembahasan Deadlock

Penjadwalan Proses. Penjadwalan bertugas memutuskan hal-hal berikut : Proses yang harus berjalan. Kapan dan selama berapa lama proses berjalan

Sistem Operasi PENGATURAN PROSES

BAB II TINJAUAN PUSTAKA

SISTEM OPERASI. Deadlock.

Deadlock. Gambaran Umum Deadlock

STRUKTUR SISTEM OPERASI

Pertemuan 4 KONKURENSI

SIMULASI PERBANDINGAN PENJADWALAN ROUND ROBIN DAN FCFS UNTUK MANAJEMEN PROSES DALAM SINGLE PROCESSING

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM VIII Deadlock

Sinkronisasi dan Deadlock Sistem Operasi

Bab 3 - Manajemen Proses 3.1

Bab 7: Deadlock. Permasalahan Deadlock

Bab 23. Deadlocks Pendahuluan. Gambar Contoh kasus deadlock pada lalu lintas di jembatan

BAB 1 PENDAHULUAN. Algoritma Banker dikemukakan oleh Edsger W.Djikstra dan merupakan salah satu

Penjadwalan CPU. Badrus Zaman

4 Implementasi Proses

Proses. - yaitu program yang sedang dieksekusi Proses merupakan satuan kerja terkecil yang secara individual dijadwalkan oleh sistem operasi

MAKALAH DEADLOCK. DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH Sistem Operasi Dosen Penampu Bapak Adi Sucipto, Ir., M.Kom. oleh :

PENDAHULUAN. Pertemuan 1 1

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

Proses. Deskripsi Proses. Proses merupakan unit terkecil yang secara individu memiliki sumber dayasumber daya yang dijadwalkan sistem operasi

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

3. Sebutkan perbedaan program dan proses berdasarkan keberadaan,sifat dan unsur pembentukan Jawab : Timeout. Dispatch.

SISTEM OPERASI DEADLOCK

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

DEADLOCK. Haryono Setiadi, ST, M.Eng

PROSES. DESKRIPSI PROSES. PROSES MERUPAKAN UNIT TERKECIL YANG SECARA INDIVIDU MEMILIKI SUMBER DAYASUMBER DAYA YANG DIJADWALKAN SISTEM OPERASI

PERTEMUAN 1 PENGENALAN SISTEM KOMPUTER & SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 1 1

ARSITEKTUR DAN ORGANISASI KOMPUTER

Masalah Deadlock. Contoh Persimpangan Jalan. Resource-Allocation Graph. Deadlock

Kongkurensi LPOHLVSFOTJ!

MANAJEMEN PROSES SISTEM OPERASI. Teknik Informatika Definisi : Adalah program yang sedang dieksekusi

adil efisiensi waktu tanggap (response time) turn arround time throughput

MATERI 7 SISTEM OPERASI

Prio Handoko, S.Kom., M.T.I.

Sistem Operasi. Kongkurensi

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

MANAJEMEN PROSES Pertemuan ke 4

Struktur Sistem Operasi

Penggunaan Brute Force untuk Mendeteksi Potensi Terjadinya Deadlock

Concurrency C oncurrency 2 : Deadlock dan Starvation (P ( ertemuan ke ert -15) November 2014

Komponen sistem operasi modern : 1. Managemen Proses. 2. Managemen Memori Utama. 3.Managemen

Pengaturan Proses Dalam system operasi. proses

BAB II TINJAUAN PUSTAKA

OPERATING SYSTEM RAHMAD KURNIAWAN, S.T., M.I.T. UIN SUSKA RIAU

Tipe Sistem Operasi. Stand alone Network Embedded

DEADLOCK. KELOMPOK : Aurora Marsye Mellawaty Vidyanita Kumalasari Y

SISTEM OPERASI. Deskripsi Proses. Multiprogramming. Istilah dalam Proses. (multitasking) MANAJEMEN PROSES. Multiprogramming.

Sistem Operasi. Proses dan Thread

Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.

S.P. HARININGSIH, S.T.

Sistem Operasi AGUS PAMUJI. Teknik Informatika

Sistem Operasi. Deadlock

Departemen Ilmu Komputer/ Informatika Universitas Diponegoro Semester Gasal 2017/ 2018

Struktur Sistem Operasi

BAB 2 TINJAUAN PUSTAKA. b. Kapan dan selama berapa lama proses itu berjalan. a. Jenis pekerjaan yang akan diselesaikan

KONSEP PROSES STATUS PROSES

Struktur Sistem Komputer

SISTEM OPERASI. Oleh:

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

PENJADWALAN PROSES. Pendahuluan

Dukungan Sistem Operasi :

Arsitektur Komputer dan Pengenalan Sistem Operasi

Sistem Operasi - PCB (process control block)

Sistem Operasi. Teknologi Informasi

Struktur Sistem Komputer

Modul ke: Aplikasi Komputer. Sistem Operasi. Fakultas Fikom. Eppstian Syah As ari. Program Studi Jati Sampurna / Kranggan

Interaksi Antar Proses

Fungsi Manajemen Memori

Sistem Operasi Pertemuan 3 Deskripsi & Kendali Proses. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Konsep SISTEM OPERASI. Pengenalan Sistem Operasi

DASAR KOMPUTER. Dukungan Sistem Operasi

Konsep Dasar Kriteria Penjadualan Algoritma Penjadualan Penjadualan Multiple-Processor Penjadualan Real-Time Evaluasi Algorithm

4. SISTEM OPERASI TERDISTRIBUSI

Pendahuluan (1) Fungsi Dasar (1) Pendahuluan (2) Fungsi Dasar (2) 9/26/2007. Tujuan Mempelajari Sistem Operasi

Rahmady Liyantanto liyantanto.wordpress.com

BAB 2 LANDASAN TEORI

Kelas: Nilai (Diisi Dosen):... IF

IF3191- Penjadwalan Proses. Henny Y. Zubir. Departemen Teknik Informatika Institut Teknologi Bandung. IF-ITB/HY/24-Aug-03 IF3191 Penjadwalan Proses

Jawaban Soal UTS Instalasi dan Penggunaan Sistem Operasi Semester Genap 2014/2015 D3 Teknik Informatika, Fakultas Ilmu Terapan, Universitas Telkom

PEDOMAN WAWANCARA UNTUK PENGAJAR

Transkripsi:

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 Pinjaman- Pinjaman 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 Utilitas-utilitas Sistem operasi Perangkat Keras Sistem Komputer Pemrogram 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 Running Ready Status Deskripsi Pemroses sedang mengeksekusi instruksi proses itu. 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 Submit READY Dispatch RUNNING Completion Event occurs BLOCKED Event wait 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 READY Dispatch RUNNING Completion Event occurs BLOCKED Event wait Resume Suspend Resume Suspend State-state di-suspend. Suspended Ready I/O completion, atau event completion. 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 P 0 dan P 1 dan dua sumber daya R 0 dan R 1. P 0 R 1 R 0 P 1 (a) (b) Gambar 2.4 Graph meminta sumber daya dan alokasi sumber daya Gambar 2.4 (a) P 0 meminta sumber daya R 0, ditandai busur (edge) berarah dari proses P 0 ke sumber daya R 0. Gambar 2.15 (b) sumber daya R 1 dialokasikan ke P 1, ditandai busur berarah dari sumber daya R 1 ke proses P 1. Kemudian terjadi skenario berikut,

21 - P 0 sambil masih menggenggam R 0, meminta R 1. - P 1 sambil masih menggenggam R 1, meminta R 0. 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. P 0 R 0 R 1 P 1 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 R 1 R 3 Wait Held by Wait Held by P 1 P 2 P 3 Held by Held by R 2 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.