Wednesday, March 30, 2011

Pirate of Silicon Valley - Kisah Apple vs Microsoft

Pirate of Silicon Valley film yang menceritakan perjalanan penting tentang awal dari sebuah peradaban baru. Dua orang jenius yang sangat berpengaruh di dunia teknologi. Steve Jobs dan Bill Gates. Pendiri Apple dan penemu Microsoft.

Film ini membagi 2 segmen cerita tentang kedua tokoh itu hingga nantinya dipertemukan. Awalnya Steve Job digambarkan sangat ambisius dengan ide dan cita-citanya. Bersama rekan-rekannya dia berusaha mewujudkan obsesinya.

Bill Gates juga tidak jauh beda dengan Jobs. Dia terus menggeliat dan berusaha memecahkan kode bahasa komputer menjadi sebuah operating system. Menawarkannya ke berbagai perusahaan-perusahaan besar termasuk IBM.

Hanya saja Jobs lebih dahulu mencapai kesuksesannya. Dia begitu perfeksionis dengan hasil akhir produknya. Dia punya prinsip teknologi itu adalah seni dan para enjiner nya adalah seniman (tidak heran produk-produk apple sangat elegan dan enak di mata).

Persaingan Jobs Vs Gates terus meruncing, termasuk ketika memiliki niat yang sama, "mencuri" teknologi yang sudah diciptakan dan dikumpulkan Xerox. Kegiatan Investigasi dan saling membajak teknologi baru memang satu hal yang sangat diwaspadai dalam dunia bisnis seperti ini.

Jobs, terlihat lebih mengesalkan dengan gaya sengak nya. Gates lebih kalem meski di kepalanya ide busuk juga Selalu ada! Berusaha menusuk dari belakang. Tidak heran Gates berhasil memperdaya Jobs, dengan mencuri ide software dan operating system yang sudah lebih dahulu dikembangkan Apple.

Tuesday, March 29, 2011

Konsep Proses Di Mac OS

Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program ( text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/ metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya.

Keterkaitan hubungan antara proses dengan sistem operasi terlihat dari cara sistem operasi menjalankan/ mengeksekusi proses. Sistem operasi mengeksekusi proses dengan dua cara yaitu batch system yang mengeksekusi jobs dan time-shared system yang mengatur pengeksekusian program pengguna ( user) atau tasks. Bahkan pada sistem pengguna tunggal ( single user) seperti Mac OS, seorang pengguna mampu menjalankan beberapa program pada saat yang sama, seperti Spread Sheet, Web Browser, dan Web Email. Bahkan jika pengguna hanya menggunakan satu program saja pada satu waktu, sistem operasi perlu mendukung program internalnya sendiri, seperti manajemen memori. Dengan kata lain, semua aktivitas tersebut adalah identik sehingga kita menyebutnya ”proses”.

Program itu sendiri bukanlah sebuah proses. Program merupakan sebuah entitas pasif; serupa isi dari sebuah berkas didalam disket. Sedangkan sebuah proses adalah suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi yang selanjutnya akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.

Gambar 10.1. Status Proses


Sebuah proses dapat memiliki tiga status utama yaitu:

1. Running. Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi

2. Waiting. Status yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses M/K.

3. Ready. Status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor

Terdapat dua status tambahan, yaitu saat pembentukan dan terminasi:

1. New. Status yang dimiliki pada saat proses baru saja dibuat

2. Terminated. Status yang dimiliki pada saat proses telah selesai dieksekusi.

Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga kemungkinan bila sebuah proses memiliki status Running:

1. Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.

2. Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.

3. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan M/K) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

Process Control Block

Gambar . Process Control Block

Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block(PCB) – juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 10.2, Process Control Block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:

1. Status Proses. Status new, ready, running, waiting, halted, dan juga banyak lagi.

2. Program Counter . Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.

3. CPU register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks,stack pointer, general-purposes register, ditambah code informationpada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 10.3, Status Proses).

4. Informasi manajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi (lihat Bagian V, Memori).

5. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.

6. Informasi status M/K. Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.

PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Pembentukan Proses

Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui system call create-process yang membentuk proses turunan ( child process) yang dilakukan oleh proses induk ( parent process). Proses turunan tersebut juga mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses. Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti waktu CPU, memori, berkas, atau perangkat M/K. Sumber daya ini dapat diperoleh langsung dari sistem operasi, dari proses induk yang membagi-bagikan sumber daya kepada setiap proses turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang diberikan sistem operasi.

