Sunday, June 12, 2011

Tugas Sistem Operasi

1. Keuntungan dari Approach Layer pada OS Design memeliki semua kelebihan rancangan modular, yaitu :
  • Tiap lapisan dapat dirancang, dikode dandiuji secara independen
  • Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi
  • Mempermudah debug dan verifikasi sistem
  • Lapisan pertama bisa di-debug tanpa mengganggu sistem yang lain
Kerugian dari Approach Layer pada OS Design
  • • fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati
  • • Hanya bisa menggunakan lapisan dibawahnya
  • • Tidak efisien dibandingkan tipe yang lain



2. Berikut ini adalah kategori-kategori layanan yang diberikan oleh sistem operasi:
  • Antarmuka. Sistem operasi menyediakan berbagai fasilitas yang membantu programmer dalam membuat program seperti editor. Walaupun bukan bagian dari sistem operasi, tapi layanan ini diakses melalui sistem operasi.
  • Eksekusi Program. Sistem harus bisa me- load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusian baik secara normal maupun tidak (ada error).
  • Operasi Masukan/Keluaran. Program yang sedang dijalankan kadang kala membutuhkan Masukan/Keluaran. Untuk efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur piranti masukan/keluaran secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi masukan/keluaran.
  • Manipulasi Sistem Berkas. Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
  • Komunikasi. Kadang kala sebuah proses memerlukan informasi dari proses lain. Ada dua cara umum dimana komunikasi dapat dilakukan. Komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda tetapi dihubungkan oleh jaringan komputer. Komunikasi dapat dilakukan dengan share-memory atau message-passing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
  • Deteksi Error. Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, masukan/keluaran, dan di dalam program yang dijalankan pengguna. Untuk setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahanan jalannya proses komputasi, misalnya dengan menghentikan jalannya program, mencoba kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan yang terjadi agar pengguna dapat mengambil langkah selanjutnya.
  • Disamping pelayanan di atas, terdapat juga layanan-layanan lain yang bertujuan untuk mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu yaitu:
  • Alokasi Sumber Daya. Ketika beberapa pengguna menggunakan sistem atau beberapa program dijalankan secara bersamaan, sumber daya harus dialokasikan bagi masing-masing pengguna dan program tersebut.
  • Accounting. Kita menginginkan agar jumlah pengguna yang menggunakan sumber daya, dan jenis sumber daya yang digunakan selalu terjaga. Untuk itu maka diperlukan suatu perhitungan dan statistik. Perhitungan ini diperlukan bagi seseorang yang ingin merubah konfigurasi sistem untuk meningkatkan pelayanan.
  • Proteksi. Layanan proteksi memastikan bahwa segala akses ke sumber daya terkontrol; dan tentu saja keamanan terhadap gangguan dari luar sistem tersebut. Keamanan bisa saja dilakukan dengan terlebih dahulu mengindentifikasi pengguna. Ini bisa dilakukan dengan meminta password bila ingin menggunakan sumber daya



3. Keuntungan dari microkernel approach pada system design :
  • - Ketika layanan baru akan ditambahkan ke user-space, kernel tidak perlu di-modif
  • - OS lebih mudah ditempatkan (porting) pada suatu desain perangkat keras ke desain perangkat keras lainnya (asrsitektur sistem yang baru)
  • - Mendukung keamanan & reliabilitas lebih



4. Perbedaan antara preemptive dan non preemptive design
  • Preemptive: OS dapat mengambil (secara interrupt, preempt) CPU dari satu proses setiap saat.
Penjadwalan preemptive mungkin akan dijalankan ketika proses dalam keadaan :
- Brubah dari running ke waiting state
- Berubah dari running ke ready state
- Berubah dari waiting ke ready state
- Dihentikan
  • Non-preemptive: setiap proses secara sukarela (berkala) memberikan CPU ke OS.
Penjadwalan Non Preemptive terjadi ketika proses hanya :
-. Berjalan dari running state sampai waiting state
-. Dihentikan




5. Yang membedakan PCS dan SCS scheduling
  • Process-contention scope (PCS): scheduling competition is within the process Many-to-one and many-to-many models, thread library schedules user-level threads to run on LWP
