Friday, April 18, 2014


BAB I
PENDAHULUAN

Sistem operasi merupakan perantara antara program aplikasi, utilitas, dan pengguna di satu pihak, dengan hardware sistem komputer di pihak lain. Sistem Operasi bertanggung jawab untuk aktivitas berikut yang berhubungan dengan manajemen memori:
melacak pemakaian memori (siapa dan berapa besar?),memilih program mana yang akan, di load ke memori, ketika bisa digunakan., alokasi dan dealokasi memori sesuai yang dibutuhkan
Topik rancangan sistem operasi mencakup bidang yang sangat luas dan kita akan mudah kehilangan detail serta konteks pembahasan suatu masalah. Untuk lebih mudahnya kita perlu mengenal konsep dasar sistem operasi  tersebut yaitu :
·         Komponen Sistem Operasi
·         Layanan Sistem Operasi
·         System Calls
·         Pemrograman Sistem
·         Struktur Sistem
·         Mesin Virtual
·         System Generation
·         Rancangan Sistem


BAB II
PEMBAHASAN
SISTEM OPERASI


2.1 Pengertian Sistem Operasi
Sistem Opersi adalah suatu program yang mengontrol eksekusi program aplikasi dan berfungsi sebagai interface antara pengguna computer dengan hardware computer.

2.2 Tujuan dan Fungsi Sistem Operasi
Sistem operasi memiliki tiga tujuan yaitu :
  1. Kemudahan : system operasi membuat computer menjadi lebih mudah dipakai.
  2. Efisiensi : system operasi memungkinkan sumber daya system computer untuk digunakan dengan cara yang efisien.
  3. Kemampuan Berkembang : system operasi harus disusun sedemikian rupa sehingga memungkinkan pengembangan yang efektif,pengujian, dan penerapan fungsi-fungsi system baru tanpa mengganggu layanan yang sudah ada.


2.2.1 Sistem Operasi Sebagai Interface Pengguna/Komputer
            Hardware dan software yang digunakan untuk menyediakan aplikasi bagi pengguna dapat dipandang sebagai sesuatu yang berlapis. Sistem operasi berfungsi sebagai mediator, yang membuatnya menjadi lebih mudah bagi pemrogram dan program aplikasi dalam mengakses dan menggunakan fasilitas dan layanan.
Pada umumnya system operasi memiliki layanan dalam bidang – bidang berikut :
1.      Pembuatan Program : system operasi menyediakan berbagai fasilitas dan layanan seperti sebagai editor dan debugger ,untuk membantu para  pemrogram dalam membuat program. Umumnya layanan ini berbentuk program utilitas yang sebenarnya bukan merupakan bagian dari system operasi, namun dapat diakses melalui system operasi.
2.      Eksekusi Program : beberapa diperlukan task untuk melakukan eksekusi sebuah program. Instruksi dan data harus dimuat ke dalam memori utama, perangkat I/O dan file harus diinisialisasi, dan sumber daya lainnya harus disiapkan. Sistem operasi menangani semua task tersebut untuk kepentingan pengguna.
3.      Acces ke perangkat I/O : setiap perangkat I/O masing – masing membutuhkan set instruksinya sendiri atau signal control untuk operasi. Sistem operasi menjaga detailnya sehingga pemrogram dapat menganggapnya sebagai operasi pembacaan dan penulisan yang sederhana.
4.      Acces terkontrol ke file : dalam hal file, control harus mancakup pengertian yang tidak hannya sifat perangkat I/O saja (disk drive, tape drive), namun juga format file yang terdapat dalam media penyimpan.
5.      Deteksi error dan respons : bermacam – macam error dapat terjadi pada saat system komputer bekerja. Error ini meliputi error hardware internal dan eksternal, misalnya memori error atau kegagalan atau kesalahan fungsi perangkat. Dan bermacam-macam error software seperti overflow aritmetik, adanya usaha untuk mengakses lokasi memori yang terlarang, dan ketidakmampuan system operasi untuk memenuhi request sebuah aplikasi.
6.      Accounting : Sistem operasi yang baik akan mengumpulkan statistik pemakaian bermacam-macam sumber daya dan memonitor parameter kinerja, seperti waktu respons. Bagi semua system, informasi ini sangat berguna untuk mengantisipasi kebutuhan pengembangan di masa mendatang dan mengubah system untuk meningkatkan kinerja. Pada system multiguna, informasi tersebut dapat digunakan untuk keperluan penagihan biaya pemakaian system.

2.2.2 Sistem Operasi sebagai Manajer Sumber Daya
    Komputer adalah kumpulan sumber daya yang berfungsi untuk perpindahan, penyimpanan dan pengolahan data serta untuk mengontrol fungsi tersebut. Sistem operasi bertanggung jawab atas pengaturan sumber daya tersebut.
o   Sistem operasi berfungsi dengan cara yang sama seperti software computer biasa yaitu merupakan suatu program yang dieksekusi oleh prosesor.
o   Sering kali sistem operasi mengeluarkan control dan harus bergantung pada prosesor untuk memungkinkannya memperoleh kembali control.
Perbedaan penting antara sistem operasi dengan sebuah program komputer lainnya adalah terletak pada tujuan programnya. Sistem operasi mengarahkan prosesor dalam menggunakan sumber daya sistem lainnya dan dalam timeran eksekusi program lainnya.  


