Anda di halaman 1dari 31

Sistem Operasi

MATERI 4

Thread, SMP & Microkernel

RISKY FERNANDO

20066044

D3 TEKNIK ELEKTRONIKA

Ikhtisar

Thread: Kepemilikan sumber daya dan Eksekusi

Symmetric Multiprocessing (SMP).

Microkernel

Studi kasus thread & SMP:

Windows

Solaris

Linux

Proses & Thread (1)

Proses memiliki dua karakteristik:

Resource ownership (kepemilikan sumber daya) – proses mempunyai ruang alamat virtual untuk menangani image proses yang didefinisikan dalam PCB

Scheduling-execution (penjadwalaneksekusi) – Mengikuti suatu path eksekusi (trace), ada pergatian dari satu proses ke lainnya

Dua karakteristik ini diperlakukan secara independen oleh sistem operasi.

Proses & Thread (2)


Unit dari dispatching diacu sebagai thread atau lightweight process

Unit dari kepemilikan sumber daya diacu sebagai proses atau task

Multithreading

• Kemampuan dari SO untuk mendukung

banyak (multiple), concurrent path eksekusi di dalam suatu proses tunggal.

Pendekatan Thread Tunggal

MS-DOS mendukung proses pengguna tunggal & thread tunggal.

Beberapa UNIX, mendukung banyak proses pengguna (user process) tetapi hanya mendukung satu thread

per-proses.

Pendekatan Multithreading

Java run-time environment (JRE) merupakan proses tunggal dengan banyak thread

Banyak proses & thread dijumpai di Windows, Solaris, & versi modern dari UNIX

(termasuk Linux)

Proses

Suatu ruang alamat virtual yang memegang process image

Akses terproteksi ke

Processor,

Proses lain,

2
File,

Sumber daya I/O

Thread dalam Proses

• Setiap thread mempunyai

Status eksekusi (running, ready, dll.)

Konteks thread tersimpan saat tidak berjalan (not running)

Stack eksekusi

Beberapa storage statis per-thread bagi variabel lokal

Akses terhadap memory & sumber daya dari prosesnya (semua thread dari proses saling berbagi pakai)

Satu Pandangan…

• Salah satu cara memandang thread adalah sebagai suatu program counter independen yang beroperasi di dalam proses.

3
Thread vs. Proses

4
Keuntungan dari Thread

Pembuatan thread baru lebih cepat dari pada proses baru

Penghentian thread lebih singkat daripada penghentian proses

Switching antara dua thread lebih singkat daripada switching antar proses

Thread dapat berkomunikasi satu sama lain

– Tanpa memanggil kernel

Thread di Sistem Single-User

Kerja foreground & background

Pemrosesan asynchronous

Kecepatan eksekusi

Struktur program modular

Penanganan Thread

Tindakan yang mempengaruhi semua thread di dalam proses

SO harus mengelola ini pada level proses.

Contoh:

Mensuspend suatu proses berarti mensuspend semua thread dari proses tersebut

Menghentikan suatu proses akan menghentikan semua thread di dalam proses tersebut

Aktifitas Menyerupai Proses

5
Thread mempunyai status eksekusi dan dapat sinkron satu dengan lainnya.

Menyerupai proses

Ada dua aspek penting dalam fungsionalitas thread:

Status

Sinkronisasi

Status Eksekusi Thread

Status berasosiasi dengan perubahan dalam status thread

Spawn (thread yang lain)

Block

Isu: akan memblock thread lain atau semua thread

Unblock

Finish (thread)

• Mendealokasikan konteks register dan stack

Contoh: Remote Procedure Call

• Anggap:

Suatu program yang mengerjakan dua remote procedure call (RPC)

Terhadap dua host berbeda

Untuk mendapatkan hasil gabungan

6
RPC dengan Thread Tunggal

RPC - Satu Thread per Server

7
Multithreading pada Uniprocessor

Adobe PageMaker

