Anda di halaman 1dari 107

Lecture 2

The Kernel Abstraction

1 of 107
Today’s lecture

2 of 107
What makes a “computer system” ?

3 of 107
How a “computer” becomes alive?

4 of 107
Computer-system architecture (1980)

5 of107
Computer-system architecture (Intel Skylake 2015)

6 of 107
Computer-system architecture (Intel Skylake 2015)

7 of 107
Computer-system architecture (Raspberry Pi3)

8 of 107
An overview of HW functionality

9 of 107
Today’s lecture

10 of 107
How to bootstrap?

11 of 107
System boot

12 of 107
BIOS startup (1)

13 of 107
BIOS startup (2)

PNP adalah kepanjangan dari Plug and Play, dimana itu


adalah istilah dari perangkat tambahan pada komputer atau
laptop yang berupa USB device ataupun Jack audio
headphone. IRQ (Interrupted Request) adalah digunakan untuk
mengatur prioritas operasi perangkat keras oleh CPU. ketika
sebuah perangkat akan melakukan proses.
14 of 107
BIOS startup (3)

Boot loader sangat penting untuk sistem operasi. Namun, sering diabaikan
sebagai komponen inti komputer. Ini karena ia memainkan perannya di
background, membantu mengaktifkan sistem operasi dengan benar. Sebagian
besar prosesor di perangkat memiliki program yang dimuat sebelumnya.
Program-program ini dikenal sebagai boot loader.

15 of 107
What is Booting???

16 of 107
Istilah Boot berkaitan dengan pengertian
berikut

17 of 107
Jenis Boot

18 of 107
Bootstrap (Web)

19 of 107
Twitter Bootstrap

20 of 107
Why use Bootstrap

Bagi kita yang bekerja di bidang front-end atau back-end developer atau
pengembangan situs jejaring tentunya akrab dengan hyper text markup
language (HTML) dan CSS (Cascading Style Sheets). Keduanya adalah hal
utama dalam pembangunan suatu situs jejaring dan tampilan web secara
umum. Peran CSS untuk membuat tampilan sebuah halaman web yang
sedang dibangun. Bagi pengunjung situs pun CSS berperan besar agar
pengunjung nyaman berselancar di laman sebuah situs.

21 of 107
Peran CSS
CSS dapat diartikan sebagai lembar berjenjang untuk format tata letak
halaman web, sebuah temuan untuk membantu pengembang web yang
tadinya hanya bergantung pada HTML sebagai bahasa markup. HTML di awal
mula digunakan untuk menandai objek di halaman web seperti tabel, gambar,
paragraf, dan sebagainya. Penggunaan HTML di awal mula perkembangan
internet memang bisa dibilang cukup karena saat itu internet hanya digunakan
oleh kalangan terbatas untuk berbagi informasi penelitian, proses format
halaman amat terbatas dan gaya /style halaman situs masih monoton. Namun
setelah internet digunakan luas dan makin berkembang mulai berpikir
bagaimana halaman situs agar lebih menarik. Hal ini yang lantas membuat
HTML menjadi amat terbebani. Pengembangan web berubah menjadi sesuatu
yang sangat kompleks dan sulit ditangani. Tentu saja, peran HTML sebagai
alat struktural dan alat bantu desain terasa amat berat. Untuk itulah kemudian
CSS dibuat sebagai solusi dari tugas desain dan pemformatan, sedangkan
HTML bisa kembali fokus pada tata letak halaman web. CSS muncul dan
lantas dikenal sebagai alat untuk memformat dokumen yang ditulis
menggunakan bahasa markup yaitu HTML, CSS dikenal sebagai bahasa style
sheet yang bekerja sama dengan HTML untuk membangun sebuah halaman
situs jejaring. 22 of 107
Processes

23 of 107
Konsep Dasar dan Definisi Proses
Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih
dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga
termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada
program counter dan isi dari daftar prosesor/ processor's register. Suatu proses
umumnya juga termasuk process stack, yang berisikan data temporer (seperti
parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data
section, yang berisikan variabel global.
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program
adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam
disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan
sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk
dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.
Walau dua proses dapat dihubungkan dengan program yang sama, program
tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa
pengguna dapat menjalankan copy yang berbeda pada mail program, atau
pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap
proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama,
data section bervariasi. Juga adalah umum untuk memiliki proses yang
menghasilkan banyak proses begitu ia bekerja (hubungan antar proses)

24 of 107
Process Concept

25 of 107
Process Information

26 of 107
Process Control Block (PCB)

27 of 107
Process Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) - juga
disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2-2. PCB berisikan banyak
bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini:
Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan
untuk proses ini.
CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register,
ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/
status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut
berjalan/ bekerja dengan benar setelahnya (lihat Gambar ).
Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari
dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan oleh sistem operasi.
Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas
waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,
suatu daftar open berkas dan banyak lagi.
PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat
bervariasi dari prose ke proses.

28 of 107
Process State

29 of 107
Process State (Keadaan Proses)
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/
asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari
proses tersebut.
Tiap proses mungkin adalah satu dari keadaan berikut ini:
New: Proses sedang dikerjakan/ dibuat.
Running: Instruksi sedang dikerjakan.
Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
penyelesaian I/O atau penerimaan sebuah tanda/ signal).
Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

30 of 107
Diagram of Process State

31 of 107
Process Scheduling

32 of 107
Process Scheduling

33 of 107
Schedulers

34 of 107
Schedulers (Cont.)

35 of 107
Context Switch

36 of 107
CPU Context Switch

37 of 107
Process Creation

38 of 107
Process Creation (Cont.)

39 of 107
Process Termination

40 of 107
Threads

41 of 107
Threads (Cont.)

42 of 107
Threads (Cont.)

43 of 107
Multiple Threads within a Task

44 of 107
Solaris 2: example

45 of 107
Solaris 2: Threads

46 of 107
Today’s lecture

47 of 107
Typical Unix OS structure

48 of 107
User Level vs Kernel Level
USER THREAD
User thread didukung oleh kernel dan diimplementasikan oleh
thread library ditingkat pengguna. Library mendukung untuk
pembentukan thread, penjadualan, dan managemen yang tidak
didukung oleh kernel. Contoh user thread adalah POSIX
Pthreads, Mach C-threads, dan Solaris threads.
KERNEL THREAD
Kernel thread didukung secara langsung oleh sistem operasi:
pembentukan thread, penjadualan, dan managemen dilakukan
oleh kernel dalam ruang kernel. Karena managemen thread telah
dilakukan oleh sistem operasi, kernel thread biasanya lebih
lambat untuk membuat dan mengelola daripada pengguna thread.
Windows NT, Solaris, dan Digital UNIX adalah sistem operasi
yang mendukung kernel thread.
49 of 107
User Level vs Kernel Level
USER THREAD
Kelebihan :
Pengaturan dan pembuatan thread lebih cepat
Kekurangan:
Apabila kernelnya merupakan thread tunggal maka apabila salah satu user-
level thread menjalankan blocking system call maka akan mengakibatkan
seluruh proses diblok walau pun ada thread lain yang dapat jalan dalam
aplikasi tersebut

KERNEL THREAD
Kelebihan :
Jika sebuah thread menjalankan blocking system call maka kernel dapat
menjadualkan thread lain di aplikasi untuk melakukan eksekusi.
pada lingkungan multiprocessor, kernel dapat menjadual thread-thread pada
processor yang berbeda.
Kekurangan :
Pengaturan dan pembuatan thread lebih lambat.
50 of 107
Typical Unix OS structure

51 of 107
Typical Unix OS structure

52 of 107
Pipeline of creating an executable file

53 of 107
Execution (run an application)

54 of 107
What’s an application?

55 of 107
Responsibilities

56 of 107
Typical Unix OS structure

57 of 107
OS service examples

58 of 107
System Calls
Biasanya tersedia sebagai instruksi bahasa assembly.
Beberapa sistem mengizinkan system calls
dibuat langsung dari program bahasa tingkat tinggi.
Beberapa bahasa pemrograman (contoh: C,
C++) telah didefinisikan untuk menggantikan bahasa assembly
untuk sistem pemrograman.
System calls yang berhubungan dengan kontrol proses antara lain
ketika penghentian pengeksekusian program. Baik secara normal
(end) maupun tidak normal (abort). Selama proses dieksekusi
Kadang diperlukan untuk me-load atau mengeksekusi program
lain, disini diperlukan lagi suatu system calls. Juga ketika membuat
suatu proses baru dan menghentikan sebuah proses.
Ada juga system calls yang dipanggil ketika kita ingin meminta dan
merubah atribut dari suatu proses.
59 of 107
System Calls Manajemen Proses
System Call untuk manajemen proses diperlukan untuk mengatur proses-proses
yang sedang berjalan. Kita dapat melihat penggunaan system calls untuk
manajemen proses pada Sistem Operasi Unix.
Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk
Manajemen proses adalah Fork. Fork adalah satu satunya cara untuk membuat
sebuah proses baru pada sistem Unix. Fork membuat duplikasi yang mirip
dengan proses aslinya, termasuk file descriptor, register, dan lainnya.
Setelah perintah Fork, child akan mengeksekusi kode yang berbeda dengan
parentnya. Bayangkan yang terjadi pada shell. Shell akan membaca command
dari terminal, melakukan fork pada child, menunggu child untuk mengeksekusi
command tersebut, dan membaca command lainnya ketika child terminate.
Untuk menunggu child selesai, parent akan mengeksekusi system call waitpid,
yang hanya akan menunggu sampai child selesai. Proses child harus
mengeksekusi command yang dimasukkan oleh user(pada kasus shell). Proses
child melakukannya dengan menggunakan system call exec.
Dari ilustrasi tersebut kita dapat mengetahui bagaimana system call dipakai
untuk manajemen proses. Kasus lainnya bukan hanya pada Fork, tetapi hampir
setiap proses memerlukan system call untuk melakukan manajement proses.
60 of 107
Syatem Calls

61 of 107
Kernel

Dalam sains komputer, kernel merupakan inti dari


sistem pengoperasian yang mengatur penggunaan
ingatan/memori, peranti masukan dan keluaran, proses-proses,
penggunaan fail pada sistem fail dan lain-lain. Kernel juga
menyediakan sekumpulan layanan yang digunakan untuk
mengakses kernel yang disebut system call. System call ini
digunakan untuk mengimplementasikan berbagai layanan yang
diberikan oleh sistem pengoperasian. Program sistem dan semua
program-program lainnya yang dijalankan di atas kernel disebut
user mode.

62 of 107
Kernel Linux
Kernel Linux terdiri dari beberapa bagian penting, seperti:
pengurusan proses, pengurusan ingatan, pemacu perkakasan,
pemacu sistem fail, pengurusan jaringan dan lain-lain. Namun
bahagian yang terpenting ialah pengurusan proses dan
pengurusan ingatan. Pengurusan ingatan meliputi penggunaan
ingatan, kawasan pertukaran, bahagian-bahagian kernel dan
untuk cache penimbal (buffer cache). Pengurusan proses
menangani penggunaan proses-proses dan penjadualan
proses. Pada bahagian dasar kernel terdapat pemacu
perkakasan untuk setiap jenis perkakasan komputer yang
disokong.

63 of 107
Shell

Shell adalah perisian atau aplikasi yang menjadi alat untuk


perhubungan antara pangguna untuk berhubung dengan
sistem operasi, shella akan membaca apa sahaja yang
dimasukkan oleh pengguna dan memahaminya sebagai
arahan untuk menjalankan perisian lain, memanipulasi fail,
dan memberikan output. Shell juga turut dikenali sebagai
command line interface
Terdapat pelbagai shell untuk Unix/Linux. Korn shell atau
POSIX shell adalah shell yang biasa di kebanyakkan jenis
unix atau linux.

64 of 107
Kompilasi Kernel
Kernel adalah program yang dimuat pada saat boot yang
berfungsi sebagai interface antara user-level program dengan
hardware. Secara teknis linux hanyalah sebuah kernel. Pogram
lain seperti editor, kompilator dan manager yang disertakan dalam
paket (SuSE, RedHat, Mandrake, dll.) hanyalah distribusi yang
melengkapi kernel menjadi sebuah sistem operasi yang lengkap.
Kernel membutuhkan konfigurasi agar dapat bekerja secara
optimal.
Konfigurasi ulang dilakukan jika ada device baru yang belum
dimuat. Setelah melakukan konfigurasi, lakukan kompilasi untuk
mendapatkan kernel yang baru. Tahap ini memerlukan
beberapa tool, seperti kompilator dsb. Kompilasi kernel ini
dilakukan jika ingin mengupdate kernel

65 of 107
Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command


driven). Program yang membaca instruksi
dan mengartikan control statements umumnya disebut: control-
card interpreter, command-line
interpreter dan terkadang dikenal sebagai shell. Command-
Interpreter System sangat bervariasi dari satu
sistem operasi ke sistem operasi yang lain dan disesuaikan
dengan tujuan dan teknologi perangkat
Masukan/Keluaran yang ada. Contohnya: CLI, Windows, Pen-
based (touch), dan lain-lain.

66 of 107
Typical Unix OS structure

67 of 107
OS components

68 of 107
Processor management

69 of 107
Memory management

70 of 107
I/O device management

71 of 107
File system

72 of 107
Today’s lecture

73 of 107
Device interrupts

74 of 107
Challenge: protection

75 of 107
A problem

76 of 107
Main points

77 of 107
Process abstraction

78 of 107
Thought experiment

79 of 107
Hardware support: dual-mode operation

80 of 107
A model of a CPU

81 of 107
A CPU with dual-mode operation

82 of 107
Hardware support: dual-mode operation

83 of 107
Privileged instruction examples

84 of 107
Virtual addresses

85 of 107
Hardware timer

86 of 107
“User Kernel” model switch

87 of 107
Mode switch

88 of 107
System calls

89 of 107
Interrupts and exceptions

90 of 107
Interrupt and exceptions (1)

91 of 107
Interrupt and exceptions (2)

92 of 107
How to take interrupt & syscall safely?

93 of 107
Interrupt & trap & syscall vector

94 of 107
Interrupt & trap & syscall vector (cont’d)

95 of 107
Interrupt stack

96 of 107
Interrupt handler & interrupt masking

97 of 107
Case study: x86 interrupt & syscall

98 of 107
Before interrupt

99 of 107
During interrupt

100 of 107
After interrupt

101 of 107
At end of handler

102 of 107
Kernel system call handler

103 of 107
System call stubs

104 of 107
User-level system call stub

105 of 107
Kernel-level system call stub

106 of 107
Thank You

107 of107

Anda mungkin juga menyukai