Gambar 2.1 di bawah ini menunjukkan sumber daya utama yang diatur oleh sistem operasi. Sebagian sistem operasi berada di dalam memori utama. Bagian tersebut meliputi kernel, atau nucleus, yang berisi fungsi – fungsi yang paling sering dipakai dalam sistem operasi. Pada saat tertentu, bagian sistem operasi lainnya yang saat ini sedang digunakan. Isi memori utama lainnya digunakan untuk menyimpan program lain dan data. Alokasi sumber daya (memori utama) ini dikontrol secara bersama oleh sistem operasi dan hardware manajement memori yang terdapat di dalam prosesor. Sistem operasi membuat keputusan kapan suatu perangkat I/O dapat digunakan oleh program yang sedang dieksekusi dan tujuan akses control dan  pemakaian file. Prosesor sendiri merupakan sumber daya, dan sistem operasi harus menentukan jumlah waktu prosesor yang diberikan kepada eksekusi program pengguna tertentu. Pada sistem multi-prosesor, pembuatan keputusan ini harus dilakukan terhadap semua prosesor.    

Gambar 2.1 Sistem Operasi sebagai Manajer Sumber Sistem Komputer.

2.2.3 Kemudahan Evolusi Sistem Operasi
      Sistem operasi akan selalu berkembang dengan alasan berikut ini :
o   Upgrade Hardware serta Hardware jenis baru : Misalnya versi UNIX dan OS / 2 yang terdahulu tidak menggunakan mekanisme paging karena sistem-sistem operasi tersebut beroperasi pada mesin yang tidak memiliki hardware paging. Versi – versi yang baru telah dimodifikasi menggunakan kemampuan paging.
o   Layanan baru : untuk menjawab kebutuhan para pengguna, sistem operasi menambah penawaran layanan baru. Misalnya, apabila ditemukan kesulitan dalam menjaga kineja yang baik bagi pengguna dengan menggunakan tool yang telah ada, ukuran dan control yang baru dapat ditambahkan ke sistem operasi.
o   Perbaikan : setiap sistem operasi memiliki fault. Fault – fault ini ditemukan dalam  periode waktu tertentu dan kemudian dilakukan perbaikan. Tentu saja, perbaikan ini dapat menyebabkan fault baru.

2.3 EVOLUSI SISTEM OPERASI
   2.3.1 Pengolahan Serial
            Sistem lama memiliki dua masalah besar, sebagai berikut :
  • Scheduling ( penjadwalan ) : umumnya instalasi menggunakan formulir pemesanan waktu mesin. Biasanya, seorang pengguna harus mendaftarkan dirinya untuk memesan blok waktu yang merupakan kelipatan setengah jam, dan seterusnya. Seorang pengguna mungkin memesan waktu selama satu jam dan mengakhiri prosesnya 45 menit. Hal tersebut akan memboroskan waktu idle computer. Sebaliknya, pengguna mungkin menemukan masalah, sehingga tidak dapat menyelesaikan pekerjaannya dalam waktu yang telah dipesannya, dan dipaksa untuk menghentikan operasi sebelum dapat mengatasi masalah yang dihadapinya itu.
  • Set up time (waktu set up) : sebuah program tunggal, yang disebut job, dapat mencakup pemuatan compiler serta program bahasa tingkat tinggi (program sumber) ke dalam memori, penyimpan program yang telah decompile(program objek), dan kemudian pemuatan dan penggabungan program objek dengan fungsi yang umum. Setiap langkah ini mencakup pemasangan dan penanggalan pita atau penyusunan tumpukan kartu. Apabila sebuah error terjadi, biasanya pengguna harus kembali dari awal rangkaian set up itu, jadi, banyak waktu yang harus terbuang hannya untuk menyiapkan program agar dapat berjalan.

Mode seperti itu dapat dianggap sebagai pengolahan serial, yang menggambarkan kenyataan bahwa para pengguna memiliki akses ke komputer secara seri.


2.3.2 Sistem Batch Sederhana
            Mesin – mesin lama sangat mahal sehingga sangat  penting untuk memaksimalkan utilisasi. Waktu yang terbuang akibat penjadwalan dan set up tidak dapat diterima.
            Untuk meningkatkan utilisasi, di buat konsep sistem operasi batch. Konsep ini muncul pertama kalinya pada pertengahan 1950-an dan dibuat oleh General Motor untuk digunakan pada IBM 701 [WEIZ81]. Selanjutnya konsep tersebut disempurnakan dan diimplementasikan pada IBM 704 oleh beberapa pelanggan IBM.
            Inti gagasan yang berada di balik teknik sistem operasi batch adalah penggunaan potongan software yang dikenal sebagai monitor. Untuk memahami cara kerjanya, kita akan memandangnya dari dua sudut, yaitu sudut pandang monitor dan sudut pandang prosesor.
      Dari sudut pandang monitor, monitorlah yang mengontrol rangkaian event. Agar
