Thursday, April 2, 2009

Alur (Threads)

  • Tinjauan
  • Model Multi-alur (Multithreading Models)
  • Persoalan Alur Data
  • Contoh Sistem Operasi
  • Alur Data Windows XP
  • Alur Data Linux
Sasaran
  • Untuk memperkenalkan gagasan dari thread-mendasar unit CPU pemanfaatan yang membentuk dasar dari sistem komputer multithreaded
  • Untuk mendiskusikan API untuk Pthreads, Win32, dan Java thread perpustakaan
  • Untuk menguji persoalan yang berhubungan dengan pemrograman multithreading
Proses Single dan Multithreading



Manfaat
  • Responsif
  • Pembagian Sumberdaya
  • Ekonomis
  • Skalabilitas
Pemrograman Multicore
  • Sistem Multicore menitikberatkan pada progammer,tantangan-tantangannya sebagai berikut:
  1. Pembagian aktivitas
  2. Keseimbangan
  3. Pemisahan Data
  4. Ketergantungan Data
  5. Pengetesan dan Debugging
Arsitektur Server Multithread


Eksekusi yang bersamaan pada Sistem Single-core


Eksekusi secara Paralel pada Sistem Multi-core


Alur Pengguna
  • Manajemen Alur dilakukan oleh user-level thread library
  • Tiga hal utama thread library:
  1. POSIX Pthreads
  2. Win32 threads
  3. Java threads
Alur Kernel
  • Didukung oleh Kernel
  • Contoh
  1. Windows XP/2000
  2. Solaris
  3. Linux
  4. Tru64 UNIX
  5. Mac OS X
Model Multi-threading
  • Banyak ke Satu
  • Satu ke Satu
  • Banyak ke Banyak
Banyak ke Satu
  • Banyak user-level thread dialamatkan ke single kernel thread
  • Contoh
  1. Solaris Green Threads
  2. GNU Portable Threads
Model Banyak ke Satu


Satu ke Satu
  • Tiap-tiap user-level thread dialamatkan ke satu kernel thread
  • Contoh
  1. Windows NT/XP/2000
  2. Linux
  3. Solaris 9 dan versi yang lebih tinggi
Model Satu ke Satu


Model Banyak ke Banyak
  • Mengijinkan banyak user-level thread untuk dapat dialamatkan ke banyak kernel thread
  • Mengijinkan sistem operasi menciptakan sejumlah kernel thread yang mencukupi
  • Solaris prior sampai versi 9
  • Windows NT/2000 dengan paket ThreadFiber

Model Dua Tingkat
  • Sama dengan M:M, kecuali bahwa model ini mengijinkan seorang user thread dapat meloncat ke kernel thread
  • Contoh
  1. IRIX
  2. HP-UX
  3. Tru64 UNIX
  4. Solaris 8 dan versi sebelumnya

Thread Libraries
  • Thread Library menyediakan progammer dengan API untuk menciptakan dan mengatur thread
  • Dua cara utama dalam implementasinya
  1. Library secara keseluruhan berada di dalam ruang user
  2. Library Kernel-Level didukung oleh Sistem Operasi
Pthreads
  • Dapat diberikan sebagai salah satu user-level atau kernel level
  • Standar POSIX(IEEE 1003.1c) API untuk penciptaan thread dan sinkronisasi
  • Tingkah laku API yang spesifik pada thread library, implementasi sampai pengembangan library
  • Biasanya pada sistem operasi UNIX (Solaris, Linux, Mac OS X)
Java Threads
  • Java Thread di manage oleh JVM
  • Umumnya di implementasikan menggunakan model thread yang disediakan oleh SO pokok
  • Java Thread mungkin tercipta oleh :
  1. Perluasan Thread class
  2. Implementasi interface yang dapat dijalankan
Persoalan Threading
  • Berkenaan dengan fork() dan exec() system calls
  • Pembatalan thread pada target thread
  • Pemutusan sinkronisasi atau tertunda
  • Penanganan sinyal
  • Kelompok thread
  • Data spesifik thread
  • Penjadwal aktivasi
