STRUKTUR KOMPUTER
Struktur
Sistem Operasi
Komponen-komponen Sistem
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.
Managemen Proses
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.
Managemen Memori Utama
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.
Managemen Secondary-Storage
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.
Managemen Sistem I/O
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.
Managemen Berkas
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).
Sistem Proteksi
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.
Jaringan
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.
Command-Interpreter System
Sistem
Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca
instruksi dan mengartikan control statements umumnya disebut: control-card
interpreter, command-line interpreter, dan UNIX 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), d
ll.
Layanan Sistem Operasi
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 Calls
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.
Mesin Virtual
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 devices untuk 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 implementasi extended 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. P
otensi 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.
Perancangan Sistem dan Implementasi
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.
Rangkuman
Sistem
operasi telah berkembang selama lebih dari 40 tahun dengan dua tujuan utama.
Pertama, sistem operasi mencoba mengatur aktivitas-aktivitas komputasi untuk
memastikan pendayagunaan yang baik dari sistem komputasi tersebut. Kedua, menyediakan
lingkungan yang nyaman untuk pengembangan dan jalankan dari program.
Pada
awalnya, sistem komputer digunakan dari depan konsul. Perangkat lunak seperti
assembler, loader, linkerdan compiler meningkatkan kenyamanan dari sistem
pemrograman, tapi juga memerlukan waktu set-up yang banyak. Untuk mengurangi
waktu set-up tersebut, digunakan jasa operator dan menggabungkan tugas-tugas
yang sama (sistem batch). Sistem batch mengizinkan pengurutan tugas secara
otomatis dengan menggunakan sistem operasi yang resident dan memberikan
peningkatan yang cukup besar dalam utilisasi komputer.
Komputer
tidak perlu lagi menunggu operasi oleh pengguna. Tapi utilisasi CPU tetap saja
rendah. Hal ini dikarenakan lambatnya kecepatan alat-alat untuk I/O relatif
terhadap kecepatan CPU. Operasi off-line dari alat-alat yang lambat bertujuan
untuk menggunakan beberapa sistem reader-to-tape dan tape-to-printer untuk satu
CPU.
Untuk
meningkatkan keseluruhan kemampuan dari sistem komputer, para developer
memperkenalkan konsep multiprogramming. Dengan multiprogramming, beberapa tugas
disimpan dalam memori dalam satu waktu; CPU digunakan secara bergantian
sehingga menambah utilisasi CPU dan mengurangi total waktu yang dibutuhkan
untuk menyelesaikan tugas-tugas tersebut. Multiprogramming, yang dibuat untuk
meningkatkan kemampuan, juga mengizinkan time sharing. Sistem operasi yang
bersifat time-shared memperbolehkan banyak pengguna untuk menggunakan komputer
secara interaktif pada saat yang bersamaan.
Komputer Personal
adalah mikrokomputer yang dianggap lebih kecil dan lebih murah dibandingkan
komputer mainframe. Sistem operasi untuk komputer-komputer seperti ini
diuntungkan oleh pengembangan sistem operasi untuk komputer mainframe dalam
beberapa hal. Namun, semenjak penggunaan komputer untuk keperluan pribadi, maka
utilisasi CPU tidak lagi menjadi perhatian utama. Karena itu, beberapa desain
untuk komputer mainframe tidak cocok untuk sistem yang lebih kecil.
Sistem
parallel mempunyai lebih dari satu CPU yang mempunyai hubungan yang erat;
CPU-CPU tersebut berbagi bus komputer, dan kadang-kadang berbagi memori dan
perangkat yang lainnya. Sistem seperti itu dapat meningkatkan throughput dan
reliabilititas. Sistem hard real-time sering kali digunakan sebagai alat
pengontrol untuk applikasi yang dedicated. Sistem operasi yang hard real-time
mempunyai batasan waktu yang tetap yang sudah didefinisikan dengan
baik.Pemrosesan harus selesai dalam batasan-batasan yang sudah didefinisikan,
atau sistem akan gagal. Sistem soft real-time mempunyai lebih sedikit batasan
waktu yang keras, dan tidak mendukung penjadwalan dengan menggunakan batas
akhir. Pengaruh dari internet dan World Wide Webbaru-baru ini telah mendorong
pengembangan sistem operasi modern yang menyertakan web browser serta perangkat
lunak jaringan dan komunikasi sebagai satu kesatuan.
Multiprogramming
dan sistem time-sharing meningkatkan kemampuan komputer dengan melampaui batas
operasi (overlap) CPU dan I/O dalam satu mesin. Hal seperti itu memerlukan
perpindahan data antara CPU dan alat I/O, ditangani baik dengan polling atau
interrupt-driven akses ke I/O port, atau dengan perpindahan DMA. Agar komputer
dapat menjalankan suatu program, maka program tersebut harus berada di memori
utama (memori utama). Memori utama adalah satu-satunya tempat penyimpanan yang
besar yang dapat diakses secara langsung oleh prosessor, merupakan suatu array
dari word atau byte, yang mempunyai ukuran ratusan sampai jutaan ribu. Setiap
word memiliki alamatnya sendiri.
Memori utama adalah tempat
penyimpanan yang volatile, dimana isinya hilang bila sumber energinya (energi
listrik) dimatikan. Kebanyakan sistem komputer menyediakan secondary storage
sebagai perluasan dari memori utama. Syarat utama dari secondary storage adalah
dapat menyimpan data dalam jumlah besar secara permanen. Secondary storage yang
paling umum adalah disk magnetik, yang meyediakan penyimpanan untuk program mau
pun data. Disk magnetik adalah alat penyimpanan data yang nonvolatile yang juga
menyediakan akses secara random. Tape magnetik digunakan terutama untuk backup,
penyimpanan informasi yang jarang digunakan, dan sebagai media pemindahan
informasi dari satu sistem ke sistem yang lain.
Beragam
sistem penyimpanan dalam sistem komputer dapat disusun dalam hirarki
berdasarkan kecepatan dan biayanya. Tingkat yang paling atas adalah yang paling
mahal, tapi cepat. Semakin kebawah, biaya perbit menurun, sedangkan waktu
aksesnya semakin bertambah (semakin lambat). Sistem operasi harus memastikan
operasi yang benar dari sistem komputer. Untuk mencegah pengguna program
mengganggu operasi yang berjalan dalam sistem, perangkat keras mempunyai dua
mode: mode pengguna dan mode monitor.
Beberapa perintah
(seperti perintah I/O dan perintah halt) adalah perintah khusus, dan hanya
dapat dijalankan dalam mode monitor. Memori juga harus dilindungi dari
modifikasi oleh pengguna. Timer mencegah terjadinya pengulangan secara terus
menerus (infinite loop). Hal-hal tersebut (dual mode, perintah khusus, pengaman
memori, timer interrupt) adalah blok bangunan dasar yang digunakan oleh sistem
operasi untuk mencapai operasi yang sesuai.
Sistem operasi menyediakan banyak pelayanan. Di tingkat terrendah, sistem calls
mengizinkan program yang sedang berjalan untuk membuat permintaan secara
langsung dari sistem operasi. Di tingkat tertinggi, command interpreter atau
shell menyediakan mekanisme agar pengguna dapat membuat permintaan tanpa
menulis program. Command dapat muncul dari bekas sewaktu jalankan batch-mode,
atau secara langsung dari terminal ketika dalam mode interaktive atau
time-shared. Program sistem disediakan untuk memenuhi kebanyakan dari
permintaan pengguna. Tipe dari permintaan beragam sesuai dengan levelnya. Level
sistem call harus menyediakan fungsi dasar, seperti kontrol proses serta
manipulasi alat dan bekas. Permintaan dengan level yang lebih tinggi (command
interpreter atau program sistem) diterjemahkan kedalam urutan sistem call.
Pelayanan
sistem dapat dikelompokkan kedalam beberapa kategori: kontrol program, status
permintaan dan permintaan I/O. Program error dapat dipertimbangkan sebagai
permintaan yang implisit untuk pelayanan. Bila sistem pelayanan sudah
terdefinisi, maka struktur dari sistem operasi dapat dikembangkan. Berbagai
macam tabel diperlukan untuk menyimpan informasi yang mendefinisikan status
dari sistem komputer dan status dari sistem tugas. Perancangan dari suatu
sistem operasi yang baru merupakan tugas yang utama. Sangat penting bahwa
tujuan dari sistem sudah terdefinisi dengan baik sebelum memulai perancangan.
Tipe dari sistem yang diinginkan adalah landasan dalam memilih beragam
algoritma dan strategi yang akan digunakan. Karena besarnya sistem operasi,
maka modularitas adalah hal yang penting. Merancang sistem sebagai suatu urutan
dari layer atau dengan menggunakan mikrokernel merupakan salah satu teknik yang
baik. Konsep virtual machine mengambil pendekatan layer dan memperlakukan baik
itu kernel dari sistem operasi dan perangkat kerasnya sebagai suatu perangkat
keras. Bahkan sistem operasi yang lain dapat dimasukkan diatas virtual machine
tersebut. Setiap sistem operasi yang mengimplemen JVM dapat menjalankan semua
program java, karena JVM mendasari dari sistem ke program java, menyediakan
arsitektur tampilan yang netral.
Didalam
daur perancangan sistem operasi, kita harus berhati-hati untuk memisahkan
pembagian kebijakan (policy decision) dengan detail dari implementasi
(mechanism). Pemisahan ini membuat fleksibilitas yang maksimal apabila policy
decision akan diubah kemudian. Sistem operasi sekarang ini hampir selalu
ditulis dengan menggunakan bahasa tingkat tinggi. Hal ini meningkatkan
implementasi, perawatan portabilitas. Untuk membuat sistem operasi untuk suatu
konfigurasi mesin tertentu, kita harus melakukan system generation.