Sumber:
- ariefzuhud.blog.upi.edu
- e-book by Nur Yuliani
- Bahan Kuliah
- Sumber Internet lain
Konsep Dasar Sistem Operasi- Komponen Sistem Operasi
- Layanan Sistem Operasi
- System Calls
- Pemrograman Sistem
- Struktur Sistem
- Mesin Virtual
- System Generation
- Rancangan Sistem
Komponen Sistem- Managemen Proses
- Managemen Memori Utama
- Managemen Berkas
- Managemen I/O
- Managemen Penyimpanan Sekunder
- Jaringan
- Sistem Proteksi
- Command-Interpreter System
Manajemen ProsesProses adalah program yang sedang dieksekusi. Sebuah proses memerlukan
sumber daya (resource) tertentu seperti waktu CPU, memori, file dan perangkat I/O
untuk menyelesaikan tugasnya.
Untuk mengatur proses yang ada, sistem operasi bertanggung jawab pada
aktrifitas-aktifitas yang berhubungan denagn manajemen proses berikut :
a. Pembuatan dan penghapusan proses yang dibuat oleh user atau sistem.
b. Menghentikan proses sementara dan melanjutkan proses.
c. Menyediakan kelengkapan mekanisme untuk sinkronisasi proses dan komunikasi
proses.
Dengan kata lain, proses adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.
Secara informal, proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. suatu program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.
Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).
Sistem operasi bertanggung jawab terhadap aktifitas yang berhubungan dengan manajemen proses:
- Pembuatan dan penghapusan proses
- Penundaan dan pelanjutan proses
- Penyedia mekanisme untuk:
•Sinkronisasi antar proses
•Komunikasi antar proses
•Penanganan Deadlock
Konsep dasar :1. Multiprogramming
Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat / bersamaan(hardware level). Setiap proses mempunyai satu virtual CPU.
2. Pseudoparallelism
Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level).
Model Proses :1. Sequential Process / bergantian
2. Multiprogramming
3. CPU Switching à peralihan prosedur dalam mengolah 1 proses ke proses lainnya.
Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataannya adalah
multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel.

