Tips LDR 1.2

TIPS-TIPS LDR

Setelah persiapan agan matang, dan akhirnya menjalani LDR, kini saatnya agan memulai mempersiapkan hal2 dibawah ini yang ane sebutin, agar LDR nya bisa nyaman..

1. Komitmen
Bicarakan dengan pasangan agan mengenai komitmen ber-LDR ini, selain itu bicarakan mengenai level komitmen hubungan kalian..level serius, agak serius, just have fun..

2. Target
Setelah menentukan komitmen, agan bicarakan mengenai target LDR kalian..misal komitmen serius, target menikah setelah 5 tahun jadian...contoh ane, komitmen serius, targetnya adalah menjaga hubungan ini lebih dari 3 tahun dan melanjutkan ke jenjang pernikahan..kenapa ada 3 tahunnya? soalnya cewek ane paling lama pacaran 3 th dan ane pengen ngalahin rekor tersebut  

3. Rambu-Rambu

Setelah hubungan agan-agan punya target, kini saatnya membuat rambu-rambu dalam LDR..Kenapa harus ada rambu-rambu ini? biarkan saja berjalan apa adanya..eits, jgn salah...yg agan lakukan LDR, bukan hubungan biasa2..dimana kepercayaan dan kejujuran adalah harga mati..jadi, mulailah membicarakan rambu-rambu ini dengan pasangan agan..beberapa hal yg mesti agan putuskan bersama adalah sbb :

-bohong : jika ada yg ketahuan berbohong apa konsekuensinya, karena hubungan agan LDR, satu kebohongan kecil bisa merusak segalanya (trust me)..kejujuran adalah harga mati dalam sebuah LDR..sekali mengkhianati kepercayaan, hal itu akan merubah LDR agan2 sekalian..

-berantem : jika sedang berantem (ngamuk2an) apa yang harus diinget oleh kalian berdua dalam menyelesaikannya? contoh kl ane ama cewek ane dah mutusin, kl kita lagi berantem hebat salah satu harus minta maaf duluan meski yg minta maaf ga salah..pokoknya harus ada kata maaf dl yang keluar..nah nanti siapa yg udah ga tahan berantem2 terus pasti bilang maaf..lalu yg salah akhirnya nanti minta maaf sendiri, entah ane entah dia..lalu masalahnya dibahas lagi dengan kepala dingin..

-harus diingat juga, pacaran itu ga mungkin ga berantem..orang berkeluarga aja yg ampe 50th pasti ada berantemnya..apalagi sekedar pacaran, LDR pula...tapi yang perlu agan2 ingat dan pasangan agan ingat, saat masa2 berantem itu datang, langsung ingatkan diri sendiri "ya ini saatnya, kami berantem..dan ini lumrah, ini wajar..kami hanya perlu mencari solusi yang jadi bahan berantem ini" jika kedua nya sudah menyadari hal ini..dijamin, mau berantem kayak gmn juga kalian pasti bisa saling memahami dan memaafkan..

Tips LDR 1.1

Bagi agan-agan yang akan memulai sebuah LDR, ane kasi beberapa tips yang semoga bisa membantu dalam memulai LDR..ini murni dari pengalaman pribadi ane, jadi kl ada yg kurang cocok jgn diikutin yaaa 

1. Jangan Terburu-Buru, Perdalam Calon Pasangan
LDR biasanya muncul dari FB, YM (online mode on) atau agan sedang berlibur ke kota lain dimana di kota tersebut ada temen agan (biasanya yg diajak pacaran nanti temennya temen agan)..
berhubung hubungan yang akan dibangun nanti sifatnya jarak jauh, sebaiknya dalam mendalami calon pasangan agan jgn terburu-buru..Jangan sampai nanti sesudah LDR baru menyesal, wah ternyata sifatnya dia begini, begitu, dll...Dan sebaiknya yg agan ajak LDR adalah seorang high quality jomblo..kenapa? kl biasa2 aja mending ga usah LDR..cari di dekat rumah juga ada  
Intinya LDR lah jika dia memang layak agan2 kejar dan memang mengharuskan LDR..

