Minggu, 14 Juni 2015

SECURITY

Security dalam OS

adalah hal-hal yg mencakup keamanan didalam suatu OS.


Syarat-syarat adanya keamanan :

  • Confidentiality : suatu komputer hanya dapat diakses oleh orang yang memiliki autorisasi
  • Integrity : hanya orang yg memiliki autorisasi yg dapat mengakses datanya
  • Availability : ketersediaan dari data agar dapat diakses oleh orang
  • Authenticity : sistem komputer yg berfungsi untuk memastikan identitas dari user yg mengakses

Tujuan dari adanya security adalah :

  1. data confidentiality
  2. data integrity
  3. system availability

Tipe-tipe Threat :

  • Alur normal, seharusnya jalur komunikasi yg aman adalah seperti gambar (a). Gambar (a) menunjukkan bahwa jalur dari sumber informasi ke tujuan informasi harusnya tidak terdapat ancaman yg mengganggu.

  • Interruption
    tipe ancaman yg pertama adalah gambar (b) interruption. Pada gambar (b) jalur komunikasi antara sumber dan tujuan ditutup / diputus oleh orang yg tidak terautorisasi, biasanya menyerang availability dari sistem tersebut.
  • Interception
    tipe ancaman yg kedua adalah gambar (c) interception. Pada gambar (c) jalur komunikasi antara sumber dan tujuan terlihat aman, namu ada pihak-pihak yg tidak terautorisasi dapat mengakses informasi tersebut, biasanya menyerang confidentiality dari data tersebut.
  • Modification
    tipe ancaman yg ketiga adalah gambar (d) modification. Pada gambar (d) jalur komunikasi antara sumber dan tujuan seolah-olah terlihat aman, namun ada pihak-pihak yg tidak terautorisasi mengambil datanya terlebih dahulu, lalu mengubah datanya, setelah itu baru dikirim ke tujuannya. Biasanya menyerang integrity dari data tersebut
  • Fabrication
    tipe ancaman yg keempat adalah gambar (e) fabrication. Pada gambar (e) jalur komunikasi antara sumber dan tujuan belum dibuat, namun ada pihak-pihak tidak terautorisasi yg mengirimkan suatu data seolah-olah seperti kiriman dari sumber informasi. Isi dari data tersebut dapat berupa program kecil untuk menyusup, biasanya menyerang authenticity dari sistem tersebut.

Intruders

Kategori dari intruders adalah :
  1. menyerang orang yg tidak memiliki pengetahuan tentang sistem komputer
  2. menyadap komunikasi orang-orang dalam
  3. berpikir untuk mencuri uang
  4. menyerang keamanan umum dan militer

Kehilangan Data, sering disebabkan oleh :
  • Acts of God, kehilangan yg terjadi karena adanya bencana alam, dan segala hal yg tidak dapat diprediksi oleh manusia
  • Hardware / software errors, kehilangan yg terjadi karena adanya error yg terjadi pada hardware maupun software
  • Human error, kehilangan yg disebabkan karena kesalahan yg dilakukan oleh manusia, seperti salah memasukkan data

Aset dari sistem komputer

Aset dari sistem komputer dibagi menjadi :
  1. Hardware
  2. Software
  3. Data
  4. Jalur komunikasi dan jaringan

Intrusion Detection

Cara mendeteksi adanya intruders :
  • Statistical anomaly detection, adalah mendeteksi adanya keanehan dalam suatu data secara statistik. Contohnya : orang A biasa mengambil uang di atm sebesar 1 juta, tiba-tiba pada suatu hari orang A mengambil uang 3 juta. Oleh karena itu perlu dipertanyakan kejelasannya.
  • Rule-based detection, adalah mendeteksi adanya ketidakselarasan antara aturan yg dibuat. Contoh : orang B bekerja di perusahaan XYZ dengan peraturan setiap jam 8 pagi-4 sore untuk login akunnya. Tiba-tiba pada suatu hari orang B login di jam 5 sore, karena adanya ketidakselarasan dengan aturan yg telah dibuat maka harus dipertanyakan juga.
  • Audit record, adalah mendeteksi adanya keanehan dengan cara mengumpulkan semua data-data lalu di cek satu persatu.

Authentication

Authentication dalam OS sangat dibutuhkan untuk mendeteksi :
  1. sesuatu yg user ketahui
  2. sesuatu yg dimiliki user
  3. siapakah user tersebut

Countermeasure

Countermeasure adalah pencegahan agar orang lain tidak masuk ke dalam sistem kita secara sembarangan. Caranya adalah dengan :
  • membatasi orang yg dapat login
  • batasan untuk mencoba login
  • suatu database yg berisi orang-orang yg telah login

Attack from Inside

Penyerangan dari dalam dapat terjadi di sistem komputer kita. Yang biasanya terjadi dalam penyerangan tersebut adalah : 
  1. Trojan horse
    adalah suatu program bebas yg dibuat sebagai pintu masuk malicious software, bisa juga virus.
  2. Login spoofing
    adalah suatu program yg dibuat sama persis dengan program aslinya, yang berfungsi untuk mengambil sesuatu yg penting didalamnya. Contoh : program untuk login, fungsinya adalah untuk mengambil username dan password orang tersebut.
  3. Logic bomb
  4. Trapdoor / Backdoor
    adalah suatu program yg berfungsi bagi pemilik program yg asli untuk bisa masuk ke dalam program yg telah ia buat sendiri namun di hack.
  5. Buffer overflow

Virus, adalah suatu program yg dapat menginfeksi program lain dengan cara memodifikasinya.
Worm, adalah suatu aplikasi yg semakin dibelah akan semakin banyak.
Zombie, adalah suatu program yg secara diam-diam mengambil alih komputer lain.

Tahap-tahap virus dibagi menjadi 4 :
  1. Fase dormant, adalah fase dimana virus masih dalam keadaan tidak aktif
  2. Fase propagation, adalah fase dimana virus mulai menyebar / memperbanyak diri ke dalam area sistem
  3. Fase triggering, adalah fase dimana virus mulai aktif untuk menjalankan fungsi mereka / mulai menyerang
  4. Fase execution, adalah fase dimana fungsinya mulai berkembang

Pendekatan antivirus ada 3 : detection, identification, dan removal.


Semoga bermanfaat ! ^^

Kamis, 04 Juni 2015

EMBEDDED SYSTEM

Embedded System

Embedded system adalah suatu kombinasi dari hardware dan software yg didesain untuk menjalankan suatu fungsi tertentu.
Contoh dari embedded system adalah microprocessor yg mengontrol mesin automobile.



Karakteristik dari embedded system adalah :
  • Real time operation : suatu operasi yg pada waktu itu juga akan dilakukan secara langsung
  • Reactive operation : suatu operasi yg akan berjalan jika di picu dengan tindakan lainnya dulu
  • Configurability : karena variasi dari embedded system sangat banyak, maka untuk menyesuaikan kebutuhan dapat dikonfigurasi secara kualitatif dan kuantitatif
  • I/O device flexibility : fleksibilitas antara segala macam alat input dan output
  • Streamlined protection mechanism : embedded system didesain secara terbatas dengan fungsi yg didefinisikan dengan baik
  • Direct use of interrupts : embedded system dapat diinterupsi oleh proses lain yg lebih penting