Terminasi Proses

Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir atau diterminasi dengan sengaja oleh proses lain, biasanya proses induk yang melakukan hal ini. Pada saat terminasi. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses yang diterminasi karena selesai melakukan tugasnya, sistem operasi akan memanggil system call exit() sedangkan proses yang diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk melakukan terminasi sengaja pada turunannya. Alasan terminasi tersebut seperti:

1. Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.

2. Task yang ditugaskan kepada turunan tidak lagi diperlukan.

3. Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination.

Kesimpulan

1. Sebuah proses adalah suatu program yang sedang dieksekusi.

2. Proses lebih dari sebuah kode program tetapi juga mencakup program counter, stack, dan sebuah data section.

3. Dalam pengeksekusiannya sebuah proses juga memiliki status yang mencerminkan keadaan dari proses tersebut.

4. Status tersebut mungkin menjadi satu dari lima status berikut: new, ready, running, waiting, atau terminated.

5. Proses direpresentasikan dengan PCB yang menyimpan segala informasi yang berkaitan dengan proses tersebut.

Wednesday, March 23, 2011

Usaha Kreatif - Gerabah dan Keramik di Kasongan


Salah satu sentra industri kerajinan yang selama ini sudah dikenal luas adalah daerah Kasongan Bantul. Daerah Kasongan memang identik dengan kerajinan dalam bentuk keramik dan gerabah, dan merupakan sentra industri kerajinan keramik/ gerabah paling besar di Yogyakarta.

Sebagian besar masyarakat Kasongan memang bermata pencaharian sebagai pengrajin keramik dan telah menghasilkan berbagai macam produk mulai dari dari guci, jambangan, vas bunga, patung hewan, tempat lilin, dll. Pangsa pasar produk keramik yang ada di Kasongan hampir delapan puluh persen luar negeri, antara lain ke Malaysia, Singapura, Korea, Jepang, Amerika Serikat, Belanda, dll.

Dalam perkembangannya Desa Kasongan, yang dulu menjadi tempat produksi, kini berkembang menjadi tempat pemasaran setelah berdiri kios-kios. Para pengrajin kasongan mampu meningkatkan taraf hidup mereka dengan memproduksi bahan mentah menjadi sebuah hasil karya yang bernilai. Dengan kreativitas dan inovatif yang mereka miliki, para pengrajin mampu melakukan perubahan bentuk yang lebih bervariasi dan menarik dengan harga yang bervariatif pula.



source : bisnisukm.com

Tuesday, March 22, 2011

Manajemen Proses di Sistem Operasi

Proses adalah program yang sedang di eksekusi, sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Proses berisi instruksi dan data. program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem.

Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.

Komunikasi antar proses

(Inter Process Communinication / IPC) :

  • Beberapa proses biasanya berkomunikasi dengan proses lainnya.
  • Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
  • Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files).

Mekanisme proses untuk komunikasi dan sinkronisasi aksi

  • Sistem Pesan – komunikasi proses satu dengan yang lain dapat dilakukan tanpa perlu pembagian data.
  • IPC menyediakan dua operasi :
  • send(message) – pesan berukuran pasti atau variabel
  • receive(message)
  • Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :
  • Membangun jalur komunikasi diantara keduanya
  • Melakukan pertukaran pesan melaui send/receive
  • Implementasi jalur komunikasi
  • physical (shared memory, hardware bus)
  • logical (logical properties)

Create and Destroyed Process

Pembuatan Proses (Create)

Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.

  • Penciptaan proses melibatkan banyak aktivitas, yaitu :
  • Menamai (memberi identitas) proses.
  • Menyisipkan proses pada senarai proses atau tabel proses.
  • Menentukan prioritas awal proses.
  • Menciptakan PCB.
  • Mengalokasikan sumber daya awal bagi proses.

Penghancuran Proses (Destroyed)

Penghancuran proses terjadi karena :

  • Selesainya proses secara normal.
  • Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap.
  • Batas waktu telah terlewati.
  • Proses telah berjalan melebihi batas waktu total yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif) .
  • Memori tidak tersedia.
  • Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem.
  • Pelanggaran terhadap batas memori.
  • Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses.
  • Terjadi kesalahan karena pelanggaran proteksi.
  • Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
  • Terjadi kesalahan aritmatika.
  • Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat diakomodasi oleh H/W.
  • Waktu telah kadaluwarsa.
  • Proses telah menunggu lebih lama daripada maksimum yang telah ditentukan untuk terjadinya suatu kejadian spesfiik.
  • Terjadi kegagalan masukan/keluaran.
  • Kesalahan muncul pada masukan atau keluaran, seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada tape,atau operasi tidak valid seperti membaca dari line printer).
  • Intruksi yang tidak benar.
  • Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data tersebut).
  • Terjadi usaha memakai instruksi yang tidak diijinkan.
  • Proses berusaha mengeksekusi instruksi yang disimpan untuk SO.
  • Kesalahan penggunaan data.
  • Bagian data adalah tipe yang salah atau tidak diinisialisasi.
  • Diintervensi oleh SO atau operator.
  • Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya terjadi deadlock).
  • Berakhirnya proses induk.
  • Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu.
  • Atas permintaan proses induk.
  • Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :

  • Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.
  • Beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
  • Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
  • Sumber daya-sumber daya yang dipakai dikembalikan.
  • Proses dihancurkan dari senarai atau tabel sistem.
  • PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

Threads

Sebagai contoh, jika sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread tunggal dari instruksi-instruksi yang sedang dilaksanakan.

Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

Keadaan Proses

  1. Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
  2. Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap atau sibuk.
  3. Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya memori yang cukup.

Transisi Status

  1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.
  2. Penjadwalan mengambil proses lain.
  3. Penjadwalan mengambil proses ini (baru).
  4. Input telah tersedia.

Implementasi Proses :

  • Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.
  • Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap.

Penjadwalan Proses

Kriteria untuk mengukur dan optimasi kinerja penjadwalan :

a) Adil (fairness)

Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.

b) Efisiensi (eficiency)

Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.

c) Waktu tanggap (response time)

Waktu tanggap berbeda untuk :

1) Sistem interaktif

Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.

2) Sistem waktu nyata

Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.

d) Turn around time

Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.

e) Throughput

Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu

Program Control Block (PCB)

PCB berisi informasi mengenai proses yang diperlukan sistem operasi. PCB dibaca dan /atau dimodifikasi rutin sistem operasi seperti penjadwalan, alokasi sumber daya, pemrosesan interupsi, monitoring dan analisis kinerja. Kumpulan PCB mendefinisikan state sistem operasi.

Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini berada di PCB.

Sistem berbeda akan mengorganisasikan secara berbeda. Informasi dalam PCB :

1. Informasi identifikasi proses

Informasi ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya.

Informasi tersebut meliputi :

a. Identifier proses

b. Identifier proses yang menciptakan

c. Identifier pemakai

2. Informasi status pemroses

Informasi tentang isi register-register pemroses. Saat proses berstatus running, informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung arsitektur komputer.

Informasi status terdiri dari :

a. Register-register yang terlihat pemakai

Adalah register-register yang dapat ditunjuk instruksi bahasa assembly untuk diprosespemroses.

b. Register-register kendali dan status

Adalah register-register yang digunakan untuk mengendalikan operasi pemroses.

c. Pointer stack

Tiap proses mempunyai satu atau lebih stack, yang digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjukkan posisi paling atas dari stack.

3. Informasi kendali proses

Adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.

Informasi kendali terdiri dari :

a. Informasi penjadwalan dan status

Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan antara lain :

a.1 Status proses

Mendefinisikan keadaan/status proses (running, ready, blocked)

a.2 Prioritas

Menjelaskan prioritas proses.

a.3 Informasi berkaitan dengan penjadwalan

Berkaitan dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir dieksekusi.

a.4 Kejadian

Identitas kejadian yang ditunggu proses.

b. Penstrukturan data

Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.

c. Komuikasi antar proses

Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah.

d. Manajemen memori

Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memori) proses.

e. Kepemilikan dan utilisasi sumber daya

Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :

e.1 Berkas yang dibuka

e.2 Pemakain pemroses

e.3 Pemakaian sumber daya lainnya

Informasi ini diperlukan oleh penjadwal.

Struktur citra proses digambarkan berurutan di satu ruang alamat. Implementasi penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang digunakan dan organisasi struktur kendali sistem operasi.

Kedudukan Sistem operasi

Sistem operasi pada dasarnya adalah sepert perangkat lunak lain, yaitu program yang perlu dieksekusi pemroses.

Kedudukan sistem operasi dibanding proses-proses lain, adalah :

a. Sistem operasi sebagai kernel tersendiri yang berbeda dengan proses-proses lain (kernel sebagai non-proses).

b. Fungsi-fungsi sistem operasi dieksekusi dalam proses pemakai.

c. Sistem operasi juga sebagai kumpulan proses (process based operating

systems).


source : http://rizkyindrawan.wordpress.com/2010/10/21/manajamen-proses-pada-sistem-operasi/ ;

http://ariefzuhud.blog.upi.edu ; http://kuliah.dinus.ac.id