2. Persiapkan mental 
LDR bukan tipe pacaran yang tiap mau kuliah dijemput pacar, tiap keluar premiere film baru bisa langsung ditonton berdua, itu konsekuensi yang agan harus persiapkan..Jangan sampai setelah LDR baru bilang ke pasangan "kita putus aja yah, gue pengen ada yg ngapelin tiap malam minggu"  namun jika ada kesepakatan dalam hal bertemu itu semua bisa diatasi kok  trust me..


sumber

Tugas SO 2

PROSES CONTROL BLOCK

Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block(PCB) - juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar
PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
1. Status Proses. Status new, ready, running, waiting, halted, dan juga banyak lagi.
2. Program Counter . Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
3. CPU register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks, stack pointer,general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 10.3, Status Proses).
4. Informasi manajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi (lihat Bagian V, Memori).
5. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
6. Informasi status M/K. Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

A. Penjadwalan proses

Dalam pemroses tunggal, hanya satu proses yang dapat dijalankan pada saat tertentu, sedangkan yang lain harus menunggu CPU bebas dan dijadwal ulang. Multiprogramming merupakan cara untuk menjalankan proses setiap waktu sehingga memaksimalkan penggunaan CPU.
Penjadwalan merupakan salah satu fungsi dasar dari sistem operasi.Hampir semua sumber daya komputer dijadwalkan sebelum digunakan.

  • Penjadwalan adalah suatu pekerjaan yang dilakukan untuk mengalokasikan CPU time untuk tasks yang berbeda-beda dalam sistem operasi.
  • Untuk linux ada aspek lain yang penting dalam penjadwalan: seperti menjalankan dengan berbagai kernel tasks.
  • Linux mempunyai dua algoritma penjadwalan yaitu
a. algoritma time-sharing untuk penjadwalan preemptive yang adil diantara sekian banyak proses.
b. algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.

3 Konsep Penjadwalan
l Decision Mode
l Priority Function
l Arbitration Rule


Algoritma Penjadwalan
1. First In First Out
Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini seiap proses yang berada pada status ready dimasukkan ke dalam antrian
FIFO sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi terlebih dahulu.

Kelemahan dari algoritma ini:
a. Waiting time rata-ratanya cukup lama.
b. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu satu proses besar yang sedang dieksekusi oleh CPU.
Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.

2. Priority Scheduling
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses dengan nilai prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:
a. Batas waktu
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses

Kelemahan pada penjadwalan prioritas adalah dapat terjadinyaindefinite blocking (starvation) yaitu suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak dieksekusi jika terdapatpros es lain yang memiliki prioritas lebih tinggi darinya. Solusi dari permasalahan ini adalah aging,
yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam antrian secara bertahap.

3. Last In First Out

4. Shortest Job Next Algoritma ini mendahulukan proses denganCPU burst terkecil sehingga akan mengurangi waiting timerata-rata.
5. Shortest Remaining Time

6. Round Robin
Algoritma ini didesin untuk sistem time-sharing. Proses akan mendapat jatah sebesar time quantum dengan nilai quantum umumnya sebesar 10-100 ms. Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU (1/n), dan tak akan menunggu lebih lama dari (n-1)/q.

Permasalahan utama pada Round Robin adalah menentukan besarnya time quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 time quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya, jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma First Come First Served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1 time quantum.

7. Multilevel Feedback
Algoritma ini mirip sekali dengan algoritma Multilevel Queue. Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah. Ini menguntungkan proses interaksi, karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya.
Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.

Tugas SO 1.2

1. Sebutkan tiga tujuan utama dari sistem operasi!
  • Setiap pemakai harus berhubungan dengan Sistem Operasi untuk dapat memanfaatkan komputer
  • Untuk dapat memilih Sistem Operasi yang sesuai untuk suatu instalasi.
  • Banyak konsep & teknik yang terdapat pada Sistem Operasi yang berlaku umum yang dapat digunakan pada program aplikasi-aplikasi

