Monday, 27 July 2015

SISTEM OPERASI KOMPUTER (KONGKURENSI)




       Kongkurensi merupakan landasam umum perancangan sistem operasi.
       Proses-proses disebut kongkuren jika proses-proses (lebih dari satu proses) berada pada saat yang sama
       Proses-proses kongkuren dapat sepenuhnya tak bergantung dengan lainnya tapi dapat juga saling berinteraksi
       Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik
       Pada proses-proses kongkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, yaitu:
  1. Mutual exclusion
  2. Deadlock
  3. Starvation
  4. Sinkronisasi

       Banyak bahasa pemrograman dikembangkan untuk pembuatan program kongkuren, antara lain:
  1. Bahasa concurent pascal oleh Brinch Hansen
  2. Bahasa Modula-2 oleh Niklaus Wirth
  3. Bahasa Ada oleh departemen pertahanan Amerika dsb

1 prinsip-prinsip Kongkurensi
       Kongkurensi meliputi hal-hal berikut:
  1. Alokasi waktu pemroses untuk proses-proses
  2. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
  3. Komunikasi antar proses
  4. Sinkronisasi aktivitas banyak proses

       Kongkurensi dapat muncul pada 3 konteks berbeda yaitu:
  1. Untuk banyak aplikasi(multiprogramming)
                contoh:
v  Aplikasi pppd-daimon yang bertugas menjagai transfer data lewat kanal point-to-point protocol. Aplikasi ini bertugas sebagai arus bawah untuk komunikasi lewat saluran serial(modem) dengan ujung satunya (biasaya ISP)
v  Aplikasi diald-daemon yang bertugas untuk secara otomatis menghidup matikan modem atau saluran serial sehingga seolah-olah pemakai terhubung terus ke ISP
v  Multiprogramming  juga sangat berguna pada saat user menunggu selesainya layanan (misal transfer berkas oleh modem atau pencetakan oleh printer) pemakai dapat berinteraksi dengan aplikasi lain

  1. Untuk strukturisasi aplikasi
                contoh: pemrograman tersturktur adalah suatu aplikasi secara efktif diimplementasikan               
              sebagai sekumpulan proses
  1. Untuk strukturisasi satu proses, peningkatan kinerja satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses
  2. Untuk struktur sistem operasi, keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem, beberapa sistem operasi telah diimplementasikan sebagai sekumpulan proses ( sitem operasi bermodelkan client/server )

2 Kesulitan-kesulitan yang ditimbulkan Kongkurensi
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi
       Kecepatan proses pada sistem bergantung beragam hal:
  1. Aktivitas-aktivitas proses-proses lain
  2. Cara sistem operasi menangani interupsi
  3. Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi

       Beberapa kesulitan dapat muncul diantaranya:
  1. Pemakaian bersama sumber daya global, jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis
  2. Pengelolaan alokasi sumber daya agar optimal, jika proses A meminta suatu kanal I/O tertentu dan proses A di-suspend sebelum menggunakan kanal itu,  jika OS mengunci kanal dan mencegah proses-proses lain menggunakan kanal itu
  3. Pencarian kesalahan pemrograman, pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen

3 Mutual exlusion, Deadlock dan startvation
       Beberapa masalah yang muncul pada kongkurensi:
  1.  Mutual Exclusion
  2. Deadlock
  3. Starvation

  1. Mutual exclusion, adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu.             seperti printer (mempunyai ruang disk / direktori spooler) untuk menyimpan berkas-berkas yang akan dicetak, sumber daya macam ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/section Pemaksaan adanya mutual exclusion menimbulkan dua masalah,yaitu:
-          Deadlock
-          Startvation.
  1. Deadlock, adalah jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi.
deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya.

 


       Contoh
P0  dialokasikan R0
P1  dialokasikan R1

Kemudian
P0  sambil masih menggegam R0   meminta R1
P1  sambil masih menggegam R1 meminta R0
Terjadinya deadlock ditandai munculnya graph melingkar


  1. Startvation 
Ilustrasi startvation
Misalnya
       Terdapat tiga proses p1,p2 dan P3
       P1,P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi:
       P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R
       Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
       Asumsi P3 diberi hak akses. kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R

4 Interaksi antar Proses

Pada sistem dengan banyak proses (kongkuren), terdapat 3 kategori interaksi, yaitu:
  1. Proses-proses saling tidak peduli (independen)
  2. Proses-proses saling mempedulikan secara tidak langsung
  3. Proses-proses saling mempedulikan secara langsung

5 Pokok Penyelesaian Masalah Kongkurensi
Penyelesaian masalah kongkurensi ada 2 :
  1. Mengasumsikan adanya memori yang digunakan bersama
  2. Tidak mengasumsikan adanya memori yang digunakan bersama
