1.
Apa yang anda ketahui tentang :
a) Proses : Proses adalah keadaan ketika
sebuah program sedang di eksekusi. Saat komputer berjalan, terdapat banyak
proses yang berjalan secara bersamaan.
b)
Pembuatan Proses : yaitu tindakan yang
dilakukan sistem operasi pada saat sebuah proses akan ditambahkan ke proses
yang sedang dikelola, sistem operasi membuat struktur data yang digunakan untuk
mengelola proses dan mengalokasikan ruang alamat ke proses itu.
c)
Process Control Block : PCB memuat
informasi tentang proses, 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.
2.
5 aktifitas system operasi yang
merupakan contoh dari suatu manajemen proses
1.
Pembuatan dan penghapusan proses
pengguna dan sistem proses.
- Menunda autau melanjutkan proses.
- Menyediakan mekanisme untuk proses sinkronisasi.
- Menyediakan mekanisme untuk proses komunikasi.
- Menyediakan mekanisme untuk proses penanganan deadlock.
3.
Sebuah proses dapat dihentikan pada saat
:
Suatu
proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah
terakhir serta meminta sistem operasi untuk menghapus perintah tersebut dengan
menggunakan system call exit. Pada saat itu, proses dapat mengembalikan data
keluaran kepada proses induk-nya melalui system call wait.
Semua
sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh system
operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses juga dapat
diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya
proses induk melakukan hal ini 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.
4.
Perbedaan dan persamaan dari :
·
One to one VS Many to many
Model satu-ke-satu
memetakan setiap thread pengguna ke thread kernel. Ini menyediakan concurrency
lebih dari model banyak-ke-satu dengan membiarkan thread lain untuk berjalan
ketika suatu thread membuat system callblocking, tetapi juga memungkinkan
beberapa thread untuk berjalan secara paralel pada Multiprocessors.
Satu-satunya kekurangan model ini adalah bahwa menciptakan thread pengguna
memerlukan menciptakan kernel thread yang sesuai. Karena overhead dari
menciptakan thread kernel dapat membebani kinerja aplikasi,sebagian besar
implementasi model ini membatasi jumlah thread yang didukung oleh sistem.
Linux, bersama dengan keluarga sistem operasi Windows-termasuk Windows 95, 98,
NT, 2000, dan xp-implement model satu-ke-satu.

1. Kedua model thread ini sama-sama
memetakan dari thread pengguna
menuju kernel thread.
2.Sama-sama bias menjadwalkan thread lain untuk tetap
berjalan ketika terjadi system call blocking.

