1. Manajemen berkas
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).
2. Manajemen memori utama (data yg disimpan disini sifatnya sementara dgn jmlh yg kecil)
Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
Memilih program yang akan di-load ke memori.
Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan
3. Manajemen sistem i/o
Komponen Sistem Operasi untuk sistem I/O:
Buffer: menampung sementara data dari/ ke perangkat I/O.
Spooling: melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian
dsb.).
Menyediakan driver untuk dapat melakukan operasi "rinci" untuk perangkat keras I/O
tertentu.
4. Manajemen proses
Pembuatan dan penghapusan proses pengguna dan sistem proses.
Menunda atau melanjutkan proses.
Menyediakan mekanisme untuk proses sinkronisasi.
Menyediakan mekanisme untuk proses komunikasi.
Menyediakan mekanisme untuk penanganan deadlock.
5. Layanan sistem informasi. Sistem operasi memberikan layanan sebagai berikut:
Eksekusi program, yaitu kemampuan sistem untuk "load" program ke memori dan
menjalankan program.
Operasi I/O, yaitu sistem operasi harus menyediakan mekanisme untuk melakukan
operasi I/O atas nama pengguna.
Sistem manipulasi, berkas yaitu kemampuan program untuk operasi pada berkas
(membaca, menulis, membuat, and menghapus berkas).
Komunikasi, yaitu pertukaran data/informasi antar dua atau lebih proses yang berada
pada satu komputer (atau lebih).
Deteksi error yaitu menjaga kestabilan sistem dengan mendeteksi "error" pada
perangkat keras mau pun operasi
PROSES
Sistem operasi mengeksekusi berbagai jenis program. Pada sistem batch program biasanya disebut
dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task.
Beberapa buku teks menggunakan istilah job atau proses. Proses adalah program yang sedang
dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter,
stack dan daerah data.
1. Status Proses
Meskipun tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun adakalanya
proses-proses tersebut butuh untuk saling berinteraksi. Satu proses bisa dibangkitkan dari
output proses lainnya sebagai input.
Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses didefiniskan
sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu. Status proses terdiri dari :
a. New: proses sedang dibuat.
b. Running: proses sedang dieksekusi.
c. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti
menunggu untuk menyelesaikan I/O atau menerima sinyal).
d. Ready: proses menunggu jatah waktu dari CPU untuk diproses.
e. Terminated: proses telah selesai dieksekusi.
1. Antrian penjadwalan
Penjadwalan direpresentasikan dalam bentuk antrian yang disimpan sebagai linkedlist dan berisi pointer
awal dan akhir PCB. Tiap-tiap PCB memiliki suatu pointer field yang menunjuk ke proses berikutnya.
Jenis-jenis antrian penjadwalan sebagai berikut :
Job Queue. Semua proses yang masuk pada suatu sistem akan diletakkan ke dalam job queue.
Ready Queue. Sedangkan proses-proses yang ada di memori utama dan menunggu untuk
dieksekusi diletakkan pada suatu list yang disebut dengan ready queue.
Device Queue. Deretan proses yang sedang menunggu peralatan I/O tertentu disebut dengan
device queue.
Setiap proses dapat berpindah dari satu antrian ke antrian lain.
2.Penjadwalan (Scheduller)
Short-term scheduler terjadi sangat sering (dalam milidetik), jadi setiap proses dijadwal dengan cepat,
sedangkan long-term scheduler terjadi sangat jarang (dalam detik atau menit), sehingga setiap proses
dijadwal dengan lambat. Long-term scheduler digunakan untuk mengontrol tingkat multiprogramming.
• I/O bound process, yaitu proses-proses yang membutuhkan lebih banyak waktu untuk menjalankan
I/O daripada melakukan komputasi, sehingga CPU burst yang dibutuhkan lebih singkat.
• CPU bound process, yaitu proses-proses yang membutuhkan lebih banyak waktu untuk melakukan
komputasi daripada menjalankan I/O sehingga CPU burst yang dibutuhkan lebih lama.
3.Context Switch
Ketika CPU berpindah dari proses satu ke proses lainnya, sistem harus menyimpan status dari proses
yang lama dan membuka state proses baru yang sudah disimpan. Contex switch adalah proses
penyimpanan status proses dan mengambil status proses yang baru pada saat terjadi switching. Pada
saat terjadi perpindahan proses, sistem tidak bekerja. Waktu context switch tergantung pada perangkat
keras yang digunakan.
Terdapat dua operasi pada proses, yaitu pembuatan proses (process creation) dan penghentian proses
(process deletion).
a) Pada lingkungan batch sebagai tambahan atas pemberian job. Setelah menciptakan proses
baru, sistem operasi melanjutkan untuk membaca job selanjutnya.
b) Pada ingkungan interaktif, pada saat user baru saja login;
c) Sebagai tanggapan atas suatu aplikasi (seperti: mencetak file, sistem operasi dapat menciptakan
proses yang akan mengelola pencetakan itu);
d) Proses menciptakan proses lain (child).
Selama eksekusi, suatu proses mungkin akan membuat suatu proses yang baru. Proses tersebut
dinamakan parent, sedangkan proses yang dibuat dinamakan child.Proses pembuatan proses anak
membentuk pohon proses.
Bentuk eksekusi :
Pada UNIX, parent akan membentuk child dengan menggunakan system call fork. Setelah
pemanggilan fork, parent kembali berjalan secara pararel dengan child. Demikian pula, child dapat
memanggil fork untuk membentuk child lainnya. Sistem call exec digunakan setelah system call fork
mengganti alamat memori proses dengan program baru. Lain halnya dengan DOS, pada MS-DOS,
system call akan memanggil binary file tertentu yang ada pada memori dan mengeksekusinya
sebagai child. Parent akan running kembali setelah child selesai eksekusi. Dengan demikian parent
dan child tidak dapat berjalan secara pararel.
2.Pemberhentian proses
Suatu proses berhenti jika telah menyelesaikan pernyataan terakhir, dan meminta pada sistem operasi
untuk menghapusnya dengan menggunakan system call exit. Proses mengembalikan semua data
(output) ke parent proses melalui system call wait. Kemudian proses dihapus dari list atau tabel sistem,
dilanjutkan dengan menghapus PCB. Penghapusan proses ini akan menjadi sangat kompleks jika
ternyata proses yang akan dihentikan tersebut membuat proses-proses yang lain. Pada beberapa sistem,
proses-proses anak akan dihentikan secara otomatis jika proses induknya berhenti. Namun, ada
beberapa sistem yang menganggap bahwa proses anak ini terpisah dengan induknya, sehingga proses
anak tidak ikut dihentikan secara otomatis pada saat proses induk dihentikan.
Parent dapat menghentikan eksekusi proses child dengan menggunakan system call abort. Proses anak
dihentikan parent karena beberapa alasan, antara lain :
1. Konsep
Proses adalah program yang sedang dieksekusi
Thread adalah proses ringan (lightweight) yang dijalankan oleh cpu dan berada di term
Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem
operasi.
Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
Unit dasar dari sistem utilisasi pada processor (CPU).
Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
Sebuah thread berbagi code section, data section dan resource sistem operasi dengan
thread yang lain yang memiliki proses yang sama.
2. Jenis Thread
a) Single-Threading adalah sebuah lightweight process (proses sederhana) yang
mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller.
b) Multi-Threading adalah proses dengan thread yang banyak dan mengerjakan lebih dari
satu tugas dalam satu waktu.
3. Tipe Thread
a) Kernel threads;
Kernel thread didukung secara langsung oleh sistem operasi jd gaperlu inisialisasi.
Pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang
kernel.
Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya
lebih lambat untuk membuat dan mengelola daripada pengguna thread.
b) User threads;
User thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat
pengguna jd perlu inisialisasi olh pengguna.
Library mendukung untuk pembentukan thread, penjadualan, dan managemen yang tidak
didukung oleh kernel.
4. Model Multithreading
Model many-to-one (Memetakan beberapa thread tingkatan user ke sebuah thread
tingkatan kernel, Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien,
Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat.)
Model One-to-One (Memetakan satu thread tingkatan pengguna ke satu thread kernel,
Model ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.)