2/19/2015
Tahun Akademik 2014/2015 Semester II
DIG1I3 - Instalasi dan Penggunaan Sistem Operasi System Calls dan Thread Mohamad Dani (MHM) Alamat E-mail:
[email protected]
Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom Applied Science School
System Call
Menyediakan antarmuka antara proses (program yang run) dengan OS Umumnya dalam bentuk instruksi bahasa assembly Bahasa untuk system programming tingkat tinggi biasanya memungkinkan system call dilakukan langsung
Misal C, C++, Bliss, PL/360
Tiga metode untuk passing parameter antara running program dan OS :
Pass parameter melalui register Menyimpan parameter dalam blok atau tabel pada memory, dan alamat tabel di-passing sebagai parameter dlm register Mmenyimpan parameter (push) ke dalam stack (oleh program), dan pop off parameter pada stack (oleh OS)
1
2/19/2015
Passing Parameter menggunakan Tabel
Contoh System Call
Urutan System call untuk meng-copy isi file ke file yang lain
2
2/19/2015
Hubungan API – System Call – OS
Standard C Library Example
C program memanggil fungsi printf() library call, yang memanggil write() system call
3
2/19/2015
Jenis-jenis System Call
Process Control File Manipulation Device Manipulation Information Maintenance Communication
Siklus Process
Fork is an operation whereby a process creates a copy of itself. It is usually a system call, implemented in the kernel. Fork is the primary (and historically, only) method of process creation on Unix-like operating systems. A process (or task) may wait on another process to complete its execution. A signal is an asynchronous notification sent to a process or to a specific thread within the same process in order to notify it of an event that occurred kill is a command that is used in several popular operating systems to send signals to running processes in order to request the termination of the process.
4
2/19/2015
Thread Program yang dieksekusi :
Proses berat (heavyweight) => proses tradisional Proses ringan (lightweight) => THREAD
Thread terdiri dari ID thread, program counter, himpunan register dan stack. Thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.
9
Threads
Thread : pecahan dari process Dua hal tentang proses, menjadi fokus sistem :
Kepemilikan sumber daya (resource ownership) Penjadwalan/eksekusi
Dua karekteristik ~ independen Penanganan pergantian eksekusi proses melibatkan satuan terkecil bagian yang dapat dipergantikan : thread atau lightweight process Penanganan kepemilikan sumber daya berkaitan dengan proses.
5
2/19/2015
Multithreading Multithreading adalah kemampuan sistem operasi untuk mendukung adanya beberapa thread di dalam sebuah proses MS DOS tidak mengenal LINUX mengenal proses sbgai threads WINDOWS, SOLARIS, MACH mengenal EXAMPLE : Java Runtime Environment
Pada sebuah lingkungan multithread sebuah proses didefinisikan sebagai satuan alokasi sumber daya dan satuan pengamanan
6
2/19/2015
Keuntungan Threads 1. 2. 3. 4.
membuat thread baru lebih cepat daripada membuat proses baru menghentikan thread lebih cepat daripada menghentikan proses waktu untuk pergantian thread lebih cepat dibandingkan pergantian proses komunikasi antar thread lebih cepat karena berada dalam satu proses sehingga tidak memerlukan intervensi dari kernel
Empat operasi terhadap thread berdasarkan status thread
Spawn Block Unblock Finish
7
2/19/2015
Processor tunggal & Multiprograming
Isu penting : Masalah sinkronisasi, blocking, terminasi dan penahanan proses
User level threads
konsep dimana kernel tidak menyadari adanya thread manajemen thread dilakukan di tingkat aplikasi
8
2/19/2015
Keuntungan user-level thread 1. 2.
3.
Penggantian thread yang dieksekusi tidak membutuhkan hak istimewa kernel. Memungkinkan implementasi alogritma penjadwalan thread yang berbeda-beda untuk aplikasi tertentu tanpa mengubah kernel. Dapat diaplikasikan pada semua sistem operasi karena tidak menyentuh level kernel
Kekurangan user-level thread 1.
2.
Kebanyakan sistem operasi melakukan blocking pada saat system call dilakukan yang menyebabkan proses (dan seluruh thread di dalamnya) diblok. jacketing Multiprocessing tidak dapat diambil manfaatnya karena kernel menugaskan satu processor hanya untuk satu proses sehingga hanya satu thread proses yang bisa dijalankan pada satu waktu.
9
2/19/2015
Kernel Level Thread
Kernel-level thread merupakan konsep dimana manajemen thread dilakukan oleh kernel dan diakses aplikasi melalui API (Application Programming Interface).
Kernel Level Thread 1.
2.
Keuntungan : Kernel dapat menjadwalkan banyak thread dari satu proses pada banyak processor blocking satu thread dalam proses tidak menghalangi thread
Kelemahan : Peralihan dari thread satu ke thread lain membutuhkan mode kernel overhead signifikan
10
2/19/2015
Konsep Lain 1. 2.
Banyak thread dimiliki oleh banyak proses Satu thread dimiliki oleh banyak proses
Daftar Pustaka
William Stallings(2012). Operating Systems 7th Edition. Prentice Hall. New Jersey halaman 395 – 426. Avi Silberschatz, Peter Galvin, dan Grag Gagne (2013). Operating Systems CONCEPTS ninth Edition. John Wiley & Sons. USA Halaman 261 – 312.
11
2/19/2015
Th4nx
23
12