Selasa, 07 April 2009

THREADS....

Thread adalah unit dasar dari penggunaan CPU, thread mengandung 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

Banyak software yang berjalan pada PC modern didesain secara multithreading . Sebuah aplikasi biasanya diimplementasi sebagai proses yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.

Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server bisa mempunyai ratusan klien yang mengaksesnya secara concurrent . Kalau web server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia hanya bisa melayani satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi multithreading . Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.

Java mempunyai pengunaan lain dari thread. Perlu dikeahui bahwa java tidak mempunyai konsep asynchronous . Sebagai contohnya kalau program java mencoba untuk melakukan koneksi ke server maka ia akan berada dalam keadaan block state sampai koneksinya jadi ( bisa dibayangkan apa yang terjadi apabila servernya mati ). Karena java tidak memiliki konsep asynchronous maka solusinya adalah dengan membuat thread yang mencoba untuk melakukan koneksi ke server dan thread lain yang pertamanya tidur selamabeberap waktu ( misalnya 60 detik ) kemudian bangun. Ketika waktu tidurnya habis maka ia akan bangun dan memeriksa apakah thread yang melakukan koneksi ke server masih mencoba untuk melakukan koneksi ke server, kalau thread tersebut masih dalam keadaan mencoba untuk melakukan koneksi ke server maka ia akan melakukan interrupt dan mencegah thread tersebut untuk mencoba melakukan koneksi ke server.

Keuntungan Thread

Keuntungan dari program yang multithrading dapat dipisah menjadi empat kategori :
1.Responsi : Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading , sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
2.Berbagi sumber daya : thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengijinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
3.Ekonomi : dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread.
4.Utilisasi arsitektur multiprocessor : Keuntungan dari multithreading bisa sangat meningkat pada arsitektur multiprocessor , dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu( satu -satuan waktu pada CPU biasa disebut time slice atau quantum ).

User Thread
User thread didukung diatas kernel dan diimplementasi oleh thread library pada user level. Library meneyediakan fasilitas untuk pembuatan thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari kernel. Karena kernel tidak menyadari user-level thread maka semua pembuatan dan penjadwalan thread dilakukan di user space tanpa intervensi dari kernel. Oleh karena itu, user -level thread biasanya cepat untuk dibuat dan diatur. Tetapi user thread mempunyai kelemahan yaitu apabila kernelnya merupakan thread tunggal maka apabila salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walaupun ada thread lain yang bisa jalan dalam aplikasi tersebut. Contoh user-thread libraries adalah POSIX Pthreads, Mach C-threads, dan Solaris threads.
Kernel Thread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan manajeman thread dilakukan oleh kernel pada kernel space . Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Keuntungannya adalah thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel bisa menjadwalkan thread lain di aplikasi untuk melakukan eksekusi. Keuntungan lainnya adalah pada lingkungan multiprocessor , kernel bisa menjadwal thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX.

Multithreading Models


1.Many-to-One Model
Many-to-One model memetakan banyak user-level thread ke saru kernel thread. Pengaturan thread dilakukan di user space, oleh karena itu ia efisien tetapi ia mempunyai kelemahan yang sama dengan user thread. Selain itu karena hanya satu thread yang bisa mengakses thread pada suatu waktu maka multiple thread tidak bisa berjalan secara pararel pada multiprocessor . User-level thread yang diimplementasi pada sistem operasi yang tidak mendukung kernel thread menggunakan Many-to-One model.
2.One-to-One Model
One-to-One model memetakan setiap user thread ke kernel thread. Ia menyediakan lebih banyak concurrency dibandingkan Many-to-One model. Keuntungannya sama dengan keuntungan kernel thread. Kelemahannya model ini adalah setiap pembuatan user thread membutuhkan pembuatan kernel thread. Karena pembuatan thread bisa menurunkan performa dari sebuah aplikasi maka implmentasi dari model ini membatasi jumlah thread yang dibatasi oleh sistem. Contoh sistem operasi yang mendukung One-to-One model adalah Windows NT dan OS/2.
3.Many-to-Many Model
Many-to-many model multiplexes banyak user-level thread ke kernel thread yang jumlahnya lebih kecil atau sama banyaknya dengan user-level thread. Jumlah kernel thread bisa spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengijinkan developer ntuk membuat user thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang bisa dijadwal oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi developer harus hati-hati untuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi( dalam beberapa hal, developer hanya bisa membuat thread dalam jumlah yang terbatas ). Many-to-Many model tidak menderita kelemahan dari 2 model di atas. Developer bisa membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan bisa bejalan secara pararel pada multiprocessor . Dan juga ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.

Thread Libraries
Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread:
a.Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka,maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.
b.Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.

Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32.