pengontrolan itu dapat terjadi, banyak monitor yang selalu berada di memori utama
dan dapat digunakan untuk eksekusi (Gambar 2.3). Bagian monitor yang berada di
memori utama dikenal sebagai resident monitor. Bagian monitor lainnya terdiri dari
utilitas dan fungsi umum yang dimuatkan sebagai subroutine ke program pengguna
pada awal job yang membutuhkan utilitas dan fungsi tersebut. Monitor membaca job satu per satu dari perangkat input (biasanya sebuah pembaca kartu atau penggerak pita magnetik). Pada saat dibaca, job itu akan ditempatkan di daerah program pengguna, dan kontrol diberikan ke job tersebut. Apabila job telah selesai, kontrol dikembalikan ke monitor, yang kemudian akan membaca job berikutnya. Hasil setiap job akan dicetak dan dikirimkan ke pengguna.
      Sekarang kita perhatikan rangkaian event itu dari sudut pandang prosesor. Pada
suatu saat tertentu, prosesor mengeksekusi instruksi yang berasal pada bagian memori utama yang berisi monitor. Instruksi-instruksi ini menyebabkan job berikutnya dibacakan ke bagian memori utama lainnya. Sekali job telah dibaca, prosesor akan menemukan   di   dalam   monitor   sebuah   instruksi   pencabangan  yang menginstruksikan prosesor untuk melanjutkan eksekusi di awal program pengguna. Kemudian prosesor akan mengeksekusi instruksi yang berada di dalam program pengguna sampai prosesor itu menemukan akhir program atau kondisi error. Salah satu dari kedua event itu akan menyebabkan prosesor membaca instruksi berikutnya dari program monitor. Karena itu, frasa "kontrol dikirimkan ke job" berarti bahwa sekarang prosesor mengambil dan mengeksekusi instruksi pada sebuah program pengguna, dan "kontrol dikembalikan ke monitor" berarti bahwa sekarang prosesor mengambil dan mengeksekusi instruksi yang berasal dari program monitor.
Jelas bahwa monitor menangani masalah penjadwalan. Suatu batch job diantrikan, dan job dieksekusi secepat mungkin, dengan tanpa waktu idle. Bagaimana dengan waktu set up job? Monitor juga menangani masalah ini. Pada setiap job, instruksi dimasukkan ke dalam bentuk primitif job control language (JCL). JCL merupakan bahasa pemrograman.
Monitor mengandalkan kemampuan prosesor dalam membaca instruksi dari berbagai bagian memori utama agar secara bergantian mengambil dan melepaskan control. Feature hardware lain yang juga dibutuhkan :
o    Proteksi memori : pada saat program pengguna sedang mengeksekusi, program tersebut tidak boleh mengubah daerah memori yang berisi monitor. Apabila terjadi pengubahan daerah tersebut, hardware prosesor akan mendeteksi adanya error dan memindahkan kontrol ke monitor. Kemudian monitor akan menggagalkan job, mencetak pesan error, dan memuatkan job berikutnya.
o    timer : sebuah timer akan digunakan untuk mencegah terjadinya sebuah job yang memonopoli sistem. Timer disetel setiap awal job. Apabila timer telah habis masanya akan terjadi interrupt, dan control akan dikembalikan ke monitor.
o    Privileged Instructions : instruksi-instruksi tertentu ditandai privileged dan hanya bisa dieksekusi oleh monitor. Apabila pada saat sedang mengeksekusi program pengguna, prosesor menemukan instruksi seperti itu, akan terjadi error interrupt. Salah satu privileged instructions adalah instruksi-instruksi I/O, karena itu monitor menjaga control seluruh program I/O. Hal tersebut deapat mencegah, misalnya, program pengguna yang secara tidak sengaja membaca job control instruction dari job berikutnya. Apabila program pengguna akan melakukan operasi I/O program tersebut harus meminta monitor untuk melakukan operasi itu.Apabila Prifileged instruction ditemukan oleh processor pada saat sedang mengeksekusi sebuah program pengguna, hardware processor menganggapnya sebagai sebuah error dan kemudian memindahkan control ke monitor.
o    Interrupt : Model computer lama tidak memiliki kemampuan ini. Featur ini menyebabkan sistem menjadi lebih fleksibel dalam melepaskan kontrolnya ke program pengguna dan memperoleh kembali control tersebut dari program pengguna.
      Dengan memakai sistem operasi batch, waktu mesin secara bergantian melakukan eksekusi program pengguna dan eksekusi program monitor.Disini terdapat dua pengorbanan : sebagian memori utama diberikan kepada monitor dan sebagian waktu mesin dipakai oleh monitor. Kedua pengorbanan tersebut merupakan bentuk-bentuk overhead. Walaupun adanya overhead tersebut, sistem batch sederhana akan meningkatkan utilisasi computer.
2.3.3 Sistem Batch Multiprogrammed
                Walaupun dengan menggunakan pengurutan program secara otomatik yang dihasilkan oleh sistem operasi batch sederhana, prosesor masih sering dalam keadaan idle. Masalahnya adalah perangkat-perangkat I/O cukup lambat apabila dibandingkan dengan kecepatan prosesor.