8
Kategori Implementasi Thread

User Level Thread (ULT)

Kernel level Thread (KLT) juga disebut:

– kernel-supported threads – lightweight processes.

User-Level Thread

Semua manajemen thread dikerjakan oleh aplikasi

Kernel is not aware of keberadaan thread.

9
Hubungan antara ULT Status Thread & Proses

10
Kernel-Level Thread

Kernel memelihara informasi konteks bagi proses & thread

– Manajemen thread

dilakukan oleh kernel, bukan aplikasi

Scheduling dilakukan pada basis thread

Windows menggunakan pendekatan ini

Keuntungan dari KLT

Kernel dapat secara simultan menjadwal banyak thread dari proses yang sama pada banyak processor.

Jika satu thread dalam suatu proses diblock, kernel dapat menjadwal thread yang lain dari proses yang sama.

Rutin kernel sendiri dapat dibuat multithread.

Kerugian dari KLT

• Transfer kontrol dari satu thread ke lainnya di dalam proses yang sama mengharuskan switch modus ke kernel

11
Pendekatan Gabungan

Pembuatan thread dikerjakan dalam ruang pengguna (user space)

Bagian terbesar dari scheduling & sinkronisasi thread dalam aplikasi

Contoh: Solaris

Hubungan antara Thread & Proses

Symmetric Multiprocessing

Secara tradisional, komputer ditampilkan sebagai mesin sequential.

Processor mengeksekusi satu demi satu instruksi (satu pada satu waktu) secara urut

(sequence)

Setiap instruksi adalah suatu urutan operasi

Dua pendekatan popular untuk penyediaan parallelism

Symmetric MultiProcessors (SMP)

Clustering (tidak dibahas di kuliah ini)

Kategori Sistem Komputer (1)

Single Instruction Single Data (SISD) stream

Processor tunggal mengeksekusi stream intruksi tunggal untuk beroperasi pada data yang disimpan dalam memory tunggal

Single Instruction Multiple Data (SIMD) stream

Setiap instruksi dieksekusi pada himpunan data berbeda oleh processor berbeda

12
Kategori Sistem Komputer (2)

• Multiple Instruction Single Data (MISD) stream (Tidak pernah diimplementasikan)

– Serangkaian data ditransmisikan ke suatu himpunan processor, masing-masing mengeksekusi rangkaian instruksi berbeda

• Multiple Instruction Multiple Data (MIMD)

– Sekumpulan processor secara simultan mengeksekusi rangkaian instruksi berbeda pada kumpulan data berbeda

13
Arsitektur Processor Parallel

14
Symmetric Multiprocessing

Kernel dapat berjalan pada processor manapun

– Memungkinkan bagian-bagian kernel berjalan secara paralel

Biasanya setiap processor melakukan self-scheduling dari pool proses atau thread yang tersedia

15
Organisasi SMP (Typical)

16
Rancangan SO Multiprocessor

• Isu rancangan utama mencakup

Proses atau thread concurrent simultan

Scheduling (penjadwalan)

Synchronization (sinkronisasi)

Manajemen Memory

Reliability dan Fault Tolerance

Microkernel

Microkernel merupakan suatu inti SO kecil yang menyediakan fondasi bagi ekstensiekstensi modular.

Pertanyaan besar: seberapa kecil harusnya suatu kernel agar dapat disebut sebagai microkernel

– Haruskah driver ada dalam user space?

Dalam teori, pendekatan ini memberikan fleksibilitas & modularitas derajat tinggi.

Arsitektur Kernel

17
Rancangan Microkernel:

Manajemen Memory

Manajemen memory level bawah (lowlevel): Memetakan setiap page virtual ke frame fisik

– Sebagian besar tugas manajemen memory terjadi dalam user space

Rancangan Microkernel:

Komunikasi Antar Proses (IPC)

Komunikasi antar proses (Interprocess

Communication) atau thread dalam suatu SO mikrokernel adalah melalui message.

