Pertemuan 7
Evolusi Sistem Operasi
•
OS sederhana
•
Program tunggal, satu user, satu mesin komputer (CPU) : komputer
generasi pertama, awal mesin PCs, controller: lift, Playstation etc.
•
No problems, no bad people, no bad programs => interaksi
sederhana
Masalah OS Sederhana
•
Race Condition adalah situasi di mana beberapa proses mengakses
dan memanipulasi data bersama pada saat besamaan. Untuk
mencegah race condition, proses-proses yang berjalan besamaan
harus disinkronisasi.
•
Masalah Critical Section (masalah dalam pengaksesan sumber daya
yang sama). Kesulitan yang terjadi karena proses 2 mulai
solusi
• Solusi “critical section problem” harus memenuhi:
1. Mutual Exclusion: Jika proses Pi sedang “eksekusi” pada bagian “critical section” (dari proses Pi) maka tidak ada proses proses lain dapat
“eksekusi” pada bagian critical section dari proses-proses tersebut.
2. Progress: Jika tidak ada proses sedang eksekusi pada critical section-nya dan jika terdapat lebih dari satu proses lain yang ingin masuk ke critical section, maka pemilihan siapa yang berhak masuk ke critical section tidak dapat ditunda tanpa terbatas.
3. Bounded Waiting: Terdapat batasan berapa lama suatu proses harus menunggu giliran untuk mengakses “critical section” – jika seandainya proses lain yang diberikan hak akses ke critical section.
• Menjamin proses dapat mengakses ke “critical section” (tidak mengalami starvation: proses se-olah berhenti
menunggu request akses ke critical section diperbolehkan). • Tidak ada asumsi mengenai kecepatan eksekusi proses
B
B
B
Batch
atch
atch
atch System
System
System
System
Job yang di kerjakan dalam satu rangkaian, lalu dikerjakan secara berurutan.
Simple Batch System
Sistem mainframe
•
Perangkat input: card reader,tape drive
•
Perangkat output: line printer, tape drive, dan card punch
•
User: menyiapkan job (bentuk card punch)
program, data dan
informasi control (control card), dikirim ke operator computer.
Dalam hitungan menit, jam, atau hari output ditampilkan.
Kontrol card megatur batch job.
•
Automatic job sequencing
Task utama mengirim secara
otomatis control dari satu job ke job yang lain
•
Residen monitor
Program kecil bersifat residen dimemori
berisi urutan-urutan job yang akan berpindah secara otomatis
9
Multiprogrammed Batch Systems
Struktur
Struktur
Struktur
Struktur SO
SO
SO
SO
1. Proses adalah sebuah program yang
sedang dijalankan (eksekusi).
Suatu proses memerlukan resources pada saat ekesekusi: CPU time, memory, files dan I/O devices
2. Manajemen Main-Memory
•
Memori sebagai tempat penyimpanan instruksi/data dari program
• Storage yang cepat sehingga dapat mengimbangi kecepatan eksekusi instruksi CPU
• Address digunakan untuk mengakses data (shared oleh CPU dan I/O devices)
•
Umumnya main memory bersifat “volatile” – tidak permanent. Isinya
3. Manajemen Secondary-Storage
Secondary Storage: penyimpanan permanen
Kapasitas harus besar untuk menyimpan semua program dan data.
Secondary storage dapat dijadikan “backup” storage main memory supaya dapat enjalankan banyak program. Umumnya menggunakan “magnetic disks” (hard disk).
OS bertanggung jawab untuk manajemen disk:
Manajemen ruang kosong Alokasi storage
Penjadualan disk
4. Manajemen I/O System
• Sering disebut device manager
• Menyediakan “device driver” yang umum sehingga operasi I/O dapat seragam (open, read, write, close)
• Contoh: user menggunakan operasi yang sama untuk read file pada hard disk, CD-ROM dan floppy disk sama.
• Komponen OS untuk sistim I/O:
• Buffer: menampung sementarai data dari/ke I/O devices
• Spooling: melakukan scheduling pemakaian I/O sistim supaya lebih efisien (antrian dsb)
5. Manajemen File
File: kumpulan informasi yang berhubungan (sesuai dengan
tujuan pembuat file tsb).
File dapat mempunyai struktur yang bersifat hirarkis (direktori, volume dll).
OS bertanggung jawab:
Membuat dan menghapus file.
Membuat dan menghapus directory.
Dukungan primitif untuk manipulasi file dan directory. Pemetaan file ke dalam secondary storage.
Backup file ke media storage yang stabil (nonvolatile).
6. Command-Interpreter System
OS: menunggu instruksi dari user (command driven)
Program yang membaca instruksi dan mengartikan keinginan user (lebih dari sejenis).
Sangat bervariasi dari satu OS ke OS yang lain dan disesuaikan dengan tujuan, teknologi I/O devices yang ada.
System Call
•
System call:
• Menyediakan interface antara program (user program yang berjalan) dan bagian OS.
•
System call menjadi jembatan antara proses dan OS.
• System call ditulis dalam assembly language (machine specific) atau bahasa tingkat tinggi yang dapat mengendalikan mesin.
• Contoh: UNIX menyediakan system call: read, write => operasi I/O untuk file.
System Call : Passing Parameter
•
Sering user program harus memberikan data (parameter)
ke rutin OS yang akan dipanggil.
• UNIX: read(buffer, max_size, file_id);
•
Cara memberikan parameter dari program ke sistim
operasi:
• Melalui registers (resources di CPU).
• Menyimpan parameter pada data struktur (table) di memory, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register.
Tipe System Calls
1. Kontrol Proses
• Mengakhiri (end) dan membatalkan (abort)
• Mengambil (load) dan eksekusi (execute)
• Membuat dan mengakhiri proses
• Menentukan dan mengeset atribut proses
• Wait for time
• Wait event, signal event
• Mengalokasikan dan membebaskan memori
2. Manipulasi File
• Membuat dan menghapus file
• Membuka dan menutup file
• Membaca, menulis dan mereposisi file
• Menentukan dan mengeset atribut file
17
3. Managemen Device
Meminta dan membebaskan device
Membaca, menulis dan mereposisi device Menentukan dan mengeset atribut device
4. Informasi Lingkungan
Mengambil atau mengeset waktu atau tanggal Mengambil atau mengeset sistem data
Mengambil atau mengeset proses, file atau atribut-atribut device
5. Komunikasi
Membuat dan menghapus sambungan komunikasi Mengirim dan menerima pesan
Proses
Proses
Proses
Proses
• Program yang sedang dieksekusi
• Proses tidak hanya sekedar suatu kode program (text
section), melainkan meliputi beberapa aktivitas yang
bersangkutan seperti:
Melacak posisi instruksi (sequential execution): program counter
Menyimpan data sementara var., parameter, return value: stack
•
Sistem operasi
UNIX mempunyai
system
call fork
yang berfungsi
untuk membuat proses baru
•
Proses yang memanggil
system call fork
ini akan dibagi jadi dua,
proses induk dan proses turunan yang identik.
•
Suatu proses diterminasi ketika proses tersebut telah selesai
mengeksekusi perintah terakhir serta meminta sistem operasi untuk
menghapus perintah tersebut dengan menggunakan
system call
exit
.
•
Proses dapat mengembalikan data keluaran kepada proses induk-nya
Diagram Status Proses
Penjelasan gambar
•
New
• Masih dalam tahap inisiasi oleh prosedur
• Meliputi alokasi memory utama untuk proses • Pengisian tabel proses
• Pembuatan struktur data kendali untuk menyimpan informasi dan status proses
• Belum siap untuk di eksekusi
• Kondisi yang memicu proses new
• Login ke sistem operasi
• Permintaaan eksekusi program
• Aplikasi yang menciptakan proses anak
Penjelasan gambar
•
Ready
• Proses yang telah berhasil di inisiasi
• Antrian penjadwalan prosesor dengan cara menyisipkan proses baru ke dalam antrian
• Berisi referensi atau pointer ke struktur data kendali proses
• Menandakan suatu proses siap berkompetisi untuk mendapatkan alokasi prosesor
Penjelasan gambar
•
Running
•
Proses menguasi prosesor sepenuhnya
•
Memiliki tiga kemungkinan
•
Teminated, proses yang telah selesai
•
Ready, jika jatah waktu yang dialokasikan sudah habis
Penjelasan gambar
•
Blocked/Waiting
•
Proses membutuhkan pembacaan data dari piranti I/O
•
Proses ini akan disisipkan pada antrian penjadwalan
peranti I/O atau event
•
Jika I/O yang di tunggu sudah selesai maka proses akan
Penjelasan gambar
•
EXIT/Terminated
• Proses tersebut sudah dihentikan eksekusinya
• Proses telah selesai secara normal
• Batas waktu total sudah terlewati
• Kekurang ruang memory
• Pelanggaran batas memory
• Pelanggaran proteksi berkas
• Kesalahan aritmatika
• Waktu tunggu melebihi batas
• Terjadi kegagalan I/O
• Instruksi tidak benar
Penjelasan gambar
•
keadaan proses blocked dapat berlangsung lama dan ruang memory
utama tidak dapat digunakan oleh proses yang lain
•
Untuk mengatasi hal itu maka dibuat status suspended blocked
•
Penundaan eksekusi proses yang bersatutus blocked yang dilakukan
oleh sistem ataupun proses lain akan menyebabkan status proses
Penjadualan
Penjadualan
Penjadualan
Penjadual / Schedulers
•
Long-term scheduler (or job scheduler) – memilih
proses/program yang mana yang akan di load dan
berada di
ready queue
.
• Kemungkinan terdapat proses atau job baru.
• Kemungkinan proses dipindahkan dari memori ke disk (swap out).
•
Short-term scheduler (or CPU scheduler) – memilih
proses yang mana yang berada di
ready queue
akan
“run” (mendapatkan jatah CPU).