Keterangan :
a. multiprogramming untuk 4 program di memori
b. model konseptual untuk 4 proses independent, sequential
c. hanya 1 program yang aktif dalam 1 waktu = pseudoparalel
Hirarki ProsesPemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.
Create & Destroy Proses
Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat(create) proses dan menghilangkan (destroy) proses.
Fork System Call
Mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya.
Pada UNIX, parent dan child process running secara parallel.
Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya : MSDOS sebagai parent dan program aplikasi sebagai child.
Process scheduler : untuk pengaturan eksekusi proses
3 Status proses / bagian keadaan proses :1. Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
2. Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya)
Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
3. Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain kerjakan)
Implementasi Proses :- Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.
- Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap.
Command-Interpreter System- Sistem Operasi menungguinstruksi dari pengguna(command driven).
- Program yang membaca instruksi dan mengartikancontrol statements(keinginanpengguna) umumnya disebut:
1. control-card interpreter
2. command-line interpreter
3. UNIX shell.
Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasiyang lain dan disesuaikan dengan tujuan dan teknologiI/O peranti yang ada.
Contohnya: CLI, Windows, Pen-based(touch),danlain-lain.
Pelayanan Sistem Operasi- Eksekusiprogram: meloadprogram kememory danmenjalankannya(run)
- OperasiI/O: pengguna tidak bisamengontrol I/O secaralangsung( untuk efisiensidankeamanan), sistem harusbisamenyediakanmekanismeutkmelakukanoperasiI/O
- Manipulasisistemberkas: membaca, menulis, membuat, danmenghapus file
- Komunikasi:pertukaran informasi,dapat dilaksanakan melaluishared memory atau message passing
- Deteksierror:mempertahankan kestabilan dengan mendeteksi error (pada CPU, perangkat keras memori, I/O, program pengguna) dan jika bisa,memperbaikinya
Pelayanan Tambahan- Lebih diarahkan kepada upaya untuk menjaga efisiensi sistem,bukan untuk membantu pengguna
- Alokasisumberdaya: mengalokasikan sumberdaya kepada beberapa pengguna atau tugas yang dijalankan pada saatyang bersamaan
- Accounting: menentukan berapa banyak dan berapa lama users menggunakan sumberdaya sistem
- Proteksi: menjaga semua akses ke sumberdaya sistem terkontrol
System calls- System calls menyediakan antarmuka antara proses(program yang sedang dijalankan) dan sistem operasi.
- Biasanya tersedia sebagai instruksi bahasa rakitan
- Beberapa sistem mengizinkan system calls dibuat langsung dari bahasa pemrograman tingkat tinggi
- Beberapa bahasa pemrograman tingkat tinggi(contoh: C, C++)telah didefenisikan untuk menggantikan bahasa rakitan untuk sistem pemrograman.
Tiga metode umum yang digunakan dalam memberikan parameter kepada sistem operasi
1. Melalui register
2. Menyimpan parameter dalam blok atau tabel pada memori dan alamat blok tersebut diberikan sebagai parameter dalam register
3. Menyimpan parameter (push)kedalam stack(oleh program), dan melakukan pop off pada stack(oleh sistim operasi)
Pemrograman Sistem- Pemrograman sistem menyediakan lingkungan yang memungkinkan pengembangan program dan eksekusi berjalan dengan baik
Dapatdikategorikan:
Manajemen/manipulasi berkas: membuat, menghapus, copy, rename, print,memanipulasi berkas dan direktori
- Informasi Status:tanggal, jam,jumlah memori dan disk yang tersedia,jumlah pengguna, dan informasi tentang status lainnya
- Modifikasi Berkas:modifikasi isi berkas
- Mendukung bahasa pemrograman: Kompilator, perakit, interpreter
- Loading dan eksekusi program: absolute loaders, relocatableloaders, linkage editors, overlay loaders
- Komunikasi: menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda
System program yang paling penting adalah command interpreter(mengambil dan menerjemahkan user-specified command selanjutnya)
Struktur Sistem- Struktur Sederhana
- Metode Pendekatan Terlapis
- Mikrokernel
MesinVirtual- Mesin virtual mengambil pendekatan terlapis sebagai kesimpulan logis. Mesin virtual memperlakukan hardware dan sistem operasi seolah-olah berada pada level yang sama sebagai perangkat keras.
- Pendekatan Mesin virtual menyediakan sebuah antarmuka yang identik dengan underlying bare hardware.
- Sistem Operasi membuat ilusi dari banyak proses, masing-masing dieksekusi pada prosesornya sendiri dengan virtual memorinya sendiri.
- VM dibuat dengan pembagian sumberdaya oleh komputer fisik
System Generation- Sistem operasi dirancang untuk dapat dijalankan pada berbagai jenis mesin, sistemnya harus dikonfigurasikan untuk setiap komputer.
- Program Sysgen mendapatkan informasi mengenai konfigurasi khusus tentang sistem perangkat keras dari sebuah data, antara lain sebagai berikut:
1. CPU apa yang digunakan, pilihan yang diinstal
2. Berapa banyak memori yang tersedia
3. Peralatan yang tersedia
4. Sistem operasi pilihan apa yang diinginkan atau parameter apa yang digunakan
- Satu kali info diperoleh, bisa digunakan dengan berbagai cara
Perancangan Sistem- Masalah: menentukan tujuan dan spesifikasi sistem.
Perancangan sistem dipengaruhi oleh perangkat keras dan jenis sistem sehingga kebutuhannya akan lebih sulit untuk dispesifikasikan.
- Kebutuhan terdiri dari tujuan pengguna dan tujuan sistem.
- Pengguna ingin sistem yang enak digunakan, mudah dipelajari, terpercaya, aman, dan cepat. Tapi itu semua sebenarnya tidak dibutuhkan oleh sebuah sistem.
- Sistem ingin mudah dirancang dan diimplmentasikan, fleksibel, terpercaya, error yang minimal, dan efisien.