Kalkulasi tersebut menunjukkan sebuah program yang memproses sebuah file record dan secara rata-rata melakukan 100 instruksi mesin per detik. Dalam contoh ini computer mengeluarka 96% waktunya untuk menunggu perangkat-perangkat I/O dalam melakukan pemindahan data. Prosesor membutuhkan jumlah waktu tertentu untuk melakukan eksekusi, sampai prosesor itu menemukan instruksi I/O. Kemudian prosesor menunggu sampai instruksi I/O tersebut selesai sebelum melanjutkannya kembali.

Gambar 2.2 contoh multiprogramming

2.3.4 Sistem Time Sharing
     Dengan menggunakan multiprogramming, pengolahan batch dapat menjadi efisien. Akan tetapi, untuk job yang jumlahnya banyak, sangat diperlukan suatu mode dimana pengguna dapat berinteraksi secara langsung dengan computer. Bahkan, bagi beberapa job, misalnya pengolahan transaksi, mode interaktif merupakan suatu hal yang penting.
Saat ini, persyaratan fasilitas komputasi interaktif dapat dipenuhi dengan pemakaian computer terdedikasi. Option tersebut tidak tersedia pada 1960-an, karena saat itu sebagian computer berukuran besar dan sangat mahal, sehingga dibuat time sharing.    
Table 2.1. Batch Multiprograming versus Time Sharing

Batch Multiprogramming
Time Sharing
Tujuan utama
Memaksimalkan pemakaian
Meminimalkan waktu respon
Sumber instruksi-instruksi ke sistem operasi
Instruksi-instruksi job control yang menyediakan perintah dengan job
Perintah-perintah yang dimasukkan pada terminal
Time sharing dan multiprogramming menimbulkan masalah baru pada sistem operasi. Apabila terdapat sejumlah job di dalam memori, job-job itu harus diproteksi agar saling mengganggu satu dengan yang lainnya, misalnya dengan saling mengubah data. Untuk pengguna interaktif yang berjumlah banyak, sistem file harus diproteksi sehingga hanya pengguna yang berhak memiliki akses ke file tertentu. Persaingan untuk mendapatkan sumber daya, misalnya printer dan mass storage device, harus dapat ditangani dengan baik

2.4 Hasil – Hasil Utama
System operasi merupakan salah satu software yang paling kompleks. Kompleksitas ini menggambarkan tantangan untuk mengatasi kesulitan dan beberapa hal merupakan persaingan agar dapat memenuhi tujuan-tujuan kemudahan, efisiensi, dan kemampuanntuk berkembang. [ DENN 80a] berpendapat bahwa terdapat lima perolehan intelektual dalam pengembangan system operasi.
o   Proses
o   Manajemen memori
o   Proteksi informasi dan keamanan
o   Penjadwalan dan manajemen sumber daya
o   Struktur sistem
Setiap perolehan di atas ditandai oleh prinsip-prinsip atau abstraksi, yang dikembangkan untuk mengatasi masalah kesulita dalam praktik. Dengan menggabungkannya, kelima bidang tersebut akan mendapatkan rancangan penting dan masalah-masalah implementasi sistem operasi modern.
2.4.1 Proses
Konsep proses sangat penting bagi struktur sistem operasi. Istilah ini untuk pertama kali digunakan oeh para perancang Multics pada 1960-an. Proses adalah istilah yang lebih bersifat umum dibanding job. Banyak definisi yang diberikan untuk istilah proses, diantaranya
o   Progaram yang sedang dieksekusi
o   “jiwa yang dianimasikan” sebuah program
o   Entity yang dapat di-assign ke prosesor dan dapat dieksekusi pada prosesor.
o   Suatu unit dari karakteristik oleh sekuensial ( thread tunggal pada eksekusi, stack langsung, dan kumpilan set pada sumber-sumber sistem).
Tiga arah perkembangan sistem komputer  telah menciptakan masalah dalam timeran dan sinkroisasi yang berkontribusi terhadap perkembangan konsep proses multi programming batch operation, time-sharing, dan transaksi real time. Seperti telah kita ketahui, multi programming dirancang untuk menjaga agar proses dan perangkat I/O, termasuk perangkat penyimpan, tetap dalam keadaan sibuk untuk memperoleh efisiensi yang maksimum. Mekanisme kuncinya dalam hal ini: Dalam memberiakan respon ke signa-signal yang mengindikasikan selesainya transaksi I /O, prosesor dipindahkan ke bermacam-macam program yang berada di dalam memori utama.
Arah perkembangan yang kedua adalah general-purpose time-sharing. Di sini tujuan rancangan yang utama adalah agar responsif terhadap kebutuan para pengguna dan saat ini, dengan alasan biaya, harus mampu mendukung para pengguna yang berjumlah banyak secara simultan. Tujuan ini cukup bersesuaian karena relatif lambatnya waktu reaksi pengguna. Misalnya, apabila umumnya seorang pengguna membutuhkan rata-rata dua detik waktu pengolahan per menit, hampir 30 pengguna seperti itu dapat menggunakan sistem bersama-sama tanpa gangguan ang berarti. Tentu saja, overhead sistem operasi harus di perhitungkan.
Arah perkembangan penting lainnya adalah transaction processing system. Dalam hal ini, sejumlah pengguna melakukan query atau update terhadap sebuah database. Sebagai contoh adalah sistem pemesanan tiket pesawat terbang. Perbedaan utama antara transaction processing system dengan time-sharing system adalah bahwa transaction processing system hanya terbatas pada sebuah aplikasi atau beberapa aplikasi, sedangkan para pengguna time-sharing system dapat berkaitan dengan pengembangan program, eksekusi job, dan penggunaan bermacam-macam aplikasi. Pada kedu sistem tersebut, waktu respons sistem merupakan hal yang terpenting.
Sebuah tool yang disediakan bagi para pemrogaram sistem dalam masa perkembangan sistem multi programming dan sistem interaktif multiguna adalah interupt. Aktivitas suatu job dapat dihentikan dengan terjadinya suatu event tertentu, misalnya selesainya waktu I / O. Prosesor akan beberapa konteks (misalnya, program counter dan register lainnya) dan beralih ke routine interrup-handling, yang akan menentukan sifat interrup, memperoses interrrupt, dan kemudian melanjutkan lagi pengolahan penguna pada job yang diinterrupsi atau job-job lainnya.
Koordinasi berbagai aktivitas tersebut membuat rancangan software sistem menjadi sangat sulit. Dengan banyaknya job yang dilakukan dalam waktu bersamaan, setiap job itu melibatkan banyak langkah yang harus dilaksanakan secara berurutan, maka semakin tidak mungkin untuk melakukan analisis terhadap seluruh kemungkinan event-event yang mungkin terjadi. Apabila alat untuk melakikan koordinasi dan kooperasi aktivitas yang sistematis tidak ada, para perancang terpaksa menggunakan metode ad hoc yang didasarkan pada pemahamannya tentang lingkungan yang harus dikontrol sistem operasi. Usaha tersebut cukup berbahaya terhadap terjadinya error yang tidak terlihat dalam pemrograman yang akibatnya hanya dapat diketehui apabila terdapat aksi-aksi yang relatif jarang terjadi. Error seperti itu sangat sulit untuk dideteksi, dan sangat sulit untuk menentukan sebabnya, karena kondisi yang tepat yang menyebabkan error sangat sulit untuk ditirukan. Secara umum, terdapat empat sebab utama terjadinya error seperti itu [DENN0-80a]:
o   Sinkronisasi yang salah : sering kalimdijumpai masalah dimana sebuah routine harus terhenti karena menunggu suatu event. Misalnya, sebuah program menginisiasi pembacaan I/O dan harus menunggu sampai data tersedia di dalam buffer sebelum dapat melanjutkan kembali pembacaan tersebut. Dalam kasus seperti itu, diperlukan signal yang berasal dari routine lainnya. Perancangan mekanisme pensignalan yang tidak tepat dapat menghilangkan hilangnya signal atau diterimanya signal duplikat.
o   Mutual exclusion yang gagal : sering kali dijumpai kasus dimana lebih dari seorang atau program yang berusaha untuk menggunakan sumber daya yang dapat digunakanb bersama pada saat yang sama. Mislnya, pada sistem pemesanan tiket pesawat terbang, dua pengguna dapat berusaha untuk database dan, apabila tempat duduk masih tersedia, akan meng-update database untuk melakukan pemesanan tempat duduk. Apabila acces seperti itu tidak dikontrol, akan terjadi error. Di sini harus ada mekanisme mutual exclusion seperti itu akan sulit ditentukan di bawah semua rangkaian event yang mungkin terjadi.
o   Operai program nondeterminate : di dalam sistem bagi-pakai,hasil suatu program tertentu biasanya hanya bergantung pada input ke program tersebut dan tidak bergantung pada aktivitas program lainnya. Namun, pada saat program menggunakan memori bagi-pakai dan eksekusinya dilakukan secara bergiliran oleh prosesor, program itu dapat tergantung oleh program lainnya dengan menindih daerah memori umum dengan cara yang tidak dapat diduga.
o   Deadlock : dimungkinkan dua program atau lebih akan terhenti karena satu program dengan program lainnya saling menunggu. Misalnya, dua progarm yang masing-masing memerlukan dua perangkat I/O melakukan beberapa operasi (misalnya menyalin dari disk ke pita). Salah satu program memegang salah satu perangkat tersebut dan program lainnya memiliki kontrol perangkat lainnya. Masing-masing program akan menunggu program lainnya untuk melepaskan sumber daya yang diinginkannnya. Deadlock seperti itu akan bergantung pada timeran kesempatan alokasi sumber daya dan pelepasannya.
Proses dapat kita anggap memiliki tiga komponen yaitu:
o   Program yang executable
o   Data terkait yang diperlukan oleh program ( variabel, ruang kerja, buffer, dan lain-lain).
o   Konteks eksekusi program tersebut.
Konteks eksekusi merupakan elemen yang sangat penting. Konteks eksekusi meliputi seluruh informasi yang diperlukan oleh sistem operasi untuk mengatur proses dan yang diperlukan prosesor untuk mengeksekusi proses secara benar. Jadi, konteks meliputi isi bermacam-macam register prosesor, seperti program counter dan register data. Konteks juga mencakup informasi penggunaan pada sistem operasi, misalnya priorotas proses dan apakah suatu proses sedang menunggu selesainya suatu event I/O tertentu atau tidak.

