Sistem Operasi Komputer
Pertemuan II –
Struktur Sistem Komputer
Kuis Kecil 1
1.
Gambarkan arsitektur sistem komputer modern
2.
Jelaskan perbedaan antara interrupt dengan trap
3.
Jelaskan perbedaan interupsi I/O dengan
menggunakan metode synchronous dan
asynchronous
4.
Mengapa diperlukan dibutuhkan caching pada
sistem komputer modern ?
5.
Apa yang dimaksud dengan operasi dual-mode
pada proteksi hardware ?
Silberschatz, Galvin and Gagne 2002 2.3
Operating System Concepts
Pembahasan
Operasi sistem komputer
Device dan Memory controller
Siklus instruksi Struktur I/O
Interrupt dan trap
Synchronous dan Asynchronous I/O Completion
Struktur DMA
Struktur penyimpanan (storage)
Storage hierarchy Caching strategy Memory utama Disk technology Proteksi hardware Dual mode Proteksi memori Proteksi CPU
Struktur jaringan komputer:
WAN dan LAN
Silberschatz, Galvin and Gagne 2002 2.5
Operating System Concepts
Operasi sistem komputer (1)
Sistem komputer modern berisi suatu CPU Sejumlah device controller
Dihubungkan melalui sistem bus Pemakaian memori bersama-sama
CPU dan device controller bekerja bersama-sama dan berkompetisi untuk menggunakan memori
Memory controller memastikan akses alamat memori tertentu, sehingga CPU dan device tidak saling berebut “wilayah” dalam memori utama
Operasi sistem komputer (2)
Setiap device controller bertanggung jawab untuk suatu jenis device tertentu
Setiap device controller memiliki buffer lokal CPU memindahkan data dari/ke memori utama
atau ke/dari buffer lokal
I/O terjadi dari device ke buffer lokal controller Device controller menginformasikan CPU
bahwa ia telah selesai, dengan mengirimkan
Silberschatz, Galvin and Gagne 2002 2.7
Operating System Concepts
Siklus instruksi (1)
Instruction fetch dari memori Instruction execution
Program counter (PC) menyimpan alamat instruksi yang akan diambil
Instruksi yang diambil, disimpan pada Instruction Register (IR)
Siklus instruksi (2)
Contoh: 16 bit word instruksi pada memori, PC (Program Counter) pertama kali bernilai 300. CPU akan mengambil instruksi pada alamat 300, yang dilanjutkan dengan 301,302, dst.
1. PC berisi 300. Isi dari lokasi 300 akan ditulis dalam IR, dgn bantuan Memory Address Register dan Memory Buffer Register
2. Empat bit pertama menunjukkan variabel accumulator (AC) yang akan diambil serta opcode-nya (LOAD), dan 12 bit selanjutnya adalah alamat data khusus, yaitu 940
3. PC dinaikkan dan opcode instruksi selanjutnya diambil (ADD)
4. Isi AC yang lama ditambah dengan isi alamat 941, hasilnya ditaruh di AC kembali
5. PC dinaikkan dan opcode instruksi berikutnya (STO)diambil
Silberschatz, Galvin and Gagne 2002 2.9
Operating System Concepts
Siklus instruksi (3)
0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 LOAD AC, [940] ADD AC, [941] STO 941, AC PC = 300 IR = 1940 AC = ----O P C ----O D E D a t a 9 4 0 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 300 301 302 940 941 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 300 301 302 940 941 PC = 300 IR = 1940 AC = 0005Interrupt
Interrupt adalah sinyal dari peralatan luar atau permintaan dari program untuk melaksanakan tugas khusus
Jenis interrupt
Software: disebut juga system call, misalnya suatu program ingin mencetak hasil dengan printer, atau kesalahan program (trap).
Hardware: terjadi karena adanya aksi pada perangkat keras, seperti penekanan tombol keyboard atau penggerakan mouse
Terbagi menjadi dua
Maskable interrupt: terjadi karena aksi dari luar / hardware , seperti keyboard, timer, serial port, disk Non maskable interrupt: terjadi karena memori atau
Silberschatz, Galvin and Gagne 2002 2.11
Operating System Concepts
Fungsi utama interrupt
Interrupt memberikan kontrol kepada interrupt service
routine, melalui interrupt vector, yang berisi alamat
seluruh service yang dimiliki dalam routine.
Alamat interrupt instructions harus disimpan, dan akan digunakan lagi pada siklus instruksi berikutnya.
Interrupt yang baru masuk akan di-disable, untuk menghindari lost interrupt
Trap adalah suatu interrupt yang ditimbulkan oleh
software disebabkan oleh suatu error atau adanya request tertentu dari user program
Suatu sistem operasi merupakan suatu Suatu sistem operasi merupakan suatu Suatu sistem operasi merupakan suatu Suatu sistem operasi merupakan suatu sistem yang tugasnya
sistem yang tugasnya sistem yang tugasnya
sistem yang tugasnya mengendalikan mengendalikan mengendalikan mengendalikan interrupts
interrupts interrupts
interrupts yang terjadi untuk menjamin yang terjadi untuk menjamin yang terjadi untuk menjamin yang terjadi untuk menjamin kepuasan penggunan komputer
kepuasan penggunan komputer kepuasan penggunan komputer kepuasan penggunan komputer
Interrupt handling
Sistem operasi menyimpan keadaan CPU pada saat interrupt terjadi, dengan menyimpan register dan program counter
Menentukan jenis interrupt apa yang terjadi
Polling: busy waiting antara port (host) dengan controller)
Vectored interrupt system
Memisahkan segmen kode yang akan dijalankan untuk setiap jenis interrupt yang terjadi, melalui interrupt vector (event vector table)
Silberschatz, Galvin and Gagne 2002 2.13
Operating System Concepts
Gambaran Garis Waktu Interrupt
Proses tunggal dengan I/O
Interrupt service routine
Interrupt pada I/O
Pada operasi I/O, CPU memanggil register-register tertentu yang dialokasikan untuk device controller
Device controller menyiapkan buffer lokal pada device
aau register tertentu untuk transfer data
Device controller mengisi register-register tsb dengan data-data yang dibutuhkan
Komunikasi ini menyebabkan terjadinya interrupt Contoh: jika ada permintaan transfer data dari
device ke buffer lokal, dan transfer sudah selesai dilakukan, maka device controller akan
menginformasikan kepada CPU bahwa pekerjaan tersebut sudah selesai
Silberschatz, Galvin and Gagne 2002 2.15
Operating System Concepts
Synchronous dan Asynchronous I/O (1)
Synchronous Asynchronous
Synchronous dan Asynchronous I/O (2)
Synchronous:
I/O dijalankan, I/O selesai digunakan, kontrol menginformasikan kembali ke user proses. Untuk menunggu selesai digunakannya I/O
biasanya digunakan perintah
Hanya ada satu I/O yang sedang bekerja pada suatu waktu
CPU tahu pasti, I/O device mana yang menginterrupt
Silberschatz, Galvin and Gagne 2002 2.17
Operating System Concepts
Synchronous dan Asynchronous I/O (3)
Asynchronous:
Kembali ke user program tanpa harus menunggu I/O selesai digunakan Efisiensi sistem bertambah
CPU dapat digunakan untuk menjalankan proses atau menjadwal kerja I/O yang lain Memerlukan Device Status Table, untuk
mengetahui status dan isi setiap request pada setiap device yang ada
Silberschatz, Galvin and Gagne 2002 2.19
Operating System Concepts
Device status table (2)
Untuk menunggu hingga I/O selesai digunakan, dapat juga digunakan system call (user program menunggu hingga I/O selesai, kemudian melakukan interrupt ke OS)
Dibutuhkan device status table yang berisi Tipe device
Alamat
Status (idle, busy atau tidak berfungsi)
Jika device sibuk, maka permintaan akan disimpan dalam tabel
Jika permintaan pada device yang sama, maka akan dibuat daftar pada tabel
Struktur DMA (Direct Memory Address)
Transfer data dari buffer I/O ke memori atau sebaliknya dilakukan per karakter (byte), dengan adanya interrupt pada sebelum dan sesudah transfer
Dengan DMA, transfer data dapat dilakukan secara langsung oleh device controller per blok tanpa campur tangan CPU
CPU hanya memberi interrupt sebelum dan sesudah transfer setiap blok
Menghemat resource CPU, sehingga CPU dapat mengerjakan proses lain (multitasking)
Jenis DMA
Third party DMA: menggunakan DMA controller yang ada pada motherboard untuk melakukan transfer data First party DMA (bus-mastering): untuk melakukan
operasi transfer data dikerjakan oleh bagian logic di
Silberschatz, Galvin and Gagne 2002 2.21
Operating System Concepts
Struktur penyimpanan
Memori utama (volatile): hanya media penyimpanan yang besar, yang dapat diakses langsung oleh CPU Secondary storage (nonvolatile): perluasan dari memori
utama yang menyediakan media penyimpanan nonvolatile dengan kapasitas besar
Magnetic disks:
Permukaan disk, secara logikal dibagi ke dalam
tracks, yang kemudian dibagi kembali ke dalam sectors
Disk controller menyatakan interaksi logikal antara komputer dengan disk tersebut
Memori Cache
Karena perpindahan data / instruksi dari memori ke CPU seringkali dilakukan, digunakan bantuan cache sebagai perantara CPU dengan memori
Pengiriman data dari / ke cache ke / dari CPU dilakukan per karakter (word), sedangkan pengiriman data dari / ke cache ke / dari memori dilakukan per blok
Software cache (caching disk controller): akan mempercepat akses data pada disk dengan menyimpan data yang baru digunakan dalam memori
Hardware cache (on the board cache): akan mempercepat akses memori itu sendiri dengan menyimpan data yang baru saja digunakan ke dalam memori yang lebih cepat lagi (biasanya sebagai alamat yang lebih rendah dalam memori, sebagai cache)
Hubungan antara blok-blok yang ada pada cache dengan blok yang ada pada memori utama dijabarkan dengan fungsi pemetaan (mapping function)
Direct-mapped cache
Associative-mapped cache
Set associative-mapped cache
CPU cache Memori
utama
Silberschatz, Galvin and Gagne 2002 2.23
Operating System Concepts
Direct-mapped cache (1)
Blok-j dari memori utama dipetakan ke blok-j (mod 128) di cache.
Memori utama blok 0, 128, 256, dst… diambil, akan ditempatkan pada blok 0 di cache.
Blok 1, 129, 257, dst … menempati blok 1 di cache, dst Direct-mapped cache (2) Blok 0 Blok 1 Blok 127 cache Blok 0 Blok 1 Blok 127 Blok 128 Blok 129 Blok 255 Blok 4095 Memori utama
16 bit main memori address 2^16= 65536 word : 2^4 word / blok = 4095 blok
2^7 = 128 blok cache
7
5 4
tag blok word • Empat bit terendah
menyeleksi salah satu dari 16 word dalam suatu blok
• Tujuh bit tengah
menunjukkan blok yang berada dalam cache
• Lima bit tertinggi akan
dibandingkan dengan tag yang ada pada lokasi cache
tag
tag
Silberschatz, Galvin and Gagne 2002 2.25
Operating System Concepts
Associative-mapped cache Blok 0 Blok 1 Blok 127 cache Blok 0 Blok 1 Blok 127 Blok 128 Blok 129 Blok 255 Blok 4095 Memori utama
Blok pada memori utama
ditempatkan pada sembarang posisi cache
Cache harus mencocokkan 128 pola
12 4
tag word • Dua belas bit tag
digunakan untuk identifikasi suatu blok memori, jika blok tersebut ada pada cache
• Tag bit dari suatu
alamat dibandingkan dengan tag bit tiap blok cache tag tag tag Set-Associative-mapped cache Blok 0 Blok 1 Blok 126 Blok 127 cache Blok 0 Blok 1 Blok 127 Blok 128 Blok 129 Blok 255 Blok 4095 Memori utama 6 4 tag word • Blok-blok cache dikelompokkan sebagai suatu set
• Suatu blok pada
memori utama dipetakan ke sembarang blok di set tertentu pada cache
• Tiap set diindentifikasi
dengan 6 bit di tengah
• Blok yang ditempati
pada suatu set, dibandingkan dengan tag yang ada pada cache
tag tag tag 6 set Set 0 tag Set 63
Keputusan penggantian blok yang ada pada cache replacement algorithm
Silberschatz, Galvin and Gagne 2002 2.27
Operating System Concepts
Memori utama
Berisi jutaan sel penyimpanan, dengan tiap sel menyimpan bit yang bernilai 0 atau 1
Bit-bit dikelompokkan dengan ukuran tertentu (word length antara 16 – 64 bit)
Alamat tiap-tiap word dari 0 – (2^k)-1
Memori statis (ROM) dan memori dinamis (DRAM)
alamat 0 i 1 2^k -1 Word 0 Word 1 Word i Word 2^k-1 b0 b1 bn-1
n bit word length
Magnetic disk
Piranti penyimpanan sekunder
Informasi disimpan dengan cara merekam secara magnetis di bawah Read write head
Teknologi hard disk, antara lain:
Shock protection system
Self-monitoring analysis and reporting
Solid state disk (DRAM)
MR Head
Partial response maximum likelihood
Hot swap
Plug and play ATA
Environmental protection agency (EPA)
Error correction code
Silberschatz, Galvin and Gagne 2002 2.29
Operating System Concepts
Moving-Head Disk Mechanism
Transfer rate = data flow antara
disk dengan komputer
Positioning time / random access time = waktu untuk
me-nempatkan arm pada silinder (seek time)
Rotational latency = waktu
me-nempatkan sektor di bawah read-write head
RAM Disk (1)
Suatu blok penyimpanan dengan perintah membaca dan menulisi blok
Blok-blok pada keadaan normal disimpan pada memori sekunder (disk)
RAM disk menggunakan satu porsi ‘preallocated’ memori utama untuk menyimpan blok-blok data Tidak ada seek dan rotasi
Tiap blok memiliki ukuran yang sama dengan ukuran pada disk
Silberschatz, Galvin and Gagne 2002 2.31
Operating System Concepts
RAM Disk (2)
Memori utama (RAM)
User program
RAM disk
Sistem operasi
RAM disk blok i
Membaca dan menulis RAM Blok i-1 dengan memori ini
Storage-Device Hierarchy
Silberschatz, Galvin and Gagne 2002 2.33
Operating System Concepts
Proteksi Hardware dan SOK
Operasi dual mode Proteksi I/O
Proteksi memori Proteksi CPU
Proteksi hardware
Latar belakang:
Pada saat beraksi pada monitor mode, SOK memiliki akses yang tidak terbatas pada memori kernel maupun user
User program tidak boleh mengakses hardware secara langsung
Instruksi untuk loading base dan limit merupakan privileged instructions
Silberschatz, Galvin and Gagne 2002 2.35
Operating System Concepts
Dual mode (1)
User mode: kepentingan user
Monitor mode (kernel mode, supervisor mode, system
mode atau privileged mode): kepentingan SOK
Mode bit: monitor (0), user (1)
Membedakan eksekusi oleh SOK dan user program Pada saat boot time,
hardware mulai dengan monitor mode
sistem operasi diambil dari master boot record oleh Bootstrap Program
memulai user mode
Jika ada interrupt, maka akan terjadi perubahan dari user mode ke monitor mode
Dual mode (2)
monitor user
Interrupt / Trap
Silberschatz, Galvin and Gagne 2002 2.37
Operating System Concepts
Proteksi I/O (Dual Mode)
Semua instruksi I/O dibuat dalam monitor mode (privileged instructions)
Hanya sistem operasi yang dapat mengakses I/O devices
Jika akan mengakses instruksi privileged, user program harus mengaktifkan interrupt vector dengan menyimpan alamat dimana program dihentikan
Silberschatz, Galvin and Gagne 2002 2.39
Operating System Concepts
Proteksi memori
Menggunakan 2 register: base dan limit Base alamat terkecil pada memori secara
fisik
Limit besarnya jangkauan pada memori yang diijinkan
Memori yang berada di luar nilai register base dan limit terproteksi
Silberschatz, Galvin and Gagne 2002 2.41
Operating System Concepts
Proteksi CPU
Menggunakan timer, untuk membatasi
kemungkinan loop yang tak terbatas dari user program
Menjamin SOK melakukan kontrol (melalui interrupt) terhadap CPU
Counter-clock menurut setiap periode (tetap
ataupun variabel)
Ketika counter mencapai 0, interupsi terjadi Misalnya digunakan: membatasi shareware
software (evaluation version), membatasi lama waktu penggunaan komputer oleh user
Clock / Timer
Penting untuk sistem timesharing Memelihara waktu
Melindungi suatu proses dari proses yang lainnya dalam hal monopoli penggunaan CPU
Clock hardware:
one shot mode (menurunkan nilai counter lakukan interrupt jika timer nol)
square wave mode (looping interrupt secara periodik / ’detak’ clock)
Clock software:
memelihara time of day (real time) Mencegah proses memonopoli CPU Menghitung penggunaan CPU Mengendalikan alarm system call Profiling, monitoring dan statistik
Silberschatz, Galvin and Gagne 2002 2.43
Operating System Concepts
Struktur jaringan komputer
LAN (Local Area Network)WAN (Wide Area Network)
Kesimpulan Pertemuan
Komputer modern melakukan sharing memory antara CPU dan device controller
Memory controller memastikan akses alamat memori tertentu, sehingga CPU dan device tidak saling berebut “wilayah” dalam memori utama
Multiprogramming dan multitasking meningkatkan performa dengan kemampuan overlapping siklus CPU dan I/O
Dilakukan interrupt dari I/O port atau DMA driver
Untuk mengeksekusi suatu program, prosesor hanya dapat mengakses memori utama
Array dari satuan instruksi dan data (word), setiap word memiliki alamat
Diperlukan siklus instruksi (fetch execution instruction cycle)
Extensi dari memori utama secondary memory (disks)
SOK harus memastikan setiap program secara benar dieksekusi
User program tidak boleh mengakses hardware secara langsung
Silberschatz, Galvin and Gagne 2002 2.45
Operating System Concepts
Latihan Soal
1. Gambarkan arsitektur sistem komputer modern
2. Tuliskan secara singkat dan tepat, bagaimana siklus instruksi terjadi !
3. Apakah perbedaan antara interrupt dengan trap ? Apa kegunaan tiap-tiap fungsi tersebut ?
4. Jelaskan perbedaan interupsi I/O dengan menggunakan metode synchronous dan asynchronous !
5. Berikan alasan mengapa hardware perlu diproteksi ?
6. Apa yang dimaksud dengan operasi dual-mode pada sistem operasi ?
7. Apabila suatu sistem komputer tidak dilengkapi dengan dual-mode protection pada hardwarenya, mungkinkah dibuat suatu sistem operasi yang aman untuk komputer tersebut?