Berbagi Lentera

:: karena Hidup Pasti Butuh Lentera ::

Tanya Jawab Sistem Operasi

leave a comment »

1. Sebutkan dan jelaskan empat langkah yang harus dilakukan dalam menjalankan sebuah program

Jawab :

a. Instruksi dan data harus dimuat ke memori utama

Memori utama dan register merupakan tempat penyimpanan yang dapat diakses secara langsung oleh prosesor. Sehingga instruksi dan data yang hendak dieksekusi harus disimpan di sana. Pada arsitektur komputer menyediakan fasilitas pemetaan memori ke I/O dengan tujuan mempermudah akses perangkat I/O ke memori. Sejumlah alamat di memori dipetakan dengan device register. Membaca dan menulis pada alamat memori ini menyebabkan data ditransfer dari dan ke device register. Metode ini cocok untuk perangkat dengan waktu respon yang cepat seperti video controller. Register yang terdapat dalam prosesor dapat diakses dalam waktu 1 clock cycle. Hal ini menyebabkan register merupakan media penyimpanan dengan akses paling cepat dibandingkan dengan memori utama yang membutuhkan waktu relatif lama. Untuk mengatasi perbedaan kecepatan, dibuatlah suatu penyangga (buffer) penyimpanan yang disebut cache.

b. Perangkat masukan / keluaran dan berkas harus diinisialisasi

Untuk memulai operasi I/O, CPU me-load register yang bersesuaian ke device controller. Sebaliknya device controller memeriksa isi register untuk kemudian menentukan operasi apa yang harus dilakukan. Di saat operasi I/O dijalankan ada dua kemungkinan, yaitu synchronous I/O dan asynchronous I/O. Pada synchronous I/O, kendali dikembalikan ke proses pengguna setelah proses I/O selesai dikerjakan. Sedangkan pada asynchronous I/O, kendali dikembalikan ke proses pengguna tanpa menunggu proses I/O selesai. Sehingga proses I/O dan proses pengguna dapat dijalankan secara bersamaan.
Direct Memory Access (DMA) suatu metoda penanganan I/O dimana device controller langsung berhubungan dengan memori tanpa campur tangan CPU. Setelah men-set buffers, pointers, dan counters untuk perangkat I/O, device controller mentransfer blok data langsung ke penyimpanan tanpa campur tangan CPU. DMA digunakan untuk perangkat I/O dengan kecepatan tinggi. Hanya terdapat satu interupsi setiap blok, berbeda dengan perangkat yang mempunyai kecepatan rendah dimana interupsi terjadi untuk setiap byte (word).

c. Sumber daya yang ada harus disiapkan

Program merupakan sumber daya abstrak yang dapat berupa utilitas atau aplikasi untuk tujuan komputasi ( pengolahan ) tertentu. Memprogram sumber daya sistem komputer secara langsung lewat instruksi mesin sangat sulit. Diantaranya karena kerumitan dan rincian masing-masing sangat beragam sehingga pemrograman secara langsung memerlukan banyak usaha. Untuk mempermudah semua itu maka semua layanan dikumpulkan di sistem operasi. Maka program aplikasi yang dijalankan di atas sistem operasi, meminta layanan sistem operasi untuk mengendalikan sumber daya bagi aplikasi, agar seluruh sumber daya dapat dimanfaatkan secara efektif dan efesien. Pemanfaatan harus benar dan mempunyai efesiensi setinggi mungkin, merupakan sasaran yang harus dicapai sistem operasi.

d. Membaca ( fetch ), mengeksekusi ( execute ) instruksi dari memori dan penghentian (Halt)

Eksekusi program berisi pengulangan fetch dan execute. Eksekusi instruksi dapat melibatkan beberapa operasi lebih dasar dan bergantung sifat instruksi. Untuk membaca data suatu lokasi memori, CPU mengirim alamat memori yang dikehendaki melalui bus alamat kemudian mengirim sinyal memory read pada bus kendali. Sinyal memory read memerintahkan ke perangkat memori untuk mengeluarkan data pada lokasi tersebut ke bus data agar dibaca CPU. Interkoneksi antar komponen ini membentuk satu sistem sendiri. Sistem interkoneksi antar komponen yang populast antara lain ISA, VESA dan PCI.

2. Apa kesulitan paling utama yang harus dihadapi seorang programmer dalam membuat sistem operasi untuk environment yang bersifat real-time. Jelaskan.

Jawab :

Menyediakan sistem operasi yang baik kepada pemakai aplikasi yang tidak berhubungan dengan arsitektur komputer. Serta kemudahan dan kenyamanan kepada pemrogram aplikasi dalam mengakses, menggunakan fasilitas dan layanan sistem komputer seperti membuat aplikasi. Prrancang sistem operasi juga harus mendandani perangkat keras yang dituntut untuk mendalami perangkat yang akan didandaninya agar sistem operasi yang dirancang benar-benar berfungsi benar dan efesien.
Kemudian perancang sistem operasi juga harus memperhatikan deterministik, yakni dapat ditebak berapa waktu yang dipergunakan untuk mengeksekusi operasi. Responsif, yakni kapan secara pasti eksekusi dimulai serta diakhiri. Kendali pengguna, yakni dengan menyediakan pilihan lebih banyak daripada sistem operasi biasa. Kehandalan, yakni dapat menanggulangi masalah-masalah pengecualian dengan derajat tertentu. Penanganan kegagalan, yakni agar sistem tidak langsung crash.

3. Beberapa tipe CPU memiliki fitur mode operasi lebih dari dua. Sebut dan jelaskan untuk hal apa saja mode operasi ini digunakan.

Jawab :

• Mode Monitor.
• Mode Pengguna.

Pada perangkat keras akan ada bit atau Bit Mode yang berguna untuk membedakan mode apa yang sedang digunakan dan apa yang sedang dikerjakan. Jika Mode Monitor maka akan benilai 0, dan jika Mode Pengguna maka akan bernilai 1.
Pada saat boot time, perangkat keras bekerja pada mode monitor dan setelah sistem operasi di-load maka akan mulai masuk ke mode pengguna. Ketika terjadi trap atau interupsi, perangkat keras akan men-switch lagi keadaan dari mode pengguna menjadi mode monitor ( terjadi perubahan state menjadi bit 0 ). Dan akan kembali menjadi mode pengguna jikalau sistem operasi mengambil alih proses dan kontrol komputer (state akan berubah menjadi bit 1).

4. Sebut dan jelaskan tiga hal utama yang dilakukan sistem operasi berkaitan dengan manajemen memori.

Jawab :

a. Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.

Memori utama dan register merupakan tempat penyimpanan yang dapat diakses secara langsung oleh prosesor. Oleh karena itu instruksi dan data yang akan dieksekusi harus disimpan di memori utama atau register.
Untuk mempermudah akses perangkat I/O ke memori, pada arsitektur komputer menyediakan fasilitas pemetaan memori ke I/O. Dalam hal ini sejumlah alamat di memori dipetakan dengan device register. Membaca dan menulis pada alamat memori ini menyebabkan data ditransfer dari dan ke device register. Metode ini cocok untuk perangkat dengan waktu respon yang cepat seperti video controller.

b Memilih program yang akan di-load ke memori.

Program komputer harus berada di memori utama (biasanya RAM) untuk dapat dijalankan. Memori utama adalah satu-satunya tempat penyimpanan yang dapat diakses secara langsung oleh prosesor. Idealnya program dan data secara keseluruhan dapat disimpan dalam memori utama secara permanen.
Namun demikian hal ini tidak mungkin karena:
• Ukuran memori utama relatif kecil untuk dapat menyimpan data dan program keseluruhan.
• Memori utama bersifat volatile, tidak bisa menyimpan secara permanen, apabila komputer dimatikan maka data yang tersimpan di memori utama akan hilang.

c Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.

