Sistem Software adalah kumpulan system program yang menyediakan beragam fungsi seperti file editing, resource accounting, IO management, storage management dsb. Lalu apa yang dimaksud dengan system program ? System program adalah suatu program yang membantu general user menjalankan atau mengeksekusi komputasi secara efektif yang dibutuhkan oleh system komputer.
“General user” yang dimaksud pada definisi di atas, tidak termasuk program khusus yang digunakan oleh user, seperti software application. Sedangkan eksekusi disini meliputi semua aktivitas diawali dari input teks program dan beragam tahapan pemrosesan dalam system komputer seperti : penamaan, editing, storage, relocation, linking dan pada akhirnya eksekusi itu sendiri.
“General user” yang dimaksud pada definisi di atas, tidak termasuk program khusus yang digunakan oleh user, seperti software application. Sedangkan eksekusi disini meliputi semua aktivitas diawali dari input teks program dan beragam tahapan pemrosesan dalam system komputer seperti : penamaan, editing, storage, relocation, linking dan pada akhirnya eksekusi itu sendiri.
I.1.1. Sistem Program dan Pemrograman Sistem
Pemrograman Sistem adalah aktivitas perancangan dan pengimplementasian Sistem Program. Pertanyaan yang sering muncul adalah apakah perbedaan antara Pemrograman Sistem dan aktivitas pemrogaraman yang lain ? Pertanyaan lain yang relevan adalah apakah perbedaan Sisetm Program dan jenis program yang lain, seperti scientific program, data processing program atau application program.
Sistem program membantu general user menjalankan suatu eksekusi dengn effektif pada system komputer. Apa yang dimaksud dengan “efektif” disini ? Apakah berkaitan dengan computer time atau programmer time ? Pada dasarnya yang dimaksud “efektif” dalam hal ini adalah keseluruhan proses pengembangan program dan eksekusi. Dengan kata lain “efektif “ adalah keseimbangan antara aspek (i) keefektifan penggunaan system komputer, (ii) keefektifan dari sumber daya manusianya yang terlibat dalam pengembangan program. Secara keseluruhan efektifitas terebut akan terkait dengan optimalisasi pembiayaan.
Keseimbangan pembiayaan untuk komputer dan sumberdaya manusia tergantung dari situasi yang mempengaruhinya, yaitu (i) pengaruh factor lingkungan yang ada pada system komputer seperti main storage, auxiliary devices, dsb, (ii) pengar uh komputasi seperti pengembangan program, data processing, real time application, dsb. Karena tujuan utama perancang system program adalah merancang dan mengkode program agar tugas yang dijalankannya tidak hanya berjalan dengan benar tetapi juga effektif, maka berkaitan dengan keseimbangan biaya seperti yang telah dijelaskan di atas, efisiensi algoritma dan keserasian struktur data menjadi hal yang penting.
Sebagai contoh, compiler yang digunakan untuk bahasa pemrograman FORTRAN, yang banyak digunakan pada komputasi scientific. Apabila perancang compiler-dalam hal ini compiler merupakan system program- menekankan pada optimalisasi sumberdaya komputer, misalnya CPU, untuk menjalankan pekerjaannya,maka perancang tersebut akan berharap bahwa compiler tersebut (i) dapat menjalankan proses kompilasi FORTRAN secara cepat, atau (ii) menjalankan program secara efisien (efficient execution) setelah program tersebut ditranslasikan ke dalam bentuk bahasa mesin. Jika semua pekerjaan dalam instalasi berjalan hanya satu atau dua kali dan eksekusinya tidak berlangsung dalam waktu yang lama, maka kompilasi yang cepat menjadi pilihan yang lebih baik dibandingkan dengan efficient execution. Di lain sisi, jika pekerjaan cenderung dieksekusi oleh komputer dalam waktu bermenit-menit hingga berjam- jam, efficient execution menjadi prioritas utama. Karenanya compiler dirancang tidak menekankan pada optimalisasi manusia dan sumberdaya komputer yang dicurahkan pada eksekusi pekerjaan. Sebagai contoh, compiler mempunyai pekerjaan untuk mengindikasikan semua kesalahan yang ada pada suatu pekerjaan. Sebagai konsekuensinya, user akan menghabiskan jumlah waktu untuk mencoba menemukan bugs dalam program. Pengantar Pemrograman Sistem 2 Permasalahannya penelusuran bugs mempertimbangkan berbagai kemungkinan dan membutuhkan ekstra pengerjaan program dan penggunaan sumber daya komputer secara baik.
Suatu komputer dirancang untuk memberikan nilai tambah bagi sumberdaya manusia yang
dapat melakukan pengecekan secara mendalam terhadap program untuk mendeteksi semua
kemungkinan kesalahan (error) yang mungkin terjadi. Karenanya dukungan terhadap pengindikasian kesalahan ( diagnostic support ) akan memperlambat compiler karena membutuhkan banyak waktu untuk memproses setiap statement. Dalam situasi seperti ini, programmer time menjadi lebih mahal dibandingkan dengan computer time, karenanya compiler menjadi lambat namun diimbangi dengan kemampuan diagnostik yang baik sehingga secara keseluruhan menjadi lebih efektif dibandingkan dengan fast compiler tanpa diagnostik yang memadai.
Suatu aspek yang membedakan Sistem Program dengan berbagai jenis program lain adalah adanya kaitan yang penting dengan factor lingkungannya, termasuk keseimbangan biaya antara sumberdaya manusia dan komputer. Hal yang perlu digarisbawahi adalah keseimbangan biaya tersebut menghasilkan suatu fakta penggunaan system komputer terkait erat dengan waktu.
I.2. Komponen Sistem Software
Seorang programmer memecahkan permasalahannya melalui system komputer. Untuk memecahkan permasalahnnya programmer dapat menggunakan berbagai bahasa pemrograman (programming language) dalam berhubungan dengan system komputer. Seperti kita ketahui CPU membutuhkan informasi yang sifatnya spesifik dan disajikan dalam format baku, dimana CPU hanya mengerti bahasa mesin (machine language) . Karena itu programmer membutuhkan bahasa penterjemah (language translation) atau compiler yang akan menterjemahkan kumpulan instruksi dalam programming language ke dalam machine languange. Agar diperoleh intisari pekerjaan yang dihasilkan dari CPU, machi ne languange menyerahkannya pada operating system untuk menjadual pekerjaan yang dilakukan CPU dari waktu ke waktu. Hal ini membuat system komputer berjalan optimal.
Language translation dan operating system dapat dikategorikan sebagai system program.
Dengan menulis program menggunakan bahasa tingkat tinggi ( high level language), seorang programmer memperoleh kebutuhannya tanpa perlu mengetahui lebih mendalam bagaimana program tersebut dimengerti oleh CPU. Compiler -lah yang akan bertugas agar program ya ng dibuat oleh programmer dimengerti oleh CPU. Agar kegiatan tadi berjalan secara optimal dalam system komputer maka operating system yang bertanggung jawab melakukannya. Dua aspek mendasar dari tugas system software adalah (i) membuat fasilitas yang ada m enjadi lebih baik (ii) mencapai pekerjaan yang efisien.
1.3. Evoluai Sistem Software
Seperti telah dijelaskan di atas, system program yang merupakan komponen standar dalam system komputer yang dibangun secara bertahap. Dalam pembangunan system program t ersebut aspek sumberdaya manusia dan sumberdaya komputer saling berkaitan satu sama lain agar dicapai efektivitas komputasi yang optimal. Pada masa sekarang biaya yang dikeluarkan untuk sumberdaya manusia lebih mahal dibandingkan dengan biaya komputer. Hal ini sangat berbeda dengan keadaan sekitar 30 tahun yang lalu dimana biaya untuk komputer lebih mahal dibandingkan dengan sumberdaya manusia. Oleh karena itu sejarah dari system software dapat dilihat dengan prioritas pada dua aspek yaitu pengenalan fasilitas yang lebih baik dan efektivitas penggunaan system.
I.3.1. Languange Translator
Tahapan awal yang cukup penting dalam sejarah system software adalah pengembangan bahasa penterjemah ( language translator). Pada awalnya program ditulis dalam bahasa mesin Pengantar Pemrograman Sistem 3 (machine languange). Hal ini sangat tidak praktis bila dipandang dari sisi programmer.
Pengembangan languange translator membantu programmer untuk membuat kode program dalam bahasa yang mudah dimengerti oleh mereka untuk kemudian diubah ke dalam bahasa mesin. Translator ke dalam bahasa pemrogram tingkat rendah ( low level languange) dikenal dengan istilah assembler atau bahasa assembly ( assembly languange). Assembly languange merupakan bahasa yang mendekati bahasa mesin akan tetapi masih lebih mudah dipelajari oleh manusia. Bahasa ini menggunakan kode operasi mnemonik (mnemonic operaration code) seperti LOAD, ADD dan symbolic operand seperti VALUE, RESULT dalam merepresentasikan numeric dari kode instruksi mesin dan pengalamatanya. Assembly languange lebih mudah untuk menulis atau memodifikasi program, namun tetap mempunyai ketergantungan yang cukup tinggi pada mesin.
Perkembangan selanjutnya adalah bahasa pemrograman yang berdasar pada machine independent . Bahasa ini dikenal dengan istilah bahasa tingkat tinggi ( high level languange) yang
dibutuhkan programmer untuk merinci logic dalam penyelesaian masalah dalam bentuk algoritma, yaitu tahapan prosedur untuk mencapai solusi suatu masalah. Setiap tahapan prosedur direpresentasikan dalam program logic yang s ignifikan, seperti komputasi, decision, input nilai dan sebagainya serta tidak tergantung pada komputer dimana program tersebut dieksekusi. Digunakannya high level languange membebaskan programmer untuk mengetahui kerumitan detail pekerjaan dari komputer. High level languange akan ditranslasikan ke dalam bahasa mesin sebelum akhirnya dieksekusi. Kegiatan translasi ini lebih mahal bila dibandingkan translasi dari assembly languange program, karena adanya tambahan biaya dalam hal mereduksi rancangan, coding dan debugging program. Untuk memudahkan perancangan program itu sendiri saat ini banyak digunakan konsep struktur data dan penggunaan prosedur. High level languange translator membantu programmer mencari indikasi kesalahan selama proses proses translasi dijalankan.
Perkembangan selanjutnya adalah bahasa pemrograman yang berdasar pada machine independent . Bahasa ini dikenal dengan istilah bahasa tingkat tinggi ( high level languange) yang
dibutuhkan programmer untuk merinci logic dalam penyelesaian masalah dalam bentuk algoritma, yaitu tahapan prosedur untuk mencapai solusi suatu masalah. Setiap tahapan prosedur direpresentasikan dalam program logic yang s ignifikan, seperti komputasi, decision, input nilai dan sebagainya serta tidak tergantung pada komputer dimana program tersebut dieksekusi. Digunakannya high level languange membebaskan programmer untuk mengetahui kerumitan detail pekerjaan dari komputer. High level languange akan ditranslasikan ke dalam bahasa mesin sebelum akhirnya dieksekusi. Kegiatan translasi ini lebih mahal bila dibandingkan translasi dari assembly languange program, karena adanya tambahan biaya dalam hal mereduksi rancangan, coding dan debugging program. Untuk memudahkan perancangan program itu sendiri saat ini banyak digunakan konsep struktur data dan penggunaan prosedur. High level languange translator membantu programmer mencari indikasi kesalahan selama proses proses translasi dijalankan.
I.3.2. Batch Monitor
Pada awal system komputer digunakan, sebuah program dijalankan pada satu waktu mode operasi (one program at a time operating mode). Operator komputer akan melakukan sedikit tindakan untuk men-set up dan menandai proses suat u pekerjaan. Tindakan tersebut sangat sederhana, hanya memutar/switches console, tetapi sering dalam pemberian instruksi dalam memori komputer, yang pada saat dieksekusi akan memulai pengoperasian translator. Setelah inisialisasi ini proses suatu pekerjaan akan dimulai. Pada akhir eksekusi pekerjaan, operator akan mengulangi tahapan yang sama untuk menginisialisasi proses pekerjaan akhir.
Mode operasi ini tidak efisien digunakan bagi komputer, karena banyak waktu yang terbuang dari kegiatan yang dilakukan oleh operator. Ketergantungan interaksi manusia dalam kegiatan ini-pun harus dikurangi. Dalam perancangan Sistem Program kemudian dikenal Batch Monitor yang merealisasikan proses dari sekumpulan pekerjaan user tanpa membutuhkan interaksi operator. Batch monitor mengambil alih kontrol operasi komputer, dimana dia akan menginisialisasi proses pada setiap pekerjaan secara batch dengan suatu cara yang pada akhirnya diproses, kendali selanjutnya akan dikembalikan ke batch monitor. Pada akhir pekerjaan dalam batch diproses, batch monitor akan dihentikan operasinya dan kendali akan dikembalikan ke operator komputer untuk inisialisasi tindakan berikutnya.
Otomatisasi kendali eksekusi pekerjaan batch dengan batch monitor meningkatkan efisiensi penggunaan komputer system. Jika system komputer dibagi (share) dalam suatu kelompok user akan lebih efisien dan diharapkan semua user akan memperoleh manfaatnya. Namun, ketika efisiensi coba untuk ditingkatkan, user secara umum akan mengalami turn along time yang cukup lama. Turn along time didefinisikan sebagai waktu yang terlewatkan sejak pengiriman pada pusat komputer hingga waktu pada saat hasil diperoleh. Pada “one program at a time environment ” pengiriman pekerjaan dan pelepasan hasil umumnya dilakukan dalam basis informal, sering kali turn around time untuk suatu pekerjaan hanya berbeda tipis dengan waktu proses pekerjaan itu sendiri. Dengan dikenalkannya batch processing, prosedur formal mengharuskan pengenalan format fasilitas secara batch sejumlah pekerjaan.Untuk menghasilkan efisiensi yang lebih tinggi, pekerjaan dalam disimpan dalam media input output (IO) seperti magnetic tape atau disk. Pengantar Pemrograman Sistem 4 Turn around time pada batch processing tergantung pada : (i) total waktu proses dari seluruh pekerjaan dalam batch (ii) waktu batch formation yang baik pada saat pencetakan output dan release time.
1.3.3. Multiprogramming Operating System
Pada arsitektur komputer klasik, instruksi input output dieksekusi bersamaan dengan instruksi lainnya (arithmetic, logical, dsb) oleh CPU. Ketika instruksi IO diterjemahkan, CPU akan membangkitkan signal kendali kepada IO device. Sekarang IO device sibuk dengan operasinya dan di akhir akan mengirimkan signal akhir operasi ke CPU. CPU akan mengalami waktu sia-sia ketika inisialisai IO hingga IO selesai. Konsep saluran (channel concept) akan membebaskan CPU dari waktu sia-sia yang tidak perlu ketika operasi IO sedang berjalan. IO dijalankan sebagai berikut : CPU mengeksekusi instruksi Start Input Output dengan alamat IO device sebagai operand. Pada saat instruksi dijalankan, alamat device akan dilewatkan melalui saluran/channel. Channel memeriksa device untuk melihat apakah device tersebut tersedia dan mengirimkan sebuah signal akhir operasi dengan suatu kode kondisi (ketersediaan device untuk beroprasi, device sibuk, device non-exsistent , dsb) ke CPU.
Penggunaan CPU dan IO channel secara bersamaan membutuhkan data independence, dimana 2 atau lebih independence program di panggil ke dalam memori. Ketika IO menjalankan sebuah program, CPU menjalankan komputasi untuk program yang lain. Dua atau lebih program yang dapat dijalankan secara bersamaan dalam sebuah interleave antara CPU dan IO subsystem disebut multiprogramming.
Suatu multiprogramming operating system adalah kumpulan system program termasuk multiprogramming supervisor (control program) dan beberapa program lain yang membutuhkan supervisor dari waktu ke waktu. Multiprogramming cukup efisien, namun masih mempunyai turn around time yang cukup lama.
1.3.4. Time Sharing Operating System
Dari sisi pandangan user, turn around time yang singkat sangat diharapkan, terutama kecepatan pendeteksian kesalahan program dan pengiriman ulang program untuk menjalankan test. Kebutuhan akan turn around time yang singkat dapat dipecahkan dengan konsep dari interactive computing.
Dalam interactive computing, user duduk di suatu terminal dan memasukan input di komputer dengan memasukan sedikit karakter atau suatu statement. Apa yang diketikkannya tersebut akan ditampilkan pada display yang kemudian ditransmisikan ke komputer dan komputer akan meresponnya. Dengan system penterjemah yang terinstall pada komputer, user harus memasukkan programnya sebelum dilakukan proses translasi atau dalam kasus ini komunikasi dengan translator dilakukan statement demi statement. Pada kasus lani translator akan memproses statement segera setelah dikirimkan dan melakukan pendeteksian kesalahan. Pemasukan input sesuai permintaan proses diikuti dengan penyelesaian proses oleh system komputer disebut dengan interaction. Waktu yang dibutuhkan komputer untuk merespon proses disebut dengan response time.
Dalam lingkungan interactive, user mengevaluasi respon time yang dikerjakan system. Salah satu cara untuk melihat respon time tersebut adalah dengan menghubungkan sejumlah terminal pada system dan menjalankan permintaan proses dari user dengan semua cara yang mungkin untuk mendapatkan respon time yang cukup baik. Sistem operasi yang demikian dikenal dengan Time Sharing Operating Systems. Penjadualan Round Robin adalah contoh dari penggunaan teknik time sharing.
Penulis : Fuad HS
Pemrograman Sistem
Description: Pemrograman SistemViews:
Category:
Tugas Kampus