TUGAS PTKI B
1IA01
KELOMPOK 6
NAMA
ANGGOTA:
1. A.
A. GDE A. ADITYA PRATAMA (50414002)
2. APRYLIAN
MAULANA (51414476)
3. CHRISCEL
NOVIAN (52414375)
4. GHENDIS
SEKARHENING (54414514)
5. RINTO
IRAWAN (59414447)
1.
Pertanyaan 1 (Penjelasan bagaimana
Konsep proses dalam Sistem Operasi dan sebutkan juga jenis-jenis proses yang
ada dalam Sistem Operasi.)
Jawaban
:
KONSEP PROSES DALAM SISTEM OPERASI
DEFINISI SISTEM
OPERASI
Secara umum, Sistem
Operasi adalah software pada lapisan pertama yang ditempatkan pada memori
komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya
dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan
layanan inti umum untuk software-software itu. Layanan inti umum tersebut
seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user.
Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti
umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian
kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan
“kernel” suatu Sistem Operasi.
Kalau sistem komputer terbagi dalam lapisan-lapisan, maka
Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software.
Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting
dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan
secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya
dapat menggunakan memori, melakukan input dan output terhadap peralatan lain,
dan memiliki akses kepada sistem file. Apabila beberapa aplikasi berjalan
secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga
sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk
menggunakan prosesor (CPU) serta tidak saling mengganggu.
Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka
dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi
itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat
fungsi-fungsi tersebut dari awal.
Sistem Operasi secara umum
terdiri dari beberapa bagian:
1. Mekanisme Boot, yaitu
meletakkan kernel ke dalam memory
2. Kernel, yaitu inti dari sebuah Sistem Operasi
3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna
4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.
2. Kernel, yaitu inti dari sebuah Sistem Operasi
3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna
4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.
Proses adalah keadaan ketika sebuah program sedang di
eksekusi. Saat komputer berjalan, terdapat banyak proses yang berjalan secara
bersamaan. Sebuah proses dibuat melalui system call create-process yang
membentuk proses turunan (child process) yang dilakukan oleh proses
induk (parent process). Proses turunan tersebut juga mampu membuat
proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh
sumber-daya seperti waktu CPU, memori, berkas, atau perangkat I/O. Sumber daya
ini dapat diperoleh langsung dari sistem operasi, dari proses induk yang
membagi-bagikan sumber daya kepada setiap proses turunannnya, atau proses
turunan dan proses induk berbagi sumber-daya yang diberikan sistem operasi.
PENGELOLAAN PROSES
Proses perlu dikelola karena dalam sebuah proses membutuhkan
beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat
berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.
Sistem
operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan
managemen proses seperti:
v Pembuatan
dan penghapusan proses pengguna dan sistem proses.
v Menunda
atau melanjutkan proses.
v Menyediakan
mekanisme untuk proses sinkronisasi.
v Menyediakan
mekanisme untuk proses komunikasi.
v Menyediakan
mekanisme untuk penanganan deadlock.
Perkembangan sistem komputer mendatang adalah menuju ke sistem multi-
processing, multiprogramming, terdistribusi dan paralel yang mengharuskan
adanya proses-proses yang berjalan bersama dalam waktu yang bersamaan.
Hal demikian merupakan masalah yang perlu perhatian dari perancang sistem
operasi. Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu
proses disebut dengan kongkurensi (proses-proses yang kongkuren).
Proses-proses yang mengalami kongkuren dapat berdiri sendiri
(independen) atau dapat saling berinteraksi, sehingga membutuhkan
sinkronisasi atau koordinasi proses yang baik.
STATUS PROSES
Jenis status yang
mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat
berbeda-beda. Ada 3 macam status yang umum, yaitu:
1.
Ready, yaitu
status dimana proses siap untuk dieksekusi pada giliran berikutnya
2.
Running, yaitu
status dimana saat ini proses sedang dieksekusi oleh prosesor
3.
Blocked, yaitu
status dimana proses tidak dapat dijalankan pada saat prosesor siap/bebas
4.
New,Pembentukan
suatu proses
5.
Waiting,
Proses menunggu untuk beberapa event yang terjadi
6. Terminated, Proses telah selesai dieksekusi
Di antara status
Running, Ready dan Blocked, hanya terdapat 4 kemungkinan perubahan status,
yaitu:
1) Running
ke Blocked:
Terjadi jika proses
diblok, karena menunggu masukan atau menunggu selesainya aktivitas I/O.
2) Running ke Ready:
Terjadi jika Process
Scheduler menghentikan proses yang sedang running untuk memberikan kesempatan
pada proses lain menggunakan CPU.
3) Blocked ke Ready:
Terjadi jika ada
kejadian eksternal yang menyebabkan proses dapat dijalankan kembali. Misalnya
datangnya input atau selesainya suatu aktifitas I/O.
4) Ready ke Running:
Terjadi jika proses
siap untuk menggunakan CPU dan masukan yang sesuai untuk proses tersebut telah
tiba.
JENIS-JENIS PROSES YANG ADA DALAM SISTEM
OPERASI
Sistem Operasi merupakan software pertama yang
terdapat pada memori komputer pada saat komputer dijalankan. Sedangkan
software-software lainnya akan dijalankan setelah sistem operasi berjalan
terlebih dahulu. Setelah itu sistem operasi akan melakukan pelayanan terhadap
software-software tersebut. Beberapa layanan yang biasanya dapat dikerjakan
oleh sistem operasi yaitu:
- Akses Disk
- Manajemen Memory, Sistem Operasi Komputer menjamin aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input serta output terhadap peralatan lain, dan mempunyai akses kepada sistem file.
- Penjadwalan Program, Jika ada beberapa program yang berjalan secara bersamaan sistem operasi akan mengatur jadwal yang tepat dan teratur, sehingga program-program tersebut tidak crash serta dapat berjalan sesuai dengan antrian.
- Pengaturan antarmuka atau interface.
Secara umum Sistem Operasi adalah pengelola seluruh
sumber-daya yang terdapat pada sistem komputer dan menyediakan sekumpulan
layanan (system calls) ke pemakai sehingga memudahkan dan menyamankan
penggunaan serta pemanfaatan sumber-daya sistem komputer.
Secara umum juga dalam Sistem Operasi terdapat
beberapa bagian, diantaranya yaitu :
- Mekanisme Boot, yaitu meletakan kernel ke dalam memory kernel, kernel dapat dikatakan sebagai inti dari Sistem Operasi.
- Command Interpreter atau Shell, bertugas untuk membaca input berupa perintah dan menyediakan beberapa fungsi standar dan fungsi dasar yang dapat dipanggil oleh aplikasi/program maupun piranti lunak lain. Contoh dari Shell adalah : Command prompt pada Windows Xp (DOS pada Windows 98), XTerm dan Konsole di Mesin Linux (Unix).
- Resource Allocator. Sistem Operasi bertugas mengatur dan mengalokasikan sumber daya dari perangkat.
- Handler. Handler berperan dalam mengendalikan sistem perangkat agar terhindar dari kekeliruan (error) dan penggunaan sumber daya yang tidak perlu.
- Driver untuk berinteraksi dengan hardware sekaligus mengontrol kinerja hardware.
Jadi, pada intinya suatu Komputer atau laptop atau
smartphone akan dapat berjalan sebagaimana mestinya jika di dalamnya sudah
tertanam processor dan Sistem Operasi yang bertugas menjalankan serta
mengaturnya. dan kita sebagai pemakai yang cerdas menggunakan perangkat
tersebut.
Dijaman sekarang ini banyak sekali Sistem Operasi yang
beredar, mulai dari yang Close Source (
Windows, Mac )
hingga Open Source ( Linux, Android ).
tinggal kita sebagai pemakai yang berhak menentukan Sistem operasi apa yang
cocok dan nyaman kita gunakan untuk keperluan kita.
2. Pertanyaan
2(Jelaskan pengertian dari Penjadwalan proses, apa yang dimaksud dengan
Deadlock, apa yang dimaksud dengan Concurency).
Jawaban
:
PENGERTIAN PENJADWALAN PROSES
Penjadwalan merupakan kumpulan
kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan
kerja yang dilakukan sistem komputer. Proses penjadwalan yang akan dibahas
disini adalah proses penjadwalan sistem operasi.
Sasaran atau tujuan utama
penjadwalan proses optimasi kinerja menurut kriteria tertentu. dimana kriteria
untuk mengukur dan optimasi kerja penjadwalan antara lain :
- Agar semua pekerjaan memperoleh pelayanan yang adil (firness).
- Agar pemakaian prosesor dapat dimaksimumkan.
- Agar waktu tanggap dapat diminimumkan.
- Agar pemakaian sumber daya seimbang.
- Turn arround time, waktu sejak program masuk ke system sampai proses selesai.
- Efesien, proses tetap dalam keadaan sibuk tidak menganggur.
- Agar terobosan (thoughput) dapat dimaksimumkan.
Terdapat 3 tipe penjadwal berada
secara bersama-sama pada sistem operasi yang kompleks, yaitu:
1. Penjadwal
jangka pendek (short term scheduller)
Bertugas menjadwalkan alokasi pemroses
di antara proses-proses ready di memori utama Penjadwalan dijalankan setiap
terjadi pengalihan proses untuk memilih proses berikutnya yang harus
dijalankan.
2. Penjadwal
jangka menengah (medium term
scheduller)
Setelah eksekusi selama suatu waktu,
proses mungkin menunda sebuah eksekusi karena membuat permintaan layanan
masukan/keluaran atau memanggil suatu system call. Proses-proses tertunda tidak
dapat membuat suatu kemajuan menuju selesai sampai kondisi-kondisi yang
menyebabkan tertunda dihilangkan. Agar ruang memori dapat bermanfaat, maka
proses dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk
proses-proses lain. Kapasitas memori utama terbatas untuk sejumlah proses
aktif. Aktivitas pemindahan proses yang tertunda dari memori utama ke memori
sekunder disebut swapping. Proses-proses mempunyai kepentingan kecil saat itu
sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda
hilang dan dimasukkan kembali ke memori utama dan ready.
3. Penjadwal
jangka panjang (long term scheduller)
Penjadwal ini 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, masukan/keluaran), program-program ini
berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama
periode aktivitas job-job interaktif rendah.
PENGERTIAN DEADLOCK
Deadlock secara harfiah adalah kebuntuan, Di dalam sistem
operasi berarti suatu kondisi di mana sekumpulan proses tidak dapat berjalan
kembali atau tidak adanya komunikasi antar proses. Definisi lainnya yaitu
sekumpulan proses yang terblok yang tiap proses tersebut memegang sumber daya
dan menunggu untuk mendapatkan sumber daya yang dipegang oleh proses di dalam
kumpulan tersebut.
IlustrasiDeadlock
Penyebab utama terjadinya deadlock adalah terbatasnya
sumber daya yang akan digunakan oleh proses-proses. Tiap proses berkompetisi
untuk memperebutkan sumber daya yang ada. Jadi deadlock berhubungan erat dengan
tersedianya sumber daya dari komputer.
Penyebab utama terjadinya deadlock adalah
terbatasnya sumber daya yang akan digunakan oleh proses-proses. Tiap proses
berkompetisi untuk memperebutkan sumber daya yang ada. Jadi deadlock
berhubungan erat dengan tersedianya sumber daya dari komputer.
Menurut Coffman(1971) ada empat kondisi yang dapat
menyebabkan terjadinya deadloock. Keempat kondisi tersebut tidak dapat berdiri
sendiri, saling mendukung.
1. Mutual
Eksklusif: hanya ada satu proses yang bisa menggunakan sumber daya tersebut.
Jika ada proses lain yang meminta sumber daya tersebut, maka proses itu harus
menunggu sampai sumber daya dilepaskan.
2.
Memegang dan Menunggu: proses yang
meminta sumber daya sudah memegang sumber daya lainnya(meminta sumber daya
tambahan).
3.
Tidak ada Preemption: sumber daya yang
sudah dialokasikan untuk sebuah proses tidak bisa diminta oleh proses lain.
Sumber daya hanya bisa dilepaskan secara sukarela atau setelah proses tersebut
selesai menggunakannya.
4. Circular
Wait(menunggu berputar): kondisi seperti rantai yaitu saling menunggu smber
daya yang dipakai oleh proses yang menunggu sumber daya tersebut.
Method untuk Menangani Deadlock
Pada prinsipnya kita dapat menangani deadlock dengan
beberapa cara:
1. Menggunakan
protokol untuk pencegahan atau penghindaran deadlock, memastikan bahwa sistem
tidak akan memasuki kondisi deadlock.
2.
Kita bisa mendeteksi terjadinya deadlock lalu
memperbaiki.
3.
Kita juga bisa mengabaikan deadlock, hal ini
dilakukan pada sistem operasi berbasisUNIX.
Untuk
memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan
deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan
informasi tentang sumber daya yang mana yang akan suatu proses meminta dan
berapa lama akan digunakan. Dengan informasi tersebut dapat diputuskan apakah
suatu proses harus menunggu atau tidak. Hal ini disebabkan oleh keberadaan
sumber daya, apakah ia sedang digunakan oleh proses lain atau tidak. Jika
sebuah sistem tidak memastikan deadlock akan terjadi, dan juga tidak didukung
dengan pendeteksian deadlock serta pencegahannya, maka kita akan sampai pada
kondisi deadlock yang dapat berpengaruh terhadap performance system karena
sumber daya
tidak dapat
digunakan oleh proses sehingga proses-proses yang lain juga terganggu. Akhirnya
sistem akan berhenti dan harus direstart.
Pencegahannya sebagai berikut:
1.
Masalah Mutual Eksklusif
Kondisi ini tidak dapat dilarang, jika aksesnya perlu
bersifat spesial untuk satu proses,maka hal ini harus didukung oleh kemampuan
sistem operasi. Jadi diusahakan agar tidak menggunakan kondisi spesial tersebut
sehingga sedapat mungkin deadlock dapat dihindari.
2.
Masalah Kondisi Menunggu dan Memegang
Penanggulangan deadlock dari kondisi
ini lebih baik dan menjanjikan, asalkan kita dapat memegang sumber daya untuk
menunggu sumber daya lain, kita dapat mencegah deadlock. Caranya ialah dengan
meminta semua sumber daya yang ia butuhkan sebelum proses berjalan. Tetapi
masalahnya sebagian proses tidak mengetahui keperluannya sebelum ia berjalan.
Jadi untuk mengatasi hal ini, kita dapat menggunakan algoritma bankir. Sistem
operasi atau sebuah protokol mengatur hal ini. Hasil yang dapat terjadi adalah
sumber daya lebih harus dispesifikasikan dan kelaparan sumber daya, atau proses
yang membutuhkan sumber daya yang banyak harus menunggu sekian lama untuk
mendapatkan sumber daya yang ia butuhkan.
3.
Masalah tidak preemption
Hal ketiga ialah jangan sampai ada preemption pada
sumberv daya yang telah dialokasikan. Untuk memastikan hal ini, kita dapat
menggunakan protocol. Jadi jika sebuah proses meminta sumber daya yang tidak
dapat ia penuhi saat itu juga, maka proses mengalami preempted. Dengan kata
lain ada sumber daya dilepaskan dan diberikan ke proses yang menunggu, dan
proses itu akan menunggu sampai kebutuhan sumber dayanya dipenuhi. Cara lain
yaitu dengan mengecek apakah sumber daya yang dicari proses tersedia atau
tidak. Jika ada maka langsung dialokasikan tetapi jika tidak maka kita cek
apakah ada proses lain yang sedang menunggu sumber daya juga. Jika ya maka kita
ambil sumber daya dari proses yang sedang menunggu tersebut dan memberikan
kepada proses yang meminta sumber daya tersebut. Jika tidak tersedia juga maka
proses tersebut harus menunggu. Dalam menunggu beberapa dari sumber dayanya
dapat saja dipreempted jika ada proses yang memintanya. Cara ini efektif untuk
proses yang menyimpan dalam memory atau register.
4.
Masalah lingkaran tunggu
Masalah ini dapat ditangani oleh sebuah protocol yang menjaga agar sebuah
proses tidak membuat lingkaran sikus yang dapat mengakibatkan deadlock dengan
cara memberikan penomoran kepada sumber daya, dan bila suatu proses meminta
sumber daya lagi maka ia hanya dapat meminta sumber daya yang nomornya lebih
tinggi dari yang ia minta sebelumnya.
Penghindaran Deadlock
Algoritma Bankir Menurut
Djikstra(1965) algoritma penjadwalan dapat menghindari deadlock dan algoritma
penjadwalan tersebut dikenal dengan algoritma bankir. Algoritma ini dapat
digambarkan, ada seorang bankir yang akan meminjamkan kepada
peminjam-peminjamnya. Setiap peminjam memberikan batas pinjaman maksimum. Tentu
saja bankir tahu bahwa peminjam tidak akan meminjam dana maksimum secara
langsung melainkan bertahap. Bankir memprioritaskan kepada peminjam yang
meminjam dana lebih banyak, sedangkan yang lain disuruh menunggu hingga
peminjam yang lebih besar mengembalikan dananya, baru setelah itu ia
meminjamkan kepada peminjam yang lain. Jadi algoritma bankir disini
mempertimbangkan apakah permintaan proses sesuai dengan jumlah sumber daya yang
ada dan sekaligus memperkirakan jumlah sumber daya yang mungkin diminta lagi.
Jangan sampai ketika ada proses yang meminta sumber daya tetapi sumber dayanya
habis atau tidak ada lagi jika tidak maka akan terjadi deadlock.
Secara umum algoritma bankir dibagi menjadi 4 struktur data:
1. Tersedia: jumlah sumber daya yang tersedia
2. Alokasi: jumlah sumber daya yang dialokasikan untuk setiap proses
3. Maksimum: jumlah permintaan sumber daya oleh proses
4. Kebutuhan: maksimum-alokasi(sisa sumber daya yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan)
Pemulihan Deadlock
1. Terminasi Proses
Abort semua proses yang deadlock
Metode ini akan mematahkan deadlock cycle, tetapi bisa
saja proses-proses yang deadlock telah dikomputasi dalam waktu yang lama dan
hasil-hasil komputasi parsial harus dibuang, sehingga ada kemungkinan harus
dikomputasi ulang. Abort satu proses
pada satu waktu sampai deadlock tereliminir. Metode ini sangat mungkin
mendatangkan overhead, setelah setiap proses di-abort, algoritma pendeteksian
deadlock harus diminta kembali untuk menentukan apakah masih ada proses-proses
yang deadlock. Jika terminasi parsial digunakan, kita harus menentukan
proses-proses deadlock yang mana yang harus diterminasi. Penentuan ini pada
dasarnya berkaitan dengan ekonomi.
Kita harus abort
proses-proses yang terminasinya minimum cost. Sayangnya, minimum cost tidak
ditentukan satu hal. Banyak faktor yang mempengaruhi pemilihan proses,
mencakup:
·
Apa prioritas dari proses
·
Berapa lama proses telah mengkomputasi
dan berapa lama lagi proses akan mengkomputasi sebelum menyelesaikan
tugasnya
·
Berapa banyak dan apa tipe dari sumber
daya yang digunakan oleh proses
·
Berapa sumber daya lagi yang dibutuhkan
proses supaya selesai
·
Berapa banyak proses yang perlu
diterminasi Apakah proses interactive atau batch
2.
Preempt Sumber Daya
Mengeliminasi deadlock menggunakan preempt sumber daya
berarti kita berturut-turut preempt beberapa sumber daya dari suatu proses dan
memberikan sumber daya ini ke proses lain sampai deadlock cycle patah.
Pada preempt sumber daya
v Memilih korban
Seperti pada terminasi proses, kita harus menentukan
sumber daya dan proses mana yang akan dipreempt dengan minimum cost. Faktor
cost mencakup parameter-parameter seperti jumlah dari sumber daya yang ditahan
proses-proses yang deadlock dan jumlah waktu
dari proses yang telah digunakan selama eksekusinya.
v Rollback
Jika kita preempt sebuah sumber daya dari sebuah proses, proses tidak dapat
berlanjut dengan eksekusi normal karena proses kehilangan beberapa sumber daya
yang diperlukan. Kita harus rollback proses ke beberapa safe state dan restart
dari state tersebut. Secara umum, sulit untuk menentukan safe state. Solusi
termudah adalah dengan total rollback, abort proses, dan restart.
v Starvation
Dalam sebuah sistem di mana pemilihan korban berdasar
primer pada faktor cost, dapat terjadi suatu proses tidak pernah menyelesaikan
tugasnya karena suatu sumber daya selalu di-preempt pada proses yang sama. Kita
harus memastikan bahwa sebuah proses dapat dipilih sebagai korban hanya dengan
batasan waktu tertentu. Solusi pada umumnya adalah dengan menambahkan jumlah
rollback ke dalam faktor cost.
PENGERTIAN CONCURRENCY
Concurensy merupakan landasan umum perancangan sistem
operasi. Proses-proses disebut concurrensy jika proses-proses (lebih dari satu proses)
berada pada saat yang sama. Proses-proses yang mengalami kongkuren dapat
berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga
membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan
kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi
dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa
berada.
Proses
yang kongkuren ini mempunyai beberapa masalah yang harus diselesaikan, yaitu :
Mutual Exclusion
Mutual Exclusion adalah
suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau
berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan
dikeluarkan dari pekerjaan yang sama. Jadi, Mutual Exclusive terjadi ketika hanya ada satu proses yang boleh
memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut
harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang
memakai sumber daya tersebut.
Pengertian lain Mutual exclusion adalah jaminan hanya satu proses yang
mengakses sumber daya pada suatu interval waktu tertentu, sedangkan proses lain
dilarang mengerjakan hal yang sama -> contoh : sumberdaya printer hanya bisa
diakses 1 proses, tidak bisa bersamaan -> sumber daya ini disebut sumber
daya kritis dan bagian
program yang menggunakan sumber daya kritis disebut critical region / section.
Hanya satu program pada satu saat yang diijinkan masuk ke critical region.
Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan
memaksakan batasan ini, karena maksud program tidak dapat diketahui oleh sistem
operasi. Hanya saja, system operasi menyediakan layanan (system call) yang bertujuan untuk
mencegah proses lain masuk ke critical
section yang sedang digunakan proses tertentu. Pemrograman harus
menspesifikasikan bagian-bagian critical
section, sehingga sistem operasi akan menjaganya.
Pentingnya mutual exclusion adalah jaminan hanya satu proses
yang mengakses sumber daya pada suatu interval waktu.
Pemaksaan
atau pelanggaran mutual exclusion menimbulkan
:
· Deadlock
· Starvation
· Deadlock (buntu)
· Sinkronisasi
Syncronization
Sinkronisasi adalah proses pengaturan jalannya beberapa
proses pada saat yang bersamaan. Tujuan utama sinkronisasi adalah menghindari
terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang
berbeda (mutual exclusion) serta untuk mengatur urutan jalannya proses-proses
sehingga dapat berjalan dengan lancar dan terhindar dari deadlock dan
starvation. Sinkronisasi umumnya dilakukan dengan bantuan perangkat
sinkronisasi. Penyelesaian terhadap masalah ini sangat penting karena
perkembangan teknologi sistem komputer menuju ke sistem multiprocessing, terdistribusi dan paralel yang mengharuskan
adanya proses-proses kongkuren.
Concurrency Deadlock
Deadlock adalah suatu kondisi dimana dua
proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena
beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja
proses-proses tersebut. Deadlock
adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah
oleh satu proses saja dalam satu waktu. Di kehidupan nyata, deadlock dapat digambarkan dalam
gambar berikut.Pada gambar diatas, deadlock
dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam
kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan
jembatan (resource), begitu
juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua
antrian tersebut.Misal ada proses A mempunyai resource X, proses B mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses
A memerlukan resource Y dan
proses B memerlukan resource X,
tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai
dilakukan. Sehingga akan terjadi tunggu-menunggu.
Starvation
Starvation adalah kondisi yang biasanya
terjadi setelah deadlock.
Proses yang kekurangan resource
(karena terjadi deadlock) tidak
akan pernah mendapat resource
yang dibutuhkan sehingga mengalami starvation
(kelaparan). Namun, starvation
juga bisa terjadi tanpa deadlock.
Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan
dalam pembagian resouce. Satu
proses selalu mendapat resource,
sedangkan proses yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat
di bawah ini.Pada gambar diatas, pada antrian kanan terjadi starvation karena resource (jembatan) selalu dipakai
oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran.
Penanganan Deadlock
Terdapat beberapa cara dalam menangani deadlock, yang secara
umumnya ada 4 cara untuk menangani keadaan deadlock, yaitu:
1. Pengabaian. Maksud dari pengabaian
dari kata tersebut yaitu sistem mengabaikan terjadinya deadlock dan
berpura-pura tidak mengetahui jika deadlock telah terjadi. Dalam penanganan
dengan cara ini dikenal dengan istilah ostrich algorithm. Pelaksanaan algoritma
ini yaitu sistem tidak mendeteksi adanya deadlock dan secara otomatis mematikan
proses atau program yang mengalami deadlock. Kebanyakan
sistem operasi yang ada mengadaptasi cara ini untuk menangani keadaan deadlock.
Cara penanganan dengan mengabaikan deadlock banyak digunakan karena masalah
deadlock tersebut jarang terjadi dan relatif rumit dan kompleks untuk
diselesaikan. Sehingga biasanya diabaikan oleh sistem untuk kemudian
diselesaikan masalahnya oleh user atau pengguna dengan cara melakukan terminasi
dengan Ctrl+Alt+Del atau melakukan restart terhadap komputer.
2. Pencegahan. Penanganan ini dengan cara
mencegah munculnya salah satu karakteristik deadlock. Penanganan ini
dilaksanakan pada saat deadlock belum terjadi pada sistem. Yang terutama
memastikan agar sistem tidak akan pernah berada pada kondisi deadlock.
3
Penghindaran.
Menghindari keadaan deadlock. Bagian yang perlu diperhatikan yaitu bahwa antara
pencegahan dan penghindaran adalah berbeda. Pencegahan lebih mengarah kepada
mencegah salah satu dari empat karakteristik terjadinya deadlock, sehingga
deadlock pun tidak terjadi. Sedangkan penghindaran merupakan memprediksi apakah
tindakan yang diambil oleh sistem, dalam kaitannya dengan permintaan proses
akan sumber daya, dapat mengakibatkan terjadi deadlock.
3. Pendeteksian dan
Pemulihan. Pada sistem yang sedang berada pada kondisi deadlock, tindakan
yang harus diambil adalah tindakan yang bersifat represif. Tindakan tersebut
adalah dengan mendeteksi adanya deadlock, kemudian memulihkan kembali sistem.
Proses pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock
atau tidak serta proses mana yang mengalami deadlock.
Metode
untuk Mengatasinya
Metode untuk megatasinya adalah
sebagai berikut:
1. Masalah Mutual Eksklusif Kondisi ini
tidak dapat dilarang, jika aksesnya perlu bersifat spesial untuk satu proses,
maka hal ini harus di dukung oleh kemampuan sistem operasi. Jadi diusahakan
agar tidak mempergunakan kondisi spesial tersebut sehingga sebisa mungkin deadlock bisa dihindari.
2. Masalah Kondisi Menunggu dan
Memegang Penanggulangan deadlock
dari kondisi ini lebih baik dan menjanjikan, asalkan kita bisa menahan proses
yang memegang sumber daya untuk tidak menunggu sumber daya laun, kita bisa
mencegah deadlock. Caranya
ialah dengan meminta semua sumber daya yang ia butuhkan sebelum proses berjalan.
Tetapi masalahnya sebagian proses tidak mengetahui keperluannya sebelum ia
berjalan. Jadi untuk mengatasi hal ini, kita dapat menggunakan algoritma
bankir. Yang mengatur hal ini bisa sistem operasi ataupun sebuah protokol.
Hasil yang bisa terjadi ialah sumber daya lebih di-spesifikasi dan kelaparan
sumber daya, atau proses yang membutuhkan sumber daya yang banyak harus
menunggu sekian lama untuk mendapat sumber daya yang dibutuhkan.
3. Masalah tidak ada Preemption.Hal ketiga ialah jangan
sampai ada preemption pada
sumber daya yang telah dialokasikan. Untuk memastikan hal ini, kita bisa
menggunakan protokol. Jadi jika sebuah proses meminta sumber daya yang tidak
dapat dipenuhi saat itu juga, maka proses mengalami preempted. Atau dengan kata
lain ada sumber daya dilepaskan dan diberikan ke proses yang menunggu, dan
proses itu akan menunggu sampai kebutuhan sumber dayanya dipenuhi. Atau kita
harus mencek sumber daya yang dimaui oleh proses di cek dahulu apakah tersedia.
Jika ya maka kita langsung alokasikan, sedangkan jika tidak tersedia maka kita
melihat apakah ada proses lain yang menunggu sumber daya juga. Jika ya, maka
kita ambil sumber daya dari proses yang menunggu tersebut dan memberikan pada
proses yang meminta tersebut. Jika tidak tersedia juga, maka proses itu harus
menunggu. Dalam menunggu, beberapa dari sumber dayanya bisa saja di preempted,
tetapi jika ada proses yang memintanya. Cara ini efektif untuk proses yang
menyimpan dalam memory atau register.
4. Masalah Circular Wait Masalah ini
dapat ditangani oleh sebuah protokol yang menjaga agar sebuah proses tidak
membuat lingkaran siklus yang bisa mengakibatkan deadlock .
3. Pertanyaan 3 (Jelaskan
secara umum Sistem operasi UNIX dan pengertian dari Konsep sistem operasi UNIX).
Jawaban
:
SISTEM
OPERASI UNIX
Unix
adalah sebuah operasi yang asal mulanya dikembangkan pada Laboratoriun Bell AT
dan T. Sistem operasi adalah perangkat lunak komputer yang mengendalikan
operasi dasar, sistem komputer unix terdiri dari atas jumlah program yang dirancang
untuk mengontrol interaksi antara fungsi-fungsi pada mesin yang berasas rendah
dengan program aplikasi
Tugas dari sistem
operasi :
·
Melakukan fungsi manajement sistem
berkas
·
Mengendalikan berbagai sumber pada
sistem seperti disk dan printer
·
Mengatur sejumlah pemakai yang
menggunakan sistem bersamaan
·
Membentuk penjadualan proses-proses di
dalam system
Sejarah
Unix
Sistem
operasi Unix di buat oleh Ken Thompson dan Dennis Ritchie di Bell Laboratories
(A&T Bell Lab) pada tahun 1960-an. Filosofi rancangan Unix adalah untuk
membuat sebuah sistem operasi yang efisien untuk mengembangkan program
aplikasi. Efisien disini juga mencakup masalah penggunaan memori dengan baik
dan kemu. Sejarah Unix dimulai dari MULTICS ( MULTIplexed Information and
Computing Service) merupakan sistem operasi yang besar dan kompleks. Namun pada
tahun 1969 proyek MULTICS dihentikan karena dirasa sistem operasi ini mempunyai
kelemahanPada tahun yang sama, 1969, Ken Thompson membangun sebuah sistem
operasai yang bertujuan untuk mengatasi kelemahan pada MULTICS.Sistem operasi
inilah yang yang selanjutnya dikenal dengan nama UNIX.dahan dalam perawatan
sistem. UNIX sendiri berasal dari kata UNICS (UNIplexed Information and
Computing System Filosofi rancangan Unix adalah untuk membuat sebuah sistem
operasi yang efisien untuk mengembangkan program aplikasi. Efisien disini juga
mencakup masalah penggunaan memori dengan baik dan kemudahan dalam perawatan
sistem.
Pada
mulanya Unix dikembangkan dengan DEC (Digital Equipment Corp) tipe PDP-7. Unix pada
mulanya digunakan untuk proyek pemrosesan teks. Edisi pertama muncul pada tahun
1971 dengan kemampuan seperti sistem file, pengelolaan proses, sistem antarmuka
dan beberapa utilitas. Edisi Kedua muncul pada tahun 1972 dan Unix masih di
tulis dalam bahasa mesin (assembly). Thompson mulai bekerja dengan bahasa B
turunan dari BCPL. Ritchie mengadakan perbaikan dengan menghasilkan bahasa C,
Ternyata bahasa C cukup handal dan banyak utilitas yang dibuat dengan bahasa
C.Tahun 1973, Unix ditulis kembali dengan menggunakan bahasa C dan menjadi
sukses besar. Unix dikenal sebagai sistem operasi yang diimplementasikan dengan
bahasa C. Unix terus dikembangkan dan sistem V merupakan pengembangan dari Unix
Sistem III yang di produksi AT&T.
Unix
sebagai penghubung antara pemakai medan mesin komputer terdiri dari beberapa
bagian yaitu :
1.
Kernel, yaitu bagian yang langsung
berhubungan dengan semua perangkat keras yang ada
2.
Utility, yaitu himpunan program yang
masing-masing bermanfaat untuk menyelesaikan pekerjaan tertentu.
3.
Shell, Yaitu sebuah program utility
khusus untuk menerima perintah dari pemakai dan meneruskannya kepada kernel
supaya menjalankan utility lain serta melaporkan keadaan sistem kepada pemakai.
Kernel
Unix diimplementasikan oleh Ken Thompson dan Dennis Ritchie sebagai sistem
operasi yang berkemampuan multiuser dan multitasking. Konsep ini terdiri dari
proses kontrol dimana Unix dapat membesakan antara proses pengguna dan proses
sistem, lalu disinkronisasikan antara proses dan penjadwalan, mekanisme swapping,
blok I/O dan krakter sistem I/O, disk drive,
sistem file dan fungsi lainnya.
KONSEP
PROSES PADA SISTEM OPERASI UNIX
Setiap
proses diberi nomor khusus sebagai identifikasi yang disebut process
identification atau PID berupa angka integer unik.
Jika
proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID
dibebaskan kembali.
Proses dibuat
menggunakan system call fork() yang sering disebut forking proses
System call fork()
mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu :
1.
Proses pemanggil disebut PARENT
2.
Proses hasil kopian disebut CHILD
Proses
CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.
Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal
di masing –masing proses pada aris setelah pemanggilan system call fork().
Proses
pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali sehingga
memungkinkan terdapat banyak proses CHILD yang dieksekusi.
Proses
CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat
terbentuk struktur pohon proses.
Parent
dapat menghentikan eksekusi proses child dengan menggunakan system call abort.
Proses anak dihentikan parent karena beberapa alasan, antara lain :
v Child
mengalokasikan sumber daya melampaui batas
v Tugas
child tidak dibutuhkan lebih lanjut
v Parent
berhenti, karena system operasi tidak mengijinkan child untuk melanjutkan jika
parent berhenti dan terminasi dilanjutkan
v Alasan
lain adalah:
v Proses
selesai mengerjakan tugasnya(selesai normal)
v Proses
berjalan melebihi batas waktu
v Memory
tidak tersedia
v Proses
mengakses kawasan memori yang tidak boleh diakses
v Terjadi
kesalahan karena pelanggaran proteksi
v Terjadi
kesalahan perhitungan
v Proses
menunggu terlalu lama
v Terjadi
kegagalan I/O
v Proses
mengeksekusi instruksi yang tidak ada
v Proses
mengguinakan instruksi yang disimpan untuk SO
v Terjadi
kesalahan penggunaan data
v Terjadi
intervensi dari operator atau SO (contoh : deadlock)
v Proses
induk berahir
4. Pertanyaan 4 (Sebutkan
ciri-ciri sistem operasi UNIX, Jelaskan penggertian Shell dan Kernel pada
UNIX).
Jawaban
:
CIRI-CIRI
SISTEM UNIX
1. Portabilitas, yaitu sistem Unix mudah diadaptasikan
ke sistem komputer yang lain atau pada berbagai jenis komputer.
2. Multiuser, yaitu sejumlah pemakai dapat menggunakan sistem komputer pada waktu bersamaan.
3. Multitasking, yaitu sistem dapat menjalankan banyak proses atau program dalam waktu bersamaan.
4. Sistem berkas Hirarki, yaitu memungkinkan user(pemakai) mengorganisasikan informasi/data yang ia miliki ke dalam bentuk yang lebih mudah diingat serta mudah dalam mengaksesnya.
5. Utilitas, yaitu program yang disesuaikan dengan kebutuhan tertentu si pemakai.
SHELL DAN KERNEL
SHELL
Dalam lingkungan unix, kata ‘shell’
mengacu pada semua program yang dapat
dijalankan pada command line. Jadi secara sederhana shell script merupakan
kumpulan perintah yang disimpan pada suatu file. Extensi umum yang digunakan
untuk shell script adalah ‘.sh’, sebenarnya hal ini tidak mutlak karena
pada dasarnya unix mengabaikan extensi file.
dijalankan pada command line. Jadi secara sederhana shell script merupakan
kumpulan perintah yang disimpan pada suatu file. Extensi umum yang digunakan
untuk shell script adalah ‘.sh’, sebenarnya hal ini tidak mutlak karena
pada dasarnya unix mengabaikan extensi file.
Shell juga dapat mengacu pada
program yang menangani command line itu
sendiri dalam sistem operasi UNIX program tersebut adalah Bourne Shell
(1978 – Steve Bourne) disingkat sh. Dalam sistem operasi GNU/Linux shell yang
menjadi standar adalah Bourne Again Shell(bash). Bash merupakan shell yang
kompatibel dengan sh dan memiliki lebih banyak fitur.
sendiri dalam sistem operasi UNIX program tersebut adalah Bourne Shell
(1978 – Steve Bourne) disingkat sh. Dalam sistem operasi GNU/Linux shell yang
menjadi standar adalah Bourne Again Shell(bash). Bash merupakan shell yang
kompatibel dengan sh dan memiliki lebih banyak fitur.
Jika anda ingin menguasai shell
script tentu anda harus tahu dan hafal
sedikit banyak perintah dasar command line, seperti mengkopi file(cp),
merename file(mv), mencetak string (echo), melihat file(cat), dan beberapa
perintah dasar lainnya.
sedikit banyak perintah dasar command line, seperti mengkopi file(cp),
merename file(mv), mencetak string (echo), melihat file(cat), dan beberapa
perintah dasar lainnya.
Shell script juga menyediakan
beberapa fitur yang tersedia pada bahasa
pemrograman tingkat tinggi seperti variabel, percabangan dan perulangan.
Berikut ini adalah contoh sederhana penggunakan shell script:
pemrograman tingkat tinggi seperti variabel, percabangan dan perulangan.
Berikut ini adalah contoh sederhana penggunakan shell script:
dani@ilkom:~$
vi hello.sh
#!/bin/sh
echo ‘HELLO WORLD’
#!/bin/sh
echo ‘HELLO WORLD’
Untuk menjalankan ada dua cara, pertama melalui program shell itu sendiri
dani@ilkom:~$ sh hello.sh
Kedua adalah mengeksekusinya secara
independen, untuk melakukan hal tersebut
anda harus memberi permission ‘execute’ pada file.
anda harus memberi permission ‘execute’ pada file.
dani@ilkom:~$
chmod +x hello.sh
dani@ilkom:~$ ./hello.sh
HELLO WORLD
dani@ilkom:~$ ./hello.sh
HELLO WORLD
Baris pertama #!/bin/sh adalah
mutlak diperlukan dan harus diletakkan pada
BARIS PERTAMA agar file yang anda buat dikenali sistem sebagai shell script.
Tanda ‘#!’ sering disebut ‘shebang’ operator. Tanda tersebut menandakan
bahwa file tersebut adalah shell script. Sisanya misal ‘/bin/sh’ adalah
lokasi file binari atau program. Dalam contoh kita menggunakan program
bash ‘/bin/sh’ atau ‘/bin/bash’.
BARIS PERTAMA agar file yang anda buat dikenali sistem sebagai shell script.
Tanda ‘#!’ sering disebut ‘shebang’ operator. Tanda tersebut menandakan
bahwa file tersebut adalah shell script. Sisanya misal ‘/bin/sh’ adalah
lokasi file binari atau program. Dalam contoh kita menggunakan program
bash ‘/bin/sh’ atau ‘/bin/bash’.
Tanda # jika tidak terletak pada
baris dan kolom paling awal akan dianggap
sebagai komentar oleh shell.
sebagai komentar oleh shell.
KERNEL
Kernel adalah jembatan antara
hardware dan aplikasi-aplikasi yang menerjemahkan bahasa software sehingga
mampu dimengerti oleh hardware dan hardware akan segera memprosesnya sesuai
dengan permintaan. Akibatnya hal tersebut memungkinkan pengguna untuk
menggunakan atau bekerja dengan komputernya melalui software.
Hal-hal yang dilakukan oleh Kernel :
Ø interrupt
handler – yang mampu menangani I/O request
Ø memory
management Untuk melakukan hal-hal tersebut, beberapa orang/kelompok mempunyai
pertimbangan dan arahan pengembangan yang berbeda. Hal ini yang menyebabkan
Operating System muncul dalam berbagai jenis.
Ø Windows 3.11
dengan metoda non pre-emptive multitasking yang kemudian dikembangkan dalam
Windows 9x menjadi Pre-Emptive MultiTasking.
Ø Windows yang
menggunakan Driver untuk mengakses hardware, berbeda dengan Unix lainnya yang
memasukkannya ke dalam kernel. Linux, MacOS dan BeOS adalah hibrid dari dua
konsep ini, sebagian (yang esensial) dimasukkan ke dalam kernel dan sisanya
dijadikan module-module (karena tidak semua komputer perlu/sama).
No comments:
Post a Comment