Multitasking
-Penjadwalan
-interleaving
Proses-A : Regs[A] ç 10 + 5;
Proses B : Regs[B] ç 10 – 5;
Proses A : X ç Regs[A]
Pada contoh diatas hasilnya yang diharapkan
adalah 15 tetapi hasil yg didapat adalah 5.
Kondisi diatas disebut RACE CONDITION.
RACE CONDITION adalah
Kondisi tidak menentu yg diakibatkan oleh
pengaksesan data yg sama oleh dua proses atau
lebih.
CRITICAL SECTION
Bagian dari suatu program dimana terjadi
pengaksesan terhadap share memory atau share file
yg dapat mengakibatkan terjadinya race condition.
Cara yg dapat dilakukan untuk menghindari terjadi
race condition :
Mencegah situasi seperti contoh diatas dan
mencegah situasi-situasi lain yg melibatkan share
memory, share file, dan share resource lainnya.
Melarang lebih dari satu proses melakukan
pembacaan dan penulisan data pada lokasi yg
sama secara bersamaan.
Jika ada satu proses sedang menggunakan share
variabel atau share file, maka proses yg lain
dilarang masuk ke pekerjaan yg sama.
Ditawarkan suatu solusi untuk menghindari
terjadinya race condition yg lebih dikenal
sebagai mutual excluion.
Kriteria Mutual Exclusion :
Tidak boleh ada 2 proses atau lebih yg berada dalam
satu critical section
Jangan berasumsi dengan kecepatan running CPU
dan jumlah CPU
Tidak boleh ada proses diluar critical section yg
memblok atau menghalangi proses lain masuk ke
critical section
Tidak boleh ada proses yg menunggu terus, untuk
masuk ke critical section
Lifecycle of Process
Pengelolaan lifecycle Process
Penciptaan proses
1. SO akan menerbitkan suatu nomor ID
untuk proses yang diciptakan.
2. SO akan membuat data record dengan
ID tersebut, kemudian menyisipkan pada
struktur data di memori utama yang
disebut process table
3. SO akan mengalokasi ruang memori
utama untuk menyimpan image proses.
4. Inisialisasi PCB
5. Masuk ke antrian ready. Status ready
Penghentian Proses
1. Mengembalikan hasil output ke parent
process (proses yang menciptakannya)
2. Menghapus rekaman proses di semua
antrian dan tabel proses.
3. SO akan menghapus PCB dan image
process. Semua recources dikembalikan
ke SO
Setelah selesai, SO akan melakukan
penjadwalan (scheduling) untuk memilih
proses lain untuk dieksekusi
Model 3 status
Status Proses Ready
Running
Blocked
New
Transitions between states
1 - Process enters ready queue
1 2 - Scheduler picks this process
3 - Scheduler picks a different
Ready process
2
4 - Process waits for event (such as
5 I/O)
3 5 - Event occurs
Blocked 6 - Process exits
Running
(waiting) 7 - Process ended by another
4 process
7
6
7
Exit
Ada 4 transisi yang mungkin terjadi pada suatu proses :
Running ke Blocked
• Transisi ini terjadi bila suatu proses tidak bisa dilanjutkan
karena peralatan input belum siap
Running ke Ready
• Transisi ini terjadi saat scheduler memutuskan bahwa suatu
proses telah cukup lama sehingga perlu menghentikan
sementara
Ready ke Running
• Transisi ini dilakukan ketika semua proses telah memperoleh
giliran semua, maka proses pertama akan running kembali.
Jika sudah tidak ada lagi proses yg sedang dieksekusi, maka
transisi akan segera dihidupkan dan proses yg sedang ready
segera masuk kembali.
Blocked ke Ready
• Terjadi saat ada peristiwa lain diluar dirinya membangunkan
proses tersebut yang selama ini sedang tertidur
Model 5 status
Process switching
Interupsi
- aksi eksternal
a. interupsi waktu
b. interupsi piranti I/O
c. interupsi kesalahan memori utama
Trap kesalahan/kondisi khusus
(exception condition)
Supervisor call atau system call
Tahapan process switching
Struktur kendali sistem operasi
Tabel Proses (Process Table)
Untuk mengimplementasikan model
proses, sistem operasi membuat suatu
tabel yg disebut TABEL PROSES.
Mencatat informasi mengenai status dari
setiap proses
Informasi ini akan digunakan SO untuk
mengatur penjadwalan eksekusi proses.
Umumnya diimplementasikan dengan link
list
Setiap proses mempunyai record dalam tabel
tersebut, dimana tiap record terdiri dari
beberapa field yg berisi informasi tentang :
Status proses
Program Counter
Stack Pointer
Alokasi Memori
Status File yang dibuka
Informasi perhitungan dan penjadualan
Informasi-informasi lain mengenai proses
tersebut.
Masing-masing record menuju image
(alokasi memori utama)
Sebuah process image memiliki elemen-
elemen:
Data pengguna (User data)
berisi data-data program
Kode program (User program)
berisi kode-kode instruksi program
Sistem stack (user stack)
menyimpan parameter dan alamat dari prosedur
Process Control Block (PCB)
menyimpan informasi yang diperlukan SO dalam
menjalankan proses.
PCB (Process Control Block )
1. Process identification
berkaitan dengan identifikasi proses secara
unik. Elemen yang termasuk: ID proses, ID
proses parent, ID user.
2. terdiri dari register-register prosesor. Elemen
yang termasuk: user-visible register, control
and status register dan stack pointer
3. Process control information
berisi informasi yang diperlukan SO
untuk mengendalikan beragam proses
yang aktif. Elemen yang termasuk:
a. Scheduling and state information
b. data structuring
c. Interprocess communication
d. process privileges
e. memory management
f. Resource ownership and utilization
PCB