Proses dan Threads (chapter 4-5-6)
Sistem operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut biasanya disebut dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task .
Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack dan daerah data.
Ketika program dijalankan, proses dapat secara unik dikategorikan
ke sejumlah elemen:
- Identifier:
untuk membedakan dari semua proses.
- State: ketika
proses berjalan, menghasilkan running state.
- Priority:
tingkatan prioritas dari setiap proses.
- Program
Counter: alamat dari instruksi selanjutnya dalam program yang akan dijalankan.
- Memory
pointers: merupakan pointer bagi kode program dan data yang berhubungan dengan
proses, serta blok memori yang di bagikan dengan proses lainnya.
- Context data:
data yang terdapat pada register dalam processor ketika program dijalankan. I/O status
information: permintaan I/O, perangkat I/O yang di assign ke proses.
- Accounting
information: jumlah dari waktu processor dan waktu yang digunakan, batas waktu,
jumlah account dll.
Proses State
· Running: proses yang sedang dijalankan.
· Ready: Proses yang disiapkan unruk menjalankan tanggung jawab yang diberikan.
· Blocked/Waiting: proses yang tidak dapat mengeksekusi sama terjadi event.
· New: proses yang telah dibuat tapi belum diakui ke dalam proses
Jika sistem opeasi bertugas memanage proses dan resource, maka dibutuhkan infirmasi tentang status saat ini dari setiap proses dan resource. Semua operating sistem memaintain informasi dalam 4 kategori.
· Memory table digunakan untuk tetap pada main memory dan secondary memori.
· I/O table digunakan sistem operasi untuk memanaje perangkat I/O dan saluran dari sistem komputer.
· File table digunakan untuk menyediakan informasi tentang keberadaan file, lokasi file dalam secondary memori, status file saat ini, dan atribut lainnya.
· Proses table berfungsi dimana proses ditempatkan. Atribut-atribut yang dibutuhkan untuk manajemennya adalah proses id, process state, dan lokasi dalam memori.
· Process Location
Proses merupakan kumpulan dari program yang akan dijalankan. Setiap proses berhubungan dengan jumlah atribut yang digunakan oleh sistem operasi untuk mengontrol proses.
Penciptaan proses terjadi karena terdapat batch baru. Sistem operasi dengan kendali batch job,setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya. Untuk menciptakan sebuah proses, ada beberapa tahapan yang dijalankan:
1. Memberikan identifikasi unik proses untuk proses baru.
2. Mengalokasikan ruang untuk proses.
3. Menginisialisasi blok kontrrol proses
4. Mengeset hubungan yang tepat, sebagai contoh OS memaintain setiap antrian penjadwalan sebagai linked list, lalu proses baru harus diletakkan dalam list Ready atau Ready/Suspend.
5. Menciptakan proses lain.
Waktu kapan pengentian proses terjadi:
- Normal exit (voluntary)
- Error exit (voluntary)
- Fatal Error (involuntary)
- Killed by antother process (involuntary)
Alasan penghentian sebuah proses, karena:
- Melebihi batas waktu
- Memori tidak tersedia
- Eror aritmatika
- Kegagalan I/O
- Data misuse
- Bounds violation
Penggantian Proses
Dalam waktu yang sama, proses yang sedang berjalan disela oleh proses lain yang diassign oleh sistem operasi ke status Running.
Alasan penggantian proses:
- Clock interrupt
- I/O interrupt
- Memory fault
Multiprogramming
Kombinasi eksekusi dari dua atau lebih program yang berbeda. Area yang digunakan untuk masing-masing job disimpan secara serentak pada memory utama yang disebut dengan memory partition.
Penciptaan proses dalam multiprogramming menggunakan pemanggilan sistem :
- system()
- fork()
- exec()
Thread
} Thread merupakan unit dasar dari penggunaan CPU
} Thread terdiri dari Thread_ID, program counter, register set, dan stack
} Thread juga sering disebut lightweight process
Multithreading
} Situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa
} Contohnya adaah sebuah web server yang dapat mempunyai ratusan klien yang mengaksesnya secara concurrent
Keuntungan Thread
- Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
2. Berbagi sumber daya: thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
3. Bisa saling berkomunikasi antar thread
Implementasi Thread
Keuntungannya :
Adanya algoritma scheduling , performance lebih bagus
Kerugian :
Pada saat memproses thread maka prosesnya akan diblok menunggu sampai proses thread selesai
2. Kernel space
Keuntungan : tidak mebutuhkan non blocking
Kerugian : biaya yang dibutuhkan berat pada saat membuat thread dan menglepaskan thread
tersebut.
Pop-Up Thread
Thread yang muncul sendiri dalam 1 proses yang ada thread , ketika ada pesan masuk muncul 1 thread untuk menerima pesan tersebut.
Fungsi dari kernel system operasi ada 4 yaitu :
1. Process management
a. Process creation and termination
b. Process scheduling and dispatching
c. Process switching
d. Process synchronization and support for inteprocess communication
e. Management of process control blocks
2. Memory management
a. Allocation of address space to process
b. Swapping
c. Page and segment management
3. I/O management
a. Buffer management
b. Allocation of I/O channels and devices to process
4. Support functions
a. Interrupt handling
b. Accounting
c. Monitoring
Pthread life cycle
Relasi antara thread dan proses
Thread:process
|
Description
|
Example system
|
1:1
|
Adanya 1 thread yang dapat menghandle 1 process
|
Traditional UNIX implementation
|
1:M
|
Adanya 1 thread yang dapat menjalankan proses yang banyak sekaligus
|
Windows NT,Solaris,linux,OS/2,OS/390,MACH
|
M:1
|
Adanya 1 process yang di handle oleh banyak thread
|
Ra(clouds),Emerald
|
M:M
|
Kombinasi dari 1:M dan M:1
|
TRIX
|
Tingkah laku dari proses ada 2 :
1. Process bound
2. I/O bound
CPU scheduler
Tugas dari CPU adalah untuk memastikan tidak ada aplikasi yang mensalahgunakan
Memilih diantara proses yang ready kemudian dialokasikan tugas processor gak ada aplikasi yang mensalah gunakan kekuasaannya .
Cpu scheduling meutuskan ketika sebuah proses:
- Switches dari running ke state waiting
- Switches dari running ke state ready
- Switches dari waiting ke ready
- Terminates
Dispatcher latency : waktu dia stop suatu proses dan minta proses lain yang dibutuhkan .
Kriteria untuk scheduling :
1. CPU utilization : Penggunaan CPU dimana cpu harus bekerja
2. Throughput: setiap waktu ada berapa jumlah proses yang telah diselesaikan
3. Turnaround time : seberapa lama proses tersebut diesekusi
4. Waiting time : seberapa lama proses tersebut menunggu
5. Respone time : respon menjawab saat pertama kali tetapi bukan output
Kriteria optimisasi :
1. Max CPU utilization
2. Max throughput
3. Min turnaround time
4. Min waiting time
5. Min response time
Tujuan dari scheduling
o All systems
o Fairness – semua golongan dibagi sama rata
o Policy enforcement – seperti kebijakan
o Balance – menjaga semua bagian dari system yang sibuk
o Batch systems
o Throughput- memaksimalkan pekerjaan per jam
o Turnaround time – meminimalisasi waktu antara submission dan termination
o CPU utilization – menjaga CPU yang sibuk semua waktu
o Interactive systems
o Response time –merespon untuk merequest secara cepak
o Proportionality-ketika sebuah proses yang diinginkan tidak sesuai dengan hasilnya
o Real-time systems
o Meeting deadlines – data tidak ada yang boleh hilang
o Predictability – penurunan kualitas dalam multimedia system
Batch scheduling Algorithm
Memproses pada saat request langsung
Keuntungan : mudah dimengerti dan mudah unutk dipahami
Kerugian : pekerjaan yang harusnya bisa dikerjakan secara singkat harus menunggu lama .
Shortest Job First
Kalo ada pekerjaan yang lebih ringan akan dikerjakan terlebih dahulu
Ada 2 macam :
- Nonpreemptive : proses yang sedang berjalan tidak akan bisa diintrupsi jika ada proses yang jalannya lebih singkat
- Preemptive : proses baru yang dating dengan waktu yang kurang dari sisa waktu yang lebih pendek maka akan dijalankan duluan
Link:
www.binus.ac.id
www.skyconnectiva.com
0 komentar: