Seperti yang telah ditulis pada artikel sebelumnya bahwa perangkat lunak sistem bertindak sebagai antarmuka untuk sistem perangkat keras yang mendasarinya. Dengan demikian, secara grafis susunannya dapat dilihat pada gambar di bawah ini.
Dalam tulisan ini akan dibahas secara lebih rinci tentang beberapa perangkat lunak sistem yang penting.
1. Sitem Operasi
Sistem operasi/operating system (OS) dapat dikatakan sebagai jalur kehidupan komputer. Kita menghubungkan semua perangkat dasar seperti CPU, monitor, keyboard dan mouse kemudian menghubungkan ke catu daya dan mengaktifkan komputer, namun komputer tidak akan hidup kecuali ia memiliki sistem operasi yang diinstal di dalamnya karena OS :
- Menyimpan semua bagian perangkat keras dalam keadaan siap untuk mengikuti instruksi pengguna
- Mengkoordinasikan antara perangkat yang berbeda
- Menjadwalkan beberapa tugas sesuai prioritas
- Mengalokasikan sumber daya untuk setiap tugas
- Memungkinkan komputer untuk mengakses jaringan
- Memungkinkan pengguna untuk mengakses dan menggunakan perangkat lunak aplikasi
Selain booting awal, beberapa fungsi dari sistem operasi adalah sebagai berikut.
- Mengelola sumber daya komputer seperti perangkat keras, perangkat lunak, sumber daya bersama, dll.
- Mengalokasikan sumber daya
- Mencegah kesalahan selama penggunaan perangkat lunak
- Mengendalikan penggunaan komputer yang tidak benar
Salah satu sistem operasi yang paling awal adalah MS-DOS, yang dikembangkan oleh Microsoft untuk IBM PC. MS-DOS adalah Sistemoperasi berbasis Command Line Interface (CLI) yang merevolusi pasar Personal Computer. DOS sulit digunakan karena antarmukanya. Pengguna perlu mengingat instruksi untuk melakukan tugas. Agar komputer lebih mudah diakses dan ramah pengguna, maka Microsoft mengembangkan sistem operasi berbasis Graphical User Interface (GUI) yang disebut Windows, yang mengubah cara orang menggunakan komputer.
2. Assembler
Assembler adalah perangkat lunak sistem yang mengubah program level rakitan menjadi kode level mesin. Ilustrasi dari sistem Assembler ini ditunjukkan pada gambar di bawah ini.
Keuntungan yang diberikan oleh pemrograman tingkat rakitan adalah sebagai berikut.
- Meningkatkan efisiensi programmer karena mengingat mnemonik lebih mudah
- Produktivitas meningkat karena jumlah kesalahan berkurang dan juga waktu debugging
- Programmer memiliki akses ke sumber daya perangkat keras dan karenanya memiliki fleksibilitas dalam menulis program yang disesuaikan dengan komputer tertentu
3. Interpreter
Perangkat lunak sistem yang digunakan untuk menerjemahkan kode sumber bahasa tingkat tinggi ke dalam kode objek bahasa tingkat mesin baris demi baris disebut interpreter. Interpreter mengambil setiap baris kode dan mengubahnya menjadi kode mesin dan menyimpannya ke file objek.
Keuntungan menggunakan interpreter adalah sangat mudah untuk menulis dan tidak membutuhkan ruang memori yang besar. Namun, ada kelemahan utama dalam menggunakan interpreter, misalnya program yang diinterpretasikan membutuhkan waktu lama dalam pelaksanaannya. Untuk mengatasi kelemahan ini, terutama untuk program besar, maka dikembangkanlah compiler.
4. Compiler
Perangkat lunak sistem yang menyimpan program lengkap, memindai, menerjemahkan program lengkap ke dalam kode objek dan kemudian membuat kode yang dapat dieksekusi disebut kompiler. Secara sepintas lalu compiler
- lebih komplek dari pada interpreter
- memerlukan ruang memori yang lebih
- luangkan lebih banyak waktu dalam menyusun kode sumber
Namun, program yang dikompilasi berjalan sangat cepat di komputer. Gambar di bawah ini menunjukkan proses langkah-demi-langkah tentang bagaimana kode sumber ditransformasikan menjadi kode yang dapat dieksekusi.
Berikut ini adalah langkah-langkah dalam menyusun kode sumber menjadi kode yang dapat dieksekusi.
- Pre-processing
Pada tahap instruksi pre-processor, biasanya digunakan oleh bahasa seperti C dan C ++ diinterpretasikan, misalnya dikonversi ke bahasa tingkat perakitan.
- Lexical analysis
Di sini semua instruksi dikonversi menjadi lexical units seperti konstanta, variabel, simbol aritmatika, dan lain-lain.
- Parsing
Di sini semua instruksi diperiksa untuk melihat apakah mereka sesuai dengan aturan tata bahasa. Jika ada kesalahan, kompiler akan meminta untuk diperbaiki sebelum dapat dilanjutkan.
- Compiling
Pada tahap ini kode sumber dikonversi menjadi kode objek.
- Linking
Jika ada tautan ke file eksternal atau pustaka, alamat yang dapat dieksekusi akan ditambahkan ke program. Juga, jika kode perlu disusun ulang untuk eksekusi aktual, mereka akan disusun ulang. Output akhir adalah kode yang dapat dieksekusi (executable code) yang siap dieksekusi.