Salah satu proteksi perangkat keras ialah proteksi memori yaitu pembatasan penggunaan memori. Disini diperlukan Base Register yaitu alamat memori fisik awal yang dialokasikan/ boleh digunakan oleh pengguna. Limit Register yaitu nilai batas dari alamat memori fisik awal yang dialokasikan / boleh digunakan oleh pengguna. Dan Proteksi Perangkat Keras.
Sebagai contoh sebuah pengguna dibatasi mempunyai base register 300040 dan mempunyai limit register 120900 maka pengguna hanya diperbolehkan menggunakan alamat memori fisik antara 300040 hingga 420940 saja.

5. Apa fungsi utama command interpreter. Mengapa command interpreter biasanya dipisahkan dari kernel.

Jawab :

Yakni Sistem Operasi menunggu instruksi dari pengguna (command driven). Baik itu komunikasi dengan sistem, bekerja dengan disk, bekerja dengan direktori, pengelolaan file, pengelolaan perangkat masukan / keluaran, penyesuaian ( setting ) lingkungan kerja, pengelolaan batch files, dll. Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter dan terkadang dikenal sebagai shell. Command interpreter menyediakan mekasnisme agar pengguna dapat membuat permintaan tanpa menulis program.
Command interpreter biasanya dipisahkan dari kernel dengan alasan karena Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai. Juga pada kernel, perangkat lunak mempunyai kendali penuh terhadap pemroses, instruksi, register dan memori. Maka merupakan pemborosan bila Command interpreter harus menjalankan kernel sementara ia tidak memerlukan seluruh layanan yang disediakannya. Dan untuk menghindari kesalahan pemrograman, karena satu bagian dari kernel mengalami kerusakan menyebabkan matinya seluruh sistem.

6. Sebutkan dan jelaskan keuntungan dan kerugian prinsip desain sistem operasi dengan menggunakan skema pendekatan lapisan ( layering ).

Jawab :

Keuntungan :
Keuntungan utamanya adalah modularitas atau rancangan modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan dapat dirancang, dikode dan diuji scara independen. Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi. Pendekatan ini mempermudah debug dan verifikasi sistem. Lapisan pertama bisa di debug tanpa mengganggu sistem yang lain karena hanya menggunakan perangkat keras dasar untuk implementasi fungsinya. Bila terjadi error saat debugging sejumlah lapisan, error pasti pada lapisan yang baru saja di debug, karena lapisan dibawahnya sudah di debug.

Kerugian :
Salah satu kesulitan besar dalam sistem terlapis disebabkan karena sebuah lapisan hanya bisa menggunakan lapisan-lapisan dibawahnya, misalnya: backing-store driver, normalnya diatas penjadual CPU sedangkan pada sistem yang besar, penjadual CPU punya informasi tentang proses yang aktif yang ada di memori. Oleh karena itu, info ini harus dimasukkan dan dikeluarkan dari memori, sehingga membutuhkan backing-store driver dibawah penjadual CPU. Kesulitan lainnya adalah paling tidak efisien dibandingkan tipe lain. Ketika pengguna mengeksekusi M/K, akan mengeksekusi lapisan M/K, lapisan managemen memori, yang memanggil lapisan penjadual CPU. Yang lain adalah fungsi-funsgi sistem operasi harus diberikan ke tiap lapisan secara hati-hati

7. Dalam sebuah sistem dengan sistem operasi lebih dari satu ( multi OS ) bagaimana sebuah sistem dirancang untuk dapat memilih sistem operasi mana yang harus dipilih dan dijalankan

Jawab :

Maka dalam proses kongkuren semacam ini diharuskan hal-hal berikut untuk ditangani :
a. Mengetahui proses-proses yang aktif. Sistem operasi mengelola senarai proses di sistem operasi. Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state yang diimplementasikan sistem operasi.
b. Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola antara lain : waktu pemroses, memori, berkas-berkas, peralatan masukan / keluaran, dll.
c. Proteksi data dan sumber daya fisik. Proteksi data dan sumber daya fisik masing-masing proses dari gangguan ( interferensi ) proses-proses lain.
d. Hasil antar proses harus independen.

