Thursday, May 7, 2015

Session 1 | Computer System Overview


1.1 Basic Elements

Komputer terdiri dari Processor, Memory, dan komponen I/O (Input Output).
  • Processor: Mengontrol operasi dari komputer dan menampilkan fungsi pemproses data. Processor sering kali dikenal sebagai Central Processing Unit (CPU). 
  • Main Memory: Penyimpanan data dan program - program. Memory ini bersifat volatile, dimana ketika komputer di Shutdown maka konten - konten dari memory akan hilang atau terhapus. Main Memory dikenal juga sebagai Real memory or primary memory.
  • I/O modules: Memindahkan data antar komputer dan lingkungan eksteral.
  • System Bus: Menyediakan komunikasi antara processor, main memory dan I/O modules.










Program Counter (PC) Melacak dimana untuk menemukan instruksi selanjutnya sehingga salinan dari instruksi dapat ditempatkan didalam current Instruction Register (IR).  current Instruction Register menyimpan instruksi yang akan dieksekusi.

Memory Address Register (MAR) digunakan untuk menyimpan alamat memory yang berisi bagian selanjutnya dari data atau instruksi yang akan di gunakan.

Fetch and Execute

  • Processor fetch instruksi dari memory.
  • Program Counter (PC) menyimpan alamat dari instruksi yang selanjutnya akan difetch.
  • Program Counter akan bertambah setelah setiap fetch dilakukan
  • instruksi fetch ditempatkan dalam instruction register (IR)
  • Tipe - tipe dari instruksi:
    • Processor-memory: mengirim data antara processor dan memory
    • Processor-I/O: data yang dikirim ke atau dari perangkat peripheral
    • Data processing: operasi arithmetic atau operasi logic dalam data
    • Control: mengubah urutan dari eksekusi
Execution Cycle

Pipelining 



Superscalar



Interrupt


  • Sebuah interruption dari normal sequence eksekusi
  • Meningkatkan efesien pemrosesan
  • Memungkinkan processor untuk eksekusi instruksi - instruksi lain selama operasi I/O dijalankan
Tipe - tipe dari interrupt

  • Program
    • arithmetic overflow
    • division by zero
    • execute illegal instruction
    • reference outside user's memory space
  • Timer
  • I/O
  • Hardware failure
Interrupt Handler

  • Program yang menentukan sifat dari interupsi dan melakukan tindakan apa pun yang dibutuhkan
  • Control adalah yang dikirimkan ke program tersebut
  • Secara umum bagian dari operating system
Intruction with interrupt



Interrupt Cycle


  • Cek processor untuk interrupsi
  • jika tidak interrupsi fetch instruksi selanjutnya untuk program saat ini
  • jika interrupsi tertunda, suspend eksekusi dari program saat ini, dan eksekusi interrupt handler

Memory
Memory Hierarchy



gambar diatas merupakan gambaran atau diagram pyramid dari memory hierarchy, dimana jika makin keatas maka kecepatan nya lebih cepat dalam menghasilkan output atau memasukan input.

Disk Cache


  • Sebagian dari memori utama yang digunakan sebagai penyangga untuk sementara untuk menyimpan data untuk disk
  • Disk menulis secara bertingkat
  • Beberapa data tertulis  memungkinkan dapat direferensi lagi. Data diambil dengan cepat dari cache software bukan perlahan dari disk
Cache Memory

  • Tidak terlihat untuk operating sistem
  • Meningkatkan kecepatan memory
  • Kecepatan processor lebih cepat dari pada kecepatan memory
Tipe - tipe dari Cache memory

  • Secara umum ada 3 tipe dari cache memory dalam sistem komputer modern
    • L1 cache biasanya dibangun didalam arsitektur dari CPU, Misalnya Pentium memiliki cache 16K. PowerPC G5 memiliki cache 64K L1. Biasanya L1 cache dipecah menjadi dua tembolok terpisah. Satu digunakan untuk menyimpan instruksi dan lainnya untuk menyimpan data. Dalam arsitektur sun4m mereka berdua 16kb.
    • L2 Cache akses cepat memori (SRAM) yang biasanya berada di antara CPU dan main memory . Hal ini dapat berkisar antara 256-4 Megabyte. Ini biasanya bagian dari arsitektur.
    • L3 Cache biasanya dikenal sebagai akses yang tinggi memori antara motherboard dan CPU.
  • Ide dari memori cache untuk menyimpan instruksi yang sering digunakan atau data didalam lokasi memori yang diakses.
  • Hal ini diprediksi oleh algoritma internal dan prediksi di dalam CPU atau sistem operasi Cache manager.
  • Idenya adalah untuk mengurangi jumlah waktu dalam pengiriman yaitu melalui bus ke main memory untuk referensi sebuah alamat.

Session 2 | Operating System Overview