2.4.2 Manajemen Memori
      Para pengguna membutuhkan lingkungan komputasi yang mendukung pemrograman modular dan pemakaian data yang fleksibel. Manajer sistem memerlukan pengontrolan alokasi penyimpanan yang efisien. Untuk memenuhi kebutuhan tersebut, sistem operasi memiliki lima tanggung jawab penting manajemen penyimpanan.
o   Isolasi proses : sistem operasi harus mencegah agar proses independen tidak saling menganggu data dan memori.
o   Alokasi otomatis dan manajemen : program harus secara dinamis dialokasikan ke dalam hierarki memori apabila diperlukan. Alokasi harus tidak dapat dirasakan oleh pemrogram. Jadi, pemrogram dibebaskan dari pekerjaan yang berkaitan dengan keterbatasan memori, dan sistem operasi dapat mencapai efisiensi dengan meng-assign memori ke job-job hanya apabila diperlukan.
o   Dukungan pemrograman modular : pemrogram harus mampu membuat dan menghapus modul-modul program, serta mengubah ukuran modul secara dinamis.
o   Proteksi dan control acces : penggunaan memori secara bersama-sama, pada sembarang tingkat hierarki memori, akan memungkinkan sebuah program menunjuk sebuah program lainnya. Kadang-kadang hal tersebut diperlukan, apabila bagi-pakai diperlukan oleh aplikasi tertentu.
o   Penyimpanan jangka lama : banyak pengguna dan aplikasi memerlukan cara penyimpanan informasi dalam waktu yang cukup lama.
Umumnya, sistem operasi memenuhi dengan menggunakan fasilitas virtual memori dan sistem file. Sistem file menerapkan penyediaan jangka panjang, dengan susunan penyimpanan informasi dalam nama objek, disebut file. File ini menggantikan konsep untuk programmer dan merupakan unit yang berfungsi sebagai kontrol akses dan melindungi sistem operasi. Sistem file mengimplementasikan penyimpanan jangka lama, dengan informasi yang disimpan di dalam objek yang memiliki nama yang disebut file. File ini merupakan konsep dasar yang memudahkan pemrogram dan juga unit pengontrol access dan proteksi bagi sistem operasi.
Memori virtual adalah suatu fasilitas yang memungkinkan program menunjuk memori berdasarkan sudut pandang logika, tanpa mempertimbangkan jumlah memori utama yang tersedia secara fisik. Pada saat suatu program sedang melakukan eksekusi, bagian lain dari program tersebut disimpan di dalam blok-blok pada disk. Berikut ini merupakan gambar pengalamatan virtual memori.


             Gambar 2.3 Pengalamatan Memori Virtual

2.4.3 Proteksi Informasi dan Keamanan
      Semakin meningkatnya pemakaian sistem time-sharing dan jaringan kerja komputer telah menyebabkan peningkatan perhaitan terhadap proteksi informasi. Sifat ancaman terhadap organisasi sangat bervariasi. Namun, terdapat beberapa generasi purpose tool yang dapat dimasukkan ke dalam komputer dan sistem operasi yang mendukung bermacam-macam mekanisme proteksi dan keamanan. Secara umum kita berkepentingan dengan masalah pengontrolan akses ke sistem dan informasi yang tersimpan di dalamnya. Sebagian besar pekerjaan dalam keamanan dan proteksi yang berhubungan dengan sistem operasi dapat dikelompokkan menjadi tiga kategori, sebagai berikut.
o   Pengontrolan akses : berkaitan dengan pengaturan akses pengguna ke sistem keseluruhan, subsistem, dan data, serta pengaturan akses proses ke berbagai sumber daya dan objek yang terdapat di dalam sistem.
o   Pengontrolan aliran informasi : mengatur aliran data di dalam sistem dan pengantarannya ke para pengguna.
o   Sertifikasi : berkaitan dengan pembuktian bahwa mekanisme akses dan aliran kontrol dilakukan sehubungan dengan spesifikasinya dan bahwa mekanisme tersebut menerapkan kebijakan proteksi dan keamanan yang diinginkan.

2.4.4 Penjadwalan dan Manajemen Sumber Daya
      Tugas utama sistem operasi adalah untuk mengatur sumber daya yang tersedia ( memori utama, perangkat I/O, prosesor ) dan untuk menjadwalkan penggunaannya oleh berbagai proses aktif. Setiap kebijakan alokasi sumber daya dan penjadwalan memperhatikan tiga faktor berikut ini.