Pembatalan Thread
  • Menghentikan thread sebelum thread itu selesai
  • Dua pendekatan umum:
  1. Pembatalan pemutusan sinkronisasi menghentikan target thread secara tiba-tiba
  2. Pembatalan penundaan mengijinkan target thread secara periode mengecek jika itu harus dibatalkan
Penanganan Sinyal
  • Sinyal yang digunakan pada sistem UNIX untuk memberitahukan sebuah proses bahwa event tertentu telah terjadi
  • Pengambil alih Sinyal digunakan untuk memproses sinyal-sinyal
  1. Sinyal digenerasi oleh event tertentu
  2. Sinyal disediakan oleh sebuah proses
  3. Sinyal ditangani
  • Pilihan:
  1. Menyediakan sinyal ke thread untuk menerapkan sinyal yang mana
  2. Menyediakan sinyal ke setiap thread di dalam proses
  3. Menyediakan sinyal ke thread tertentu di dalam proses
  4. Menugaskan sebuah thread yang spesifik untuk menerima semua sinyal untuk proses
Kelompok Thread
  • Menciptakan sejumlah thread ke dalam sebuah kelompok dimana mereka menunggu bekerja
  • Keuntungan
  1. Biasanya sedikit lebih cepat melayani permohonan terhadap thread yang ada daripada menciptakan thread baru
  2. Mengijinkan sejumlah thread di dalam aplikasi untuk dapat meloncat ke sejumlah ukuran kelompok
Thread Data Spesifik
  • Mengijinkan tiap-tiap thread memiliki salinan data
  • Berguna ketika anda tidak memiliki kendali terhadap proses penciptaan thread(contoh:ketika penggunaan kelompok thread)
Penjadwal Aktivasi
  • Model M:M dan Dua Tingkat membutuhkan komunikasi dan pemeliharaan sesuai sejumlah thread kernel yang teralokasi untuk aplikasi
  • Penjadwal aktivasi menyediakan upcalls sebuah mekanisme komunikasi dari kernel ke thread library
  • Komunikasi ini mengijinkan sebuah aplikasi untuk memelihara dan mengkoreksi sejumlah kernel thread
Thread Windows XP
  • Implementasi pengalamatan Satu ke Satu, Kernel level
  • Tiap-tiap thread berisi:
  1. thread ID
  2. register set
  3. memisahkan tumpukan user dan kernel
  4. Area penyimpan data pribadi
  • Register set, tumpukan(stack), dan penyimpan data pribadi dikenal sebagai konteks dari thread
  • Struktur data utama dari thread , diantaranya:
  1. ETHREAD (executive thread block)
  2. KTHREAD (kernel thread block)
  3. TEB (thread environment block)

Thread Linux
  • Linux memberikan istilah thread sebagai tugas daripada diartikan thread
  • Penciptaan thread dilakukan melalui system call clone()
  • clone() mengijinkan sub tugas untuk membagi ruang alamat pada induk tugas (proses)

Wednesday, March 11, 2009

Konsep Dasar Sistem Operasi

1. Tiga Komponen Utama Sebuah Mesin Komputer
a) Hardware
Hardware menyediakan sumber daya computer yang mendasar. Contohnya CPU, memory, I/O device.

b) Operating System
Merupakan sebuah program yang berfungsi mengendalikan serta melakukan koordinasi terhadap penggunaan hardware diantara berbagai macam program aplikasi dan user.

c) User
User terdiri dari manusia sebagai pengguna langsung, mesin computer itu sendiri, dan bisa juga computer lain(bila dalam sebuah jaringan).

2. Tiga Komponen Di Dalam Sebuah CPU
CPU dibagi menjadi 3 bagian utama yaitu, Arithmetic Logic Unit(ALU), Control Unit(CU), dan Internal Memory. Prinsip kerja CPU adalah sebagai berikut :
- Program/instruksi dan data yang diberikan kepada CPU akan disimpan sementara di Internal Memory menunggu untuk diproses.
- Program/instruksi akan diterjemahkan oleh CU.
- Kemudian instruksi dijalankan dengan operasi aritmatika dan logical oleh ALU.
- Setelah instruksi dijalankan maka hasilnya akan dikirim ke peralatan berikutnya. Misalnya monitor.
- Semua aliran informasi/instruksi ini diatur oleh CU.

