Proses Thread Sistem Terdistribusi S 1 Sistem Informasi

Proses Thread Sistem Terdistribusi S 1 -Sistem Informasi Universitas Gunadarma

Topik • Thread • Proses • Algoritma

Thread • Thread adalah unit dasar dari utilitas CPU • Di dalamnya terdapat ID Thread, program counter, register, dan stack. • Saling berbagi dengan thread lain dalam proses yang sama • Suatu proses yang bisa dijadwalkan oleh sistem operasi

Thread • Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll) • Kadang disebut sebagai proses ringan (lightweight). • Sebuah thread terbagi code section, data section, dan resource sistem operasi thread yang lain yang memiliki proses yang sama.

Thread thread

Macam Thread • Single Threading Sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai pengendali/controller. • Multi Threading proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.

Macam Thread

Model Multi. Threading a. One To One • Memetakan setiap thread tingkatan pengguna ke thread kernel • Model ini menyediakan lebih banyak dibandingkan model Many-to-One concurrency

Model Multi. Threading

Model Multi. Threading • Kelebihan: Model one-to-one lebih sinkron daripada model many-to-one karena mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan, hal ini juga membuat multiple thread berjalan secara parallel dalam multiprocessor.

Model Multi. Threading • Kekurangan 1. Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna. 2. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi 3. Maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem.

Model Multi. Threading • Model One To One Diimplementasikan pada Windows NT dan OS/2

Model Multi. Threading • Model Many To One 1. Memetakan beberapa thread tingkatan pengguna ke sebuah thread tingkatan kernel. 2. Pengaturan thread dilakukan dalam ruang pengguna, sehingga efisien. 3. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat.

Model Multi. Threading

Model Multi. Threading • Kelebihan Menegemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi lebih efisien.

Model Multi. Threading • Kekurangan Multithread tidak dapat berjalan atau bekerja secara pararel di dalam multiprosessor karena hanya satu thread saja yang bisa mengakses kernel dalam satu waktu

Model Multi. Threading • Model Many to One Diimplementasikan pada Solaris Green dan GNU Portable

Model Multi. Threading • Model Many-To-Many 1. Mengelompokkan banyak thread pengguna untuk dipetakan ke thread kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna. 2. Mengijinkan sistem operasi untuk membuat sejumlah thread kernel.

Model Multi. Threading

Model Multi. Threading • Kelebihan 1. Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread yang ebrsangkutan dapat berjalan secara pararel pada multiprocessor. 2. Dan ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi

Model Multi. Threading • Kekurangan Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada satu waktu.

Model Multi. Threading • Model ini diimplementasikan pada Solaris, IRIX, dan Digital UNIX

Keuntungan Memakai Thread • Responsive 1. Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. 2. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.

Keuntungan Memakai Thread • Pembagian Sumber Daya 1. Secara default, thread membagi memori dan sumber daya dari proses. 2. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi.

Keuntungan Memakai Thread • Ekonomis 1. Mengalokasikan memori dan sumber membuat proses itu sangat mahal. daya untuk 2. Alternatifnya thread membagi sumber daya dari proses, Jadi lebih ekonomis.

Keuntungan Memakai Thread • Pemberdayaan Arsitektur Multiprosesor 1. Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat berjalan secara parallel pada prosesor yang berbeda. 2. 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.

Algoritma Proses Penjadwalan • Shortest Job First 1. SJF is a scheduling algorithm that assigns to each process the length of its next CPU burst/execution time. 2. CPU is then given to the process with the minimal CPU burst from the waiting queue.

Algoritma Proses Penjadwalan • Shortest Job First 3. SJF is probably optimal, in that for a given set of processes and their CPU burst/execution times it gives the least average waiting time for each process. Associate with each process the length of its next CPU burst.

Algoritma Proses Penjadwalan • Non-preemptive : once CPU is given the process, it cannot be preempted until it completes this CPU burst. • Preemptive: if a new process arrives with CPU burst length less than the remaining time of the currently executing process then switch them. • Also known as Shortest Remaining Time First • So, what can you say about these methods?

Algoritma Proses Penjadwalan • Non-Preemptive Shortest Job First Example: Process P 1 P 2 P 3 P 4 Arrival Time 0 2 4 5 Burst Time 7 4 1 4 Schedule ?

Algoritma Proses Penjadwalan • Non-Preemptive Shortest Job First P 1 P 2 Example: Process P 3 P 4 Arrival Time 0 2 4 5 Burst Time 7 4 1 4 Schedule : P 1 P 3 7 P 2 8 P 4 12 16 Waiting Time : 0 3 6 7 Average waiting Time = (0+3+6+7)/4 = 17/4 = 4. 2

Algoritma Proses Penjadwalan • Non-Preemptive Shortest Job First Process P 1 P 2 P 3 Case: Arrival Time P 4 P 5 0 2 4 5 7 Burst Time 4 5 3 4 4 Schedule ? Waiting Time : ? Average waiting Time = ?

