Senin, 16 April 2012

File Service Terdistribusi


File Sistem Terdistribusi ( Distributed File System , disingkat) adalah file sistem yang mendukung sharing files dan resources dalam bentuk penyimpanan persistent di sebuah network. File server pertama kali didevelop pada tahun 1970 dan Sun NFS (Network File System) menjadi DFS pertama yang banyak digunakan setelah awal pemunculannya di tahun 1985. DFS yang terkenal selain NFS adalah AFS (Andrew File System) dan CIFS (Common Internet File System).

Sebuah file server menyediakan file service ke client. Dari sisi client terdapat interface untuk file service dalam hal operasi primitif file, seperti membuat file (create), menghapus (delete) dan read / write file. Komponen perangkat keras utama yang mana file server mengontrolnya adalah sebuah local storage (umumnya disk drive / HDD). Ditempat itulah file-file tersimpan dan dari tempat tersebut request client meretrive file. Pada DFS client, server dan juga perangkat penyimpanan merupakan mesin terpisah dalam sebuah lingkungan terdistribusi (Intranet).

Layanan File Terdistribusi
1.Layanan Dasar
– Tempat penyimpanan tetap untuk data dan program
– Operasi terhadap file (create, open, read,…)
– Multiple remote clients (dalam intranet)
– File sharing
– Menggunakan semantic one-copy update umum, melalui RPC
2. Perkembangan baru
– Persistent object stores (storage of objects)
3. Persistent Java, Corba, …
– Replikasi, caching keseluruhan file
–Multimedia terdistribusi (contoh: file server Tiger video)

Keperluan sistem file terdistribusi
a.Transpansi
File service biasanya merupakan service yang harus di
load paling berat dalam sebuah
intranet, sehingga fungsionalitas dan performance
nya sangat penting.
o Transparansi akses
o Transparansi lokasi
o Transparansi mobilitas
o Transparansi performance
o Transparansi pengukuran
b.Update file konkuren
Perubahan pada sebuah file oleh seorang klien seharusnya tidak menganggu operasi dari
klien lain yang pada saat bersamaan mengakses atau mengubah file yang sama.
c.Replikasi file
Beberapa file service mendukung penuh replikasi, tetapi kebanyakan mendukung
caching file atau portion file secara lokal, bentuk replikasi yang terbatas.
d.Ke
heterogenan sistem operasi dan hardware
Antarmuka service sebaiknya didefinisikan sehingga software klien dan server dapat
diimplementasikan untuk sistem operasi dan komputer yang berbeda.
e.Toleransi kesalahan
Server bisa menjadi stateless, sehingga dapat di
restart dan service direstore kembali
setelah mengalami failure tanpa perlu me
recover state sebelumnya.
f.Konsistensi
Ketika file
file direplikasi atau dicache pada site yang berbeda, ada delay yang tak bisa
dihindari pada propagasi modifikasi dari satu site ke set lain yang membawa copy, dan
ini bisa menghasilkan beberapa deviasi dari one
copy semantic.
g.Keamanan
Secara virtual, semua sistem file menyediakan mekanisme kontrol akses berdasarkan
kegunaan dari daftar kontrol akses.
h.Efisiensi
File service terdistribusi sebaiknya menawarkan fasilitas yang paling tidak, sama
bagusnya dengan yang ditemukan pada sistem file konvensional, dan sebaiknya
mendapat level performance yang dapat diperhitungkan.

Keuntungan SistemTerdistribusi
- Resource sharing 
Suatu komputer bisa mengakses sumber daya yang ada dikomputer lain. Misalkan, komputer A bisa mengakses databaseyang ada di komputer B. Sebaliknya, komputer B bisa mencetak dokumen dengan menggunakan printer yang terpasang dikomputer A.
- Computation speedup
Jika suatu proses komputasi bisa dipecah-pecah menjadi sejumlah bagian yang berjalan secara konkuren, dalam sistem terdistribusi bagian-bagian komputasi ini bisa terbagi dalam komputer-komputer yang ada. Inilah yang menimbulkan adanya speedup.Lebih jauh lagi, bisa terjadi load sharing, yaitu jika suatu komputer mengerjakan tugas terlalu banyak, sebagian dari tugasnya itu bisadialihkan ke komputer lain.
 - Reliability
Jika satu komputer mengalami kegagalan, maka secarakeseluruhan sistem masih tetap dapat berjalan.
Contoh
: jika sistem terdiri atas komputer-komputer yang tersusunsecara independen, kegagalan salah satu komputer seharusnyatidak mempengaruhi keseluruhan sistem. Tapi jika sistem terdiriatas komputer-komputer yang mengatur tugas spesifik sepertiterminal I/O atau filesystem, maka kerusakan satu komputer saja bisa menyebabkan keseluruhan sistem mati. Tentunya, perlumekanisme untuk mendeteksi kegagalan seperti ini, sehingga jikaada komputer yang rusak, sumber daya yang ada padanya tidak digunakan dan sebagai gantinya komputer yang lain bisamenangani itu.
 - Communication
Karena satu komputer terhubung dengan komputer-komputer lainya, sangat dimungkinkan terjadi pertukaran informasi.Dengan adanya message passing, fungsi fungsi yang ada disuatu komputer misal file transfer, login, web browsing, bisadiperluas dalam sistem terdistribusi. Ini menyebabkan fungsi-fungsi ini bisa diakses secara jarak jauh. Misalnya, sejumlahorang yang terlibat dalam satu proyek, walaupun terpisah secarageografis, tetap bisa berkolaborasi dalam proyek itu. Dalamdunia industri, terjadi downsizing Downsizing adalah mengganti mainframe dengan komputer atau workstation yang terhubung via jaringan. Dengan itu, mereka bisa mendapatkanfungsionalitas yang sesuai dengan biaya, kemudahan mengatur sumber daya, kemudahan maintenance/perawatan, dan lain-lain .

Kelemahan SistemTerdistribusi
- Jika tidak direncanakan dengan tepat, sistem terdistribusi bisamenurunkan proses komputasi, misalnya jika kegagalan salah satukomputer mempengaruhi komputer-komputer yang lain.
- Troubleshooting menjadi lebih rumit, karena bisa memerlukankoneksi ke komputer lain yang terhubung secara remote, ataumenganalisis komunikasi antar komputer.
- Tidak semua proses komputasi cocok untuk dilakukan dalamsistem terdistribusi, karena besarnya keperluan komunikasi dansinkronisasi antar komputer. Jika bandwith, latency , atau kebutuhankomunikasi terlalu besar, maka performanya bisa menjadi lebih jelek daripada sistem yang tidak terdistribusi sama sekali. Karena itu, lebih baik komputasi dilakukan di sistem yang tidak terdistribusi

Sumber  :


Selasa, 10 April 2012

Fungsi Sistem Operasi


Sistem operasi (bahasa Inggris: operating system ; OS) adalah seperangkat program yang mengelola sumber daya perangkat keras komputer, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi boot diri.
Waktu-berbagi jadwal tugas sistem operasi untuk penggunaan yang efisien dari sistem dan juga dapat mencakup akuntansi untuk alokasi biaya waktu prosesor, penyimpanan massa, cetak, dan sumber daya lainnya.
Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer, meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server web.
Biasanya, istilah Sistem Operasi sering ditujukan kepada semua perangkat lunak yang masuk dalam satu paket dengan sistem komputer sebelum aplikasi-aplikasi perangkat lunak terinstal. Sistem operasi adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan perangkat lunak aplikasi seperti program-program pengolah kata dan peramban web.
Secara umum, Sistem Operasi adalah perangkat lunak pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan "kernel" suatu Sistem Operasi
Kalau sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem berkas. Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur schedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu.
Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal.
Sistem Operasi secara umum terdiri dari beberapa bagian:
  • Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
  • Kernel, yaitu inti dari sebuah Sistem Operasi
  • Command Interpreter atau shell, yang bertugas membaca input dari pengguna
  • Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
Sebagian Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan pada satu waktu (misalnya DOS), tetapi sebagian besar Sistem Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan. Sistem Operasi seperti ini disebut sebagai Multi-tasking Operating System (misalnya keluarga sistem operasi UNIX). Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real-Time OS, contohnya adalah Windows, Linux, Free BSD, Solaris, palm, symbian, dan sebagainya.