3. Definisi Sistem Operasi
a) Sistem Operasi merupakan sebuah program yang mengatur penggunaan sumber daya computer secara efisien.
b) Sistem Operasi adalah sebuah program yang mengatur pengeksekusian program lain sehingga tidak terjadi error dan penyalahgunaan computer.
c) Sistem Operasi adalah sebuah program yang dijadikan tempat atau environment bagi program aplikasi.
d) Sistem Operasi adalah sebuah program yang bertujuan memudahkan user dalam berinteraksi dengan mesin computer.

4. Proses Booting Komputer
a) Ketika pertama kali computer menyala, program BIOS berjalan di ROM
b) Kemudian melakukan proses Bootstrap(inisialisasi hardware computer)
c) Setelah itu program Boot Loader berjalan di RAM. Tujuannya untuk mengeksekusi Operating System(jika hanya terdapat satu Operating System) atau memilih Operating System yang akan dieksekusi (jika terdapat lebih dari satu Operating System).
d) Berikutnya dilakukan inisialisasi program-program sistem seperti, service, device driver, init, dll.
e) Terakhir masuk ke prompt Login.

5. Istilah-istilah yang terdapat dalam Operating System
a) Computer User
Yang dimaksud computer user disini adalah end user, programmer selaku pembuat program computer, administrator.

b) Application Program
Adalah sebuah program/instruksi yang dibuat oleh programmer untuk menyelesaikan masalah tertentu. Program ini berjalan di lingkungan Sistem Operasi.

c) Compiler
Sebuah program/instruksi yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi(High Level Language) menjadi bahasa mesin.

d) Computer Library
Semacam reserved word atau kata-kata yang sudah disediakan oleh sebuah program atau bahasa pemrograman.

e) Shell
Dalam istilah computer adalah salah satu jenis program bawaan sistem operasi (seringnya merupakan program yang terpisah dari inti sistem operasi) yang menyediakan komunikasi langsung antara pengguna dan sistem operasi.

f) System Call
Pemrograman yang berhubungan langsung dengan services yang disediakan oleh Sistem Operasi. Biasanya ditulis dalam bahasa pemrograman tingkat tinggi (High Level Language). Sebagian besar diakses oleh program melalui high-level Application Program Interface (API).

g) Operating System Kernel
Dalam ilmu computer, kernel adalah suatu perangkat lunak yang menjadi bagian utama dari suatu sistem operasi. Tugasnya melayani berbagai bermacam program aplikasi untuk mengakses perangkat keras computer 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.

h) Computer Hardware
Segala sumber daya computer yang dapat dilihat secara fisik, hardened.


6. Struktur Sistem Operasi

Thursday, February 19, 2009

Mengendalikan Komputer Jarak Jauh

Mengendalikan Komputer Jarak Jauh

Di era digital sekarang ini, semua hal dapat dilakukan secara remote alias dari jarak jauh. Hal yang paling sederhana adalah ketika anda ingin mengambil uang di mesin ATM, uang yang anda tabung disebuah bank kini dapat anda ambil dimanapun anda berada hanya dengan sebuah kartu digital.

Bagi anda penggemar Film Box Office, tentu anda sangat kagum melihat aksi seorang Hacker pada film Die Hard 4.0. Hacker tersebut dapat mengendalikan seluruh kota mulai dari lampu merah, kamera CCTV dinas lalu lintas, saluran televisi, hingga saluran telepon selular hanya dari sebuah komputer dan Laptop. Mungkinkah hal tersebut dapat terjadi ? Tentu saja film tersebut terlalu hiperbola :P .

