Minggu, 21 November 2010

LEFT 4 DEAD


On this date last year, we released Left 4 Dead 2. The year before Left 4 Dead debuted. The team would like to thank the over 9 million people who have taken the time to prepare for the upcoming zombie apocalypse.

While we continue to update – new stuff coming Friday – we wanted to take a quick look back at the creation of Left 4 Dead 2’s new Special Infected. 

LEFT 4 DEAD



Gib Fest and…, You are Glowing, Do you compete?

Gib Fest
M60s and buckets of blood. 

For our coop mutation this week we return to everyone’s favorite Gib Fest. Simple, go play.

Realism Versus
We are also “featuring” Realism Versus. This week we added quicker spawns for the infected. If you haven’t played recently, you are missing out on one of the most intense Left 4 Dead 2 competitive experiences. It is like regular Versus but no health kits in the world, no glows on fellow survivors, harder to kill commons and now faster Special Infected spawns (coming soon to the 360). 

Give it a try this week, it's what all the cool kids will be playing.

You are glowing
You liked the idea of changing the Survivor’s glow. The breakdown was roughly 50% for, 30% against, 20% no opinion but I just like to vote. So this week we are changing the glow and also incorporating a suggestion from the forums. The glow color will now correspond to the run speed of the Survivors. This should help tanks know who they can catch.

While we were at it, we added a glow to the Witch for the Infected team. 

Sometimes poll results can be incorporated quickly into the game, sometimes they take a bit longer – just a warning for past and future polls. Just because we don’t make a change that week doesn’t mean the results are being ignored. XBOX 360 users will see these changes in future title update.

Do you compete?
Have you ever played in an L4D1 or L4D2 tournament? Let us know in this week's in-game pol

CALL OF DUTY ENDOWMENT & BLACK OPS






Glen and Michael showed their support for the Call of Duty Endowment and upcoming Black Ops game at the US launch party in LA last night.  They rubbed shoulders with the likes of Kobe Bryant, Zach Braff, and Metallica at Santa Monica Airport's Hanger 8.  
Also at the event was a multiplayer tournament featuring six branches of the US Armed Forces: Air Force, Army, Coast Guard, Marine, Navy and National Guard.  
Bobby Kotick presented a check for $1 million dollars to the Call of Duty Endowment which is a non-profit, public benefit corporation founded by Activision Blizzard that helps soldiers transition to civilian life.  
Check out the photos from the event.  
Written by Catherine Sheu

Sabtu, 13 November 2010

Manajemen Proses Pada Linux

PENJADWALAN

Penjadwalan adalah suatu pekerjaan yang dilakukan untuk mengalokasikan CPU time untuk tasks yang berbeda-beda dalam sistem operasi. Pada umumnya, kita berfikir penjadwalan sebagai menjalankan dan menginterupsi suatu proses, untuk linux ada aspek lain yang penting dalam penjadwalan ; seperti menjalankan dengan berbagai kernel tasks. Kernel tasks meliputi task yang diminta oleh proses yang sedang dijalankan dan tasks yand dieksekusi internal menyangkut device driver yang berkepentingan.

SINGKRONISASI KERNEL

Cara penjadwalan kernel pada operasinya secara mendasar berbeda dengan cara penjadwalan suatu proses. Terdapat dua cara agar sebuah permintaan akan eksekusi kernel-mode dapat terjadi. Sebuah program yang berjalan dapat meminta service sistem operasi, dari system call ataupun secara implisit (untuk contoh:ketika page fault terjadi). Sebagai alternatif, device driver dapat mengirim interupsi perangkat keras yang menyebabkan CPU memulai eksekusi kernel-define handler untuk suatu interupsi.

Problem untuk kernel muncul karena berbagai task mungkin mencoba untuk mengakses struktur data internal yang sama. Jika hanya satu kernel task ditengah pengaksesan struktur data ketika interupsi service routine dieksekusi, maka service routine tidak dapat mengakses atau merubah data yang sama tanpa resiko mendapatkan data yang rusak. Fakta ini berkaitan dengan ide dari critical section (baca sinkronisasi proses).
Sebagai hasilnya, sinkronisasi kernel melibatkan lebih banyak dari hanya penjadwalan proses saja. sebuah framework dibutuhkan untuk memperbolehkan kernel's critical sections berjalan tanpa diinterupsi oleh critical section yang lain.
Solusi pertama yang diberikan oleh linux adalah membuat normal kernel code nonpreemptible (baca proses). Biasanya, ketika sebuah timer interrupt diterima oleh kernel, membuat penjadwalan proses, kemungkinan besar akan menunda eksekusi proses yang sedang berjalan pada saat itu dan melanjutkan menjalankan proses yang lain. Biar bagaimanapun, ketika timer interrupt diterima ketika sebuah proses mengeksekusi kernel-system service routine, penjadwalan ulang tidak dilakukan secara mendadak; cukup, kernel need_resched flag terset untuk memberitahu kernel untuk menjalankan penjadwalan kembali setelah system call selesai dan control dikembalikan ke user mode.
Sepotong kernel code mulai dijalankan, akan terjamin bahwa itu adalah satu-satunya kernel code yang dijalankan sampai salah satu dari aksi dibawah ini muncul:
  • Interupsi
  • Page Fault
  • Kernel Code
* Interupsi

