1.
Apa yang anda ketahui tentang
a.
Proses
Proses adalah aktifitas dalam mengeksekusi program. Proses
merupakan salah satu konsep penting dalam sistem opreasi. Dengan proses,
operasi virtual CPU dapat dilakukan pada komputer ber-CPU tunggal. Tanpa konsep
proses, komputasi modern tidak akan pernah ada.
Di era komputasi modern saat ini, user sering melakukan beberapa hal dengan komputernya dalam waktu yang bersamaan. Mereka bisa membuat dokumen Word sembari mendengarkan musik. Hal yang demikian bisa dilakukan oleh komputer berkat adanya konsep proses.
Di era komputasi modern saat ini, user sering melakukan beberapa hal dengan komputernya dalam waktu yang bersamaan. Mereka bisa membuat dokumen Word sembari mendengarkan musik. Hal yang demikian bisa dilakukan oleh komputer berkat adanya konsep proses.
b.
Pembuatan Proses
Create Process 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.
Alur Pembuatan Proses adalah
sebagai berikut:
·
Memberi identitas (nama) pada proses yang dibuat
·
Menyisipkan proses pada list proses atau tabel
proses
·
Menentukan prioritas awal proses
·
Membuat PCB
·
Mengalokasikan resource awal bagi proses tersebut.
Create process atau pembuatan proses dilakukan karena alasan-alasan sebagai
berikut :
· Batch Job Baru. Sistem Operasi diberikan dengan suatu
aliran batch job control, biasanya pada pita atau disk. Pada saat disiapkan
untuk mengambil job yang baru, sisitem operasi akan membaca rangkain job
control command berikutnya.
·
Logon interaktif. Seorang pengguna di sebuah terminal masuk kesistem
·
Dibuat oleh OS untuk menyediakan layanan. Sistem operasi dapat membuat suatu proses untuk melakukan fungsi
atas naa program pengguna, tanpa mengharuskan pengguna menunggu (misalnya,
pencetakan)
·
Dibiakan (spawned) oleh proses yang telah ada.Untuk memenuhi tujuan modularitas atau untuk
memanfaatkan paralelisme, sebuah program pengguna dapat mengatur pembiakan
sejumlah proses
c.ProcessControl Block
Process Control
Block (PCB, juga disebut Tugas Pengendalian Blok, Tugas Struct, atau
Switchframe) adalah struktur data dalam sistem operasi kernel yang berisi
informasi yang dibutuhkan untuk mengelola proses tertentu. PCB adalah
"manifestasi dari sebuah proses dalam sebuah sistem operasi".
Jika misi dari sistem operasi adalah untuk mengelola sumber daya komputasi atas nama proses, maka harus terus diberitahu tentang status dari setiap proses dan sumber daya. Pendekatan ini biasanya diikuti untuk mewakili informasi ini untuk membuat dan memperbarui tabel status setiap entitas yang relevan, seperti memori, perangkat I / O, file dan proses. Tabel memori, misalnya, mungkin berisi informasi tentang alokasi utama dan sekunder (virtual) memori untuk setiap proses, otorisasi atribut untuk mengakses daerah memori bersama antara proses yang berbeda, dll I / O tabel mungkin memiliki catatan yang menyatakan ketersediaan perangkat atau tugas untuk suatu proses, status I / O operasi dieksekusi, lokasi buffer memori yang digunakan untuk mereka, dll tabel Berkas memberikan info tentang lokasi dan status file (tentu saja, apa lagi? lebih lanjut tentang ini nanti) . Akhirnya, tabel proses menyimpan data OS perlu mengelola proses. Setidaknya bagian dari proses kontrol struktur data selalu terjaga dalam memori utama, meskipun lokasi yang tepat dan konfigurasi bervariasi dengan OS dan teknik manajemen memori yang digunakannya. Berikut ini kita akan lihat dengan gambar proses manifestasi fisik lengkap dari sebuah proses, yang meliputi instruksi, daerah data program (baik statis dan dinamis - misalnya setidaknya stack untuk panggilan prosedur dan parameter passing) dan informasi manajemen proses. Kita akan menyebutnya set terakhir blok kontrol proses (PCB).
Peran PCB adalah sentral dalam proses manajemen: mereka diakses dan / atau dimodifikasi oleh sebagian besar perusahaan OS, termasuk mereka yang terlibat dengan penjadwalan, memori dan I / O akses sumber daya dan pemantauan kinerja. Dapat dikatakan bahwa himpunan dari PCB mendefinisikan keadaan saat ini dari sistem operasi. Data penataan untuk proses ini sering dilakukan dalam hal PCB. Misalnya, pointer ke PCB lain di dalam sebuah PCB memungkinkan penciptaan mereka antrian proses di berbagai negara penjadwalan ("siap", "diblokir", dll) yang kami sebutkan sebelumnya.
Dalam sistem multitasking canggih modern PCB menyimpan banyak item data yang berbeda, semua yang diperlukan untuk manajemen proses yang benar dan efisien. Meskipun rincian dari struktur ini jelas bergantung pada sistem, kita dapat mengidentifikasi beberapa bagian yang sangat umum, dan mengklasifikasikan mereka dalam tiga kategori utama. Data proses identifikasi, data negara Processor, data kontrol Proses, data identifikasi Proses selalu menyertakan pengenal unik untuk proses tersebut (hampir selalu nomor integer) dan, dalam sistem multiuser-multitasking, Data seperti identifier dari proses induk, pengidentifikasi pengguna , kelompok pengidentifikasi pengguna, dll proses id sangat relevan, karena itu sering digunakan untuk referensi silang tabel OS didefinisikan di atas, misalnya memungkinkan untuk mengidentifikasi proses yang menggunakan yang perangkat I / O, atau daerah memori.
Data negara prosesor adalah mereka potongan informasi yang mendefinisikan status dari proses ketika itu ditangguhkan, yang memungkinkan OS untuk restart nanti dan masih mengeksekusi dengan benar. Ini selalu menyertakan isi CPU tujuan umum register, proses Status kata CPU, tumpukan dan bingkai pointer dll.
Jika misi dari sistem operasi adalah untuk mengelola sumber daya komputasi atas nama proses, maka harus terus diberitahu tentang status dari setiap proses dan sumber daya. Pendekatan ini biasanya diikuti untuk mewakili informasi ini untuk membuat dan memperbarui tabel status setiap entitas yang relevan, seperti memori, perangkat I / O, file dan proses. Tabel memori, misalnya, mungkin berisi informasi tentang alokasi utama dan sekunder (virtual) memori untuk setiap proses, otorisasi atribut untuk mengakses daerah memori bersama antara proses yang berbeda, dll I / O tabel mungkin memiliki catatan yang menyatakan ketersediaan perangkat atau tugas untuk suatu proses, status I / O operasi dieksekusi, lokasi buffer memori yang digunakan untuk mereka, dll tabel Berkas memberikan info tentang lokasi dan status file (tentu saja, apa lagi? lebih lanjut tentang ini nanti) . Akhirnya, tabel proses menyimpan data OS perlu mengelola proses. Setidaknya bagian dari proses kontrol struktur data selalu terjaga dalam memori utama, meskipun lokasi yang tepat dan konfigurasi bervariasi dengan OS dan teknik manajemen memori yang digunakannya. Berikut ini kita akan lihat dengan gambar proses manifestasi fisik lengkap dari sebuah proses, yang meliputi instruksi, daerah data program (baik statis dan dinamis - misalnya setidaknya stack untuk panggilan prosedur dan parameter passing) dan informasi manajemen proses. Kita akan menyebutnya set terakhir blok kontrol proses (PCB).
Peran PCB adalah sentral dalam proses manajemen: mereka diakses dan / atau dimodifikasi oleh sebagian besar perusahaan OS, termasuk mereka yang terlibat dengan penjadwalan, memori dan I / O akses sumber daya dan pemantauan kinerja. Dapat dikatakan bahwa himpunan dari PCB mendefinisikan keadaan saat ini dari sistem operasi. Data penataan untuk proses ini sering dilakukan dalam hal PCB. Misalnya, pointer ke PCB lain di dalam sebuah PCB memungkinkan penciptaan mereka antrian proses di berbagai negara penjadwalan ("siap", "diblokir", dll) yang kami sebutkan sebelumnya.
Dalam sistem multitasking canggih modern PCB menyimpan banyak item data yang berbeda, semua yang diperlukan untuk manajemen proses yang benar dan efisien. Meskipun rincian dari struktur ini jelas bergantung pada sistem, kita dapat mengidentifikasi beberapa bagian yang sangat umum, dan mengklasifikasikan mereka dalam tiga kategori utama. Data proses identifikasi, data negara Processor, data kontrol Proses, data identifikasi Proses selalu menyertakan pengenal unik untuk proses tersebut (hampir selalu nomor integer) dan, dalam sistem multiuser-multitasking, Data seperti identifier dari proses induk, pengidentifikasi pengguna , kelompok pengidentifikasi pengguna, dll proses id sangat relevan, karena itu sering digunakan untuk referensi silang tabel OS didefinisikan di atas, misalnya memungkinkan untuk mengidentifikasi proses yang menggunakan yang perangkat I / O, atau daerah memori.
Data negara prosesor adalah mereka potongan informasi yang mendefinisikan status dari proses ketika itu ditangguhkan, yang memungkinkan OS untuk restart nanti dan masih mengeksekusi dengan benar. Ini selalu menyertakan isi CPU tujuan umum register, proses Status kata CPU, tumpukan dan bingkai pointer dll.
2.
Sebutkan 5 aktivitas system operasi yang
merupakan contoh darisuatu manajeman prosses
Lima
aktivitas system operasi
·
Pembuatan
dan penghapusan proses pengguna dan sistem operasi
Tugas sistem operasi adalah memberikan sumberdaya yang dibutuhkan oleh sebuah prosess, yang kemudian sistem operasi teresbut mengambil sumberdaya itu kembali sesudah prosess selesai sehingga bisa dipergunakan untuk proses yang lain.
Tugas sistem operasi adalah memberikan sumberdaya yang dibutuhkan oleh sebuah prosess, yang kemudian sistem operasi teresbut mengambil sumberdaya itu kembali sesudah prosess selesai sehingga bisa dipergunakan untuk proses yang lain.
·
Melanjutkan
atau menunda proses
Suatu sistem operasi mengatur prioritas dari proses yang akan dijalankan, jika terjadi lebih dari dua proses yang meng antri, sistem operasi akan mengutamakan proses yang mempunyai prioritas paliing besar.
Suatu sistem operasi mengatur prioritas dari proses yang akan dijalankan, jika terjadi lebih dari dua proses yang meng antri, sistem operasi akan mengutamakan proses yang mempunyai prioritas paliing besar.
·
Menyediakan
mekanisme untuk proses sinkronisasi
Suatu sistem operasi mengatur jalan nya sebuah proses yang akan di eksekusi bersama
sehingga tidak akan terjadi in-konsistensi data dikarenakan pengaksessan data yang serupa/sama, dan untuk melancarkan jalanya sebuah proses
Suatu sistem operasi mengatur jalan nya sebuah proses yang akan di eksekusi bersama
sehingga tidak akan terjadi in-konsistensi data dikarenakan pengaksessan data yang serupa/sama, dan untuk melancarkan jalanya sebuah proses
·
Menyediakan
mekanisme untuk proses komunikasi
Suatu sistem operasi akan menyediakan mekanisme agar proses dapat saling
berinteraksi dan
ber komunikasi yang satu dengan yang lainnya. dan tidak mengakibatkan proses lain terganggu
ber komunikasi yang satu dengan yang lainnya. dan tidak mengakibatkan proses lain terganggu
·
Menyediakan
mekanisme untuk penanganan deadlock
Pengertian deadlock adalah keadaan dimana sistem sempat berhenti. dikarenakan sumberdaya yang terdapat pada sistem tidak bisa dibagi, dan suatu proses harus menunggu untuk mendapatkan sumber daya tersebut. suatu sistem operasi harus bisa mendeteksi sebuah deadlock, apabila terjadi maka sistem operasi harus dapat menanggulanginya.
3.
Pada saat apa sebuah proses dapat dihentikan
Suatu proses berhenti jika telah menyelesaikan pernyataan
terakhir, dan meminta pada system operasi untuk menghapusnya dengan menggunakan
exit system call. Proses mengembailkan semua data (output) ke parent proses.
Kemudian proses dihapus dari list atau table system, dilanjtukan dengan
menghapus PCB.
Penghapusan
proses ini akan menjadi sangat kompleks jika teryata proses yang akan
dihentikan tersebut membuat proses-proses yang lain, Pada beberapa system,
proses-proses anak akan dihentikan secara otomatis jika proses induknmya
dihentikan. Namun, ada beberapa system yang menganggap bahwa proses anak ini
tidak iktu dihentikan secara otomatis pada saat proses induk dihentikan.
Ada
bebrapa alasan yang menyebabkan suatu proses harus dihentikan, antara lain:
- Proses memang sudah selesai mengerjakan tugasnya(selesai secara normal). Dalam hal ini akan mengeksekusi panggilan layanan system operasi untuk menandakan bahwa proses telah berjalan secara lengkap
- Proses berjalan melebihi batas waktu yang telah diberikan padanya
- Memori tidak tersedia. Proses membutuhkan ruang memori yang lebih besar daripada yag disediakan oleh system
- Proses mencoba untuk mengakses kawasam memori yang tidak diijinkan untuk diakses
- Terjadi kesalahan karena pelanggaran proteksi. Proses menggunakan resource yang tidak diijinkan
- Terjadi kesalahan penghitungan, seperti melakukan pembagian dengan nol atau menyimpan angka yang lebih besar dari pada yang dapat diakomodasikan oleh perangkat keras.
- Proses menunggu terlalu lama
- Terjadi kegagalan I/O, seperti tidak mampu menemukan file atau kegagalan membaca atau menulis setelah dilakukan perulangan beberapa kali.
- Proses berusaha mengeksekusi instruksi yang tidak ada. Hal ini sering diakibatkan oleh pencabangan ke daerah data dan berusaha mengeksekusi daerah tersebut
- Proses berusaha menggunakan instruksi yang disimpan untuk system operasi
- Terjadi kesalahan penggunaan data, karena bagian data mempunyai tipe data yang salah atau tidak diinisialisai
- Terjadi campur tangan(intervensi) dari operator atau system operasi, dengan suatu alas an tertentu(misalnya:terjadi deadlock)
- Proses induknya berakhit
- Atas permintaan dari proses induk
4.
Terangka dengan singkat pasangan konsep
berikut ini.Terangka pula perbedaan atau persamaan konsep tersebut:
·
Multithread Model : “One To One “
vs “Many to Many”
·
Scheduling Process : “Short Term”
vs “Long Term
·
Schediling Algorithm : “FCFS (First Come First Server)” vs
“SJF (Shortest Job First)”
·
“Preemptive Shortest Job First” vs -“Non- Preemptive Shortest Job First”
5.
Terangka dengan singkat pasangan konsep
berikut ini.Terangka pula perbedaan atau persamaan konsep tersebut:
·
Multithread Model : “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.
Model many-to-many multithread
Model banyak-ke-banyak multiplexes banyak
user-level thread untuk jumlah yang lebih kecil atau sama dari kernel thread.
Jumlah kernel thread mungkin khusus ke salah satu aplikasi tertentu atau mesin
tertentu (aplikasi dapat dialokasikan kernel thread lebih pada multiprosesor
dari pada uniprocessor a). Model banyak-ke-banyak menderita baik dari
kelemahan: Pengembang dapat membuat sebagai banyak pengguna benang yang
diperlukan, dan kernel thread yang sesuai dapat berjalan secara parallel pada
multiprosesor. Salah satu variasi populer pada model banyak-ke-banyak masih
banyak multiplexes user-level thread ke nomor yang lebih kecil atau sama dari
kernel thread tetapi juga memungkinkan thread user-level untuk terikat ke
thread kernel. Variasi ini, kadang-kadang disebut sebagai model dua-tingkat
(Gambar 4,5), didukung oleh sistem operasi seperti IRIX, HP-UX, dan Tru64 UNIX.
Operasi Solaris system yang didukung model dua tingkat dalam versi lebih tua
dari Solaris 9. Namun, dimulai dengan Solaris 9, sistem ini menggunakan model
satu-ke-satu.
Persamaan multithread model
One-to-One vs Many-to-Many :
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.
Perbedaan multithread model
One-to-One vs Many-to-Many :
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.
·
Scheduling Process : “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).
Schediling
Algorithm : “FCFS (First Come First
Server)” vs “SJF (Shortest Job First)”
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
·
“Preemptive Shortest Job First” vs -“Non- Preemptive Shortest Job First”
Non-preemptive Shortest Job First
Ketika penjadwalan terjadi hanya dalam keadaan
1 dan 4, kita mengatakan bahwa skema penjadwalan nonpreemptive atau kooperatif.
Dalam penjadwalan nonpreemptive sekali CPU telah dialokasikan untuk sebuah
proses, proses terus CPU sampai ia melepaskan CPU baik dengan mengakhiri atau
dengan beralih ke keadaan menunggu. Metode penjadwalan digunakan oleh Microsoft
Windows 3.x Penjadwalan Kooperatif adalah satu-satunya metode yang dapat
digunakan pada platform hardware tertentu, karena tidak memerlukan perangkat
keras khusus (misalnya, timer) yang diperlukan untuk memesan efek terlebih
dahulu penjadwalan.
Preemptive Shortest Job First
Untuk keadaan 2 dan 3 berlangsung dalam
penjadwalan Preemtive.penjadwalan preemptive menimbulkan biaya yang terkait
dengan akses ke data bersama. Pertimbangkan kasus dua proses yang berbagi data.
Sementara satu memperbarui data, itu mendahului sehingga proses kedua dapat
berjalan. Itu Proses kedua kemudian mencoba untuk membaca data, yang dalam
keadaan tidak konsisten.Preemption juga mempengaruhi desain dari kernel sistem
operasi. Selama pengolahan system call, kernel mungkin sibuk dengan aktivitas
di nama suatu proses. Kegiatan-kegiatan tersebut mungkin melibatkan perubahan
kernel penting data (misalnya, I / O antrian).
Perbedaan Preemptive Shortest Job
First vs Non-preemptive Shortest Job First
Non-preemptive Shortest Job First
Penjadwalan dapat berlangsung di keadaan :
Ketika sebuah proses beralih dari
keadaan berjalan ke keadaan menunggu (untuk Misalnya, sebagai hasil dari
permintaan I / O atau sebuah permintaan dari menunggu untuk penghentian
salah satu proses anak)
Ketika proses berakhir
Preemptive Shortest Job First
Penjadwalan
dapat berlangsung di keadaan :
ketika proses beralih dari keadaan
berjalan ke keadaan siap (untuk Misalnya, ketika interupsi terjadi)
.Ketika sebuah proses beralih dari
keadaan menunggu ke status siaga (untuk Misalnya, pada penyelesaian I / O)
Persamaaan Preemptive Shortest Job
First vs Non-preemptive Shortest Job First adalah :
Kedua jadwal CPU ini bekerja pada
saat suatu prosesmengalami masa transis. Misalnya, proses beralih dari berjalan
menjadi siap dan sebagainya.
5.
Tunjukkan
dua contoh pemrograman dari multithreading yang dapat meningkatkan
sebuahsolusi thread tunggal
JAWABAN
5. 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;
}
}
}