Sabtu, 13 Juni 2015

SECURITY

Security Requirment

Beberapa hal yang dibutuhkan dalam keamanan adalah:
  • Confidentiality
    Data data yang ada pada komputer hanya bisa diakses oleh orang orang yang memiliki autorisasi saja.
  • Integrity
    Data hanya boleh diubah oleh orang orang yang berautorisasi saja agar integritas data terjaga.
  • Availability
    Data tersebut tersedia dan dapat diakses.
  • Authenticity
    Identitas user dapat dipastikan dengan benar
Security Environment

Ruang lingkup dari keamanan data dibagi berdasarkan tujuannya yaitu:
  • Data confidentiality
  • Data integrity
  • System availability
Types of Threats
  • Interupsi
    • Aset yang ada pada sistem dihancurkan dan menjadi tidak berguna
    • Menyerang availability data
    • Merusak hardware
    • Memotong jalur komunikasi
    • Mengganggu manajemen sistem
  • Interception
    • Orang orang yang tidak berauthorisasi dapat mengakses data
    • Menyerang pada sisi confidentiality
    • Mengkopi file atau program yang ada
  • Modification
    • Orang orang yang tidak berauthorisasi tidak hanya dapat melakukan akses tetapi juga merubah data
    • Menyerang sisi integritas
    • Mengubah nilai dari data
    • Mengubah program sehingga berjalan tidak semestinya
  • Fabrication
    • Orang yang tidak berauthorisasi memasukkan objek kedalam sistem
    • Menyerang sisi authenciy
    • Menambah record pada sebuah file
Intruder

Intruder dapat diartikan sebagai orang yang melakukan penyerangan.
Ada 4 kategori yaitu:
  • Orang yang tidak memiliki kemampuan teknis
  • Penyusup
  • Untuk menghasilkan uang
  • Untuk kepentingan komersil atau militer
Accidental Data Loss

Beberapa hal yang dapat menyebabkan data hilang adalah:
  • Act of God, hal hal seperti bencana alam, kebakaran, banjir, dsb.
  • Hardware or Software Error, seperti CPU yang tidak berjalan semestinya.
  • Human Error, seperti salah data entry dan sebagainya.
Basic Cryptography


Secret Key Cryptography
  • Monolphabetic substitution
    Setiap huruf direplace dengan huruf lainnya
  • Given the encryption key
    Mudah untuk menemukan kunci dekripsi
  • Secret key crypto juga disebut symmetric key crypto
Public Key Cryptography
  • Semua user mengambil sebuah public key atau pasangan kunci private
  • Public key merupakan kunci enkripsi


Digital Signature

Menghitung sebuah blok penanda dan melihat apa yang didapat.


Protection Mechanism

  • Protection Domain
  • Protection Matrix


  • Protection matrix dengan domain sebagai objek




Computer System Assets
  • Hardware
    Threat termasuk serangan acindental maupun delibrate
  • Software
    Threat termasuk penghapusan, alter, dan serangan
  • Data
    Termasuk juga file. Keamanannya berfokus pada avaibility, kerahasiaan, dan integritas data.
  • Jalur Komunikasi - Passive Attack
    Hanya membaca isi
  • Jalur Komunikasi - Active Attack
    menyerang jalur komunikasi
Intrusion Techniques

Tujuan dari intruder adalah untuk memperoleh data. Informasi yang dibutuhkan dari intruder adalah password.

Techniques for Learning Passwords
  • Coba default password yang digunakan pada standar akun. 
  • Coba semua password dengan kata kata yang pendek
  • Coba kata kata pada kamus yang terlihat seperti kamus
  • Kumpulkan semua informasi tentang user. 
  • Coba gunakan nomor telepon, tanggal lahir dan sebagainya.
  • Gunakan Trojan Horse.
ID Provides Security

  • Tentukan apakah user memiliki autorisasi untuk mengakses sistem
  • Tentukan hak akses untuk  setiap user
  • ID digunakan untuk mengontrol akses.
Password Selection Strategies

  • Computer generate password
    • User memiliki kesulitan untuk mengingat password
    • Perlu ditulis ulang
  • Reactive password checking strategy
    • Sistem secara berkala menjalankan crackernya untuk menemukan password yang bisa ditebak
    • Sistem membatalkan password yang bisa ditebak dan memberikan notifikasi ke user.
    • Hacker dapat menggunkan hal ini dengan mengcopy password file.
Proactive Password Checker
  • Sistem mengecek pada waktu seleksi jika password diizinkan
  • Dengan panduan dari sistem user dapat memilih password yang dapat diingat tapi sulit untuk ditebak.
Intrusion Detection
  • Asumsi perilaku dari intruder dengan orang yang memiliki legitimasi berbeda.
  • Statis anomali yang dideteksi:
    • mengumpulkan data berdasarkan perilaku
    • Statis tes digunakan untuk menentukan apakah kebiasaan itu bukan legitimasi user.
  • Aturan deteksi:
    • aturan dikembangkan untuk mendeteksi deviasi dari pengguna sebelumnya.
    • expert sistem mencari perilaku aneh.
  • Audit record
    • Native audit record
      • Semua operasi dalam sistem termasuk software akuntansi mengumpulkan informasi aktivitas user
    • Detection
      • Fasilitas pengumpulan dapat diimplementasikan.
Malicious Program 
  • Membutuhkan host program
    • pecahan dari program yang tidak dapat exist secara independen
  • Independent
    • program yang dikandung sendiri yang dapat dijadwalkan dan berjalan dalam OS.
Digital Immune System 
  • Dikembangkan oleh IBM

Authentication

Aturan dasar dari authentication adalah harus mengindentifikasi:
  • sesuatu yang user tahu
  • sesuatu yang user miliki
  • sesuatu tentang user itu siapa
Authentication dapat menggunakan beberapa hal yaitu:
  • password
  • magnetic card, seperti tanda pengenal
  • biometric, seperti sidik jari
CounterMesaures
  • Waktu yang terbatas ketika user melakukan login
  • Otomatis panggil kembali pada nomor nomor tertentu
  • Kesempatan login yang terbatas
  • Database untuk masing masing login
  • Simple login name dan username digunakan sebagai jebakan.
Attack from the Inside
  • Trojan Horse
    Program yang dibuat unuk user user tertentu sehingga bisa menyusup.
  • Spoofing
    Membuat tampilan UI yang hampir sama dengan aslinya
  • Logic Bomb
    Ketika user melakuan sesuatu yang memicu logic bomg
  • Trap Door