Kernel thread scheduled onto available CPU is system-contention scope (SCS) – competition among all threads in systemUntuk menjadwalkan thread , sistem dengan model multithreading many to many atau
many to one menggunakan:

a. Process Contention Scope (PCS) . Pustaka thread menjadwalkan thread pengguna untukberjalan pada
    LWP (lightweight process ) yang tersedia.
b.System Contention Scope (SCS) . SCS berfungsi untuk memilih satu dari banyak thread,
   kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel).



6.Berikan alasan mengapa Solaris, Windows XP, and Linux mengimplementasikan mekanisme multiple locking. Jelaskan keadaan dimana mereka menggunakan spinlock, mutexes, semaphores, adaptive mutexes, dan condition variables. Pada setiap kasus, jelaskan mengapa mekanisme tersebut dibutuhkan.

Sistem operasi menyediakan mekanisme penguncian yang berbeda tergantung pada kebutuhan pengembang aplikasi. Spinlocks adalah berguna untuk sistem multiprosesor di mana thread dapat dijalankan dalam busy-loop (untuk jangka waktu yang pendek) daripada menimbulkan biaya overhead yang dimasukkan ke dalam sleep queue. Mutexes berguna untuk mengunci sumber daya. Solaris 2 menggunakan mutexes adaptif, berarti bahwa mutex ini diimplementasikan dengan spinlocks pada mesin multiprosesor. Semaphore dan variabel kondisi sebagai alat yang lebih tepat untuk sinkronisasi ketika sumberdaya harus dipegang untuk jangka waktu yang panjang, karena berputar secara tidak efisien untuk durasi panjang.



7. Konsep dari Transaction Atomicity

Atomisitas adalah properti “all or none” atau “seluruhnya atau tidak sama sekali”, maksudnya seluruh aksi di transaksi dilakukan atau tidak dilakukan sama sekali. Properti ini merupakan perluasan operasi tunggal menjadi seluruh operasi di transaksi. Atomisitas berarti jika eksekusi transaksi mengalami kegagalan, system bertanggungjawa melakukan pemulihan terhadap kegagalan dengan meniadakan efek-efek operasi-operasi yang telah dilakukan, mengembalikan sistem ke state saat dimulai transaksi. Sistem harus menjamin transaksi yang berjalan sampai selesai atau jika tidak selesai, maka tidak diselesaikan sama sekali.

Ketika transaksi berhasil diselesaikan maka disebut commtited,Jika transaksi tidak berhasil diselesaikan, disebut aborted dan sistem bertanggungjawab menjamin perubahan parsial apapun yang dilakukan pada transaksi dan dikembalikan ke situasi semula atau disbut roll back. Eksekusi atomic mengimplikasikan transaksi dilakukan secara keseluruhan atau tidak tidak dilaksanakan sama sekali.