2. Sebutkan keuntungan dari multiprogramming!
  • I/O rutin dikendalikan dan diatur oleh system
  • Memory management – sistem harus mengalokasikan memory untuk beberapa jobs sekaligus
  • CPU scheduling – sistem harus memilih jobs mana yang telah siap akan di jalankan
  • Alokasi dari I/O devides


3. Sebutkan perbedaan utama dari sistem operasi antara komputer mainframe dan PC?
  • Komputer mainframe adalah sebuah sistem komputer yang mengumpulkan device -device yang berfungsi sama atau bermacam -macam yang disatukan dalam sebuah sistem yang saling berbagi.
  • Personal Computer(PC) adalah sebuah komputer yang dirancang hanya digunakan oleh satu orang dalam suatu waktu. Harganya cenderung lebih murah dan biasanya mampu mengerjakan berbagai macam tugas.
Perbedaan PC dengan komputer mainframe adalah PC ukurannya lebih kecil dan harganya lebih murah dibanding mainframe.Sistem operasi untuk komputer-komputer seperti ini dalam beberapa hal diuntungkan oleh pengembangan sistem operasi untuk komputer mainframe. Namun, semenjak penggunaan komputer untuk keperluan pribadi, maka utilisasi CPU tidak lagi menjadi perhatian utama. Karena itu, beberapa desain untuk komputer mainframe tidak cocok untuk sistem yang lebih kecil.

4. Sebutkan kendala-kendala yang harus diatasi oleh programmer dalam menulis sistem operasi untuk lingkungan waktu nyata?
  • Secondary storage sangat terbatas
  • terjadinya page faults tambahan selama eksekusi
  • sistem yang mengharuskan suatu komputasi selesai dalam jangka waktu tertentu
  • Kemampuan untuk operasi, response dalam batasan waktu tertentu
  • digunakan sebagai control device untuk aplikasi khusus

5. Jelaskan perbedaan antara symmetric dan asymmetric multiprocessing dan Sebutkan keuntungan dan kerugian dari sistem multiprosessor!

Perbedaan antara symetric dan asymetric multiprocessing:
  • Dalam SMP setiap prosessor menjalankan salinan identik dari sistem operasi dan banyak job yang dapat berjalan disuatu waktu tanpa pengurangan kinerja
  • Dalam ASMP setiap prosessor diberikan suatu tugas yang spesifik sebuah prosessor bertindak sebagai master prosessor yang bertugas menjadwalkan dan mengalokasikan pekerjaan pada prosessor lain yang disebut slave processors
  • Umumnya ASMP digunakan pada sistem besar

Keunggulan sistem multiprocessor
  • Peningkatan troughtput karena lebih banyak proses/thread yang dapat dijalankan sekaligus
  • Economy of scale : Ekonomis dalam peralatan yang dibagi bersama
Kerugian sistem multiprocessor
  • Harga mahal

6. Apakah perbedaan antara trap dan interrupt? Sebutkan penggunaan dari setiap fungsi tersebut!
  • Trap adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian yang dihasilkan proses yang running seperti usaha ilegal dalam mengakses file. 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 bergantung sifat kesalahan dan rancangan sistem operasi kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan pemakai
  • Interupsi adalah suatu permintaan khusus kepada mikroprosessor untuk melakukan sesuatu bila terjadi interupsi,maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi


7. Untuk jenis operasi apakah DMA itu berguna? Jelaskan jawabannya!
Operasi penanganan I/O dimana device controller langsung berhubungan dengan memori tanpa campur tangan CPU,DMA digunakan untuk perangkat I/O dengan kecepatan tinggi hanya terdapat satu interupsi setiap blok.
Interrupt hanya terjadi tiap blok bukan tiap word atau byte data. Seluruh proses DMA dikendalikan oleh sebuah controller bernama DMA Controller (DMAC) . DMA Controller mengirimkan atau menerima signal dari memori dan I/O device. Prosesor hanya mengirimkan alamat awal data, tujuan data, panjang data ke DMA Controller . . Interrupt pada prosesor hanya terjadi saat proses transfer selesai. Hak terhadap penggunaan bus memory yang diperlukan DMA controller didapatkan dengan bantuan bus arbiter yang dalam PC sekarang berupa chipset Northbridge .

8. Sebutkan dua kegunaan dari memory cache!
  • Problem apakah yang dapat dipecahkan danjuga muncul dengan adanya cache tersebut?
  • Tempat penyimpanan sementara (volatile)sejumlah kecil data
  • Meningkatkan kecepatan pengambilan atau penyimpanan data dari memori oleh prosessor berkecepatan tinggi
Masalah yang dipecahkan:
Kecepatan pengambilan atau penyimpanan data di memori oleh CPU meningkat, karena tidak perlu mencari di disk fisik.
Masalah yang timbul:
tidak dapat menyimpan data dalam jumlah besar (karena cache berdaya tampung lebih kecil).

9. Beberapa CPU menyediakan lebih dari dua mode operasi. Sebutkan dua kemungkinanpenggunaan dari mode tersebut?
  • User -> Eksekusi dikendalikan oleh user.
  • Monior/kernel/Sistem Mode -> Eksekusi dikendalikan oleh sistem operasi.
Pada saat boot time,perangkat keras bekerja pada mode monitor dan stelah sistem operasi di-load maka akan mulai masuk ke mode pengguna.Ketika terjadi trap atau interupsi,perangkat keras akan menswitch lagi keadaan dari mode pengguna menjadi mode monitor(terjadi perubahan state menjadi bit 0) dan akan kembali menjadi mode pengguna jikalau sistem operasi menambil alih proses dan kontrol komputer (state akan berubah menjadi bit1 )

10. Sebutkan lima kegiatan utama dari sistem operasi yang berhubungan dengan manage dan memproses!
  • Pembuatan dan penghapusan proses pengguna dan sistem proses.
  • Menunda autau melanjutkan proses.
  • Menyediakan mekanisme untuk proses sinkronisasi.
  • Menyediakan mekanisme untuk proses komunikasi.
  • Menyediakan mekanisme untuk proses penanganan deadlock.

11. Sebutkan tiga kegiatan utama dari sistem operasi yang berhubungan dengan managemenmemori!
  • Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
  • Memilih program yang akan di-load ke memori.
  • Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.

12. Sebutkan tiga kegiatan utama dari sistem operasi yang berhubungan dengan managemensecondary-storage!
  • Menyimpan data besifat sementara
  • Memindahkan data dari satu tempat ke tempat lain
  • Alternatif pengganti memory (virtual memory)

13. Sebutkan lima kegiatan utama dari sistem operasi yang berhubungan dengan managemen berkas!
  • Pembuatan dan penghapusan berkas.
  • Pembuatan dan penghapusan direktori.
  • Mendukung manipulasi berkas dan direktori.
  • Memetakan berkas ke secondary storage.
  • Mem-backup berkas ke media penyimpanan yang permanen (non-volatile)

14. Apakah tujuan dari command interpreter? Mengapa biasanya hal tersebut terpisah dengankernel
  • Tujuan dari command interpreter adalah agar pengguna dapat membuat permintaan tanpa menulis program.
  • Biasa terpisah karena Konsep mesin virtual menyediakan proteksi yang lengkap untuk sumberdaya sistem, dikarenakan tiap mesin virtual terpisah dari mesin virtual yang lain.



Tugas SO 1.1

Kernel
Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputersecara aman.
Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapandan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karenaitu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksitersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkanakses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnyamemudahkan pekerjaan programer.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung diload dan dijalankan diatas mesin 'telanjang' komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan oleh komputer generasiawal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus meresetdan meload kembali program-program tersebut.
Beberapa desain Kernel
Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin (contohnya adalah CMOS Setup) sehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory). Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.


Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:

