Rabu, 21 Juli 2010
SistemOperasi
05.00 |
Diposting oleh
Robiansyah |
Edit Entri
Perangkat lunak yang bertindak sebagai perantara antara pemakai komputer dan perangkat keras
Sasaran Sistem Operasi
-Menjalankan program-program dariuser dan membantu user dalam menggunakan komputer
-Menyediakan sarana sehingga pemakaian komputermenjadi mudah(convenient)
-Memanfaatkan perangkat keras komputer yang terbatas secara efisien(resource manager)
Komponen Sistem Komputer
1.Hardware –menyediakan“basic computing resources”(CPU, memory, I/O devices).
2.Operating system –mengendalikan/mengkoordinasikan penggunaan hardware diantara berbagai aplikasi/program dariuser.
3.Applications programs –menggunakan sistem resource yang digunakan untuk menyelesaikan masalah komputasi dari user (compilers, database systems, video games, business programs).
4.Users (people, machines, other computers).
Definisi Sistem Operasi
-Resource allocator
-mengatur resource
-mengalokasikan dan mengontrol pemakaian resources dariberbagai program/aplikasi.
-Control program
-Mengendalikan eksekus iuser program dan pemakaian sistem resource (contoh: operasi pada I/O device ) => handal, reliable, terlindung.
-Kernel
-Sistem program yang berjalan(“ada) terus menerus selama komputer aktif`.
-Kontras dengan aplikasi yang di“load”, eksekusi dan terminasi.
EvolusiSistemOperasi
-OS sederhana
-Program tunggal, satuuser, satu mesin komputer(CPU) : komputer generasi pertama, awal mesin PCs, controller: lift, Playstationetc.
-No problems, no bad people, no bad programs => interaksi sederhana
-Problem: terbatas pemakaiannya;
FiturOS yang Dibutuhkan dalam Multiprogramming
-I/O rutin dikendalikan dan diatur oleh sistim
-Memory management –sistim harus mengalokasikan memori untuk beberapa jobs sekaligus
-CPU scheduling –sistim harus memilih jobs mana yang telah siap akan dijalankan
-AlokasidariI/O devices untukjobs dan proteksi bagiI/O devices tersebut Sistim menjadi=> complex
-Bagaimana kalauprogram “loops terusmenerus”,goingmad etc. => proteksi
Time-Sharing Systems –
Interactive Computing
-CPU melakukan multiplex pada beberapa jobs yang berada dimemory (dandisk)
-CPU hanya dialokasikan kepada jobs yang telah siap dan berada dimemori
-Besar memori masih sangat terbatas:
-Pada job dilakukan swapped in danout dari memory kedisk.
-Komunikasion-line (interaktif) antar auser dansistim: jika OS telah selesai mengeksekusi
satuperintah, menunggu perintah berikut bukan dari“card reader”, tapi dari terminal user
-On-line system harus tersedia bagiuser yang akan mengakses data dankode
Desktop Systems
-Personal computers –sistim komputer yang dirancang khusus untuk single user
-I/O devices –keyboards, mice, display screens, small printers.
-User mendapatkan kemudahan dalam penyesuaian.
-Fungsi dasar mirip(adopsi) dariOS pada sistim yang besar
-Sederhana: tidak terlalu fokus pada utilisasi CPU dan proteksi
-Contoh: MS-DOS untuk PC banyak mengambil features dariUNIX, minus proteksi dan CPU scheduler
yang rumit.
Parallel Systems
-Sistim multiprosesor: lebih dari satu CPU yang terhubung secara dekat satu sama lain
-Symmetric multiprocessing (SMP)
-Setiap prosesor menjalankan“identical copy”dariOS
-Banyak proses dapat berjalan serentak murni dengan menggunakan resources pada masing masing
CPU
-Banyak modern operating systems mendukung SMP
Real-Time Systems
-Digunakan sebagai control device untuk aplikasi khusus (misalkan medical imaging systems, industrial control process dll).
-Kemampuan untuk beroperasi, response dalam batasan“waktu tertentu”=> OS harus sederhana, cepat, dandapat memenuhi jadwal task (scheduling dll).
Real-Time Systems (Cont.)
Hard real-time system.
-Secondary storage sangat terbatas atau tidak ada(menggunakan ROM, flash RAM).
-Task dapat diprediksi/ditentukan: waktu selesai dan response.
-Soft real-time system
-Lebih leluasa batasan waktu dari“hard real-time system”.
-Lebih umum digunakan diindustri, aplikasi multimedia (video streaming, virtual reality).
Lingkungan Komputasi
-Komputasi Tradisional
-Komputasi berbasis Web (Web-Based Computing)
-Komputasi pada Embedded System (Embedded Computing)
Definisi dari Proses, Thread,Mutual Exclution, Race Condition,Sinkronisasi, Deadlock, Starvation,Monitor, dan Semaphore!
Saturday, April 11th, 2009 | Author: fazza01
Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
• Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
• Model one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
• Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Mutual Exclusion adalah Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu (kondisi-kondisi untuk solusi). Tiga kondisi untuk menentukan mutual Exclusion diantaranya :
1. Tidak ada dua proses yang pada saat bersamaan berada di critical region.
2. Tidak ada proses yang berjalan diluar critical region yang bisa menghambat proses lain
3. Tidak ada proses yang tidak bisa masuk ke critical region
Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Unutk mencegah race condition, proses-proses yang berjalan besamaan haus di disinkronisasi.
Sinkronisasi adalah Komunikasi antara proses yang membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.
Deadlock ialah suatu kondisi permanen dimana proses tidak berjalan lagi ataupun tidak ada komunikasi lagi antar proses. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut. Atau dengan kata lain setiap proses dalam set menunggu untuk sumber yang hanya bisa dikerjakan oleh proses lain dalam set yang sedang menunggu.
Starvation adalah suatu proses meninggalkan critical section dan lebih dari satu proses menunggu (waiting).Beberapa proses dapat ditolak aksenya dalam waktu tak terbatas.
Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.
Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut semaphore.Semaphore mempunyai dua sifat, yaitu:
1. Semaphore dapat diinisialisasi dengan nilai non-negatif.
2. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.
Uraikan implementasi sinkronisasi & mutual exclusion di Windows & Linux!
Kondisi yang Diperlukan
Deadlock terjadi bila terdapat empat kondisi berikut ini secara simultan.
a. Mutual Exclusion : hanya satu proses pada satu waktu yang dapat menggunakan
sumber daya.
b. Genggam dan Tunggu (Hold and Wait) : suatu proses membawa sedikitnya satu
sumber daya menunggu mendapatkan tambahan sumber daya baru yang dibawa
oleh proses
Non-Preemption : sebuah sumber daya dapat dibebaskan dengan sukarela oleh
proses yang memegangnya setelah proses menyelesaikan task.
d. Menunggu Secara Sirkuler (Circular Wait) : Terdapat sekumpulan proses {P0,
P1, …, P0} yang menunggu sumber daya dimana P0 menunggu sumber daya
yang dibawa P1, P1 menunggu sumber daya yang dibawa P2, dan seterusnya,
Pn–1 menunggu sumber daya yang dibawa oleh
Pn, dan Pn menunggu sumber daya yang dibawa P0.
Resource Allocation Graph
Deadlock dapat digambarkan lebih presisi dengan menggunakan graph berarah
yang disebut resource allocation graph. Graph terdiri dari himpunan titik V dan garis
E. Himpunan titik (vertex) V dibagi menjadi dua tipe yaitu himpunan proses yang aktif
pada sistem P = {P1, P2, ..., Pn} dan tipe sumber daya pada sistem R = {R1, R2, ..., Rm}
METODE MENANGANI DEADLOCK
Terdapat tiga metode untuk menangani permasalahan deadlock yaitu :
• Menggunakan protocol untuk menjamin bahwa sistem tidak pernah memasuki status
deadlock
• Mengijinkan sistem memasuki status deadlock dan kemudian memperbaikinya.
• Mengabaikan permasalahan dan seakan-akan deadlock tidak pernah terjadi pada
sistem. Model ini yang banyak digunakan pada sistem operasi termasuk UNIX.
MENCEGAH DEADLOCK
Metode ini berkaitan dengan pengkondisian sistem agar menghilangkan
kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih
dipandang dari sudut tercegahnya deadlock. Metode ini sering menghasilkan utilisasi
sumber daya yang buruk. Pencegahan deadlock merupakan metode yang banyak
dipakai.
Untuk mencegah deadlock dilakukan dengan meniadakan salah satu dari syarat
perlu sebagai berikut :
• Mencegah Mutual Exclusion
Mutual exclusion benar-benar tak dapat dihindari. Hal ini dikarenakan tidak ada
sumber daya yang dapat digunakan bersama-sama, jadi sistem harus membawa
sumber daya yang tidak dapat digunakan bersama-sama.
• Mencegah Hold and Wait
Untuk mencegah hold and wait, sistem harus menjamin bila suatu proses meminta
sumber daya, maka proses tersebut tidak sedang memegang sumber daya yang lain.
Proses harus meminta dan dialokasikan semua sumber daya yang diperlukan
sebelum proses memulai eksekusi atau mengijinkan proses meminta sumber daya
hanya jika proses tidak membawa sumber daya lain. Model ini mempunyai utilitas
sumber daya yang rendah dan kemungkinan terjadi starvation jika proses
membutuhkan sumber daya yang popular sehingga terjadi keadaan menunggu yang
tidak terbatas karena setidaknya satu dari sumber daya yang dibutuhkannya
dialokasikan untuk proses yang lain.
• Mencegah Non Preemption
Peniadaan non preemption mencegah proses-proses lain harus menunggu. Seluruh
proses menjadi preemption, sehingga tidak ada tunggu menunggu. Cara mencegah
kondisi non preemption :
o Jika suatu proses yang membawa beberapa sumber daya meminta sumber daya
lain yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut,
maka semua sumber daya yang sedang dibawa proses tersebut harus
dibebaskan.
o Proses yang sedang dalam keadaan menunggu, sumber daya yang dibawanya
ditunda dan ditambahkan pada daftar sumber daya.
o Proses akan di restart hanya jika dapat memperoleh sumber daya yang lama dan
sumber daya baru yang diminta.
• Mencegah Kondisi Menunggu Sirkular
Sistem mempunyai total permintaan global untuk semua tipe sumber daya. Proses
dapat meminta proses kapanpun menginginkan, tapi permintaan harus dibuat terurut
secara numerik. Setiap proses yang membutuhkan sumber daya dan memintanya
maka nomor urut akan dinaikkan. Cara ini tidak akan menimbulkan siklus.
Masalah yang timbul adalah tidak ada cara pengurutan nomor sumber daya yang
memuaskan semua pihak.
MENGHINDARI DEADLOCK
Metode alternatif untuk menghindari deadlock adalah digunakan informasi
tambahan tentang bagaimana sumber daya diminta. Misalnya pada sistem dengan satu
tape drive dan satu printer, proses P pertama meminta tape drive dan kemudian printer
sebelum melepaskan kedua sumber daya tersebut. Sebaliknya proses Q pertama
meminta printer kemudian tape drive. Dengan mengetahui urutan permintaan dan pelepasan sumber daya untuk setiap proses, dapat diputuskan bahwa untuk setiap
permintaan apakah proses harus menunggu atau tidak. Setiap permintaan ke sistem
harus dipertimbangkan apakah sumber daya tersedia, sumber daya sedang dialokasikan
untuk proses dan permintaan kemudian serta pelepasan oleh proses untuk menentukan
apakah permintaan dapat dipenuhi atau harus menunggu untuk menghindari deadlock.
Kondisi Aman (Safe state)
Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.
Kondisi Tak Aman (Unsafe state)
Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.
PenjadualanCPU
KonsepDasar
-Memaksimalkan kinerja CPU melalui multi programming
-CPU–I/O Burst Cycle –Eksekusi proses terdiri dari siklus eksekusi CPU danI/O wait.
-Pendistribusian CPU burst
Penjadual CPU
-Algoritma scheduling:
-Memilih dari proses-proses yang berada di memori(ready to execute) dan memberikanj atah CPU kesalah satu proses tersebut.
-Kapan keputusan untuk algoritma dilakukan:
-Saatsuatuproses:
1.Switch daristatus running kewaiting.
2.Switch daristatus running keready.
3.Switch daristatus waiting keready.
4.Terminates.
-Penjadualan1 dan4 termasuk nonpreemptive
-Penjaudualan lainnya termasuk preemptive
Jenis Penjadualan
-Preemptive: OS dapat mengambil (secarainterrupt, preempt) CPU dari satu prosess etiapsaat.
-Non-preemptive: setiap proses secara sukarela(berkala) memberikan CPU keOS.
Contoh:
-Penjadualan untuk switch darirunning kewait atauterminate: non-preemptive.
-Penjadualan proses dari running keready: pre-emptive.
-Prasyarat untuk OS real-time system.
Dispatcher
-ModulDispatcher: mengatur dan memberikan kontrol CPU kepada proses yang dipilih oleh“short-term scheduler”:
-switching context
-switching keuser mode
-Melompat kelokasi yang lebih tepat dari user program untuk memulai kembali program
-Dispatch latency –terdapat waktu yang terbuang(CPU idle) dimana dispatcher menghentikan satu proses dan menjalankan proseslain.
-Save (proseslama) dan restrore(prosesbaru).
KriteriaPenjadualan
-UtilisasiCPU: menjadikanCPU terus menerus sibuk(menggunakan CPU semaksimal mungkin).
-Throughput: maksimalkan jumlah proses yang selesai dijalankan(per satuanwaktu).
-Turn around time: minimalkan waktu selesai eksekusi suatu proses(sejak disubmit sampai selesai).
-Waiting time: minimalkan waktu tunggu proses(jumlah waktu yang dihabiskan menunggu di ready
queue).
-Response time: minimalkan waktu response dari sistim terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat.
Kriteria Penjadualan yang Optimal
.Memaksimumkan utilisasi CPU
.Memaksimumkan throughput
.Meminimukan turnaround time
.Meminimumkan waiting time
.Meminimumkan response time
Algoritma Penjadualan
.First-come, first-served (FCFS)
.Shortest-Job-First (SJF)
.Priority
.Round-Robin (RR)
.Multilevel Queue
.Multilevel Feedback Queue
First-Come, First-Served (FCFS)
Algoritma:
.Prosesyang request CPU pertamakali akan mendapatkan jatahCPU.
.Sederhana–algoritma maupun struktur data: menggunakan FIFO queue (ready queue).
FIFO: Non preemptive
.Timbul masalah“waiting time”terlalu lama jika didahului oleh proses yang waktu selesainya lama.
.Tidak cocok untuk time-sharing systems.
.Digunakan pada OS dengan orientasi batch job.
Shortest-Job-First (SJR)
-Penggabungan setiap proses merupakan panjang dari burst CPU berikutnya. Panjang tersebut digunakan untuk penjadualan proses pada waktu terpendek
-Terdapat2 skema:
-nonpreemptive–CPU hanya satu kali diberikan pada suatu proses, maka proses tersebut tetap akan memakai CPU hingga proses tersebut melepaskannya
-preemptive–jika suatu proses tiba dengan panjang CPU burst lebih kecil dari waktu yang tersisa pada ekseksusi proses yang sedang berlangsung, maka dijalankan preemtive. Skema ini dikenal dengan Shortest-Remaining-Time-First (SRTF).
-SJF akanoptimal, keteikarata-rata waktu tunggu minimum untuk set proses yang diberikan
Penjadualan Prioritas
Algoritma:
.Setiap proses akan mempunyai prioritas (bilanganinteger).
.CPU diberikan keproses dengan prioritas tertinggi(smallest integer ºhighest priority).
.Preemptive: proses dapat diinterupsi jika terdapat prioritas lebihtinggi yang memerlukan CPU.
.Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakain time-slice
habis.
.SJF adalah contoh priority scheduling dimana prioritas ditentukan oleh waktu pemakaian CPU
berikutnya.
Problem = Starvation
.Proses dengan prioritas terendah mungkin tidak akan pernah dieksekusi
.Solution = Aging
.Prioritasakan naik jika proses makin lama menunggu waktu jatah CPU.
Round Robin (RR)
-Setiap proses mendapat jatah waktu CPU (time slice/quantum) tertentu misalkan10 atau100 milidetik.
-Setelah waktu tersebut maka proses akan di-preempt dan dipindahkan keready queue.
-Adil dan sederhana.
-Jika terdapat n proses di“ready queue”dan waktu quantum q (milidetik), maka:
-Maka setiap proses akan mendapatkan1/n dariwaktuCPU.
-Proses tidak akan menunggu lebih lama dari: (n-1) q time units.
-Performance
-qbesar⇒FIFO
-q kecil⇒q harus lebih besar dengan mengacu pada context switch, jika tidak over head akan terlalu
besar
Penjadualan Antrian Multitingkat
-Kategori proses sesuai dengan sifat proses:
-Interaktif (response cepat)
-Batch dll
-Partisi“ready queue”dalam beberapa tingkat(multilevel) sesuai dengan proses:
-Setiap queue menggunakan algoritma schedule sendiri
-Foreground proses(interaktif, high prioritiy): RR
-Background proses(batch, low priority): FCFS
-Setiapqueue mempunyai prioritas yang fixed.
Antrian Multitingkat Berbalikan
-Suatu proses dapat berpindah diantara beragam antrian;
-Perlu feedback untuk penentuan proses naik/turun prioritasnya(dinamis):
.Aging dapat diimplementasikan sesuai dengan lama proses pada satu queue.
.Suatu proses yang menggunakan CPU sampai habis (tanpaI/O wait) => CPU-bound (bukan proses interaktif ) dapat dipindahkan ke queue dengan prioritas lebih rendah
Penjadualan Multiple-Processor
-Penjadualan CPU lehih kompleks ketika terdapat multiple Processor
-Processor yang homogen termasuk kedalam multiprocessor
-Homogeneous processor swithin a multiprocessor.
-Load sharing
-Asymmetric multiprocessing–hanya ada satu processor yang dapat mengakses struktur sistem data,onlyone processor accesses the system data structures,sehingga meringankan kebutuhan sharing data
PenjadualanReal-Time
-Hard real-timesystems
.Task kritis harus selesai dengan garansi waktu tertentu
.OS akan melacak lamanya task tersebut dieksekusi(real time):
.Mengetahui lama waktu system call, fungsi dan response dari hardware
.Melakukan prediksi apakah task tersebut dapat dijalankan.
.Mudah dilakukan untukOS khusus pada peralatan/ pemakaian khusus(single task: control system)
.Sulit untuktime-sharing sistim, virtual memory (faktor latency sebagian program aktif ada di disk).
Penjadualan Real-Time
-Soft real-time systems
.Membutuhkan penggunaan skema prioritas
.Multimedia, highly interactive graphics
.Prioritas tidak menurunkan over time
.Dispancylatency yang rendah:
.Penyisipan point preemsise panjang waktu system calls
.Membuat keseluruhan kernel preemptable
Slider
Labels
- kenalin dong (1)
My Blog List
Oleh: Robiansyah
Glider Content
Video
FEATLIST
TABDIV
Random
Diberdayakan oleh Blogger.
Mengenai Saya
- Robiansyah
- sekayu, sumatera selatan, Indonesia
- Saya adalah manusia biasa,yang ingin mencari keluar biasaan,maski tak kan mungkin kan sempurna,karna kesempurnaan hanya milik Allah SWT,saya akan Terus belajar,berkarya dan berdoa,menjalani hidup sebaik mungkin.
bagaimana menurut anda blog ini
Followers
About Me
Terus berusaha dan berdoa,demi masa depan cerah
Labels
- kenalin dong (1)