Algoritma Proses Penjadwalan • Non-Preemptive Shortest Job First Process P 1 P 2 P 3 Case: Arrival Time P 4 P 5 0 2 4 5 7 Burst Time 4 5 3 4 4 Schedule ? P 1 P 3 P 4 P 5 P 2 Waiting Time : 0 4 7 11 15 Average waiting Time = (0 + 13 + 0 + 2 + 4)/5 = 3. 8 20

Algoritma Proses Penjadwalan • Preemptive Shortest Job First Process P 1 P 2 Case: Arrival Time P 3 P 4 0 2 4 5 Burst Time 7 4 1 4 Schedule ? Waiting Time : ? Average waiting Time = ?

Algoritma Proses Penjadwalan • Preemptive Shortest Job First Case: Process P 1 P 2 Arrival Time Schedule : P 3 P 4 0 2 4 5 Burst Time 7 4 1 4 P 1 0 P 2 2 P 3 4 5 P 2 Waiting Time : 9 1 0 2 Average waiting Time = (9+1+0+2)/4 = 3 P 4 7 P 1 11 16

Algoritma Proses Penjadwalan • Preemptive Shortest Job First Process P 1 P 2 Case: P 3 P 4 P 5 Arrival Time 0 2 4 5 6 Burst Time 7 3 2 4 4 Schedule : Waiting Time : ? Average waiting Time = ?

Algoritma Proses Penjadwalan • Preemptive Shortest Job First Case: Process P 1 P 2 P 3 P 4 P 5 Arrival Time 0 2 4 5 6 Burst Time 7 3 2 4 4 P 1 Schedule : Waiting Time : 13 0 1 2 5 0 P 2 2 P 3 5 P 4 7 P 5 11 Average waiting Time = (13+0+1+2+5)/5 = 4. 2 P 1 15 20

Algoritma Proses Penjadwalan • Round Robin 1. Each process gets a CPU time quantum, usually 10 -100 milliseconds. After that, it is preempted and added to the end of the ready queue. 2. If there are n processes in the ready queue and the time quantum is q then each process gets 1/n of the CPU time in chunks of at most q units at once. No process waits more that (n-1)q time units to be scheduled.

Algoritma Proses Penjadwalan • Round Robin 1. Performance: - Large q -> FCFS - Small q = Context switch overhead

Algoritma Proses Penjadwalan • Round Robin • Example: Process • Schedule: ? P 1 P 2 P 3 P 4 Arrival Time 0 3 5 6 Required Time 8 5 2 6

Algoritma Proses Penjadwalan • Round Robin • Example: Process P 1 P 2 P 3 P 4 Arrival Time 0 3 5 6 Required Time 8 5 2 6 • Schedule: it depends! (on the quantum size) Quantum: 3 ms

Algoritma Proses Penjadwalan • Round Robin • Example:

Algoritma Proses Penjadwalan • Round Robin • Waiting Time: P 1 = 0 ms + (11 -3 ms) + (19 -14 ms) = 13 ms P 2 = (3 -3 ms) + (14 -6 ms) = 8 ms P 3 = 6 ms – 5 ms = 1 ms P 4 = (8 -6 ms) + (16 -11 ms) = 7 ms

Algoritma Proses Penjadwalan • Round Robin • Average Time = 13 + 8 + 1 + 7/4 = 29 / 4 = 7. 25 ms

Algoritma Proses Penjadwalan • Round Robin Case: Process P 1 P 2 P 3 P 4 Arrival Time 0 3 5 7 Required Time 11 8 10 5 Quantum Time : 5 ms Scheduling?

Algoritma Proses Penjadwalan • Round Robin Case: Process P 1 P 2 P 3 P 4 Arrival Time 0 3 5 7 Required Time 11 8 10 5 P 1 0 P 2 5 P 3 10 P 4 15 P 1 20 P 4 DONE P 2 25 P 3 28 P 2 DONE P 1 33 P 3 DONE 34 P 1 DONE

Algoritma Proses Penjadwalan • Waiting Time: P 1 = 0 ms + (20 -5 ms) + (33 -25 ms) = 23 ms P 2 = (5 -3 ms) + (25 -10 ms) = 17 ms P 3 = (10 – 5) ms – (28 -15) ms = 18 ms P 4 = (15 -7 ms)= 8 ms

Algoritma Proses Penjadwalan • • Round Robin Average Time = (23 + 17 + 18 + 8) / 4 = 66 / 4 = 16. 5 ms

Client Server • In Computer Science client server is a software architecture model consisting of two parts, client system and server system, both communicating over a computer network or on the same computer • A client-server application is a distributed system made up of both client and server software. • The client process always initates a connection to the server, while the server process always waits from any client.

Client Server • When both the client process and server process are running on the same computer, this is called a single seat setup. A one server based network

Client Server • Another type of related software architecture is know as peer-to-peer, because each host or application instance can simultaneously act as both a client and a server (unlike centralized servers of the client-server model) and because each has equivalent responsibilities and status. • Peer-to-peer architectures are often abbreviated using acronym P 2 P.