Design Principle for Security
  1. Desain sistem harus public
  2. Default dapat diakses
  3. Mengecek authorisasi saat ini
  4. Memberikan setiap process privallage yang mungkin
  5. Mekanisme keamanan harus simple, seragam, dan dilayer paling rendah dari sistem.
  6. Skema dapat diterima secara psikologis.
Trojan Horse
  • Program bermanfaat yang mengandung kode tersembunyi yang menjalankan fungsi tertentu.
  • Dapat digunakan untuk meng-accomplish fungsi secara tidak langsung
Viruses
  • Program yang dapat menginfeksi program lainnya dengan memodifikasi program tersebut
Worms
  • Menggunakan jaringan untuk menyebar dalam sistem.
Zombie
  • Program yang secara rahasia mengambil alih komputer lain.
Virus Stages
  • Dormant
    Virus masih diam
  • Propagation
    Virus mulai menduplikasikan diri.
  • Triggering
    Virus mulai aktif
  • Execution
    Virus mulai menyerang sistem
Antivirus Approach
  • Detection
  • Indentification
  • Removal

Jumat, 05 Juni 2015

Embedded System

Embedded System
Sebuah kombinasi dari komputer hardware dan software yang didesain untuk menjalankan fungsi tertentu.
Untuk kasus tertentu, embedded sistem merupakan bagian dari sistem atau produk yang besar.
Berikut contoh embedded sistem yang sering digunakan dalam kehidupan sehari hari.



Charcateristics of Embedded System
  • Real-time operation
    Pada kebanyakan embedded sistem, kebenaran dari sebuah ketergantungan kompilasi, di dalam bagian, pada waktu penyampaian. Konstraint didedikasikan oleh eksternal I/O dan permintaan kontrol stabilitas.
  • Reactive operation
    Embedded sistem mungkin mengeksekusi untuk eksternal event. Jika event event tersebut tidak terjadi secara berkala , embedded sistem akan memasukkannya dalam worst case event.
  • Configurability
    Karena varietas yang besar dari embedded sistem, terdapat sebuah variasi yang besar dari sebuah requirment baik kuantitatif maupun kualitatif.
  • I/O device flexibility
    Ada sebuah virtual non device  yang perlu untuk disupport oleh semua versi OS
  • Streamline protection mechanism
    Embedded sistem secara tipikal didesain secara terbatas.
  • Direct use of interupts
    Tujuan umum dari sebuah OS adalah secara tipikal tidak mengizinkan beberapa user untuk menginterupsi secara langsung.
Embedded System Development Approach
  1. Tentukan hardwarenya
  2. Pastikan software kompatibel
  3. Tentukan tugas spesifik
  4. Buat hirarki OOP
  5. Jangan buat hal yang sudah ada
Purpose Built Embedded Operating System
Jumlah yang signifikan dari OS telah didesain dari ground-up untuk embedded aplikasi.

Specialized Embedded Operating System
  • Secara tipikal termasuk:
    • Memiliki sebuah kesempatan
    • Policy skeduling diatur secara real time
    • Berukuran kecil
    • Merespon eksternal interupsi secara cepat
    • Meminimalkan interval selama interupsi dinonaktifkan
    • Menyediakan fix atau ukuran variabel partisi untuk memory management
    • Memaintain real time clock
eCOS (Embedded Configurable Operating System)
Bersifat open source, gratis, real time OS untuk embedded aplikasi.

Configurability
eCOS konfigurasi tool, yang berjalan pada Windows atau Linux, digunakan untuk mengkonfigure sebuah eCOS paket untuk berjalan pada target embedded sistem.

eCOS Component
  • HAL - Hardware Abstraction Layer
    HAL merupakan software yang menampillkan sebuah API yang konsisten ke layer yang lebih atas dan map operasi pada upper layer kedalam spesifik hardware.
  • eCOS Kernel
    Didesain untuk mencapai beberapa tujuan berikut:
    • Interupsi yang rendah
    • Latency yang rendah
    • Memory footprint kecil
eCOS Scheduler
  • Bitmap Scheduler
    Sebuah bitmap skedular mendukung multi level prioritas tetapi hanya satu thread dapat eksis pada setiap priority.
  • Multilevel Queque Scheduler
    • Mendukung sampel priority level 32
    • Mendukung multiple active thread.

Rabu, 03 Juni 2015

Multi Processor

Multicore Computers

Komputer terdiri dari lebih dari satu core di dalam CPU-nya. Core tersebut beroperasi secara terpisah dengan processor yang terdapat di dalam single chip. Mutlicore tersebut berfungsi untuk meninggkatkan performa tanpa meninggkatkan kecepatan clock prosesor.

Mutiprocessor
Multiprocessor dapat diartikan dengan CPU yang memiliki lebih dari satu prosesor di dalamnya. Pada saat ini beberapa mesin telah mengkombinasikan teknologi multicore dan multiprosesor.

Multicore VS Multiprocessor

  • Save Energy
    Multicore komputer memiliki efesiensi energi yang lebih baik daripada multiprocessor CPU. MultiCPU berarti mutli kopi dari intergrasi sirkuit  yang sama yang berada pada papan sirkuit dengan diasosiasikan dengan chip lainnya. Dengan kata lain sirkuit tersebut tidak berulang. Konsilidasi core pada suatu chio mengurangi penggunaan energi
  • Save Space
    Multicore chip menyimpan papan sirkuit dan paket komponen didalam multi prosesor desain. Memiliki CPU tunggal dengan dua core lebih menghemat space daripada dua chip CPU yang terpisah.
  • Performace
    Secara keseluruhan performa multi aplikasi adalah berjalan secara bersamaan. Menghandel multi request lebih baik daripada multicore sistem. Dengan kata lain performa multi prosesor lebih baik dari multi core.
Multiple Processor System
Sistem pada multiprosesor dibagi tiga yaitu : (a) multiproses shared-memory, (b) multicomputer message passing, dan (c) distributed system.
Multiprocessor share-memory, memiliki ciri khas yaitu terdiri dari banya prosesor. 
Multicomputer message passing, memiliki ciri khas yaitu terdiri atas banyak komputer yang memiliki tempat penyimpannya sendiri dan saling berhubungan. 
Distributed system, merupakan sistem yang dirancancang untuk masa depan. Dimana komputer dan tempat penyimpanan menjadi satu kesatuan dan semuanya terhubung melalui internet.

