Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehDjaja Budiaman Telah diubah "5 tahun yang lalu
2
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia fathiah@uui.ac.id
Thread Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia 2017
3
KONSEP DASAR Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread. Keuntungan Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads. Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
4
MODEL MULTITHEREADING
Implementasi multithreading yang umum ada tiga, yaitu : model many-to-one, one-to-one, dan many-to-many.
5
KERNEL THREAD Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola daripada pengguna thread. Bagaimana pun, selama kernel mengelola thread, jika suatu thread di block tehadap sistem pemanggilan, kernel dapat menjadualkan thread yang lain dalam aplikasi untuk dieksekusi. Dalam lingkungan multiprosesor, kernel dapat menjadualkan thread dalam prosesor yang berbeda. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang mendukung kernel thread.
6
MODEL ONE TO ONE Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem.
7
MODEL MANY TO ONE Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.
8
MODEL MANY TO MANY Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu. Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.
9
PENJADUALAN CPU
10
KONSEP DASAR Penjadual adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber komputer dijadual sebelum digunakan. CPU salah satu sumber dari komputer yang penting yang menjadi sentral dari sentral penjadual di sistem operasi. Penjadual CPU adalah basis dari multi programming sistem operasi. Dengan men-switch CPU diantara proses. Akibatnya sistem operasi bisa membuat komputer produktif.
11
PENJADUAL CPU Preemptive Scheduling
Ada 4 keaadan yg menjadi bahan pertimbangan penjadwalan oleh CPU : 1. Pada saat proses berpindah dari keadaan running ke waiting 2. Pada saat proses berpindah dari keadaan running ke ready 3. Pada saat proses berpindah dari keadaan waiting ke ready 4. Pada saat proses berhenti Apa bila memilih 1 & 4 non-preemptive, jika memilih 2 & 3 disebut Preemptive. Non-Preemptive adalah jika suatu proses menggunakan CPU, maka proses tersebut akan tetap membawa CPU sampai proses tersebut berhenti/dalam keadaan waiting. Preemptive adalah terjadi jika suatu proses ditinggalkan dan akan segera dikerjakan proses yang lain.
12
DISPATCHER Komponen yang lain yang terlibat dalam penjadual CPU adalan dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah: Alih Konteks Switching to user mode. Lompat dari suatu bagian di progam user untuk mengulang progam. Dispatcher seharusnya secepat mungkin.
13
KRITERIA PENJADUALAN CPU utilization, diharapkan CPU dalam keadaan sibuk, utilitas CPU dinyatakan dalam bentuk proses 0-100%,tapi kenyataannya hanya % Throughput, terjadi pada saat CPU sedang sibuk karena banyak proses yang dikerjakan dalam satu kesatuan waktu Turnround time, banyak waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU dan mengerjakan I/O Waiting time, waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O Response time, waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tsb Fairness, menyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair)
14
ALGORITMA PENJADUALAN
15
FCFS (First Come First Serve)
FCFS (First-Come-First-Served Scheduling) Proses pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu. Misalnya ada 3 proses P1, P2, & P3 sbb : Proses Burst time (ms) P1 24 P2 3 P3 Gant chart : P P2 P3
16
Waktu tunggu yang diberikan untuk tiap-tiap proses seperti tabel berikut :
Waiting time (ms) P1 P2 24 P3 27 AWT (average waiting time) = ( )/3= 17 ms. Hal ini akan menjadi Sangat berbeda jika urutan kedatang proses adalah P2, P3 dan P1 Gant chart : P P3 P1
17
Waktu tunggu yang diberikan untuk tiap-tiap proses seperti tabel berikut :
Waiting time (ms) P2 P3 3 P1 6 AWT =(0+3+6)/3= 3 ms. Metode FCFS adalah metode yang sangat sederhana dan mudah diimlementasikan. Metode ini mempunyai kelemahan, Karena mengakibatkan pembengkakan AWT jika proses yg dilayani terlebih Dahulu membutuhkan waktu proses (burst time) yg sangat lama. Algaritma FCFS termasuk non-preemptive, karena sekali CPU dialokasikan Pada suatu proses, maka proses tersebut tetap akan memakai CPU sampai Proses tersebut melepaskannya/jika proses berhenti.
18
SJF(Shortest Job First Sheduler)
Proses yang memiliki CPU burst yang paling kecil dilayani terlebih dahulu. Misalnya ada 4 proses P1, P2, P3 & P4, yang meminta layanan CPU sbb : Proses Burst time (ms) P1 6 P2 8 P3 7 P4 3 Gant Chart : P4 P1 P P2
19
Waktu tunggu untuk tiap proses
Waiting time (ms) P1 3 P2 16 P3 9 P4 Sehingga AWT nya = ( )/4 = 7 ms Algoritma ini belum optimal dan sulit untuk diimplementasikan, karena sulit Untuk mengetahui panjang CPU burst berikutnya, namun nilainya dapat di Prediksikan Algaritma SJF termasuk preemptive/non-preemptive. Jika ada proses P1 yg Datang pada saat P0 sedang berjalan, maka akan dilihat CPU burst P1. Pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burstnya. Pada Preemptive, jika CPU burst P! lebih kecil dari sisa waktu Yang dibutuhkan oleh P0, maka P0 akan dihentikan dulu, dan CPU ganti di Alokasikan ke P1.
20
Misalnya ada 4 proses P1, P2, P3 dan P4 yang meminta pelayanan CPU sbb :
Arrival time Burst time (ms) P1 8 P2 1 4 P3 2 9 P4 3 5 Gant Chart : P1 P P4 P1 P3 Proses Waiting time (ms) P1 0+(10 -1) = 9 P2 1 -1 = 0 P3 = 15 P4 5 – 3 = 2 Waktu tunggu Untuk tiap proses : AWT = ( )/4 = 6.5 ms
21
Priority Scheduling Algoritma SJF adalah suatu kasus khusus dari priority scheduling. Tiap-tiap proses dilengkapi dengan prioritas. CPU dialokasikan untuk proses yang memiliki prioritas paling tinggi. Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan algoritma FCFS. Misalnya ada 5 proses, P1, P2, P3, P4 dan P5 sbb : Proses Burst time (ms) Prioritas P1 10 3 P2 1 P3 2 P4 4 P5 5
22
Gant chart : P P P P P4 Waktu tunggu untuk tiap-tiap proses adalah : Proses Waiting time (ms) P1 6 P2 P3 16 P4 18 P5 1 AWT = ( )/5 = 8.2 ms Priority scheduling bersifat preemtive/non-preemptive. Jika ada proses P1 Yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1. Seandainya prioritas P1 lebih besar dibandingkan dengan P0, maka pada non- Preemptive, algaritmanya tetap akan menyelesaikan P0 sampai habis CPU Burstnya dan meletakan pada posisi head queue. Sedangkan pada preemtive, P0 akan dihentikan dulu dan CPU ganti dialokasikan untuk P1.
23
Round-Robin Scheduling
Konsepnya menggunakan time sharing, hampir sama dengan algoritma FCFS hanya saja bersifa preemptive. Digunakan quantum-time untuk membatasi waktu proses. Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan Quantum-time, maka proses tersebut akan melepaskan CPU jika telah Selesai bekerja, sehingga CPU dapat digunakan untuk prosesselanjutnya sebaliknya jika suatu proses memiliki CPU burst yang lebih besar di bandingkan dengan quantum-time, maka proses tersebut akan dihentikan sementara jika sudah mencapai quantum-time, dan selanjutnyaMengantri pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya.Misal ada 3 proses, P1, P2 & P3, yang meminta pelayanan CPU, quantum-time = 4 ms. Proses Burst time (ms) P1 24 P2 3 P3
24
Gant chart : P1 P2 P3 P1 P1 P P P1 Waktu tunggu tiap-tiap proses : Proses Waiting time (ms) P1 0 + (10-4) = 6 P2 4 P3 7 AWT = (6+4+7)/3 = 5.66 ms Algoritma round robin ini memiliki keuntungan adanya keseragaman waktu
25
Definisi Agent Software Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya software agent nantinya disebut agent saja. Agen bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agen yang tidak berpindah ke host lain disebut stationary agent. Definisi agen yang lebih rinci, ditinjau dari sudut pandang sistem, adalah obyek perangkat lunak yang : 1. Diletakan dalam lingkungan eksekusi Memiliki sifat sebagai berikut : Dapat mempunyai sifat ortogonal sebagai berikut :
26
Karakteristik dari Agent
Autonomy Intelligence, Reasoning, dan Learning Mobility dan Stationary Delegation Reactivity Proactivity dan Goal-Oriented Communication and Coordination Capability
27
Klasifikasi Software Agent
1. Desktop Agent Yaitu agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS). Yang termasuk dalam klasifikasi ini adalah: Operating System Agent Application Agent Application Suite Agent
28
Klasifikasi Software Agent (lanj..)
2. Internet Agent Yaitu agent yang hidup dan bertugas dalam lingkungan jaringan Internet, melakukan tugasnya yaitu memanage informasi yang ada di Internet. Yang termasuk dalam klasifikasi ini adalah : Web Search Agent Web Server Agent Information Filtering Agent Information Retrieval Agent Notification Agent Service Agent Mobile Agent
29
Karakteristik Bahasa Pemrograman
Object-Oriented Platform Independence Communication Capability Security Code Manipulation
30
Definisi client server
Definisi client server menurut Budhi irawan (2005 : 30), Server adalah komputer database yang berada di pusat, dimana informasinya dapat digunakan bersama-sama oleh beberapa user yang menjalankan aplikasi di dalam komputer lokalnya yang disebut dengan Client.
31
Model Client Server Model Two Tier
Dalam model client/server, pemrosesan pada sebuah aplikasi terjadi pada client dan server.. Aplikasi ditempatkan pada computer client dan mesin database dijalankan pada server jarak-jauh. Aplikasi client mengeluarkan permintaan ke database yangmengirimkan kembali data ke client-nya. Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan : client (yang meminta serice) dan server (yang menyediakan service).
32
Model Client Server Model Three Tier
Pada arsitektur Three Tier ini terdapat Application Server yang berdiri di antara Client dan Database Server. Contoh dari Application server adalah IIS, WebSphere, dan sebagainya. Konsep model three-tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan, aplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.
33
Model Client Server Model Multi tier
Arsitektur Multi Tier adalah suatu metode yang sangat mirip dengan Three Tier. Bedanya, pada Multi Tier akan diperjelas bagian UI (User Interface) dan Data Processing. Yang membedakan arsitektur ini adalah dengan adanya Business Logic Server. Database Server dan Bussines Logic Server merupakan bagian dari Data Processing, sedangkan Application Server dan Client/Terminal merupakan bagian dari UI.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.