Minggu, 14 Juni 2015

Security

Security Requirement
  • Confidentiality : Data hanya bisa diakses oleh orang yang mempunyai hak akses atau autorisasi.
  • Integrity : Data hanya bisa diubah oleh orang yang berwenang.
  • Availability : Data tersedia dan dapat diakses.
  • Authencity : Identitas user dapat diketahui oleh komputer.
Tipe - tipe threats
  • Interruption
    - Menyerang availability data.
    - Merusak Hardware.
    - Memotong jalur komunikasi.
    - Mengganggu file manajemen sistem.
  • Interception :
    - Orang luar dapat mengakses data.
    - Menyerang pada confidentiality.
    - Mengkopi file atau program yang ada.
  • Modification :
    - Orang luar juga dapat mengubah data.
    - Menyerang pada sisi integrity.
    - Mengubah value dari data.
    - Mengubah sebuah program sehingga bekerja berbeda dari biasanya.
  • Fabrication :
    - Menyerang pada sisi authencity.
    - Menambah record pada sebuah file.
    - Orang luar dapat memasukkan objek kedalam sistem.
Intruders
  • Pengintaian oleh user.
  • Pengintaian oleh pihak dalam.
  • Celah untuk mendapatkan keuntungan.
  • Spionase komersil atau militer.
Accidental Data Loss
  • Act of God. Bencana Alam.
  • Hardware or Software Error.
  • Human Error.
Protection Mechanisms
  • Protection Domain
  • Protection Matrix
  • Protection Matrix with domain as objects
  • Use of access control lists
  • Two access control lists
  • Capability lists
Computer System Assets
  • Hardware
  • Software
  • Data
  • Jalur Komunikasi - Passive Attack
  • Jalur Komunikasi - Active Attack
Authentication
  • Aturan dasar authentication yaitu harus mengidentifikasi :
    - Sesuatu yang user tahu
    - Sesuatu yang user punya
    - Sesuatu yang menjelaskan siapa usernya
  • Authentication dapat digunakan dengan beberapa cara :
    - Use Password
    - Use Object
    - Use Biometric
  • Counter Measures :
    - Membatasi waktu ketika user melakukan login
    - Membatasi kesempatan login
    - Database untuk masing-masing login
    - Dengan Captcha
    - Menggunakan simple login name dan username sebagai jebakan.
Attack from the inside
  • Trojan Horse : program untuk user tertentu untuk bisa menyusup.
  • Spoofing : membuat tampilan UI yang hampir sama dengan aslinya.
  • Logic Bomb
  • Trap Door
Trojan Horse
  • Program yang mengandung hidden code yang menjalankan fungsi-fungsi yang tidak diinginkan atau berbahaya pada saat dipanggil.
Viruses
  • Program yang bisa menginfeksi program lainnya dengan memodifikasi program tersebut.
Worms
  • Menggunakan komunikasi jaringan untuk menyebar ke dalam sistem ke sistem lainnya.
Zombie
  • Program yang secara diam-diam mengambil ahli komputer orang lain, menggunakan jaringan internetnya untuk menyerang komputer orang lain, sehingga susah untuk dilacak.
Virus Stages
  • Domant : Virus dalam keadaan diam.
  • Propagation : Virus menduplikasikan diri ke program lain.
  • Triggering : Virus diaktifkan, dimana fungsi yang menjadi tujuan dari virus dilakukan sehingga bisa menyebabkan berbagai kejadian di dalam sistem.
  • Execution : Virus menjalankan fungsi tersebut dan menyerang sistem.
AntiVirus Approach
  • Detection
  • Identification
  • Removal

Sabtu, 06 Juni 2015

Embedded System

Embedded System
  • Embedded System adalah Suatu kombinasi antara hardware dan software yang didesign untuk fungsi tertentu.
    Contoh Embedded system dalam beberapa bidang :

  • Karakteristik embedded system :
    - Real Time Operation : gerak secara realtime.
    - Reactive System : gerak saat ada aksi dari luar.
    - Configureability : dapat dimodifikasi dengan fungsi tetap namun dalam berbagai versi.
    - I/O Device Flesibility : Input dan outputnya fleksible.
    - Streamlined Protection Mechanism : secara khusus didesign terbatas untuk funsi yang telah didefinisikan.
    - Direct Use Intterupts : Dapat diinterupt secara langsung.
  • Embedded System vs Traditional system

    -
    Mampu ngatasin banyak sequential code.
    - Beberapa bagian dari sistem dapat dijalankan secara concurrent.
    - Routine bisa berhenti di mana saja.
    - Safe Critical System.
  • Pendekatan dalam membuat embedded system

    - Tentukan hardwarenya.
    - Harus membuat software yang cocok dan hanya menggunakan fungsi yang ada di hardware.
    - Object oriented.
    - Menyimpan abstrak proses untuk waktu yang lama.
    - Hirarki dapat dibagi.
    - Menggunakan design sebelumnya.
  • Specialized Embedded Operating System

    -
    Prosesnya cepat dan ringan.
    - Real time
    - Hanya butuh ukuran yang kecil karena fungsinya spesifik.
    - Respond untuk external interrup cepat.
    - Menyediakan special sequential files.
    - Maintain realtime clock.
    - Meminimize interval selama interval disable.
eCos ( Embedded Configurable Operating System )
  • Open source, gratis, real time O/S untuk embedded application.
  • Komponen eCos :
    - HAL (Hardware Abstraction Layer) : software yang menampilkan sebuah API yang konsisten ke layer yang lebih atas dan map operasi pada upper layer kedalam spesifik hardware.
    - eCos kernel.
  • eCos Schduler

    - Bitmap Scheduler : Mendukung banyak level prioritas, tapi hanya ada satu thread yang ada pada masing-masing level pada beberapa waktu yang diberikan.
    - Multilevel Queue Scheduler :  Mendukung sample priority level 32 dan multiple active thread.



Multi Processor

Multicore vs Multiprocessor System

  • Multicore Computers

    -
    Sebuah CPU yang terdiri dari lebih dari satu core.
    - Core bekerja sebagai yang terpisah dalam sebuah single chip.
    - Core ini berguna untuk meningkatkan performance tanpa menaikkan clock processor.
  • Multiprocessor

    - Memiliki banyak CPU untuk satu komputer.
    - Multicore dapat diterapkan didalamnya untuk meningkatkan performance (Combine antara multicore dengan multiprocessor).
  • Perbedaan Multicore dengan Multiprocessor

    -
    Multicore lebih hemat energi karena hanya satu CPU yang dialiri listrik.
    - Multicore lebih hemat tempat karena hanya butuh satu cpu, jadi pernggunaan tempat lebih hemat.
    - Multiprocessor baik dalam performancenya karena dapat menangani banyak proses sekaligus.
UMA and NUMA Processor

  • UMA ( Uniform Memory Access )

    - Akses memory secara seragam.
    - Bisa disebut juga SMP (Symmetrical Multiprocessor)
  • NUMA ( Nonuniform Memory Access )

    -
    Dibuat untuk menangani kelemahan dari UMA.
  • NORMA ( No Remote Memory Access )

    - Contoh : Hypercube oleh Intel.
  • Structure Kernel

    - Kernel dari sebuah multiprocessor OS ( SMP Architecture ) disebut SMP Kernel.
    - Beberapa CPU dapat mengeksekusi code didalam kernel dan banyak CPU dapat melakukan hal ini secara paralel.
  • NUMA Kernel
    - CPU yang terdapat dalam NUMA system mempunyai waktu akses memory yang berbeda untuk memory lokal dan non-lokal.
    - System dalam NUMA memiliki kernel masing - masing yang terpisah.
  • Persamaan UMA dan NUMA :

    - Single memory space.
    - pitfal (membandingkan antara shared memory dengan distributed memory).
  • Perbedaan :

    - Waktu akses.
    - Jumlah Processor.
    - Bus vs Network Implementation.
  • Klasifikasi paralel system :
    1. Single Instruction Single Data (SISD).
    2. Single Instruction Multiple Data (SIMD).
    3. Multiple Instruction Single Data (MISD).
    4. Multiple Instruction Multiple Data (MIMD).
Time Sharing and Space Sharing
  • Time Sharing
    Menggunakan struktur data utama untuk mengatur jalannya dari multiprocessor.
  • Space Sharing
    Ada banyak cpu yang terhubung untuk saling membagikan memory penyimpanan bagi CPU yang membutuhkan tempat penyimpanan.
Gang Scheduling
  • Ada 3 Part dalam Gang Scheduling :
    - Thread yang berhubungan atau sejenis digabungkan sebagai satu unit gang.
    - Semua anggota gang berkerja secara simultan pada timashare CPU yang berbeda.
    - Semua anggota gang memulai dan mengakhiri time slice bersama-sama.


Minggu, 31 Mei 2015

Precise & Imprecise Interrupt

Precise Interrupt adalah interupsi yang meninggalkan mesin dalam keadaan baik-didefinisikan.

Precise Interrupt mempunyai 4 properties :

  • Program Counter (PC) disimpan di tempat yang dikenal.
  • Semua instruksi sebelum salah satu yang ditunjuk oleh PC telah sepenuhnya dilaksanakan.
  • Tidak ada instruksi lebih dari satu yang ditunjuk oleh PC telah dieksekusi.
  • State eksekusi pada instruksi yang ditunjuk oleh PC di kenal.
Imprecise Interrupt adalah interupsi yang tidak memenuhi requirement yang di atas.
Membuat hidup yang paling menyenangkan bagi penulis sistem operasi, yang sekarang harus mencari tahu apa yang telah terjadi dan apa yang masih harus terjadi.

            Figure 1. (a) A precise interrupt. (b) A imprecise interrupt.
Situasi pada Figure 2 (a) menunjukkan sebuah precise interrupt. Semua instruksi untuk program counter (316) telah selesai dan tidak ada yang di luar itu sudah mulai (atau telah diperpanjang kembali untuk membatalkan efek mereka).

Sedangkan pada Figure 2 (b) menunjukkan sebuah imprecise interrupt, di mana instruksi yang berbeda dekat program counter sedang dalam berbagai tahap penyelesaian, dengan yang lebih tua belum tentu lebih lengkap dari pada yang lebih muda. 

Mesin dengan imprecise interrupt biasanya memberikan sejumlah besar keadaan internal ke dalam stack untuk memberikan sistem operasi kemungkinan mencari tahu apa yang sedang terjadi. Kode yang diperlukan untuk me-restart mesin biasanya sangat rumit. Juga, menyimpan sejumlah besar informasi ke memori pada setiap interupsi membuat interupsi lambat dan pemulihan bahkan lebih buruk. Hal ini menyebabkan situasi ironis memiliki CPU superscalar sangat cepat kadang-kadang menjadi tidak cocok untuk real-time kerja karena memperlambat interupsi.


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

Sabtu, 09 Mei 2015

Memory Management

Memory Management

  • Pengelompokkan memori untuk mengakomodasi beberapa proses.
  • Memori perlu dialokasikan secara efisien agar bisa menampung banyak proses sekaligus.

Memory Management Requirement:
  • Relocation: Programmer tidak akan tahu dimana program ini akan dialokasikan di memory ketika dieksekusi. Lokasi memory dapat terus berubah - rubah ketika program dijalankan.

  • Protection: Proses seharusnya tidak bisa mereference lokasi memori proses lain tanpa ijin.

  • Sharing:Mengijinkan beberapa proses untuk mengakses bagian yang sama dari memori.Hal ini bisa berguna untuk mengurangi jumlah memori yang digunakan.
  • Logical Organization: Program ditulis dalam bentuk modul - modul dan setiap modul dapat ditulis dan dicompile secara independent.
  • Physical Organization:
    Memori yang tersedia untuk program plus data mungkin tidak cukup.
    - Programmer tidak tahu berapa banyak space yang available.
Addresing
  • Logical
    -
    Mereference ke lokasi memori independent dari assignment yang sekarang dari data ke memori.
    - Translasi harus dilakukan ke physical address.
  • Relative
    -
    Alamat dinyatakan sebagai lokasi yang relatif terhadap beberapa titik yang diketahui.
  • Physical
    -
    Alamat absout atau lokasi sebenarnya di main memory.
Memory Allocation Algorithm
  • First Fit : Tercepat karena mencari dan mengambil blok memori yang terdepan.
  • Next Fit : Mencari memory dari yang sekarang ke selanjutnya, bukan dari lokasi memori yang paling pertama.
  • Best Fit : Mencari blok memori yang ukurannya sesuai atau mendekati yang diminta.
  • Worst Fit : Mencari ukuran memori yang terbesar.
  • Quick Fit : 
  • Buddy System : Mencari lokasi memori dengan menggunakan rumus
    Rumus Buddy System : 2U-1 < s <= 2U




Deadlock

Deadlock:
dapat didefinisikan sebagai keadaan dimana dua proses atau lebih menunggu resources yang hanya bisa diubah oleh proses lainnya.


Kondisi - kondisi yang menyebabkan deadlock:
  • Mutual exclution : hanya satu proses yang dapat menggunakan resources.
  • Hold and Wait : Suatu proses sedang memegang satu resource,dan sekaligus menunggu untuk mengambil resource lainnya.
  • No Preemption : Resource dapat dilepaskan hanya dengan sukarela oleh prosesyang memegangnya, setelah proses telah menyelesaikan tugasnya.
  • Circular wait : Terjadi ketika proses saling menunggu resource sehingga membentuk circular.
Deadlock Modeling
(a). Holding a resource.
(b). Requesting a resource.
(c). Deadlock.
Strategy dealing with Deadlock:
  • Hindari saja masalah.(Ostrich algorithm)
  • Deteksi dan pemulihan. Biarkan deadlock terjadi, mendeteksi mereka, mengambil tindakan.
  • Menghindari dengan mengaalokasi sumber daya dengan hati - hati.
  • Pencegahan, dengan struktural meniadakan salah satu dari empat kondisi yang diperlukan.

Deadlock avoidance:
  • Mengetahui jumlah resources yang dibutuhkan.
  • Mengetahui jumlah resources ada berapa, pengalokasiannya, dan bisa diblock.
Safe and Unsafe State:
  • Safe State
(a) is safe
  • Unsafe State
    (b) is unsafe


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

Concurrency

Concurrency
  • Komunikasi antar proses.
  • Berbagi sumber daya.
  • Sinkronisasi beberapa proses.
  • Alokasi waktu processor.
Concurrency berguna untuk mengatasi :
  • Multiple Application
    - Multiprogramming
  • Structured Application
    - Aplikasi yang dapat mengatur proses concurrent.
  • Operating system structure
    - Sistem Operasi yang mengatur sekumpulan thread atau proses.
Masalah - masalah dalam concurrency :
  • Sharing global resources.
  • Pengelolaan alokasi sumber daya.
  • Sulit untuk menemukan error pada program.
O/S Concerns
Ada beberapa hal yang di pengaruhi oleh concurrency:
  • OS harus dapat melacak proses yang aktif yang dapat menimbulkan concurrency.
  • Mengalokasikan dan dealokasi sumber daya berikut:
    - Processor time
    - Memory
    - Files
    - I/O devices
  • OS harus dapat melindungi data dan sumber daya.
  • Hasil dari suatu proses harus independen dari kecepatan eksekusi proses lainnya.
Persaingan antar proses dari sumber daya:
  • Mutual Exclusion : hanya ada satu proses yang diperbolehkan menggunakan resources.
  • Deadlock : dimana semua proses ingin menggunakan resources yang sama.
  • Starvation : setiap proses saling mengalah.
Cooperation among process:
  • By Sharing
  • By Communication
Mutual Exclusion:
  • Hanya ada satu proses yang diperbolehkan menggunakan resources.
  • Sebuah proses yang stop di bagian non-critical harus melakukannya tanpa mengganggu proses lainnya.
  • No deadlock and starvation.
  • Alasan untuk menciptakan Mutucal exclusion:
    - Disabling Interrupts
    - Lock Variables
    - Strict Alternation
    - Peterson's solution
    - The TSL Instruction
Semaphore
  • Variable yang bernilai integer digunakan untuk memberi sinyal.
  • Dapat digunakan untuk mengatasi concurrency.
  • Ada 3 operasi yang digunakan semaphore:
    - Inisialisasi
    - Increment
    - Decrement
  • Jika suatu proses menunggu sinyal, maka proses tersebut ditunda hingga sinyal di kirimkan.
  • Wait dan Operasi sinyal tidak dapa diganggu.
  • Queue digunakan untuk proses yang menunggu.
  • Variable Semophore:
    - Diinisialisasi ke bilangan non-negatif.
    - Wait operation decrement nilai semaphore.
    - Signal operation increment nilai semaphore.
Mutex : mirip dengan semaphore, tetapi hanya menggunakan 2 operator atau penanda.

Monitor
  • Konstruksi bahasa pemograman yang mendukung akses kontrol untuk sharing data.
  • Encapsulates
  • Hanya ada satu proses yang aktif dalam monitor setiap saat.
Message Passing : melakukan komunikasi dengan saling kirim - mengirim pesan antar sender dan receiver.



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