8. Berikan dua contoh program yang menunjukkan unjuk kerja lebih baik jika diterapkan konsep multhitreading. Jelaskan

Jawab :

Contoh 1 :
Suatu Word Processor diantaranya mempunyai kemampuan menerima masukan dari keyboard, menerima masukan dari mouse atau perangkat penunjuk yang lain ( asinkon ), melakukan pemeriksaan pengejaan, pemisahan kata-kata, memformat baris menjadi rata kanan, kiri atau kanan-kiri dalam proses yang sama. Aplikasi ini dapat diterapkan dengan banyak proses atau thread yang masing-masing mempunyai tugas tertentu. Sehingga saat dilakukan penataan tampilan di layar, aplikasi sekaligus dapat menerima masukan mouse yang segera diteruskan ke aplikasi untuk segera dikerjakan.

Contoh 2 :
Image Editor memiliki kemampuan menerima masukkan dari keyboard atau mouse, pengeditan gambar ( resize, rotate, flip, contrast, dll ), serta tampilan nilai presentase proses kerjanya, menampilkan koordinat gambar dan RGB-nya yang semuanya ini berjalan beriringan. Semua ini tidak mungkin dilakukan hanya dengan single thread saja.

9. Apa perbedaan antara user-level thread dan kernel-level thread. Dalam hal apa kernel-level thread dikatakan lebih baik.

Jawab :

User Level Thread

User thread didukung di atas kernel dan diimplementasi oleh thread library pada user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan thread, dan managemen thread tanpa dukungan dari kernel. Karena kernel tidak menyadari user-level thread maka semua pembuatan dan penjadualan thread dilakukan di user space tanpa intervensi dari kernel. Oleh karena itu, user-level thread biasanya cepat untuk dibuat dan diatur.
Tetapi user thread mempunyai kelemahan yaitu apabila kernelnya merupakan thread tunggal maka apabila salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walaupun ada thread lain yang dapat jalan dalam aplikasi tersebut. Contoh user-thread libraries adalah POSIX Pthreads, Mach C-threads, dan Solaris threads.

Kernel Level Thread

Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadualan, dan managemen thread dilakukan oleh kernel pada kernel space. Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread.
Maka Kernel Level Thread dapat dikatakan lebih baik dari User Level Thread adalah thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Kemudian pada lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX.

10. Bagaimana perilaku antrian proses jika algoritma penjadwalan CPU yang diimplementasikan merupakan gabungan dari :
a. priority dan shortest job first
b. multilevel feedback queue dan first come first serve
c. priority dan first come first serve
d. round robbin dan shortest job first

Jawab :

a. priority dan shortest job first

Penjadualan SJF (Shortest Job First) adalah kasus khusus untuk algoritma penjadual Prioritas. Ketika CPU bebas proses yang mempunyai waktu terpendek untuk menyelesaikannya mendapat prioritas. Seandainya dua proses atau lebih mempunyai waktu yang sama maka FCFS algoritma digunakan untuk menyelesaikan masalah tersebut. Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan FCFS.
SJF adalah contoh penjadual prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya. Permasalahan yang muncul dalam penjadualan prioritas adalah indefinite blocking atau starvation. Kadang-kadang untuk kasus dengan prioritas rendah mungkin tidak pernah dieksekusi. Solusi untuk algoritma penjadual prioritas adalah aging. Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.

Ada pun algoritmanya adalah sebagai berikut:

1. nonpremptive
ketika CPU memberikan kepada proses itu tidak bisa ditunda hingga selesai. proses dengan prioritas tinggi akan mengganti pada saat pemakaian time-slice habis.

2. premptive
bila sebuah proses datang dengan waktu prose lebih rendah dibandingkan dengan waktu proses yang sedang dieksekusi oleh CPU maka proses yang waktunya lebih rendah mendapatkan prioritas. Skema ini disebut juga Short – Remaining Time First (SRTF). proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU.