Suatu message menyertakan:

Header yang mengidetifikasi proses pengiriman dan penerimaan, dan

18
Body yang mengandung data langsung, pointer ke suatu block data, atau beberapa informasi kontrol mengenai proses.

Rancangan Microkernal:

Manajemen I/O & interrupt

Di dalam mikrokernel, adalah mungkin menangani interupsi hardware sebagai message dan menyertakan port I/O dalam ruang alamat.

Proses user-level tertentu dilewatkan ke interrupt & kernel memelihara pemetaan tersebut.

Keuntungan dari

Organisasi Microkernel

Interface seragam pada request dibuat oleh suatu proses.

Extensibility

Flexibility

Portability

Reliability

Dukungan sistem terdistribusi

Sistem operasi berorientasi obyek

Studi Kasus:

Pendekatan thd Proses

• Terhadap proses, beda OS beda bentuk dukungannya.

Bagaimana proses dinamakan

19
Apakah thread disediakan

Bagaimana proses direpresentasikan

Bagaimana sumber daya proses diproteksi

Mekanisme apa yang digunakan bagi komunikasi & sinkronisasi antar proses

Bagaimana proses dihubungkan satu dengan lainnya

Proses Windows

• Proses & service disediakan oleh kernel Windows relatif sederhana dan bertujuan umum (simple & general purpose)

Diimplementasikan sebagai obyek

Proses executable dapat mengandung satu atau lebih thread

Obyek proses & thread punya kemampuan sinkronisasi built-in.

20
Hubungan Proses & Resource

21
Obyek Proses Windows

22
Obyek Thread Windows

23
Status Thread

24
Dukungan SMP Windows

Thread dapat berjalan pada processor apapun

Tetapi aplikasi dapat membatasi persamaan

Pertalian soft

Dispatcher mencoba untuk melewatkan suatu thread ready ke processor yang sama saat berjalan terakhir.

Ini membantu reuse data masih dalam yang cache memory processor dari eksekusi thread sebelumnya.

Pertalian hard

Suatu aplikasi membatasi thread untuk processor tertentu

Solaris

Solaris mengimplementasikan dukungan thread multilevel yang dirancang untuk menyediakan fleksibilitas dalam mengeksploitasi sumber daya processor.

Proses menyertakan ruang alamat pengguna, stack, & PCB

Proses Solaris

• Solaris memanfaatkan empat konsep thread-related:

Process: memasukkan ruang alamat pengguna, stack dan PCB.

Thread user-level: unit eksekusi user-created di dalam suatu proses.

Lightweight process: suatu pemetaan antara thread ULT & kernel. – Thread kernel

25
Hubungan Proses & Thread

26
Unix vs Solaris Tradisional

Struktur Data LWP

Suatu pengenal LWP

Prioritas dari LWP ini

Suatu signal mask

Nilai-nilai tersimpan dari register user-level

Kernel stack bagi LWP ini

Penggunaan resource & profiling data

Pointer ke thread kernel yang bersesuaian

Pointer ke struktur proses

Status Thread Solaris

Solaris replaces
the processor state
block with a list of
27
LWPs
28
Tugas (task) Linux

Proses atau task direpresentasikan oleh suatu struktur data task_struct

Ini mengandung sejumlah kategori, termasuk:

Status

Informasi penjadwalan (scheduling)

Pengenal (identifier)

Komunikasi antar-proses (IPC)

Dan lain-lain

29
Model Proses/Thread Linux

30
Tugas Pertemuan 4

Uraikan jawaban Problems 3.1 & 3.2, 4.1 & 4.2

Baca tutorial Thread Programming di Java & C/C++, buat rangkumannya, sebutkan sumber bacaan anda secara jelas!

Jelaskan tentang Mikrokernel, mencakup kelebihannya, kinerja, rancangan, manajemen memory, komunikasi antar proses, manajemen I/O & Interupsi!

31

Anda mungkin juga menyukai