Fungsi utama komputer adalah untuk mengeksekusi instruksi. Bagaimanakah suatu instruksi dieksekusi?
Eksekusi dan penyimpanan
Sebuah program komputer biasanya akan disimpan terlebih dahulu dalam memori utama (RAM) komputer sebelum dijalankan yang biasanya dilakukan oleh sistem operasi. Prosesor kemudian akan mengeksekusi program tersebut, instruksi demi instruksi sampai program tersebut diterminasi. Sebuah program yang tengah dieksekusi oleh prosesor dinamakan sebagai proses. Terminasi ataupun penghentian eksekusi sebuah program biasanya terjadi baik karena permintaan dari pengguna, interupsi pengguna, kesalahan atas program itu sendiri, ataupun kesalahan atas perangkat keras yang digunakan.Beberapa program komputer tertentu dipancangkan langsung pada perangkat kerasnya sebagai program yang dipanggil untuk kebutuhan identifikasi serta inisialisasi atas berbagai aspek untuk memastikan perangkat keras tersebut berfungsi. Saat proses inisialisasi tersebut, program terpancang tersebut akan dipanggil oleh sistem operasi, program terpancang tersebut kemudian akan menjembatani penggunaan perangkat keras tersebut sehingga sistem operasi dapat menggunakannya dengan baik.
Program komputer awalnya diinput secara manual ke prosesor utama dengan memanfaatkan sejumlah pengalih sebagai representasi atas instruksi yang atas status konfigurasi on/off. Setelah menetapkan konfigurasi tersebut, tombol eksekusi akan ditekan. Proses ini kemudian dilakukan secara iteratif. Program komputer dalam sejarahnya pernah juga ditulis melalui paper tape' atau punched cards. Setelah dimasukkan dan alamat awal eksekusi telah dimasukkan, tombol eksekusi akan ditekan.
Eksekusi simultan
Umumnya sistem operasi yang ada saat ini sudah mendukung pemanfaatan multitasking yang memungkinkan beberapa program komputer dijalankan pada saat yang bersamaan di sebuah komputer. Untuk dapat menjalankan beberapa program tersebut pada saat yang bersamaan, sistem operasi memanfaatkan mekanisme penjadualan proses yang merupakan suatu mekanisme yang akan mengatur pengalihan prosesor dalam melakukan pemrosesan sehingga beberapa program komputer tersebut dapat berinteraksi dengan pengguna saat dijalankan. Di sisi perangkat keras yang digunakan, prosesor modern saat ini umumnya telah mendukung beberapa core prosesor yang dipancangkan sebagai sebuah prosesor yang memungkinkannya menjalankan beberapa program sekaligus.Sebuah program komputer dapat melakukan kalkulasi secara simultan pada beberapa jenis operasi di saat yang bersamaan dengan memanfaatkan thread atau sebagai proses terpisah. Umumnya prosesor yang ada saat ini sudah mendukung arsitektur multithreading yang teroptimasi untuk menjalankan beberapa thread secara efisien.
http://id.wikipedia.org/wiki/Program_komputer
Struktur Sistem Operasi
Komponen-komponen Sistem
Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut:Managemen Proses
Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses seperti:
Managemen Memori Utama
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O. Memori utama termasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilang begitu sistem dimatikan.Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen memori seperti:
Managemen Secondary-Storage
Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan secondary-storage yang bersifat permanen dan mampu menampung banyak data. Contoh dari secondary-storage adalah harddisk, disket, dll.Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan disk-management seperti: free-space management, alokasi penyimpanan, penjadualan disk.
Managemen Sistem I/O
Sering disebut device manager. Menyediakan "device driver" yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada hard-disk, CD-ROM dan floppy disk.Komponen Sistem Operasi untuk sistem I/O:
Managemen Berkas
Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi bertanggung-jawab:- Pembuatan dan penghapusan berkas.
- Pembuatan dan penghapusan direktori.
- Mendukung manipulasi berkas dan direktori.
- Memetakan berkas ke secondary storage.
- Mem-backup berkas ke media penyimpanan yang permanen (non-volatile).
Sistem Proteksi
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:- membedakan antara penggunaan yang sudah diberi izin dan yang belum.
- specify the controls to be imposed.
- provide a means of enforcement.
Jaringan
Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan:Command-Interpreter System
Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter, dan UNIX shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.http://ikc.unimal.ac.id/umum/ibam/ibam-os-html/x395.html
Jelaskan pengertian:
Batch system
merupakan suatu cara untuk menghindari waktu nganggur CPU yang cukup lama, maka dikembangkan suatu teknik pengurutan kerja job secara otomatis. Teknik ini mampu mentransfer kontrol secara otomatis dari suatu job ke-job brikutnya. Inilah bentuk operating system yang pertama kali. Gambar sebelah merupakan komputer UNIVAC yang juga menggunakan transistor.
MultiprogrammingMultiprogramming memiliki pengertian yaitu Sistem Operasi dapat
melayani banyak program yang tidak ada hubungannya antar program
satu dengan yang lain, dan program-program tersebut dapat dijalankan
sekaligus dalam satu komputer yang sama.
Pelaksanaan instruksi yang terjadi oleh Sistem Operasi adalah pada
mulanya program dimuat ke dalam memori terlebih dahulu, kemudian
program dijalankan hingga mengakses perangkat input dan output,
kemudian software akan berpindah ke pekerjaan yang lainnya begitu
pula jika ada program yang akan di jalankan lagi, dengan program
yang sebelumnya telah dijalankan masih terus berjalan.
Multitasking
Istilah Multitasking memiliki definisi banyak pekerjaan atau proses
diolah dengan menggunakan sumberdaya CPU yang sama. Dalam
komputer berprosesor tunggal, hanya satu instruksi yang dapat
bekerja dalam satu waktu sehingga CPU tersebut secara aktif
mengolah instruksi untuk satu pekerjaan tersebut. Multitasking
mengatasi masalah ini dengan menjadwalkan pekerjaan mana
yang dapat berjalan dalam satu waktu, dan kapan pekerjaan lain
yang menunggu untuk diolah dapat dikerjakan.
Sistem operasi komputer dapat mengadopsi berbagai macam
penjadwalan, yaitu:
1. Dalam sistem Multi-program, pekerjaan yang sedang diolah
terus berjalan hingga membutuhkan suatu operasi yang memerlukan
interaksi dari luar. Multi-program dipakai untuk memaksimalkan
penggunaan CPU.
2. Dalam sistem Time-sharing, pekerjaan yang sedang diolah
diharuskan melepaskan kerja CPU. Sistem time-sharing didesain
untuk memperbolehkan beberapa program seolah diproses
secara bersamaan.
3. Dalam sistem Real-time, beberapa program yang sedang
menunggu dijamin untuk mendapatkan pengolahan dari CPU
ketika interaksi luar terjadi.
Time sharing
Time Sharing merupakan variasi dari Multiprogramming, dimana
setiap pemakai memiliki satu terminal online dengan pemroses
hanya memberi layanan pada pemakai yang aktif secara bergantian
dengan cepat. Pemakai akan merasa dilayani terus menerus,
padahal sebenarnya digilir waktu yang cukup singkat.
Real Time Systems
Sistem waktu nyata ialah suatu sistem yang mengharuskan suatu komputasi selesai dalam jangka waktu tertentu. Jika komputasi ternyata belum selesai maka sistem dianggap gagal dalam melakukan tugasnya. Sistem waktu nyata memiliki dua model dalam pelaksanaannya: hard real time system dan soft real time system.
Hard real time system menjamin suatu proses yang paling penting dalam sistem akan selesai dalam jangka waktu yang valid. Jaminan waktu yang ketat ini berdampak pada operasi dan perangkat keras (hardware) yang mendukung sistem. Operasi M/K dalam sistem, seperti akses data ke storage, harus selesai dalam jangka waktu tertentu. Dari segi (hardware), memori jangka pendek (short-term memory) atau read-only memory (ROM) menggantikan hard-disk sebagai tempat penyimpanan data. Kedua jenis memori ini dapat mempertahankan data mereka tanpa suplai energi. Ketatnya aturan waktu dan keterbatasan hardware dalam sistem ini membuat ia sulit untuk dikombinasikan dengan sistem lain, seperti sistim multiprosesor dengan sistem time-sharing.
Soft real time system tidak memberlakukan aturan waktu seketat hard real time system. Namun, sistem ini menjamin bahwa suatu proses terpenting selalu mendapat prioritas tertinggi untuk diselesaikan diantara proses-proses lainnya. Sama halnya dengan hard real time system, berbagai operasi dalam sistem tetap harus ada batas waktu maksimum.
Aplikasi sistem waktu nyata banyak digunakan dalam bidang penelitian ilmiah, sistem pencitraan medis, sistem kontrol industri, dan industri peralatan rumah tangga. Dalam bidang pencitraan medis, sistem kontrol industri, dan industri peralatan rumah tangga, model waktu nyata yang banyak digunakan ialah model hard real time system. Sedangkan dalam bidang penelitian ilmiah dan bidang lain yang sejenis digunakan model soft real time system.
Menurut Morgan [MORG92], terdapat sekurangnya lima karakteristik dari sebuah sistem waktu nyata
• deterministik, dapat ditebak berapa waktu yang dipergunakan untuk mengeksekusi operasi.
• responsif, kapan secara pasti eksekusi dimulai serta diakhiri.
• kendali pengguna, dengan menyediakan pilihan lebih banyak daripada sistem operasi biasa.
• kehandalan, sehingga dapat menanggulangi masalah-masalah pengecualian dengan derajat tertentu.
• penanganan kegagalan, agar sistem tidak langsung crash.
System call menyediakan interface antara program (program pengguna yang berjalan) dan bagian OS. System call menjadi jembatan antara proses dan sistem operasi. System call ditulis dalam bahasa assembly atau bahasa tingkat tinggi yang dapat mengendalikan mesin (C). Contoh: UNIX menyediakan system call: read, write => operasi I/O untuk berkas.
Sering pengguna program harus memberikan data (parameter) ke OS yang akan dipanggil. Contoh pada UNIX: read(buffer, max_size, file_id);
Tiga cara memberikan parameter dari program ke sistem operasi:
- Melalui registers (sumber daya di CPU).
- Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register.
- Push (store) melalui "stack" pada memori dan OS mengambilnya melalui pop pada stack tsb.
Perbedaan thread dan proses
Proses bisa disebut juga sebagai suatu urutan atau langkah dalam melakukan sesuatu entah itu dalam suatu program atau yang lainnya dan yang menghasilkan sesuatu. Keberhasilan suatu hal tergantung bagaimana proses dilakukan yaitu mulai dari persiapan, penerapan, hingga akhirnya penyelesaian.
Sedangkan thread sendiri merupakan bagian dari suatu proses atau sering diistilahkan dengan lightweight process. Thread tidak memiliki alokasi resource sendiri. Di dalam proses bisa terdapat beberapa thread di mana masing-masing thread memiliki execution state sendiri. Dari segi performance pun, thread memerlukan waktu yang sedikit dalam pembentukannya, membutuhkan waktu yang lebih sedikit untuk mengakhiri thread dan membutuhkan waktu yang lebih sedikit untuk melakukan switching antar thread.
http://tmaj0r.blogspot.com/search/label/SisTem%20OpErasI
Diketahui
Process Arrival Time Burst Time
P1 0.0ms 5ms
P2 2.0ms 10ms
P3 4.0ms 3ms
P4 5.0ms 7ms
Hitung rata-rata waktu tunggu proses jika menggunakan algoritma shortest-job first preemptive
Rata-ratanya = (0+5+15+3)/4 = 5,75ms