b. multilevel feedback queue dan first come first serve

Algoritma ini mengelompokkan antrian dalam beberapa buah antrian. Antrian-antrian tersebut diberi prioritas. Antrian yang lebih rendah tak boleh mendapat alokasi selama ada antrian tinggi yang belum kebagian. Tiap antrian boleh memiliki algoritma yang berbeda. Kita juga dapat menjatah waktu CPU untuk tiap antrian. Semakin tinggi tingkatannya, semakin besar jatah waktu CPU-nya. Algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah. Ini menguntungkan proses interaksi, karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya.
Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.

c. priority dan first come first serve
Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan FCFS.
Algoritma ini mendahulukan proses yang lebih dulu datang. Jadi proses akan mengantri sesuai waktu kedatangannya. Kelemahannya adalah waiting time rata-rata yang cukup lama. Sebagai contoh; ada tiga algoritma yang datang berturut-turut. Algoritma pertama mempunyai burst time 7 milidetik, sedangkan yang kedua dan ketiga masing-masing 5 milidetik dan 1 milidetik. Waiting time proses pertama ialah 0 milidetik (proses pertama tak perlu menunggu). Waiting time proses kedua ialah 7 milidetik (menunggu proses pertama), dan yang ketiga 12 milidetik (menunggu proses pertama dan kedua). Jadi waiting time rata-rata sebesar (0+7+12)/3 = 6,33 milidetik. Bandingkan jika proses datang dengan urutan terbalik (yang terakhir datang pertama dan kebalikannya). Waiting time rata-ratanya hanya sebesar (0+1+6)/3 = 2,33 milidetik (jauh lebih kecil). Bayangkan selisih yang mungkin terjadi jika beda burst time tiap proses sangat besar.
Munculah istilah convoy effect, dimana proses lain menunggu satu proses besar mengembalikan sumber daya CPU. Tentu kemungkinan utilisasi CPU akan lebih baik jika proses yang lebih singkat didahulukan. Setelah CPU dialokasikan ke suatu proses, hanya proses tersebut yang dapat mengembalikannya.

d. round robbin dan shortest job first

Shortest Job First berkaitan dengan waktu setiap proses. Ketika CPU bebas proses yang mempunyai waktu terpendek untuk menyelesaikannya mendapat prioritas. Seandainya dua proses atau lebih mempunyai waktu yang sama maka Algoritma Round Robin (RR) digunakan untuk menyelsaikan masalah tersebut.
Algoritma Round Robin (RR) dirancang untuk sistem time sharing Algoritma ini menggilir proses yang ada di antrian. Algoritma ini mirip dengan penjadual FCFS, namun preemption ditambahkan untuk switch antara proses. Antrian ready diperlakukan atau dianggap sebagai antrian sirkular. CPU menglilingi antrian ready dan mengalokasikan masing-masing proses untuk interval waktu tertentu sampai satu time slice/ quantum. Setiap proses mendapat jatah waktu CPU (time slice/ quantum) tertentu Time slice/quantum umumnya antara 10 – 100 milidetik. Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya.
Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan Jika terdapat n proses di “antrian ready” dan waktu quantum q (milidetik), maka setiap proses akan mendapatkan 1/n dari waktu CPU. Proses tidak akan menunggu lebih lama dari: (n-1)q time units. Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first-come first-served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.

Referensi :

Sistem Operasi. Penerbit Informatika.
Sistem Operasi Bahan Kuliah IKI 20230. Gabungan Kelompok Kerja 21-28 IKI-20230 Semester Genap 2002/2003.
Pengantar Sistem Operasi Komputer Plus Ilustrasi Kernel Linux. Masyarakat Digital Gotong Royong (MDGR)

Written by berbagilentera

October 15, 2008 at 12:24 am

Posted in Berbagi Ilmu Komputer

Tagged with , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: