TUGAS SISTEM OPERASI 2


TUGAS SISTEM OPERASI 2
1.            Apakah keuntungan dari layer approach pada sistem design? Dan apakah kerugiannya?
Jawab an:
Keuntungan dari Approach Layer pada OS Design
·                     Memiliki 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.                  Sebutkan 5 servis/layanan yang diberikan oleh sistem operasi, jelaskan bagaimana masing-masing memberikan kemudahan kepada pengguna.  Jelaskan juga dalam kasus apa yang tidak mungkin untuk user-level program untuk menyediakan layanan ini.
Jawaban:
Berikut ini adalah kategori-kategori layanan yang diberikan oleh sistem operasi:
1.                  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. Antarmuka (interface) adalah salah satu layanan yang disediakan sistem operasi sebagai sarana interaksi antara pengguna dengan sistem operasi. Antarmuka merupakan komponen sistem operasi yang bersentuhan langsung dengan pengguna. Terdapat dua jenis antarmuka, yaitu Command Line Interface (CLI) dan Graphical User Interface (GUI). CLI adalah tipe antarmuka dimana pengguna berinteraksi dengan sistem operasi melalui text-terminal. Pengguna menjalankan perintah dan program di sistem operasi tersebut dengan cara mengetikkan baris-baris tertentu (biasanya interface ini sering digunakan oleh pengguna yang memiliki pemahaman dalam dunia ICT). GUI adalah tipe antarmuka yang digunakan oleh pengguna untuk berinteraksi dengan sistem operasi melalui gambar-gambar grafik, ikon, menu, dan menggunakan perangkat penunjuk (pointing device) seperti mouse atau track ball ( biasanya interface ini diperuntukkan untuk memberikan kemudahan pada pengguna awam).
2.                  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).
3.                  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.
4.                  Manipulasi Sistem Berkas
Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
5.                  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.
6.                  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:
7.                  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.
8.                  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.
9.                  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
Kasus yang tidak memungkinkan user-level program untuk menyediakan layanan OS:

DoS attack merupakan serangan yang bertujuan untuk melumpuhkan target (hang, crash)  sehingga sistem tidak dapat memberikan layanan. Serangan ini tidak melakukan pencurian, penyadapan, ataupun pemalsuan data. Akan tetapi dengan hilangnya layanan maka target tidak dapat memberikan servis sehingga ada kerugian finansial. Bagaimana status dari DoS attack ini? Bayangkan bila seseorang dapat membuat ATM bank menjadi tidak berfungsi. Akibatnya nasabah bank tidak dapat melakukan transaksi dan bank (serta nasabah) dapat mengalami kerugian finansial. DoS attack dapat ditujukan kepada server (komputer) dan juga dapat ditargetkan kepada jaringan (menghabiskan bandwidth). Tools untuk melakukan hal ini banyak tersebar di Internet. DDoS attack meningkatkan serangan ini dengan melakukannya dari berberapa (puluhan, ratusan, dan bahkan ribuan) komputer secara serentak. Efek yang dihasilkan lebih dahsyat dari DoS attack saja.
3.      Apakah keuntungan dari microkernel approach pada system design?
Jawaban:
Keuntungan:
      1.            Ketika layanan baru akan ditambahkan ke user-space, kernel tidak perlu di-modif
      2.            OS lebih mudah ditempatkan (porting) pada suatu desain perangkat keras ke desain perangkat keras lainnya (asrsitektur sistem yang baru)
      3.            Mendukung keamanan & reliabilitas lebih.
4.      Jelaskan perbedaan antara preemptive and nonpreemptive scheduling!
Jawaban:
 Perbedaan antara preemptive dan non preemptive design:

No.
Preemptive
Non-preemptive
1.
OS dapat mengambil (secara interrupt, preempt) CPU dari satu proses setiap saat.
setiap proses secara sukarela (berkala) memberikan CPU ke OS.

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