o   Keadilan : umumnya, kita menginginkan semua proses yang bersaing untuk memperoleh sumber daya diberi akses yang hampir sama dan adil ke sumber daya tersebut. Hal tersebut perlu terutama untuk job-job yang kelasnya sama yaitu, job yang kebutuhannya sama dan di beri nilai sama.
o   Responsibilitas Diferensial : sistem operasi perlu membedakan kelas-kelas job-nya dengan persyaratan layanan yang berbeda. Sistem operasi harus berusaha untuk melakukan keputusan tentang alokasi dan penjadwalan yang memenuhi persyaratan secara umum. Sistem operasi perlu memandang keputusan ini secara dinamis. Misalnya, apabila sebuah proses menunggu sebuah perangkat I/O, sistem operasi perlu menjadwalkan proses tersebut untuk melakukan eksekusi secepat mungkin agar membebaskan perangkat untuk keperluan proses lainnya.
o   Efisiensi : di dalam kendala keadilan dan efisiensi, sistem operasi harus berusaha untuk memaksimalkan throughput, meminimalkan waktu respons, dan dalam kasus time-sharing, mengakomodasi pengguna sebanyak mungkin.
Pada dasarnya, penjadwalan dan manajemen sumber daya merupakan masalah penelitian sistem operasi dan hasil matematika disiplin itu dapat diterapkan. Selain itu, ukuran aktivitas sistem penting untuk dapat memonitor kinerja dan membuat penyesuaian. 

2.4.5 Struktur Sistem
Dengan semakin banyaknya feature yang ditambahkan ke sistem operasi, dan semakin kompleks dan beraneka ragam hardware, ukuran dan kompleksitas sistem operasipun semakin berkembang. CTSS, yang dioperasikan di MIT pada 1963, terdiri dari hampir 32.000 word penyimpan 36 bit. OS 360, yang diperkenalkan setahun kemudian oleh IBM, memiliki lebih dari sejuta instruksi mesin. Pada 1975, sistem Multics, yang dibuat oleh MIT dan Bell Laboratories, telah berkembang menjadi lebih dari 20n juta instruksi. Adalah benar bahwa semakin lama, sistem operasi yang sederhana telah digunakan untuk sistem yang lebih kecil, namun sistem operasi tersebut telah berkembang semakin kompleks sesuai dengan semakin kompleksnya hardware dan perkembangan permintaan pengguna. Jadi, UNIX saat ini jauh lebih kompleks dibandingkan seluruh sistem mainan yang dibuat oleh para pemrogram berbakat pada awal 1970-an, dan MS-DOS sederhana telah memberikan alan bagi OS/2 dan Windows 95 yang sangat kompleks.
Ukuran sistem operasi dengan feature-nya, dan kesulitan tugas yang harus dilakukan. Kedua, sistem memiliki bug-bug laten yang muncul dalam praktik dan harus diperbaiki. Ketiga, kinerja sering sekali terjadi tidak sesuai dengan yang diharapkan.
Untuk mengatur kompleksitas sistem operasi dan untuk mengatasi masalah tersebut, telah banyak perhatian yang diberikan terhadap struktur software sistem operasi selama bertahun-tahun. Beberapa hal telah jelas. Software harus bersifat modular. Modularitas ini akan membantu dalam mengorganisasikan proses pembuatan software dan membatasi pekerjaan diagnosis dan perbaikan error. Modul harus memiliki interface satu dengan yang lainnya dan harus dibuat sesederhana mungkin. Hal ini akan memudahkan pemrograman. Interface seperti itu juga akan memudahkan terjadinya evolusi sistem. Dengan interface antar modul yang bersih dan minimal, sebuah modul dapat diubah dengan sedikit dampak terhadap modul lainnya.
Bagi sistem operasi yang besar, yang terdiri mulai dari ratusan ribu hingga jutaan baris, pemrograman modular saja tidaklah cukup. Terdapat peningkatan pemakaian konsep lapisan hierarki dan abstraksi informasi. Struktur hierarki sebuah sistem operasi modern membedakan fungsi-fungsi berdasarkan kompleksitasnya, skala waktu karakteristiknya, dan tingkatan abstraksinya. Kita dapat memandang sistem sebagai susunan tingkatan. Setiap tingkatannya melakukan subset fungsi tertentu yang dilakukan oleh sistem operasi. Lapisan tersebut bergantung pada lapisan berikutnya yang lebih rendah dalam melakukan fungsinya yang lebih primitif dan untuk menyembunyikan detail fungsi tersebut. Lapisan tertentu memberikan layanan bagi lapisan lainnya yang lebih tinggi. Idealnya, suatu tingkatan harus ditentukan sehingga perubahan pada satu tingkatan tidak memerlukan perubahan pada tingkatan lainnya. Dengan demikian kita telah memecah suatu masalah menjadi sejumlah sub-masalah yang lebih dapat diatur.












   2.4 Tabel Hierarki Rancangan Sistem Operasi
Tingkat
Nama
Objek
Contoh Operasi
13
Shell
Lingkungan pemrograman
Pernyataan di dalam bahasa


pengguna
shell




12
Proses pengguna
Proses pengguna
Quit,kill,suspende,resume




11
Direktori
Direktori
Create,destroy,attach,detach,



search,list
10
Perangkat
Perangkat eksternal
Create,destroy,open, close


misalnya printer,read,write



display, dan keyboard

9
Sistem file
File
Create,destroy,open, close,