Client Server A peer-to-peer based network

Client Server • The client-server relationship describes the relation between the client and how it makes a service request to the server, and how the server can accept these request, process them, and return the requested information to the client. • The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the Unified Modelling Language. • Both client-server and P 2 P architecture are in wide usage today

Client Server

Client Server Architecture • A network architecture in which each computer or process on the network is either a client or a server. • This type of architectural is sometimes to as two-tier, it means that the client acts as one tier and server process acts as the other tier.

Components • Clients • Servers • Communication Networks

Clients • Applications that run on computers • Rely on servers for Clients are Applications - Files - Devices - Processing power • Example: E-Mail Client - An application that enables you to send and receive email.

Clients Characteristics • • • Always initiaties request to servers Waits for replies Receives replies Usually connects to a small number of servers at one time Usually interacts directly with ens-users using any user interface such as graphical user interface

Servers • Computer or processes that manage network resources - Disk drives (file servers) Servers Manage Resources - Printers (print servers) - Network traffic (network servers) • Example: Database Server - A computer system that processes database queries

Servers Characteristics • • • Always wait for a request from one of the clients Serve clients request then replies with requested data to the clients A server may communicate with other servers in order to serve a client request. If additional information is required to process a request (or security is implemented), a server may request additional data (passwords) from a client before processing a request. End user typically do not interact directly with a server, but use a client.

Communication Networks Connect Clients and Servers

Client-Server Computing • Process takes place • on the server and • on the client • Servers • Store and protect data • Process requests from clients • Clients • Make requests • Format data on the desktop Client-Server Computing Optimizes Computing Resources

Application Functions • Software application functions are separated into three distinct parts Server: Data Management Client: Presentation & Application Logic

Application Components 3 Data Management 2 Application Logic 1 Presentation 2 Client Types Thin Client 3 Logical Tiers Database Applications: Most common use of client-server architectures Fat Client

Middleware • Software that connects two otherwise separate applications • Example: Middleware product linking a database system to a Web server Database Server: Manages Data Middleware Links Applications Web Server: Presents Dynamic Pages Client: Requests Data via Web

Software, Teknologi, & Komunikasi Agent • Software adalah kumpulan instruksi yang berfungsi untuk menjalankan suatu perintah, seperti memberikan informasi tentang hardware, menentukan fungsi hardware, dan menjalankan sistem. • Agar komputer dapat membaca, mengingat, membuat keputusan (membandingkan), menghitung, menyortir, dan menghasilkan keluaran berupa informasi dalam monitor atau cetakan, komputer harus dapat membaca dan memasukkan program ke dalam memori utamanya.

Software, Teknologi, & Komunikasi Agent • Program adalah instruksi dalam bahasa mesin atau yang dapat dibaca oleh komputer yang dirancang untuk tujuan tertentu sehingga kalau operator menjalankan komputer dan memijat tombol tertentu (misalnya untuk memroses data akuntansi) disebut dengan program aplikasi (aplication program)

Software, Teknologi, & Komunikasi Agent • Berdasarkan Jenisnya : • • • Berdasarkan jenisnya, software dibagi menjadi 3 yaitu : Firmware (BIOS) Sistem Operasi (Windows, Linux, Mac OS, dll) Software Aplikasi (Photoshop, Win. Amp, Win. Zip, dll) Propietary software Open Source

Software, Teknologi, & Komunikasi Agent • Teknologi adalah metode ilmiah untuk mencapai tujuan praktis; ilmu pengetahuan terapan atau dapat pula diterjemahkan sebagai keseluruhan sarana untuk menyediakan barang-barang yg diperlukan bagi kelangsungan dan kenyamanan hidup manusia. • Teknologi merupakan perkembangan suatu media / alat yang dapat digunakan dengan lebih efisien guna memproses serta mengendalikan suatu masalah.

Software, Teknologi, & Komunikasi Agent • Agent dapat didefinisikan sebagai: • A person or thing that acts or is capable of acting or is empowered to act, for another.

Software, Teknologi, & Komunikasi Agent • Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan. • Agent melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu, atau untuk orang lain.

Software, Teknologi, & Komunikasi Agent • Ditarik dari point-point sebelumnya Caglayan [Caglayan et al. , 1997] mendefinisikan software agent sebagai: • Suatu entitas software komputer yang memungkinkan user (pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously).

Software, Teknologi, & Komunikasi Agent • 1. 2. 3. 4. 5. 6. 7. Karakteristik dan Atribut Software Agent Autonomy Intelligence, Reasoning, dan Learning Mobility dan Stationary Delegation Reactivity Proactivity dan Goal-Oriented Communication and Coordination Capability

Example • Specific types of clients include: web mail clients, and online chat clients. browsers, E- • Specific types of servers include: web servers, FTP servers, database servers, E-mail servers, file servers, print servers. Most web services are also types of servers.

Sumber • http: //www. cs. sjsu. edu/~pearce/oom/ood/dist. Arch/server. htm
- Slides: 75