Pthreads
Pthreads merujuk kepada POSIX standard( IEEE 1003.1 c ) mendefinisikan sebuah API untuk pembuatan thread dan sinkronisasi. Pthreads adalah spesifikasi untuk thread dan bukan merupakan suatu implementasi. Desainer sistem operasi boleh mengimplementasikan spesifikasi tersebut dalam berbagai cara yang mereka inginkan. Secara umum Libraries yang mengimplementasikan Pthreads dilarang pada sistem berbasis UNIX seperti Solaris 2. Sistem operasi Windows secara umum belum mendukung Pthreads, walaupun versi shareware -nya sudah ada di domain publik.

Win32 Threads
Teknik menciptakan thread menggunakan Win32 sama dengan teknik pthreads.
Threads yang diciptakan didalam Win32 API menggunakan fungsi CreateThread0 dan hanya seperti di set Pthreads-a dari atribut-atribut diberikan kepada fungsi. Atribut-atribut ini termasuk kedalam informasi keamanan, ukuran stack, dan bendera dimana dapat di set untuk menandai jika thread dikarantina.

Java Threads
Sistem operasi mendukung thread pada tingkat kernel atau tingkat user . Java merupakan salah satu dari sejumlah kecil bahasa pemrograman yang mendukung thread di tingkat bahasa untuk pembuatan dan manajemen thread. Karena thread dalam Java diatur oleh Java Virtual Machine (JVM), tidak dengan user-level library ataupun kernel, sulit mengelompokkan thread di Java apakah di tingkat user atau kernel.
Setiap program dalam Java memiliki sedikitnya sebuah thread yaitu main yang merupakan single-thread tersendiri di JVM. Java juga menyediakan perintah untuk membuat dan modifikasi thread tambahan sesuai kebutuhan di dalam program.
Keunggulan Java Threads adalah:
JVM menggunakan prioritas preemptive berdasarkan algoritma penjadwalan
Semua threads di Java mempunyai prioritas. Prioritas tertinggi dijadualkan untuk dieksekusi oleh JVM
Jika ada 2 thread yang prioritasnya sama, digunakan algoritma First In First Out (FIFO)

The JVM and Host Operating System
Implementasi umum dari JVM adalah di atas sebuah host operating system. Hal ini memungkinkan JVM untuk menyembunyikan implementasi detail dari sistem operasi tempat JVM dijalankan dan menyediakan lingkungan abstrak dan konsisten yang memungkinkan program-program Java untuk beroperasi di atas platform apa pun yang mendukung JVM. Spesifikasi untuk JVM tidak mengindikasikan bagaimana thread-thread Java dipetakan ke sistem operasi tempat JVM dijalankan, melainkan menyerahkan keputusan tersebut kepada implementasi tertentu dari JVM. Windows 95/98/NT/2000 menggunakan model One-to-One, sehingga setiap thread Java untuk JVM pada sistem operasi tersebut dipetakan kepada sebuah kernel thread. Solaris 2 awalnya mengimplementasikan JVM menggunakan model Many-to-One (disebut Green Threads). Akan tetapi, sejak JVM versi 1.1 dengan Solaris 2.6, mulai diimplementasikan menggunakan model Many-to-Many.

Threading Issues
The fork() and exec() System Calls
•Bila sebuah thread di program memanggil fork() maka ada dua skenario yang bisa terjadi :
– Semua thread akan diduplikasi.
– Hanya thread yang memanggil fork() yang akan didupliakasi.
•Jika exec() dipanggil langsung setelah fork(), maka duplikasi seluruh thread tidak dibutuhkan krn exec sdh mengganti seluruh proses
•Jika exec() tidak dipanggil, maka duplikasi thread harus dilakukan

Thread cancellation adalah sebuah tugas untuk memberhentikan thread sebelum thread tersebut selesai.
– Contoh: JVM akan mematikan seluruh thread sblm mati
Thread yang akan diberhentikan disebut target thread.

Dua skenario thread cancellationn :
•Asynchronous cancellation : satu thread memberhentikan target thread seketika itu juga.
•Deferred cancellation : target thread secara periodik dapat mengecek apakah ia harus berhenti, skenario ini memberi kesempatan kepada target thread untuk memberhentikan dirinya sendiri.

Signal Handling
Sebuah sinyal digunakan di sistem UNIX untuk notify sebuah proses kalau suatu peristiwa telah terjadi. Sebuah sinyal bisa diterima secara synchronous atau asynchronous tergantung dari sumber dan alasan kenapa peristiwa itu memberi sinyal.

Semua sinyal( asynchronous dan synchronous ) mengikuti pola yang sama :
•Sebuah sinyal dimunculkan oleh kejadian dari suatu persitiwa.
•Sinyal yang dimunculkan tersebut dikirim ke proses.
•Sesudah dikirim, sinyal tersebut harus ditangani.

Contoh dari sinyal synchronous adalah ketika suatu proses melakukan pengaksesan memori secarai ilegal atau pembagian dengan nol, sinyal dimunculkan dan dikirim ke proses yang melakukan operasi tersebut. Contoh dari sinyal asynchronous misalnya kita mengirimkan sinyal untuk mematikan proses dengan keyboard( alt-f4 ) maka sinyal asynchronous dikirim ke proses tersebut. Jadi ketika suatu sinyal dimunculkan oleh peristiwa diluar proses yang sedang berjalan maka proses tersebut menerima sinyal tersebut secara asynchronous .

