widget

Wednesday, November 19, 2014

Seputar Sistem Operasi



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.
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:

  1. Akses Disk
  2. 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.
  3. 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.
  4. 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 :
  1. Mekanisme Boot, yaitu meletakan kernel ke dalam memory kernel, kernel dapat dikatakan sebagai inti dari Sistem Operasi.
  2. 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).
  3. Resource Allocator. Sistem Operasi bertugas mengatur dan mengalokasikan sumber daya dari perangkat.
  4. Handler. Handler berperan dalam mengendalikan sistem perangkat agar terhindar dari kekeliruan (error) dan penggunaan sumber daya yang tidak perlu.
  5. 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.
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.
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.
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:
dani@ilkom:~$ vi hello.sh
#!/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.
dani@ilkom:~$ chmod +x hello.sh
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’.
Tanda # jika tidak terletak pada baris dan kolom paling awal akan dianggap
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