Namun apakah tidak mungkin dinas lalu lintas memonitor seluruh kota hanya dari sebuah kantor ? Jawabannya mungkin saja. Ketika anda berkeliling kota Jakarta, sewaktu-waktu anda akan menemukan sebuah kamera CCTV yang berdekatan dengan sebuah antena grid (yang biasa digunakan diwarnet-warnet) yang digantung diatas tiang lampu kota (sayang saya blom sempat memfotonya) . Kamera tersebut akan mengirimkan signal melalui antena menuju kantor dinas lalu lintas (atau polisi ?) sehingga mereka dapat memonitor kota DKI Jakarta secara realtime. Dan apakah yang dapat terjadi ketika ada seseorang yang berhasil menangkap signal dari kamera CCTV tersebut melalui sebuah laptop ? Hmm….

Kembali ke Laptop. Sayapun dalam sehari-hari telah menggunakan jaringan internet dan intranet untuk memonitor bisnis warnet yang saya kelola. Sehingga dimanapun saya berada, baik itu di kampus ataupun sedang ngopi-ngopi di J-Co, saya dapat melihat warnet saya dari jarak jauh hanya melalui sebuah Laptop yang selalu saya tenteng kemana-mana. Aplikasi yang kini saya gunakan untuk mengendalikan komputer warnet adalah Radmin.

Radmin adalah sebuah program Remote Desktop untuk sistem operasi Microsoft Windows. Sebenarnya Windows juga memiliki aplikasi Remote Desktop internal, namun filturnya tidak selengkap Radmin.Berikut adalah langkah-langkah instalasi Radmin pada komputer yang ingin anda kendalikan :

Langkah pertama adalah instalasi program Radmin Server pada komputer yang ingin dikendalikan.


Mulailah instalasi dengan klik tombol Next.

Kemudian klik Radio Button I Accept… lalu Klik Next.

Oke, Sekarang sudah siap untuk menekan tombol Install

Klik tombol finish, instalasi selesai, dilanjutkan konfigurasi.

Untuk memulai konfigurasi, klik tombol Permissions.

Pilihlah Radio Button Radmin security, lalu klik tombol Permission

Setelah itu klik tombol add user untuk memasukan user akses.

Masukan User name dan password yang anda inginkan.

Setelah Radmin user anda terdaftar, klik tombol Allow pada All Access, kemudian Ok.

Setelah konfigurasi selesai, Klik tombol Ok, diikuti klik tombol Exit.

Sampai disini instalasi program Radmin Server pada komputer yang ingin dikendalikan sudah selesai.

Tahap selanjutnya adalah mengkonfigurasi Firewall pada komputer tersebut.

Masuklah kedalam Control Panel melalui Menu Start - Settings - Control Panel.

Berikutnya, Pilihlah Icon Windows Firewall yang berada dalam pilihan Control Panel.

Pada Jendela Windows Firewall Klik pada Tab Exception, dilanjutkan dengan Klik pada Add Port.

Masukanlah pada kotak Nama dengan “radmin” dan pada kotak port number dengan “4899″ , kemudian klik tombol Ok.

Setelah program radmin anda masuk kedalam list exception, klik tombol Ok.

Langkah konfigurasi firewall telah selesai, sekarang kita lanjutkan pada tahap akhir yaitu menginstalasi program Radmin Viewer pada komputer anda.

Downloadlah program Radmin Viewer versi portabel yang disediakan pada situs Radmin, extraklah file tersebut, dan jalankan program Radmin.exe.

Lakukan double click pada aplikasi Radmin.exe

Setelah program terbuka, lakukan konfigurasi awal dengan melakukan klik pada tombol Add New Connection.

Masukan nama PC yang ingin anda kendalikan dari jauh, dan isi juga IP address PC tersebut, kemudian klik tombol Ok.

Setelah semua selesai, double click pada gambar PC yang ingin anda kendalikan.

Masukan User Name dan Password yang telah anda buat sebelumnya.

Kini akses penuh komputer tersebut berada di tangan anda. :) Enjoyed !

Untuk mengendalikan komputer melalui internet, anda wajib memiliki akses internet dengan IP publik seperti yang digunakan Speedy. Dengan melakukan setting Modem pada mode “Bridge” anda dapat mengakses langsung komputer anda dari manapun, selama ada akses internet.