read,write
8
Komunikasi
Pipe
Create,destroy,open, close,



read,write
7
Memori virtual
Segmen,page
read,write,fetch
6
Penyimpan
Blok data, saluran sekunder
read,write,fetch,allocate


lokal perangkat

5
Proses Primitive
Proses Primitive, semaphore,
suspend,resume,wait,signal


ready list

4
Interrupt
Program Intrrrupt-handling
Invoke,mask,unmask,retry
3
Prosedure
Prosedure,pemanggilan stack,
Tandai stack,call,return


display

2
Set instruksi
Stack evaluasi, interpreter
Load,store,add,substract


mikroprogram,dan branch skalar



dan array

1
Rangkaianelektronik
Register,gate,bus,dan lain-lain
clear, transfer, activate,



complement

2.5 Karakteristik Sistem Operasi Modern
      Selama beberapa tahun, telah terjadi evolusi gradual struktur dan kemampuan sistem operasi. Namun, dalam beberapa tahun terakhir ini sejumlah elemen-elemen rancangan yang baru telah diperkenalkan baik ke dalam sistem operasi yang baru maupun versi baru sistem operasi yang telah ada untuk membuat perubahan besar dalam sifat sistem operasi. Sistem operasi yang baru ini merupakan jawaban bagi perkembangan baru di dalam hardware dan aplikasi baru. Salah satu diantara driver hardware yang penting adalah mesin multiprosesor, yang kecepatannya sangat meningkat, penyambungan jaringan kerja yang berkecepatan tinggi, dan peningkata ukuran bermacam-macam perangkat penyimpan memori. Di bidang aplikasi, aplikasi multimedia, akses internet dan web, dan komputasi client/server telah memberikan paengaruhnya terhadap rancangan sistem operasi.
      Kecepatan perubahan dalam kebutuhan akan sistem operasi tidak hanya memerlukan modifikasi atau perbaikan arsitektur yang telah ada saja, namun cara-cara baru mengorganisasikan sistem operasi. Berbagai pendekatan dan elemen rancangan telah dicoba baik pada sistem operasi eksperimental maupun sistem operasi komersial. Namun pendekatan dan elemen rancangan itu pada dasarnya dapat digolongkan menjadi:
o   Arsitektur microkernel
o   Multithreading
o   Multiprocessing simetris
o   Sistem operasi terdistribusi
o   Rancangan berorientasi objek
Sampai saat ini, sebagian besar sistem operasi berfeature kernel monolotik berukuran besar. Umumnya apa yang dianggap sebagai fungsionalitas sistem operasi disediakan did ala kernel-kernel yang besar ini, termasuk diantaranya penjadwalan, sistem file, jaringan kerja, driver-driver perangkat, manajemen memori, dan lain-lain. Arsitektur microkernel hanya meng-assign beberapa fungsi penting saja ke kernel, termasuk di antaranya ruang alamat, interprocess communication (IPC), dan penjadwalan dasar. Layanan OS lainnya disediakan oleh proses, kadang-kadang disebut server, yang beroperasi pada mode pengguna dan diperlukan seperti aplikasi lainnya oleh microkernel. Pendekatan ini menggabungkan kernel dan pengembangan server. Server dapat disesuaikan dengan aplikasi atau persyaratan lingkungan tertentu. Pendekatan microkernel menyederhanakan implementas, memberikan fleksibilitas, dan sangat cocok untuk lingkungan terdistribusi. Pada dasarnya, microkernel berinteraksi dengan proses server lokal dan jauh (remote) dengan cara yang sama, yang memberikan fasilitas pembentuk sistem terdistribusi.
Multithreading adalah teknik dimana suatu proses, yang mengeksekusi aplikasi, dibagi menjadi thread-thread yang dapat berjalan secara bersamaan. Kita dapat membedakan antara proses dengan thread seperti berikut ini:
o   Thread : satuan kerja yang dapat dikirimkan. Thread melakukan eksekusi secara sekuential dan dapat diinterupsi sehingga prosesor dapat beralih ke thread lainnya. Dari sudut pandang penjadwalan dan pengiriman, konsep ini ekuivalen dengan proses yang terdapat pada sebagian besar sistem operasi lainnya.
o   Proses : kumpulan sebuah thread atau lebih darii sumber daya yang terkait (seperti memori, file terbuka, dan perangkat). Proses berkaitan erat dengan konsep suatu program dalam eksekusi. Dengan memecah sebuah aplikasi menjadi sejumlah thread, pemrogram memiliki control yang besar terhadap modularitas aplikasi dan timeran event-event yang berkaitan dengan aplikasi. Dari sudut pandang job atau aplikasi, konsep ini ekuivalen dengan konsep tentang proses pada sebagian besar sistem operasi lainnya.



Daftar Pustaka



ANANG92 Ananda.A., Tay.B..dan Koll,E.-“A Survey Of Asynchronous Remote    Procedure Calls”.Operating System Review, April 1992.

ARTS89a Artsy,Y.,ed. Special Issue on Process Migration. Newsletter of the IEEE Computer SocietyTechnical Committee on Operating Systems, Winter 1989


0 comments: