I/O buffering
Adalah area memori komputer yang digunakan untuk menyimpan sementara data dan instruksi yang akan ditransfer dari dan ke komputer, yang memungkinkan beberapa transfer data yang terjadi secara simultan. Tujuan utamanya adalah untuk kelancaran komputer dalam menangani proses masuk keluarnya data.
Mekanisme Sinkronisasi Sistem Operasi
Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar
Long term scheduler
Menentukan proses apa saja yang dapat dijalankan pada sistem dan tingkat concurrency harus didukung pada suatu waktu (apakah proses yang tinggi atau proses yang rendah yang harus dijalankan, dan bagaimana pemisahan antara I/O dan proses CPU ditangani. Dalam Sistem Operasi modern, long term scheduler ini digunakan untuk memastikan bahwa proses real time CPU mendapatkan waktu yang cukup untuk menyelesaikan tugas-tugasnya. Tanpa penjadwalan real time yang tepat, Graphical User Interface (GUI) modern akan terasa lamban. Penjadwalan jangka panjang juga penting dalam system skala besar seperti sistembatch processing, cluster komputer, dan superkomputer. Long-term scheduler mengontrol degree of multiprogramming (jumlah proses dalam memori). Jika degree of multiprogramming stabil, maka tingkat rata-rata penciptaan proses harus sama dengan tingkat rata data proses meninggalkan sistem. Maka dari itu long-term scheduler mungkin dipanggil hanya ketika suatu proses meninggalkan sistem. Karena interval yang lebih panjang antara eksekusi, long-term scheduler dapat menggunakan waktu yang lebih lama untuk menentukan proses mana yang harus dipilih untuk dieksekusi.
Medium Term Scheduler
Dapat memutuskan untuk menukar proses yang belum aktif untuk beberapa waktu, atau proses yang memiliki prioritas rendah, atau proses yang mengambil sejumlah besar memori untuk menjalankan proses lainnya.
Short Term Scheduler
Dikenal juga sebagai CPU scheduler memutuskan proses mana yang siap untuk dieksekusi (dialokasikan CPU) selanjutnya setelah interupsi Input / Output, panggilan system operasi atau sinyal lainnya. Jadi, scheduler jangka pendek membuat penjadwalan keputusan jauh lebih sering dari pada penjadwalan jangka panjang (Long term scheduler) atau jangka menengah (mid term scheduler). Scheduler ini bias mengirimkan pesan terlebih dahulu bahwa scheduler mampu menghapus proses secara paksa dari CPU untuk mengalokasikan proses lain pada CPU. Dalam kebanyakan kasus penjadwal jangka pendek ditulis dalam assembler karena merupakan bagian penting dari system operasi. Short-term scheduler harus memilih proses baru untuk CPU sesering mungkin. Sebuah proses dapat mengeksekusi hanya dalam beberapa milidetik sebelum menunggu permintaan I/O. Seringkali, short-term scheduler mengeksekusi paling sedikit sekali setiap 100 milidetik. Karena durasi waktu yang pendek antara eksekusi-eksekusi tersebut, short-term scheduler seharusnya cepat. Jika memerlukan waktu 10 mili detik untuk menentukan suatu proses eksekusi selama 100 mili detik, maka 10/(100 + 10) = 9 persen dari CPU sedang digunakan (atau terbuang) hanya untuk pekerjaan penjadwalan.
Context Switch
Mengganti CPU ke proses lain memerlukan penyimpanan state dari proses lama dan mengambil state dari proses yang baru. Hal ini dikenal dengan sebutan context switch . Context switch sebuah proses direpresentasikan dalam PCB dari suatu proses; termasuk nilai dari CPU register, status proses dan informasi manajemen memori. Ketika context switch terjadi, kernel menyimpan data dari proses lama ke dalam PCB nya dan mengambil data dari proses baru yang telah terjadwal untuk berjalan. Waktu context switch adalah murni overhead , karena sistem melakukan pekerjaan yang tidak begitu berarti selama melakukan pengalihan. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada kecepatan memori, jumlah register yang harus di-copy, dan ada tidaknya instruksi khusus (seperti instruksi tunggal untuk mengisi atau menyimpan seluruh register). Tingkat kecepatan umumnya berkisar antara 1 sampai 1000 mikro detik. Waktu context switch sangat begantung pada dukungan perangkat keras. Sebagai contoh, prosesor seperti UltraSPARC menyediakan beberapa set register. Sebuah proses context switch hanya memasukkan perubahan pointer ke set register yang ada saat itu. Tentu saja, jika proses aktif yang ada lebih banyak daripada proses yang ada pada set register, sistem menggunakan bantuan untuk meng-copy data register dari dan ke memori, sebagaimana sebelumnya. Semakin kompleks suatu sistem operasi, semakin banyak pekerjaan yang harus dilakukan selama context switch . Bisa dilihat pada Bab Memori, teknik managemen memori tingkat lanjut dapat mensyaratkan data tambahan untuk diganti dengan tiap data. Sebagai contoh, ruang alamat dari proses yang ada saat itu harus dijaga sebagai ruang alamat untuk proses yang akan dikerjakan berikutnya. Bagaimana ruang alamat dijaga, berapa banyak pekerjaan dibutuhkan untuk menjaganya, tergantung pada metode managemen memori dari sistem operasi. Akan kita lihat pada Bab Memori, context switch terkadang bias menyebabkan bottleneck , dan programmer menggunakan struktur baru (threads) untuk menghindarinya kapan pun memungkinkan.
Generasi Komputer
Generasi Pertama-Tiub Hampagas( 1942 - 1958 )
1) Menggunakan teknologi tiub hampagas (vakum).
2) Berupaya memproses beberapa ribu arahan sesaat,lebih pantas daripada pergerakan alat mekanik.
3) Berupaya menyimpan 10,000 - 20,000 aksara.
4) Menggunakan ingatan teras magnet. Teras magnet adalah gelang-gelang logam yang amat kecil dan boleh memberikan kuasa magnet melalui satu dari dua arah.
Generasi Kedua-Transistor (1959 - 1964)
1) Menggunakan transistor menggantikan tiub hampa gas.
2) Dicipta oleh tiga saintis di Bell Laboratories, yaitu J. Bardeen, H. W. Brittain dan W. Shockley.
3) Transistor adalah sebuah alat elektronik yang kecil di mana fungsinya adalah untuk memindahkan isyarat-isyarat elektrik melalui perintang.
4) Keserasian terhad. Atur cara yang ditulis untuk satu komputer perlu diubah untuk dilaksanakan pada komputer lain.
5) Menggunakan hanya pita untuk storan yang boleh memproses secara jujukan sahaja.
6) Menggunakan bahasa aras rendah iaitu bahasa simbolik.
7) Lebih kecil, ringan, murah tahan lama dan mudah digunakan.
8) Bahasa pengaturcaraan peringkat tinggi atau bahasa perhimpunan (assembly language) seperti FORTRAN dan COBOL.
Generasi Ketiga-Litar Elektrik (1964 - 1970)
1) Menggunakan teknologi litar bersepadu yang terdiri daripada beribu-ribu transistor yang diletakkan pada kepingan silikon.
2) Atur cara lebih serasi.
3) Bermulanya konsep multi pengaturcaraan. Beberapa pengguna berkongsi mesin. Istilah baru
4) Bermulanya pemprosesan rawak dengan penggunaan cakera magnet.
5) Lebih kuat, utuh dan padat.6. Bahasa pengaturcaraan dihasilkan seperti BASIC dan Pascal.
Generasi Keempat (1971 -1999)
1) Penggunaan litar bersepadu berskala besar. Istilah yang digunakan ialah Penyepaduan Skala-Besar (Large-Scale Intergration ataupun LSI).
2) Penggunaan mikro pemprosesan pada satu serpihan.
3) Dengan pengenalan storan maya, atur cara yang bersaiz beberapa kali saiz ingatan mesin
4) Pengenalan kepada cakera padat ingatan baca sahaja (Compact Disc Read Only Memory( CD ROM ).
5) Ingatan utama komputer menjadi lebih cekap, pantas dan besar.
Generasi Kelima (2000 hingga kini)
1) Lebih canggih, lebih murah, lebih pantas dan lebih hebat daripada yang sedia ada dan kemampuan 'melihat', 'mendengar', 'bercakap', dan 'berfikir' seperti manusia-kepintaran buatan.
2) Memiliki kecerdikan buatan iaitu setakat mana manusia membuat komputer itu cerdik.
3) Melaksanakan tugas secara selari berbeza dengan caranya sekarang dan membolehkan tugas diselesaikan serentak.
4) Lebih cepat dan lebih kuasa untuk membuat penaakulan, belajar dan membuat kesimpulan.
SMP (System multithreading processor)
01.11
aditya
Posted in
Proses
01.08
aditya
Proses
Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : Proses baru diciptakan.
- Running : Proses sedang dijalankan.
- Waiting : Proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O).
- Ready : Proses menunggu untuk dilayaniprocessor.
- Terminated Proses telah menyelesaikan eksekusi.
Process Control Block (PCB)
Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :
1. http://t3.gstatic.com/images?q=tbn:ANd9GcTtOtP0SWiIbYLC6F_xWW_00Scl8mLJNvNA9I7iQP56d4ybI3WCRQProcess State, berisi informasi status proses. (new,running,waiting,ready,terminated).
2. Program counter, berisi informasi mengenai alamat instruksi yang akan digunakan selanjutnya.
3. CPU register, berisi register2 CPU apa saja yang digunakan.
4. CPU scheduling information, berisis penjadwalan proses beserta algoritmanya.
5. Memory management information, berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information, berisi informasi tentang perangkat apa saja yang digunakan dalam proses.
7. Accounting, berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.
Thread
Program yang dieksekusi :
1. Proses berat (heavyweight), biasa disebut dengan proses tradisional.
2. Proses ringan (lightweight), biasa disebut dengan THREAD.
Thread terdiri dari ID thread, program counter, himpunan register dan stack. Thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama (multithreading). Thread bekerja sama dengan thread lain dalam penggunaan bagian kode, bagian data, dan resource. Dengan penggunaan thread CPU dapat secara ekstensif di antara peer thread tanpa menggunakan manajemen memori.
Keuntungan penggunaan thread :
1. Tanggap.
2. Pemberdayaan resorce.
3. Ekonomis.
4. Pemberdayaan arsitektur multiprocessor.
- Single thread dan multi thread
http://t1.gstatic.com/images?q=tbn:ANd9GcR45OqSPB6Lxbz4Zl9MttWtAJ0EYrFZSc9epZA5hE0wmaCaUx_wkw
1. Single thread, yaitu process hanya mengeksekusi satu thread saja pada satu waktu
2. Multi thread, yaitu process dapat mengeksekusi sejumlah thread dalam satu waktu.
- Model Multithread
Sebelumnya, perlu diketahui apa itu user thread dan kernel thread. User thread, yaitu pengelolaan thread dilakukan oleh user level (pengguna). Kernel thread, yaitu pengelolaan thread dilakukan oleh kernel komputer User tidak dapat menginterupsi.
Model-model multithreading :
1. Many to one.
- Beberapa thread user-lever dipetakan ke dalam single kernel thread.
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread.
2. One to one
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000.
3. Many to many
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread.
- Membolehkan sistem operasi membuat sejumlah kernel thread.
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2.
Symmetric Multi Processing
Berkaitan dengan arsitektur hardware multiprosesor, dimana dua buah atau lebih prosesor terhubung pada sebuah memori utama dan dikendalikan oleh sebuah Sistem Operasi. Sekarang ini banyak sistem mikroprosesor menggunakan SMP ini. Intinya sistem SMP ini memungkinkan prosesor untuk mengerjakan tugas-tugas dimanapun datanya tersimpan pada memori, dengan syarat setiap tugas yang dikerjakan tidak dilakukan oleh kedua prosesor secara bersamaan.
http://t3.gstatic.com/images?q=tbn:ANd9GcRP1DwHl1FYV8F_DLWfvfm48LdUpkulBwZ-M7wMgP-lNqiOAPyI
Dengan sistem operasi yang tepat, sistem SMP dapat dengan mudah memindahkan tugas antar prosesor untuk menyeimbangkan bebean kerja dengan efisien.
Kelebihan dan Kekurangan SMP
Kelebihannya adalah memungkinkan prosesor memproses banyak pengolahan data, jadi berguna untuk beberapa program tertentu. Untuk beberapa program seperti Game, SMP ini tidak cocok untuk CPU berprosesor tunggal.
Bilapun akan dihubungkan dengan prosesor tunggal, SMP ini membutuhkan sistem program yang mendukung untuk melakukan kinerja.
Microkernel
Microkernel adalah inti (kernel) dari operating system yang paling sederhana, tidak ada fasilitas apapun, menjadikannya kernel ini berukuran sangat kecil dan biasanya sangat stabil (hampir bisa dipastikan tidak ada lagi bugsnya).
Microkernel hanya memiliki fungsi manajemen sederhana untuk mendeliver services :
- Low-level address space management : sistem pengalamatan physical atau virtual untuk memory, network host, peripheral, dan lain-lain.
- Thread management : pengaturan proses (='molekul') yang terpecah menjadi thread (='atom') dan dijalankan secara paralel.
- Inter-process communication (IPC) : pengaturan komunikasi antar thread pada satu atau beberapa proses. IPC bisa punya ruang lingkup di dalam atau antar komputer.
Arsitektur microkernel sangat berbeda dengan monolithic kernel :
- Monolithic kernel memiliki struktur vertical layered : setiap aplikasi memanggil servis yang berada di bawahnya.
- Microkernel memiliki struktur horizontal : aplikasi memanggil servis yang berada sejajar dengan menggunakan IPC.
Realtime Applications
Karena sistem microkernel menggunakan thread yang dieksekusi secara parallel, microkernel sangat mudah mendukung aplikasi realtime meskipun system sedang overloaded. Sedangkan pada arsitektur monolithic, aplikasi realtime akan terputus-putus pada saat system overloaded.
Robustness/Keandalan Tinggi
Microkernel sangat sederhana, sehingga bisa dipastikan bebas bugs. Selain itu proses di dalam microkernel berjalan secara independent. Sehingga microkernel memiliki keandalan sangat tinggi, jauh lebih tinggi dibandingkan dengan monolithic. Oleh karena itu arsitektur microkernel banyak dipakai pada aplikasi mission critical pada embedded system.
Pada monolithic kernel, bugs lebih sering menghantam kernel karena kernelnya sangat kompleks. Selain itu semua proses saling terkait. Sehingga jika ada bugs atau proses yang menggantung, seluruh sistem bisa ikut crashed.
Security / Keamanan Tinggi
Microkernel menggunakan prinsip miminal privilege, dimana setiap proses hanya dapat mengeksekusi instruksi sederhana yang sangat spesifik. Sehingga pengaturan security menjadi sangat mudah.
Sedangkan proses-proses pada arsitektur monolithic cenderung bisa melakukan eksekusi kompleks yang lebih sulit dimonitor securitynya.
Arsitektur Microkernel pada Router
Pada router-router kelas high end, seperti Cisco CRS-1, operating system dengan arsitektur Microkernel menjadi pilihan yang sangat menarik, karena keunggulan-keunggulan tadi :
- Performance, Router CRS-1 adalah router raksasa yang memiliki CPU (dan kipas pendingin) yang sangat kuat, sehingga overhead microkernel menjadi tidak ada artinya.
- Realtime Applications, Router CRS-1 dapat menjalankan aplikasi realtime (seperti emulasi leased line, voice, telemetri, dll) tanpa takut aplikasi realtime terganggu karena ada traffic sangat tinggi atau ada serangan DDoS.
- Robustness, semua komponen hardware/software CRS-1 dapat diganti2 tanpa adanya system down sama sekali. Termasuk penggantian chassis dan switching fabric, karena CRS-1 bersifat multi chassis dan multi switching fabric (yang dimungkinkan karena microkernel ini).
- Security, user CRS-1 memiliki tingkat privilege yang berbeda-beda, sehingga pengaturan security menjadi mudah sekali. Level security ini pun terbawa sampai tingkat process dan thread karena arsitektur microkernel ini.
Posted in
Langganan:
Postingan (Atom)