Tampilkan postingan dengan label Sistem Operasi. Tampilkan semua postingan
Tampilkan postingan dengan label Sistem Operasi. Tampilkan semua postingan

Minggu, 03 Desember 2017

Metoda Mengatasi Deadlock

Cara mengatasi deadlock :
A. Pencegahan deadlock (deadlock prevention)
1. Meniadakan mutual exclusion
Deadlock disebabkan terdapatnya  pengaksesan eksklusif sumber daya. Jika tidak ada sumber daya ekslusif ke satu proses tunggal, maka tidak pernah dijumpai deadlock. Cara yang ditempuh untuk mengganti pengaksesan eksklusif adalah dengan spooling sumber daya yaitu proses pengakesan sumber daya diantrikan di disk.

2. Mencegah hold and wait
Proses me-request seluruh sumber daya pada sekaligus dan proses terblock samapai seluruh permintaan terpenuhi. Proses ini tidak efisien karena :

  • Proses menjadi lama karena menunggu semua  sumber daya yang diminta terpenuhi yang sebenarnya dapat dikerjakan hanya dengan beberapa sumber daya.
  • Sumber daya yang sudah dialokasikan pada proses ini mungkin saja tidak langsung digunakan tetapi karena sudah dialokasikan tidak dapat dipakai oleh proses lain.

3. Mencegah no-preemption, dilakukan dengan alternatif:
Jika sebuah proses yang telah menggenggam (hold) sumber daya tidak diperbolehkan meminta (request) lagi sumber daya, proses harus melepaskan (release) sumber daya tersebut dulu jika diperlukan dapat juga meminta kembali sumber daya yang dilepaskan bersamaan dengan sumber daya tambahannya.
Jika proses meminta sumber daya yang sedang digenggam oleh proses lain, sistem operasi dapat menyela (preempt) proses yang menggenggam dengan meminta melepaskan sumber daya tersebut. Alternatif ini dapat dilakukan jika tidak ada dua proses yang memiliki prioritas yang sama. Contoh kasus ini adalah prosesor.

4. Mencegah Circular wait
Dapat dilakukan dengan mendefinisikan urutan linier dari jenis sumber daya. Jika proses telah dialokasikan pada sumber daya berjenis R maka urutan permintaan berikutnya dari proses tersebut adalah hanya yang berjenis R. Misal sumber daya Ri mendahului Rj dengan urutan i < j. Jika terdapat dua proses A dan B deadlock karena A telah memperoleh Ri dan meminta Rj dan B telah memperoleh Rj dan  meminta Ri. Kondisi ini tidak akan terjadi karena pada kasus ini  i < j dan juga j < I.

B. Pendeteksian dan pemulihan deadlock (deadlock detection and recovery)
Berbeda dengan Deadlock prevention, deadlock detection tidak membatasi akses sumber daya dan memberi larangan pada proses. Permintaan terhadap sumber daya akan diberikan jika memungkinkan
Pengecekan deadlock dilakukan setiap kali ada permintaan sumber daya. Pendeteksian deadlock ini menguntungkan karena algoritmanya mudah hanya  didasari perubahan state dan tidak mengkonsumsi waktu prosesor yang banyak.
Setelah dideteksi ada deadlock dilakukan beberapa strategi pemulihan berikut :
  • Keluarkan seluruh proses yang mengalami deadlock.
  • Salin setiap proses yang deadlock ke titik pengecekan yang telah didefinisikan sebelumnya dan mulai kembali dari awal seluruh proses. Resikonya deadlock bisa terjadi lagi tapi karena proses kongkurensi tidak menentu hal ini tidak terjadi.
  • Sela (preempt) sumber daya sampai tidak ada deadlock.

C. Penghindaran deadlock (deadlock avoidance)
Pada metode ini keputusan dibuat dinamik untuk mengetahui apakah suatu permintaan sumber daya jika dipenuhi dapat menyebabkan deadlock atau tidak.
Dua pendekatan penghindaran deadlock:

  • Jangan memulai proses jika proses tersebut akan menghasilkan deadlock
  • Jangan penuhi permintaan penambahan sumber daya jika alokasi ini dapat menyebabkan proses jadi deadlock

Untuk mengetahui kondisi mendatang akan menyebabkan deadlock atau tidak digunakan langkah berikut
Process Initiation Denial
Misal terdapat n proses dan m jenis sumber daya. Didefinisikan dalam bentuk vektor dan matriks


Yang memiliki hubungan
  • Sumber daya terdiri dari yang teralokasi dan yang available 
  • Untuk semua k,Ck<= Resource Tidak ada proses yang meminta sumber daya melebihi jumlah yang ada 
  • Untuk semua k,Ak<=Ck 
Jadi suatu proses akan dimulai hanya jika
Resource Allocation Denial
State : sumber daya yang sedang dialokasikan pada suatu proses
Safe state : state yang setidaknya memiliki satu urutan yang dapat menyebabkan seluruh proses selesai tanpa deadlock (Completion without deadlock)
Contoh safe state dengan total sumber daya R1 = 9, R2 = 3 dan R3 =6

Contoh unsafe state

Tidak ada sumber daya yang dapat dialokasikan agar proses selesai karena sumber daya yang available tidak mencukupi

Pengertian dan Kondisi Deadlock

Deadlock terjadi jika proses menunggu suatu kejadian tertentu yang tidak pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses yang ada di kumpulan menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu.

Prinsip Deadlock:Deadlock dapat didefinisikan sebagai blocking permanen pada beberapa proses yang saling berkompetisi maupun berkomunikasi untuk memperoleh suatu sumber daya

Sumber daya dapat dikatagorikan secara umum menjadi:
1. Reusable resource
Didefinisikan sebagai :Sumber daya yang dapat digunakan dengan aman oleh satu proses pada suatu saat. Terdapat tiga kondisi perlakukan sumber daya oleh proses yaitu : request – hold – release.
Contoh reusable resource :
  • Processor
  • I/O channel
  • Main memory dan secondary memory
  • Device
  • File
  • Database
  • Semaphore
    Contoh deadlock yang melibatkan reusable resource
    Misal terdapat dua proses yang berkompetisi untuk mengakses disk file (D) dan tape drive (T)
    Deadlock terjadi jika masing-masing proses memegang (hold) sumber daya dan meminta (request) sumber daya yang lain yang dipegang oleh proses yang lain. Cara mengatasinya dengan memberi batasan pada disain sistem untuk perintah request (Constraint on design system).


    2. Consumable resource
    Merupakan sumber daya yang dapat dibuat atau dilenyapkan. Kondisi tidak terblock menghasilkan proses-proses yang siap melepaskan sumber daya saat suatu sumber daya diperlukan oleh sebuah proses sumber daya tersebut akan muncul.
    Contoh consumable resource :
    • interrupt
    • sinyal
    • message
    • informasi dalam I/O buffer
    Contoh Deadlock yang melibatkan consumable resource :

    Deadlock terjadi jika pesan Recive terblock di salah satu proses.

    Beberapa kondisi yang memungkinkan terjadinya deadlock:
    • Mutual exclusion :hanya satu proses yang boleh menggunakan sebuah sumber daya pada suatu saat
    • Hold and wait :suatu proses dapat mememegang (hold) sumber daya yang sebenarnya ditunggu-tunggu oleh proses lain
    • No preemption :Tidak ada sumber daya yang dapat dipaksa lepas dari suatu proses yang memegangnya
    • Circular wait :Rantai tertutup yang menyatakan suatu proses memegang sumber daya yang diperlukan oleh proses lain sehingga terjadi saling menunggu
    Circular Wait


    Sabtu, 25 November 2017

    Penjelasan Kongkurensi

    Proses-proses disebut kongkuren jika proses-proses (lebih dari 1 proses) berada pada saat yang sama. Proses-proses kongkuren dapat sepenuhnya tak bergantung dengan lainnya tapi dapat juga saling berinteraksi/kerjasama. Proses-proses yang berinteraksi memerlukan sinkronisasi/koordinasi agar terkendali dengan baik.

    Contoh Kasus :
    Sambil menunggu selesainya layanan (misalnya transfer data oleh modem) pemakai dapat berinteraksi dengan aplikasi lain seperti aplikasi permainan game atau mengetikkan perintah pada text editor. Proses tersebut harus berjalan konkuren dan tidak terjadi deadlock (hang).

    Kegiatan yang berhubungan dengan kongkurensi :
    • Alokasi waktu pemroses untuk proses-proses yang aktif
    • Pemakaian bersama & persaingan mendapatkan sumber daya
    • Komunikasi antar proses
    • Sinkronisasi aktivitas banyak proses
    Kesulitan dalam Kongkurensi:
    • Pemakaian bersama sumber daya global
    • Pengelolaan sumber daya agar optimal 
    • Pencarian kesalahan pemrograman 

    Penanganan Kongkurensi:
    • Mengetahui proses-proses yang aktif
    • Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif
    • Proteksi data dan sumber daya fisik proses
    • Hasil-hasil proses harus independen
    Persaingan dan Kerjasama Antar Proses
    Persaingan antar proses terjadi ketika beberapa proses akan menggunakan sumber daya yang sama. Jika ada 2 proses yang akan mengakses ke suatu sumber daya tunggal, kemudian satu proses dialokasikan ke sumber daya tersebut oleh SO → proses yang lainnya akan menunggu. 

    Pada kasus yang ekstrim, proses yang menunggu tersebut ada kemungkinan tidak akan pernah mendapatkan akses ke sumber daya sehingga tidak akan pernah selesai dengan sempurna. Hal ini juga terjadi akibat antar proses yang saling tidak peduli. Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. 

    Meskipun proses-proses tidak bekerja bersama, SO perlu mengatur persaingan diantara proses-proses itu dalam memperoleh sumber daya yang terbatas
    Contoh :
    • Dua buah aplikasi (word & corel) berusaha mengakses printer yang sama.
    • Bila kedua aplikasi mengakses printer yang sama benar-benar secara bersamaan maka kedua proses akan memperoleh hasil yang tidak di kehendaki.
    Kondisi dan Masalah
    Beberapa kondisi dan masalah yang dapat muncul pada kongkurensi antara lain :
    • Mutual exclusion
    Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu, sedangkan proses lain dilarang mengerjakan hal yang sama. Contoh : sumberdaya printer hanya bisa diakses 1 proses, tidak bisa bersamaan → sumber daya ini disebut sumber daya kritis
    • Deadlock
    Adalah banyak proses yang saling menunggu hasil dari proses yang lain untuk dapat melanjutkan atau menyelesaikan tugasnya.

    Misal : 2 proses P0 dan P1 
    2 sumber daya R0 dan R1 
    P0 meminta sumberdaya R0. 
    Sumber daya R1 dialokasikan ke P1. 

    Skenario yang menimbulkan deadlock :
    P0 dialokasikan R0
    P1 dialokasikan R1

    P0 sambil masih menggenggam R0, meminta R1
    P1 sambil masih menggenggam R1, meminta R0
    Terjadi deadlock karena sama-sama akan saling menunggu 

    Starvation
    Adalah suatu proses akan menunggu suatu kejadian atau hasil suatu proses lain, supaya dapat menyelesaikan tugasnya, tetapi kejadian yang ditunggu tidak pernah terjadi karena selalu diambil lebih dulu oleh proses yang lain.

    Contoh :Terdapat tiga proses, yaitu P1, P2 dan P3. 
    1. P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
    2. Skenario berikut terjadi : 
    3. P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R. 
    4. Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R. 
    5. Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R. 
    6. Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R. 
    7. Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).



    Sabtu, 18 November 2017

    Penjadwalan Proses

    Penjadwalan CPU terjadi pada sistem operasi yang mempergunakan multiprogramming. Penjadwalan berupa kumpulan kebijakan untuk menentukan proses mana yang harus dikerjakan CPU dan berapa lama proses tersebut berjalan.

    Tujuan penjadwalan adalah mengusahakan agar CPU tetap sibuk. Pada saat CPU menunggu operasi I/O, scheduler menyeleksi proses di main memory yang memiliki status ready untuk dieksekusi. Penjadwalan tipe ini disebut Short-term scheduller. Scheduler pada short-term ini dikenal dengan nama dispatcher

    Tipe-tipe Penjadwalan

    • Short-term scheduller : ready→ running
    • Medium-term scheduller : suspended→ ready
    • Long-term scheduller : batch (new)→ ready

    Untuk mengukur kinerja scheduler digunakan beberapa kriteria :
    • Fairness: Proses-proses diperlakukan sama yaitu setiap proses akan mendapatkan pembagian waktu secara adil
    • CPU utilization: CPU dikondisikan agar tetap sibuk, yang dinyatakan dengan rasio waktu sibuk
    • Throughput: Ini hanya terjadi pada saat CPU sibuk yaitu banyaknya job yang dikerjakan dalam satu satuan waktu
    • Turnaround Time: Banyaknya waktu yang diperlukan untuk mengeksekusi proses sampai selesai, dari mulai menunggu untuk meminta tempat di main memory, menunggu di ready queue (waiting time), dieksekusi dan selesai. Sasaran dari scheduller adalah meminimalkan timearound time.
    • Response Time: Waktu yang dibutuhkan oleh suatu proses dari minta dilayanai sampai ditanggapi.
    Strategi Penjadwalan
    • Penjadwalan nonpreemptive: Begitu diberi jatah waktu pemroses maka prosesor tidak dapat diambil alih oleh proses lain sampai proses itu selesai (run to completion)
    • Penjadwalan Preemptive: Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih oleh proses lain sehingga proses disela sebelum selesai dan akan dilanjutkan setelah jatah waktu pemroses kembali padanya.
    Algoritma Penjadwalan
    A. First Come First Served (FCFS)
    Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu.
    Algoritma ini termasuk non-preemptive
    Average Waiting Time (AWT) tinggi. AWT adalah  total waktu menunggu dari semua proses dibagi jumlah proses 
    Misal ada 3 proses : P1, P2 dan P3 yang meminta layanan CPU
    Jika urutan kedatangan P1, P2, P3
    Gant Chart
    Waktu tunggu untuk tiap-tiap proses
    AWT = (0+24+27)/3 = 17 ms

    B. Short Job First Scheduling (SJF)
    Proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu
    Misal ada 4 proses : P1, P2, P3 dan P4
    Gant Chart
    Waktu tunggu untuk tiap-tiap proses

    AWT=  (3+16+9+0)/4=  7 ms

    Kelemahan SJF : sulitnya mengetahui CPU burst time berikutnya. Cara mengatasinya dengan memprediksi CPU Burst Time berikutnya menggunakan rata-rata eksponensial dari burst time sebelumnya.

    Sebagai contoh α = 0,5
    Pada awalnya t1 = 6 dan τ1 = 10 sehingga
    Ï„2    = 0,5*6 + (1-0,5)*10 = 8
    Nilai ini akan digunakan untuk mencari  Ï„3
    τ3=(0.5)*4+ (1-0.5)*8=6

    Strategi penjadwalan SJF adalah non-preemptive dan preemptive. Misal ada proses P1 yang datang pada saat P0 sedang berjalan. Pada Preemptive jika CPU burst P1 lebih kecil dari sisa waktu yang dibutuhkan P0 maka P0 akan diberhentikan dulu dan CPU dialokasikan untuk P1. 
    Penjadwalan SJF secara Preemptive dikenal dengan shortest remaining time first scheduling

    Contoh Preemptive penjadwalan SJF:
    Misal terdapat 4 proses

    Gant chart :
    Proses yang lebih tiba dulu akan diproses, setelah itu lihat CPU burst paling kecil.
    Waktu tunggu untuk tiap proses

    AWT  = (9+0+15+2)/4 = 6,5 ms

    C. Priority Scheduling
    Pada strategi ini CPU akan dialokasikan untuk proses yang memiliki prioritas tertinggi. Jika beberapa proses memiliki prioritas yang sama maka akan digunakan algortima FCFS. Priority scheduling dapat bersifat preemptive maupun non preemptive
    Contoh : terdapat 5 proses dengan CPU burst

    Gant Chart

    Waktu tunggu untuk tiap-tiap proses

    AWT = (6+0+16+18+1)/5 = 8,2 ms

    Prioritas biasanya menyangkut : waktu, memori yang dibutuhkan, banyaknya file   yang boleh dibuka, rasio antara rata-rata I/O burst dan rata-rata CPU/burst

    D. Round-Robin Scheduling
    Konsep dasar algoritma ini adalah time sharing
    Digunakan quantum time untuk membatasi waktu eksekusi 
    Bersifat preemptive, proses yang burst timenya melebihi quantum time akan mengantri di posisi ekor dari ready queue.
    Misal quantum time 4 ms

    Gant chart
    AWT=(6+4+7)/3= 5.7 ms


    Kelemahan Round-Robin
    Semakin kecil quantum time maka switching akan sering terjadi









    Sabtu, 21 Oktober 2017

    Threads Sistem Operasi

    Apa itu threads

    • Sebuah alur kontrol dari sebuah proses. 
    • Cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan.

    Process vs threads (perbedaan)

    • Proses adalah program yang sedang dalam keadaan eksekusi, sedangkan threads merupakan alur kontrol dari sebuah proses. 
    • Dibandingkan process threads lebih ekonomis dalam pembuatannya karena Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.
    • Proses memiliki IP address masing-masing. sedangkan thread memiliki IP address yang digunakan secara bersama-sama dari proses yang menciptakannya.

    Fungsi threads

    • Tetap Merespon meskipun sebagian dari suatu program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.
    • Membuat sebuah aplikasi dapat mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
    • Membagi memori dan sumber daya yang dimilikinya sehingga dapat menghemat sisi ekonomi untuk membuat thread dan context switching

    Multithreading

    • Cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkam efek seperti menjalakan beberapa task secara bersamaan walaupun otaknya hanya satu.
    • Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain. 

    Kesimpulan

    Thread adalah sebuah alur kontrol dari sebuah proses. Thread terbagi menjadi 2 macam, salah satunya multi threads yang fungsinya mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Perbedaannya dengan proses salah satunya thread lebih ekonomis dan waktu untuk membuat thread lebih sedikit dibandingkan proses.

    Referensi

    1. Sri Kusumadewi. 2000. Sistem Operasi . Edisi Dua. Graha Ilmu. Yogyakarta.
    2. Bambang Hariyanto. 1997. Sistem Operasi . Buku Teks Ilmu Komputer . Edisi
      Kedua. Informatika. Bandung.
    3. Stallings W. 2012. OPERATING SYSTEMS. Internal and Design Priciples. Seventh Editon. New Jersey.

    Minggu, 08 Oktober 2017

    Struktur Sistem Operasi

    1. Struktur sederhana
    Sistem operasi yang kecil, sederhana dan terbatas pada hardware, contohnya MSDOS dan UNIX

    a. MSDOS
    MSDOS menggunakan single tasking dan single mode (tanpa proteksi hardware).






    Terdapat dua fasilitas layanan interrupsi :
    • Layanan  ROM BIOS
    • Layanan di MS DOS



    b. UNIX
    Terdiri dari Kernel dan program sistem. Kernel berisi sistem file, penjadwalan CPU, manajemen memori dan system call. Program sistem memanggil fungsi yang ada pada kernel.




















    2.  Struktur Monolitik
    Merupakan struktur sederhana yang dilengkapi dengan dual mode berupa kumpulan prosedur yang dapat dipanggil bila diperlukan dan dieksekusi pada monitor mode. Jika user program melakukan trap pada kernel, intruksi akan berpindah dari user mode ke monitor mode dan mentransfer kontrol ke sistem operasi. Sistem operasi akan mengecek parameter dari pemanggilan tersebut untuk menentukan system call mana yang memanggil, lalu sistem operasi menunjuk ke suatu tabel yang berisi system call yang dimaksud, setelah system call selesai, kontrol dikembalikan ke user program.

    Kelemahan sistem monolithic
    • Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik karena sangat besar ukurannya sementara sebenarnya tidak memerlukan seluruh layanan yang disedikan kernel
    • Pengujian dan penghilangan kesalahan sulit dilokalisasi dan bila ada kesalahan dapat mematikan seluruh sistem
    Keunggulan sistem monolithic
    • Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang yang sama
    3. Struktur Berlapis
    Sistem operasi dibagi menjadi modul-modul (modular) dan tiap modul memiliki hirarki top-down. Modul yang merupakan lapisan bawah akan melayani lapisan di atasnya.
    Contoh : UNIX termodifikasi, THE, Venus dan OS2
    Struktur THE :
    • Lapis-5 : user program
    • Lapis-4 : buffering untuk I/O device
    • Lapis-3 : operator-console device driver
    • Lapis-2 : manajemen memori
    • Lapis-1 : penjadwalan CPU
    • Lapis-0 : hardware
    Keunggulan Struktur Berlapis
    • Karena sistem dibagi menjadi beberapa modul, tiap lapisan dapat dirancang dan diuji secara independen
    Kelemahan Struktur Berlapis
    • Fungsi-fungsi sistem operasi harus diberikan ke setiap lapisan secara hati-hati
     4. Struktur dengan Mesin Virtual
    Awalnya struktur ini melakukan simulasi mesin nyata dan hasil simulasi berupa mesin virtual yang digunakan user, kemudian berkembang menjadi emulator sistem operasi yang memungkinkan sistem operasi diemulasikan pada sistem operasi yang berbeda. Mula-mula digunakan pada IBM S/370 dengan VM370-nya.
    Contoh emulasi sistem operasi
    • Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls yang dipanggil aplikasi dengan WIN32 API.
    • IBM mengembangkan WABI yang mengemulasikan WIN32 API sehingga diharapkan sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS Windows.
    • Pada LINUX ada DOSEMU untuk menjalankan aplikasi DOS pada LINUX, dan WINE untuk menjalankan aplikasi MS Windows pada LINUX.
    5. Struktur dengan Client-Server
    Sistem operasi berupa kumpulan proses yang dapat dikategorikan :
    • Server : proses yang menyediakan layanan
    • Client : proses yang meminta layanan
    Kernel dibuat sekecil mungkin dan hanya bertugas mengatur komunikasi antara client dan server. Server dan client ditempatkan pada user mode 
    Kelemahan Struktur Client Server
    • Layanan dilakukan lambat karena harus melalui pertukaran pesan yang dapat menjadi bottleneck(Dapat juga dikarenakan perangkat keluaran (output) tidak dapat mengimbangi kinerja perangkat pemrosesan sehingga memperlambat kerja system secara keseluruhan).
    Keunggulan Struktur Client Server
    • Pengembangan dapat dilakukan secara modular
    • Kesalahan pada sub sistem tidak akan mematikan seluruh sistem
    • Dapat diadaptasikan pada sister terdistribusi
    6. Struktur Berorientasi Obyek
    Sistem operasi mengerjakan layanan sebagai obyek, tiap obyek berisi (encapsulated) struktur data dan operasi data dan diberi tipe sesuai dengan propertinya (proses, direktori, berkas). Contoh : Window NT, Medusa, X-kernel

    Pelayanan Sistem Operasi (pada programmer)
    Eksekusi Program
    Operasi I/O
    Manipulasi sistem file (pembuatan, penghapusan, write, read)
    Komunikasi
    Pendeteksian kesalahan



    Exception dan Trap pada Sistem Operasi

    1.Exception
    Exception adalah suatu mekanisme yang digunakan oleh beberapa bahasa pemrograman untuk mendeskripsikan apa yang harus dilakukan jika ada suatu kondisi yang tidak diinginkan terjadi. Eksepsi dapat dijumpai saat:
    • Mengakses method dengan argumen yang tidak sesuai
    • Membuka file yang tidak ada
    • Koneksi jaringan yang terganggu
    • Manipulasi operan yang nilainya keluar dari batasan yang didefinisikan
    • Pemanggilan class yang tidak ada
    2. Trap
    Trap adalah jenis dari exceptionyang tujuan utamanya adalah untuk debugging. Debugging adalah sebuah metode untuk mencari dan mengurangi bug, atau kerusakan di dalam sebuah program komputer atau perangkat keras yang dilakukan oleh para pemrogram dan pengembang perangkat lunak sehingga perangkat tersebut bekerja sesuai dengan harapan. Debugging bukan merupakan suatu pengujian, akan tetapi merupakan bagian akibat proses pengujian. Prosesnya dimulai dengan eksekusi awal dari aplikasi kemudian dinilai hasil dan pencapaian terhadap aplikasi tersebut dan ditemukanlah kekurangan antara target dan hasil akhir aplikasi.

    Dengan adanya trap, sistem operasi menentukan apakah kesalahan yang dibuat merupakan kesalahan fatal?
    • Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
    • Jika kesalahan tidak fatal, maka bergantung sifat kesalahan dan rancangan sistem operasi.
    Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan ke pemakai. Saat terjadi trap, dapat dimungkinan terjadi pengalihan proses, mungkin pula resume proses.

    Minggu, 01 Oktober 2017

    Penjelasan Interrupt

    Penjelasan Interrupt - Interrupt adalah sinyal dari peralatan luar atau permintaan dari program untuk melaksanakan suatu tugas khusus. Jika interrupt terjadi, maka program dihentikan terlebih dahulu untuk menjalankan rutin interrupt, setelah selesai maka aliran program akan kembali ke pernyataan program sebelum terjadinya interupsi.
    Contoh Interrupt misalnya prosesor mentransfer data ke printer. Setelah setiap proses WRITE, prosesor akan pause dan tetap idle sampai printer jalan. Panjang waktu pause dapat dimanfaatkan untuk siklus instruksi lainnya yang tidak melibatkan memori.

    Fungsi interupsi adalah sebagai berikut :
    • Interupsi memindahkan pengendalian kepada interrupt service routine melalui interrupt vektor yang berisi alamat dari semua service routine.
    • Arsitektur interrupt harus menyimpan alamat intruksi yang di interrupt.
    • Interrupt yang datang berikutnya dibatalkan ketika interrupt lain sedang diproses untuk mencegah hilangnya suatu interrupt.
    • Trap adalah software generated interrupt yang disebabkan oleh kesalahan atau karena permintaan user.
    • Suatu sistem operasi dikendalikan oleh interrupt.
    Tujuan Interupsi :
    • Secara umum untuk manajemen pengeksekusian routine intruksi agar efektif dan efisien antar CPU dan modul – modul I/O maupun memori.
    • Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing – masing modul berbeda.
    • Dapat sebagai sinkronisasi kerja antar modul.
    Proses Interrupt:

    Jenis-jenis interrupt:
    1. Software. Interrupt yang disebabkan oleh software sering disebut dengan system call. Misalnya suatu program ingin mencetak hasil ke printer.
    2. Hardware. Terjadi karena adanya aksi pada perangkat keras seperti penekanan tombol keyboard atau menggerakan mouse.

    Penyebab terjadinya interupsi :
    • Program: Diakibatkan adanya beberapa kondisi yang terjadi, hasil dari suatu eksekusi.   Contoh: arithmetic overflow, devision by zero, pengeksekusian secara illegal, penggunaan memori yang berlebihan.
    • Timer: Disebabkan oleh timer di dalam prosesor. Hal ini memungkinkan sistem operasi menjalankan fungsi-fungsi tertentu secara regular.         
    • I/O: Disebabkan oleh I/O Controller, baik sebagai tanda bahwa suatu operasi telah selesai, maupun memberi tanda adanya kondisi error. Interrupt I/O ada dua macam, interrupt pendek dan interrupt panjang.
    • Hardware Failure: Disebabkan olch kesalahan hardware, scperti power failure (kegagalan daya) atau memory parity error.
    • Menangani exception, Exception adalah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapatkan hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contohnya, pembagian dengan nol, pengaksesan alamat memori yang restricted atau tidak valid, dll.
    • Mengatur virtual memory paging.
    • Menangani alur kontrol kernel.
    Siklus proses dengan interrupt:
    1. Pada saat komputer dijalankan (boot), komputer menjalankan program inisial (bootstrap program).
    2. Bootstrap mengalokasi sistem operasi pada memory.
    3. Sistem operasi menunggu event berupa interrupt atau trap.

    Minggu, 24 September 2017

    Teknik komunikasi I/O

    Teknik komunikasi I/O terbagi 3 yaitu:

    1. Programmed I/O
    Pada saat prosesor mengeksikusi sebuah program dan menjumpai instruksi yang berkaitan dengan modul I/O, prosesor akan mengeksekusi instruksi yang berkaitan ke modul I/O yang bersangkutan. Pada programmed I/O, modul I/O yang bersangkutan akan melakukan aksi yang diminta dan menyetel bit yang sesuai di dalam register status I/O. Secara khusus modul I/O tidak menginterupsi prosesor. Jadi pemeriksaan status modul I/O secara periodik samapai operasi selesai adalah tanggung jawab prosesor. Software I/O ditulis sedemikian rupa sehingga prosesor mengeksekusi instruksi-instruksi yang memberinya control langsung terhadap operasi I/O.
    Set instruksi meliputi instruksi I/O dengan katefori:
    a. Perintah control
    Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
    b. Perintah test
    Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
    c. Perintah read
    Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
    d. Perintah write
    Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.





    2. Interrupt-driven I/O
    Cara kerja teknik interupsi di sisi modul I/O adalah prosesor menerbitkan perintah I/O ke modul dan melanjutkan pekerjaan lainnya. Setelah itu, setelah itu modul I/O akan menginterupsi prosesor untuk meminta layanan saat modul itu telah siap saling bertukar data dengan prosesor.
    Interupt-driven I/O lebih efisien jika dibandingkan dengan programmed I/O karena CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak akan membuang waktu. Akan tetapi, interrupt-driven I/O masih menghabiskan waktu prosesor, karena setiap word data yang berangkat dari memori ke modul I/O atau sebaliknya harus melalui prosesor.

    Programmed I/O dan interrupt-driven I/O memiliki kelemahan yaitu masih memerlukan intervensi aktif prosesor dalam memindahkan data. Dengan demikian, kedua bentuk I/O tersebut tidak dapat menghindar dari dua kesulitan sebagai berikut:
    a.  Kecepatan transfer I/O dibatasi oleh kecepatan prosesor dalam memeriksa dan melayani perangkat,
    b.  Prosesor terikat oleh kegiatan transfer I/O.
    Sejumlah instruksi harus dieksekusi bagi setiap perpindahanI/O. Apabila terdapat data yang bervolume besar, maka diperlukan sebuah teknik yang lebih efisien yaitu Direct Memory Access (DMA).

    3. Direct Memory Access (DMA)
    Cara kerja teknik DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi. Keunggulan DMA adalah penghematan waktu pemrosesan dan peningkatan kinerja I/O.
    Pada saat akan membaca atau menulis suatu blok data, prosesor mengeluarkan perintah ke modul DMA dengan cara mengirimkan informasi seperti berikut:
    • Apakah read atau write yang diminta.
    • Alamat perangkat I/O yang terlibat.
    • Lokasi awal dalam memori yang akan dibaca atau ditulis.
    • Jumlah word yang akan dibaca atau ditulis.

    Penjelasan Interrupt

    Interrupt adalah sinyal dari peralatan luar atau permintaan dari program untuk melaksanakan suatu tugas khusus. Jika interrupt terjadi, maka program dihentikan terlebih dahulu untuk menjalankan rutin interrupt, setelah selesai maka aliran program akan kembali ke pernyataan program sebelum terjadinya interupsi.

    Contoh Interrupt misalnya prosesor mentransfer data ke printer. Setelah setiap proses WRITE, prosesor akan pause dan tetap idle sampai printer jalan. Panjang waktu pause dapat dimanfaatkan untuk siklus instruksi lainnya yang tidak melibatkan memori.



    Fungsi interupsi adalah sebagai berikut :
    1. Interupsi memindahkan pengendalian kepada interrupt service routine melalui interrupt vektor yang berisi alamat dari semua service routine.
    2. Arsitektur interrupt harus menyimpan alamat intruksi yang di interrupt.
    3. Interrupt yang datang berikutnya dibatalkan ketika interrupt lain sedang diproses untuk mencegah hilangnya suatu interrupt.
    4. Trap adalah software generated interrupt yang disebabkan oleh kesalahan atau karena permintaan user.
    5. Suatu sistem operasi dikendalikan oleh interrupt.

    Tujuan Interupsi :
    · Secara umum untuk manajemen pengeksekusian routine intruksi agar efektif dan efisien antar CPU dan modul – modul I/O maupun memori.
    · Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing – masing modul berbeda.
    · Dapat sebagai sinkronisasi kerja antar modul.


    Proses Interrupt:
    Jenis-jenis interrupt:
    • Software. Interrupt yang disebabkan oleh software sering disebut dengan system call. Misalnya suatu program ingin mencetak hasil ke printer.
    • Hardware. Terjadi karena adanya aksi pada perangkat keras seperti penekanan tombol keyboard atau menggerakan mouse.
    Penyebab terjadinya interupsi :
    1. Program
    Diakibatkan adanya beberapa kondisi yang terjadi, hasil dari suatu eksekusi.
    Contoh: arithmetic overflow, devision by zero, pengeksekusian secara illegal, penggunaan memori yang berlebihan.
    2. Timer
    Disebabkan oleh timer di dalam prosesor. Hal ini memungkinkan sistem operasi menjalankan fungsi-fungsi tertentu secara regular.          
    3. I/O
    Disebabkan oleh I/O Controller, baik sebagai tanda bahwa suatu operasi telah selesai, maupun memberi tanda adanya kondisi error. Interrupt I/O ada dua macam, interrupt pendek dan interrupt panjang.
    4. Hardware Failure
    Disebabkan olch kesalahan hardware, scperti power failure (kegagalan daya) atau memory parity error.
    5. Menangani exception, Exception adalah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapatkan hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contohnya, pembagian dengan nol, pengaksesan alamat memori yang restricted atau tidak valid, dll.
    6. Mengatur virtual memory paging.
    7. Menangani perangkat lunak interupsi.
    8. Menangani alur kontrol kernel.

    Siklus proses dengan interrupt:
    1. Pada saat komputer dijalankan (boot), komputer menjalankan program inisial (bootstrap program).
    2. Bootstrap mengalokasi sistem operasi pada memory.
    3. Sistem operasi menunggu event berupa interrupt atau trap.

    Lihat Juga

    Mengenal Keempat Tipe Kecerdasan Buatan (AI)

    Kecerdasan Buatan (AI) telah menjadi topik utama dalam banyak diskusi teknologi dan inovasi saat ini. Namun, bagaimana kita mendefinisikan d...

    Halaman