What is Operating System?

  • Sebuah program yang mengatur eksekusi dari program aplikasi
  • Sebuah interface antara aplikasi dan hardware
Operating Systems Objective

  • Convenience
    • Membuat komputer lebih mudah untuk digunakan
  • Effeciency
    • Memungkinkan sumber dari sistem komputer untuk digunakan dalam cara yang lebih efesien
  • Ability to evolve
    • ijin pembangunan yang efektif, pengujian, dan pengenalan dari fungsi - fungsi sistem baru tanpa mengganggu layanan
Structure of Computer System

Operating Systems Concepts
  1. Processes
  2. Address spaces
  3. Files
  4. Input/Output
  5. Protection
  6. The shell
  7. Should have the following
    • Large memories
    • Protection hardware
    • Disks
    • Virtual memory
Operating System Structure

Mnolithic structure - basic structure:
  1. Sebuah program utama yang memanggil prosedur pelayanan yang diminta.
  2. Kumpulan dari layanan prosedur - prosedut yang melaksanakan panggilan sistem
  3. Kumpulan dari prosedur - prosedur utilitas yang membantu pelayanan prosedur - prosedur
  • Microkernel is compact
  • Melakukan fungsi - fungsi dasar universal untuk semua komputer. yang didesain untuk diintegrasi dalam operating sistem yang berbeda
  • Bekerja dengan OS-server yang spesifik yang menyediakan tingkat fungsi - fungsi yang lebih tinggi. Struktur berbasis komponen ini meningkatkan portabilitas sistem, tetapi berpotensi dengan mengorbankan performance.
  • Contoh: Mach dan turunan, Tru64 Unix, GNU Hurd, and Mac OS X
The Kernel
  • Bagian dari operating sistem yang berada didalam memori utama
  • Berisi fungsi - fungsi yang sering digunakan
  • Disebut juga nucleus

Evolution of Operating System
  •  Serial Processing
    • Tidak ada operating sistem
    • Mesin dijalankan dari konsol dengan display lights dan toggle switches, perangkat input, dan printer
    • Penjadwalan waktu
    • Pengaturan termasuk memuat kompiler, program sumber, menyimpan program yang dikompilasi,dan memuat dan menghubungkan
  • Simple Batch Systems
    • Monitor
      • Software yang mengontrol program yang berjalan
      • Batch jobs together
      • Program Branches back untuk monitor ketika selesai
      • Resident monitor berada didalam memori utama dan tersedia untuk eksekusi
  • Job Control Language (JCL)
    • Tipe spesial dari bahasa pemrograman
    • Memberikan instruksi ke monitor
      • Kompiler apa yang digunakan
      • Data apa yang digunakan
  • Uniprogramming
    • Processor harus menunggu instruksi I/O untuk menyelesaikan sebelum preceding



  • Multiprogramming
    • Ketika satu pekerjaan butuh untu menunggu I/O, processor dapat beralih kepekerjaan lain

  • Time Sharing
    • Menggunakan multiprogramming untuk mengatasi multiple interactive jobs
    • Processor's time dibagi antara multiple user
    • Multiple user secara bersamaan mengakses sistem melalu terminal
Process
  • Sebuah program eksekusi
  • Contoh dari program yang berjalan dalam komputer
  • Entitas dapat ditugaskan dan dieksekusi dalam processor
  • Unit aktifitas yang dikarakteristikan dengan single sequential thread dari eksekusi, keadaan saat ini, dan kumpulan dari sumber sistem
Memory Management
  • Proses isolasi
  • Alokasi otomatis dan manajemen
  • Mendukung untuk modular programming
  • Protection dan access control
  • Penyimpanan jangka panjang
Virtual Memory
  • Memungkinkan programmer untuk mengatasi alamat memori dari sudut pandang logis
  • Selama satu proses ditulis ke tempat penyimpanan secondary dan proses sucessor membaca didalam sana tidak ada hiatus
Scheduling dan Resource Management
  • Fairmess
    • Memberikan akses yang sama dan adil untuk semua proses
  • Differential responsieveness
    • Membedakan antara class yang berbeda dari jobs
  • Effeciency
    • Memaksimalisasi throughput, meminimaliskan waktu respon dan mengakomodasikan banyak kemungkinan yang akan digunakan

System Calls
  • Pemrograman interface untuk layanan yang disediakan oleh OS
  • Biasanya ditulisa dalam tingkat bahasa yang tinggi (C atau C++)
  • Sebagian besar diakses oleh program melalui tingkat tinggi Application Program Interface (API) daripada menggunakan sistem panggilan langsung
  • Tiga API yang paling umum adalah API Win32 untuk Windows, POSIX API untuk sistem POSIX berbasis (termasuk hampir semua versi UNIX, Linux, dan Mac OS X), dan Jawa API untuk mesin virtual Java (JVM)
Types of System Calls
  • Process control
  • File management
  • Device management
  • Information maintenance
  • Communications
  • Protection