One-to-One Many-to-Many
menciptakan thread pengguna memerlukan menciptakan kernel thread yang
sesuai. Jumlah thread pengguna lebih kecil atau sama dengan jumlah kernel
thread. System operasi pendukung windows 95, 98, NT, 2000, dan xp serta Linux
sistem operasi pendukung seperti IRIX, HP-UX, dan Tru64 UNIX.System operasi
Solaris yang didukung dalam versi lebih tua dari Solaris 9.
·
Short term VS Long term
Dalam hal frekuensi pelaksanaan,
Long-term scheduling mengeksekusi relatif jarang dan membuat keputusan kasar
dari apakah atau tidak untuk mengambil proses baru dan mana yang harus diambil.
Pada Short-term scheduling, juga dikenal sebagai operator, mengeksekusi paling
sering dan membuat keputusan halus yang proses untuk mengeksekusi berikutnya.
Short-term scheduling dipanggil kapan suatu peristiwa terjadi yang dapat
menyebabkan pemblokiran proses saat ini atau yang mungkin memberikan kesempatan
untuk mendahului proses yang sedang berjalan mendukung yang lain. Contoh
peristiwa tersebut termasuk ; Jam interupsi , I / O interrupt, Sistem operasi
panggilan dan Sinyal (misalnya,
Semaphore).
Long-term scheduling : Keputusan untuk
menambah proses yang akan dieksekusi
Long-term scheduling menentukan program mana
yang diterima di sistem untuk diproses.Dengan demikian, mengontrol derajat
multiprogramming. Setelah menngenali, pekerjaan atau program pengguna menjadi
sebuah proses dan ditambahkan ke antrian untuk penjadwal jangka pendek. Dalam
beberapa sistem, sebuah proses baru dibuat dimulai dalam kondisi swap-out,
dalam hal ini ditambahkan ke antrian untuk jangka menengah penjadwal. Dalam
sistem batch,atau untuk bagian batch sistem operasi tujuan umum, pekerjaan baru
diserahkan diarahkan ke disk dan diadakan di batch queue. Long-term scheduling
menciptakan proses dari antrian kalau itu bisa. Ada dua keputusan yang terlibat di sini. Pertama,
scheduler harus memutuskan ketika sistem operasi dapat mengambil satu atau lebih
proses tambahan. Kedua, scheduler harus memutuskanpekerjaan atau pekerjaan
untuk menerima dan berubah menjadi proses. Mari kita pertimbangkan secara
singkat dua keputusan. Keputusan untuk kapan harus membuat proses baru umumnya
didorong oleh tingkat yang diinginkan dari proses multiprogramming. proses yang banyak
dibuat, semakin kecil adalah persentase waktu bahwa setiap proses dapat
dieksekusi (yaitu, proses yang lebih bersaing untuk jumlah waktu yang sama
prosesor). Dengan demikian,penjadwal jangka panjang mungkin membatasi derajat
multiprogramming untuk memberikan pelayanan yang memuaskan untuk set saat
proses. Setiap kali pekerjaan berakhir, scheduler dapat memutuskan untuk
menambahkan satu atau lebih pekerjaan baru. Selain itu, jika sebagian kecil dari
waktu bahwa prosesor idle melebihi batas tertentu, jangka panjang scheduler
dapat dipanggil.
Perbedaan utama antara ketiga penjadwal
terletak pada frekuensi eksekusi.
Persamaan kedua scheduling ini sama-sama memprioritaskan proses yang
saling mendukung untuk bias diproses lebih dahulu(lebih awal).
·
FCFS VS SJF
FCFS
Sejauh
ini algoritma penjadwalan CPU-yang paling sederhana adalah pertama datang,
pertama-dilayani (FCFS) algoritma penjadwalan.Dengan skema ini, proses yang
meminta para CPU pertama dialokasikan CPU pertama.Pelaksanaan kebijakan FCFS
adalah mudah dikelola dengan antrian FIFO. Ketika sebuah proses memasuki
antrian siap, yang PCB terhubung ke ekor antrian. Ketika CPU bebas, itu
dialokasikan untuk proses di kepala antrian. Proses berjalan kemudian
dikeluarkan dari antrian. Kode untuk penjadwalan FCFS adalah sederhana untuk
menulis dan memahami. Waktu tunggu rata-rata di bawah kebijakan FCFS, namun,
seringkali cukup panjang.
Algoritma
penjadwalan PCPS adalah nonpreemptive. Setelah CPU telah dialokasikan untuk
sebuah proses, proses yang membuat CPU sampai ia melepaskan CPU, baik dengan
mengakhiri atau dengan meminta 1/0. Algoritma PCFS demikian khususnya
menyusahkan bagi sistem time-sharing, dimana sangat penting bahwa setiap
pengguna mendapatkan bagian dari CPU pada interval teratur.
SJF
(Shortest Job First)
Sebuah
pendekatan yang berbeda untuk penjadwalan CPU adalah terpendek-kerja-pertama
(SJF) Penjadwalan algoritma. Ini rekan algoritma dengan setiap proses panjang
proses di sebelah CPU burst. Ketika CPU tersedia, ditugaskan untuk proses yang
memiliki CPU burst terkecil berikutnya. Jika semburan CPU berikutnya dari dua
proses adalah sama, FCFS penjadwalan digunakan untuk memecahkan dasi.
Perhatikan bahwa lebih tepat Istilah untuk metode penjadwalan akan menjadi
algoritma terpendek-next-CPU-burst, karena penjadwalan tergantung pada panjang
CPU burst berikutnya dari suatu proses, daripada panjang totalnya
Algoritma
penjadwalan SJF adalah provably optinzal, dalam hal ini memberikan rata waktu
tunggu minimum untuk set proses. Memindahkan singkat proses sebelum satu
panjang mengurangi waktu tunggu proses lebih singkat daripada meningkatkan
waktu menunggu dari proses panjang. Akibatnya, rata-rata menunggu penurunan
waktu.Kesulitan yang nyata dengan algoritma SJF adalah mengetahui panjang
berikutnya CPU permintaan. Untuk jangka panjang (kerja) penjadwalan dalam
sistem batch, kita bisa menggunakan sebagai panjang batas waktu proses yang
user menentukan kapan ia menyerahkan pekerjaan.
Persamaan
FCFS (First Come First Serve) vs SJF (Shortest Job First) :
Ø Kedua model scheduling ini memproses I/O dari antrian yang
telah siap untuk diproses.
Perbedaaan FCFS (First Come First
Serve) vs SJF (Shortest Job First) :
Ø FCFS (First Come First Serve)
SJF (Shortest Job First)
Ø Memiliki waktu proses yang lama
Memiliki waktu proses yang singkat
Ø Waktu tunggu rata-rata lebih lama Waktu tunggu
rata- rata lebih singkat
Ø Algoritma yang digunakan :
nonpreemptive Algoritma
yang digunakan : provably optimal
5.
Dua contoh pemrograman dari
multithreading yang dapat meningkatkan sebuahsolusi thread tunggal :
Dalam
pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya.
Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan
sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan
context switch thread.
Akan
susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal
pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses
lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30
kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama
dibandingkan context switch thread.
• Contoh Program 1
class CobaThread2
implements Runnable
{
public
void run()
{
for(int ii
= 0; ii<4; ii++){
System.out.println("Ini
CobaThread2");
Test.istirohat(7);
}
}
public
class Test
{
public
static void main (String[] args)
{
Thread t1
= new CobaThread1();
Thread t2
= new Thread (new CobaThread2());
t1.start();
t2.start();
for (int
ii = 0; ii<8; ii++){
System.out.println("Thread
UTAMA");
istirohat(5);
}
}
public
static void istirohat(int tunda)
{
try{
Thread.sleep(tunda*100);
}
catch(InterruptedException e) {}
}
}
•Contoh Program 2
class
CobaThread3 implements Runnable
{
public
void run(){
while
(true){
System.out.println("saya
thread CobaThread3");
if
(Thread.currentThread.isInterrupted()) //cek status
break;
}
}
}