Embedded System Vs. Traditional System

Kelebihan embedded system daripada traditional system :
  1. embedded system tidak harus dikodekan secara urut
  2. dapat diinterupsi oleh sebelum proses itu selesai
  3. banyak bagian dari sistem dapat berjalan secara bersamaan dalam waktu yg sama juga
  4. dapat menjaga komponen-komponen yg penting pada banyak sistem

Cara membuat embedded system :
  1. tentukan hardware apa yg digunakan
  2. harus menentukan juga software yg cocok untuk hardware tadi
  3. tentukan juga tugas yg spesifik untuk jangka waktu yg panjang
  4. bisa menggunakan konsep obeject-oriented
  5. jangan membuat fungsi yg sudah ada

2 contoh dari embedded system adalah : TinyOS dan eCos(embedded configurable operating system).


Komponen eCos 

Komponen dalam eCos :
  • HAL (hardware abstraction layer) adalah sebuah software yg menyediakan API kepada upper layers dan peta / gambaran kepada upper layers terhadap platform hardware.
  • eCos kernel, mempunyai tujuan :
    • low interupt latency
    • low task switching latency
    • small memory footprint
    • deterministic behaviour
eCos Scheduler, dibagi menjadi 2 :
  1. Bitmap scheduler, membantu level-level prioritas, tapi hanya 1 thread yg dapat diproses dalam waktu yg sama
  2. Multilevel Queue Scheduler, mengijinkan banyak thread yg terdapat pada level prioritas, terbatas hanya oleh sumber data

Semoga bermanfaat ! ^^

MULTI PROCESSOR

Multicore Computer

Multicore computer adalah suatu CPU dengan lebih dari 1 core. Core itu beroperasi sebagai prosesor yg memiliki single chip. Multicore sendiri juga berguna untuk meningkatkan performa komputer itu sendiri.


Multiprocessor

Multiprocessor adalah suatu komputer yg memiliki banyak CPU dan memiliki banyak prosesor. Kebanyakan multiprocessor mengkombinasikan 2 teknologi, yaitu multicore dan multiprocessor.


Multicore vs. Multiprocessor

  • Saves energy
    komputer yg menggunakan multicore cenderung lebih hemat energi / hemat penggunaan listrik daripada menggunakan multiprocessor, karena multiprocessor menggunakan CPU sendiri-sendiri sehingga membutuhkan lebih banyak daya listrik untuk menghidupkannya.
  • Saves space
    komputer yg menggunakan multicore juga cenderung lebih hemat tempat penyimpanan. Karena jarak dari multicore itu lebih dekat dibanding dengan multiprocessor.
  • Performance
    komputer yg menggunakan multiprocessor akan lebih cepat untuk menghandle segala request yg diberikan, sehingga menyebabkan performanya lebih baik daripada multicore.



Gambar (a) merupakan gambar dari banyak CPU, yg berarti juga mempunyai banyak prosesor. Gambar (b) merupakan gambar dari banyak CPU yg mempunyai banyak prosesor dan mempunyai tempat penyimpanannya sendiri, tapi juga bisa memiliki tempat penyimpanan yg tergabung. Gambar (c) merupakan gambar dari CPU yg mempunyai tempat penyimpanan sendiri dan semua CPU itu terhubung ke dalam jaringan internet.


UMA Multiprocessor with Bus-Based Architecture


Ada 3 jalur bus dalam multiprocessor, yaitu gambar (a) merupakan gambar tanpa caching, adalah beberapa CPU yg terhubung dalam bus / jalur yg sama dan mempunyai memori / tempat penyimpanan yg sama, sehingga untuk mengaksesnya harus memastikan kalau tidak ada CPU lain yg sedang mengakses memori tersebut; gambar (b) merupakan gambar yg menggunakan caching, adalah beberapa CPU yg terhubung dalam bus / jalur yg sama mempunyai tempat penyimpanan sementara (cache) sehingga untuk mengakses memori utama tidak terlalu penuh; gambar (c) merupakan gamabr yg menggunakan caching dan mempunyai tempat penyimpanan sendiri, yaitu CPU yg terhubung dalam bus / jalur yg sama dan mempunyai tempat penyimpanan memori sementara serta memiliki tempat penyimpanan untuk dirinya sendiri.


Multiprocessor Architecture

Sistem multiprocessor berdasarkan tujuan CPU dan memorinya dibagi menjadi 3 :
  1. Uniform Memory Access (UMA)
    Disebut juga dengan Symmetrical Multiprocessor (SMP). UMA ini adalah suatu arsitektur yg mengakses memori dengan cara yg sama / seragam.
  2. Nonuniform Memory Access (NUMA)
    NUMA adalah sebuah arsitektur yg mengakses memorinya secara berbeda-beda.
  3. Non remote Memory Access (NORMA)
    Disebut juga dengan distributed system

SMP Architecture

SMP adalah kepanjangan dari Symmetrical Multiprocessor, arsitekturnya terdiri dari sebuah bus yg menghubungkan ke suatu jaringan. SMP sendiri hanya bisa memproses 1 percakapan dalam waktu yg sama, dan proses-proses yg lainnya di tunda untuk diproses dulu. Kelemahannya adalah CPU tidak dapat diprediksi waktunya dalam mengakses suatu isi dari memori, dan mungkin saja jalur yg digunakan mengalami masalah traffic data.


Kernel Structure

Kernel dalam sebuah multiprocessor disebut juga dengan SMP Kernel. Fungsi kernel adalah untuk mengeksekusi kode-kode yg diberikan dari user dan dapat dilakukan secara paralel. CPU bekerja dengan saling tersinkronisasi dan juga dapat diinterupsi prosesnya.


NUMA Kernel

CPU yg menggunakan arsitektur NUMA mempunyai waktu akses memori yg berbeda-beda. Setiap node dalam arsitektur NUMA mempunyai kernel yg terpisah, sehingga setiap prosesnya dapat diatur dalam alamat memori.


UMA dan NUMA

Persamaan : single memory space, dan juga ada pitfall (pitfall adalah perbedaan antara shared memori dan distributed memori)

Perbedaan : waktu akses memorinya berbeda-beda, jumlah dari prosesor juga berbeda, dan jalur serta pengimplementasian jaringannya digunakan juga berbeda.


NUMA processor

Karakteristik dari NUMA prosesor adalah :
  • adanya single address space yg terlihat bagi seluruh CPU
  • waktu akses ke remote memory menggunakan instruksi LOAD dan STORE
  • waktu akses ke remote memory lebih lambat daripada waktu akses ke lokal memori

Mempunyai multiprocessor yg banyak, itu berarti juga mempunyai banyak CPU, oleh karena itu masing-masing dari CPU tersebut bisa diinstal operating system (OS) yg berbeda-beda juga.


Klasifikasi dari System Parallel

Paralel sistem dapat diklasifikasikan sebagai berikut :
  • SISD (Single Instruction Single Data) 
  • MISD (Multiple Instruction Single Data)
  • SIMD (Single Instruction Multiple Data)
  • MIMD (Multiple Instruction Multiple Data)

Sifat multiprocessor :
  1. Sinkronisasi, yg berarti dapat saling terhubung dan saling memperbarui isi data sehingga tidak ada data yg hilang dan menjadi data yg memiliki integritas. Untuk mengubah suatu data maka diperlukan key, jika hanya membaca maka tidak membutuhkan key.
  2. Time sharing, yg berarti menggunakan struktur data utama untuk mengatur jalannya dari multiprosesor.
  3. Space sharing, yg berarti banyak CPU yg terhubung untuk saling membagikan memori penyimpanannya bagi CPU yg membutuhkan tempat penyimpanan.

Gang Scheduling

Didalam Gang Scheduling ada 3 bagian :
  • kumpulan dari thread yg dijadwalkan / diatur sebagai suatu unit.
  • semua member dijalankan secara simultan pada waktu CPU yg berbeda-beda.
  • semua member memulai dan mengakhiri waktu proses mereka secara bersamaan juga.


Semoga bermanfaat ! ^^

Rabu, 27 Mei 2015

BITMAP VS VECTOR

Nah pelajaran saya minggu ini adalah mencari apa itu vektor, dan apa itu bitmap, serta mencari kekurangan dan kelebihan dari masing-masing topiknya.

A. Vektor
     Vektor adalah suatu gambar yg menyimpan datanya dalam bentuk persamaan matematika. Menurut pengertian bakunya, vektor adalah suatu gambar yg merupakan kombinasi dari titik dan garis yg tergabung dalam suatu persamaan matematika.

Kelebihan dari gambar vektor :

  • bersifat scalable, artinya kita dapat memperbesar dan memperkecil gambar tanpa mengubah kualitas, alias tidak pecah saat di zoom.
  • memiliki ukuran file yg kecil
  • mempunyai warna-warna yg solid
  • digunakan untuk gambar-gambar yg sederhana
  • mudah untuk dipelajari, karena tidak membutuhkan skill yg tinggi
Kekurangan dari gambar vektor :
  • tidak bisa memiliki warna yg bergradasi


B. Bitmap
     Bitmap adalah suatu gambar yg menyimpan datanya dalam pixel. Menurut pengertian bakunya, bitmap adalah suatu gambar yg merupakan kombinasi warna yg disimpan ke dalam pixel. Dalam 1 pixel menyimpan 1 warna sendiri.

Kelebihan dari gambar bitmap :

  • bisa memiliki warna yg beragam, serta dapat memiliki gradasi warna
  • lebih enak dilihat karena warnanya lebih natural
Kekurangan dari gambar bitmap :
  • untuk memperbesar dan memperkecil gambar akan mempengaruhi kualitas gambar, alias akan pecah kalau di zoom
  • ukuran file relatif lebih besar
Gambar perbedaan vektor dan bitmap :

Jadi kesimpulan yg dapat ditarik adalah jika anda ingin membuat suatu gambar yg mudah dan tidak memperlukan banyak warna ataupun anda ingin membuat suatu gambar dengan resolusi yg sangat tinggi lebih baik menggunakan gambar vektor. Tetapi jika ingin mendapatkan gambar yg lebih natural dan dapat diberikan banyak efek, sebaiknya anda menggunakan gambar bitmap.

Semoga bermanfaat ! ^^
www.binus.ac.id
www.skyconnectiva.com

Minggu, 10 Mei 2015

MEMORY MANAGEMENT

Memory management adalah suatu tugas dari subdivisi dijalankan secara dinamik oleh operating system. Memori butuh untuk dialokasikan secara efisien ke banyak proses.

MEMORY MANAGEMENT REQUIREMENTS

Persyaratan yg harus ada dalam membuat manajemen memori adalah :
  1. Relokasi
    Programmer tidak boleh tau dimana letak proses yg mau dieksekusi
  2. Proteksi
    Proses tidak boleh mengidentifikasi bahwa lokasi alamat reference diproses tanpa semaphore
  3. Sharing
    memperbolehkan proses-proses untuk mengakses sumber informasi yg lain
  4. Logikal organisasi
    program-programnya ditulis dalam modul, sehingga setiap modul dapat ujan diri sendiri
  5. Physical organisasi
    programmer tidak tau space nya meskipun cuma semata wayang makan akan tersedia juga

ADDRESSING

Cara addressing dibagi menjadi 3 jenis :
  • Logical, mereference ke lokasi memori berdasarkan tugas sebelumnya ke memori
  • Relative, address yg mengekspresikan suatu lokasi relatif ke port-port yg dikenal
  • Physical, alamat absolute/posisi sebenarnya dalam main memory

MEMORY ALLOCATION

Algoritma yg digunakan dalam pengalokasian memori adalah :
  1. First fit
    paling cepat, mungkin memiliki banyak proses yg diload di posisi memori paling depan. First fit memulai untuk scan memori dari awal dan memilih blok yg terscan pertama kali
     
     
  2. Next fit
    next fit memulai untuk scan memori dari lokasi penyimpanan terakhir dan memilih blok yg ditemukan selanjutnya
  3. Best fit
    memilih blok yg paling dekat dengan dengan yg direquest
  4. Worst fit
  5. Quick fit
  6. Buddy system
    setiap space memori yg tersedia akan dibuat menjadi 1 single block, 2^u
    Buddy System

Semoga bermanfaat ! ^^
www.skyconnectiva.com

DEADLOCK

Deadlock adalah suatu kejadian ketika ada proses yg :

  • saling memperebutkan 
  • saling menunggu
  • saling menghalangi
Permanent blocking adalah sekumpulan proses yg saling berkompetisi untuk mendapatkan sumber informasi bagi sistem dan juga untuk berkomunikasi dengan proses yg lain. Karena permanent blocking tersebutlah muncul adanya deadlock.
Pada gambar (a) diatas merupakan gambar kemungkinan terjadinya suatu deadlock, sedangkan gambar (b) merupakan kejadian disaat deadlock sudah terjadi.


CONDITION FOR RESOURCE DEADLOCK

Kondisi-kondisi yg mungkin terjadi saat deadlock :
  • Mutual exclusion
    hanya ada 1 proses yg dapat mengakses sumber informasi
  • Hold and wait
    proses yg sedang memegang 1 sumber informasi juga sedang menunggu untuk mengakses sumber informasi lain yg sedang dipegang oleh proses yg lain
  • No preemption
    suatu sumber informasi akan secara sukarela dilepaskan oleh proses yg sedang mengaksesnya, setelah proses tersebut selesai melakukan tugasnya
  • Circular wait
    suatu keadaan dimana semua proses saling ingin mengakses sumber informasi yg sama, namun mereka saling menunggu karena masih ada 1 proses yg sedang mengaksesnya
Pada gambar (a) merupakan gambar resource R sedang diakses oleh proses A. Sedangkan gambar (b) adalah proses B yg merequest resource R. Pada gambar (c) merupakan gamabr circular wait.

Gambar deadlock yg terjadi :
Berikut ini adalah gambar untuk solusi masalah deadlock :

Cara-cara untuk mencegah deadlock ada 4 :
  1. biarkan saja masalahnya (menurut algoritma Ostrich)
  2. deteksi dan pemulihan kembali, biarkan deadlock terjadi, deteksi deadlocknya dimana lalu ambil tindakan
  3. pencegahan secara dinamik
  4. pencegahan
Ada beberapa cara untuk menunjukkan deteksi terjadinya deadlock :
  • dengan menggunakan resource graph
  • dengan menggunakan cycle yg telah diekstrak dari resource graph
Deadlock avoidance, membutuhkan sistem yg mempunyai informasi yg penting :

  1. setiap proses mendefinisikan sumber maksimum yg dibutuhkan
  2. memastikan bahwa tidak akan pernah terjadi kondisi circular wait
  3. Resource algorithm didefinisikan oleh jumlah sumber informasi yg dialokasi dan jumlah maksimum dari proses tersebut
Deadlock detection, memastikan permintaan sumber informasi dapat terjadi. Ada 4 cara :
  1. mutual exclusion
  2. hold and wait
  3. circular wait
  4. no preemption
Kondisi dalam deadlock detection serta cara pendekatannya

STARVATION

Starvation adalah sebuah algoritma untuk mengalokasikan sejumlah sumber informasi, dan mungkin memberikan shortest job first, tapi memungkinkan juga untuk terjadi penundaan waktu yg sangat panjang, meskipun tidak diblock. Maka solusi untuk mengatasi starvation adalah first-come first-serve algorithm.

Deadlock recovery, digunakan untuk membatalkan semua proses yg sudah deadlock (untuk proses terminasi). Untuk mencegah terjadinya interupsi sumber informasi adalah dengan :
  • memilih korbannya (mengurangi biaya)
  • rollback, artinya mengembalikan semua nilai menjadi safe state
  • starvation, proses yg sama mungkin bisa diambil dengan diambil sebagai korban
Deadlock handling, mengkombinasikan 3 dasar pendampingan samaNya :
  1. Prevention
  2. Avoidance
  3. Detection
Mengijinkan bagaimana untuk mencapai pendekatan teroptimal. Partisi sumber informasi digambarkan dalam urutan kata dalam sistem.

Semoga bermanfaat ! ^^

CONCURRENCY

Concurrency adalah proses yg dilakukan secara bersamaan. Concurrency terjadi pada :

  • proses dalam suatu aplikasi
  • thread dalam proses
  • programnya
Tujuan dari concurrency adalah : 
  1. Komunikasi dalam suatu proses
  2. Berbagi sumber daya maupun sumber informasi
  3. Proses sinkronisasi suatu proses
  4. Mengalokasikan waktu prosesor
Untuk mencapai tujuan-tujuan tersebut tidak akan berjalan lancar, di bawah ini adalah masalah-masalah yg dihadapi dalam concurrency :
  • Berbagi sumber daya untuk maksud kejahatan
  • OS sulit mengatur alokasi dari sumber informasi secara optimal
  • Menjadi bahasa pemrograman yg sulit untuk disimpan/diletakkan
Fokus dalam OS :
  1. OS harus bisa menelurusi bermacam-macam proses
  2. OS harus mengalokasikan dan mendealokasi sumber informasi untuk setiap proses yg aktif, diantaranya :
    - Waktu prosesor
    - Memori
    - Dokumen/file
    - Perangkat inout output
  3. OS harus memproteksi data dan sumber informasi fisik untuk mencegah adanya gangguan dalam proses tersebut
  4. Hasil dari sebuah proses harus diselesaikan secara cepat dalam proses concurrency

COMPETITION among PROCESSES for RESOURCES

Proses concurrency menjadi sebuah konflik/masalah ketika proses-proses tersebut saling berebut untuk mendapatkan informasi dari sumber data yg sama. Ada 3 masalah yg terjadi :
  1. Mutual exclusion
    ketika ada 2 proses yg berebut sumber daya seperti printer, akan terjadi yg namanya critical resource. Untuk menyelesaikan masalah ini maka hanya ada 1 program saja yg daapt mengakses critical resource, disebut dengan critical section. Tidak memungkinkan terjadi deadlock dan starvation.
  2. Deadlock
    ketika ada 2/lebih proses yg ingin berebut untuk mendapatkan informasi dari sumber yg sama.
  3. Starvation
    suatu keada dimana ada 2/lebih proses yg ingin mengakses sumber informasi secara bersamaan tapi saling mengalah semua dan tidak ada yg jadi mengakses sumber informasi tersebut.

COOPERATION among PROCESSES

Ada 2 model kooperasi :
  • By sharing
    penulisan harus terjadi secara eksklusif, dan critical section digunakan untuk menyediakan data yg berintegritas
  • By communication
    - message di passing, mutual exclusion tidak begitu dibutuhkan
    - memungkinkan terjadi deadlock, setiap proses menunggu proses yg lainnya
    - memungkinkan terjadi starvation

SEMAPHORES

Semaphore merupakan variabel spesial yg digunakan untuk mengirimkan sinyal. Operasi pengiriman sinyal tersebut tidak dapat diinterupsi. Didalam semaphore terdapat queue, yg berguna untuk memegang proses yg sedang menunggu semaphore. Semaphore sendiri merupakan sebuah variabel yg memiliki nilai integer,
  • proses inisialisasi menggunakan angka bukan negatif
  • proses waiting akan mengurangi nilai semaphore
  • proses signaling akan menambahkan nilai semaphore
Gambar diatas merupakan pengimplementasian dari mutex (mutual exclusion) lock dan mutex unlock


MONITOR

Monitor adalah sebuah bahasa pemrograman yg dibangun untuk menyediakan fungsi-fungsi setara dalam semaphore yg memudahkan untuk mengakses data yg tersebar. Karakteristik dari monitor adalah :
  • data variabel lokal dapat diakses hanya oleh prosedur monitor.
  • proses yg masuk ke dalam monitor harus meng-invoke prosedurnya
  • hanya ada 1 proses yg dieksekusi dalam monitor
Selama didalam monitor, proses mungkin menemukan kondisi yg tidak boleh dilanjutkan, seperti :
  • proses dapat waiting/menunggu signaling dari proses yg lain
  • variabelnya hanya dapat diakses dari dalam monitor saja
  • proses waiting akan melepaskan monitor secara sementara
Semoga bermanfaat ! ^^

Sabtu, 09 Mei 2015

PROCESS AND THREADS

PROCESS vs. PROGRAM

Program adalah instruksi-instruksi untuk mengerjakan suatu task
Proses adalah eksekusi dari sebuah program

Proses model memiliki 3 kategori :
  1. Multiprogramming of four program
  2. Conceptual model of four independent, sequential processes
  3. Only one program is active at once

PROCESS CREATION

Penyebab adanya pembuatan suatu proses :
  • Inisialisasi sistem
  • Eksekusi dari sebuah pemanggilan pembuatan proses oleh sebuah proses yg sedang berjalan (fork())
  • User meminta untuk membuat proses yg baru
  • Inisialisasi batch job

PROCESS

Proses disebut juga task, merupakan eksekusi dari sebuah program , dapat dilacak karena ada daftar urutan instruksi yg sudah dieksekusi.


SUSPENDED PROCESSES

Prosesor lebih cepat dibanding dengan I/O jadi semua proses mungkin menunggu untuk masuk ke I/O, memindahkan proses ke disk untuk membebaskan memori. Dalam suspended processes ada 2 jenis state :
  1. Blocked, Suspend
  2. Ready, Suspend

PROCESS TABLE

Tabel proses ini adalah tempat proses itu diletakka. Atribut yg penting yg digunakan saat tahun lalu :
  • Process ID
  • Process state
  • Location in memory

PROCESS LOCATION

Proses berisi kumpulan program yg akan dieksekusi, dapat berupa :
  1. Control and status register
  2. Processor state information
  3. Process control information

MODES of EXECUTION

Mode-mode untuk eksekusi dibagai menjadi 2 :
  1. User mode
  2. System node, control mode, atau kernel mode

PROCESS TERMINATION

Penyebab-penyebab terjadinya process termination :

  • Normal exit (voluntary)
  • Error exit (voluntary)
  • Fatal error (involuntary)
  • Killed by another process (involuntary)

SYSTEM()

System digunakan untuk mengeksekusi perintah dalam sebuah program


FORK()

Ketika suatu program memanggil fungsi fork() maka program tersebut akan menjalan proses duplikasi yg disebut pembuata proses child.


THREAD

Thread memiliki state dalam eksekusi (contoh : running,ready,dll ), mempunyai sebuah stack/tempat penyimpanan, bisa mengakses memori (primary dan secondary) dan sumber data untuk proses tersebut. Thread juga mengijinkan banyak eksekusi yg dilakukan secara sekaligus dalam suatu proses yg sama. Lightweight process adalah thread yg mempunyai beberapa properti dalam suatu proses. Sedangkan multithreading adalah melakukan banyak eksekusi pada thread dalam proses tersebut.


Kelebihan thread :
  • membutuhkan waktu yg relatif cepat untuk membuat suatu thread
  • mengurangi waktu untuk mengakhiri thread 
  • mengurangi waktu untuk bertukar informasi 
  • antar thread bisa langsung komunikasi dan tidak akan mengganggu kinerja dari kernel

USER SPACE

Kelebihan : 
  1. mengijinkan setiap proses untuk melakukan penjadwalannya diri sendiri
  2. performa
Kekurangan :
  1. thread dapat terblock ketika proses yg lain juga terblock
  2. thread yg satu saling meggantung proses

KERNEL SPACE

Kelebihan : tidak membutuhkan sebuah pemanggilan nonblocking system
Kekurangan  : biaya untuk membuat dan mengakhiri thread akan semakin meningkat


POP-UP THREAD

Pop-up thread adalah thread yg tiba-tiba muncul. Pembuatan suatu dengan logo ketika suatu pesan telah diterima : antara sebelum makan nanti ganti


BEHAVIOUR of PROCESS

Ada 2 kebiasaan dari proses :

  1. Process-bounded
  2. I/O bound


CPU SCHEDULER()

CPU Scheduler berfungsi untuk menampilkan proses-proses didalam sebuah memori yg sudah siap untuk dieksekusi, dan dialokasikan ke dalam CPU. CPU scheduling mempunyai 4 keputusan :

  1. berubah dari running ke waiting state
  2. berubah dari running ke ready state
  3. berubah dari waiting ke ready state
  4. terminate/mengakhiri

DISPATCHER

Dispatcher memberikan pengaturan tentang CPU untuk memproses yg terpilih oleh scheduler jangka pendek. Dispatcher melibatkan :
  • perubahan konteks
  • perubahan ke mode user
  • melompat ke lokasi yg salah dalam program user
Dispatcher latency adalah waktu yg dibutuhkan oleh dispatcher untuk menyelesaikan 1 proses dan memulai proses yg lainnya.

Kriteria scheduling :
  • CPU utilization, untuk menjaga agar CPU tetap dalam keadaan sibuk/bekerja
  • Throughput, jumlah dari proses yg eksekusinya telah selesai per satuan waktu
  • Turnaround time, jumlah waktu untuk mengeksekusi proses tertentu
  • Waiting time, jumlah waktu tunggu yg digunakan oleh proses untuk berada dalam antrian ready
  • Response time, jumlah waktu ketika suatu pekerjaan direquest
Optimization criteria :
  1. Max CPU utilization
  2. Max throughput
  3. Min turnaround time
  4. Min waiting time
  5. Min response time

GOAL OF SCHEDULING
  1. All system
    - fairness
    - policy enforcement
    - balance
  2. Batch system
    - throughput
    - turn around time
    - CPU utilization
  3. Interactive system
    - Response time
    - Proportionallity
  4. Real time system
    - meeting deadlines
    - predictability


BATCH SCHEDULING ALGORITHM

Ada beberapa metode dalam scheduling :
  1. First-Come First-Serve
    Proses diassign ke dalam CPU secara urut. Kemudahan menggunakan algoritma ini adalah mudah dimengerti dan mudah untuk di buat programnya. Sedangkan kesulitannya adalah tugas yg kecil/sedikit akan menunggu telalu lama jika mengantri dibelakang tugas yg besar.
  2. Shortest Job First - Non Preemptive
    Ketika CPU diberikan suatu proses yg tidak bisa di interupsi sampai CPU burst-nya selesai.
  3. Shortest Job First - Preemptive
    Ketika CPU diberikan suatu proses yg bisa di interupsi sebelum CPU burst-nya selesai.
  4. Interactive Scheduling Algorithm
    - Round-robin scheduling
    - Priority scheduling
    - Multiple queues
    - Shortest process next
    - Guaranteed scheduling
    - Lottery scheduling
    - Fair-share scheduling

Semoga bermanfaat ! ^^

Jumat, 08 Mei 2015

PROCESS DESCRIPTION AND CONTROL

Proses adalah suatu program yg dieksekusi, bisa juga disebut suatu instance dari suatu program yg berjalan dalam sebuah komputer. Proses adalah entiti yg terdiri dari elemen-elemen dan sekumpulan data yg berkaitan dengan code tsb. Selama program dieksekusi, proses dapat diidentifikasi oleh beberapa elemen :
  • Identifier : suatu penanda unik yg berkaitan dengan prosesnya
  • State : jika prosesnya sedang dieksekusi maka sedang berada di running state
  • Priority : level prioritas untuk proses yg lain 
  • Program Counter : alamat dari instruksi selanjutnya dalam suatu program yg akan dieksekusi
  • Memory pointers : pointer yg ada dalam code program dan data yg berkaitan dengan proses ini
  • Context data : data yg terdaftar pada prosesor selama proses dieksekusi
  • I/O status information : perangkat I/O yg diisikan ke proses, daftar file yg digunakan oleh proses dan lainnya
  • Accounting information : jumlah dari waktu prosesor dan waktu clock, waktu limit, dan lainnya
Informasi yg ada pada list diatas tersimpan dalam data struktur yg biasa disebut dengan Process Control Block

Program adalah instruksi untuk melakukan proses. Sedangkan proses adalah eksekusi dari suatu program.


A TWO-STATE PROCESS MODEL

Prinsip dasar Operating system adalah mengontrol proses eksekusi dari suatu proses, termasuk mendefinisikan pola eksekusi dan mengalokasikan sumber data kepada suatu proses.
Seperti yg dapat dilihat di gambar diatas, ada 2 proses model. Yg (a) adalah State Transition Diagram yg mempunyai 2 state, yaitu Running dan not Running. Ketika OS membuat suatu proses maka process control block juga akan diproses dan akan diproses sistem. Sedangkan yg gambar (b) adalah Queueing diagram yg menyarankan sebuah struktur. Queue mungkin terdiri dari beberapa linked-list dari data block, yg setiap didalamnya mewakili 1 proses .


PROCESS CREATION

Ketika suatu proses sedang dikelola, OS membangun suatu data struktur yg digunakan untuk mengatur proses tersebut dan mengalokasikan address space pada main memory.
Alasan mengapa dibuatnya proses adalah :

Proses ketika OS membuat suatu proses dengan permintaan-permintaan eksplisit disebut process spawning. Ketika ada 2 proses yg saling spawning, proses yg terlebih dahulu dibuat adalah parent process, sedangkan satunya adalah child process.


PROCESS TERMINATION

Semua sistem komputer harus menyediakan suatu indikasi untuk penyelesaian suatu proses. Jumlah error dan kondisi-kondisi error dapat menyebabkan proses terminasi (penutupan program secara otomatis). Alasan mengapa proses termination bisa terjadi :


FIVE-STATE MODEL

Jika semua proses sudah siap untuk dieksekusi, maka peraturan queueing dibuat. Ada 5 state yg ada di diagram ini :

  1. Running, proses sedang dieksekusi
  2. Ready, sebuah proses disiapkan untuk dieksekusi ketika diberikan kesempatan
  3. Blocked/Waiting, suatu proses tidak dapat dieksekusi ketika ada beberapa event terjadi
  4. New, sebuah proses yg baru saja dibuat tapi belum dapat dieksekusi oleh operating system
  5. Exit, sebuah proses yg telah dilepas/dikosongkan memorinya oleh operating system
Dari gambar diatas ada beberapa state transisi yg terjadi :

  • Null -> New
    Proses baru yg dibuat untuk dieksekusi oleh sebuah program
  • New -> Ready
    OS akan berubah state ketika proses tersebut disiapkan untuk melakukan proses yg bersifat tambahan
  • Ready -> Running
    Ketika proses sedang dijalankan, OS memilih salah 1 proses yg sedang berada dalam state Ready
  • Running -> Exit
    Proses yg baru saja diakhiri oleh OS jika proses tersebut diindikasikan telah selesai
  • Running -> Ready
    Proses yg sedang berjalan telah mencapai waktu maksimum untuk diinterupsi
  • Running -> Blocked
    Proses dipindahkan ke dalam Blocked State jika proses tersebut harus menunggu
  • Blocked -> Ready
    Sebuah proses dalam Blocked State dipindahkan kembali ke Ready State ketika waktunyas sudah siap
  • Ready -> Exit
    Transisinya tidak kelihatan pada diagram diatas, tapi pada beberapa sistem, parent process akan mengakhiri proses child
  • Blocked -> Exit
    Komentar tentang item yg sudah diterapkan
Fungsi-fungsi dalam Operating System Kernel
Proses management : untuk memanage proses
Memory management : untuk memanage memori agar lebih hemat dan efisien
I/O management : untuk memanage hubungan antara input dan output


EXECUTION OF OPERATING SYSTEM

  • Nonprocess Kernel

    Pada gambar (a) kebanyakan Operating system yg lama digunakan untuk mengeksekusi kernel dari OS diluar semua proses. Pada gambar (b) OS merupakan kumpulan panggilan user untuk melakukan fungsi-fungsi, mengeksekusi didalam proses milik user. Pada gambar (c) adalah megimplementasikan OS sebagai kumpulan dari proses sistem.
Semoga bermanfaat ! ^^

FILE SYSTEM

File system digunakan untuk mengatur file dan mengatur waktu akses pada suatu data. Suatu file system berfokus pada pengelolaan penyimpanan secondary. Didalam file system berhubungan dengan meta data. Yg termasuk dalam meta data adalah : 
  1. Informasi owner dan group
  2. Waktu
  3. Perijinan

UNIX FILE SYSTEM

File system mendefinisikan suatu hierarki logikal untuk merepresentasikan sebuah objek yg dibuat oleh user, dapat juga digunakan untuk merepresentasikan namespace.
Di dalam UNIX file system, ada 2 cara untuk mengidentifikasi file :

  • Absolute path, adalah path yg langsung menunjuk ke alamat aslinya.
  • Relative path, adalah path yg tidak secara langsung menunjuk ke alamat aslinya (menggunakan alamat reference).
Tipe-tipe file dasar :
  1. Regular file
  2. Direktori
    Direktori menyediakan suatu gambaran antara nama file dengan file itu sendiri
  3. Links
  4. Special files
    Special files tidak mengandung data sama sekali didalamnya, tetapi mereka tetap digunakan untuk menggambarkan perangkat fisik/service ke file system. Fungsinya kalau ada file yg penting di masukkan ke dalam special file maka tidak dapat terserang virus dan tidak dapat terhapus. Ada 2 macam special file : block special dan character special.
  5. Named pipes
    Named pipes adalah sebuah tipe yg special untuk special file, digunakan untuk menunjuk ke blok dalam suatu disk dan untuk menunjukkna struktur dalam suatu memori.
Perbedaan Softlink dan Hardlink :
  • Hardlink
    Hardlink adalah sebuah link antara 2 file yg berada hanya pada tempat yg sama
  • Softlink
    Softlink adalah sebuah link antara 2 file yg berada di tempat yg sama maupun yg berbeda tempat sekalipun


OPERASI DALAM FILE SYSTEM

Ada 11 operasi yg bisa dilakukan dalam file system :
  1. Create
  2. Delete
  3. Open
  4. Close
  5. Read
  6. Write
  7. Append
  8. Seek
  9. Get Attribute
  10. Set Attribute
  11. Rename
Fungsi chmod dalam file system adalah untuk mengeset hak akses suatu file/direktori yg dispesifikan sebagai pathname, harus owner yg merubah mode.

Fungsi yg bisa dilakukan di dalam direktori :
  • Create
  • Delete
  • Opendir
  • Closedir
  • Readdir
  • Rename
  • Link
  • Unlink
Semoga bermanfaat ! ^^

SISTEM OPERASI

Sistem operasi adalah sebuah program yg mengontrol proses eksekusi dari program aplikasi dan bertindak sebagai interface antara aplikasi/software dan hardware. Operating system punya 3 tujuan :
- Convenience : operating system dibuat agar mempermudah pemakaian komputer
- Efficiency : operating system mengijinkan sumber-sumber sistem komputer untuk digunakan secara efisien, power consumption berkurang
- Ability to evolve : operating system dibuat untuk membangun / mengembangkan service dalam jangka panjang


OPERATING SYSTEM SEBAGAI USER INTERFACE

Operating system mempunyai service di beberapa bagian :
Program development, menyediakan berbagai macam fasilitas dan service untuk membantu programmer dalam membuat suatu program
> Program execution, jumlah langkah yg dibutuhkan untuk melakukan eksekusi sebuah program
> Access to I/O devices, setiap I/O membutuhkan instruksi / sinyal pengaturan untuk beroperasi
> Controlled access to files, operating system harus merefleksikan informasi-informasi detail tidak hanya untuk I/O device tapi juga struktur data yg ada dalam memori
> System access, operating system dapat mengakses sistem secara keseluruhan dan untuk sumber-sumber informasi tertentu
> Error detection and response, berbagai macam tipe error yg dapat terjadi pada sebuah komputer dan operating system harus meresponnya dengan memberikan solusi error
> Accounting, operating system akan mengumpulkan penggunaan statistik untuk berbagai macam sumber dan memonitoring performanya
> Instruction set architecture(ISA), mendefinisikan instruksi dalam bahasa-bahasa tertentu yg bisa diikuti oleh komputer
> Application binary interface(ABI), mendefinisikan standart untuk portabilitas biner dalam program
> Application programming interface(API), membiarkan program untuk mengakses sumber-sumber informasi dan service yg tersedia dalam sistem



OPERATING SYSTEM SEBAGAI PENGOLAH SUMBER INFORMASI

Komputer adalah kumpulan sumber-sumber informasi untuk penyimpanan dan pemrosesan data dan untuk mengontrol berbagai fungsi, operating system dapat mengolah sumber informasi ini.

Pada gambar diatas, sumber utama diolah oleh operating system. Bagian dari operating system adalah memori, didalam memori ada yg namanya kernel/nucleus yg berisi fungsi-fungsi yg paling sering digunakan. Operating system software itu berguna untuk mengatur semua sistem komputer.
Operating system akan terus berkembang karena :
  • Pembaharuan hardware dan tipe-tipe baru hardware
  • Layanan/service baru
  • Pembenahan dalam OS itu sendiri


EVOLUSI PADA OPERATING SYSTEM
  1. Serial processing
    Komputer ini berjalan pada konsole. Ada 2 masalah pada dalam sistem ini :
    - Scheduling
    - Setup time
  2. Simple Batch Systems
    Ide yg digunakan adalah monitor. Monitor adalah software mengontrol program-program yg berjalan, batch job nya secara bersamaan. Ada juga Job Control Language (JCL) yg merupakan bahasa yg digunakan untuk menyediakan instruksi-instruksi ke monitor. Fitur-fitur yg hardware harus miliki :
    - Memory protection
    - Timer
    - Privileged instruction
    - Interrupts
  3. Multiprogrammed Batch System

    Uniprogramming adalah single program yg harus menyelesaikan 1 program dulu baru bisa melanjutkan program selanjutnya (hanya 1 program yg bisa dijalankan per satuan waktu). Sedangkan untuk yg multiprogramming with 2 program adalah program A berjalan terlebih dahulu lalu program B akan dijalankan jika program A sedang dalam proses waiting (bisa banyak proses dalam satuan waktu). Perbedaan uniprogramming dan multiprogramming ditunjukkan dalam tabel dibawah ini.
  4. Timesharing Systems
    Sistem ini menggunakan multiprogramming untuk menghandel berbagai pekerjaan interaktif. Waktu prosesor dibagi berdasarkan jumlah user yg mengakses.


PENCAPAIAN UTAMA

Operating system adalah software yg dibangun paling kompleks karena digunakan untuk mencapai tujuan-tujuan awalnya. Ada 4 yg harus diperhatikan :
  • Proses
    Proses adalah program yg dieksekusi atau merupakan entity yg diisikan dan dieksekusi dalam suatu prosesor. Yg dapat menyebabkan error dalam suatu proses adalah :
    - Proses sinkronisasi yg salah
    - Kegagalan mutual exclusion
    - Program aplikasi yg tak terdefinisi
    - Deadlock
    Suatu proses terdiri dari 3 komponen : sebuah program yg dapat dijalankan, sebuah data yg dibutuhkan oleh program, dan konteks eksekusi dari suatu program.
  • Memory Management
    Untuk memuaskan kebutuhan-kebutuhan Operating System, ada 5 prinsip yg harus dimiliki memory management :
    - Pengisolasian proses
    - Alokasi dan pengolahan secara otomatis
    - Mendukung modular programming
    - Proteksi dan hak akses
    - Penyimpanan jangka panjang
    Untuk memenuhi kebutuhan diatas, OS menggunakan fasilitas virtual memori dan sistem file. Virtual memory adalah suatu fasilitas yg mengijinkan program untuk mengalamatkan memori dari sebuah sudut pandang tertentu.
  • Proteksi Informasi dan Pengamanan
    Ada 4 kategori yg harus dimiliki OS :
    - Availability : berhubungan dengan sistem terhadap adanya interupsi
    - Confidentiality : menjamin user yg tidak bersangkutan untuk tidak membaca data yg tidak diautorisasi
    - Data Integrity : proteksi pada sebuah data dari pengubahan yg dilakukan oleh pihak yg tidak bertanggung jawab
    - Authenticity : berhubungan dengan verifikasi identitas dari user dan tingkat validitas suatu pesan
  • Penjadwalan dan Pengolahan Sumber Informasi
    Kunci yg harus dimiliki oleh OS adalah untuk bisa mengolah sumber-sumber informasi yg ada dan menjadwalkannya agar digunakan oleh proses yg sedang aktif. Ada 3 faktor yg harus diperhatikan yaitu fairness, differential responsiveness, dan efficiency.


SYMMETRIC MULTIPROCESSOR

Dalam symmetric multiprocessor, kernel dapat mengeksekusi pada segala prosesor. Kernel juga dapat dibangun sebagai suatu proses yg banyak/thread yg banyak serta mengijinkannya untuk dieksekusi secara paralel. Symmetric multiprocessor OS mengatur prosesor dan sumber informasi lainnya, sehingga user seolah-olah melihat desain sistem yg sama yg disebut dengan multiprogramming uniprocessor system. Fungsi-fungsi yg harus dimiliki untuk membuat multiprogramming system :
  1. Simultaneous concurrent processes/threads
  2. Scheduling
  3. Synchronization
  4. Memory management
  5. Reliability and fault tolerance

MICROSOFT WINDOWS OVERVIEW

Komponen kernel-mode dalam Windows :

  • Executive : berisi inti dari layanan OS, seperti manajemen memori, manajemen proses, pengamanan, serta I/O.
  • Kernel : mengontrol eksekusi daripada sebuah prosesor, kernel mengelola penjadwalan thread, proses switching, serta exception and interrupt handling.
  • Hardware abstraction layer (HAL) : penggambaran antara perintah generic hardware dan responnya dengan keunikan platform-platform tertentu.
  • Device driver : library dinamik yg memperluas fungsi dari executive.
  • Windowing and graphic system : mengimplementasikan fungsi-fungsi GUI.


LINUX OVERVIEW

Dasar komponen kernel dalam Linux :
  • Signal : kernel menggunakan sinyal untuk memanggil suatu proses
  • System calls : digunakan saat sebuah permintaan proses untuk sebuah service kernel
  • Processes and scheduler : menguji, mengelola dan menjadwalkan suatu proses
  • Virtual memory : mengalokasikan dan mengelola alamat virtual dari suatu proses
  • File system : menyediakan global namespace untuk file, direktori dan file lain yg bersangkutan serta menyediakan fungsi file sistem
  • Network protocol : menyediakan socket interface untuk TCP/IP protocol
  • Character device driver : mengelola perangkat yg dibutuhkan kernel untuk mengirim dan menerima data 1 byte tiap satuan waktu
  • Block device driver : mengelola perangkat untuk membaca dan menulis data dalam suatu blok
  • Network device driver : mengelola network interface dan jalur komunikasi antar jaringan
  • Traps and fault : menghandel trap dan kegagalan yg ditemukan oleh prosesor
  • Physical memory : mengelola pool dari real memory dan mengalokasikannya untuk virtual memory
  • Interrupt : menghandel interupsi dari perangkat keras/hardware



Semoga bermanfaat ! ^^
www.skyconnectiva.com
www.binus.ac.id

SISTEM KOMPUTER

Sebuah operating system (OS) memanfaatkan 1 atau lebih prosesor untuk menyediakan sekumpulan service kepada user. OS juga mengolah memory secondary dan perangkat I/O (input/output).
  •       Elemen Dasar
Sebuah komputer terdiri dari :
- Prosesor : mengontrol operasi dari sebuah komputer dan menampilkan fungsi pemrosesan data. Ketika hanya terdapat 1 buah prosesor, itu sering disebut dengan Central Processing Unit (CPU).
- Main memory : menyimpan data dan program. Memori ini biasanya bersifat volatile, yg berarti jika komputer ini mati, isi dari memori tersebut juga akan hilang. Main memory disebut juga real memory / primary memory.
- I/O Modules : jalur untuk memindahkan data dari dan ke sesama komputer dalam lingkup jaringannya.
- System Bus : menyediakan jalur komunikasi antara prosesor, main memory, dan I/O modules.

  •       Instruction Execution
Sebuah program yg dieksekusi oleh sebuah prosesor terdiri dari sekumpulan instruksi yg disimpan didalam memori. Proses instruksi terdiri dari 2 langkah :
-       Proses prosesor membaca instruksi dari memori (fetch)
-       Proses mengeksekusi setiap instruksinya (execute)

Pengeksekusian program terdiri dari proses fetch instruksi yg diulang dan proses execute intruksi. Insctruction cycle adalah sebuah pemrosesan yg dibutuhkan untuk single instruction. Instruction cycle dibagi jadi 2 tipe yaitu pipelining dan superscalar. Perbedaannya dapat dilihat di gambar bawah ini, yg (a) adalah pipelining, yg hanya mempunyai 1 fungsi fetch dan 1 fungsi decode beserta 1 fungsi execute. Sedangkan (b) adalah superscalar, yg mengumpulkan fungsi-fungsi fetch dulu lalu didecode, semua hasil fetch tadi disimpan didalam buffer yg sama, lalu baru diexecute satu persatu.

Prosesor berfungsi untuk menginterpretasikan instruksi dan menampilkan aksi yg dibutuhkan. Aksi – aksi tersebut dibagi menjadi 4 :
-   Processor-memory : data memungkinkan untuk dikirim dari prosesor ke memori dan sebaliknya.
-   Processor-I/O : data memungkinkan untuk dikirim dari prosesor ke I/O module dan sebaliknya.
-  Data processing : sebuah prosesor mungkin menampilkan beberapa perhitungan aritmatika dan operasi logika pada data.
-    Control : sebuah instruksi mungkin merincikan sebuah alur untuk mengubah proses eksekusi.

  •       Interupsi
Semua komputer menyediakan suatu mekanisme dengan semua modul-modul yg terhubung (contohnya : I/O, memori) mungkin bisa menginterupsi alur kinerja dari sebuah prosesor untuk mengeksekusi instruksi selama proses I/O dalam proses. Program I/O terdiri dari 3 bagian :
-       Urutan instruksi, untuk menyiapkan operasi-operasi I/O
-       Perintah-perintah I/O, untuk menjalankan fungsi-fungsi yg diminta
-       Urutan instruksi, untuk menyelesaikan operasi-operasi

Tipe-tipe interupsi ada 4 :
Ø  Program : arithmetic overflow, division by zero, execute illegal instruction, dan reference outside user’s memory space.
Ø  Timer
Ø  I/O
Ø  Hardware failure
  •       Hierarki Memori
Karakteristik memori :
-       Namely
-       Kapasitas
-       Waktu akses
-       Biaya

Variasi dari teknologi digunakan untuk mengimplementasikan sistem memori dan melewati spectrum-spektrum teknologi, masing-masing fungsinya menyebabkan :
Ø  Semakin cepat waktu akses, semakin mahal juga biaya per bitnya
Ø  Semakin besar kapasitasnya, semakin kecil biaya per bitnya
Ø  Semakin besar kapasitasnya, semakin lambat kecepatan aksesnya

Untuk mengatasi masalah diatas, dibutuhkan hierarki memori, seperti : mengurangi biaya per bitnya, meningkatkan kapasitas, meningkatkan waktu akses, dan mengurangi frekuensi waktu untuk mengakses memori dari prosesor.
  •          Cache Memory
Cache memory dimaksudkan untuk menyediakan pendekatan waktu akses memori saat penyediaan alokasi memori dan waktu yg mendukung ukuran memori yg besar dan juga mempunyai harga yg relative murah.

Cache, jika letaknya lebih dekat ke CPU maka lebih cepat juga untuk memproses instruksi / data. Cache mempunyai sifat :
Ø  Tidak kelihatan di dalam operating system
Ø  Meningkatkan kecepatan membaca dalam memori
Ø  Membuat kecepatan prosesor lebih cepat daripada kecepatan memori

Semoga bermanfaat ! ^^
www.skyconnectiva.com
www.binus.ac.id