English for Proficiency Certification (EPC) - Modul 2 - Further Exercises and...
SISTEMOPERASI
1. 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)
o Merespon lebih dari satu entry point :
2. 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
2.3 Daemon
3. 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 :
4. 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
Ruang Alamat Proses
5. 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
Memory yang telah digunakan, pointer ke page table
Membuka socket dan file, dll
6. 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
7. 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
Tidak ada “CreateProcess( ...)”.
8. 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