Sistem operasi-sistem operasi utama yang digunakan komputer sistem umum (termasuk PC, komputer personal) terbagi menjadi 3 kelompok besar:
  1. Keluarga Microsoft Windows - yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 (Seven) yang dirilis pada tahun 2009, dan Windows 8 yang akan dirilis pada tahun 2012 atau lebih lambat)).
  2. Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.
  3. Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.6 (Snow Leopard). Musim panas 2011 direncanakan peluncuran versi 10.7 (Lion).
Sedangkan komputer Mainframe, dan Super komputer menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX, dll.

Fungsi-fungsi sistem operasi :

1.   Resource Manager
Fungsi Resource Manager adalah untuk mengalokasikan sumber daya, seperti CPU, printer, drive, memori, dan lain sebagainya.
2.   Interface
Fungsi interface adalah sebagai perantara antara user dengan hardware untuk menyediakan lingkungan yang bersahabat. Dengan demikian, user tidak memiliki kekhawatiran untuk mengoprasikan perangkat level bawah.
3.   Guardian
Fungsi guardian adlah untuk menyediakan control akses yang melindungi file dan member pengawasan pada pembaca/penulisan/eksekusi data dan program.
4.   Optimizer
Fungsi optimizer adalah untuk menjadwal peng-inpu-an oleh user, pengaksesan basis data, proses komputasi, dan pengeluaran output untuk meningkatkan kegunaan.
5.   Accountant
Fungsi Accountant adalah untuk mengatur waktu CPU, penggunaan memori, disk storage, waktu connect terminal dan pemanggilan I/O.
6.   Server
Fungsi server adalah untuk menyediakan layanan yang sering dibutuhkan user, baik secara eksplisit, maupun implicit seperti mekanisme akses file.
7.   Coordinator
Fungsi coordinator adalah untuk menyediakan fasilitas sehingga aktivitas yang kompleks dapat diatur untuk dikerjakan dalam urutan yang telah disusun sebelumnya.

Sumber            :




Senin, 02 April 2012

Implementasi Thread & Multithreaded Server

Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik. Pendekatan tradisional sebuah thread eksekusi per-proses, dimana konsep thread tidak dikenal.

Multithreaded Process
Manfaat :
· Kemampuan reaksi
· Sumber daya berbagi
· Ekonomi
· Scalabilas
 
Thread bermanfaat untuk Multithreading yang berguna untuk Multiprocessor dan Singleprocessor. Kegunaan untuk system Multiprocessor, adalah :
a) Sebagai unit pararel atau tingkat granularitas pararelisme.
b) Peningkatan kinerja disbanding berbasis proses.
Kegunaan Multithreading pada singleprocessor, adalah :
a) Kerja foreground dan background sekaligus di satu aplikasi.
b) Penanganan asynchronous processing menjadi lebih baik.
c) Mempercepat eksekusi program.
d) Pengorganisasian program menjadi lebih baik.

Arsitektur Server Multithreaded

Ketika client mengajukan suatu permintaan, pada saat itu juga server akan menuliskan suatu thread yang baru untuk pelayanan atas permintaan yang diajukan oleh client. Selain itu server juga menyimpulkan atau mendengarkan atas permintaan client sehingga permintaan client dapat terpenuhi.

Pelaksanaan Eksekusi Pada Saat Yang Bersaman Pada Suatu Sistem Berinti Tunggal
Single CoreGambar dibawah ini merupakan suatu gambar yang menunjukkan sebuah program yang melakukan dua remote procedure calls (RPC) ke dua host yang berbeda untuk memperoleh hasil gabungannya.

Pada sebuah program single-core, untuk memperoleh suatu hasil proses dilakukan secara berurutan. Penulisan ulang program dengan menggunakan thread-thread yang terpisah bagi setiap RPC-nya menghasilkan kecepatan yang cukup berarti. Apabila program ini beroperasi pada sebuah uniprosesor, maka request harus dibuat secara seri dan hasil beroperasi secara seri, namun program akan menunggu dua jawaban pada waktu yang bersamaan.
Pelaksanaan Paralel Pada Suatu Multicore Sistem

User Threads
1. Pelaksanaan manajemen thread yang dilakukan oleh user-level thread library. Terdapat dua kelompok besar implementasi thread, yaitu user-level thread dan kernel-level thread. Didalam fasilitas user-level thread yang murni, semua tugas manajemen thread dilakukan oleh aplikasi dan kernel tidak mengetahui keberadaan thread.
2. Tiga kunci thread libraries :
· POSIX Pthread
· Win32 thread
· Java thread

Kernel Threads
1. Suatu proses thread Yyang didukung oleh kernel. Untuk memberitahu kejadian kernel, kernel menciptakan scheduler activatioan baru, memberikan ke pemroses dan melakukan upcall ke ruang pemakai.
2. Contoh :
· Windows XP/2000
· Solaris
· Linux
· Tru64 UNIX
· Mac OS X

Multithreading Models
1. Many-to-One : banyaknya User-Level thread yang dipetakan ke kernel thread tunggal, akan tetapi dari beberapa user thread dapat menggunakan satu kernel thread saja.
Contoh :
· Solaries Green Thread
· GNU Portable Thread

2. One-to-One : setiap user-level thread memetakan ke kernel thread, akan tetapi user thread hanya dapat menggunakan satu kernel thread.
Contoh :
· Windows NT/XP/2000
· Linux
· Solaris 9 and later

3. Many-to-Many 
· Mengijinkan beberapa user-level thread memakai beberapa kernel thread.
· Mengijinkan system operasi untuk menciptakan beberapa kernel thread.
 

Thread Libraries
1. Thread libraries menyediakan pemrogram dengan API untuk menciptakan dan memanage thread.
2. Dalam pengimplementasiannya ada dua cara, diantaranya :
· Keseluruhan library pada ruang pemakai.
· Kernel-support library yang didukung dengan OS.

Pthreads
1. Dapat dianggap sebagai user-level atau kernel-level.
2. Suatu POSIX standar (IEEE 1003.1c) API untuk menciptakan thread dan sinkronisasi.
3. API menetapkan sifat thread library, implementasinya adalah pengembangan library.

Java Threads
1. Java thread diatur oleh JVM.
2. Secara khusus diterapkan untuk menggunakan thread model yang disediakan dengan dasar OS.
3. Java thread diciptakan oleh :
· Memperpanjang thread class.
· Menerapkan runnable interface.

Threading Issues
1. Semantics of fork() and exec() system call.
2. Thread cancellation of target thread
3. Asynchronous atau deffered (penundaan atau ketidak serempakan)
4. Signal handling (isyarat menangani)
5. Thread pools : menciptakan sejumlah thread dalam suatu kolom dimana mereka saling menunggu pekerjaan. Keuntungannya yaitu :
· Pada umumnya sedikit lebih cepat untuk melayani suatu permintaan dengan suatu thread yang sudah ada dibandingkan menciptakan suatu thread baru.
· Mengijinkan sejumlah thread dalam suatu aplikasi menjadi seukuran pool.
6. Thread-specific data
7. Scheduler activation

Thread Cancellation
1. pengakhiran suatu thread sebelum selesai.
2. Dua pendekatan umum :
· Cancellationterminate yang tidak serempak dengan penyusupan target.
· Penundaan Cancellationterminate dengan penyusupan target pada waktu tertentu.

Signal Handling
1. Isyarat digunakan Sistem UNIX untuk memberitahu suatu proses bahwa peristiwa tertentu telah terjadi.
2. Suatu signal handler digunakan untuk proses signal :
· Signal yang dihasilkan oleh peristiwa tertentu.
· Signal yang dikirim untuk suatu proses.
· Signal adalah handler.
· Linux mengacu pada thread sebagai tasksrather disbanding thread.
· Thread muncul ketika dilaksanakannya melalui clone() system call.
· Clone()allows merupakan sebuah child untuk membagi dalam pengalokasian ruang alamat yang menjadi tugas parent pada proses.

