Pertanyaan Pertama :
Untuk program sederhana seperti “Hello World”, kernel harus mencopy string dari user program memory ke dalam screen memoryMengapa tidak diijinkan program untuk menulis langsung ke dalam screen buffer memory?
Jawab :
Menurut saya ada sebuah urutan kejadian selama siklus instruksi berlangsung. Misalnya sebuah komputer yang menggunakan register memori alamat, pemecah program, dan register instruksi. Proses aliran data pada siklus pengambilannya adalah sebagai berikut:
- Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
- Pemecah program berisi alamat instruksi berikutnya yang akan diambil.
- Alamat ini akan dipindahkan ke register memeori alamat dan disimpan di bus alamat.
- Unit control meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke register memori buffer dan kemudian dipindahkan ke register intruksi.
- Pencacah program naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.
Pertanyaan Kedua :
Dengan bahasa pemrograman berorientasi objek dan compiler, hanya objek method yang bisa mengakses internal data dalam sebuah objek. Jika sistem operasi hanya berjalan pada program yang ditulis pada bahasa pemrograman tersebut, akan kah masih membutuhkan hardware memory address protection?
Bagaimana jika konten dari setiap objek itu enkripsi kecuali ketika method sedang berjalan, termasuk SO?
Jawab :
Banyak kesalahan pemprograman dideteksi oleh perangkat keras. Kesalahan ini biasanya ditangani oleh sistem operasi. Jika terjadi kesalahan program, perangkat keras akan meneruskan kepada sistem operasi dan sistem operasi akan menginterupsi dan mengakhirinya. Pesan kesalahan disampaikan, dan memori dari program akan dibuang. Tapi memori yang terbuang biasanya tersimpan pada disk agar programmer bisa membetulkan kesalahan dan menjalankan program ulang.
Pertanyaan Ketiga :
Contoh dari Exceptions?
Contoh dari System Calls?
Jawab :
Exception
Exception adalah suatu mekanisme yang digunakan oleh beberapa bahasa pemrograman untuk mendeskripsikan apa yang harus dilakukan jika ada suatu kondisi yang tidak diinginkan terjadi.
Contoh :
Try
{
//tulis pernyataan yang dapat mengakibatkan exception
//dalam blok ini
}
catch( <exceptionType1> <varName1> )
{
//tulis pernyataan exception
}
System Calls
System Call adalah penyedia antarmuka dari pelayanan-palayanan yang tersedia dengan Sistem Operasi. Umumnya System Call menggunakan bahasa C dan C++, meskipun tugas-tugas seperti hardware yang harus diakses langsung, maka menggunakan bahasa assembly.
Contoh :
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.
Pertanyaan Keempat :
Mengapa stack
pointer disimpan dua kali pada interrupt stack?
Jawab :
Hal seperti ini biasa disebut RETI (Return From Interrupt). RETI berfungsi untuk mengambil nilai byte tinggi dan rendah dari PC dari stack dan mengembalikan kondisi logika interrupt agar dapat menerima interrupt lain dengan prioritas yang sama dengan prioritas interrupt yang baru saja diproses. Stack pointer akan dikurangi dengan 2. Instruksi ini tidak mempengaruhi flag apapun juga. Nilai PSW tidak akan dikembalikan secara otomatis ke kondisi sebelum interrupt. Eksekusi program akan dilanjutkan pada alamat yang diambil tersebut. Umumnya alamat tersebut adalah alamat setelah lokasi dimana terjadi interrupt. Jika interrupt dengan prioritas sama atau lebih rendah tertunda saat RETI dieksekusi, maka satu instruksi lagi akan dieksekusi sebelum interrupt yang tertunda tersebut diproses.
Sekian tugas yang saya post, semoga menambah nilai kuliah saya hehehe
0 komentar:
Posting Komentar