Arsitektur adalah struktur-struktur yang menjadi landasan untuk menentukan keberadaan komponen-komponen
perangkat lunak, cara komponen saling berinteraksi, dan organisasi komponen dalam membentuk perangkat lunak.
Arsitektur Sistem Operasi adalah perangkat lunak yang digunakan dalam membangun perangkat lunak sistem
operasi.
Pada dasarnya arsitektur yang menyusun sistem komputer adalah
hardware.
operating system.
application program.
programming language.
Kelebihan Kekurangan
Penerapan yang mudah Kecepatan pengembangan lebih lambat
Pengembangan lebih mudah Tidak dapat menskalakan komponen
Performa Sedikit kesalahan akan mempengaruhi APK
Pengujian yang disederhanakan Hambatan dalam adopsi teknologi
Proses debug yang mudah Kurangnya fleksibelitas
Penerapan yang selalu berulang
2. Layered architecture
Layered architecture adalah arsitektur berlapis yang dimana komponen disusun secara horizontal seperti pola n-
tiered. Setiap lapis memiliki fungsi yang berbeda dan saling berkaitan dengan lapisan lain melalui antarmuka yang telah
ditentukan dengan baik. Masing masing lapisan hanya memiliki pengetahuan tentang lapisan diatas dan dibawahnya.
Contoh : - Model-View-Controller (MVC).
- OSI (Open Systems Interconnection) Model.
- Layered Operating System Architecture.
Kelebihan Kekurangan
Kerangka kerjanya sederhana Skalabilitas sulit dilakukan
Ketergantungan berkurang Perawatannya sulit karena perubahan pada satu
lapisan dapat mempengaruhi keseluruhan
sistem
Pengujian lebih mudah karena komponen Saling ketergantungan
terpisah
Biaya overhead cukup rendah Pemrosesan paralel tidak dimungkinkan
3. Mikrokernel architecture
Microkernel architecture adalah pendekatan dalam perancangan sistem operasi dan perangkat lunak yang
memisahkan inti (kernel) sistem operasi menjadi komoponen yang sangat kecil dan mendasar, sementara sebagian besar
fungsi sistem operasi ditempatkan pada lapisan lebih tinggi atau sebagai layanan eksternal yang berjalan diatas kernel.
Kernel
Kernel adalah inti dari sebuah sistem operasi (SO) yang merupakan bagian paling fundamental dan penting dari
perangkat lunak tersebut.
Jenis-jenis kernel:
a. Kernel Monolic adalah jenis kernel dimana semua layanan sistem operasi terintegrasi menjadi satu unit
besar dalam satu ruang alamat.
b. Mikrokernel adalah jenis kernel yang memisahkan fungsi inti dan menyediakan hanya layanan dasar.
c. Kernel Hipermonolitik atau Kernel Hibrida adalah campuran antara kernel monolitik dan mikro.
d. Kernel Nano atau Exokernel adalah jenis kernel yang sangat kecil dan hanya menyediakan fungsi dasar
seperti manajemen proses dan manajemen memori.
Kelebihan Kekurangan
Modular (lebih fleksibel) Perubahan konteks: dapat menambah overhead
dan mempengaruhi kinerja sistem
Kecil dan terisolasi Kinerja variabel: overhead
Versatile (dapat mendukung berbagai API yang Biaya layanan lebih mahal
diimplementasikan oleh berbagai server)
Pengembangan dan ekspansi yang mudah
Penambahan fitur tanpa rekompilasi
Lebih sedikit kerusakan sistem
Operating System Services adalah layanan yang telah disediakan oleh sistem operasi (SO) kepada aplikasi dan
pengguna komputer.
Macam-macam layanan SO:
1. User Interface, Pengguna dapat mengeluarkan perintah kepada sistem melalui antarmuka pengguna.
2. Input Output Operation, Transfer data dari dan ke perangkat masukan/keluaran.
3. Program Execution, Memproses program.
4. Communication, Komunikasi antarproses baik antara proses yang berjalan pada prosesor yang berbeda di
mesin yang berbeda atau pada prosesor yang sama.
5. File System Manipulation, Selain menyimpan data mentah, sistem operasi juga bertanggung jawab untuk
memelihara struktur direktori dan subdirektori.
6. Error Detection, Kesalahan baik dari segi perangkat lunak maupun perangkat keras harus dideteksi
dengan benar dan harus ditangani secepatnya.
7. Resource Allocation, Ketika banyak proses berjalan secara bersamaan, sumber daya harus dialokasikan
kepada masing-masing proses.
8. Accounting, Melacak aktivitas sistem untuk mengoptimalkan kinerja di masa mendatang.
9. Protection and Security, Mencegah kerusakan pada sumber daya dan sistem secara keseluruhan.
System Program
System Program adalah perangkat lunak yang dirancang khusus untuk menjalankan tugas-tugas manajemen
sistem dan membantu sistem operasi dalam berbagai fungsi operasional.
Kategori dasar dari system program adalah:
1. Informasi Status, Program-program yang terlibat dalam pengambilan waktu, tanggal, ruang disk kosong,
memori yang tersedia, nomor pengguna, atau informasi serupa dari sistem informasi.
2. Manajemen Berkas, Program-program yang bertanggung jawaab atas pembuatan, penghapusan,
pergantian nama, penyalinan, pengosongan, penghapusan daftar, dan manipulasi berkas, serta bagaimana
direktori dikelola.
3. Modifikasi Berkas, Sebuah program yang mencakup editor teks untukmembuat atau memodifikasi isi
berkas yang disimpan.
4. Informasi Status, Program-program yang bertanggung jawab jawab atas pembuatan koneksi virtual
antara proses pengguna dan sistem komputer yang berbeda.
5. Dukungan Bahasa Pemrograman, seperti compiler, assembler, dan interpreter.
6. Pemuatan (loading) dan Eksekusi Pemrograman, Memproses program yang telah dikompilasi.
7. Utilitas Sistem, Operasi umum (pengolah data, lembar kerja spreadsheet, sistem database, dan lainnya)
dilakukan oleh program-program ini.
8. Komunikasi, Menciptakan koneksi virtual antara proses pengguna dan sistem komputer yang berbeda.
System Call
System Call adalah cara dimana program aplikasi dapat meminta layanan sistem operasi untuk melakukan tugas-
tugas tertentu. System Call secara sederhana adalah jembatan penghubung antara user mode dan kernel mode.
Manajemen Proses
Macam-macam proses:
1. Proses
Proses adalah urutan eksekusi untuk mendapatkan suatu hasil
Ada lima status utama proses yaitu:
a. New (Baru).
b. Ready (Siap).
c. Running (Berjalan).
d. Waiting (Menunggu).
e. Terminated (Berakhir).
3. Scheduling Queues
Jenis-jenis Antrian Penjadwalan
Job Queue (Antrian Pekerjaan).
Ready Queue (Antrian Siap).
Device Queue (Antrian Perangkat).
4. Process Schedulers
Scheduler adalah salah satu komponen penting dalam sistem operasi yang bertanggung jawab untuk
mengelola eksekusi proses-proses yang berjalan di dalam komputer.