UTS CT (ppg prajabatan gelombang 1 tahun 2023).pptx
Sistem Operasi: Arsitektur komputer, Pengantar Sistem Operasi dan Kernel
1. Sistem Operasi:
Arsitektur Komputer, Pengantar Sistem
Operasi, Kernel
Andino Maseleno
Indonesia, 25 February 2015
http://maseleno.blogspot.com
facebook: andimaseleno@gmail.com
andinomaseleno@mail.ru
2. Arsitektur komputer adalah konsep perencanaan dan struktur pengoperasian
dasar dari suatu sistem komputer. Arsitektur komputer ini merupakan rencana
cetak-biru dan deskripsi fungsional dari kebutuhan bagian perangkat keras
yang didesain (kecepatan proses dan sistem interkoneksinya). Dalam hal ini,
implementasi perencanaan dari masing–masing bagian akan lebih difokuskan
terutama, mengenai bagaimana CPU akan bekerja, dan mengenai cara
pengaksesan data dan alamat dari dan ke memori
cache,RAM, ROM, harddisk, dll). Beberapa contoh dari arsitektur komputer ini
adalah arsitektur von Neumann, CISC, RISC, blue Gene, dll.
Computer Architecture
3. Abstraksi dari sebuah arsitektur
komputer dan hubungannya
dengan bagian perangkat
keras, firmware, assembler,
kernel, sistem operasi, dan
perangkat lunak aplikasinya
Apa itu Firmware?
Computer Architecture
4. Firmware adalah istilah yang mengacu kepada
rutin-rutin perangkat lunak yang disimpan di dalam
Memori Hanya Baca. Tidak seperti Memori Akses
Acak, memori hanya baca tidak akan dapat
berubah meski tidak dialiri listrik. Rutin-rutin yang
mampu menyalakan komputer (startup) serta
instruksi input/output dasar
(semacam BIOS atau sistem operasi embedded)
disimpan di dalam firmware/perangkat tegar.
Modifikasi memang dapat dilakukan, tetapi hal
tersebut tergantung dari jenis ROM apa yang
digunakan. Firmware yang disimpan dalam ROM
tidak dapat diubah, tetapi perangkat tegar yang
disimpan dalam ROM yang dapat diubah
semacam EEPROMatau Flash ROM, masih dapat
diubah sesuka hati.
Firmware
Computer Architecture
5. The Von Neumann Architecture
Arsitektur von Neumann (atau Mesin Von Neumann)
adalah arsitektur yang diciptakan oleh John von Neumann (1903-1957).
Arsitektur ini digunakan oleh hampir semua komputer saat ini.
Arsitektur Von Neumann menggambarkan komputer dengan empat
bagian utama: Unit Aritmatika dan Logis (ALU), unit kontrol, memori,
dan alat masukan dan hasil (secara kolektif dinamakan I/O). Bagian ini
dihubungkan oleh berkas kawat, “bus”
Computer Architecture
6. The CPU Control Unit
Unit kendali (bahasa Inggris: Control Unit - CU) adalah salah satu
bagian dari CPU yang bertugas untuk memberikan
arahan/kendali/ kontrol terhadap operasi yang dilakukan di
bagian ALU (Arithmetic Logical Unit) di dalam CPU
tersebut. Output dari CU ini akan mengatur aktivitas dari bagian
lainnya dari perangkat CPU tersebut.
Computer Architecture
7. Pada awal-awal desain komputer, CU
diimplementasikan sebagai ad-hoc logic yang
susah untuk didesain. Sekarang, CU
diimplementasikan sebagai
sebuah microprogram yang disimpan di dalam
tempat penyimpanan kontrol (control store).
Beberapa word dari microprogram dipilih
oleh microsequencer dan bit yang datang
dari word-word tersebut akan secara langsung
mengontrol bagian-bagian berbeda dari
perangkat tersebut, termasuk di antaranya
adalah register, ALU, register instruksi, bus dan
peralatan input/output di luar chip. Pada
komputer modern, setiap subsistem ini telah
memiliki kontrolernya masing-masing, dengan CU
sebagai pemantaunya (supervisor).
Computer Architecture
The CPU Control Unit
8. Tugas dari Control Unit adalah sebagai berikut:
Mengatur dan mengendalikan alat-alat input
dan output.
Mengambil instruksi-instruksi dari memori
utama.
Mengambil data dari memori utama kalau
diperlukan oleh proses.
Mengirim instruksi ke ALU bila ada perhitungan
aritmatika atau perbandingan logika serta
mengawasi kerja.
Menyimpan hasil proses ke memori utama.
Computer Architecture
The CPU Control Unit
9. ALU, singkatan dari Arithmetic And Logic
Unit (bahasa Indonesia: unit aritmatika dan logika),
adalah salah satu bagian dalam dari sebuah
mikroprosesor yang berfungsi untuk melakukan
operasi hitungan aritmatika dan logika. Contoh
operasi aritmatika adalah operasi penjumlahan dan
pengurangan, sedangkan contoh operasi logika
adalah logika AND dan OR.
The Arithmetic Logic Unit
Computer Architecture
10. Tugas utama dari ALU (Arithmetic And
Logic Unit)adalah melakukan semua
perhitungan aritmatika atau matematika
yang terjadi sesuai dengan instruksi
program. ALU melakukan operasi
arithmatika dengan dasar pertambahan,
sedang operasi arithmatika yang lainnya,
seperti pengurangan, perkalian, dan
pembagian dilakukan dengan dasar
penjumlahan. sehingga sirkuit elektronik di
ALU yang digunakan untuk melaksanakan
operasi arithmatika ini disebut adder.
Computer Architecture
The Arithmetic Logic Unit
11. The Arithmetic Logic Unit
Computer Architecture
Perhitungan dalam ALU menggunakan kode biner, yang
merepresentasikan instruksi yang akan dieksekusi (opcode) dan data
yang diolah (operand). ALU biasanya menggunakan sistem bilangan
biner two’s complement. ALU mendapat data dari register. Kemudian
data tersebut diproses dan hasilnya akan disimpan dalam register
tersendiri yaitu ALU output register, sebelum disimpan dalam memori.
12. Sistem operasi adalah
seperangkat program
yang mengelola
sumber daya
perangkat keras
komputer atau
hardware, dan
menyediakan
layanan umum untuk
aplikasi perangkat
lunak.
Pengantar Sistem Operasi
15. Awal Mula Sistem Operasi
A typical computer in the 1960s and 70s was a large machine. Its
processing was managed by a human operator. The operator would
organize various jobs from multiple users into batches.
Batch processing adalah suatu model pengolahan data, dengan menghimpun data
terlebih dahulu, dan diatur pengelompokkan datanya dalam kelompok-kelompok yang
disebut batch. Tiap batch ditandai dengan identitas tertentu, serta informasi mengenai
data-data yang terdapat dalam batch tersebut. Setelah data-data tersebut terkumpul
dalam jumlah tertentu, data-data tersebut akan langsung diproses.
BatchProcessing
Pengantar Sistem Operasi
16. Contoh dari penggunaan batch processing
adalah e-mail dan transaksi batch processing.
Dalam suatu sistem batch processing, transaksi
secara individual dientri melalui peralatan
terminal, dilakukan validasi tertentu, dan
ditambahkan ke transaction file yang berisi
transaksi lain, dan kemudian dientri ke dalam
sistem secara periodik. Di waktu kemudian,
selama siklus pengolahan berikutnya,
transaction file dapat divalidasi lebih lanjut dan
kemudian digunakan untuk meng-up date
master file yang berkaitan.
BatchProcessing
Pengantar Sistem Operasi
17. Sistem operasi adalah jenis yang paling penting dari
perangkat lunak sistem dalam sistem komputer.
Tanpa sistem operasi, pengguna tidak dapat
menjalankan program aplikasi pada komputer
mereka, kecuali program aplikasi booting.
Contoh sistem operasi modern adalah Linux,
Android, iOS, Mac OS X, dan Microsoft Windows.
Pengantar Sistem Operasi
19. Biasanya, istilah Sistem Operasi sering ditujukan
kepada semua perangkat lunak yang masuk dalam
satu paket dengan sistem komputer sebelum aplikasi-
aplikasi perangkat lunak terinstal. Sistem operasi
adalah perangkat lunak sistem yang bertugas untuk
melakukan kontrol dan manajemen perangkat keras
serta operasi-operasi dasar sistem, termasuk
menjalankan perangkat lunak aplikasi seperti
program-program pengolah kata dan browser web.
Pengantar Sistem Operasi
20. Secara umum, Sistem Operasi adalah perangkat
lunak pada lapisan pertama yang ditempatkan
pada memori komputer pada saat komputer
dinyalakan booting. Sedangkan software-software
lainnya dijalankan setelah Sistem Operasi berjalan,
dan Sistem Operasi akan melakukan layanan inti
untuk software-software tersebut.
Pengantar Sistem Operasi
21. Layanan inti tersebut seperti akses ke disk,
manajemen memori, penjadwalan tugas schedule
task, dan antar-muka user GUI/CLI. Sehingga masing-
masing software tidak perlu lagi melakukan tugas-
tugas inti umum tersebut, karena dapat dilayani dan
dilakukan oleh Sistem Operasi. Bagian kode yang
melakukan tugas-tugas inti dan umum tersebut
dinamakan dengan "kernel" suatu Sistem Operasi.
Pengantar Sistem Operasi
22. Kernel adalah suatu perangkat lunak yang
menjadi bagian utama dari sebuah sistem
operasi. Tugasnya melayani bermacam
program aplikasi untuk mengakses
perangkat keras komputer secara aman.
Kernel Sistem Operasi
23. Karena akses terhadap perangkat keras terbatas,
sedangkan ada lebih dari satu program yang harus
dilayani dalam waktu yang bersamaan, maka kernel juga
bertugas untuk mengatur kapan dan berapa lama suatu
program dapat menggunakan satu bagian perangkat
keras tersebut. Hal tersebut dinamakan sebagai
multiplexing.
Akses kepada perangkat keras secara langsung
merupakan masalah yang kompleks, oleh karena itu kernel
biasanya mengimplementasikan sekumpulan abstraksi
hardware. Abstraksi-abstraksi tersebut merupakan sebuah
cara untuk menyembunyikan kompleksitas, dan
memungkinkan akses kepada perangkat keras menjadi
mudah dan seragam. Sehingga abstraksi pada akhirnya
memudahkan pekerjaan programer.
Kernel Sistem Operasi
24. Untuk menjalankan sebuah komputer kita tidak
harus menggunakan kernel sistem operasi.
Sebuah program dapat saja langsung diload
dan dijalankan di atas mesin 'telanjang'
komputer, yaitu bilamana pembuat program
ingin melakukan pekerjaannya tanpa bantuan
abstraksi perangkat keras atau bantuan sistem
operasi. Teknik ini digunakan oleh komputer
generasi awal, sehingga bila kita ingin
berpindah dari satu program ke program lain,
kita harus mereset dan meload kembali
program-program tersebut.
Kernel Sistem Operasi
26. Sebuah kernel sistem operasi tidak bisa di contoh
dan dibutuhkan untuk menjalankan sebuah
komputer. Program dapat langsung dijalankan
secara langsung di dalam sebuah mesin
(contohnya adalah CMOS Setup) sehingga para
pembuat program tersebut membuat program
tanpa adanya dukungan dari sistem operasi atau
hardware abstraction. Cara kerja seperti ini, adalah
cara kerja yang digunakan pada zaman awal-
awal dikembangkannya komputer (pada sekitar
tahun 1950)..
Kernel Sistem Operasi
27. Kerugian dari diterapkannya metode ini adalah
pengguna harus melakukan reset ulang komputer
tersebut dan memuatkan program lainnya untuk
berpindah program, dari satu program ke
program lainnya. Selanjutnya, para pembuat
program tersebut membuat beberapa
komponen program yang sengaja ditinggalkan di
dalam komputer, seperti halnya loader atau
debugger, atau dimuat dari dalam ROM (Read-
Only Memory). Seiring dengan perkembangan
zaman komputer yang mengalami akselerasi
yang signifikan, metode ini selanjutnya
membentuk apa yang disebut dengan kernel
sistem operasi
Kernel Sistem Operasi
28. Kernel monolitik. Kernel monolitik mengintegrasikan banyak
fungsi di dalam kernel dan menyediakan lapisan abstraksi
perangkat keras secara penuh terhadap perangkat keras
yang berada di bawah sistem operasi.
Mikrokernel. Mikrokernel menyediakan sedikit saja dari
abstraksi perangkat keras dan menggunakan aplikasi yang
berjalan di atasnya—yang disebut dengan server—untuk
melakukan beberapa fungsionalitas lainnya.
Kernel hibrida. Kernel hibrida adalah pendekatan desain
microkernel yang dimodifikasi. Pada hybrid kernel, terdapat
beberapa tambahan kode di dalam ruangan kernel untuk
meningkatkan performanya.
Exokernel. Exokernel menyediakan hardware abstraction
secara minimal, sehingga program dapat mengakses
hardware secara langsung. Dalam pendekatan desain
exokernel, library yang dimiliki oleh sistem operasi dapat
melakukan abstraksi yang mirip dengan abstraksi yang
dilakukan dalam desain monolithic kernel.
Kernel Sistem Operasi
29. Pendekatan kernel monolitik didefinisikan
sebagai sebuah antarmuka virtual yang berada
pada tingkat tinggi di atas perangkat keras,
dengan sekumpulan primitif atau system call
untuk mengimplementasikan layanan-layanan
sistem operasi, seperti halnya manajemen proses,
konkurensi (concurrency), dan manajemen
memori pada modul-modul kernel yang berjalan
di dalam mode supervisor.
KernelMonolitik
Kernel Sistem Operasi
30. Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut
terpisah dari modul utama, integrasi kode yang terjadi di dalam
monolithic kernel sangatlah kuat, dan karena semua modul berjalan
di dalam address space yang sama, sebuah bug dalam salah satu
modul dapat merusak keseluruhan sistem. Akan tetapi, ketika
implementasi dilakukan dengan benar, integrasi komponen internal
yang sangat kuat tersebut justru akan mengizinkan fitur-fitur yang
dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara
efektif, sehingga membuat sistem operasi dengan monolithic kernel
sangatlah efisien—meskipun sangat sulit dalam pembuatannya.
KernelMonolitik
Kernel Sistem Operasi
31. Pada sistem operasi modern yang menggunakan
monolithic kernel, seperti halnya Linux, FreeBSD, Solaris, dan
Microsoft Windows, dapat memuat modul-modul yang
dapat dieksekusi pada saat kernel tersebut dijalankan
sehingga mengizinkan ekstensi terhadap kemampuan
kernel sesuai kebutuhan, dan tentu saja dapat membantu
menjaga agar kode yang berjalan di dalam ruangan
kernel (kernel-space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang
menggunakan Monolithic kernel:
Kernel sistem operasi UNIX tradisional, seperti halnya
kernel dari sistem operasi UNIX keluarga BSD (NetBSD,
BSD/I, FreeBSD, dan lainnya).
Kernel sistem operasi GNU/Linux, Linux.
Kernel sistem operasi Windows (versi 1.x hingga 4.x;
kecuali Windows NT).
KernelMonolitik
Kernel Sistem Operasi
32. Pendekatan mikrokernel berisi sebuah abstraksi yang sederhana
terhadap hardware, dengan sekumpulan primitif atau system
call yang dapat digunakan untuk membuat sebuah sistem operasi
agar dapat berjalan, dengan layanan-layanan seperti
manajemen thread, komunikasi antar address space, dan
komunikasi antar proses. Layanan-layanan lainnya, yang biasanya
disediakan oleh kernel, seperti halnya dukungan jaringan, pada
pendekatan microkernel justru diimplementasikan di dalam ruangan
pengguna (user-space), dan disebut dengan server.
Mikrokernel
Kernel Sistem Operasi
33. Server adalah sebuah program, seperti halnya
program lainnya. Server dapat mengizinkan
sistem operasi agar dapat dimodifikasi hanya
dengan menjalankan program atau
menghentikannya. Sebagai contoh, untuk
sebuah mesin yang kecil tanpa dukungan
jaringan, server jaringan (istilah server di sini tidak
dimaksudkan sebagai komputer pusat pengatur
jaringan) tidak perlu dijalankan. Pada sistem
operasi tradisional yang
menggunakan monolithic kernel, hal ini dapat
mengakibatkan pengguna harus melakukan
rekompilasi terhadap kernel, yang tentu saja sulit
untuk dilakukan oleh pengguna biasa yang
awam.
Mikrokernel
Kernel Sistem Operasi
34. Dalam teorinya, sistem operasi yang
menggunakan microkernel disebut jauh lebih
stabil dibandingkan dengan monolithic kernel,
karena sebuah server yang gagal bekerja, tidak
akan menyebabkan kernel menjadi tidak dapat
berjalan, dan server tersebut akan dihentikan
oleh kernel utama. Akan tetapi, dalam
prakteknya, bagian dari system state dapat
hilang oleh server yang gagal bekerja tersebut,
dan biasanya untuk melakukan proses eksekusi
aplikasi pun menjadi sulit, atau bahkan untuk
menjalankan server-server lainnya.
Mikrokernel
Kernel Sistem Operasi
35. Sistem operasi yang
menggunakan microkernel umumnya secara
dramatis memiliki kinerja di bawah kinerja sistem
operasi yang menggunakan monolithic kernel.
Hal ini disebabkan oleh adanya overhead yang
terjadi akibat proses input/output
dalam kernel yang ditujukan untuk mengganti
konteks (context switch) untuk memindahkan
data antara aplikasi dan server.
Mikrokernel
Kernel Sistem Operasi
36. Beberapa sistem operasi yang menggunakan
microkernel:
IBM AIX, sebuah versi UNIX dari IBM
Amoeba, sebuah kernel yang dikembangkan
untuk tujuan edukasi
Kernel Mach, yang digunakan di dalam sistem
operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac
OS/X
Minix, kernel yang dikembangkan oleh Andrew
Tanenbaum untuk tujuan edukasi
Symbian OS, sebuah sistem operasi yang populer
digunakan pada hand phone, handheld device,
embedded device, dan PDA Phone
Mikrokernel
Kernel Sistem Operasi
38. Kernel hibrida aslinya adalah mikrokernel yang memiliki kode yang
tidak menunjukkan bahwa kernel tersebut adalah mikrokernel di
dalam ruangan kernel-nya. Kode-kode tersebut ditaruh di dalam
ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika
ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek
sistem operasi sebagai solusi awal terhadap masalah yang terjadi di
dalam mikrokernel: kinerja.
KernelHibridaKernel Sistem Operasi
Kernel Sistem Operasi
39. Beberapa orang banyak yang bingung dalam
membedakan antara kernel hibrida dan kernel
monolitik yang dapat memuat modul kernel
setelah proses booting, dan cenderung
menyamakannya. Antara kernel hibrida dan
kernel monolitik jelas berbeda. Kernel hibrida
berarti bahwa konsep yang digunakannya
diturunkan dari konsep desain kernel monolitik
dan mikrokernel.
KernelHibrida
Kernel Sistem Operasi
40. Kernel hibrida juga memiliki secara spesifik
memiliki teknologi pertukaran pesan (message
passing) yang digunakan dalam mikrokernel,
dan juga dapat memindahkan beberapa kode
yang seharusnya bukan kode kernel ke dalam
ruangan kode kernel karena alasan kinerja.
KernelHibrida
Kernel Sistem Operasi
41. The Windows NT operating system family's architecture consists of two
layers (user modeand kernel mode), with many different modules within
both of these layers.
KernelHibrida
Kernel Sistem Operasi
42. Di bawah ini adalah beberapa sistem operasi
yang menggunakan kernel hibrida:
BeOS, sebuah sistem operasi yang memiliki
kinerja tinggi untuk aplikasi multimedia.
Novell NetWare, sebuah sistem operasi yang
pernah populer sebagai sistem operasi jaringan
berbasis IBM PC dan kompatibelnya.
Microsoft Windows NT (dan semua
keturunannya).
KernelHibrida
Kernel Sistem Operasi
44. Sebenarnya, Exokernel bukanlah pendekatan kernel sistem
operasi yang umum—seperti halnya microkernel atau
monolithic kernel yang populer, melainkan sebuah struktur
sistem operasi yang disusun secara vertikal.
Ide di balik exokernel adalah untuk memaksa abstraksi yang
dilakukan oleh developer sesedikit mungkin, sehingga
membuat mereka dapat memiliki banyak keputusan
tentang abstraksi hardware. Exokernel biasanya berbentuk
sangat kecil, karena fungsionalitas yang dimilikinya hanya
terbatas pada proteksi dan penggandaan sumber daya.
Kernel-kernel klasik yang populer seperti halnya monolithic
dan microkernel melakukan abstraksi terhadap hardware
dengan menyembunyikan semua sumber daya yang
berada di bawah hardware abstraction layer atau di balik
driver untuk hardware. Sebagai contoh, jika sistem operasi
klasik yang berbasis kedua kernel telah mengalokasikan
sebuah lokasi memori untuk sebuah hardware tertentu,
maka hardware lainnya tidak akan dapat menggunakan
lokasi memori tersebut kembali.
Exokernel
Kernel Sistem Operasi
45. Exokernel mengizinkan akses terhadap hardware secara langsung
pada tingkat yang rendah: aplikasi dan abstraksi dapat melakukan
request sebuah alamat memori spesifik baik itu berupa lokasi alamat
physical memory dan blok di dalam hard disk. Tugas kernel hanya
memastikan bahwa sumber daya yang diminta itu sedang berada
dalam keadaan kosong—belum digunakan oleh yang lainnya—dan
tentu saja mengizinkan aplikasi untuk mengakses sumber daya
tersebut. Akses hardware pada tingkat rendah ini mengizinkan para
programmer untuk mengimplementasikan sebuah abstraksi yang
dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja
mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat
kernel lebih kecil, dan tentu saja meningkatkan performa.
Exokernel
Kernel Sistem Operasi
46. Exokernel biasanya menggunakan library yang
disebut dengan libOS untuk melakukan abstraksi.
libOS memungkinkan para pembuat aplikasi
untuk menulis abstraksi yang berada pada level
yang lebih tinggi, seperti halnya abstraksi yang
dilakukan pada sistem operasi tradisional,
dengan menggunakan cara-cara yang lebih
fleksibel, karena aplikasi mungkin memiliki
abstraksinya masing-masing. Secara teori, sebuah
sistem operasi berbasis Exokernel dapat
membuat sistem operasi yang berbeda seperti
halnya Linux, UNIX, dan Windows dapat berjalan
di atas sistem operasi tersebut.
Exokernel
Kernel Sistem Operasi
47. Pada sistem operasi Windows, kernel ditangani
oleh file kernel32.dll. Kernel ini menangani
manajemen memori, operasi masukan / keluaran
dan interrupt. Ketika boot Windows, kernel32.dll di-
load ke dalam spasi protected memory sehingga
spasi memorinya tidak digunakan oleh aplikasi lain.
Apabila ada aplikasi yang mencoba mengambil
spasi memori kernel32.dll, akan muncul pesan
kesalahan "invalid page fault".
Contoh Implementasi Kernel
Kernel Sistem Operasi