Sistem Operasi



 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.

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 dl
l.
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.

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

·         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
·         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
·         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;
}
}
}

Posting Komentar

Lebih baru Lebih lama