8. 3 contoh dari deadlocks yang tidak ada hubungannya dengan lingkungan sistem computer :


  1. Kasus deadlock pada lalu lintas di jembatan. Pada sebuah jembatan kecil (yang hanya bisa dilewati oleh sebuah kendaraan roda 4 / mobil) secara kebetulan pada suatu waktu terdapat sederetan mobil dari dua arah (kiri-kanan) berlawanan melintasi jembatan tersebut. Hal ini menyebabkan kemacetan panjang hingga beberapa kilometer. Karena sama-sama memiliki kepentingan (menuju tujuan masing2) maka sederetan mobil tersebut (baik yang berasal dari arah kiri maupun kanan) tidak ada yang mau mengalah. Sekalipun ada yang mau mengalah, tidak ada jalan keluar, karena kemacetan / barisan mobil yang terbentuk sudah terlalu panjang, inilah yang disebut starvation akibat terjadinya deadlock (jalan buntu).
  2. Deadlock pada kasus di persimpangan. Di sebuah persimpangan jalan yang terletak di Ciledug, pada suatu saat system yang mengatur lalu lintas di persimpangan tersebut mangalami error. Sedangkan kita tahu bahwa persimpangan di daerah tersebut tidak pernah sepi dengan kendaraan dengan barbagai jenis kendaraan (motor, mobil, truck, bus, dll). Semua kendaraan yang terjebak dalam kondisi tersebut tidak mampu berbuat banyak kecuali berdiam di tempat. Karena apabila ssatu kendaraan saja maju atau mundur maka kecelakaan tidak bisa dihindarkan.
  3. Kasus deadlock di sebuah pintu kecil. Pada sebuah rumah yang dihuni oleh sepasang suami istri yang memiliki berat badan lebih (keduanya sama2 gemuk) kebetulan pintu untuk keluar rumah hanya bisa dilewati oleh salah satu dari dua orang tersebut. Pada suatu pagi di saat yang bersamaan, suami istri tersebut sama2 ada keperluan mendadak dan sangat mendesak hingga mengharuskan keduanya untuk keluar rumah di saat itu juga. Dari kedua manusia berbadan besar tersebut sama2 keras kepala tidak ada yang mau merelakan salah satu di antranya untuk keluar duluan. Keadaann ini berlangsung hingga 2 jam, tidak ada yang mundur dan tidak ada yang maju.
  4. Kasus deadlock pada saat ujian. Di sebuah universitas islam negeri di Jakarta untuk fakultas SAINTEK jurusan TI semester 4 kelas C, pada tanggal 14 Juni 2011 telah diadakan Ujian Akhir Semester (UAS) untuk mata kuliah Sistem Operasi. Karena tidak ada persiapan matang, seorang mahasiswa peserta ujian mengalami kesulitas menjawab soal-soal yang telah diberikan. Bukan hanya 1 atau 2 soal yang tidak mampu dijawab melainkan seluruh soal tidak ia kerjakan sama sekali. Sekeras apapun dia berfikir, tak ada satupunjawaban terlintas di otaknya. Hingga akhirnya waktu ujian telah habis, sehinhgga dengan sangat terpaksa mahasiswa tersebut mengumpulkan lembar jawaban tanpa ada jawaban satu soalpun.



9. Tidak, system hanya bisa mendeteksi adanya deadlock, tetapi tidak dapat mendeteksi terjadinya starvation.
Ada beberapa cara untuk mengatasi maslah starvation sehingga system dapat deal dengan starvation problem :

a. Dengan Aging



Ada beberapa cara untuk mengatasi Starvation, salah satunya dengan Aging. Pada flowchart di atas, proses awal yang ada diberi urutan ( N ) pemrosesan dengan rumus N = ( P+T ) / P. N maksimum akan mulai dikerjakan dan proses yang lain dinaikkan tingkat urutan prosesnya agar nanti jika ada proses lain yang masuk, proses terdahulu mendapatkan bagian resource dan dapat dikerjakan. Jika ada beberapa proses yang memiliki N maksimum, maka diantara proses tersebut dilihat dari waktu yang dibutuhkan untuk menyelesaikannya. Jika masih sama juga, maka dilihat waktu kedatangannya.

b. Dengan penjadwalan Round Robin



Selain itu, Starvation juga dapat diatasi dengan pemrosesan dengan cara Round Robin. Pada Round Robin, proses yang masuk akan dimasukkan ke dalam antrian menurut kedatangan proses tersebut. Dalam penyelesainnya, suatu proses tidak akan langsung selesai jika waktu yang dibutuhkan melebihi waktu kuantum yang diberikan. Waktu kuantum adalah waktu yang diberikan untuk menyelesaikan suatu proses. Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari proses




10. Gambarkan suatu mekasisme dimana satu segmen dapat berasal dari address space dari dua proses yang berbeda.

Penyelesaian :

Karena tabel segmen adalah kumpulan dari register batas dasar, segmen dapat dibagi saat entri di dalam tabel segmen dari dua yang berbeda pekerjaan menunjuk ke lokasi fisik yang sama. Kedua segmen tabel harus memiliki dasar pointer identik, dan jumlah segmen bersama harus sama dalam dua proses




11. Berikan contoh dari sebuah aplikasi dimana data dalam sebuah file harus diakses : (a) Sequentially, (b) randomly
Penyelesaian :

Sequentially : Database, dimana data yang diambil harus berurutan.

Randomly : Aplikasi Pemutar Musik, seperti Winamp. Winamp akan mengakses file-file yang berada di Harddisk ataupun CD/DVD secara random. Contohnya: Jika ingin mendengarkan lagu ke-10 kita bisa langsung mengaksesnya tanpa diurutkan terlebih dahulu.

No comments:

Post a Comment