Adanya memori bersama lebih mempermudah penyelesaian masalah kongkurensi. Metode penyelesaian ini dapat dipakai untuk singleprocessor  atau multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama / sistem tersebar








SEKILAS MENGENAI SISTEM OPERASI


1 TUJUAN MEMPELAJARI SISTEM OPERASI
Tujuan yang dapat dicapai dalam mempelajari sistem operasi, yaitu :
1. Tujuan tertinggi belajar sistem operasi adalah agar dapat merancang sendiri atau memodifikasi sistem operasi yang telah ada sesuai kebutuhan
2. Agar dapat menilai sistem operasi dan memilih alternatif sistem operasi sesuai tujuan pembangunan sistem.
3. Pemakai harus berinteraksi dengan sistem operasi untuk menyelesaikan tugasnya karena sistem operasi merupakan antarmuka utama dalam berhubungan dengan sistem komputer.

2 Fungsi dan Sasaran Sistem Oprasi
Sistem operasi mempunyai dua tugas utama, yaitu :
1. Pengelola seluruh sumber daya sistem komputer (sebagai resource manager)
2. Sistem operasi sebagai penyedia layanan (sebagai extended/virtual machine) menyediakan sekumpulan layanan (system calls) ke pemakai sehingga memudahkan dan menyamankan penggunaan atau pemanfaatan sumber daya sistem komputer.
Menurut Stalling [STA-95]
Sistem operasi mempunyai tiga sasaran, antara lain:
  1. Kenyamanan
  2. Efisiensi
  3. Mampu berevolusi, dibangun sehingga memungkinkan dan memudahkan pengembangan, pengujian dan pengajuan fungsi-fungsi yang baru tanpa mengganggu layanan yang dijalankan sistem komputer

2.1 Sistem operasi sebagai pengelola sumber daya

Sistem komputer adalah sekumpulan sumber daya untuk memindahkan, menyimpan dan memproses data serta untuk mengendalikan fungsi-fungsi tersebut. Sistem operasi bertanggung jawab mengelola suber daya-sumber daya sistem komputer.
Sistem operasi bertanggung jawab mengelola sumber daya agar penggunaan sumber daya dapat secara benar dan efisien.

2. Basis untuk program lain, program aplikasi dijalankan di atas sistem operasi. Program-program dalam mengendalikan dan memanfaatkan sumber daya sistem komputer dengan meminta layanan sistem operasi untuk mengendalikan sumber daya bagi aplikasi agar pemanfaatan sumber daya sistem komputer dilakukan secara benar dan efisien
2.3 Fungsi-fungsi minor Sistem Operasi
Sistem operasi mempunyai fungsi minor yang merupakan penjabaran dua fungsi utama yaitu:
       Mengimplementasi antarmuka untuk pemakai
       Memungkinkan pemakaian bersama perangkat keras di antara banyak pemakai
       Memungkinkan pemakai data secara bersama
       Mencegah pemakai-pemakai saling mengganggu satu dengan lainya
       Menjadwalkan pemakaian sumber daya
       Memberi fasilitas masukan/keluaran
       Memulihkan kesalahan-kesalahan
       Menghitung penggunaan sumber daya
       Mengorganisasi data agar pengamanan dan cepat diakses
       Menangani komunikasi jaringan

Untuk memenuhi fungsi, sistem operasi mempunyai subsistem antara lain:
       Manajeman proses
       Manajemen memori
       Menajemen berkas (sistem menajemen berkas)
       Manajemen perangkat masukan/keluaran
       Pengamanan sistem
       Sistem komunikasi dll

3 SEJARAH PERKEMBANGAN SISTEM OPERASI
Sistem operasi telah berevolusi sejak komputer diciptakan. Perkembangan sistem komputer dibagi menjadi 4 kurun waktu:
       Generasi Pertama (1945-1955), manusia mempunyai batasan komputasi yaitu:
                1. kecepatan penghitung manusia terbatas
                2. manusia sangat mudah membuat kesalahan
Pada generasi ini belum ada sistem operasi, sistem komputer diberi instruksi yang harus dikerjakan secara langsung
       Generasi Kedua (1955-1965)
Komputer masa ini adalah batch processing system yaitu job dikumpulkan dalam satu rangkaian kemudian dieksekusi secara berurutan.
Pada awal kurun ini, sistem komputer belum dilengkapi sistem informasi, tapi beberapa fungsi dasar sistem operasi telah ada seperti FMS (Fortran Monitoring system)
Pada 1964, IBM mengeluarkan keluarga komputer system/360 menggunakan sistem operasi OS/360
       Generasi Ketiga (1965-1980)
