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.