Archive for April 2016



TEKNIK PENJADWALAN PROSESOR

Istilah-istilah :
    Pekerjaan / Job
User menyerahkan pekerjaan mereka pada komputer. Ada pekerjaan yang panjang, sedang dan pendek. Untuk dapat diolah oleh komputer harus dianalisis dahulu untuk mengetahui bagaimana sebaiknya pekerjaan itu dilakukan.
    Terobosan / Troughput
Pekerjaan dalam komputer dilaksanakan langkah demi langkah, sehingga dapat dikatakan bahwa troughput adalah banyaknya pekerjaan yang dapat diselesaikan oleh sistem komputer dalam satu satuan waktu.
    Tugas / Task
Program yang terdiri dari banyak bagian program dan bagian program yang dikerjakan merupakan tugas bagi sistem operasi.
-    Tugas yang sedang dilaksanakan, adalah tugas yang menemukan semua sumber daya yang diperlukannya, termasuk prosesor.
-    Tugas yang siap dilaksanakan, adalah tugas yang menemukan semua sumber daya yang diperlukannya, kecuali prosesor.
-    Tugas yang belum dilaksanakan, adalah tugas yang belum menemukan sumber daya yang diperlukannya.
    Proses / Process
Tugas yang telah dijadwalkan untuk menemukan prosesor / tugas yang telah diterima oleh penjadwalan.


Keterangan :
•    GK = galur kendali / control bus
•    GD = galur data / data bus, tempat informasi data berlalu lintas antar register
•    GA = galur alamat / address bus, tempat informasi alamat memori berlalu lintas antar register karena setiap kali hanya ada 1 informasi dalam galur ini, maka lalu lintas diatur oleh tanda waktu dari kunci waktu. Tanda waktu dibentuk oleh basis waktu
•    A = akumulator, register serba guna yang dapat menerima  berbagai informasi
•    SLA = satuan logika dan aritmatika / ALU, tempat pengolahan, contohnya untuk menghitung 3+4=?, maka data 3 diletakkan di register A dan data  di register B. proses penjumlahan terjadi di SLA / ALU, hasil = 7 diletakkan kembali di register A
•    B = register, register yang menerima informasi yang akan diolah bersama oleh isi register A
•    PT = pencacah program / program counter, program terletak dalam memori kerja pada alamat memori tertentu. PT menerima alamat memori awal saat diolah oleh prosesor dan juga menyaring dan menentukan alamat memori mana saja yang isinya akan dibawa ke prosesor dan hanya alamat yang sesuai dengan letak program yang sedang diolah yang diperbolehkan PT masuk ke prosesor. PT mencacah dirinya sebesar 1 cacahan dan dengan cara yang sama akan melayani alamat berikutnya sampai alamat terakhir.
•    RI = register instruksi, membawa dan menerima informasi dari memori kerja dan diperiksa.
•    SK = satuan kendali / control unit, menerima informasi  instruksi program dan sesuai dengan isi instruksi SK mengendalikan kegiatan dalam prosesor.
•    RA = register alamat / address register, mencatat alamat memori yang isinya akan dicapai alamat itu di memori kerja. Jika pembacaan data dari memori kerja, data / isi dari memori kerja dibaca dan disalin ke RD, tetapi jika pada penulisan data ke memori kerja, maka isi RD disalin ke alamat memori kerja.
•    RD = register data.
•    RD dan RA bekerja sama dalam kegiatan pengambilan dan pengiriman data dari dan ke memori kerja.

2 siklus kerja prosesor :
1.    Siklus Jemput
a.    PT berisi alamat awal program pada memori kerja yang disesuaikan dengan isinya di memori kerja
b.    RA = PT, alamat memori PT diteruskan ke RA
c.    RA  RD, isi program diambil dari memori kerja dan diletakkan di RD
d.    RI = RD, dari RD program diteruskan ke RI
e.    PT= PT + 1, pencacah untuk melanjutkan siklus berikutnya
f.    Go to point b
2.    Siklus Kerja
a.    RI = SK, isi program di RI akan diteruskan ke SK, RI berisi instruksi untuk melaksanakan sesuatu
b.    SK  seluruh kegiatan di dalam prosesor dikendalikan sehingga kerja yang dimaksud oleh bagian program itu dirampungkan.

