POSIX Threads
POSIX
Posix, singkatan dari Portable Operating System Interface for UNIX, adalah sebuah standar yang dicetuskan oleh Institute of Electical and Electronics Engineers (IEEE) yang mendefinisikan sekumpulan layanan dalam sistem operasi. Program-program yang mendukung standar POSIX dapat secara mudah di-port dari satu sistem ke sistem lainnya. POSIX menjadi basis dalam layanan sistem operasi UNIX. Meskipun demikian, POSIX juga dibuat demikian agar sistem operasi lainnya dapat mengimplementasikan layanan POSIX. Standardisasi ini dilakukan sejak tahun 1985. Nomor standar formalnya adalah IEEE 1003 dan kemudian menjadi standar internasional menjadi ISO/IEC 9945. Istilah POSIX sendiri diusulkan oleh Richard Stallman, sebagai respons dari permintaan IEEE untuk nama yang mudah diingat.
POSIX menentukan antarmuka pengguna dan antarmuka perangkat lunak terhadap sistem operasi dalam 15 dokumen yang berbeda. Antarmuka pengguna standar dalam POSIX adalah Korn shell yang digunakan untuk memasukkan perintah command-line dan pembuatan skrip. Program-program pengguna lainnya juga dimasukkan ke dalam standar, seperti awk, echo, ed, dan ratusan program lainnya. POSIX juga mendefinisikan pustaka API standar untuk thread (POSIX Thread) yang banyak diimplementasikan di sistem operasi modern. Sementara itu, layanan-layanan level program yang dimasukkan ke dalam standar adalah input/output dasar (file, terminal, dan jaringan). POSIX juga mendefinisikan bagaimana melakukan pengujian terhadap sebuah aplikasi apakah mendukung POSIX atau tidak, yang disebut dengan POSIX Confirmance Test Suite (PCTS).
Berikut merupakan beberapa standar POSIX
| Standar | Keterangan |
|---|---|
| POSIX.1 (IEEE 1003.1) | Menentukan antarmuka sistem dasar untuk bahasa pemrograman C. |
| POSIX.2 | Menentukan standar-standar untuk shell dan utilitas sistem operasi ditambah beberapa antarmuka tambahan dalam bahasa pemrograman C. |
| POSIX.3 | Menentukan metode-metode untuk melakukan pengujian terhadap dukungan sebuah aplikasi terhadap POSIX. |
| POSIX.4 | Real-time Extension: Menambahkan ekstensi terhadap standar POSIX.1 yang berkaitan dengan sistem operasi real-time. |
| POSIX.5 | Ada Binding: Memperluas POSIX.1 dengan dukungan terhadap bahasa pemrograman Ada. |
| POSIX.6 | POSIX Security: Mendefinisikan masalah keamanan sistem yang mendukung POSIX. |
| POSIX.7 | System Administration: Mendefinisikan masalah administrasi sistem yang mendukung POSIX, termasuk untuk administrasi pengguna. |
| POSIX.8 | Network Services: Mendefinisikan masalah layanan jaringan yang diimplementasikan sistem yang mendukung POSIX. |
| POSIX.9 | Fortran Binding: Memperluas POSIX.1 dengan dukungan terhadap bahasa pemrograman FORTRAN77 |
| POSIX.10 | |
| POSIX.11 | |
| POSIX.12 | |
| POSIX.13 | |
| POSIX.14 | |
| POSIX.15 |
Standar POSIX didukung oleh kebanyakan sistem operasi modern (utamanya keluarga sistem operasi UNIX), meski tidak semuanya diimplementasikan. Keluarga Windows NT juga mendukung standar POSIX, meski hanya beberapa standar, yakni POSIX.1 dan POSIX.4. Dukungan POSIX dalam sistem operasi itu juga dapat diperluas dengan menambahkan komponen tambahan, yang disebut dengan Windows Services for UNIX (SFU) dari Microsoft atau MKS Toolkit.
Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Keuntungan
- Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
- Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.
- Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
- Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu. User thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat pengguna. Library mendukung untuk pembentukan thread, penjadualan, dan manajemen yang tidak didukung oleh kernel.
Komentar
Posting Komentar