Saat Anda menyalakan komputer, senang rasanya Anda memegang kendali. Ada mouse komputer tepercaya, yang dapat Anda pindahkan ke mana saja di layar, memanggil perpustakaan musik atau browser Internet Anda sesuka hati.
Meskipun mudah untuk merasa seperti seorang direktur di depan desktop atau laptop Anda, ada banyak hal yang terjadi di dalamnya, dan pria sejati di balik tirai yang menangani tugas-tugas yang diperlukan adalah sistem operasinya.
Sebagian besar PC desktop atau laptop sudah dimuat sebelumnya dengan Microsoft Windows. Komputer Macintosh dilengkapi dengan Mac OS X. Banyak server perusahaan menggunakan sistem operasi Linux atau UNIX. Sistem operasi (OS) adalah hal pertama yang dimuat ke komputer tanpa sistem operasi, komputer tidak berguna.
Baru-baru ini, sistem operasi juga mulai muncul di komputer yang lebih kecil. Jika Anda suka mengutak-atik perangkat elektronik, Anda mungkin senang bahwa sistem operasi sekarang dapat ditemukan di banyak perangkat yang kita gunakan setiap hari, dari ponsel hingga titik akses nirkabel.
Komputer yang digunakan dalam perangkat kecil ini menjadi sangat kuat sehingga sekarang dapat menjalankan sistem operasi dan aplikasi. Komputer pada ponsel modern pada umumnya sekarang lebih kuat daripada komputer desktop dari 20 tahun yang lalu, jadi perkembangan ini masuk akal dan merupakan perkembangan alami.
Tujuan dari sistem operasi adalah untuk mengatur dan mengontrol perangkat keras dan perangkat lunak sehingga perangkat yang ditempatinya berperilaku dengan cara yang fleksibel tetapi dapat diprediksi.
Pada artikel ini, kami akan memberi tahu Anda apa yang harus dilakukan perangkat lunak untuk disebut sistem operasi, menunjukkan kepada Anda bagaimana sistem operasi di komputer desktop Anda bekerja dan memberi Anda beberapa contoh cara mengendalikan sistem operasi lain di sekitarnya.
Apa itu Sistem Operasi?
Tidak semua komputer memiliki sistem operasi. Komputer yang mengontrol oven microwave di dapur Anda, misalnya, tidak memerlukan sistem operasi. Ini memiliki satu set tugas untuk dilakukan, input yang sangat mudah untuk diharapkan (keypad bernomor dan beberapa tombol pra-setel) dan perangkat keras sederhana yang tidak pernah berubah untuk dikendalikan.
Untuk komputer seperti ini, sistem operasi akan menjadi bagasi yang tidak diperlukan, menaikkan biaya pengembangan dan produksi secara signifikan dan menambah kerumitan yang tidak diperlukan. Sebaliknya, komputer dalam oven microwave hanya menjalankan satu program terprogram sepanjang waktu.
Untuk perangkat lain, sistem operasi menciptakan kemampuan untuk:
● Melayani berbagai keperluan.
● Berinteraksi dengan pengguna dengan cara yang lebih rumit.
● Mengikuti kebutuhan yang berubah dari waktu ke waktu.
Semua komputer desktop memiliki sistem operasi. Yang paling umum adalah keluarga sistem operasi Windows yang dikembangkan oleh Microsoft, sistem operasi Macintosh yang dikembangkan oleh Apple dan keluarga sistem operasi UNIX (yang telah dikembangkan oleh seluruh sejarah individu, perusahaan dan kolaborator).
Ada ratusan sistem operasi lain yang tersedia untuk aplikasi tujuan khusus, termasuk spesialisasi untuk mainframe, robotika, manufaktur, sistem kontrol waktu nyata, dan sebagainya.
Di perangkat apa pun yang memiliki sistem operasi, biasanya ada cara untuk mengubah cara kerja perangkat. Ini jauh dari kecelakaan yang kebetulan, salah satu alasan sistem operasi dibuat dari kode portabel daripada sirkuit fisik permanen adalah sehingga mereka dapat diubah atau dimodifikasi tanpa harus menghapus seluruh perangkat.
Untuk pengguna komputer desktop, ini berarti Anda dapat menambahkan pembaruan keamanan baru, tambalan sistem, aplikasi baru, atau bahkan sistem operasi yang sama sekali baru daripada membuang komputer Anda dan memulai lagi dengan yang baru ketika Anda perlu melakukan perubahan.
Selama Anda memahami cara kerja sistem operasi dan cara mendapatkannya, dalam banyak kasus Anda dapat mengubah beberapa cara perilakunya. Hal yang sama juga berlaku untuk ponsel Anda.
Terlepas dari perangkat apa yang dijalankan sistem operasi, apa sebenarnya yang dapat dilakukannya?
Fungsi Sistem Operasi
Pada tingkat yang paling sederhana, sistem operasi melakukan dua hal:
1. Ia mengelola sumber daya perangkat keras dan perangkat lunak dari sistem. Di komputer desktop, sumber daya ini mencakup hal-hal seperti prosesor, memori, ruang disk, dan lainnya (Di ponsel, termasuk keypad, layar, buku alamat, dialer telepon, baterai, dan koneksi jaringan).
2. Ini menyediakan cara yang stabil dan konsisten bagi aplikasi untuk menangani perangkat keras tanpa harus mengetahui semua detail perangkat keras.
Tugas pertama, mengelola sumber daya perangkat keras dan perangkat lunak, sangat penting, karena berbagai program dan metode input bersaing untuk mendapatkan perhatian unit pemrosesan pusat (CPU) dan memori permintaan, penyimpanan dan bandwidth input/output (I/O) untuk tujuan mereka sendiri.
Dalam kapasitas ini, sistem operasi memainkan peran sebagai induk yang baik, memastikan bahwa setiap aplikasi mendapatkan sumber daya yang diperlukan sambil bermain dengan baik dengan semua aplikasi lain, serta mengurangi kapasitas sistem yang terbatas untuk kebaikan terbesar dari semua aplikasi. pengguna dan aplikasi.
Tugas kedua, menyediakan antarmuka aplikasi yang konsisten, sangat penting jika ada lebih dari satu jenis komputer tertentu yang menggunakan sistem operasi, atau jika perangkat keras yang menyusun komputer tersebut pernah terbuka untuk diubah.
Antarmuka program aplikasi (API) yang konsisten memungkinkan pengembang perangkat lunak untuk menulis aplikasi di satu komputer dan memiliki tingkat keyakinan yang tinggi bahwa itu akan berjalan di komputer lain dengan jenis yang sama, bahkan jika jumlah memori atau kuantitas penyimpanannya berbeda pada kedua mesin tersebut.
Meskipun komputer tertentu unik, sistem operasi dapat memastikan bahwa aplikasi terus berjalan saat terjadi peningkatan dan pembaruan perangkat keras. Ini karena sistem operasi, bukan aplikasi, yang bertugas mengelola perangkat keras dan distribusi sumber dayanya.
Salah satu tantangan yang dihadapi pengembang adalah menjaga agar sistem operasi mereka cukup fleksibel untuk menjalankan perangkat keras dari ribuan vendor yang memproduksi peralatan komputer. Sistem saat ini dapat menampung ribuan printer, disk drive, dan periferal khusus yang berbeda dalam kombinasi apa pun yang memungkinkan.
Jenis Sistem Operasi
Dalam keluarga besar sistem operasi, umumnya ada empat jenis, yang dikategorikan berdasarkan jenis komputer yang mereka kendalikan dan jenis aplikasi yang mereka dukung. Kategorinya adalah:
● Real-time operating system (RTOS) – Sistem operasi waktu nyata digunakan untuk mengontrol mesin, instrumen ilmiah, dan sistem industri. RTOS biasanya memiliki kemampuan antarmuka pengguna yang sangat kecil, dan tidak ada utilitas pengguna akhir, karena sistem akan menjadi “kotak tertutup” saat dikirimkan untuk digunakan. Bagian yang sangat penting dari RTOS adalah mengelola sumber daya komputer sehingga operasi tertentu dijalankan dalam jumlah waktu yang persis sama, setiap kali itu terjadi. Dalam mesin yang kompleks, memiliki suatu bagian yang bergerak lebih cepat hanya karena sumber daya sistem tersedia mungkin sama mengerikannya dengan tidak bergerak sama sekali karena sistem sedang sibuk.
● Pengguna tunggal, tugas tunggal – Sesuai dengan namanya, sistem operasi ini dirancang untuk mengelola komputer sehingga satu pengguna dapat secara efektif melakukan satu hal dalam satu waktu. Palm OS untuk komputer genggam Palm adalah contoh yang baik dari sistem operasi modern single-user, single-task.
● Single-user, multi-tasking – Ini adalah jenis sistem operasi yang digunakan kebanyakan orang di komputer desktop dan laptop mereka saat ini. Platform Microsoft Windows dan MacOS Apple adalah contoh sistem operasi yang memungkinkan satu pengguna memiliki beberapa program yang beroperasi pada waktu yang sama. Misalnya, sangat mungkin bagi pengguna Windows untuk menulis catatan di pengolah kata saat mengunduh file dari Internet sambil mencetak teks pesan email.
● Multi-pengguna – Sistem operasi multi-pengguna memungkinkan banyak pengguna yang berbeda untuk memanfaatkan sumber daya komputer secara bersamaan. Sistem operasi harus memastikan bahwa persyaratan dari berbagai pengguna seimbang, dan bahwa setiap program yang mereka gunakan memiliki sumber daya yang cukup dan terpisah sehingga masalah dengan satu pengguna tidak mempengaruhi seluruh komunitas pengguna. Sistem operasi Unix, VMS dan mainframe, seperti MVS, adalah contoh sistem operasi multi-pengguna.
Penting untuk membedakan antara sistem operasi multi-pengguna dan sistem operasi pengguna tunggal yang mendukung jaringan. Windows 2000 dan Novell Netware masing-masing dapat mendukung ratusan atau ribuan pengguna jaringan, tetapi sistem operasi itu sendiri bukanlah sistem operasi multi-pengguna yang sebenarnya.
Administrator sistem adalah satu-satunya “pengguna” untuk Windows 2000 atau Netware. Dukungan jaringan dan semua login pengguna jarak jauh yang dimungkinkan jaringan, dalam rencana keseluruhan sistem operasi, merupakan program yang dijalankan oleh pengguna administratif.
Dengan mempertimbangkan berbagai jenis sistem operasi, sekarang saatnya untuk melihat fungsi dasar yang disediakan oleh sistem operasi.
Sistem Operasi Komputer
Saat Anda menyalakan daya ke komputer, program pertama yang berjalan biasanya berupa serangkaian instruksi yang disimpan di read-only memory (ROM) komputer. Kode ini memeriksa perangkat keras sistem untuk memastikan semuanya berfungsi dengan baik. Power-on self test (POST) ini memeriksa kesalahan pada CPU, memori, dan sistem input-output dasar (BIOS) dan menyimpan hasilnya di lokasi memori khusus.
Setelah POST berhasil diselesaikan, perangkat lunak yang dimuat dalam ROM (terkadang disebut BIOS atau firmware) akan mulai mengaktifkan drive disk komputer. Di sebagian besar komputer modern, saat komputer mengaktifkan hard disk drive, komputer akan menemukan bagian pertama dari sistem operasi: bootstrap loader.
Bootstrap loader adalah program kecil yang memiliki satu fungsi, Memuat sistem operasi ke dalam memori dan memungkinkannya untuk memulai operasi. Dalam bentuk paling dasar, bootstrap loader menyiapkan program driver kecil yang berinteraksi dengan dan mengontrol berbagai subsistem perangkat keras komputer.
Ini mengatur divisi memori yang menampung sistem operasi, informasi pengguna dan aplikasi. Ini menetapkan struktur data yang akan menampung banyak sekali sinyal, flag, dan semaphore yang digunakan untuk berkomunikasi di dalam dan di antara subsistem dan aplikasi komputer. Kemudian mengalihkan kendali komputer ke sistem operasi.
Tugas sistem operasi, dalam pengertian yang paling umum, terbagi dalam enam kategori:
● Manajemen prosesor.
● Manajemen memori.
● Manajemen perangkat.
● Manajemen Penyimpanan.
● Antarmuka aplikasi.
● Antarmuka pengguna.
Meskipun ada beberapa yang berpendapat bahwa sistem operasi harus melakukan lebih dari enam tugas ini, dan beberapa vendor sistem operasi membangun lebih banyak program utilitas dan fungsi tambahan ke dalam sistem operasi mereka, enam tugas ini menentukan inti dari hampir semua sistem operasi. Selanjutnya, mari kita lihat alat yang digunakan sistem operasi untuk menjalankan masing-masing fungsi ini.
Manajemen Prosesor
Inti dari mengelola prosesor adalah dua masalah terkait:
● Memastikan bahwa setiap proses dan aplikasi menerima cukup waktu prosesor untuk berfungsi dengan baik.
● Menggunakan sebanyak mungkin siklus prosesor untuk pekerjaan nyata.
Unit dasar perangkat lunak yang ditangani sistem operasi dalam menjadwalkan pekerjaan yang dilakukan oleh prosesor adalah proses atau utas, tergantung pada sistem operasi.
Sangat menggoda untuk memikirkan proses sebagai aplikasi, tetapi itu memberikan gambaran yang tidak lengkap tentang bagaimana proses terkait dengan sistem operasi dan perangkat keras.
Aplikasi yang Anda lihat (pengolah kata, spreadsheet, atau permainan) memang merupakan suatu proses, tetapi aplikasi tersebut dapat menyebabkan beberapa proses lain dimulai, untuk tugas-tugas seperti komunikasi dengan perangkat lain atau komputer lain.
Ada juga banyak proses yang berjalan tanpa memberi Anda bukti langsung bahwa proses itu pernah ada. Misalnya, Windows XP dan UNIX dapat menjalankan lusinan proses latar belakang untuk menangani jaringan, manajemen memori, manajemen disk, pemeriksaan virus, dan sebagainya.
Suatu proses, kemudian, adalah perangkat lunak yang melakukan beberapa tindakan dan dapat dikontrol oleh pengguna, oleh aplikasi lain, atau oleh sistem operasi.
Ini adalah proses, bukan aplikasi, yang dikontrol oleh sistem operasi dan dijadwalkan untuk dieksekusi oleh CPU. Dalam sistem tugas tunggal, jadwalnya langsung. Sistem operasi memungkinkan aplikasi untuk mulai berjalan, menangguhkan eksekusi cukup lama untuk menangani interupsi dan masukan pengguna.
Interupsi adalah sinyal khusus yang dikirim oleh perangkat keras atau perangkat lunak ke CPU. Seolah-olah beberapa bagian komputer tiba-tiba mengangkat tangannya untuk meminta perhatian CPU dalam rapat yang ramai.
Terkadang sistem operasi akan menjadwalkan prioritas proses sehingga interupsi tertutup, yaitu, sistem operasi akan mengabaikan interupsi dari beberapa sumber sehingga pekerjaan tertentu dapat diselesaikan secepat mungkin.
Ada beberapa interupsi (seperti yang berasal dari kondisi kesalahan atau masalah dengan memori) yang sangat penting sehingga tidak dapat diabaikan. Interupsi non-maskable (NMI) ini harus segera ditangani, terlepas dari tugas lain yang sedang ditangani.
Sementara interupsi menambahkan beberapa kerumitan pada eksekusi proses dalam sistem tugas tunggal, tugas sistem operasi menjadi jauh lebih rumit dalam sistem multi-tugas. Sekarang, sistem operasi harus mengatur eksekusi aplikasi sehingga Anda yakin ada beberapa hal yang terjadi sekaligus.
Ini rumit karena CPU hanya dapat melakukan satu hal dalam satu waktu. Prosesor multi-inti dan mesin multi-prosesor saat ini dapat menangani lebih banyak pekerjaan, tetapi setiap inti prosesor masih mampu mengelola satu tugas dalam satu waktu.
Untuk menampilkan banyak hal yang terjadi pada saat yang sama, sistem operasi harus beralih di antara proses yang berbeda ribuan kali dalam satu detik. Begini caranya:
● Suatu proses menggunakan sejumlah RAM. Itu juga memanfaatkan register, tumpukan dan antrian di dalam CPU dan ruang memori sistem operasi.
● Ketika dua proses multi-tasking, sistem operasi mengalokasikan sejumlah siklus eksekusi CPU ke satu program.
● Setelah jumlah siklus tersebut, sistem operasi membuat salinan dari semua register, tumpukan dan antrian yang digunakan oleh proses, dan mencatat titik di mana proses berhenti dalam pelaksanaannya.
● Itu kemudian memuat semua register, tumpukan dan antrian yang digunakan oleh proses kedua dan memungkinkannya sejumlah siklus CPU.
● Ketika sudah selesai, itu membuat salinan dari semua register, tumpukan dan antrian yang digunakan oleh program kedua, dan memuat program pertama.
Process Control Block
Semua informasi yang diperlukan untuk melacak proses saat beralih disimpan dalam paket data yang disebut blok kontrol proses. Blok kontrol proses biasanya berisi:
● Nomor ID yang mengidentifikasi proses
● Penunjuk ke lokasi dalam program dan datanya tempat pemrosesan terakhir kali terjadi
● Daftarkan konten
● Status berbagai bendera dan sakelar
● Pointer ke batas atas dan bawah memori yang diperlukan untuk proses tersebut
● Daftar file yang dibuka oleh proses
● Prioritas proses
● Status semua perangkat I/O yang dibutuhkan oleh proses tersebut
Setiap proses memiliki status yang terkait dengannya. Banyak proses tidak menghabiskan waktu CPU sampai mereka mendapatkan semacam input. Misalnya, suatu proses mungkin menunggu penekanan tombol dari pengguna.
Sementara menunggu penekanan tombol, tidak menggunakan waktu CPU. Sementara menunggu, itu “ditangguhkan”. Saat penekanan tombol tiba, OS mengubah statusnya. Ketika status proses berubah, dari tertunda menjadi aktif, misalnya, atau dari ditangguhkan menjadi berjalan, informasi dalam blok kontrol proses harus digunakan seperti data dalam program lain untuk langsung mengeksekusi bagian pengalihan tugas dari sistem operasi.
Proses pertukaran ini terjadi tanpa campur tangan pengguna langsung, dan setiap proses mendapatkan siklus CPU yang cukup untuk menyelesaikan tugasnya dalam waktu yang wajar. Masalah dapat dimulai jika pengguna mencoba memiliki terlalu banyak proses yang berfungsi pada saat yang bersamaan.
Sistem operasi itu sendiri membutuhkan beberapa siklus CPU untuk melakukan penyimpanan dan pertukaran semua register, antrian dan tumpukan proses aplikasi. Jika cukup banyak proses yang dimulai, dan jika sistem operasi belum dirancang dengan cermat, sistem dapat mulai menggunakan sebagian besar siklus CPU yang tersedia untuk bertukar antar proses daripada menjalankan proses.
Ketika ini terjadi, ini disebut thrashing, dan biasanya memerlukan semacam intervensi pengguna langsung untuk menghentikan proses dan menertibkan kembali sistem. Salah satu cara perancang sistem operasi mengurangi kemungkinan meronta-ronta adalah dengan mengurangi kebutuhan proses baru untuk melakukan berbagai tugas.
Beberapa sistem operasi mengizinkan “proses-lite”, yang disebut utas, yang dapat menangani semua pekerjaan intensif CPU dari proses normal, tetapi umumnya tidak menangani berbagai jenis I/O dan tidak menetapkan struktur yang membutuhkan blok kontrol proses yang luas dari proses biasa. Suatu proses dapat memulai banyak utas atau proses lain, tetapi utas tidak dapat memulai proses.
Sejauh ini, semua penjadwalan yang telah kita diskusikan berkaitan dengan satu CPU. Dalam sistem dengan dua atau lebih CPU, sistem operasi harus membagi beban kerja di antara CPU, mencoba menyeimbangkan tuntutan proses yang diperlukan dengan siklus yang tersedia pada CPU yang berbeda.
Sistem operasi asimetris menggunakan satu CPU untuk kebutuhannya sendiri dan membagi proses aplikasi di antara CPU yang tersisa. Sistem operasi simetris membagi dirinya sendiri di antara berbagai CPU, menyeimbangkan permintaan versus ketersediaan CPU bahkan ketika sistem operasi itu sendiri yang berjalan.
Jika sistem operasi adalah satu-satunya perangkat lunak dengan kebutuhan eksekusi, CPU bukan satu-satunya sumber daya yang dijadwalkan. Manajemen memori adalah langkah penting berikutnya untuk memastikan bahwa semua proses berjalan dengan lancar.
Penyimpanan dan Manajemen Memori
Saat sistem operasi mengelola memori komputer, ada dua tugas besar yang harus diselesaikan:
● Setiap proses harus memiliki cukup memori untuk dieksekusi, dan tidak dapat masuk ke ruang memori dari proses lain atau dijalankan oleh proses lain.
● Berbagai jenis memori dalam sistem harus digunakan dengan benar agar setiap proses dapat berjalan paling efektif.
Tugas pertama membutuhkan sistem operasi untuk mengatur batas memori untuk jenis perangkat lunak dan untuk aplikasi individu.
Sebagai contoh, mari kita lihat sistem kecil imajiner dengan RAM 1 megabyte (1.000 kilobyte). Selama proses boot, sistem operasi komputer imajiner kita dirancang untuk pergi ke bagian atas memori yang tersedia dan kemudian “mencadangkan” cukup jauh untuk memenuhi kebutuhan sistem operasi itu sendiri.
Misalkan sistem operasi membutuhkan 300 kilobyte untuk dijalankan. Sekarang, sistem operasi pergi ke bagian bawah kumpulan RAM dan mulai membangun dengan berbagai perangkat lunak driver yang diperlukan untuk mengontrol subsistem perangkat keras komputer. Di komputer imajiner kami, penggeraknya memakan waktu 200 kilobyte. Jadi setelah sistem operasi dimuat sepenuhnya, ada sisa 500 kilobyte untuk proses aplikasi.
Saat aplikasi mulai dimuat ke dalam memori, aplikasi tersebut dimuat dalam ukuran blok yang ditentukan oleh sistem operasi. Jika ukuran blok adalah 2 kilobyte, maka setiap proses yang dimuat akan diberi potongan memori dengan ukuran kelipatan 2 kilobita. Aplikasi akan dimuat dalam ukuran blok tetap ini, dengan blok dimulai dan diakhiri pada batas yang ditetapkan oleh kata-kata berukuran 4 atau 8 byte.
Blok dan batasan ini membantu memastikan bahwa aplikasi tidak akan dimuat di atas ruang satu sama lain dengan sedikit atau dua perhitungan yang buruk. Dengan jaminan itu, pertanyaan yang lebih besar adalah apa yang harus dilakukan ketika ruang aplikasi 500 kilobyte terisi.
Di sebagian besar komputer, dimungkinkan untuk menambahkan memori melebihi kapasitas aslinya. Misalnya, Anda dapat menambah RAM dari 1 menjadi 2 gigabyte. Ini berfungsi dengan baik, tetapi bisa relatif mahal. Ini juga mengabaikan fakta fundamental komputasi sebagian besar informasi yang disimpan aplikasi dalam memori tidak digunakan pada saat tertentu.
Prosesor hanya dapat mengakses memori satu lokasi pada satu waktu, sehingga sebagian besar RAM tidak digunakan setiap saat. Karena ruang disk lebih murah dibandingkan dengan RAM, maka memindahkan informasi dalam RAM ke hard disk dapat sangat memperluas ruang RAM tanpa biaya. Teknik ini disebut manajemen memori virtual.
Penyimpanan disk hanyalah salah satu jenis memori yang harus dikelola oleh sistem operasi, dan juga yang paling lambat. Berdasarkan urutan kecepatannya, jenis memori dalam sistem komputer adalah:
● Cache berkecepatan tinggi – Ini adalah memori dalam jumlah yang relatif kecil dan cepat yang tersedia untuk CPU melalui koneksi tercepat. Pengontrol cache memprediksi bagian data mana yang dibutuhkan CPU selanjutnya dan menariknya dari memori utama ke dalam cache berkecepatan tinggi untuk mempercepat kinerja sistem.
● Memori utama – Ini adalah RAM yang Anda lihat diukur dalam megabyte saat Anda membeli komputer.
● Memori sekunder – Ini paling sering semacam penyimpanan magnetik berputar yang membuat aplikasi dan data tersedia untuk digunakan, dan berfungsi sebagai RAM virtual di bawah kendali sistem operasi.
Sistem operasi harus menyeimbangkan kebutuhan berbagai proses dengan ketersediaan berbagai jenis memori, memindahkan data dalam blok (disebut halaman) antara memori yang tersedia sesuai jadwal proses.
Manajemen Perangkat
Jalur antara sistem operasi dan hampir semua perangkat keras yang tidak ada di motherboard komputer melalui program khusus yang disebut driver. Sebagian besar fungsi driver adalah menjadi penerjemah antara sinyal listrik dari subsistem perangkat keras dan bahasa pemrograman tingkat tinggi dari sistem operasi dan program aplikasi.
Driver mengambil data yang telah didefinisikan oleh sistem operasi sebagai file dan menerjemahkannya menjadi aliran bit yang ditempatkan di lokasi tertentu pada perangkat penyimpanan, atau serangkaian pulsa laser di printer.
Karena ada perbedaan besar dalam perangkat keras, ada perbedaan dalam cara fungsi program driver. Sebagian besar berjalan saat perangkat diperlukan, dan fungsinya hampir sama seperti proses lainnya. Sistem operasi akan sering menetapkan blok berprioritas tinggi ke driver sehingga sumber daya perangkat keras dapat dilepaskan dan disiapkan untuk digunakan lebih lanjut secepat mungkin.
Salah satu alasan mengapa driver terpisah dari sistem operasi adalah agar fungsi baru dapat ditambahkan ke driver dan dengan demikian ke subsistem perangkat keras tanpa memerlukan sistem operasi itu sendiri untuk dimodifikasi, dikompilasi ulang, dan didistribusikan ulang.
Melalui pengembangan driver perangkat perangkat keras baru, pengembangan yang sering dilakukan atau dibayar oleh produsen subsistem daripada penerbit sistem operasi, kapabilitas input/output sistem secara keseluruhan dapat ditingkatkan secara signifikan.
Mengelola input dan output sebagian besar merupakan masalah mengelola antrian dan buffer, fasilitas penyimpanan khusus yang mengambil aliran bit dari perangkat, mungkin keyboard atau port serial, menahan bit tersebut, dan melepaskannya ke CPU dengan kecepatan yang sama. CPU dapat mengatasinya.
Fungsi ini sangat penting ketika sejumlah proses sedang berjalan dan menghabiskan waktu prosesor. Sistem operasi akan menginstruksikan buffer untuk terus mengambil input dari perangkat, tetapi menghentikan pengiriman data ke CPU sementara proses yang menggunakan input tersebut ditangguhkan.
Kemudian, ketika proses yang membutuhkan input diaktifkan kembali, sistem operasi akan memerintahkan buffer untuk mengirim data. Proses ini memungkinkan keyboard atau modem untuk menangani pengguna eksternal atau komputer dengan kecepatan tinggi meskipun ada kalanya CPU tidak dapat menggunakan input dari sumber tersebut.
Mengelola semua sumber daya sistem komputer adalah bagian besar dari fungsi sistem operasi dan, dalam kasus sistem operasi waktu nyata, mungkin hampir semua fungsionalitas yang diperlukan. Namun, untuk sistem operasi lain, menyediakan cara yang relatif sederhana dan konsisten bagi aplikasi dan manusia untuk menggunakan kekuatan perangkat keras adalah bagian penting dari alasan keberadaannya.
Application Program Interfaces (API)
Sama seperti driver menyediakan cara bagi aplikasi untuk menggunakan subsistem perangkat keras tanpa harus mengetahui setiap detail operasi perangkat keras, Application Program Interfaces (Antarmuka Program Aplikasi) memungkinkan pemrogram aplikasi menggunakan fungsi komputer dan sistem operasi tanpa harus langsung melacak semuanya. detail dalam operasi CPU. Mari kita lihat contoh pembuatan file hard disk untuk menyimpan data untuk melihat mengapa ini penting.
Seorang programmer yang menulis aplikasi untuk merekam data dari instrumen ilmiah mungkin ingin mengizinkan ilmuwan untuk menentukan nama file yang dibuat. Sistem operasi mungkin menyediakan fungsi API bernama MakeFile untuk membuat file. Saat menulis program, pemrogram akan memasukkan baris yang terlihat seperti ini:
MakeFile [1, %Name, 2]
Dalam contoh ini, instruksi memberi tahu sistem operasi untuk membuat file yang akan memungkinkan akses acak ke datanya (ditandai dengan 1, opsi lain mungkin 0 untuk file serial), akan memiliki nama yang diketik oleh pengguna (% Name) dan akan menjadi ukuran yang bervariasi tergantung pada seberapa banyak data yang disimpan dalam file (ditandai dengan 2, opsi lain mungkin nol untuk ukuran tetap, dan 1 untuk file yang tumbuh saat data ditambahkan tetapi tidak menyusut saat data dihapus). Sekarang, mari kita lihat apa yang sistem operasi lakukan untuk mengubah instruksi menjadi tindakan.
Sistem operasi mengirimkan kueri ke drive disk untuk mendapatkan lokasi lokasi penyimpanan gratis pertama yang tersedia. Dengan informasi tersebut, sistem operasi membuat entri dalam sistem file yang menunjukkan lokasi awal dan akhir file, nama file, jenis file, apakah file telah diarsipkan, pengguna mana yang memiliki izin untuk melihat atau memodifikasi. file, serta tanggal dan waktu pembuatan file.
Sistem operasi menulis informasi di awal file yang mengidentifikasi file, menyiapkan jenis akses yang memungkinkan dan menyertakan informasi lain yang mengikat file ke aplikasi. Dalam semua informasi ini, kueri ke drive disk dan alamat titik awal dan akhir file dalam format yang sangat bergantung pada pabrikan dan model drive disk.
Karena programmer telah menulis program untuk menggunakan API untuk penyimpanan disk, programmer tidak harus mengikuti kode instruksi, tipe data dan kode respon untuk setiap hard disk dan tape drive yang mungkin. Sistem operasi, terhubung ke driver untuk berbagai subsistem perangkat keras, menangani perubahan detail perangkat keras. Programmer cukup menulis kode untuk API dan mempercayai sistem operasi untuk mengerjakan sisanya.
API telah menjadi salah satu area yang paling diperebutkan di industri komputer dalam beberapa tahun terakhir. Perusahaan menyadari bahwa programmer yang menggunakan API mereka pada akhirnya akan menerjemahkan ini ke dalam kemampuan untuk mengontrol dan mendapatkan keuntungan dari bagian industri tertentu.
Inilah salah satu alasan mengapa begitu banyak perusahaan yang bersedia memberikan aplikasi seperti pembaca atau pemirsa kepada publik secara gratis. Mereka tahu konsumen akan meminta program memanfaatkan pembaca gratis, dan perusahaan aplikasi akan siap membayar royalti untuk memungkinkan perangkat lunak mereka menyediakan fungsi yang diminta oleh konsumen.
Antarmuka pengguna
Sama seperti API menyediakan cara yang konsisten bagi aplikasi untuk menggunakan sumber daya sistem komputer, antarmuka pengguna (UI) membawa struktur ke interaksi antara pengguna dan komputer.
Dalam dekade terakhir, hampir semua pengembangan dalam antarmuka pengguna telah berada di area antarmuka pengguna grafis (Graphical User Interface), dengan dua model, Macintosh Apple dan Microsoft Windows, menerima sebagian besar perhatian dan mendapatkan sebagian besar pangsa pasar. Sistem operasi Linux open-source yang populer juga mendukung antarmuka pengguna grafis.
Ada antarmuka pengguna lain, beberapa grafis dan beberapa tidak, untuk sistem operasi lain. Unix, misalnya, memiliki antarmuka pengguna yang disebut shell yang menghadirkan antarmuka pengguna yang lebih fleksibel dan kuat daripada antarmuka berbasis teks sistem operasi standar.
Program seperti Korn Shell dan C Shell adalah antarmuka berbasis teks yang menambahkan utilitas penting, tetapi tujuan utamanya adalah memudahkan pengguna untuk memanipulasi fungsi sistem operasi. Ada juga antarmuka pengguna grafis, seperti X-Windows dan Gnome, yang membuat Unix dan Linux lebih seperti komputer Windows dan Macintosh dari sudut pandang pengguna.
Penting untuk diingat bahwa di semua contoh ini, antarmuka pengguna adalah program atau sekumpulan program yang berada sebagai lapisan di atas sistem operasi itu sendiri. Hal yang sama juga berlaku, dengan mekanisme yang agak berbeda, dari sistem operasi Windows dan Macintosh.
Fungsi inti sistem operasi, manajemen sistem komputer, terletak pada inti sistem operasi. Manajer tampilan terpisah, meskipun mungkin terikat erat dengan kernel di bawahnya. Ikatan antara kernel sistem operasi dan antarmuka pengguna, utilitas, dan perangkat lunak lain menentukan banyak perbedaan dalam sistem operasi saat ini, dan selanjutnya akan mendefinisikannya di masa mendatang.
Pengembangan Sistem Operasi
Untuk sistem desktop, akses ke LAN atau Internet telah menjadi fitur yang diharapkan sehingga dalam banyak hal sulit untuk mendiskusikan sistem operasi tanpa mengacu pada koneksinya ke komputer dan server lain.
Pengembang sistem operasi telah menjadikan Internet sebagai metode standar untuk mengirimkan pembaruan sistem operasi yang penting dan perbaikan bug. Meskipun dimungkinkan untuk menerima pembaruan ini melalui CD atau DVD, ini menjadi semakin jarang terjadi. Faktanya, beberapa sistem operasi itu sendiri hanya tersedia melalui distribusi melalui Internet.
Lebih lanjut, proses yang disebut NetBooting telah merampingkan kemampuan untuk memindahkan sistem operasi yang berfungsi dari komputer desktop konsumen standar, kernel, antarmuka pengguna, dan semua mesin yang dikontrolnya.
Ini sebelumnya hanya mungkin untuk power-user berpengalaman pada platform multi-user seperti UNIX dan dengan rangkaian aplikasi khusus. NetBooting memungkinkan sistem operasi untuk satu komputer dilayani melalui koneksi jaringan, oleh komputer jarak jauh yang terhubung di mana saja di jaringan.
Satu server NetBoot dapat melayani sistem operasi ke beberapa lusin komputer klien secara bersamaan, dan bagi pengguna yang duduk di depan setiap komputer klien, pengalamannya sama seperti mereka menggunakan sistem operasi desktop yang mereka kenal seperti Windows atau Mac OS.
Satu pertanyaan mengenai masa depan sistem operasi menyangkut kemampuan filosofi tertentu dari distribusi perangkat lunak untuk menciptakan sistem operasi yang dapat digunakan oleh perusahaan dan konsumen secara bersama-sama.
Linux, sistem operasi yang dibuat dan didistribusikan sesuai dengan prinsip-prinsip open source, memiliki pengaruh yang signifikan terhadap sistem operasi secara umum. Sebagian besar sistem operasi, driver, dan program utilitas ditulis oleh organisasi komersial yang mendistribusikan versi perangkat lunak mereka yang dapat dijalankan, versi yang tidak dapat dipelajari atau diubah.
Sumber terbuka memerlukan distribusi materi sumber asli yang dapat dipelajari, diubah, dan dibangun di atasnya, dengan hasil sekali lagi didistribusikan secara bebas. Di ranah komputer desktop, hal ini telah menyebabkan pengembangan dan distribusi aplikasi berguna dan bebas biaya yang tak terhitung jumlahnya seperti program manipulasi gambar GIMP dan server Web populer Apache. Di ranah perangkat konsumen, penggunaan Linux telah membuka jalan bagi pengguna individu untuk memiliki kontrol yang lebih besar atas perilaku perangkat mereka.
Banyak perangkat konsumen seperti ponsel dan router dengan sengaja menyembunyikan akses ke sistem operasi dari pengguna, sebagian besar untuk memastikan bahwa itu tidak rusak atau dihapus secara tidak sengaja.
Dalam banyak kasus, mereka membiarkan “mode pengembang” atau “mode pemrogram” terbuka untuk memungkinkan dilakukannya perubahan; namun, itu hanya jika Anda tahu cara menemukannya.
Seringkali sistem ini dapat diprogram sedemikian rupa sehingga hanya ada beberapa perubahan yang dapat dilakukan. Beberapa perangkat membiarkan mode akses dan cara membuat perubahan yang kuat terbuka untuk pengguna, terutama yang menggunakan Linux.