OS dikembangkan untuk melayani banyak pemakai interaktif sekaligus melalui terminal secara online. Sistem komputer menjadi
                - Multiuser, digunakan banyak orang sekaligus
                - Multiprogramming, melayani banyak program sekaligus. Cara yang dilakukan adalah dengan mempartisi memori menjadi beberapa bagian. Dengan satu bagian memori adalah job berbeda. Saat satu job menunggu operasi memasukan/ keluaran selesai, job lain dapat menggunakan pemroses.
       Time Sharing
Varian dari multiprogramming dimana tiap pemakai mempunyai satu terminal on-line dengan pemroses hanya memberi layanan pada pemakai yang aktif secara bergantian secara cepat
Karena sumber daya digunakan bersama sering menimbulkan bottleneck, maka dikembangkan spooling
       Spooling
                membuat peripheral seolah-olah dapat digunakan bersama-sama sekaligus, dapat diakses secara simultan, yaitu dengan menyediakan beberapa partisi memori saat terdapat permintaan layanan peripheral, langsung diterima dan data disimpan lebih dulu di memori yang disediakan (berupa antrian), kemudian dijadwalkan agar secara nyata dilayani oleh peripheral
       Generasi Keempat (1980 – 199x)
Sistem operasi tidak lagi hanya untuk satu mode, tapi banyak mode, yaitu mendukung batch processing, timesharing, dan (soft) real-time applications
Generasi ini ditandai dengan berkembang dan meningkatnya kemampuan komputer desktop dan jaringan komputer.

4 SISTEM KOMPUTER DALAM BERAGAM SUDUT PANDANG
Pandangan sistem koputer dikelompokan menjadi 3 yaitu:
   1. pemakai terdiri dari pemakai awam (end     user) dan administrator sistem
   2. pemrogram
   3. perancang sistem operasi

Hirarki Pandangan terhadap Sistem Komputer


4.1 SISTEM KOMPUTER DALAM PANDANGAN PEMAKAI
Pemakai tidak berurusan dengan arsitektur komputer. Pemakai awam memakai sistem operasi sebatas menggunakan command-language sistem operasi untuk meminta layanan-layanan sistem operasi. Pemakai memberikan perintah beserta argumen-argumenya.
       Command language tersedia di lapisan disebut shell. Shell dapat berupa:
                - text-based shell
                - GUI (graphical user interface) based shell

Text-based shell
Antarmuka dengan sistem berupa baris perintah. Pemakai mengetikan perintah dengan keyboard berupa barisan teks/string menyatakan perintah ke sistem komputer (lewat sistem operasi) untuk melakukan sesuatu
Contoh
        Pada MS-DOS
  pada saat komputer memunculkan prompt
  C:\>_
  Pemakai mengetik perintah melalui Keyboard,     misalnya dir
  C:\> dir
  berarti pemakai meminta sistem operasi untuk menampilkan isi direktori
       Pada UNIX TM
     pada saat komputer memunculkan prompt
     $ _
     pemakai mengetik perintah melalui keyboard, misalnya ls
     $ ls
     berarti pemakai meminta sistem operasi untuk menampilkan isi direktori

GUI (graphical User Interface) Based Shell
Pemakai mengklik menu dan icon untuk mempermudah penggunaan sistem
Contoh
         MS-Windows, OS/2 IBM, UNIX
   pemakai berhadapan dengan desktop yang seolah-olah menggambarkan meja kerja dimana ditampilkan icon-icon. Icon di-klik maka sistem operasi melakukan suatu kegiatan sesuai maksud icon

4.2 SISTEM KOMPUTER DALAM PANDANGAN PEMROGRAM
Pemrogram membuat aplikasi untuk pemakai awam dengan mengekspresikan dalam bahasa pemrograman. Jika pemrogram mengembangkan program aplikasi sebagai barisan instruksi mesin secara langsung, maka pemrogram bertanggung jawab mengelola dan mengendalikan seluruh perangkat komputer sepenuhnya. Pemrogram menghadapi tugas mengendalikan sistem komputer secara kompleks.

Pemrogram dapat mengendalikan sistem komputer melalui beragam level yaitu:
       Mempergunakan program utilitas
       Mempergunakan fasilitas sistem melalui antarmuka layanan (service interface)
       Mempergunakan panggian sistem (system calls)

4.3 SISTEM KOMPUTER DALAM PANDANGAN PERANCANG SISTEM OPERASI

                Sistem operasi bertugas mendadani perangkat keras komputer agar tampil indah, mudah dan nyaman bagi pemrogram. Sistem operasi menghindarkan rincian operasi perangkat keras dan meyediakan antarmuka untuk pemrogram dalam menggunakan sistem.

                Sistem operasi bertindak sebagai mediator, mempermudah pemrogram dan program aplikasi mengakses dan menggunakan fisilitas dan sumber daya sistem komputer