Kernel monolitik
Pendekatan kernel monolitik didefinisikan sebagai sebuah antarmuka virtual yang berada pada tingkat tinggi di atas perangkat keras, dengan sekumpulan primitif atau system call untuk mengimplementasikan layanan-layanan sistem operasi, seperti halnya manajemen proses, konkurensi (concurrency), dan manajemen memori pada modul-modul kernel yang berjalan di dalam mode supervisor.
Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat, dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat sistem operasi dengan monolithic kernel sangatlah efisien meskipun sangat sulit dalam pembuatannya.
Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya Linux, FreeBSD, Solaris, dan Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi pada saat kernel tersebut dijalankan sehingga mengizinkan ekstensi terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang berjalan di dalam ruangan kernel (kernel-space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:
  • Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
  • Kernel sistem operasi GNU/Linux, Linux.
  • Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).

Mikrokernel
Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan serversystem state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya. tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari
Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server.
Beberapa sistem operasi yang menggunakan microkernel:
  • IBM AIX, sebuah versi UNIX dari IBM
  • Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
  • Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X
  • Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
  • Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.
Pendekatan mikrokernel berisi sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread, komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan di dalam ruangan pengguna (user-space), dan disebut dengan server.
Server atau disebut sebagai peladen adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa dukungan jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai komputer pusat pengatur jaringan) tidak perlu dijalankan. Pada sistem operasi tradisional yang menggunakan monolithic kernel, hal ini dapat mengakibatkan pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja sulit untuk dilakukan oleh pengguna biasa yang awam.

Kernel hibrida
kernel hibrida aslinya adalah mikrokernel yang memiliki kode yang tidak menunjukkan bahwa kernel tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode-kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap masalah yang terjadi di dalam mikrokernel: kinerja.
Beberapa orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi pertukaran pesan (message passing) yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan kinerja.
i bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:
  • BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
  • Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
  • Microsoft Windows NT (dan semua keturunannya).
Sebenarnya, Exokernel bukanlah pendekatan kernel sistem operasi yang umum—seperti halnya microkernel atau monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang disusun secara vertikal.

Exokernel
Sebenarnya, Exokernel bukanlah pendekatan kernel sistem operasi yang umum—seperti halnya microkernel atau monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang disusun secara vertikal.
Ide di balik exokernel adalah untuk memaksa abstraksi yang dilakukan oleh developer sesedikit mungkin, sehingga membuat mereka dapat memiliki banyak keputusan tentang abstraksi hardware. Exokernel biasanya berbentuk sangat kecil, karena fungsionalitas yang dimilikinya hanya terbatas pada proteksi dan penggandaan sumber daya.
Kernel-kernel klasik yang populer seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.
Exokernel mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah: aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik baik itu berupa lokasi alamat physical memory dan blok di dalam hard disk. Tugas kernel hanya memastikan bahwa sumber daya yang diminta itu sedang berada dalam keadaan kosong—belum digunakan oleh yang lainnya—dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya tersebut. Akses hardware pada tingkat rendah ini mengizinkan para programmer untuk mengimplementasikan sebuah abstraksi yang dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat kernel lebih kecil, dan tentu saja meningkatkan performa.
Exokernel biasanya menggunakan library yang disebut dengan libOS untuk melakukan abstraksi. libOS memungkinkan para pembuat aplikasi untuk menulis abstraksi yang berada pada level yang lebih tinggi, seperti halnya abstraksi yang dilakukan pada sistem operasi tradisional, dengan menggunakan cara-cara yang lebih fleksibel, karena aplikasi mungkin memiliki abstraksinya masing-masing. Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows dapat berjalan di atas sistem operasi tersebut.
kernel-kernel klasik yang populer seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.

sumber

DMA
Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor.
Transfer DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka perangkat I/O. Istilah ini yang sering banyak kita ketahui adalah sebagai kontroler DMA. Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh prosesor pada saat mengakses memori utama (yang sering disebut :RAM). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol transfer data. Karena harus mentransfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan mencatat jumlah transfer.
Sekalipun kontroler DMA dapat mentransfer data tanpa intervensi dari prosesor, operasinya tetap berada dibawah kontrol program yang dieksekusi oleh prosesor. Untuk menginisiasi transfer suatu blok word, prosesor mengirim alamat awal, jumlah word dalam blok, dan arah transfer. Pada saat seluruh blok telah ditransfer, kontroler tersebut memberitahu prosesor dengan memunculkan sinyal interupt. Pada saat transfer DMA terjadi, program yang meminta transfer tersebut berhenti bekerja dan prosesor dapat digunakan untuk mengeksekusi program lain. Setelah transfer DMA selesai, prosesor dapat kembali ke program yang meminta transfer tersebut.
Operasi I/O selalu dilakukan oleh OS sebagai respon terhadap request dari program aplikasi. OS juga bertanggung jawab untuk menunda eksekusi satu program dan memulai eksekusi program lain. Sehingga, untuk operasi I/O yang melibatkan DMA, OS menetapkan program yang meminta transfer tsb pada keadaan blocked, menginisiasi operasi DMA, dan memulai eksekusi program lain. Pada saat transfer selesai, kontroler DMA memberitahu prosesor dengan mengirim interupt request. Sebagai responnya, OS menetapkan program yang ditunda ke keadaan runnable sehingga dapat dipilih oleh scheduler untuk melanjutkan eksekusi.
Seperti yang telah dijelaskan sebelumnya bahwa mekanisme interupsi tidak efisien untuk melakukan transfer data yang besar. Transfer data dilakukan per word. Padamekanisme interupsi, untuk tiap word data yang ditransfer, prosesor tidak akan menunggu data tersedia pada perangkat yang mengirim data maupun data selesai ditulis oleh perangkat yang menerima data. Dalam situasi tersebut prosesor akan mengganti proses yang sedang dieksekusinya (yang melakukan transfer data) dengan proses lain (context switch). Jika ukuran data yang ditransfer cukup besar, prosesor akan berulang kali melakukan context switch, padahal context switch akan menimbulkan overhead. Oleh karena itu kelemahan mekanisme interupsi untuk menangani transfer data yang besar disebabkan oleh context switch. Untuk menangani kelemahan tersebut, digunakan suatu unit kontrol khusus yang disediakan untuk mentrasfer data langsung antar perangkat eksternal dan memori utama tanpa intervensi terus menerus dari prosesor. Unit kontrol khusus tersebut adalah DMA.
Sistem modern dapat mengurangi beban CPU untuk melakukan operasi M/K, yaitu dengan menggunakan pengendali DMA. Dengan demikian CPU dapat melakukan tugas lain sementara operasi M/K dilakukan. Setiap pengendali peralatan dapat saja memiliki perangkat keras DMA tersendiri. Alternatif lain adalah dengan memiliki sebuah pengendali DMA pada motherboard yang mengatur transfer ke berbagai peralatan.Untuk memulai transfer data secara DMA, driver peralatan akan menulis blok perintah DMA memori yang menunjuk sumber data, tujuan, dan jumlah byte yang akan ditransfer. CPU kemudian akan mengirimkan alamat blok perintah ini pada pengendali DMA. pengendali DMA akan memproses informasi ini untuk kemudian mengoperasikan bus memori.
Transfer sebanyak 1 byte/word per satuan waktu oleh pengendali DMA disebut sebagai cycle stealing karena pengendali menggunakan bus cycle milik CPU. Dengan cycle stealing penggunaan bus oleh CPU akan tertunda beberapa waktu karena bus digunakan untuk proses DMA.
Tiga langkah dalam transfer DMA:
  • prosesor menyiapkan DMA transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
  • Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat,menulis dan membaca data) samapai seluruh blok sudah ditransfer.
  • Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

sumber
Apa yang dimaksud dengan transmisi sinkron dan tak sinkron?
transmisi sinkron adalah jika waktu kirim dan terima atau lamanya penerimaan setiap bit ditentukan secara pasti sebelum bit tersebut dikirim dan diterima.
transmisi taksinkron jika waktu kirim dan terima atau lamanya penerimaan setiap bit tidak ditentukan oleh karakter sebelumnya.