Sistem Operasi Pertemuan 6
Skema komponen komputer Memori Utama Processor Sistem Bus I/O Module
Skema komponen komputer PC = Program Counter (Penghitung program) IR = Instruction Register (Register instruksi) MAR = Memory address register (Alamat register memori) MBR = Memory buffer register (Buffer register memori) I/O AR = Input/Output address register (alamat register input/output) I/O BR = input/output buffer register( buffer register input/output)
Processor menggunakan dua register internal (terhadap processor) : MAR, yang mencirikan alamat dalam memori untuk keperluan pembacaan/penulisan berikutnya MBR, yang berisi data yang akan dituliskan ke dalam memori atau yang menerima data yang dibaca dari memori I/O AR mencirikan perangkat I/O tertentu I/O BR digunakan untuk pertukaran data antara modul I/O dengan processor
Modul memori terdiri dari sejumlah lokasi yang memiliki nomor alamat yang berurutan. Modul I/O memindahkan data dari perangkat eksternal ke processor dan memori, dan sebaliknya. Modul ini berisi buffer internal untuk menampung data secara temporer sampai data itu dikirimkan
Pengolahan Instruksi Fungsi dasar yang dilakukan oleh komputer adalah eksekusi program Program yang akan dieksekusi terdiri dari sejumlah instruksi yang berada di dalam memori utama Prosessor membaca instruksi dari dalam memori utama secara satu persatu dan mengeksekusi instruksi tersebut Fetch (membaca/ mengambil) Execute (mengeksekusi)
Siklus Instruksi dasar Siklus pengambilan (Fetch cycle) Siklus eksekusi (Execution cycle)
Skema siklus instruksi processor
Cara kerja siklus instruksi Pertama, processor mengambil kode instruksi (siklus fetch), kemudian dieksekusi (siklus execute). Jika interupsi aktif (enable) maka processor akan melakukan pengecekan interupsi (siklus interrupt), sedangkan jika interupsi tidak aktif (disable), prosessor akan mengambil instruksi selanjutnya (siklus fetch). Jika instruksi yang dijalankan adalah HALT maka processor akan menghentikan siklus eksekusinya sama sekali (akhir eksekusi suatu program)
Pengambilan (Fetch) dan pengeksekusian (Execute) Instruksi Mula mula processor membaca instruksi memori dari memori. Pada prosessor tertentu, program counter (PC) menyimpan alamat instruksi berikutnya yang akan dibaca, Apabila tidak terjadi keadaan khusus, prosessor selalu akan menambah nilai PC setiap kali membaca instruksi sehingga prosessor akan membaca instruksi berikutnya yang terdapat dalam rangkaian instruksi yaitu instruksi yang berada di alamt berikutnya yang lebih tinggi
Sebuah komputer yang setiap instruksinya menggunakan sebuah word 16 bit memori. Asumsikan bahwa program counter disetel di lokasi 300. Kemudian processor akan membaca instruksi yang terdapat di lokasi 300. Pada siklus instruksi berikutnya, processor akan membaca instruksi dari lokasi lokasi 301, 302, 303, dan seterusnya. Urutan ini dapat diubah sebagai berikut. Instruksi yang dibaca akan dimuatkan ke dalam sebuah register yang terdapat didalam processor yang dikenal sebagai register instruksi (IR). Instruksi ini berisi bit bit yang mencirikan aksi yang akan dilakukan oleh processor. Kemudian processor menginterpretasikan instruksi itu dan melakukan aksi yang diperlukan
4 Kategori aksi yang diperlukan Processor-Memori Data dapat dipindahkan dari processorke memori atau dari memori ke processor Processor-I/O Data dapat dipindahkan dari perangkat periferal atau ke perangkat periferal dengan melakukan pemindahan antara prosessor dan modul I/O Pengolahan data Prosessor dapat melakukan operasi aritmatik atau logika terhadap data Control Sebuah instruksi dapat mencirikan bahwa urutan eksekusi berubah. Misalnya prosessor dapat membaca instruksi dari 182. Processor akan mengingat hal itu dengan menyetel program counter ke 182. Dengan demikian, pada siklus pengambilan berikutnya, instruksi tersebut akan dibaca dari lokasi 182 dan bukannya dari 150
Isi dari memori dan register dalam heksadesimal bit 3 4 15 Instruction format bit 1 15 Integer format
Isi dari memori dan register dalam heksadesimal Internal register CPU Program Counter (PC) = Alamt dari instruksi Register Instruksi (IR) = instruksi yang sedang di eksekusi Accumulator = tempat penyimpan sementara Partial list of opcodes (binary format) 01 = keluarkan AC dari memori 02 = simpan AC ke memori 03 = tambahkan ke AC dari memori
Contoh eksekusi program PC isinya 300, yaitu alamat instruksi pertama. Instruksi ini dimuatkan ke dalam instruction register (IR). Perlu diperhatikan bahwa proses ini dapat melibatkan memori address register (MAR) dan memori buffer register (MBR). 4 bit pertama dlm IR mengindikasikan bahwa AC akan dimuatkan. 12 bit lainnya mencirikan alamat yaitu 940 Nilai PC dinaikan dan instruksi berikutnya dibaca Isi AC yang lama dan isi lokasi 941 ditambahakan dan hasilnya disimpan di AC Nilai PC dinaikkan dan instruksi berikutnya dibaca Isi AC disimpan di lokasi 941
Contoh eksekusi program (step 1) Pertama processor membaca register PC bernilai 300 yaitu alamat pada memori utama yang akan dijalankan sehingga processor membaca instruksi pada alamat 300 dan memindahkan isinya ke register IR untuk di eksekusi. Pada register IR berisi 4 heksadesimal yang mana 1 merupakan instruksi untuk memuatkan AC dari memori utama dan 940 merupakan alamat di memori utama yang isinya akan dipindahkan ke AC
Contoh eksekusi program (step 2) Pada alamat memori utama 940 yang berisi 0003 dimasukkan ke AC sehingga AC berisi 0003 setelah selesai nilai PC bertambah 1 menjadi 301
Contoh eksekusi program (step 3) Processor membaca register PC yang berisi 301 sehingga instruksi pada alamat memori utama 301 di pindahkan ke register IR untuk di eksekusi. 5 merupakan instruksi untuk menambahkan yang mana 941 merupakan alamat yang isinya akan ditambahakan
Contoh eksekusi program (step 4) 3 + 2 = 5 Prosessor mengeksekusi isi register IR sehingga isi C adalah 3 ditambahkan dengan isi memori utama 941 yaitu 2 menghasilkan 5 pada AC, setelah selesai PC bertambah 1 menjadi 302
Contoh eksekusi program (step 5)
Fungsi I/O Modul I/O (misalnya disk controller) dapat saling bertukar data secara langsung dengan processor. Sesaat setelah processor dapat menginisiasi pembacaan dan atau penulisan dengan memori, yang menandai alamat suatu memori terentu, maka processor juga dapat membaca data dari modul I/O atau menulis ke modul I/O Pada penulisan ke modul I/O processor mengidentifikasi perangkat tertentu yang dikontrol oleh modul I/O tertentu. Dengan demikian sebuah rangkaian instruksi bentuknya mirip seperti contoh eksekusi program.
Interupsi Adalah sinyal perangkat keras/perangkat lunak, terutama perangkat I/O untuk meminta prosessor melakukan suatu tugas tertentu Interupsi perangkat lunak (Software Interrupt) Interupsi perangkat keras (Hardware Interrupt)
Interupsi perangkat lunak Adalah interupsi yang diakibatkan oleh kode instruksi atau efek dari perangkat lunak. Interupsi ini sering juga disebut system call, karena umumnya digunakan untuk meminta layanan atau penanganan dari sistem operasi Contoh : Program meminta sistem untuk mencetak hasil keluaran ke printer Terjadi kondisi pembagian dengan bilangan nol (Division by Zero) Hasil operasi aritmatika melebihi presisi tipe data penyimpan (Arithmetic overflow)
Interupsi perangkat keras Adalah instruksi yang di akibatkan aksi pada perangkat keras Interupsi yang disela (Maskable Interrupt) Interupsi oleh timer Penekanan keyboard atau mouse Interupsi yang tidak dapat disela Terjadi kegagalan perangkat keras seperti penyuplai tenaga (power failure) Kegagalan pada memory (memory parity error)
Pengertian proses Program yang sedang dieksekusi Job-job yang dieksekusi oleh prosessor Abstraksi atau pemodulan terhadap ke eksekusi program Merupakan unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan sistem operasi Berisi instruksi dan data, program counter dan semua register pemroses
Beda antara process dan Thread Proses merupakan unit pemilikan sumber daya Thread adalah unit penjadwalan
Istilah berkaitan dengan proses Multiprogramming Manjemen banyak proses pada satu processor Multiprocessing manajemen banyak proses pada banyak processor Distributed processing manajemen banyak proses pada banyak komputer yang tersebar
Kebutuhan utama pengendalian proses Saling melanjutkan (interleave) Sistem operasi harus saling melanjutkan eksekusi proses-proses agar memaksimalkan penggunaan processor Mengikuti kebijaksanaan tertentu Sistem operasi harus mengalokasikan sumber daya ke proses proses mengikuti kebijaksanaan yang ditentukan (misalnya aplikasi tertentu mempunyai prioritas lebih tinggi) Mendukung komunikasi antar proses dan penciptaan proses Untuk membantu menstrukturkan aplikasi