Interupsi adalah suatu masalah bila mengandung critical section-nya sendiri. Timer interrupt tidak secara langsung menyebabkan terjadinya penjadwalan ulang suatu proses; hanya meminta suatu jadwal untuk dilakukan kemudian, jadi kedatangan suatu interupsi tidak mempengaruhi urutan eksekusi dari noninterrupt kernel code . Sekali interrupt service selesai, eksekusi akan menjadi lebih simpel untuk kembali ke kernel code yang sedang dijalankan ketika interupsi mengambil alih.

* Page Faults

Page faults adalah suatu masalah yang potensial; jika sebuah kernel routine mencoba untuk membaca atau menulis ke user memory, akan menyebabkan terjadinyapage fault yang membutuhkan I/O disk untuk selesai, dan proses yang berjalan akan di tunda sampai I/O selesai. Pada kasus yang hampir sama, jika system call service routine memanggil penjadwalan ketika sedang berada di mode kernel, mungkin secara eksplisit dengan membuat direct call pada code penjadwalan atau secara implisit dengan memanggil sebuah fungsi untuk menunggu I/O selesai, setelah itu proses akan menunggu dan penjadwalan ulang akan muncul. Ketika proses jalan kembali, proses tersebut akan melanjutkan untuk mengeksekusi dengan mode kernel, melanjutkan intruksi setelah call (pemanggilan) ke penjadwalan.

* Kernel Code

Kernel code dapat terus berasumsi bahwa ia tidak akan diganggu (preemted) oleh proses lainnya dan tidak ada tindakan khusus dilakukan untuk melindungi critical section. Yang diperlukan adalah critical section tidak mengandung referensi ke user memory atau menunggu I/O selesai.
Teknik kedua yang di pakai Linux untuk critical section yang muncul pada saat interrupt service routines . Alat dasarnya adalah perangkat keras interrupt-control pada processor. Dengan meniadakan interupsi pada saat critical section, maka kernel menjamin bahwa ia dapat melakukan proses tanpa resiko terjadinya ketidak-cocokan akses dari struktur data yang di share.
Untuk meniadakan interupsi terdapat sebuah pinalti. Pada arsitektur perangkat keras kebanyakan, pengadaan dan peniadaan suatu interupsi adalah sesuatu yang mahal. Pada prakteknya, saat interupsi ditiadakan, semua I/O ditunda, dan device yang menunggu untuk dilayani akan menunggu sampai interupsi diadakan kembali, sehingga kinerja meningkat. Kernel Linux menggunakan synchronization architecture yang mengijinkan critical section yang panjang dijalankan untuk seluruh durasinya tanpa mendapatkan peniadaan interupsi. Kemampuan secara spesial berguna pada networking code : Sebuah interupsi pada network device driver dapat memberikan sinyal kedatangan dari keseluruhan paket network, dimana akan menghasilkan code yang baik dieksekusi untuk disassemble, route, dan forward paket ditengah interrupt service routine.
Linux mengimplementasikan arsitektur ini dengan memisahkan interrupt service routine menjadi dua seksi: the top half dan the bottom half. The top half adalah interupsi yang normal, dan berjalan dengan rekursif interupt ditiadakan ( interupsi dengan prioritas yang lebih tinggi dapat menginterupsi routine, tetapi interupsi dengan prioritas yang sama atau lebih rendah ditiadakan). The bottom half service routine berjalan dengan semua interupsi diadakan, oleh miniatur penjadwalan yang menjamin bahwa bottom halves tidak akan menginterupsi dirinya sendiri. The bottom half scheduler dilakukan secara otomatis pada saat interupt service routine ada.
Pemisahan itu berarti bahwa kegiatan proses yang komplek dan harus selesai diberi tanggapan untuk suatu interupsi dapat diselesaikan oleh kernel tanpa kecemasan tentang diinterupsi oleh interupsi itu sendiri. Jika interupsi lain muncul ketika bottom half dieksekusi, maka interupsi dapat meminta kepada bottom half yang sama untuk dieksekusi, tetapi eksekusinya akan dilakukan setelah proses yang sedang berjalan selesai. Setiap eksekusi dari bottom half dapat di interupsi oleh top half tetapi tidak dapat diinterupsi dengan bottom half yang mirip.
Arsitektur Top-half bottom-half komplit dengan mekanisme untuk meniadakan bottom halver yang dipilih ketika dieksekusi secara normal, foreground kernel code. Kernel dapat meng-codekan critical section secara mudah dengan mengunakan sistem ini: penanganan interupsi dapat meng-codekan critical section-nya sebagai bottom halves, dan ketika foreground kernel ingin masuk ke critical section , setiap bottom halves ditiadakan untuk mencegah critical section yang lain diinterupsi. Pada akhir dari critical section, kernel dapat kembali mengadakan bottom halves dan menjalankan bottom half tasks yang telah di masukkan kedalam queue oleh top half interrupt service routine pada saat critical section .

PENJADWALAN PROSES

Ketika kernel telah mencapai titik penjadwalan ulang, entah karena terjadi interupsi penjadwalan ulang maupun karena proses kernel yang sedang berjalan telah diblokir untuk menunggu beberapa signal bangun, harus memutuskan proses selanjutnya yang akan dijalankan. Linux telah memiliki dua algoritma penjadwalan proses yang terpisah satu sama lain. Algoritma yang pertama adalah algoritma time-sharing untuk penjadwalan preemptive yang adil diantara sekian banyak proses. Sedangkan algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.

Bagian dari tiap identitas proses adalah kelas penjadwalan, yang akan menentukan algoritma yang digunakan untuk tiap proses. Kelas penjadwalan yang digunakan oleh Linux, terdapat dalam standar perluasan POSIX untuk sistem komputer waktu nyata.

Untuk proses time-sharing, Linux menggunakan teknik prioritas, sebuah algoritma yang berdasarkan pada kupon. Tiap proses memiliki sejumlah kupon penjadwalan; dimana ketika ada kesempatan untuk menjalankan sebuah tugas, maka proses dengan kupon terbanyaklah yang mendapat giliran. Setiap kali terjadi interupsi waktu, proses yang sedang berjalan akan kehilangan satu kupon; dan ketika kupon yang dimiliki sudah habis maka proses itu akan ditunda dan proses yang lain akan diberikan kesempatan untuk masuk.

Jika proses yang sedang berjalan tidak meiliki kupon sama sekali, linux akan melakukan operasi pemberian kupon, memberikan kupon kepada tiap proses dalam sistem, dengan aturan main: kupon = kupon / 2 + prioritas Algoritma ini cenderung untuk menggabungkan dua faktor yang ada: sejarah proses dan prioritas dari proses itu sendiri. Satu setengah dari kupon yang dimiliki sejak operasi pembagian kupon terakhir akan tetap dijaga setelah algoritma telah dijalankan, menjaga beberapa sejarah sikap proses. Proses yang berjalan sepanjang waktu akan cenderung untuk menghabiskan kupon yang dimilikinya dengan cepat, tapi proses yang lebih banyak menunggu dapat mengakumulasi kuponnya dari. Sistem pembagian kupon ini, akan secara otomatis memberikan proritas yang tinggi ke proses I/O bound ataupun interaktif, dimana respon yang cepat sangat diperlukan.

Kegunaan dari proses pemberian prioritas dalam menghitung kupon baru, membuat prioritas dari suatu proses dapat ditingkatkan. Pekerjaan background batch dapat diberikan prioritas yang rendah; proses tersebut akan secara otomatis menerima kupon yang lebih sedikit dibandingkan dengan pekerjaan yang interaktif, dan juga akan menerima persentase waktu CPU yang lebih sedikit dibandingan dengan tugas yang sama dengan prioritas yang lebih tinggi. Linux menggunakan sistem prioritas ini untuk menerapkan mekanisme standar pembagian prioritas proses yang lebih baik.

Penjadwalan waktu nyata Linux masih tetap lebih sederhana. Linux, menerapkan dua kelas penjadwalan waktu nyata yang dibutuhkan oleh POSIX 1.b: First In First Out dan round-robin. Pada keduanya, tiap proses memiliki prioritas sebagai tambahan kelas penjadwalannya. Dalam penjadwalan time-sharing , bagaimanapun juga proses dengan prioritas yang berbeda dapat bersaing dengan beberapa pelebaran; dalam penjadwalan waktu nyata, si pembuat jadwal selalu menjalankan proses dengan prioritas yang tinggi. Diantara proses dengan prioritas yang sama, maka proses yang sudah menunggu lama, akan dijalankan. Perbedaan satu - satunya antara penjadwalan FIFO dan round-robin adalah proses FIFO akan melanjutkan prosesnya sampai keluar ataupun diblokir, sedangkan proses round-robin akan dipreemptivekan setelah beberapa saat dan akan dipindahkan ke akhir antrian, jadi proses round-robin dengan prioritas yang sama akan secara otomatis membagi waktu jalan antar mereka sendiri.

Perlu diingat bahwa penjadwalan waktu nyata di Linux memiliki sifat yang lunak. Pembuat jadwal Linux menawarkan jaminan yang tegas mengenai prioritas relatif dari proses waktu nyata, tapi kernel tidak menjamin seberapa cepat penjadwalan proses waktu-nyata akan dijalankan pada saat proses siap dijalankan. Ingat bahwa kode kernel Linux tidak akan pernah bisa dipreemptive oleh kode mode pengguna. Apabila terjadi interupsi yang membangunkan proses waktu nyata, sementara kernel siap untuk mengeksekusi sebuah sistem call sebagai bagian proses lain, proses waktu nyata harus menunggu sampai sistem call yang sedang dijalankan selesai atau diblokir.

Symmetric Multiprocessing

Kernel Linux 2.0 adalah kernel Linux pertama yang stabil untuk mendukung perangkat keras symmetric multiprocessor (SMP). Proses maupun thread yang berbeda dapat dieksekusi secara paralel dengan processor yang berbeda. Tapi bagaimana pun juga untuk menjaga kelangsungan kebutuhan sinkronisasi yang tidak dapat dipreemptive dari kernel, penerapan SMP ini menerapkan aturan dimana hanya satu processor yang dapat dieksekusi dengan kode mode kernel pada suatu saat. SMP menggunakan kernel spinlock tunggal untuk menjalankan aturan ini. Spinlock ini tidak memunculkan permasalahan untuk pekerjaan yang banyak menghabiskan waktu untuk menunggu proses komputasi, tapi untuk pekerjaan yang melibatkan banyak aktifitas kernel, spinlock dapat menjadi sangat mengkhawatirkan.

Sebuah proyek yang besar dalam pengembangan kernel Linux 2.1 adalah untuk menciptakan penerapan SMP yang lebih masuk akal, dengan membagi kernel spinlock tunggal menjadi banyak kunci yang masing - masing melindungi terhadap masuknya kembali sebagian kecil data struktur kernel. Dengan menggunakan teknik ini, pengembangan kernel yang terbaru mengijinkan banyak processor untuk dieksekusi oleh kode mode kernel secara bersamaan.

ALGORITMA PENJADWALAN

Jenis-jenis algoritma penjadwalan:

  1. Nonpreemptive, menggunakan konsep :

    • FIFO (First In First Out) atau FCFS (First Come First Serve)
    • SJF (Shortest Job First)
    • MFQ (Multiple Feedback Queues)
  2. Preemptive, menggunakan konsep :

    • RR (Round Robin)
    • SRF (Shortest Remaining First)
    • PS (Priority Schedulling)
    • GS (Guaranteed Schedulling)

Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil secara paksa adalah klasifikasi berdasarkan adanya prioritas di proses-proses, yaitu :

  1. Algoritma penjadwalan tanpa berprioritas.
  2. Algoritma penjadwalan berprioritas, terdiri dari :

    • Berprioritas static
    • Berprioritas dinamis

* Algoritma Nonpreemptive
  1. First In First Out (FIFO)

    First In First Out (FIFO) merupakan penjadwalan tidak berprioritas. FIFO adalah penjadwalan paling sederhana, yaitu proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

    Penilaian penjadwalan ini berdasarkan kriteria optimasi :

    • Adil, dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapi dinyatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job yang tidak penting dapat membuat job-job penting menunggu lama.
    • Efisiensi, sangat efisien.
    • Waktu tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata.
    • Turn around time kurang baik.
    • Throughtput kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain.
    • Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
    • Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
    • Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.
    • Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

  2. Shortest Job First (SJF)

    Penjadwalan ini mengasumsikan waktu berjalannya proses sampai selesai telah diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.

    Contoh :
    Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20.

    Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus dinamis. Penjadwalan ini jarang digunakan karena merupakan kajian teoritis untuk pembandingan turn around time.

  3. Highest Ratio Next (HRN)

    Highest Ratio Next merupakan strategi penjadwalan dengan prioritas proses tidak hanya berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.

    Prioritas dinamis HRN dihitung berdasarkan rumus : Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus. Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.

  4. Multiple Feedback Queues (MFQ)

    Merupakan penjadwalan berprioritas dinamis. Penjadwalan ini untuk mencegah (mengurangi) banyaknya swappingdengan proses-proses yang sangat banyak menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan yang berlaku adalah sebagai berikut :

    • Jalankan proses pada kelas tertinggi.
    • Jika proses menggunakan seluruh kwanta yang dialokasikan, maka diturunkan kelas prioritasnya.
    • Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.

    Mekanisme ini mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.


* Algoritma Preemptive
  1. Round Robin (RR)

    Merupakan :

    • Penjadwalan yang paling tua, sederhana, adil, banyak digunakan algoritmanya dan mudah diimplementasikan.
    • Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt by time).
    • Penjadwalan tanpa prioritas.
    • Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu. Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan.Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain. Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable. Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan diletakkan diakhir daftar (list).

  2. Shortest Remaining First (SRF)

    Merupakan :

    • Penjadwalan berprioritas.dinamis.
    • preemptive untuk timesharing
    • Melengkapi SJF

    Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.Pada SRF, proses yang sedang berjalan (running) dapat diambil alihproses baru dengan sisa waktu jalan yang diestimasi lebih rendah.

    Kelemahan :

    • Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan yang telah dihabiskan job dan kadang-kadang harus menangani peralihan.
    • Tibanya proses-proses kecil akan segera dijalankan.
    • Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibanding pada SJF.

    SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead. Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih baik dibanding SRF.

  3. Priority Schedulling (PS)

    Setiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Diasumsikan bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Dalam UNIX perintah untuk mengubah prioritas menggunakan perintah nice. Pemberian prioritas diberikan secara:

    1. Statis (Static Priorities) berarti prioritas tidak berubah.

      Keunggulan :

      • Mudah diimplementasikan.
      • Mempunyai overhead relatif kecil.

      Kelemahan :

      • Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.

    2. Dinamis (Dynamic Priorities) merupakan mekanisme untuk menanggapi perubahan lingkungan system beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.

      Kelemahan :

      Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead ini diimbangi dengan peningkatan daya tanggap sistem.

      Contoh penjadwalan berprioritas :

      Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan kebanyakan waktu menunggu selesainya operasinya masukan/keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses Memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O itu menunggu selesainya operasi DMA.

      Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.

  4. Guaranteed Schedulling (GS)

    Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang telah diperuntukkan proses itu. Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki. Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik ketingkat lebih tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat diimplementasikan ke sistem real-time dan memiliki penjadwalan berprioritas dinamis.

Cara Membuat Artikel Yang Sulit Untuk di Copy

Seperti judulnya pada kesempatan kali ini saya akan berbagi cara membuat artikel kita agar tidak mudah di copy..

Nah langka - langkanya sebagai berikut : ..........

  • Masuk dulu ke acount blog anda
  • Trus pilih Tata Letak / Rancangan lalu klik Edit HTML
  • Centang kotak kecil yang tulisannya Expand Template Widget
  • Cari kode seperti dibawah ini


<head>

"(Catatan : Untuk mempermudah pencarian kode tersebut Anda bisa mencarinya dengan menekan 'tombol Ctrl + F')"
  • kalau sudah ketemu, copas / copy paste code dibawah ini tepat dibawah kode yang anda cari tadi ( <head> )

<SCRIPT type="text/javascript">
if (typeof document.onselectstart!="undefined") {
document.onselectstart=new Function ("return false");
}
else{
document.onmousedown=new Function ("return false");
document.onmouseup=new Function ("return true");
}
</SCRIPT>


  • trus klik simpan template dan lihat perubahannya.....
good luck...!!!!!

Senin, 08 November 2010

Manajemen Proses Pada Sistem Operasi

MANAJEMEN PROSES

Secara informal, proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. suatu program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.

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.

Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).

PROSES

Pengertian Proses

Proses berisi instruksi, data, program counter, register pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.
Terdapat beberapa definisi mengenai proses, antara lain :
  • Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses adalah masalah utama dalam perancangan sistem operasi.
  • Proses adalah program yang sedang dieksekusi.
  • Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.

Peran sistem operasi dalam kegiatan proses adalah mengelola semua proses disistem dan mengalokasikan sumber daya ke proses tersebut. Banyak proses yang dijalankan bersamaan, dimana setiap proses mendapat bagian memori dan kendali sendiri-sendiri (peran SO), sehingga setiap proses (program) memiliki prinsip :

  • Independent, artinya program-program tersebut berdiri sendiri, terpisah dan saling tidak bergantung.
  • One program at any instant, artinya hanya terdapat satu proses yang dilayani pemroses pada satu saat.

Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi satu proses dan secara cepat beralih ke proses lainnya (bergiliran),sehingga menimbulkan efek paralel semu (pseudoparallelism).

Operasi - Operasi Pada Proses

Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi tersebut adalah :

a. Penciptaan proses (create a process)

b. Penghancuran/terminasi proses (destroy a process)

c. Penundaan proses (suspend a process)

d. Pelanjutan kembali proses (resume a process)

e. Pengubahan prioritas proses

f. Memblock proses

g. Membangunkan proses

h. Menjadwalkan proses

i. Memungkinkan proses berkomunikasi dengan proses lain

---===[[[########]]]===---
  1. Penciptaan Proses (create a process)

    Penciptaan Proses Melibatkan banyak aktivitas, yaitu :
    • Memberi identitas proses
    • Menyisipkan proses pada senarai atau tabel proses
    • Menentukan prioritas awal proses
    • Menciptakan PCB
    • Mengalokasikan sumber daya awal bagi proses

    Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola dan mengalokasikan ruang alamat proses.
    Kejadian yang dapat menyebabkan penciptaan proses :

    • Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)Sistem operasi dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job berikutnya.
    • Pada lingkungan interaktif, ketika pemakai baru berusaha logon.
    • >Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu.Sistem operasi menciptakan proses untuk memenuhi satu fungsi pada program pemakai, tanpa mengharuskan pemakai menunggu.
    • Proses penciptaan proses lain (proses anak).

    Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses. Proses dapat menciptakan proses baru yaitu anak proses (child process), sedangkan proses yang menciptakannya disebut proses induk (parent process). Proses anakpun kembali dapat menciptakan proses-proses anak lainnya. Proses-proses dapatmembentuk pohon hirarki proses.

    * Tahap-tahap penciptaan proses

    Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi beberapa tahap :
    • Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian perproses.
    • Alokasikan ruang untuk proses.
    • PCB harus diinisialisasi.
    • Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
    • Bila diperlukan struktur data lain maka segera dibuat struktur data itu.

    * Contoh Penciptaan Proses

    • Pada UNIX
      • System call fork menciptakan proses baru.
      • Menciptakan salinan identik dengan proses induk.
      • Induk melanjutkan kerjanya bersama dengan proses anak.
    • Pada MS DOS
      • Load berkas biner ke memori --> eksekusi jadi proses anak
      • Akibatnya menunda proses induk --> proses anak selesai eksekusi


  2. Penghancuran/terminasi proses (destroy a process)

    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).

    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, sehingga proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.

    Alasan - alasan penghancuran proses (penyebab terminasi) :
    • Selesainya proses secara normal;
      Proses mengeksekusi panggilan layanan sistem operasi untuk menandakan bahwa proses telah berjalan secara lengkap
    • Batas waktu terlewati;
      Proses telah berjalan melebihi batas waktu total yang dispesifikasikan.
    • Memori tidak tersedia;
      Proses memerlukan memori lebih banyak daripada yang dapat disediakan sistem.
    • Pelanggaran terhadap batas memori;
      Proses mencoba mengakses lokasi memori yang tidak diijinkan diakses.
    • Terjadi kesalahan karena pelanggaran proteksi;
      Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukkannya, 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 dapat diakomodasi oleh perangkat keras.
    • Waktu telah kadaluwarsa;
      Proses telah menunggu lebih lama daripada maksimum yang ditentukan untuk terjadinya suatu kejadian spesifik.
    • Terjadi kegagalan masukan/keluaran;
      Kesalahan muncul pada masukan atau keluaran, seperti ketidakmampuan menemukan file, kegagalan membaca atau menulis setelah sejumlah maksimum percobaan yang ditentukan (misal : area rusak didapatkan pada disk, atau operasi tak valis seperti membaca dari line printer)
    • Instruksi yang tak benar;
      Proses berusaha mengeksekusi instruksi yang tak ada.
    • Terjadi usaha memakai instruksi yang tak diijinkan;
      Proses berusaha menggunakan instruksi yang disimpan untuk sistem operasi.
    • Kesalahan penggunaan data;
      Tipe data yang digunakan salah atau tidak diinisialisasi.
    • Diintervensi oleh sistem operasi atau operator;
      Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misal terdapat deadlock).
    • Berakhirnya proses induk;
      Ketika parent berakhir, sistem operasi mungkin dirancang secara otomatis mengakhiri semua anak proses dari parent itu.
    • Atas permintaan dari proses induk;
      Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.

  3. Penundaan Proses (Suspend a Process)

    • Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara.
    • Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain
    • Penundaan biasanya berlangsung singkat dan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.
    • Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain me-resume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan.
    • Pada sistem monoprocessor, proses running dapat men-suspend dirinya sendiri karena lak ada proses lain yang juga running yang dapat memerintahkan suspend.
    • Pada sistem multiprocessor, proses running dapat di-suspend proses running lain pada pemroses berbeda. Proses ready hanya dapat di-suspend oleh proses lain.

  4. Pelanjutan Kembali Proses (Resume a Process)

    • Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat di- suspend agar di-resume setelah masalab diselesaikan.
    • Pemakai yang ragu/khawatir mengenai basil proses dapat men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang di-suspend.
    • Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapal di-suspend dan di- resume saat beban kembali ke tingkat normal

  5. Pengubahan prioritas proses

    Pengalihan proses adalah terjadi jika proses yang running beralih menjadi state lain (ready, blocked, dan sebagainya), kemudian sistern operasi harus membuat perubahan perubahan berarti terhadap lingkungannya. Rincian rincian dalam pelaksanaan pengalihan proses di bahas setelah ini.

    Pengalihan proses terjadijika proses yang running beralih menjadi state lain (ready, blocked, dan sebagainya) kemudian sistem. operasi membuat perubahan perubahan berarti terhadap lingkungan.
    Langkah langkah yang terlibat dalam pengalihan proses sebagai berikut:

    • Simpan konteks pernroses, termasuk register PC dan register register lain.
    • Perbarui PCB proses yang running. Pelaksanaan termasuk mengubah state proses menjadi salah satu state (ready, blocked, suspendedready, dan sebagainya). Field field yang relevanjuga diperbarui misaInya alasan meninggalkan state runningdan informasi akunting.
    • Pindahkan PCB proses ke senarai yang cocok (ready, blocked, dan sebagainya).
    • Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadwalan.
    • Perbarui PCB proses yang dipilih termasuk perubahan state menjadi running.
    • Perbarui struktur struktur data manaJemen memori. Pekerjaan ini sesuai dengan pengefolaan translasi alamat.
    • Kembalikan konteks pernroses dengan konteks simpanan yang memberitahu konteks proses terakhir saat dialihkan dari state running, Pengembalian konteks ini dilakukan dengan memuatkan nilai nilai registerPC dan register register lain dengan nilai konteks yang tersimpan.

    Pengalihan proses melibatkan pengalihan konteks dan perubahan state, memerlukan usaha lebih besar daripada pengalihan konteks.

  6. Memblock Proses

    * Sinkronisasi

    Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) - juga dikenal dengan nama sinkron atau asinkron.

    • Pengiriman yang diblok: Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
    • Pengiriman yang tidak diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
    • Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia.
    • Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.

    * Buffering

    Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan:

    • Kapasitas nol (zero capacity): antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
    • Kapasitas terbatas (Bounded capacity): antrian mempunyai panjang yang telah ditentukan, paling banyak pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas.
    • Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
    • Kapasitas tak terbatas(Unbounded capacity): antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

  7. Membangunkan Proses

    Suatu pendekatan kejuteraan sistematik tekini untuk menganilisis masalah dan menambah baik kualiti produk atau proses. Kajian ini hanya memfokuskan kepada masalah proses pengeluaran dan penambahbaikan ke atas proses pengeluaran lampin pakai buang (diaper). Kajian ini dilakukan ke atas salah satu mesin (Mesin Technipro) pembuat lampin pakai buang. Kombinasi kawalan proses statistik dan pendekatan lain seperti Kepner Tregoe, Poka Yoke, SMED, zero setting, centerlining, F1 Pit Stop dan rakaman video digunakan untuk melakukan penambahbaikan. Ukuran masa perjalanan mesin, masa mesin berhenti akibat mengalami kerosakan, masa penyelenggaraan mesin, peratus kecekapan mesin, peratus produk yang dihasilkan dalam sejam, peratus masa lengah mesin dan peratus kecacatan yang terhasil digunakan bagi membandingkan hasil dari proses penambahbaikan yang dijalankan. Kajian ini telah berjaya membangunkan dan mereka bentuk sistem pembangunan proses bagi memperbaiki proses- proses yang sedia ada.

  8. Menjadwalkan Proses

    Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan bertugas memutuskan proses yang harus berjalan dan kapan atau berapa lama proses itu berjalan.
    Sasaran utama penjadwalan proses adalah optimasi kinerja menurut kriteria tertentu, yaitu :

    • adil
    • efisiensi
    • waktu tanggap (response time)
    • turn arround time
    • throughput

    * Adil
    Proses-proses diperlakukan sama yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami starvation.

    * Efisiensi
    Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. Sasaran penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi mencapai maksimum. Sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan sistem operasi.

    * Waktu tanggap (response time)
    Waktu tanggap pada sistem interaktif
    Adalah waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar (terminal) --> disebut terminal response time.

    Waktu tanggap pada sistem waktu nyata (real-time)
    Adalah waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi --> disebut event response time

    Turn arround 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.
    turn arround time = waktu eksekusi + waktu menunggu
    Sasaran penjadwalan adalah meminimalkan turn arround time.

    Throughput
    Adalah jumlah kerja atau jumlah job yang dapat diselesaikan dalam satu unit waktu. Sasaran penjadwalan adalah memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem.

    Tipe - Tipe Penjadwalan
    Tiga tipe penjadwal dapat berada secara bersama-sama pada sistem operasi yang kompleks, yaitu :
    1. Penjadwal jangka pendek (short – term scheduller)
    2. Penjadwal jangka menengah (medium – term scheduller)
    3. Penjadwal jangka panjang (long– term scheduller)

    * Penjadwal jangka pendek
    Tugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama.

    * Penjadwal jangka menengah
    Setelah eksekusi selama satu waktu, proses mungkin ditunda karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system call. Proses-proses tertunda tidak dapat membuat suatu kemajuan menuju selesai sampai kondisi-kondisi yang menyebabkan tertunda dihilangkan. Agar ruang memori dapat bermanfaat, maka proses dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama terbatas untuksejumlah proses aktif. Aktifitas pemindahan proses yang tertunda dari memori utama ke memori sekunder disebut swapping.

    * Penjadwal jangka panjang
    Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.Sasaran utama penjadwal jangka panjang adalah memberi keseimbangan job-job campuran.

    Strategi Penjadwalan
    Ada 2 strategi penjadwalan :
    1. Penjadwalan nonpreemptive
    2. Penjadwalan preemptive

    * Penjadwalan nonpreemptive
    Proses yang sedang berjalan tidak dapat disela. Sekali proses berada di status running (sedang berjalan), maka proses tersebut akan dieksekusi terus sampai proses berhenti karena selesai atau diblok untuk menunggu I/O atau untuk meminta beberapa layanan dari sistem operasi; dan CPU tidak dapat diambil alih oleh proses yang lain.

    * Penjadwalan preemptive
    Proses yang sedang berjalan dapat diinterupsi dan dipindah ke status ready oleh sistem operasi sehingga CPU dapat diambil alih proses yang lain.

    Algoritma Penjadwalan
    Terdapat banyak algoritma, diantaranya :
    a. Algoritma menggunakan strategi nonpreemptive
    • FIFO (First-in, First-out) atau FCFS (First-come, First-serve)
    • SJF (Shortest Job First)
    • HRN (Highest – Ratio Next)
    b. Algoritma menggunakan strategi preemptive
    • MFQ (Multiple Feedback Queues)
    • RR (Round Robin)
    • SRF (Shortest Remaining First)
    • PS (Priority Schedulling)
    • GS (Guaranteed Schedulling)

  9. Memungkinkan Proses Berkomunikasi Dengan Proses Lain

    * Proses yang Kooperatif

    Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat dibedakaan menjadi yaitu proses independent dan proses kooperatif. Suatu proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem.
    Berarti, semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan proses lain adalah independent. Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain. Ada empat alasan untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya proses kooperatif:
    • Pembagian informasi:
      apabila beberapa pengguna dapat tertarik pada bagian informasi yang sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.
    • Kecepatan penghitungan/ komputasi:
      jika kita menginginkan sebuah tugas khusus untuk menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti CPU atau jalur I/O).
    • Modularitas:
      kita mungkin ingin untuk membangun sebuah sistem pada sebuah model modular-modular, membagi fungsi sistem menjadi beberapa proses atau threads.
    • Kenyamanan:
      bahkan seorang pengguna individu mungkin memiliki banyak tugas
      untuk dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang
      pengguna dapat mengedit, memcetak, dan meng-compile secara paralel.

    * Komunikasi Proses Dalam Sistem

    Cara lain untuk meningkatkan efek yang sama adalah untuk sistem operasi yaitu untuk menyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain lewat sebuah komunikasi dalam proses (IPC = Inter-Process Communication). IPC menyediakan sebuah mekanisme untuk mengizinkan proses- proses untuk berkomunikasi dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi dimana proses komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang berbeda yang tersambung dalam sebuah jaringan. IPC adalah penyedia layanan terbaik dengan menggunakan sebuah sistem penyampaian pesan, dan sistem- sistem pesan dapat diberikan dalam banyak cara.

    * Sistem Penyampaian Pesan

    Fungsi dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu dengan yang lain tanpa perlu menggunakan pembagian data. Sebuah fasilitas IPC menyediakan paling sedikit dua operasi yaitu kirim (pesan) dan terima (pesan). Pesan dikirim dengan sebuah proses yang dapat dilakukan pada ukuran pasti atau variabel. Jika hanya pesan dengan ukuran pasti dapat dikirimkan, level sistem implementasi adalah sistem yang sederhana. Pesan berukuran variabel menyediakan sistem implementasi level yang lebih kompleks.

    Berikut ini ada beberapa metode untuk mengimplementasikan sebuah jaringan dan operasi pengiriman/penerimaan secara logika:
    • Komunikasi Langsung Atau Tidak Langsung
    • Komunikasi Secara Simetris / asimetris
    • Buffer Otomatis atau Eksplisit
    • Pengiriman Berdasarkan Salinan Atau Referensi
    • Pesan Berukuran Pasti dan Variabel

Minggu, 04 Juli 2010

Cara Mengganti Background Blog

Hai bloger mania kali ini saya akan berbagi tips untuk mengganti background blog kita. Background adalah latar dari tampilan blog kita. Ada dua cara mengganti background yaitu dengan cara menggantinya dengan warna saja dan menggantinya dengan gambar. Hanya untuk sekedar saran, jika anda mengganti blog anda dengan warna, haruslah warna yang anda pilih tidak membuat tulisan yang ada diblog kita sulit untuk dibaca. Contohnya jika tulisan kita berwarna gelap maka background kita harus berwarnah terang, dan sebaliknya jika tulisan kita berwarnah terang maka background kita harus berwarnah terang.
Tapi sebelumnya saya minta maaf kalau artikel saya tidak sesuai dengan keinginan anda. Ini dikarenakan setiap template mempunyai kode yang bervariasi.
Ok,, langsung saja ke cara menggati background.....

Cara Mengganti Background Dengan Warna
  • Masuk atau login ke account blogger Anda
  • Pilih menu Tata Letak lalu klik Edit HTML
  • cari kode yang mirip seperti dibawah ini....
  • Sebelumnya dowload dulu template anda, klik "Download Template Lengkap" untuk menghindari hal - hal yang tidak di inginkan....hehe..

body {
background: url(http:you_link_image.jpg) repeat-x;
margin:0; color:#000000; font:12px trebuchet ms;
text-align: justify}

Catatan : Untuk mempermudah pencarian kode tersebut Anda bisa mencarinya dengan menekan 'tombol Ctrl + F' dan tuliskan body { "
  • Ganti huruf merah dengan kode warna html bisah anda lihat disini.
contohnya seperti ini :

body {
background: #FFFFFF repeat-x;
margin:0; color:#000000; font:12px trebuchet ms;
text-align: justify}

  • Setelah itu simpan template dan lihat hasilnya...

Cara Mengganti Background Dengan Image atau Gambar

Caranya seperti yang di atas. Untuk tulisan warna merah pada kode di bawah diganti dengan alamat url image / gambar yang akan anda jadikan background.

body {
background: url("
http:you_link_image.jpg") repeat-x;
margin:0; color:#000000; font:12px trebuchet ms;
text-align: justify}

Ada dua cara mendapatkan alamat url. Pertama dengan cara mencarinya lewat om google atau klik disini. Yang kedua dengan cara mengupload foto anda. Untuk mengupload foto anda bisa anda upload di "imageshack" atau klik disini.

  • Cara 1 (cari gambar atau foto lewat om google / gambar yang sudah ada di internet)
Untuk mencari gambar lewat om google cukup mudah tinggal pilih saja gambar yang mau anda jadikan background trus klik kanan dan pilih "Copy Image Location" dan ganti tulisan warna merah diatas. Caranya blok / tandai dulu tulisan warnah merah dan klik kanan lalu pilih "Paste" dan Simpan Template lalau lihat hasilnya..

Gambar.01



Gambar.02

kalau anda masih ragu, langsung saja anda ke blog anda dan klik kanan pada background pilih "Viev Background Image"

Gambar.03


Gambar.04

Setelah itu copy alamat url - nya. Lihat gambar diatas,,
paste di kolom find pada firefox anda,, lihat gambar dibawah,,,

Gambar.05


Nah kalau hasilnya sama seperti gambar di atas, anda tinggal ganti / timpah dengan alamat url gambar yang akan ada jadikan background... lihat gambar.02

itulah cara mengganti background dengan gambar yang kita cari lewat om google... Dan untuk cara mengganti gambar dengan foto kita atau gambar yang akan kita upload, caranya sama dengan yang diatas. Tetapi disini kita harus memasukan gambar kita terlebih dahulu ke internet.... Caranya seperti dibawah ini.

  • Cara 2 (Upload Gambar / Foto)
Untuk mengganti background dengan foto yang kita inginkan atau foto kita, sebaiknya kita upload dulu foto/gambar untuk mendapatkan alamat url dari gambar tersebut...

Untuk mengupload foto/gambar, sebenarnya bayang sekali tempat - tempat untuk mengupload gambar kedalam internet. Salah satunya adalah "imageshack".

Caranya....
  • Langsu saja ke - imageshack atau klik disini
  • Lalu registrasi dulu..
  • Setelah itu login dengan email dan pasword yang anda daftarkan tadi
  • Pada "Media Upload" klik "browse" untuk mencari gambar yang akan anda masukan ke internet.
  • Kalau sudah dapat klik "Upload Now"

gambar.06

  • Lalu pilih "View Full Size"

gambar.07

  • Nah setelah itu tinggal copy alamat url gambar yang anda upload dan tempelkan / paste pada template blog anda..

gambar.08

Catatan : cara untuk menggantinya sepertin di atas. bisa anda lihat langkah - langkah pada gambar.04. Yang paling penting anda sudah mendapatkan alamat url foto / gambar yang ingin anda jadikan background..

semoga berhasil.....!!!!

good luck...!!!!!