Penjadwalan Non Preemptive terjadi ketika proses hanya :
-          Berjalan dari running state sampai waiting state
-       Dihentikan
5.      Apakah yang membedakan PCS dan SCS scheduling?
Jawaban:
-          Process Contention Scope (PCS). API thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process).
-          System Contention Scope (SCS), memilih satu dari banyak thread , lalu menjadwalkannya ke 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.
Jawaban:
Sistem-sistem operasi tersebut menyediakan mekanisme penguncian yang berbeda tergantung pada kebutuhan pengembang sistem operasi tersebut. Spinlocks berguna untuk sistem multiprosesor di mana thread dapat berjalan dalam sebuah busy-loop (untuk jangka waktu yang pendek) dibandingkan jika menimbul overhead dari masukkan ke dalam sleep queue. Mutexes berguna untuk mengunci sumber daya. Solaris 2 menggunakan mutexes adaptif, berarti bahwa mutex itu diimplementasikan dengan kunci spin pada mesin multiprosesor. Semaphores dan kondisi variabel lebih tepat digunakan untuk sinkronisasi ketika sumber daya dibutuhkan untuk jangka waktu yang panjang, karena spinning tidak efisien untuk durasi yang panjang.
7.       Jelaskan mengenai konsep dari transaction atomicity!
Jawaban:
  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.      Berikan 3 contoh dari deadlocks yang tidak ada hubungannya dengan lingkungan sistem komputer!
Jawaban:
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 sama2 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.      Dapatkan system mendeteksi beberapa process adalah starving? Jika “ya” jelaskan bagaimana itu bisa. Jika “tidak” jelaskan bagaimana system dapat deal dengan starvation problem!
Jawaban:
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 tersebut dikembalikan ke antrian paling belakang dan resource dipindahkan ke proses selanjutnya. Dengan cara ini, semua proses yang mengantri, akan mendapatkan resource secara bergantian ( tidak ada proses yang memonopoli resource ) sehingga semua proses dapat diselesaikan.

10.  Gambarkan suatu mekanisme dimana satu segmen dapat berasal dari address space dari dua proses yang berbeda.
Jawaban:
Segmentasi adalah sebuah bagian dari managemen memori yang mengatur pengalamatan dari memori yang terdiri dari segmen-segmen. logical address space adalah kumpulan dari segmen-segmen yang mana tiap-tiap segmen mempunyai nama dan panjang. alamat tersebut menunjukkan alamat dari segmen tersebut dan offset-nya didalam segmen-segmen tersebut. pengguna kemudian menentukan pengalamatan dari setiap segmen menjadi dua bentuk, nama segmen dan offset dari segmen tersebut (Hal ini berbeda dengan pemberian halaman, dimana pengguna hanya menentukan satu buah alamat, dimana pembagian alamat menjadi dua dilakukan oleh perangkat keras, semua ini tidak dapat dilihat oleh user).

Untuk kemudahan pengimplementasian, segmen-segmen diberi nomor dan direferensikan dengan menggunakan penomoran tersebut, daripada dengan menggunakan nama. maka, logical address space terdiri dari dua tuple yaitu: (nomor-segmen, offset) Pada umumnya, program dari pengguna akan dikompilasi, dan kompilator tersebut akan membuat segmen-segmen tersebut secara otomatis. Jika mengambil contoh kompilator dari Pascal, maka kemungkinan kompilator tersebut akan membuat beberapa segmen yang terpisah untuk
-          Variabel Global;
-          Prosedur dari pemanggilan stack, untuk menyimpan parameter dan pengembalian alamat;
-          Porsi dari kode untuk setiap prosedur atau fungsi; dan
-          Variabel lokal dari setiap prosedur dan fungsi.
11.  Berikan contoh dari sebuah aplikasi dimana data dalam sebuah file harus diakses :
a.      Sequentially
b.      Randomly
Jawaban :
a.       Aplikasi Pendataan Stok Barang, untuk pendataan barang data harus diakses secara berurutan berdasarkan kode barang.
b.      Aplikasi Permainan Hang Man, untuk data huruf acak yg akan muncul, data huruf akan diakses secara acak dalam array.

1 komentar:

gcp01234 mengatakan...

woi poy.. no 9 seharusnya ada gambarnya loh..kok ini gak ada?? Gita

Posting Komentar