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.
- Managemen
Memori Utama.
- Managemen Secondary-Storage.
- Managemen
Sistem I/O.
- Managemen
Berkas.
- Sistem
Proteksi.
- Jaringan.
- Command-Interpreter
system.
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:
- 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.
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:
- 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.
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.
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:
- 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.
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).
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.
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:
- Computation
speed-up.
- Increased
data availability.
- Enhanced
reliability.
Sistem Operasi menunggu instruksi dari pengguna (command driven).
Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter, danUNIX 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.
Eksekusi program adalah kemampuan sistem untuk "load"
program ke memori dan menjalankan program. Operasi I/O: pengguna tidak dapat
secara langsung mengakses sumber daya perangkat keras, sistem operasi harus
menyediakan mekanisme untuk melakukan operasi I/O atas nama pengguna. Sistem
manipulasi berkas dalah kemampuan program untuk operasi pada berkas (membaca,
menulis, membuat, and menghapus berkas). Komunikasi adalah pertukaran data/
informasi antar dua atau lebih proses yang berada pada satu komputer (atau
lebih). Deteksi error adalah menjaga kestabilan sistem dengan
mendeteksi "error", perangkat keras mau pun operasi.
Efesisensi penggunaan sistem:
- Resource
allocator adalah
mengalokasikan sumber-daya ke beberapa pengguna atau job yang
jalan pada saat yang bersamaan.
- Proteksi
menjamin akses ke sistem sumber daya dikendalikan (pengguna dikontrol
aksesnya ke sistem).
- Accounting adalah
merekam kegiatan pengguna, jatah pemakaian sumber daya (keadilan atau
kebijaksanaan).
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.
Sebuah mesin virtual (Virtual Machine) menggunakan misalkan
terdapat sistem program => control program yang mengatur pemakaian sumber
daya perangkat keras. Control program = trap System call + akses ke perangkat keras. Control program
memberikan fasilitas ke proses pengguna. Mendapatkan jatah CPU dan memori.
Menyediakan interface "identik" dengan apa yang disediakan
oleh perangkat keras => sharing devicesuntuk berbagai proses.
Mesin Virtual (MV) (MV) => control program yang minimal MV
memberikan ilusi multitasking: seolah-olah terdapat
prosesor dan memori ekslusif digunakan MV. MV memilah fungsi multitasking dan implementasiextended machine (tergantung proses pengguna) => flexible dan
lebih mudah untuk pengaturan. Jika setiap pengguna diberikan satu MV =>
bebas untuk menjalankan OS (kernel) yang diinginkan pada MV tersebut. Potensi
lebih dari satu OS dalam satu komputer. Contoh: IBM VM370: menyediakan MV untuk
berbagai OS: CMS (interaktif), MVS, CICS, dll. Masalah: Sharing disk => OS
mempunyai sistem berkas yang mungkin berbeda. IBM: virtual disk (minidisk) yang
dialokasikan untuk pengguna melalui MV.
Konsep MV menyediakan proteksi yang lengkap untuk sumberdaya
sistem, dikarenakan tiap MV terpisah dari MV yang lain. Namun, hal tersebut
menyebabkan tidak adanya sharing sumberdaya secara langsung. MV merupakan alat
yang tepat untuk penelitian dan pengembangan sistem operasi. Konsep MV susah
untuk diimplementasi sehubungan dengan usaha yang diperlukan untuk menyediakan
duplikasi dari mesin utama.
Target untuk pengguna: sistem operasi harus nyaman digunakan,
mudah dipelajari, dapat diandalkan, aman dan cepat. Target untuk sistem: sistem
operasi harus gampang dirancang, diimplementasi, dan dipelihara, sebagaimana
fleksibel, error, dan efisien.
Mekanisme dan Kebijaksanaan:
- Mekanisme
menjelaskan bagaimana melakukan sesuatu kebijaksanaan memutuskan apa yang
akan dilakukan. Pemisahan kebijaksanaan dari mekanisme merupakan hal yang
sangat penting; ini mengizinkan fleksibilitas yang tinggi bila
kebijaksanaan akan diubah nanti.
- Kebijaksanaan
memutuskan apa yang akan dilakukan.
Pemisahan kebijaksanaan dari mekanisme merupakan hal yang sangat
penting; ini mengizinkan fleksibilitas yang tinggi bila kebijaksanaan akan
diubah nanti.
Implementasi Sistem biasanya menggunakan bahas assembly, sistem operasi
sekarang dapat ditulis dengan menggunakan bahasa tingkat tinggi. Kode yang
ditulis dalam bahasa tingkat tinggi: dapat dibuat dengan cepat, lebih ringkas,
lebih mudah dimengerti dan didebug. Sistem operasi lebih mudah dipindahkan ke
perangkat keras yang lain bila ditulis dengan bahasa tingkat tinggi.
System Generation (SYSGEN)
Sistem operasi dirancang untuk dapat dijalankan di berbagai jenis
mesin; sistemnya harus di konfigurasi untuk tiap komputer. Program SYSGEN
mendapatkan informasi mengenai konfigurasi khusus dari sistem perangkat keras.
- Booting:
memulai komputer dengan me-load kernel.
- Bootstrap
program: kode yang disimpan di code ROM yang dapat menempatkan
kernel, memasukkannya kedalam memori, dan memulai eksekusinya.