Windows XP Threads
Pengimplementasian one-to-one menentukan, kernel-level.
Setiap threads meliputi :
· Id thread : suatu nilai unik yang mengindentifikasikan sebuah thread apabila thread itu memanggil server.
· Register set : nilai-nilai register tingkat pengguna yang disimpan.
· Separate user dan kernel stack.
· Private data storage area.
Dari hasil pemahaman diatas, secara garis besar dapat diketahui bahwa…
Thread sering disebut Light Weight Process (LWP), yaitu unit dasar utilisasi pemroses dan berisi program counter, register set dan stack space. Thread-thread di satu proses berbagi (memekai bersama) bagian code, data dan sumber daya system operasi seperti file dan signal. Pemakaian ektensif menyebabkan alih pemroses antara thread-thread di satu proses tidak mahal disbanding alih konteks antar proses. Meski alih thread masih memerlukan alih himpunan register, namun tidak ada keterlibatan manajemen memori.
Multithreading merupakan upaya untuk menigkatkan kinerja system computer, disebabkan :
1. Penciptaan thread baru lebih cepat dibandingkan penciptaan proses baru.
2. Terminasi thread lebih cepat dibandingkan pengakhiran proses.
3. Alih ke thread lain di suatu proses lebih cepat disbanding dari satu proses ke proses lain.
4. Thread-thred di satu proses dapat berbagi kode, data dan sumber daya lain secara nyaman dan efisiensi disbanding proses-proses terpisah.

Kegunaan Thread
Multithreading berguna untuk multiprocessor dan singleprocessor.
Kegunaan untuk system multiprocessor adalah :
· Sebagai unit pararel atau tingkat granularitas pararelisme.
· Peningkatan kinerja disbanding berbasis proses.
Kegunaan multithreading pada singleprocessor, adalah :
· Kerja foreground dan background sekaligus di satu aplikasi.
· Penanganan asynchronous proseccing menjadi baik.
· Mempercepat eksekusi program.
· Pengorganisasian program menjadi lebih baik.
Manfaat utama banyak thread di satu proses adalah memaksimumkan derajat kongkurensi antara operasi-operasi yang terkait erat. Aplikasi jauh lebih efisien dikerjakan sebagai sekumpulan thread disbanding sekumpulan proses.

Karakteristik Thread
Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya. Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses, yaitu :
· Ruang alamat.
· Himpunan berkas yang dibuka.
· Proses-proses anak.
· Timer-timer.
· Snyal-sinyal.
· Sumber daya-sumber daya lain milik proses.
Tiap thread mempunyai property independen berikut seperti :
· Keadaan (state) eksekusi thread (running, ready dan sebagainya).
· Konteks pemroses. Thread dapat dipandang sebagai satu PC (program counter) tersendiri independen di satu proses.
· Beberapa penyimpan static per-thread untuk variable-variabel local.

Paket Bahasan Perancangan Paket Thread
Paket thread adalah sekumpulan primitive (misalnya library calls) untuk pemrogram berhubungan dengan thread di program aplikasi. Pertimbangan penting pembuatab paket thread adalah :
· Waktu penciptaan thread.
· Penanganan critical region di tingkat thread.
· Penanganan private global variables.
· Implementasi paket thread.

Jenis-jenis Thread Berdasarkan Waktu Penciptaannya
Kategori thread berdasarkan waktu penciptaan :
1. Static threads
Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi program. Tiap thread langsung dialokasikan stack tetap.
Keunggulan à sederhana.
Kelemahan à tidak fleksibel.
2. Dynamic threads
Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi. Penciptaan thread biasanya menspesifikasikan fungsi utama thread (seperti pointer ke procedure) dan ukuran stack, dapat juga ditambah parameter-parameter lan seperti prioritas panjadwalan.
Keunggulannya fleksibel.
Kelemahannya lebih rumit.

Implementasi Paket Thread
1. Thread level kernel.
> Keunggulan :
· Memudahkan koordinasi multithread seperti proses server.
· Tidak seboros kumpulan proses tradisional.
> Kelemahan :
· Operasi manajemen thread sangat lebih boros.
· Kernel harus menyediakan semua feature.
2. Thread level pemakai.
> Keunggulan :
Kinerja luar biasa bagus disbanding thread level kernel.
· Tidak diperlukan modifikasi kernel.
· Fleksibelitas tinggi.
> Kelemahan :
· Tidak manfaatkan multiprocessor.
· Untuk aplikasi dengan keterlibatan kernel yang kecil.
· Mengharuskan nonblocking system call.

Sumber :

http://ikc.unimal.ac.id/umum/ibam/ibam-os-html/x1415.html