2 jenis kerja / proses :
1.    Tugas / proses sistem, berasal dari program sistem yaitu dari sistem bahasa, utilitas, operasi, dimana prosesor melayani sistem (prosesor dikuasai sistem / kontek sistem)
2.    Tugas / proses aplikasi, berasal dari program aplikasi, dimana prosesor melayani aplikasi (prosesor dikuasai aplikasi / kontek aplikasi)

Proses Serentak / Concurrent Process :
Yaitu prosesor menghadapi banyak tugas dan proses.
a.    Multiprogramming, sistem komputer lebih dari 1 program sekaligus dalam pelaksanaan proses.
b.    Multitasking, banyak bagian program yang dipersiapkan untuk diolah oleh prosesor namun belum sempat dijadwalkan untuk memperoleh prosesor.
c.    Multiprocessing, sejumlah tugas yang telah dijadwalkan untuk menggunakan prosesor.
d.    Multiplexing, menggunakan pertukaran kendali dalam selang waktu terpisah-pisah.
e.    Time sharing / rentang waktu, secara bersamaan sejumlah pemakai dapat menggunakan  1 sistem komputer, sehingga setiap pemakai merasa bahwa seluruh sistem komputer seolah-olah untuk dirinya.

Proses Berurutan :
Sejumlah proses berlangsung secara berselingan dan tidak ada diantara mereka yang bertumpang tindih waktu, sebelum 1 proses selesai, proses berikutnya belum bekerja.

Proses Berurutan :
Sejumlah proses berlangsung secara berselingan dan tidak ada diantara mereka yang bertumpang tindih waktu, sebelum 1 proses selesai, proses berikutnya belum bekerja.

                          A                             
                                                      B                     
                                                                               C                 

Proses Paralel :
-    pada proses tunggal, proses serentak bukan proses paralel karena proses tersebut di gali 1 demi 1, sepenggal demi sepenggal.
-    Pada proses jamak, proses dapat dilaksanakan secara serempak diantara banyak prosesor sehingga disebut proses paralel
                                 A                                      
                                                                           B                                      
                                                                                                        C                          

Proses Serentak  Berpenggalan :
Ada penggalan dari 1 proses yang berselingan dengan penggalan dari proses lain dan ada penggalan dari proses pertama yang bertumpang tindih waktu dengan penggalan proses kedua.
A                     A1                                                       A2                            
B                                                 B1                                          B2                 
C                         C1                                                               C2                    

Istilah dalam penjadwalan proses :
    Scheduler adalah bagian sistem operasi yang mengatur penjadwalan eksekusi proses-proses.
    Algoritma penjadwalan (scheduling algorithm) adalah algoritma yang digunakan.
    Penjadwalan Proses
o    Antrian, karena banyak proses yang muncul secara serentak maka dibuat antrian di depan prosesor, yang berada dalam keadaan siap dan hanya ada 1 proses yang berada dalam status kerja
o    Prioritas, mendahulukan pada antrian proses karena tidak semua proses sama pentingnya, sehingga dibuat suatu prioritas. Dalam prioritas, pekerjaan pada prosesor diselesaikan dahulu baru proses berprioritas akan di proses
o    Preempsi, sama dengan prioritas, tetapi pada preempsi jika ada proses yang mendapatkan preempsi maka preemsi akan menghentikan kerja prosesor dan mengeluarkan pekerjaan di dalam prosesor itu, sehingga proses berpreempsi dapat dilayani prosesor. Dan setelah proses berpreempsi selesai dilaksanakan, prosesor akan melaksanakan sisa proses yang dikeluarkan dari pekerjaannya tadi

    Jangka penjadwalan
Semua antrian dan penantian (contohnya yang dikeluarkan karena preempsi.
a.    Penjadwalan jangka pendek / short term scheduling / low level scheduling, yaitu mengurus masuknya antrian siap ke prosesor serta antrian siap ke alat peripheral I/O, yang mengurus prioritas dan preempsi.
b.    Penjadwalan jangka media / medium term scheduling / intermediate level scheduling, yaitu mengurus terhadap proses yang dikeluarkan dari prosesor yang belum rampung dikerjakan dan melanjutkan pekerjaan proses tersebut di prosesor.
c.    Penjadwalan jangka panjang / long term scheduling / high level scheduling, yaitu mengurus masuknya pekerjaan baru berupa penentuan pekerjaan baru mana yang boleh diterima dan tugas disini diubah menjadi proses.
    Tujuan penjadwalan / kriteria baik tidaknya suatu algoritma penjadwalan :
a.    Fairness / pelayanan yang adil untuk semua pekerjaan
b.    Throughput / memaksimumkan throughput
c.    Efficiency / memaksimumkan pemakaian prosesor
d.    Overhead / meminimumkan waktu tunggu
e.    Pemakaian sumber daya seimbang
f.    Tidak terjadi penundaan waktu tak hingga
g.    Kegiatan sumber daya dapat dideteksi terlebih dahulu

    Perhitungan kerja prosesor
•    t adalah lama proses pada prosesor, lama waktu sesungguhnya yang diperlukan untuk mengolah proses dalam prosesor.
•    T adalah lama tanggap pada prosesor, lama waktu yang diperlukan oleh prosesor sejak tiba sampai dengan rampung diolah oleh prosesor, terdapat waktu tunggu dalam antrian / dalam preempsi.
o    Lama tanggap turn around time, yaitu memperhitungkan lama waktu yang diperlukan oleh proses untuk keluaran
o    Lama tanggap respon time, yaitu tidak memperhitungkan lama waktu yang diperlukan oleh proses untuk keluaran
•    Tr adalah lama tanggap rata-rata, yaitu perbandingan lama tanggap setiap proses (Ti) dengan jumlah proses serentak yaitu Tr =  Ti / N
•    S adalah waktu sia-sia, waktu yang terbuang di dalam antrian / selama terkena preempsi yaitu selisih antara lama tanggap dengan lama proses (T-t)
•    Rt adalah rasio tanggap, perbandingan antara lama proses terhadap lama tanggap, Rt = t / T
•    Rp adalah rasio penalti, perbandingan antara lama tanggap terhadap lama proses, Rp = T/t  dan karena t  T, maka Rt < 1 dan Rp >1

Penjadwalan Prosesor
     Penjadwalan satu tingkat
a.    Pertama Tiba Pertama Dilayani (PTPD)
b.    Proses Terpendek Dipertamakan (PTD)
c.    Proses Terpendek Dipertamakan Preempsi (PTDP)
d.    Rasio Penalti Tertinggi Dipertamakan (RPTD)
e.    Putar Gelang (PG)
f.    Putar Gelang Prioritas Berubah (PGPB)
    Penjadwalan multi tingkat
a.    Antrian multi tingkat
b.    Antrian multi tingkat berbalikan

Penjadwalan Satu Tingkat
    Pertama Tiba Pertama Dilayani (PTPD) / First Come First Served (FCFS)
Penjadwalan ini murni antrian, tanpa prioritas tanpa preempsi.

Tr cukup besar, jika dibandingkan dengan lama tanggap dari masing-masing proses.



Lama tanggap  saat rampung karena perbedaan saat tiba.

    Proses Terpendek Dipertamakan (PTD) / Shortest Job First (SJF)
Penjadwalan ini adalah antrian dengan prioritas tanpa preempsi, yang menjadi prioritas adalah proses yang terpendek (tersingkat), makin pendek proses, makin tinggi prioritasnya.


Tr lebih singkat, jika dibandingkan dengan PTPD

Disusun urutan proses berdasarkan prioritasnya, yaitu CDAB, tetapi pada saat tiba = 0, proses terpendek C belum datang, maka mengerjakan proses A dahulu, setelah selesai pada saat 5, proses C sudah datang, sehingga C dikerjakan dan seterusnya seperti :

Keuntungan : memperkecil rata-rata lama tanggap
Kelemahan : layanan  terhadap  proses  panjang  bisa tidak terlayani jika proses pendek datang terus.


    Proses Terpendek Dipertamakan Preempsi (PTDP)
Preemptive Shortest Job First (PSJF)
Penjadwalan ini dengan prioritas dengan preempsi, yang menjadi pioritas adalah  sisa proses. Proses yang terpendek bisa didahulukan dengan cara membandingkan sisa waktu proses yang sedang dilaksanakan dengan proses yang tiba, dengan  preempsi mengeluarkan proses yang sedang diolah untuk melaksanakan proses yang lebih pendek / singkat.

•    Pada saat 0, proses A dikerjakan karena A datang pertama 
•    Pada saat 2, B datang, B=3, sisa A=5, B<A maka A dikeluarkan dari proses, B dikerjakan
•    Pada saat 4, C datang, C=9, sisa A=5, sisa B=1, B<A<C, maka B dikerjakan
•    Pada saat 5, D datang, D=4, sisa A=5, sisa C=9, D<A<C, maka D dikerjakan sampai selesai karena tidak ada proses yang datang lagi
•    A<C maka A dikerjakan
•    C dikerjakan
•    Selesai



Karena preempsi, PTDP lebih baik dari PTD dalam hal kecilnya Tr, tetapi untuk proses panjang lebih lama dibandingkan PTD.

    Rasio Penalti Tertinggi Dipertamakan (PTD) /
Highest Penalti Ratio Next (HPRN)
Penjadwalan dengan prioritas tanpa preempsi. Yang menjadi prioritas adalah besarnya rasio pinalti. Tetap mendahulukan proses pendek ditambah dengan mempertimbangkan rasio penaltinya, yang ditentukan berdasarkan lama waktu antriannya. Sehingga prioritas proses panjang akan turut meningkat melalui peningkatan rasio pinalti, sehingga pada suatu saat proses panjang pada antrian yang telah lama menunggu akan menyusul proses pendek.     S = (T-t) ; Rp = T/t = (s+t)/t





    Putar Gelang (PG) / Round Robin (RR)
Penjadwalan ini tanpa prioritas, dengan preempsi. Secara bergiliran berdasarkan antrian (tanpa prioritas) prosesor melayani sejenak setiap proses tergantung besarnya quantum waktu. Secara berturut-turut proses yang dilayani prosesor dan belum rampung akan kembali ke akhir antrian yang ada, sehingga pergiliran ini berputar seperti gelang. Dan hanya proses yang telah rampung terlayani yang meninggalkan prosesor dan antrian tersebut. Jadi setiap proses dilayani selama quantum waktu tertentu secara bergiliran.
Quantum waktu : waktu sejenak yang digunakan oleh prosesor untuk melayani setiap proses. Perubahan quantum waktu membedakan hasil layanan terhadap antrian yang sama.


Secara merata, penjadwalan putar gelang memperlambat proses yang tiba dan secara merata pula semua proses dilayani oleh prosesor, sehingga biasanya digunakan pada proses interaktif jika semua proses menuntut dikerjakan segera.

Penjadwalan dengan prioritas berubah-ubah
Penjadwalan yang menggunakan prioritas dapat diubah-ubah menjadi prioritas lainnya.
1.    Penjadwalan tanpa preempsi dengan prioritas berubah-ubah  P = f(s,t,u)
Dengan :     p = prioritas;         s = waktu sia sia;
t = lama proses    u = tarif sewa
2.    Penjadwalan dengan preempsi dengan prioritas berubah-ubah (PGPB = putar gelang prioritas berubah-ubah) dimana prioritas tergantung pada proses lama dan proses baru, maka jika : a = koefisien untuk proses lama dan b = koefisien untuk proses baru,
    b/a = 1  prioritas sama
    b/a = 0  prioritas lama
        b/a < 1  prioritas baru < lama
    b/a > 1  prioritas baru > lama

Penjadwalan Multitingkat
    Proses dibedakan tingkatnya berdasarkan kepentingannya.
    Penjadwalan pada tiap tingkat dapat bermacam-macam.
    Pada antrian multi tingkat berbalikan, tingkat satu dan lainnya saling berhubungan.

    Antrian Multi Tingkat (Multi level queue)
Mengumpulkan proses-proses yang berkepentingan sama dalam 1 tingkat. Proses dikerjakan tingkat demi tingkat dari tingkat tertinggi sampai dengan tingkat terendah dimana setiap tingkat telah rampung dikerjakan


    Antrian Multi Tingkat Berbalikan /
Feedback multi level queue



Metoda Evaluasi Penjadwalan
    evaluasi analitik
a.    pemodelan deterministik
pekerjaan sudah ditetapkan terlebih dahulu, menerapkan berbagai penjadwalan dan dievaluasi hasilnya.

Keuntungan : ketepatan untuk menunjukkan rata-rata lama tanggap / rata-rata waktu sia-sia
Kelemahan : hasil evaluasi hanya berlaku untuk proses yang telah ditetapkan

a.    analisis model antrian
menganggap sistem komputer sebagai suatu jaringan alat layan, menggunakan rumus distribusi probabilitas untuk memperkirakan bentuk antrian dan bentuk pelaksanaan proses. Sasaran rumus distribusi probabilitas adalah untuk lama proses, saat tiba dan kecepatan layan. Sehingga dapat menentukan analisis jaringan antrian, dengan ditetapkan rumus litte, yaitu : n = u . s, dengan n = rerata panjang antrian,  s  =  rerata  waktu  sia-sia  /  waktu  tunggu, u = rerata kecepatan tiba proses baru.
Kelemahan : Pengambilan model cukup rumit untuk sistem tertentu dan model tidak selalu cocok dengan keadaan yang sebenarnya

    Metode Simulasi
Metode ini berdasarkan sejumlah variabel yang disimulasikan sistem komputer yang digunakan, memerlukan data masukan melalui bilangan acak.
Keuntungan : jika ditangani dengan baik maka metode ini cukup baik.
Kelemahan : mahal, karena banyak menggunakan jam prosesor dan ruang memori.

    Metode Implementasi
Metode ini bekerja dengan cara mengamati hasil dari implementasi setiap penjadwalan / menerapkan berbagai penjadwalan pada pekerjaan yang sesungguhnya.
Keuntungan : cukup cermat.
Kelemahan : perubahan macam penjadwalan mengganggu pemakai komputer dan perubahan jenis pekerjaan mengganggu penjadwalan.



Teknik Penjadwalan Prosesor

Posted by Pangeran1diot
Jumat, 08 April 2016

Gambar (a) :
-    mempunyai : program counter, stack, register set, address space sendiri
-    independent satu sama lain dan berkomunikasi lewat IPC yang disediakan sistem, seperti : semaphore, monitor, atau message

Gambar (b) :
-    multiple threads of control (THREAD atau lightweight Process). Thread mirip seperti little-mini process. Setiap thread berjalan sekuensial, yang mempunyai program counter dan stack sendiri. Thread juga men-share CPU seperti proses.
-    Thread dalam satu proses menempati address space yang sama, tidak ada proteksi penggunaan memori antar thread karena proses dimiliki oleh satu user.
-    Thread dapat berada pada empat state yang berbeda, seperti process (running, blocked, ready, terminated)

Ada 3 model process pada server :
1.    thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls
2.    single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik
3.    finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram


Masalah – masalah pada IPC :

Race Condition :
Suatu kondisi dimana dua atau lebih proses mengakses shared memory / data pada saat yang bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki
Contoh rase condition :
    Print spooler
    Contoh : berupa kumpulan data-data yang akan di cetak.
    Spooler directory



    Proses A  cek slot input yang kosong (7) untuk mencetak suatu data dan stop
    Interupsi ………
    Proses B  meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot kosong berikutnya adalah 7+1=8)
    :  prosesor mengerjakan proses lain
    Proses A dilanjutkan  meletakkan data yang akan di print di slot (7), sehingga meng-overwrite data proses B yang diletakkan di slot (7)
    Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan.

Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical section yang sama tidak memasuki critical section pada saat yang bersamaan.

Critical Section / seksi kritis :
Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition.
4 kondisi untuk mencegah race condition :
a.    Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan  / simultan
b.    Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
c.    Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain
d.    Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.

Mutual Exclusion (MuTex) With Busy Waiting :
Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.

Jenis-jenis mutual exclusion :
1.    Disabling interrupt / mematikan interupsi
Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu dan tidak berpengaruh terhadap CPU lain

2.    Lock  variables
Setiap proses yang akan mengakses ke critical section-nya harus meng-cek lock variable. Jika 0 berarti proses dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu sampai lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki critical section-nya pada saat yang bersamaan. Sewaktu satu proses meng-cek lock variable = 0, pada saat akan men-set 1 ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi race condition.

3.    Strict alternation
Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-nya bukanlah ide yang baik jika proses lebih lambat dari yang lain.
Contohnya :
While (true)
{
    while (turn != 0)             /*wait*/;
    critical_section ( );
    turn = 1;
    noncritical_section ( );
}
while (true)
{
    while (turn != 1)            /*wait*/;
    critical_section ( );
    turn = 0;
noncritical_section ( );
}

4.    Peterson’s Solution
Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses akan menunggu sampai FALSE.
Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang disimpan di turn adalah data yang ditulis terakhir.
Contohnya :
# include “prototype.h”
# define FALSE    0
# define TRUE    1
# define N        2        /*banyaknya proses*/

int turn;
int interested [N];            /*nilai awal di-set = 0 (false)*/
void enter_region(int process)        /*proses = 1 atau 0*/

{
int other;                /*jumlah proses lainnya*/
other = 1 – process;            /*proses lainnya*/
interested[process] = TRUE;        /*menunjukkan tertarik*/
turn = process;                /*set flag*/
while (turn==process && interested[other] == TRUE)
}

void leave_region(int process)        /*proses yang selesai*/
{
interested[process] = FALSE;     /*meninggalkan critical region*/
}

5.    Test and Set Lock Instruction / Instruksi TSL
Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section)
Contoh :
Enter_region :
Tsl reg,flag                | copy flag ke reg dan set flag = 1
Cmp reg,#0            | apakah flag = 0
Jnz enter_region            |jika <> 0 loop lagi
    Ret                |return ke caller, masuk critical region
   
Leave_region :
    Mov flag, #0            |simpan 0 ke flag
    Ret                |return ke caller
Proses harus memanggil ini pada saat yang tepat.
Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem inversi prioritas.

6.    Sleep and Wake Up
Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang diperlukan telah tersedia.
SLEEP : sistem call membuat proses yang memanggil di blok (blocked)
WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready
Contoh :
Procedure-Consumer Problem (bounded buffer)
Beberapa proses share buffer dengan ukuran tetap
    Jika buffer penuh producer sleep
    Jika buffer kosong consumer sleep
    Jika buffer mulai kosong producer wake up
    Jika buffer terisi consumer wake up
Masih ada kemungkinan terjadi race condition

7.    Semaphore (Dijkstra, 1965)
Meng-cek, mengubah dan sleep        1 instruksi yang
Mengubah dan wake up            tdk dpt dipisahkan
Instruksi tersebut sangat berguna untuk sinkronisasi.
Dapat diimplementasikan untuk memecahkan producer-consumer problem.
Mekanisme-nya menggunakan :
-    variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda
-    bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang tertunda

Dua macam operasi terhadap semaphore :
1.    DOWN(S) :
If S >= 0 then
            S := S-1;
            Else sleep (S)
End;

2.    UP(S) :
S := S + 1;
If S <= 0 then wakeup(S)
End;

Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).

8.    Event Counters (Reed and Kanodia, 1979)
Tiga operasi terhadap event counter (E) :
1.    Read (E) : return current value of E
2.    Advance (E) : Atomically increment E by 1
3.    Wait until E has a value of v or more

9.    Monitor
-    Higher level synchronization primitive.
-    Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau paket.
-    Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung struktur data internal dari monitor.

10.    Message Passing

Menggunakan 2 primitive :
1.    send (destination, &message)
2.    receive (source, &message)
Beberapa isu pada message passing system : message lost; acknowledgement; domains; authentication; performance

Masalah – masalah pada IPC

Posted by Pangeran1diot
2 cara interupsi pada processor :
1.    Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)
2.    Interupsi Tanya / Polling
Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)
    Interupsi dapat di-enable dan disable tergantung pada levelnya.
    Pembangkit interupsi dapat berasal dari :
o    Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.
o    Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.
o    Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
o    Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.
o    Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
o    Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.
o    Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi.

    Interupsi vector : Berisi alamat prosedur service interupsi
    Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.

Tindak lanjut interupsi :
1.    Penata interupsi / interrupt handler
jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.
a.    Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
b.    Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
c.    Penata interupsi mengidentifikasi jenis dan asal interupsi.
d.    Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
e.    Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.
2.    Penata keliru / error handler
yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.
a.       Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.
b.      Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
c.      Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.




Keterangan  :
1.    Rampung
Program selesai dilaksanakan oleh prosesor sehingga penyerahan kendali proses ke pekerjaan baru / perintah baru karena proses yang dikerjakan oleh prosesor telah selesai.
2.    Keliru
Jika menemukan kekeliruan akan ditampilkan, kemudian kendali prosesor diserahkan pada perintah berikutnya.
3.    Permintaan bukan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses semula, misalnya interupsi berkala.
4.    Permintaan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya, tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali proses semula, tidak berlangsung segera / tunggu.
5.    Rampung dari alat I/O
Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor.

Catt:
1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan
3,4,5 mengembalikan prosesor ke proses yang terinterupsi.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :
1.    hardware memasukkan program counter, dl.l.
memasukkan ke dalam stack pencacah program
2.    Hardware memuatkan (load) program counter baru dari vector interrupsi
3.    Prosedur bahasa rakitan menyimpan isi register
4.    Prosedur bahasa rakitan men-set stack yang baru
5.    Prosedur C menandai proses servis siap (ready)
6.    Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
7.    Prosedur C kembali ke modus bahasa rakitan
8.    Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.



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














Interupsi Pada Prosesor

Posted by Pangeran1diot


MANAJEMEN PROSES


Proses :
Adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.

Konsep dasar :
1.      Multiprogramming
Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat / bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.
2.      Pseudoparallelism
Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level).

Model Proses :
1.    Sequential Process / bergantian
2.    Multiprogramming
3.    CPU Switching  peralihan prosedur  dalam mengolah 1 proses ke proses lainnya. 
Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataan nya adalah multiprograming. maka akan lebih mudah mengagap kumpulan proses yang lain berjalan secara parallel.



Keterangan :
a.    multiprogramming untuk 4 program di memori
b.    model konseptual untuk 4 proses independent, sequential
c.    hanya 1 program yang aktif dalam 1 waktu = pseudoparalel

Hirarki Proses
Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.

1.    Create & Destroy Proses
Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses.
2.    Fork System Call
Mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya.
Contoh :
Parent        children
    children        children
    children




Pada UNIX, parent dan child process running secara parallel.
Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya : MSDOS sebagai parent dan program aplikasi sebagai child.
Process scheduler : untuk pengaturan eksekusi proses


3 Status proses / bagian keadaan proses :
1.    Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
2.    Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya)
Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
3.    Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan)


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.



    Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks.
    Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi
    Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari sistem operasi, sistem bahasa dan sistem utilitas.
    Blok kendali proses : suatu bagian memori untuk mencatat keadaan proses, yang terbagi atas wilayah dimana setiap wilayah untuk mencatat informasi yang berbeda.













Manajemen Proses

Posted by Pangeran1diot

Jam

Diberdayakan oleh Blogger.

Sosial Media

Pet

Bantu saya dalam pemeliharan Hamster
- Beri makan dengan cara mengklik layar disekitar pet
- Klik lingkaran kuning

- Copyright © 2016 -STMIK Profesional Makassar- Tugas :   - Edited by :Ilham Surianto (05134171) -