MODUL 3 SISTEM OPERASI Proses

MODUL 3 SISTEM OPERASI
Proses
1. Pokok Bahasan
1.
2.
3.
4.

Masuk dan keluar Kernel
Siklus hidup dan konsep Proses
Switching Konteks
Pembuatan Proses

2. Review Struktur Sistem S.O
2.1. Kernel







Kernel adalah bagian dari S.O yang berjalan dalam mode privileged:
o Bagian besar dari Unix dan Windows (kecuali libraris)
o Bagian kecil dari L4, Barrelfish dll (microkernel)
o Tidak terdapar pada beberapa embedded system
Sering dikenal sebagai
o Nukleus, nub, supervisor
Kernel adalah sebuah program khusus
o Biasanya merupakan sebuah server yang diarahkan berdasarkan sebuah event (event-driver
server)
o Merespon lebih dari satu entry point :

o

 Pemanggilan System
 Interrupt Hardware
 Program traps
Mungkin juga termasuk internal threads

2.2 Pustaka Sistem (System Library)





Fungsi –fungsi yang sering dipakai
o printf() dll
o Fungsi umum lain
“Pembungkus” pemanggilan sistem ( System call wrappers)
o Meng-create dan mengeksekusi pemanggilan sistem deri bahasa pemrograman tingkat tinggi
o Lihat ‘man syscalls’ pada linux

2.3 Daemon




Proses-proses yang merupakan bagian dari S.O
o Microkernel : kebanyakan dari SO
o Linux : jumlahnya terus bertambah
Keuntungan :
o Modularitas, fault tolerance

o Lebih memudahkan penjadwalan

3. Masuk dan Keluar Kernel






Kapan Kernel dimasuki?
o Awalan sistem (System Startup) dan
o Exception (a.k.a trap)
o Interrupt : disebabkan oleh “hal lain”
o Pemanggilan sistem (system call)
System Call :
o Pemanggilan Prosedur jarak jauh(Remote Procedure Call – RPC) kepada kernel
o Kernel merupakan sebuah urutan syscall event handler.
o Mekanismenya bergantung pada hardware

Argumen system call :

o Syscall adalah cara sebuah program meminta layanan dari kernel
o Implementasinya bisa bermacam-macam :

o
o


 Diteruskan ke register prosesor
 Disimpan dalam memori (alamat(pointer) di register)
 Di-push ke stack
Pustaka sistem (libc) di’bungkus’ sebagai fungsi C.
Kode Kernel membungkus handler sebagai pemanggilan C (C call)

Kapan keluar dari kernel?
o Saat pembuatan sebuah proses baru
 Termasuk startup
o Saat meneruskan sebuah program sesudah sebuah trap
 Exception, interrupt atau system call
o Saat Pemanggilan level user (User-level upcall)
 Seperti interrupt tetapi pada level user

o Saat Pindah (switching) ke proses lain

4. Proses






Konsep Proses :
o Eksekusi sebuah program dengan hak terbatas
o Mis. Virtual mesin
o Pada sistem yang lebih lama :
 Prosesor tunggal yang terdedikasi (dedicated single processor)
 Ruang alamat tunggal (single address space)
 System call untuk fungsi fungsi SO
o Dalam software :
Sistem komputer = (kernel + proses)
“Bahan-bahan” Proses:
o Prosesor Virtual

 Ruang Alamat
 Register
 Instruction Pointer/Program Counter
o Teks program (object code)
o Data program (static, heap, stack)
o Berbagai hal terkait S.O.
 Open file, socket, CPU share
 Hak keamanan dll
Ruang Alamat Proses

Bit Alamat/bagian atas memori dialokasikan sebagai Stack
Bit Alamat/Bagian bawah untuk Teks (program), data dan BSS
Ket: BSS = Block Start with Symbol : Segmen memori untuk menyimpan variabel pd
program yang belum diberi nilai awal (diinisiasi)
o Beberapa mesin menggunakan bit alamat atas untuk untuk mengindikasikan mode kernel
Siklus Hidup Proses
o
o
o






Multiplexing
o S.O melakukan Time-Division Multiplexing terhadap Proses
 Atau Space- Division Multiplexing (pada multiprocessor)
o Tiap proses memiliki sebuah Process Control Block (PCB)
 Merupakan Struktur data di dalam kernel (in-kernel)
 Menampung semua state prosesor virtual
Identifier dan/atau name
Register
Memory yang telah digunakan, pointer ke page table
Membuka socket dan file, dll

5. Pembuatan Proses (Process Creation)


Pembuatan proses :
o Terdapat masalah Bootstrapping. Membutuhkan :

 Kode untuk run
 Memori untuk run di dlmnya
 Set up i/o dasar agar kita dapat berkomunikasi dengannya
 Cara untuk me-refer pada proses tsb



Pembuatan proses dalam Window :

Pembuatan proses tsb memiliki parameter yang sangat banyak membutuhkan space yang
besar!
Pembuatan proses dalam Unix : fork( ) dan exec( )
o Secara dramatis menyederhanakan pembuatan proses
 fork( ): membuat (create) “child” copy dari proses pemanggilan
 exec( ): mengganti teks proses pemabggilan dengan program baru
 Tidak ada “CreateProcess( ...)”.
o




Tugas 1 (DiUpload di Pertemuan 4)
Carilah bagaimana menampilkan prcocess tree seperti gambar di atas (gambar Unix a process tree) dengan
menggunakan Linux (linux apa saja). Laporkan selengkap mungkin (Latar belakang, Teori, Tool, Langkah
Kerja, Penjelasan hasil, Diskusi/Kesimpulan)

Kuis
3.1. Manakah yang merupakan System call, interrupt atau exception
a. Pembagian oleh bilangan zero
b. Fork
c. Kedatangan Paket jaringan (Incoming network packet)
d. Pelanggaran segmentasi (Segmentation violation)
e. Read
f. Input dari Keyboard

Sumber : https://spcl.inf.ethz.ch/Teaching/2016-osnet/lectures/os_2_1s.pdf