Thread
Definisi: unit dasar dari penggunaan CPU.
• Thread terdiri dari:
– thread ID, program counter, register, dan stack.
• Thread juga sering disebut Lightweight process.
• Thread berbagi:
– code section, data section, files dan sumber daya dengan thread lain yang termasuk dalam proses yang sama.
Thread dan Proses
Thread dan proses adalah metode dari parallelizing aplikasi. Namun, proses adalah unit pelaksanaan independen yang berisi informasi negara mereka sendiri, menggunakan ruang alamat mereka sendiri, dan hanya berinteraksi dengan satu sama lain melalui mekanisme komunikasi interprocess (umumnya dikelola oleh sistem operasi). Aplikasi yang biasanya dibagi ke dalam proses selama fase desain, dan proses master secara eksplisit memunculkan sub-proses ketika masuk akal untuk fungsionalitas aplikasi secara logis terpisah signifikan. Proses, dengan kata lain, adalah arsitektur membangun.
Sebaliknya, thread adalah coding membangun yang tidak mempengaruhi arsitektur aplikasi. Proses tunggal mungkin berisi beberapa thread; semua thread dalam proses berbagi negara yang sama dan sama ruang memori, dan dapat berkomunikasi satu sama lain secara langsung, karena mereka berbagi variabel yang sama.
Keuntungan Thread
• Responsiveness : pada aplikasi yang interaktif dapat membuat program terus berjalan meskipun bagian dari program tersebut diblok atau sedang menjalankan operasi yang panjang
• Resource sharing : sebuah aplikasi dapat mempunyai beberapa thread yang berbeda dalam sebuah alamat memori yang sama karena Thread berbagi memori dan sumber daya dari proses yang memilikinya.
• Economy: karena mahal untuk mengalokasikan memori dan sumber daya untuk pembuatan proses. Alternatifnya adalah dengan pengunaan thread, akan lebih ekonomis untuk membuat sebuah thread daripada menggunakan memory baru.
• Utilization of multiproccesor architectures: dalam arsitektur multiprosesor, dimana setiap thread dapat berjalan secara pararel pada prosesor yang berbeda.
Sistem Prosesor Jamak
Pada umumnya, setiap komputer dilengkapi dengan satu buah prosesor (CPU). Namun, dewasa ini mulai umum, jika sebuat sistem komputer memiliki lebih dari satu prosesor (multi-procesor).
Terdapat dua jenis sistem prosesor jamak, yaitu Symmetric MultiProcessing (SMP) dan Asymmetric MultiProcessing (ASMP). Dalam SMP setiap prosesor menjalankan salinan identik dari system operasi dan banyak job yang dapat berjalan di suatu waktu tanpa pengurangan kinerja. Sementara itu dalam ASMP setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai Master processor yang bertugas menjadualkan dan mengalokasikan pekerjaan pada prosesor lain yang disebut slave processors. Umumnya ASMP digunakan pada sistem yang besar.
Kernel
· Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara 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 kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
· Mikrokernel
Mikrokernel merupakan salah satu desain kernel. 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.
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 server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system 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.
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.
Tidak ada komentar:
Posting Komentar