Setiap sinyal bisa ditangani oleh salah satu dari 2 penerima sinyal :
•Penerima sinyal yang merupakan set awal dari sistem operasi.
•Penerima sinyal yang didefinisikan sendiri ole user.

Penanganan sinyal pada program yang hanya memakai thread tunggal cukup mudah yaitu hanya dengan mengrimkan sinyal ke prosesnya. Tetapi mengirimkan sinyal lebih rumit pada program yang multithreading , karena sebuah proses bisa memiliki beberapa thread.

Secara umum ada 4 pilihan kemana sinyal harus dikirim :
•Mengirimkan sinyal ke thread yang dituju oleh sinyal tersebut.
•Mengirimkan sinyal ke setiap thread pada proses tersebut.
•Mengirimkan sinyal ke thread tertentu dalam proses.
•Menugaskan thread khusus untuk menerima semua sinyal yang ditujukan pada proses.

Cara untuk mengirimkan sebuah sinyal tergantung dari tipe sinyal yang dimunculkan. Sebagai contoh sinyal synchronous perlu dikirimkan ke thread yang memunculkan sinyal tersebut bukan thread lain pada proses tersebut. Tetapi situasi dengan sinyal asynchronous menjadi tidak jelas. Beberapa sinyal asynchronous seperti sinyal yang berfungsi untuk mematikan proses ( contoh : alt-f4 ) harus dikirim ke semua thread. Beberapa versi UNIX yang multithreading mengijinkan thread menerima sinyal yang akan ia terima dan menolak sinyal yang akan ia tolak. Karena itu sinyal asynchronouns hanya dikirimkan ke thread yang tidak memblok sinyal tersebut. Solaris 2 mengimplementasikan pilihan ke-4 untuk menangani sinyal. Windows 2000 tidak menyediakan fasilitas untuk mendukung sinyal, sebagai gantinya Windows 2000 menggunakan asynchronous procedure calls( APCs ) . Fasilitas APC memperbolehkan user thread untuk memanggil fungsi tertentu ketika user thread menerima notifikasi peristiwa tertentu.

Thread Pools
Pada web server yang multithreading ada 2 masalah yang timbul :
•Ukuran waktu yang diperlukan untuk menciptakan thread untuk melayani permintaan yang diajukan terlebih pada kenyataannya thread dibuang ketika ia seketika sesudah ia menyelesaikan tugasnya.
•Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.

Solusinya adalah dengan penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools , dimana mereka duduk diam dan menunggu untuk bekerja. Jadi ketika server menerima permintaan maka maka ia akan membangunkan thread dari pool dan jika threadnya tersedia maka permintaan tersebut akan dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada 1 thread yang bebas.
Keuntungan thread pool :
•Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat.
•Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini pentingpada sistem yang tidak bisa mendukung banyak thread yang berjalan secara concurrent .

Jumlah thread dalam pool bisa tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klien yang concurrent .

Thread-Specific Data
Thread yang dimiliki oleh suatu proses memang berbagi data tetapi setiap thread mungkin membutuhkan duplikat dari data tertentu untuk dirinya sendiri dalam keadaan tertentu. Data ini disebut thread -specific data.

Scheduler Activations
Satu rencana untuk komunikasi antara user dengan thread library dikenal sebagai Scheduler Activations( pengaktifan jadwal).

Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut.

Untuk menjadwalkan thread, sistem dengan model multithreading many to many atau many to one menggunakan:
a.Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.
b.System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel).

Operating-System Examples
Windows XP Threads
Windows XP menerapkan Win 32 API yaitu primer API antarmuka untuk sistem operasi microsoft (Windows 95, 98, NT, 2000 dan XP). Suatu aplikasi Windows XP dijalankan sebagai suatu proses yang terpisah, danmasing-masing proses boleh berisi satu atau lebih thread. Windows XP menggunakan model pemetaan one-to-one yang menggambarkan tingkatan pengguna kepada satu kernel yang dihubungkan oleh thread, setiap thread dapat melakukan proses untuk mengakses alamat dan ruang.

Komponen-komponen yang umum pada suatu thread meliputi :
a.Suatu thread ID yang unik untuk mengidentifikasi thread.
b.Sebuah register merepesentasikan status dari prosessor.
c.Seorang pengguna stack, bekerja ketika thread sedang berjalan didalam mode pengguna.
d.Suatu kawasan stack yang digunakan oleh run-time library dan dinamic link.

Set register, stacks, dan private storage dikenal dengan konteks dari thread. Struktur dari data primer dari suatu thread meliputi :
• ETHREAD—executive thread block
• KTHREAD—kernel thread block
• TEB—thread environment block

Linux Threads
Thread dalam Linux dianggap sebagai task , seperti halnya proses. Linux tidak mendukung multithreading, struktur data yang terpisah, atau pun kernel routines .

Linux menyediakan dua macam system call , yaitu fork dan clone. fork memiliki fungsi asli untuk menduplikasi proses. clone memiliki sifat yang mirip dengan fork yaitu sama-sama membuat duplikat dari proses pemanggilnya. Namun demikian, selain membuat proses baru yang terpisah dari proses pemanggilnya, clone juga mengizinkan terjadinya pembagian ruang alamat (address space) antara proses anak (child process) dengan proses pemanggilnya (parent process) .

Setiap proses memiliki struktur data yang unik. Namun demikian, setiap proses di Linux hanya menyimpan pointer-pointer ke struk tur data lainnya dimana instruksi disimpan, daripada harus menyimpan instruksi ke setiap struktur data yang ada. Ketika fork dieksekusi, sebuah proses baru dibuat bersamaan dengan menyalin struktur data dari parent process . Ketika clone dieksekusi, sebuah proses baru dibuat, namun proses tersebut tidak menyalin struktur data dari parent process -nya. Proses baru tersebut hanya menyimpan pointer ke struktur data proses pemanggilnya itu. Oleh karena itu, child process dapat berbagi ruang alamat dan sumber daya dengan parent process -nya. Satu set flag digunakan untuk mengindikasikan seberapa banyak kedua proses tersebut dapat berbagi. Jika tidak ada flag yang ditandai, maka tidak ada sharing dan clone berlaku sebagai fork. Jika kelima flag ditandai, maka child process harus berbagi semuanya dengan parent process .

Jumat, 06 Maret 2009

TUGAS4! Penjelasan tentang istilah-istilah pada no.3 dengan sebuah Sistem Operasi


Istilah-istilah seperti Computer User, Apllication Program, Shell, Compiler, System Library dan System Cell tidak dapat dipisahkan satu sama lain dan erat kaitannya dengan Sistem Operasi sehingga Computer Hardware bisa dipakai oleh user

TUGAS3! Istilah - Istilah.....

COMPUTER USER
USER
Pengguna. Biasanya ditujukan kepada pengguna suatu sistem yang umumnya adalah manusia. Misalnya pengguna komputer.
Istilah dalam dunia komputer untuk menyebut seseorang yang menggunakan suatu sistem komputer, program, atau stasiun/terminal dalam jaringan
COMPUTER
Alat bantu bagi manusia untuk menyelesaikan pekerjaannya. Perangkat elektronik yang dapat dipakai untuk mengolah data dengan perantaraan sekumpulan program dan mampu memberikan informasi dari hasil pengolahan tersebut. Dalam bahasa indonesia sering ditulis dengan komputer. Istilah Computer berasal dari kata Compute, yang berarti menghitung. Artinya, setiap proses yang dilaksanakan oleh komputer merupakan proses matematika hitungan. Jadi apapun yang dilakukan oleh komputer, baik penampakan pada layar monitor, suara, gambar, dll. diolah sedemikian rupa dari perhitungan secara elektronik. Komputer adalah hasil dari kemajuan teknologi elektronika dan informatika yang berfungsi sebagai alat bantu untuk menulis, menggambar, menyunting gambar atau foto, membuat animasi, mengoperasikan program analisis ilmiah, simulasi dan untuk kontrol peralatan. Bentuk komputer yang dulu cukup besar untuk
mengoperasikan sebuah program, sekarang berbentuk kecil dengan kemampuan mengoperasikan program yang beragam. Perlengkapan elektronik (hardware) dan program (perangkat lunak/software) telah menjadikan sebuah komputer menjadi benda yang berguna. Sebuah komputer yang hanya memiliki perlengkapan elektronik saja atau software saja tidak akan berfungsi. Dengan ada keduanya maka komputer dapat berfungsi menjadi alat yang berguna. Sistem komputer juga dapat dikembangkan
untuk mengontrol peralatan mesin produksi ataupun peralatan rumah tangga. Dengan menambah rangkaian elektronik buatannya, maka komputer biasa bisa dipergunakan untuk mengendalikan peralatan-peralatan industri dan rumah tangga.
http://www.total.or.id/info.php?kk=computer
http://www.total.or.id/info.php?kk=user

APLICATION PROGRAM
Program yang ditulis untuk melaksanakan tugas khusus dari pengguna.
http://www.total.or.id/info.php?kk=Program%20aplikasi

SHELL
Program yang menerima masukan berupa perintah ke sistem, dan menterjemahkan menjadi aktivitas sistem komputer. Shell dapat berupa:
- text-based shell,
Interaksi yang digunakan antara user dengan sistem operasi adalah berupa baris
perintah, dimana user mengetikan instruksinya melalui keyboard. Contoh
penggunaan shell ini diterapkan pada sistem operasi MS-DOS dan UNIX, yaitu
dengan menampilkan prompt sebelum tempat instruksi dimasukkan oleh user.
- GUI-based shell.
Interaksi dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan
dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem
operasi Microsoft Windows.
http://www.total.or.id/info.php?kk=shell

COMPILER
Adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda.
http://www.total.or.id/info.php?kk=Compiler

SYSTEM LIBRARY
Merupakan kumpulan dari subrutin, fungsi, prosedur, atau modul, yang disimpan pada satu atau beberapa file, biasanya digunakan untuk proses kompilasi pada pemrograman
http://www.total.or.id/info.php?kk=library

SYSTEM CALL
Sistem call merupakan interface antara proses dengan OS yang tersedia sebagai instruksi bahasa assembly
5 Kategori Sistem Call :
Process control
File manipulation
Device manipulation
Information maintenance
Communication
http://one.indoskripsi.com/content/teori-sistem-operasi

TUGAS2! Pengertian Istilah BIOS, BOOTSTRAP, BOOTLOADER, dan INIT

BIOS
Singkatan dari Basic Input Output System. Suatu program kecil yang terletak di chip motherboard berguna untuk mengatur dan mengontrol hardware komputer sebelum sistem operasi diload.
Disingkat dengan BIOS. Suatu program di ROM yang menghubungkan perangkat keras dengan sistem operasi.
BIOS adalah satu cip yang mempunyai data mengenai keperluan proses bagi proses
komputer. Contoh : Harddisk, CD, CPU dan RAM perlu dikenal terlebih dahulu sebelum data tersebut disimpan pad BIOS. Kerja-kerja ini akan dilakukan oleh BIOS.
http://www.total.or.id/info.php?kk=Basic%20Input%20Output%20System

BOOTSTRAP
Boot atau booting. Dalam perangkat keras berarti proses mengaktifkan komputer sampai diambil alih oleh sistem operasi. Proses boot ini dikenal dengan dua cara, yaitu warm boot dan cold boot.
- Warm boot, berarti mengaktifkan kembali, tanpa harus dimatikan terlebih dahulu,
misalnya dengan menekan tombol reset, atau memencet sekaligus tombol CTRL+ALT+DEL
pada sistem operasi Disk Operating System (DOS). Warmboot merupakan salah satu
cara boot pada komputer. Me-restart komputer dengan menekan Ctrl+Alt+Del atau
melakukan shutdown dan restart. Booting panas ini dapat dideteksi dan dimanipulasi
oleh virus.
- Coldboot
Boot dingin, merupakan salah satu cara boot pada komputer. Cold boot adalah
menghidupkan komputer dengan menekan tombol switch power. Booting dingin
mendaur ulang akses memori acak komputer sekaligus juga menghapus virus-virus
yang mungkin berada dalam memori sebelumnya.
http://www.total.or.id/info.php?kk=bootstrap

BOOTLOADER
Bootloader adalah aplikasi pertama yang dijalankan bios sesaat setelah booting. Bootloader akan meload kernel yang menjalankan sistem operasi.
Dalam beberapa sistem, terdapat bootloader yang berbeda. Bootloader Windows, berbeda dengan Bootloader Linux, Berbeda juga dengan bootloader BSD.
http://linuxindo.web.id/2008/02/25/a-complete-grub-manual/

INIT
init adalah proses yang pertama kali dipanggil ketika linux di boot
dari init, dia akan memanggil file2 lain yang bertugas untuk menjalankan service, mounting filesystem, dll
http://forum.linux.or.id/viewtopic.php?f=41&t=5087

TUGAS1! PROSES BOOTING LINUX

1.  PC BOOT DAN LINUX INIT PROCESS
   Pada praktikum ini membahas PC boot process dan inisialisasi sistem operasi
   Linux pada aplikasi background (daemons/service).
   1.BIOS : Basic Input/Output System adalah antar muka level terendah antara
      komputer dan peripheral. Bios melakukan pemeriksaan pada memori dan mencari
      instruksi pada Master Boot Record (MBR) pada floppy atau hard drive.
  2. MBR menunjuk ke boot loader (LILO : Linux boot loader)
  3. LILO akan menanyakan label sistem operasi yang akan mengidentifikasi kernel
      yang dijalankan. Kernel akan menjalankan sistem operasi Linux.
  4. Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init. Init
      adalah root/parent dari semua proses yang dijalankan pada Linux
  5. Proses pertama yang memulai init adalah skrip /etc/rc.d/rc/sysinit.
  6. Berdasarkan run-level yang ditentukan, skrip dieksekusi untuk memulai proses
      tertentu untuk menjalankan sistem dan membuat sistem lebih fungsional.

2. LINUX INIT PROCESS
    Proses init adalah langkah terakhir pada prosedur boot dan diidentifikasi sebagai
    process ide “1”. Init bertanggung-jawab untuk memulai proses sistem seperti yang
   ditentukan pada file /etc/inittab. Init biasanya memulai “getty” yang menunggu
   layar login yang menandakan proses shell seorang user. Pada saat shutdown, init
   mengontrol urutan dan proses untu shutdown. Proses init tidak pernah shut down.
   Proses init merupakan proses user dan bukan proses sistem kernel meskipun dijalankan
   sebagai root.
   Proses sistem :
   Process ID   Description
      0                The Scheduler
      1                The init process
      2                kflushd
      3                kupdate
      4                kpiod
      5                kswapd
      6                mdrecoveryd

3. PROSEDUR BOOT
    Linux mempunyai 6 state operasi dimana “0” adalah shutdown state dan “3”
    keatas adalah operasional penuh dengan semua proses yang esensial dijalankan untuk
    interaksi user. Berdasarkan sistem boot, Linux sistem akan melakukan :
    · Mengeksekusi program /sbin/init yang memulai semua proses-proses lain.
      Program ini akan diberikan ke mesin oleh proses awal yang didefinisikan pada file
      /etc/inittab
    · Komputer akan di-booting ke runlevel yang didefinisikan oleh baris initdefault
      pada file /etc/inittab.
      id:5:initdefault:
      Pada contoh diatas, runlevel ”5” dipilih. Runlevel “5” akan melakukan booting
      sistem pada mode GUI menggunakan XDM dan X-Windows. Booting ke runlevel
      ”3” (biasanya disebut mode console) biasanya digunakan oleh server yang tidak
      memerlukan GUI.
      File inittab mengijinkan menggunakan kunci (Ctrl-Alt-Del), memulai dial ke
      koneksi internet dll.
    · Satu dari proses-proses yang dimulai oleh init adalah /sbin/rc. Skrip ini
      menjalankan sekumpulan skrip pada direktory /etc/rc.d/rc0.d/,
      /etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan seterusnya.
    · Skrip pada direktory tersebut dieksekusi pada setiap boot state dari oeprasi sampai
      menjadi operasi yang lengkap. Skrip mulai dengan S yang merupakan skrip startup
      sedangkan skrip yang dimulai dengan K menandakan skrip shutdown (kill). Angka
      yang mengikuti huruf tersebut merupakan urutan eksekusi (terendah ke tertinggi)

          Jika Anda menginstall semua daemons (proses background), Linux akan
      menjalankan semua, menyebabkan mesin lebih lambar. Kita bisa memulai (start) /
      menghentikan (stop) daemon secara individual dengan mengubah direktory :
      /etc/rc.d/init.d (Redhat)
      dan diikuti perintah pilihan start, stop, status, restart atau reload, misalnya untuk stop
      web server :
      cd /etc/rc.d/init.d
      httpd stop
      Gunakan perintah ps –aux untuk melihat semua proses pada mesin Anda.

4. LINUX RUN LEVEL
    Runlevel “3” akan booting dalam mode teks atau console dan “5” akan booting
    dalam mode graphical login.
    State pada Runlevel / Halt :
    0      shutdown (Do NOT set initdefault to this)
    1      Single user mode
    2      Multiuser, without NFS (The same as 3, if you do not have networking)
    3      Default text start. Full multiuser
    4      unused
    5      X11
    6      Reboot (Do NOT set initdefault to this)

          Anda bila melakukan perpindahan level init dengan menggunakan perintah init
    dengan runlevel tertentu. Gunakan perintah ”init#” dimana # adalah satu dari 0, 1, 3,
    5, 6. Dapat juga menggunakan perintah telinit.
          Skrip untuk run level yang diberikan dijalankan selama boot dan shutdown.
    Skrip ditemukan pada direktory /etc/rc.d/rc#.d/ dimana simbol # menandakan
    run level, misalnya run level ”3” akan menjalankan semua skrip pada direktory
    /etc/rc.d/rc3.d/ yang dimulai dengan huruf ”S” selama sistem boot. Skrip ini
    akan menjalankan proses background yang dibutuhkan oleh sistem. Pada saat shutdown
    semua skrip pada direktory yang dimulai dengan huruf ”K” akan dieksekusi. Sistem ini
    menyediakan urutan sistem ke state yang berbeda untuk mode produksi dan
    maintenance.
    TIP : Daftar state dan

5. AKTIVASI SKRIP INIT
    Menambah suatu skrip ke direktory /etc/rc.d/rc#.d/ baik prefik S atau K,
    menambah skrip ke proses boot atau shutdown. Skrip berjalan dengan urutan numerik.
    S20abc dijalankan sebelum S30xyz. Keberadaan prosedur boot dan shutdown ini
    merupakan kekuatan sistem operasi UNIX. Inisialisasi proses dengan urutan tertentu
    dapat dikoordinasikan untuk proses dependent. Shutdown dari proses biasanya
    dibutuhkan untuk program yang kompleks misalnya database. Proses individual
    dapatkemunginan dimonitore, shutdown dan start pada sembarang waktu menggunakan
    skrip tersebut. Misalnya /etc/rc.d/rc2.d/httpd start. Mofidikasi start, stop
    atau status kemungkinan digunakan.
    
    Skrip start / stop /status berada pada direktory /etc/rc.d/init.d/ adalah
    suatu link ke direktory sebenarnya. Link tersebut kemungkinan dibuat atau dihapus
    menggunakan perintah chkconfig, misalnya chkconfig –del httpd akan menghapus web server     dari proses startup dan shutdown. Sebaliknnya chkconfig –
    add httpd akan menambahke ke proses startup/shutdown dengan membangkitkan
    link dari skrip pada /etc/rc.d/init.d/ ke direktory /etc/rc.d/rc#.d/ yang
    sebenarnya. Untuk informasi lebih lanjut gunakan halaman manual LINUX untuk init.
    
    Pada Red Hat 9.0, GUI tool /usr/bin/redhat-config-services dapat membantu
    untuk mengkonfigurasi service untuk start dan menyediakan deskripsi untuk setiap
    service yang tersedia. Service dasar meliputi :
    Sistem Service      Deskripsi
    anacron                  Run jobs which were scheduled for execution while computer was
    turned off.             Catch up with system duties.
    arpwatch               Keeps track of IP address to MAC address pairings
    atd                          Run scheduled batch jobs.
    autofs                     automounts file systems on demand.
    crond                     Job sheduler for periodic tasks
    gpm                       Allows console terminal cut and paste. (Non X-window consoles)
    https                     Apache web server.
    iptables                Firewall rules interface to kernel
    keytable               Loads selected keyboard map as set in /etc/sysconfig/keyboard
    kudzu                   New harware probe/detection during system boot.
    lpd                        Network printer services
    microcode_ctl     Uploads microcode to kernel and ultimately to the Intle Pentium
                                  processor. (Hardware specific.)
    mysqld                 Database services
    named DNS         name services (Bind)
    network               Active network services during system boot.
    nfs                         Network file system. Unix file sharing services.
    nscd                      Password and group lookup services for use with network
                                  authentication (NIS, LDAP,...).
    ntpd                     Network Time Protocol time synchronization services.
    random                Random number generation tool used for encryprion
    rawdevices          Enables raw IO. Useful for Oracle and software which utilizes this
                                  for high speed disk access.
    smb                      SAMBA: MS/Windows PC file sharing services
    syslog                   System log file facility.
    ypbind                 NIS file sharing/authentication infrastructure service.
    yppasswd            NIS file sharing/authentication infrastructure service.
    xfs                        X-Windows font server.

    Service utama yang direkomendasikan adalah : anacron, ard, autofs,
    crond, gpm, iptables, keytable, kudzu, microcode_ctl (Intel32
    hardware only), network, random. syslog
    Graphics Workstation - add: xfs
    File Server for PC clients - add: smb
    Print Server - add: lpd atau cups
    File server Linux/Unix clients - add: nfs, netfs, nfslock, portmap, ypbind,
    yppasswd, ypserv
    Web Server - add: httpd, tux, xinetdi, sshd

6. SKRIP INIT
    Skrip init berada pada direktory /etc/rc.d/script-name. Gunakan
    perintah chkconfig untuk membangkitkan soft link ke direktory yang sebenarnya
    untuk beberapa run level.
    
    #!/bin/sh
    #
    # Startup script for program
    #
    # chkconfig: 345 85 15 - This statement tells the chkconfig
    command how to add or delete this process to the boot process
    # description: Description of program
    # processname: process-name
    # pidfile: /var/run/process-name.pid

    # Source function library. This creates the operating
    environment for the process to be started
     . /etc/rc.d/init.d/functions

    case "$1" in
       start)
                   echo -n "Starting process-name: "
                  daemon process-name -Starts only one process of a
    given name.
                 echo
                 touch /var/lock/subsys/process-name
                 ;;
      stop)
                echo -n "Shutting down process-name: "
                killproc process-name
                echo
                rm -f /var/lock/subsys/process-name
                rm -f /var/run/process-name.pid - Only if process
    generates this file
                ;;
      status)
                status process-name
                ;;
      restart)
               $0 stop
               $0 start
               ;;
      reload)
               echo -n "Reloading process-name: "
               killproc process-name -HUP
               echo
               ;;
      *)
              echo "Usage: $0 {start|stop|restart|reload|status}"
      exit 1
    esac
   
    exit 0

    Fungsi skrip bash daemon, killproc dan status dapat ditemukan dalam
    skrip /etc/rc.d/functions.
    Skrip harus dieksekusi untuk menjalankannya (chmod +x script-name)
    Misalnya skrip digunakan untuk memulai dan menghentikan proses seperti
          /etc/rc.d/init.d/httpd restart
          /etc/rc.d/init.d/httpd stop
          /etc/rc.d/init.d/httpd start
    atau menggunakan perintah service :
          service httpd restart
          service httpd stop
          service httpd start

    Dua baris dalam skrip yang memungkinkan perintah chkconfig mengontrol
    skrip untuk proses boot dan shutdown adalah
          # chkconfig: 345 85 15
          # description: Description of program
    Bila menambahkan ke proses booting menggunakan perintah "chkconfig --
    add script-name" awal order/priority akan diset 80 sedangkan stop/shutdown diset
    15. Proses akan ditambahkan ke runlevel 3, 4, dan 5. Hal ini dapat dilakukan dengan
    membangkitkan link dari lokasi skrip (/etc/rc.d/init.d/) ke direktori run level :
    /etc/rc.d/rc#.d/. Nama file dalam direktory run level akan menunjukkan apa yang
    digunakan untuk boot (mulai dengan “S”) atau shutdown (mulai dengan “K”).

7. CHKCONFIG
     Perintah chkconfig membangkitkan dan memutuskan link antara direktori
    /etc/rc.d/init.d/ dan direktori run level /etc/rc.d/rc[0-6].d/ untuk
    mengontrol inisialisasi proses boot dan proses shutdown.
          chkconfig [--level ] on | off | reset >
          chkconfig --list
          chkconfig --list
          chkconfig --add
          chkconfig --del
          chkconfig --level 0123456 off
    Contoh :
    chkconfig --level 345 httpd on
          - apache diberikan 3, 4 dan 5.
    chkconfig --add httpd
          - memulai web server daemon pada system boot.
    chkconfig --del sendmail
          - Tidak memulai sendmail daemon pada system boot.
    chkconfig --list ]
          - Daftar semua servis dan level init.
    chkconfig --list | grep on
          - Daftar semua service yang dimulai pada sistem boot

http://smk.adisanggoro.or.id/download/E-Book/gunungkidul/TEORI_BAHASA%20C/PraktikumOS10.pdf

Jumat, 27 Februari 2009

Kuliah Lagi? Siapa Takut!

Dunia kerja dapat membuat pemikiran orang berubah 180 derajat. Begitu juga cara pandang mereka terhadap pendidikan. Banyak para pekerja muda yang kerap mengorbankan kuliah demi pekerjaan. Alasan utamanya adalah waktu. Sebenarnya semua kembali pada diri kita masing-masing. Ingin kembali berkuliah, simak tips berikut ini:
  • Jangan pernah takut untuk mengambil kesempatan. Jika segalanya serba memungkinkan Anda untuk kembali berkuliah kenapa tidak. Yang Anda butuhkan adalah manajemen waktu yang tepat. Berada di dunia kerja yang tak sebentar telah membiasakan Anda dengan rutinitas yang ada, cari celah dan sedikit lagi usaha.
  • Biasakan memisahkan pikiran antara pekerjaan dan kuliah. Salah satu risiko terbesar kembali ke bangku kuliah adalah waktu, pikiran dan tenaga Anda kini harus dicurahkan pada 2 hal yang berbeda. Syukur-syukur bidang pekerjaan dan mata kuliah Anda berhubungan. Saat mengerjakan tugas kuliah konsentrasi dan jangan terganggu dengan pekerjaan begitu pula sebaliknya. Selesaikan satu persatu hingga akan lebih fokus dan mudah.
  • Pisahkan juga waktu untuk pekerjaan dan kuliah. Demi mencapai nilai maksimal dan hasil kerja yang oke sebaiknya Anda tepat waktu ke kantor dan kuliah. Jangan terlalu sering membuang waktu demi kegiatan yang tidak diperlukan. Ingat, ini adalah langkah menuju masa depan!
  • Buat prioritas. Apa saja yang harus dan tidak perlu Anda kerjakan. Kurangi hang out atau menghabiskan waktu untuk hal yang tak begitu penting. Sesekali di akhir pekan boleh saja.
  • Stop mengeluh. Lelah dan pusing pasti ada masanya menghampiri Anda. Namun jika Anda telah konsisten dengan segala konsekuensi dan keuntungan yang didapatkan, sebaiknya stop mengeluh dan mulai bertindak.

Cetak menCetak.....


...Treng trong treng trong...(bunyi henpon)
"Haloo.....dit, kemana aja? Bisa bantuin bikin idcard ga? Tapi cuma 25 buah...bisa beres seminggu ga ya?"
....Tiiiiiiiiiiiittttttttt...............(bunyi sms)
"bisa tolong bikin kop surat, amplop, mug dll......tp butuhnya cm dikit euy, gmn ya?"

pengen sih ngebantu...tp quantity nya dikit bgt, akhirnya pergi deh ke perusahaan percetakan di daerah pagarsih bandung, dan hasilnya pada intinya semua menolak karna quantitynya sedikit....
akhirnya diberdayakanlah semua temen-temen yang mau ngebantu dan alhamdulillah beres.
-----------------------
So buat temen-temen yang punya orderan ambil aja lumayanlah buat sekedar beli rumah tipe estate :)), klo pun susah sini aja gabung ke kamanagayaCorp==>khusus buat segala sesuatu yg kuantitynya sedikit, pengen cepet beres n kualitasnya bagus.....
===>Just check at...http://www.geocities.com/kamanagaya