UMA Multiprocessors with Bus-Based Architectures
Multiprocessor memiliki 3 jenis bus base, yaitu (a) without caching, (b) with caching  dan (c)with caching and private memory




Bus without caching,  beberapa CPU saling terhubung dalam bus yang sama dan mempunyai memory tempat penyimpan yang sama sehingga untuk mengaksesnya CPU harus memastikan bahwa tidak ada CPU lain yang sedang mengakses memory.
Bus with caching, di dalam masing masing CPU terdapata cache sehingga trafic untuk mengakse memory tidak terlalu sibuk.
Bus with cache and private memory, dalam hal ini CPU tidak hanya memiliki cache tapi juga memory private memorynya sendiri.

Architecture
Multiprocessor System diklasifikasikan berdasarkan cara bagaimana CPU dan unit memory unit diasosiasikan. 
  • Uniform memory access (UMA)
    Memory diakses secara seragam. Contohnya adalah Halance System dan VAX 880
  • Nonuniform memory access (NUMA)
    Contohnya adalah HP AlphaServer dan IBMNUMA Q
  • No-remote memory access (NORMA)
    Biasanya merupakan sistem distribusi.
SMP Architecture
Biasanya menggunakan sebuah bus atau persilangan bar sebagain jaringan interkoneksi. Hanya satu komunikasi yang bisa dijalankan dalam sekali waktu, komunikasi yang lain akan ditunda. Penggunaan busway akan menjadikan suatu sistem mengalami bottle neck yang bisa dianggap sebagai kelemahan dimana penggunaan cross bar dapat memprediksi kapan delay akan terjadi.

Kernel Structure
Kernel dari sebuah multiprosesor OS  juga disebut dengan SMP kernel. Beberapa CPU dapat mengeksekusi code didalam didalam kernel dan banyak CPU dapat melakukan hal ini secara paralel. Berdasarkan 2 provisi yang fundamental, kernel bersifat reentrant dan CPU mengkoordinasi aktivitas mereka melalui sinkronasi dan interupsi di dalam interprosesor.

NUMA Architecture
Berikut merupakan tampilan dari NUMA Architecture.


NUMA Kernel
CPU yang terdapat pada NUMA sistem memiliki akses memory yang berbeda baik lokal maupun nonlokal memory.

UMA VS NUMA
Persamaan keduanya adalah space memory tunggal dan pitfal (Membandingkan antara share memory dan distribusi memory).
Perbedaan keduanya adalah waktu akses

NUMA Processor
Karakteristik dari NUMA mesin adalah:
  1. Terdapat space alamat tunggal yang terlihat untuk semua CPU
  2. Akses untuk remote memory dilakukan melalui LOAD dan STORE instruksi
  3. Akses untuk remote memory lebih lambat dari pada akses ke lokal memory

Each CPU Has Its Own Operating Systems

Partisi multiprosesor memory diantara empat CPU tetapi membagi kopi tunggal untuk code dari operating sistem. Masing masing sistem memiliki privasi datanya masing masing.

Classification of Parallel System

Paralel Sistem dapat diklasifikasikan menjadi:
  1. SISD
  2. MISD
  3. SIMD
  4. MIMD
Multiprocessor Synchronization
Sinkronisasi yang berarti dapat saling berhubungan dan saling memperbaharui isi date sehingga tidak ada data yang hilang dan menjadi data yang memiliki intergritas. Untuk mengubah sutau data maka diperlukan key jika hanya untuk membaca tidak dibutuhkan key.

Time Sharing
Time sharing berarti menggunakan struktur data utama untuk mengatur jalannya dari multiprosesor.

Space Sharing
Space sharing dapat diartikan dengan ada banyak CPU yang terhubung untuk saling membagikan memory penyimpanan bagi CPU yang membutuhkan tempat penyimpaan.

Gang Scheduling
Ada tiga bagian dalam gang skedul:
  1. Grup dari thread yang berhubungan diskedulkan sebagai sebuah unit.
  2. Semua member dari gang berjalan secara simultan pada time share CPU yang berbeda.
  3. Semua anggota gang memulai dan mengakhiri secara bersamaan.




Minggu, 31 Mei 2015

DMA

DMA (Direct Memory Access) adalah suatu alat pengendali khusus yang disediakan untuk memungkinkan transfer blok data langsung antara perangkat eksternal dan memory utama tanpa adanya interferensi terus menerus dari processor.

Berikut penjelasan mengenai  Alternative DMA Configurasi


  • Single-bus, detached DMAPada single bus, baik I/O maupun DMA terdapat padat satu bus yang sama. Kelebihan dari konfigurasi ini adalah tidak mahal.
  • Single-bus, integrated DMA-I/O
    Pada konfigurasi ini, yang terdapat pada bus hanyalah DMA. I/O ada berada pada DMA itu sendiri. Dengan kata lain DMA bisa memiliki lebih dari satu I/O dan untuk mengakses I/O itu sendiri maka kita harus akses DMA itu sendiri.
  • I/O bus
    Bisa share memory dan prosesornya I/O connect ke I/O bus dahulu baru connect ke DMA

Minggu, 10 Mei 2015

Memory Management

Pembagian memory dibutuhkan untuk mengakomodasi proses yang banyak. Memory perlu dialokasikan secara efektif sebagaimana banyaknya proses yang ada di dalam memory.

MEMORY MANAGEMENT REQUIRMENT

Relocation, disimpan di RAM. Programmer tidak tahu dimana program akan ditempatkan pada memory. Sementara proses dieksekusi, itu mungkin saja disapu dari disk dan dikembalikan ke momory utama pada alamat yang berbeda. Referensi memory harus diterjemahkan dalam kode untuk alamat fisik.


Protection. Proses tidak harus boleh mereferense ke alamat memory pada proses yang lainnya. Tidak mungkin untuk mengecek alamat pasti pada program sejak program dilokasikan ulang.


Sharing. Mengizinkan beberapa proses banyak memory yang sama besar. Lebih baik mengizinkan setiap proses untuk mengakses salinan yang sama dari program daripada memiliki salinan yang sama tapi terpisah secara memory.
Logical Organization. Program ditulis dalam bentuk modul, Modul dapat ditulis dan dikompile secara independen. Pada saat pembagian modul yang dishare adalah fungsi yang terdapat pada modul tersebut.
Physical Organization. Memory yang tersedi  untuk program ditambah datanya yang mungkin saja tidak cukup. Programmer tidak perlu tahu berapa memory yang mungkin akan tersedia.

ADDRESSING

Logical. Menunjuk pada alamat memory dari assignment sekarang. Terjemahannya dibuat untuk menjadi alamat fisik.
Relative.  Alamat yang mengekspresikan lokasi yang relatif untuk beberapa titik yang diketahui.
Physical. Secara umum dikenal sebagai alamat asli.

MULTIPROGRAMMING WITH FIXED PARTITION


Fixed memory partition. Memisahkan tumpukan input pada masing masing partisi.
Multiple input queque. Ketika job baru tiba, itu mungkin saja diletakkan kedalam queque untuk partisi yang paling kecil.
Single input queque. Tidak peduli partisi menjadi bebas, job sangat dekat sisi depan dari queque yang sesuai

MEMORY ALLOCATION ALGORITHM

To speed-up search. Memisahkan tabel untuk proses dan lubang. Daftar lubang diurutkan. Best fit = first fit, next fit = unnescesary.
  • Best - fit algorithm. Memilih salah satu blok yang ukurannya paling sesuai dengan permintaan. 
  • First - fil algorithm. Merupakan algoritma yang tercepat.
Buddy System.
Jika ukuran request 2^(u-1)<s<= 2^u, blok akan dialokasikan.
Berikut merupakan contoh dari buddy sistem.




Dead Lock

Suatu dead lock akan terjadi jika setiap proses yang ada saling menunggu satu sama lain.
Sedikit  pengenalan mengenai dead lock. Gambar di bawah akan mengilustrasikan sedikit tentang gambaran saat  dead lock terjadi.


Kondisi kondisi yang ada pada dead lock
  1. Mutual exclusion
    Hanya satu proses yang dapat berjalan.
  2. Hold and wait
    Proses yang menggunakan satu proses dan sedang menunggu proses lain.
  3. Circular wait
    Masing proses saling menunggu.
  4. No Preemption
    Tidak dapat diinterupsi jika proses telah selesai
Gambar di bawah merupakan ilustrasi dalam mengalokasi resource: (a) Holding resource (b) Request a resource (c) Deadlock


Gambar berikut akan menjelaskan momen ketika dead lock dan ketika dead lock dapat dihindari.


Dead lock

No Dead Lock
Strategi ketika terjadi deadlock adalah:
  1. Abaikan masalahnya
  2. Salah satu ada yang mengalah
  3. Pencegahan dilakukan secara dinamis
  4. Pencegahan berdasarkan kondisi yang ada
Ada dua pendekatan dalam hal deadlock avoidance yaitu:
  • Jangan memulai program yang memungkinkna terjadinya deadlock
  • Jangan menjamin penambahan resource jika berakhir dengan deadlock
Pencegahan deadlock dapat dilakukan dengan beberapa cara yaitu:
  1. Mutual exclusion
  2. Hold and wait
  3. Circular wait
  4. No preemption
Tabel di bawah akan meringkas hal hal tentang pencegahan deadlock.




Jumat, 08 Mei 2015

Concurrency

Concurrency dapat diartikan menjalan banyak proses dalam yang bersamaan. Prosesor yang digunakan dalam proses tersebut dialokasikan oleh CPU.

Beberapa masalah yang kerap ditemukan pada konkurensi terdapat pada:

  • Pembagian sumber yang bersifat global
  • Managemen alokasi dari sumber daya
  • Pencarian kesalahan pada programming
Hal yang sering menjadi perhatian utama:

  1. Menjaga track dari proses yang sedang aktif
  2. Mengalokasikasikan resource 
  3. Menjaga keamanan data dan resource
  4. Menjaga hasil dari proses bersifat independen
Hal  yang sering terjadi antara proses dan resource:
  1. Mutual Exclusion
    Pada saat kritis, hanya satu program yang diizinkan untuk mengakses resource yagn ada.
  2. Deadlock
  3. Starvation
Korporasi yang ada di dalam proses:
  1. By sharing
    Writing harus bersifat mutual exclusion dan critical sesion harus ada untuk menjaga integritas.
  2. By communication
    > Mutual exclusion bukan sebuah pengontrol requirment
    > Setiap proses  menunggu pesan dari proses lainnya
    > Dua proses mengirim pesan ke yang lainnya sementara proses lain menunggu.
Hal-Hal yang berkaitan dengan mutual exclusion:
  1. Hanya satu proses yang diizinkan untuk mengakses resource ketika critical sesi terjadi.
  2. Tidak ada deadlock maupun starvation
  3. Sebuah proses tidak harus ditunda saat kritikal sesi jika tidak ada proses yang sedang berjalan
Hal hal yang dipenuhi dalam mutual exclusion:
  1. menghilangkan interupsi
  2. lock variabel
  3. strict alternation
  4. peterson's solution
  5. tsl instruction
Bagaimana dengan pencegahan interupsi?
Sebuah proses akan berjalan sampai ada yang meminta servis dari OS atau sampai proses itu diinterupsi. Adanya pencegahan interupsi itu memungkin terjadinya mutual exclusion. Prosesor dibatasi dalam hal kemampuan.

Tabel di bawah akan menjelaskan mekanism yang sering dalam konkurensi.



Salah satu masalah klasik yang sering terjadi pada IPC adalah masalah Dining Philosopher's Room.


> Philosopher eat or think> Eating need 2 fork
> Pick one fork at one time
> How to prevent dead lock?




Di dalam konkurensi juga ada dibahas mengenai mutex. Gambar gambar di bawah akan menjelaskan sedikit tentang mutex.

Mutex

Mutex in thread

Hal lain yang akan dibahas kali ini adalah monitor (pengawasan).
Konstruksi dari bahasa pemrogramman mensuport kontrol akses dalam pembagian data. Hal ini dilihat dari compiler yang sinkron secara otomatis dan adanya enforce runtime.
Enkapsulasi juga digunakan saat melakukan pembagian data.
Hanya ada satu proses aktif di dalam sebuah monitor.
Dalam hal mutual exclusion yang terdapat pada monitor, sama seperti sebelumnya hanya ada satu proses yang dapat diproses sekali waktu.

Monitors
MESSAGE PASSING
Komunikasi dilakukan denga menggunakan fungsi send()/receive(). Receiver bisa dikategorikan secara umum.


www.skyconnectiva.com
www.binus.ac.id

Process and Threads

Threads memungkinkan beberapa eksekusi untuk dijalankan dalam ruang lingkup dan waktu yang sama.
Thread memiliki dua karakteristik yang menjadi pembeda yaitu :

  • Lightweight process
    Terjadi karena thread memiliki beberapa propertis dari proses yang sedang berjalan
  • Multithreading
    Memungkinkan banyak thread dalam proses yang sama.
Di dalam multi-threaded, sebuah proses didefenisikan sebagai unit sumber alokasi dan unit pencegahan. Hal hal tersebut diasosiasikan dengan proses:
  • Alamat virtual yang memegang proses image.
  •  Akses yang aman ke prosesor, prosesor lainnya, file, dan sumber input-output.
Berikut merupakan salah satu contoh dari model thread.



Gambar di bawah akan menjelaskan perbedaan antara proses dan thread. 
Pada single-thread, representasi dari proses termasuk proses blok kontrolnya dan space alamat user, sebagaiman user dan kernel menumpuk untuk memanage call/return dari eksekusi dari proses. Sementara proses berjalan, hal itu mengontrol register dari prosesor. 
Pada multi-thread, masih terdapat single proses kontrol blok dan asosiasi alamat user dengan proses, tetapi sekarang ada pemisah untuk stack pada masing masing thread.


Implementasi dari thread itu sendiri memiliki keuntungan dan kerugian. Keuntungan dari penggunaan thread adalah tidak dibutuhkannya non blocking sistem call yang baru. Sedangkan, kerugiannya adalah biaya yang lebih mahal baik untuk membuat maupun menghancurkan thread tersebut. 

Tabel di bawah akan mendeskripsikan relasi yang mungkin terjadi antar thread dan proses.


Keputusan penjadwalan CPU mungkin akan diambil ketika:
  1. Switch dari running menjadi waiting
  2. Switch dari running menjadi ready
  3. Switch dari waiting menjadi ready
  4. Ketika terjadi terminasi
Modul dispatcher memberikan kontrol pada CPU untuk  proses yang telah dipilih dengan menggunakan skedul jangka pendek, hal tersebut termasuk:
> switch konteks
> switch user mode
> melompat ke lokasi tertentu di dalam program user untuk me-restart program tersebut.

Optimalisasi juga memiliki beberapa kriteria yaitu:
> Penggunaan CPU secara optimal
> Maximum throughput
> Minimum waktu pemakaian
> Minimum waktu tunggu
> Minimum waktu respon 
Penjadwalan memiliki beberapa tujuan yaitu:
  • All systems
    >
    Memberikan setiap proses jumlah memory yang sama
    > Menjaga keseimbangan sistem
    > Memastikan semuanya terjamin
  • Batch systems
    >
    Mampu mengerjakan perkerjaan sebanyak mungkin
    > Minimalisasi waktu antara submisi dan terminasi
    > Menjaga CPU tetap bekerja sepanjang waktu
  • Interactive system
    >
    Merespon request dengan cepat
    > Memenuhi ekspektasi user
  • Real-time system
    >
    Menghindari hilangnya data
    > Menghindari menurunnya kualitas
Beberapa algoritma yang bisa digunakan dalam melakukan scheduling:
  1. First Come First Serve

  2. Shortest Job First

  3. Interactive Scheduling Algorithm

Potensi dari performa dari multicore bergantung pada kemampuan untuk mengeksplotasi sumber daya yang ada secara efektif. Berikut rumus yang dapat digunakan untuk mengukur keoptimalan tersebut.


Berdasarkan sudut pandang Valve, opsi granulariti dari threading didefinisikan oleh hal hal berikut:
  • Coarse threading
    Modul individual diassign untuk individual prosesor. Dalam kasus search engine, hal ini dapat diartikan dengan meletakkan render pada satu prosesor, AI dan sebagainya.
  • Fine-grained threading
    Banyak persamaan yang tersebar dalam multiple prosesor. Sebagai contoh, perulangan dapat dipecah menjadi jumlah yang lebih kecil.
  • Hybrid threading
    Hal ini termasuk penggunaan seleksi untuk beberapa sistem dan single thread untuk thread lainnya.
Proses multi-threading memperoleh konkurensi tanpa mengalamai overhead menggunakan multiple proses. Thread di dalam proses yang sama dapat saling bertukar informasi melalui alamat dan memiliki akses untuk membagi sumber dari proses.

Sebuah proses pada linux direpresentasikan oleh task_struct struktur data. task_struct mengandung informasi di dalam beberapa kategori yaitu:
  • State
    State eksekusi dari sebuah proses (ready, executing, ready, suspended, stop, zombie).
  • Scheduling information
    Informasi dibutuhkan oleh linux untuk menjadwalkan proses. Proses bisa jadi bersifat normal, real time dan memiliki prioritas.
  • Identifier
    Setiap proses memiliki pengenal proses yang unik dan juga memiliki user dan kelompok pengenal.
  • Inter-process communication
    Linux mendukung mekanisme IPC yang dapat ditemukan pada UNIX SVR4.
  • Times and timer
    Termasuk waktu proses pembuatan dan jumlah waktu prosesor yang digunakan. Sebuah mungkin diasosiasikan dengan lebih banyak interval waktu. 
  • File system
    Termasuk pointer  ke beberapa file yang dibuka oleh proses sebagaimana pointer menunjuk proses yang berjalan secara bersamaan.
  • Address space
    Mendefinisikan alamat virtual yang menunjuk pada proses saat ini.
  • Processor-specific context
    Register dan tumpukan informasi yang mengkostitusi  konteks dari proses.
  • Running
    Nilai proses ini akan dikorespondenkan dengan dua state.

File System

File system berkaitan dengan mengorganisir file file dan mengatur akses data.

Di dalam file sistem, terdapat objek objek yang memiliki meta data dan di dalam meta data tersebut terdapat :

> owner and group information
> time
> permission

Absolute pathname merupakan lokasi atau alamat tepat ke tujuan

Dasar tipe file:

> regular file
> directories
> links
> spesial file
> name pipes

Tujuan dari spesial file adalah apabila terdapat file yang penting bisa dimasukkan ke spesial file agar tidak dapat diserang virus.

Hard link menghubungkan file file hanya pada file sistem yang sama. Apabila file yang satu dihapus maka yang lain juga.

Soft link menghubungkan file file pada tempat yang berbeda (bisa antar jaringan).

chmod berfungsi untuk mengganti mode (RWX).

Operasi file:


  1. Create
  2. Delete
  3. Open
  4. Close
  5. Read
  6. Write 
  7. Append
  8. Seed
  9. Get Attribute
  10. Set Attribute
  11. Rename

Process Description and Control

Kita dapat mengartikan processes sebagai  sebuah entitas yang terdiri dari sejumlah element. Dua elemen yang terpenting dari sebuah proses adalah  program code (yang mungkin dibagikan dengan proses lainnya yang melakukan task yang sama) dan set of data (yang diasosiasikan dengan kode tersebut). Pada point saat tertentu ketika program dieksekusi, proses dapat dikategorikan secara unik dengan menggunakan beberapa elemen, yaitu:

  • Identifier
    Sebuah identikator yang unik yang diasosiasikan dengan prose untuk membedakan hal tersebut dari semua proses lainnya.
  • State
    Jika proses sedang dieksekusi sekarang maka program tersebut sedang berada dalam state running.
  • Priority
    Level prioritas bergantung pada proses lainnya.
  • Program Counter
    Alamat dari instruksi selanjutnya di dalam program untuk dijalankan.
  • Memory pointer
    Termasuk pointer pada kode program dan data yang diasosiasikan pada proses ditambah blok memory yang dibagikan pada proses lainnya. 
  • Context data
    Merupakan data yang ditampilkan pada register di dalam prosesor sementara proses dijalankan.
  • I/O status information
    Termasuk juga outstanding I/O request, I/O device  yang diasign pada proses, list dari file yang digunakan dalam proses dan sebagainya.
  • Accounting information
    Termasuk total waktu prosesor dan clock yang digunakan, batas waktu, jumlah akun dan sebagainya.
Informasi yang terdapat pada list sebelumnya disimpan pada sebuah struktur data, yang sering disebut process control block. Berikut merupakan figur dari PCB yang telah disederhakan.

PROSES CREATION 

Ketika sebuah proses dibuat hal tersebut sedang dimanage, OS membangun struktur data yang digunakan untuk memanage dan mengalokasikan alamat space di dalam memory utama pada proses.Hal tersebut berkaitan dengan kreasi dalam pembuatan proses. 
Empat hal yang paling sering menuntun dalam proses kreasi akan ditampilkan pada tabel di bawah.

Secara tradisional, OS membuat proses di dalam jalur yang transparan bagi user atau program aplikasi, dan hal ini masih sering ditemukan pada OS sementara. Ketika OS membuat sebuah proses pada request yang bersifat eksplisit dari proses lainnya, aksi tersebut dapat diartikan sebagai process spawning. 

PROSES TERMINASI

Tabel di bawah ini akan menjelaskan alasan mengapa terjadi proses terminasi.


Tambahan, sejumlah error dan kegagalan juga dapat menyebabkan proses terminasi. Akhirnya, pada beberapa OS, sebuah proses mungkin saja diterminate oleh proses yang membuatnya atau ketika parent proses menterminate dirinya sendiri.

FIVE STATE MODEL

Lima state yang terdapat dalam diagram model adalah:
  • Running
    Proses sedang berjalan saat ini.
  • Ready
    Proses yang akan dieksekusi ketika diberi kesempatan.
  • Blocked/Waiting
    Proses yang tidak dapat dieksekusi sampai beberapa proses selesai dijalankan.
  • New
    Sebuah proses yang baru saja dibuat tapi belum diizinkan untuk dieksekusi.
  • Exit
    Sebuah proses yang baru saja dihapus dari pool proses.
Dari gambar di atas juga dapat diindikasikan beberapa statement transisi yang mungkin terjadi:
  • Null >> New
    Sebuah program baru dibuat untuk dieksekusi.
  • New >> Ready
    OS akan memindahkan sebuah proses dari New State menjadi Ready ketika itu disiapkan untuk proses tambahan.
  • Ready >> Running
    Ketika waktunya memilih proses yang akan dijalankan, OS akan memilih salah satu proses yang memiliki state ready.
  • Running >> Exit 
    Proses yang sedang berjalan diterminate oleh OS.
  • Running >> Ready
    Ketika proses yang berjalan melebihi waktu yang diizinkan untuk menginterupsi eksekusi merupakan alasan paling sering mengapa transisi ini terjadi.
  • Running >> Blocked
    Terjadi jika itu merequest beberapa hal tapi harus menunggu.
  • Blocked >> Ready
    Terjadi ketika proses tersebut sedang ditunggu untuk dijalankan.
  • Ready >> Exit
    Transisi ini tidak ditunjukkan dalam state diagram.
  • Blocked >> Exit
    Komentar dibawah item preceding diterapkan.
MODEL EKSEKUSI

Tipikal fungsi dari sebuah OS pada kernel:


EKSEKUSI DI DALAM USER PROSES

Sebuah alternatif yang sering terdapat pada OS adalah untuk mengeksekusi secara virtual semua OS software di dalam konteks user proses.
Gambar di bawah menyarankan proses image struktur untuk masalah ini.

Kamis, 07 Mei 2015

Operating System Overview

Sebuah Operating Sistem merupakan program yang mengontrol eksekusi dari sebuah program aplikasi dan bertindak sebagai sebuah interface antara aplikasi dan hardware dari komputer. 
Operating itu sendiri memiliki tiga tujuan yaitu:
  • Convenience, sebuah OS membuat komputer menjadi lebih mudah untuk digunakan.
  • Efficiency, sebuah OS mengizinkan sistem komputer untuk digunakan dalam sebuah cara yang efektif.
  • Ability to evolve, sebuah OS seharusnya dibangun dengan berbagai cara untuk sebuah pengembangan yang lebih efektif, uji coba, dan pengenalan pada sebuah fungsi sistem baru tanpa berhubungan dengan service.
Secara umum OS biasa digunakan pada beberapa area yaitu:
  • Program development : OS menyediakan variasi fasilitas dan servis seperti edit dan debug, untuk membantu programmer dalam membuat program.
  • Program execution: jumlah tahapan yang dibutuhkan untuk menjalankan eksekusi program.
  • Access to I/O devices: setiap I/O membutuhkan instruksi atau mengontrol sinyal untuk operasi.
  • Controlled access to file: untuk akses file, OS harus mencerminkan pemahaman detail tidak hanya dari ruang lingkup I/O device tetapi juga struktur data yang dikandung dalam file.
  • System access: Untuk sistem shared atau public, OS mengontrol akses ke sistem secara keseluruhan dan menspesifikasi sumber.
  • Error detection and response: sebuah variasi dari error yang terjadi selama komputer berjalan. Hal ini termasuk internal dan eksternal error pada hardware seperti memory error, kegagalan device, fungsi yang buruk, variasi error software, pembagian dengan nol.
  • Accounting: sebuah OS yang baik akan mengumpulkan statistik penggunaan dari variasi sumber dan parameter performace seperti respon time.
  • Instruction set architecture: ISA mendefinisikan instruksi dalam bahasa bahasa tertentu yang bisa diikuti oleh komputer.
  • Application binary interface: ABI mendefinisikan standard untuk porbilitas biner.
  • Application programming interface: API memberikan sebuah akses program ke hardware dan servis yang tersedia di dalam sistem melalui pengguna ISA dengan library pemanggulan bahasa tingkat tinggi
Sebuah komputer merupakan kumpulan sumber dari perpindahan, penyimpanan dan pemrosesan data dan untuk mengontrol fungi fungsi tersebut. Berikut merupakan gambaran OS sebagai sumber managemen.
Operating Sistem selalu berevolusi setiap waktu karena beberapa alasan yaitu:
  • Hardware upgrades plus new types of hardware: sebagai contoh, pada versi awal dari UNIX dan Macintosh tidak menyediakan mekanisme paging karena OS nya dijalankan pada processor tanpa hardware paging.
  • New services: dalam respon kepada keinginan user atau respon pada kebutuhan sistem, OS memberikan servis baru.
  • Fixes: beberapa OS memiliki kegagalan.
Berikut akan dijelaskan beberapa hal yang perlu diketahui bagaimana operating sistem berevolusi setiap waktunya.

  • Serial Processing
    Pada awalnya, programmer berinteraksi langsung dengan hardware komputer, tidak ada OS. Komputer tersebut dijalankan melalui konsole yang terdiri dari tampilan cahaya, toogle, dan beberapa device lainnya.
    Ada dua masalah yang dimiliki pada sistem ini:
    >  Scheduling
    >  Setup time
  • Simple Batch Systems
    Pada awalnya komputer sangat mahal, oleh sebab itu sangat penting untuk mengoptimalkan. Untuk meningkatkan optimalisasi tersebut maka konsep batch OS dikembangkan. Untuk memahami bagaimana hal tersebut bekerja maka ada 2 hal yang harus diperhatikan yaitu:
    > Monitor point of view
    > Processor point of view
  • Multiprogrammed Batch Systems
    Berikut merupakan gambaran dari multiprogramming.


    Uniprogramming merupakan program tunggal yang harus menyelesaikan satu program dahulu kemudian melanjutkan program selanjutnya. Sedangkan multi programming (bi sa 2 atau 3) mengizinkan program berjalan secara bergantian tanpa harus menyelesaikan task masing masing.
  • Timesharing System
    Sistem yang menggunakan multiprogramming untuk menghandel berbagai pekerjaan interaktif. Waktu processor dibagi berdasarkan jumlah user yang mengakses.
Operating sistem merupakan software yang dibangun paling kompleks. Ada empat hal yang diperhatikan dalam pengembangan sebuah OS, yaitu:

  • Processes
    Ada banyak definisi yang telah diberikan dalam konteks proses yaitu:
    > Eksekusi program
    > Instant dari program yang sedang berjalan dalam komputer
    > Entiti yang bisa diassign dan dieksekusi dalam prosesor
    > Sebuah unit aktivitas yang dikarakteristikan dengan thread sekuens tunggal
    Dalam proses itu sendiri tentu terdapat error. Ada empat penyebab terjadinya error yaitu:
    > Improper syschronization
       Contohnya adalah sebuah program yang menginisiasi sebuah pembaca I/O harus menunggu      sampai data available pada sebuah buffer sebelum pemprosesan
    > Failed mutual exclusion
       Contohnya adalah user mungkin berusaha untuk mengedit file yang sama pada saat yang            sama.
    > Nondeterminate program operation
       Hasil dari program tertentu tidak seharusnya bergantung hanya pada input
    > Deadlock
       Contohnya adalah hanya dua yang mungkin mebutuhkan dua device I/O unu
  • Memory management
    Kebutuhan user mungkin ditemukan melalui lingkungan komputer yang mendukung programming yang bersifat modular dan penggunaan data yan fleksibel. Sistem manager membutuhkan efisiensi dan mengontrol urutan alokasi storage. Untuk memenuhi requirment tersebut ada lima prinsip dasar tanggung jawab manajemen, yaitu:
    Process Isolation. OS harus mencegah independnt proses dari interface dengan memory yang lainnya.
    Automatic allocation and management. Program harus dinamis pengalokasian memorinya sebagaimana yang diminta.
    Protection and acces control. Berbagi memory, pada level hirarki apapun, membuat potensial untuk satu program menuju alamat memoru dari yang lainnya.
    Support of  modular programming. Programmer harus mampu untuk mendefinisikan modul program dan untuk membuat, menghancurkan, atau memperdalam ukuran ukuran dari modul secara dinamis.
    Long-term storage. Banyak program aplikasi membutukan rata-rata untuk penyimpanan informasi untuk diperpanjang secara periodik.
  • Information protection and security
    Banyak pekerjaan dalam keamanan dan pencegahan sebagaimana hala tersebut berkaitan dengan OS yang secara umum bisa dikelompokkan menjadi empat bagian yaitu:
    Availability. Berfokus pada pencegahan melawan interupsi.
    Confidentiality. Meyakinkan bahwa user tidak dapat membaca data untuk akses data yang tidak diautorisasi.
    Data Integrity. Perlindungan data dari modifikasi yang tidak diautorisasi.
    Authenticity. Berfokus pada ketepatan verifikasi dari identifikasi dari user dan validasi dari pesan atau data.
  • Scheduling and resource management
    Beberapa alokasi resource dan jaminan penjadwalan harus menyadari tiga faktor berikut:
    Fairness. Kita akan senang apabila semua program diberikan aproximasi yang sama rata dan akses yang imbang atau adil.
    Differential responsiveness. Di sisi lain OS membutuhkan diskriminasi diantara kelas dari pekerjaan yang berbeda-beda.
    Effeciency. OS harus berusaha untuk memaksimalkan throughput dan meminimalisasi waktu respon.
Di dalam sistem SMP, kernel dapat mengeksekusi beberapa processor dan secara khusus masing masing processor melakukan penjadwalan sendiri dari pool proses yang tersedia.
Sebuah operating sistem SMP memanage processor dan sumber daya komputer lainnya sehingga user dapat melihat sistem dalam jenis yang sama sebagai multiprogramming uniprocessor sistem.
Selain itu multi OS juga harus menyediakan semua fungsi dari multiprogramming sistem ditambah dengan tambahan fitur untuk mengakomodasi multi prosesor. Kunci dari mendesain permasalahan tersebut adalah:
Simultaneous concurrent processes or threads. Kernel butuh untuk di-reentrant untuk mengizinkan beberapa processor untuk dieksekusi pada waktu yang bersamaan.
Scheduling. Beberapa prosesor mungkin menerapkan penjadwalan yang menyulitkan task dan meyakinkan interupsi dapat dicegah.
Synchronization. Dengan multi proses aktif yang memiliki potensi untuk membagikan space alamat atau resource I/O , care harus diambil untuk menghasilkan sinkronasi yang efektif
Memory management. Memori managemen pada multiprocessor harus disepakati dengan semua isu yang ditemukan pada uniprocessor.
Reliability and fault tolerance. OS harus menyediakan degradasi dalam menghadapi kesalahan dalam prosesor.

Mesin virtual merupakan pendekatan alternatif. Pendekatan akternatif tersebut dibutuhkan mengingat jumlah cores yang selalu meningkat pada sebuah chip.

Komponen kernel-mode pada windows adalah sebagia berikut
> Executive
> Kernel
> Hardware abstraction layer
> Device drivers
> Windows and graphics system

Berikut arsitektur kernel pada windows.


Secara umum, komponen dasar pada kernel adalah sebagai berikut:

  • Signal
    Kernel menggunakan sinyal untuk memanggil ke dalam sebuah proses.
  • System calls
    Sistem pemanggil merupakan cara dimana sebuah proses meminta sebuah servis kernel yang spesifik.
  • Processes and scheduler
    Tes, manage, dan proses penjadwalan
  • Virtual memory
    Mengalokasi dan memanages virtual memory untuk sebuah proses.
  • File system
    Menyediakan sebuah global, hirarki namespace untuk file, direktori, dan file lainnya yang berhubungan dengan objek dan menyediakan fungsi file sistem.
  • Network protocols
    Mendukung socket interface pada user untuk TPC/IP protokol.
  • Character device drivers
    Manage device yang membutuhkan kernel untuk mengirim atau menerima data 1 byte dalam sekali waktu, seperti terminal, modem dan printer.
  • Block device drivers
    Manage device yang membaca dan menulis data dalam blok, seperti variasi form pada memory sekunder.
  • Network device drivers
    NIC dan komunikasi port yang menghubungkan ke dalam device jaringan seperti bridge dan router.
  • Trap and fault
    Menghandel jebakan dan kesalahan generate pada prosesor. 
  • Physical memory
    Memanage pools dari halaman frame di dalam real memory dan mengalokasikan page pada virtual memory.
  • Interrupt
    Menghandel interupsi dari periperal device.

Computer Sistem Overview



Pada level tertinggi, komponen komputer dibagi menjadi Processor, Main Memory, I/O Module dan System bus.

Processor, mengontrol operasi komputer dan menjalankan data pada fungsi proses. Jika hanya terdapat satu procesor, biasanya disebut CPU.
Main memory, menyimpan data dan program.  Memory biasanya bersifat volatile.
I/O modules, memindahkan data dari komputer ke lingkungan eksternalnya. Lingkungan eksternal pada hal ini merupakan devices lainnya seperti disk.
System bus, menyediakan komunikasi bagi processor, main memory, dan i/o module.


Sebuah program dieksekusi oleh processor menggunakan sekumpulan instruksi yang telah disimpan di dalam memort. Program eksekusi itu sendiri dibagi menjadi dua tahap yaitu fetch (membaca) dan eksekusi (menjalankan). Proses eksekusi itu sendiri terdiri dari pengulangan instruksi pada fetch dan menjalankan perintah eksekusi.
Pemprosesan itu sendiri membutuh suatu instruksi tunggal yang dikenal sebagai instruction cycle.


Intruction itu sendiri dibagi menjadi dua cycle yi: fetch cycle dan execute cycle. Pada instruction cycle juga terdapat dua instruksi yi: fetch next dan execution. Secara general, aksi-aksi pada instruksi tersebut dibagi menjadi 4 yaitu:
  •  Processor memory, memungkinkan data ditransfer dari processor ke memory atau sebaliknya.
  • Processor I/O, memungkinkan data ditransfer ke atau dari periperal device dengan mentransfer antara processor dan i/o module.
  • Data Processing, processor mungkin menjalakan beberapa operasi aritmatika atau logika pada data.
  • Control, sebuah instruksi memungkinkan untuk menspesifikasikan bahwa sequence dari eksekusi diubah.
Eksekusi sendiri nantinya terdapat dua jenis, yaitu: pipelining dan super scalar.
Gambar ini di bawah merupakan salah satu contoh dari program eksekusi.


Secara virtual semua komputer menyediakan sebuah mekanisme dimana modul lainnya mungkin saja mengintrupsi urutan normal dari processor tersebut. Berikut merupakan kelas kelas dalam interupsi:
  • Program,di-generate oleh beberapa kondisi yang terjadi sebagai hasil dari sebuah eksekusi, seperti alur aritmatika, pembagian dengan nol, intruksi ilegal, dan referensi di luar memory.
  • Timer, di-generate oleh waktu yang ada di dalam processor. Hal ini memungkinkan OS untuk menjalankan fungsi tertentu pada regular basis.
  • I/O, di-generate oleh I/O Controller
  • Hardware failure,  di-generate oleh kesalahan, seperti error pembagian memory.

Variasi teknologi digunakan untuk mengimplemntasikan sistem memory. Memory sendiri memiliki  hirarki dan semakin atas semakin cepat memory tersebut.

Di dalam komputer juga terdapat cache memory. Meskipun cache itu tidak terlihat pada OS, namun cache memory berinteraksi dengan memory management lainnya.
Cache yang saat ini ada memiliki 2 jenis yaitu: 
  • Single level cache 
  • Three level cache.
Cache jika letaknya lebih dekat ke CPU maka lebih cepat juga untuk memproses intruksi/data. 
Cache mempunyai sifat:
  • Tidak kelihatan di dalam operating system
  • Meningkatkan kecepatan membaca dalam memory
  • Membuat kecepatan processor lebih cepat daripada kecepatan memori.