MODUL 3 SISTEM OPERASI
Proses
1.
Pokok Bahasan
1. Masuk dan keluar Kernel 2. Siklus hidup dan konsep Proses 3. Switching Konteks
4. 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)
Pemanggilan System
Interrupt Hardware
Program traps
o 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
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 :
Diteruskan ke register prosesor
Disimpan dalam memori (alamat(pointer) di register)
Di-push ke stack
o Pustaka sistem (libc) di’bungkus’ sebagai fungsi C.
o 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
o Bit Alamat/bagian atas memori dialokasikan sebagai Stack o Bit Alamat/Bagian bawah untuk Teks (program), data dan BSS
o 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
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
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
Pembuatan proses dalam Window :
o 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
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