Shell (komputer)
1 . Shell,
dalam komputer adalah salah satu jenis program
asali sistem
operasi (seringnya merupakan program yang
terpisah dari inti
sistem operasi) yang menyediakan komunikasi
langsung antara pengguna dan sistem operasi. Contoh dari kekerang
adalah COMMAND.COM
dalam MS-DOS,
Macintosh Finder (Macintosh), Windows
Explorer, Command
Prompt/cmd.exe, PowerShell
dalam Microsoft
Windows, Bourne
shell, C
shell, Korn
shell dan masih banyak lainnya khususnya
dalam keluarga sistem operasi UNIX. Beberapa kekerang juga dapat
digunakan untuk melakukan pengelolaan berkas.
Sistem komputer modern terdiri dari satu atau lebih CPU dan sejumlah device controller yang terhubung melalui BUS dan menyediakan akses berbagi memori (shared memory). CPU dan semua device controller berjalan secara bersamaan sehingga dapat menimbulkan persaingan penggunaan memori. Untuk menjamin berbagi memori secara berurutan, pengontrol memori menyediakan fungsi akses sinkronisasi ke memori.
Pada saat komputer dinyalakan, komputer melakukan inisialisasi oleh program (bootstrap) yang tersimpan dalam ROM (Read Only Memory) atau EEPROM (Electrically Erasable Programable Read Only memory) yang biasa disebut firmware melalui perangkat keras komputer. Proses ini menginisialisasi semua aspek sistem, dari register-register CPU ke pengontrol peralatan (device controller) lalu ke pengontrol memori (memory controller). Program bootstrap harus mengetahui bagaimana meload sistem operasi dan meng-eksekusi sistem tersebut. Untuk mengerjakan tujuan ini, bootstrap harus melokasikan dan me-load kernel sistem operasi ke memori kemudian meng-eksekusi proses pertama (init) dan menunggu event-event yang akan terjadi. Kejadian-kejadian (events) biasanya disinyalkan oleh sebuah interupsi (interrupt) yang berasal dari perangkat keras (hardware) atau perangkat lunak (software). Hardware dapat memicu interrupt setiap saat dengan mengirim sinyal ke CPU, biasanya melalui system bus. Sedangkan software memicu interrupt dengan meng-eksekusi operasi khusus (system call atau monitor call). Ketika CPU ter-interrupt, CPU menghentikan proses yang dilakukan dan secara langsung mengeksekusi ke lokasi yang ditentukan, kemudian akan kembali ke proses semula jika proses interupsi sudah diselesaikan.
Struktur Penyimpanan
Program-program komputer harus tersimpan ke dalam memori utama (RAM Random Access Memory) untuk dieksekusi. CPU secara otomatis akan memanggil intruksi-intruksi dari memori utama untuk dieksekusi.
Kelemahan dari memori utama adalah sebagai berikut:
a. memori utama umumnya terlalu kecil untuk memuat semua data dan program secara permanen
b. memori utama merupakan media penyimpan volatile ( kehilangan data ketika komputer dimatikan).
Untuk mengatasi kelemahan tersebut, sistem komputer menyediakan media penyimpan sekunder (secondary storage) misalnya Magnetic Disk, Tape dan media lainnya.
Struktur I/O (Input/Output)
Umumnya sistem operasi mempunyai device driver untuk setiap device controller. Dalam memulai
pengoperasian I/O, device driver me-load register yang tepat melalui device controller. Kemudian device controller memeriksa isi dari register tersebut untuk menentukan jenis aksi apa yang harus dilakukan (contoh pembacaan karakter dari keyboard). Controller mulai mentransfer data dari peralatan ke buffer lokal. Ketika selesai mentransfer, controller memberitahukan kepada device driver bahwa pekerjaan telah selesai melalui interrupt. Device driver kemudian mengembalikan pengontrolan ke sistem operasi atau mengirimkan informasi status.
Dalam format ini operasi interrupt driven I/O hanya melakukan transfer data dengan jumlah yang kecil, bila terjadi pemindahan data yang besar akan terjadi overhead. Solusi masalah dapat dipecahkan melalui penggunaan DMA (Direct Memory Access). Sesudah setting up buffer-buffer, pointer dan penghitung I/O device, device controller mentransfer sejumlah blok data secara langsung ke/dari buffer penyimpannya ke memori tanpa campur tangan CPU. Hanya satu interrupt dibangkitkan per blok, untuk memberitahukan device driver bahwa operasinya selesai, daripada satu interrupt per byte
Struktur Sistem Operasi
Sistem operasi menyediakan lingkungan dimana program dapat dieksekusi. Salah satu aspek terpenting sistem operasi adalah kemampuan untuk melakukan multiprogramming. Multiprogramming meningkatkan pemanfaatkan CPU dengan mengorganisir job (kode atau data) sehingga CPU selalu mempunyai satu job untuk diproses (mengurangi idle). Sistem multiprograming menyediakan lingkungan dimana bermacam sumber daya (CPU, memori dan peralatan lain) digunakan lebih efektif tetapi tidak menyediakan interaksi user terhadap sistem komputer. Time sharing (multitasking) adalah perluasan logical dari multiprogramming. Dalam sistem ini CPU meng-eksekusi banyak job dengan me-switch diantaranya, tetapi switch tersebut dilakukan sesering mungkin, sehingga user dapat berinteraksi pada setiap program selagi berjalan.
Contohnya ketika ada suatu aplikasi (video render) sedang diproses, user dapat melakukan pekerjaan lain misalnya mengetik dokumen di aplikasi word processor.
Pelayanan Sistem Operasi
Pelayanan sistem operasi menyediakan beberapa fungsi yang sangat membantu user, yaitu:
a. User Interface. Bentuk-bentuk user interface yang umum digunakan adalah Command Line Interface (CLI) dimana menggunakan perintah dalam bentuk teks dan sebuah metode untuk memasukinya, Batch Interface dimana perintah dan directive pengontrolnya dimasukan ke dalam satu file yang akan dieksekusi, Graphical User Interface (GUI) dimana interface ini berbentuk grafik.
b. Program Execution. Sistem harus dapat memanggil program ke memori dan menjalankannya.
c. I/O Operation. Program harus dapat mengatur piranti masukan atau keluaran.
d. File-System Manipulation. Program dapat melakukan baca/tulis, pengubahan dan penghapusan file.
e. Communications. Suatu proses terkadang memerlukan informasi dari proses yang lainnya. Komunikasi dapat dilakukan melalui satu mesin komputer atau mesin komputer lain melalui jaringan komunikasi.
f. Error Detection. Sistem Operasi mampu melakukan deteksi kesalahan yang disebabkan oleh perangkat keras maupun perangkat lunak serta mampu menanganinya.
Beberapa fungsi-fungsi yang mengefisiensikan fungsi lain, antara lain:
g. Resource allocation. Dimana beberapa user dan beberapa job berjalan bersama, sumber daya harus dialokasikan untuk setiap mereka.
h. Accounting. Menjaga jalur dimana user menggunakan berapa dan apa jenis sumber daya komputer tersebut.
i. Protection and Security. Perlindungan sangat diperlukan sistem dari berbagai gangguan yang berasal di luar maupun di dalam sistem tersebut. Layanan tersebut dapat berupa login dan password.
System Calls
System Calls menyediakan interface pelayanan-pelayanan yang disediakan oleh sistem operasi, umumnya sebagai rutin-rutin yang ditulis dengan bahasa C atau C++, atau beberapa tugas yang mengakses hardware secara langsung menggunakan bahasa rakitan. Biasanya programmer lebih memilih Application Programming Interface (API) dibandingkan dengan low level programming.
Ada lima jenis system calls utama, yaitu:
a. Process control merupakan system calls yang mengendalikan proses-proses yang berjalan.
b. File manipulation adalah kumpulan system calls yang bertugas untuk melakukan manipulasi file seperti pembacaan, penulisan, penghapusan dan pengubahan.
c. Device manipulation adalah system calls yang mengatur penggunaan peralatan-peralatan yang terhubung pada mesin tersebut.
d. Information maintenance. System calls yang menghubungkan user dengan sistem operasi dalam hal berbagi informasi.
e. Communications. Ada dua model komunikasi yaitu pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi (Message-Passing) dan pertukaran dengan menggunakan memori (shared-memory).
Konsep Dasar Sistem Operasi
Konsep Dasar Sistem Operasi1.Komponen Sistem Operasi
2.Layanan Sistem Operasi
3.System Calls
4.Pemrograman Sistem
5.Struktur sistem
6.Mesin Virtual
7.Rancangan Sistem
8.System Generation
1)Komponen Sistem
Managemen Proses
Managemen Memori Utama
Managemen Berkas
Managemen I/O
Managemen Penyimpanan Sekunder
Jaringan
Sistem Proteksi
Command-Interpreter System
1.1 Managemen Proses
Proses adalah
1.sebuah program yang sedang dijalankan (eksekusi). Suatu proses memerlukan sumberdaya pada saat ekesekusi:
CPU time, memori, berkas dan peranti I/O
Sistem operasi bertanggung jawab terhadap aktifitas yang berhubungan dengan manajemen proses:
Pembuatan dan penghapusan proses
Penundaan dan pelanjutan proses
Penyedia mekanisme untuk:
• Sinkronisasi antar proses
• Komunikasi antar proses
• Penanganan Deadlock
1.2 Managemen Memori Utama
Memori sebagai tempat penyimpanan instruksi/data dari program.
Penyimpanan yang cepat sehingga dapat mengimbangi kecepatan eksekusi instruksi CPU
Terdiri dari “array words/bytes” yang besar
Alamat digunakan untuk mengakses data (shared oleh CPU dan I/O devices)
Umumnya main memory bersifat “volatile”– tidak permanen
Isinya akan hilang jika komputer di matikan.
Sistem operasi bertanggung jawab untuk aktivitas berikut yang berhubungan dengan manajemen memori:
Melacak pemakaian memori (siapa dan berapa besar?).
Memilih program mana yang akan diload ke memori ketika bisa digunakan.
Alokasi dan dealokasi memori sesuai yang dibutuhkan
1.3 Managemen File
Berkas adalah kumpulan informasi yang berhubungan (sesuai dengan tujuan pembuat berkas tersebut). Biasanya berkas merepresentasikan program dan data.
Sistem operasi bertanggung jawab untuk aktivitas berikut yang berhubungan dengan manajemen berkas:
Pembuatan dan penghapusan berkas
Pembuatan dan penghapusan direktori
Mendukung primitive untuk manipulasi berkas dan direktori
Memetakan berkas pada sistem sekunder
Backup berkas pada media penyimpanan yang stabil (nonvolatile)
Managemen system I/O
Sistem I/O terdiri dari:
Sistem buffer: menampung sementara data dari/ke peranti I/O
Spooling: melakukan penjadwalan pemakaian I/O sistem supaya lebih efisien(antrian dsb)
Antarmuka devices-driver yang umum: menyediakan device driver yang umum sehingga system operasi dapat seragam (buka, baca, tulis, tutup)
Drivers untuk spesifik perangkat keras: menyediakan driver untuk melakukan operasi rinci /detail untuk perangkat keras tertentu.
1.4 Manajemen Penyimpanan Sekunder
Penyimpanan sekunder : Penyimpanan Permanen
Karena memori utama bersifat sementara dan kapasitasnya terlalu kecil, maka untuk menyimpan semua data dan program secara permanen, system computer harus menyediakan penyimpanan sekunder untuk dijadikan back-up memori utama.
Sistem Operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen penyimpanan sekunder:
Manajemen ruang kosong
Alokasi penyimpanan
Penjadwalan disk
1.5 Jaringan (Sistem Terdistribusi)
Sistem Terdistribusi adalah kumpulan prosesor yang tidak berbagi memori atau clock. Setiap prosesor memiliki memori lokal masing-masing.
Prosesor-prosesor dalam system terhubung dalam jaringan komunikasi.
Sistem terdistribusi menyediakan akses pengguna ke bermacam-macam sumber daya. Akses tersebut menyebabkan:
Peningkatan kecepatan kompuatsi
Peningkatan penyediaan data
Peningkatan keandalan
1.6 Sistem Proteksi
Proteksi berkenaan dengan mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, pengguna sistem maupun pengguna sumber daya.
Mekanisme Proteksi harus:
Membedakan antara penggunaan yang sah dan yang tidak sah.
Spesifikasi control untuk diterima
Menyediakan alat untuk pemberlakuan sistem.
1.7 Command-Interpreter System
Sistem Operasi menunggu instruksi dari pengguna (command driven).
Program yang membaca instruksi dan mengartikan control statements (keinginan pengguna) umumnya disebut:
control-card interpreter
command-line interpreter
UNIX shell.
Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O peranti yang ada.
Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.
2)Pelayanan Sistem Operasi
Eksekusi program : meload program ke memory dan menjalankannya (run)
Operasi I/O: pengguna tidak bisa mengontrol I/O secara langsung ( untuk efisiensi dan keamanan), sistem harus bisa menyediakan mekanisme utk melakukan operasi I/O
Manipulasi system berkas : membaca, menulis, membuat, dan menghapus file
Komunikasi : pertukaran informasi, dapat dilaksanakan melalui shared memory atau message passing
Deteksi error : mempertahankan kestabilan dengan mendeteksi error (pada CPU, perangkat keras memori, I/O, program pengguna) dan jika bisa, memperbaikinya
Pelayanan Tambahan
Lebih diarahkan kepada upaya untuk menjaga efisiensi sistem, bukan untuk membantu pengguna
Alokasi sumber daya: mengalokasikan sumber daya kepada beberapa pengguna atau tugas yang dijalankan pada saat yang bersamaan
Accounting: menentukan berapa banyak dan berapa lama users menggunakan sumber daya sistem
Proteksi: menjaga semua akses ke sumber daya system terkontrol
3)System calls
System calls menyediakan antarmuka antara proses (program yang sedang dijalankan) dan system operasi.
Biasanya tersedia sebagai instruksi bahasa rakitan
Beberapa system mengizinkan system calls dibuat langsung dari bahasa pemrograman tingkat tinggi
Beberapa bahasa pemrograman tingkat tinggi (contoh: C, C++) telah didefenisikan untuk menggantikan bahasa rakitan untuk sistem pemrograman
Tiga metode umum yang digunakan dalam memberikan parameter kepada system operasi
Melalui register
Menyimpan parameter dalam blok atau table pada memori dan alamat blok tersebut diberikan sebagai parameter dalam register
Menyimpan parameter (push) kedalam stack (oleh program), dan melakukan pop off pada stack (oleh sistim operasi)
Memberikan Parameter dalam Tabel
Sumber: Silberschatz,et.al, Operating System Concepts, 6thed, .2003, New York: John Wiley & Son.Inc , page 65
Jenis System Calls
Pengendalian proses
Manajemen berkas
Manajemen Peranti
Mempertahankan informasi
Komunikasi
1.Process Control
Selesai, abort
Load, eksekusi
Membuat dan mengakhiri proses
Mengambil dan mengeset atribut proses
Menunggu waktu
Wait event, signal event
Alokasi dan pengosongan memori
2.Manajemen BerkasMembuat dan menghapus berkas
Membuka dan menutup berkas
Read, write, reposition
Mengambil dan mengeset atribut berkas
3.Manajemen Peranti
Meminta peranti, melepaskan peranti
Read, write, reposition
Mengambil dan mengeset atribut peranti
4.Information Maintenance
Mengambil dan mengeset waktu dan tanggal
Mengambil dan mengeset sistem data
Mengambil proses, berkas atau atribut peranti
Mengeset proses, berkas atau atribut peranti
5.Komunikasi
Menciptakan, menghapus hubungan komunikasi
Mengirim dan menerima pesan
Mentransfer status informasi
Attach atau detach remote device
Komunikasi dapat dilakukan melalui message passing atau shared memory
4)Pemrograman sistem
Pemrograman system menyediakan lingkungan yang memungkinkan pengembangan program dan eksekusi berjalan dengan baik
Dapat dikategorikan : Manajemen/manipulasi berkas: membuat, menghapus, copy, rename, print, memanipulasi berkas dan direktori
Informasi Status : tanggal, jam, jumlah memori dan disk yang tersedia, jumlah pengguna, dan informasi tentang status lainnya
Modifikasi Berkas: modifikasi isi berkas
Mendukung bahasa pemrograman: Kompilator, perakit, interpreter
Loading dan eksekusi program: absolute loaders, relocatable loaders, linkage editors, overlay loaders
Komunikasi: menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda
System program yang paling penting adalah command interpreter (mengambil dan menerjemahkan user-specified command selanjutnya)
5)Struktur Sistem
Struktur Sederhana
Metode pendekatan Terlapis
Mikrokernel
1.Struktur Sederhana
Dimulai dengan system yang kecil, sederhana dan terbatas kemudian berkembang dengan cakupan original
Struktur system MS-DOS : disusun untuk mendukung fungsi yang banyak pada ruang yang kecil
Struktur Sistem UNIX
Terdiri dari 2 bagian:
-Kernel :
•antarmuka
•device drivers
-Program Sistem
2.Pendekatan Terlapis
Lapisan adalah implementasi dari objek abstrak yang merupakan enkapsulasi dari data dan operasi yang bias memanipulasi data tersebut
Lapisan paling bawah: perangkat keras
Lapisan paling atas: antarmuka pengguna
Tingkatan Desain Sistem Operasi
3.Mikrokernel
Menyusun system operasi dengan menghapus semua komponen yang tidak esensial dari kernel, dan mengimplementasikannya sebagai system program dan level pengguna
Fungsi utama: mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan diuser-space
Keuntungan:
ketika layanan baru akan ditambahkan ke user-space, kernel tidak perlu dimodif
OS lebih mudah ditempatkan pada suatu desain perangkat keras ke desain lainnya
mendukung keamanan reliabilitas lebih
Contoh system operasi:
Tru64 UNIX, Mac OS X, QNX
6)Mesin Virtual
Mesin virtual mengambil pendekatan terlapis sebagai kesimpulan logis. Mesin virtual memperlakukan hardware dan system operasi seolah-olah berada pada level yang sama sebagai perangkat keras.
Pendekatan Mesin virtual menyediakan sebuah antarmuka yang identik dengan underlying bare hardware.
Sistem Operasimembuat ilusi dari banyak proses, masing-masing dieksekusi pada prosesornya sendiri dengan virtual memorinya sendiri.
VM dibuat dengan pembagian sumber daya oleh komputer fisik
Sumber daya dari komputer fisik dibagi untuk membuat VM
Penjadwalan CPU bias menciptakan penampilan seakan–akan pengguna mempunyai prosesor sendiri
Spooling dan system data bisa menyediakan virtual card readers dan virtual line printers
Sebuah time-sharing terminal user yang normal melayani sebagai mana operator konsulat
VM software membutuhkan ruang di dalam disk untuk menyediakan memori virtual dan spooling, yaitu sebuah disk virtual
Keuntungan Penggunaan Mesin virtual
Keamanan bukanlah masalah
VM mempunyai pelindungan lengkap pada berbagai sistem sumber daya
Tidak ada pembagian sumber daya secara langsung. Pembagian disk mini dan jaringan diimplementasikan pada perangkat lunak
VM sistem adalah kendaraan yang“sempurna” untuk penelitian dan pengembangan sistem operasi
Dengan VM perubahan suatu bagian tidak akan mempengaruhi komponen yang lain
Kerugian Penggunaan VM
VM sulit di implementasikan karena banyak syarat yang dibutuhkan untuk menyediakan duplikat yang tepat dari underlying machine
Harus punya virtual-user mode dan virtual-monitor mode yang keduanya berjalan dipysical mode. Akibatnya, saat instruksi yang hanya membutuhkan virtual monitor mode dijalankan, register berubah dan bias berefek pada virtual user mode, bahkan bisa me-restart VM
Waktu yang dibutuhkan I/O bias lebih cepat (karena ada spooling), tapi bisa lebih lambat ( karena di interpreted)
Java Virtual Machine
Program Java yang telah di compile adalah platform-neutral byte codes yang dieksekusi oleh Java Virtual Machine(JVM)
JVM terdiri dari:
Pengeload kelas
Pemverifikasi kelas
Runtime interpreter
Just In-Time(JIT) kompilator meningkatkan kinerja
Java Development Environment (JDE) terdiri dari sebuah compile time environment yang mengubah java sources code menjadi byte code, dan sebuah run time environment yang menyediakan Java platform system untuk tuan rumah
7)Perancangan SistemMasalah: menentukan tujuan dan spesifikasi siste.
Perancangan system dipengaruhi oleh perangkat keras dan jenis system sehingga kebutuhan-nya akan lebih sulit untuk dispesifikasikan.
Kebutuhan terdiri dari tujuan pengguna dan tujuan sistem.
Pengguna ingin system yang enak digunakan, mudah dipelajari, terpercaya, aman, dan cepat. Tapi itu semua sebenarnya tidak dibutuhkan oleh sebuah sistem.
Sistem ingin mudah dirancang dan diimplmentasikan, fleksibel, terpercaya, error yang minimal, dan efisien.
Implementasi Sistem
Secara tradisional, system operasi ditulis dalam bahasa rakitan, tapi sekarang sering dibuat dalam bahasa tingkat tinggi.
Keuntungan ditulis dalam bahasa tingkat tinggi adalah
Kodenya bias ditulis dengan lebih cepat
Lebih padat
Mudah dimengerti dan didebug
Sistem operasi yang ditulis dengan bahasa tingkat tinggi akan mudah dipindahkan ke perangkat keras lain, tapi bisa mengurangi kecepatan dan membutuhkan penyimpanan yang lebih banyak.
8)System GenerationSistem operasi dirancang untuk dapat dijalankan pada berbagai jenis mesin, sistemnya harus dikonfigurasikan untuk setiap komputer.
Program Sysgen mendapatkan informasi mengenai konfigurasi khusus tentang system perangkat keras dari sebuah data, antara lain sebagai berikut:
CPU apa yang digunakan, pilihan yang diinstal
Berapa banyak memori yang tersedia
Peralatan yang tersedia
Sistem operasi pilihan apa yang diinginkanatau parameter apa yang digunakan
Satu kali info diperoleh, bisa digunakan dengan berbagai cara.
API (Application Program Interface)
Dalam contoh program sederhana di atas, dibutuhkan setidaknya ribuan system calls per detik. Oleh karena itu Kebanyakan programmer membuat aplikasi dengan menggunakan Application Programming Interface(API). Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil system calls sesuai dengan sistem operasinya. Tidak tertutup kemungkinan nama dari system calls sama dengan nama di API.Keuntungan memprogram dengan menggunakan API adalah:
- Portabilitas. Programmer yang menggunakan API
dapat menjalankan programnya dalam sistem operasi mana saja asalkan
sudah ter- install API tersebut. Sedangkan system call
berbeda antar sistem operasi, dengan catatan dalam implementasinya
mungkin saja berbeda.
- Lebih Mudah Dimengerti. API menggunakan bahasa
yang lebih terstruktur dan mudah dimengerti daripada bahasa system
call. Hal ini sangat penting dalam hal editing dan
pengembangan.
Untuk membuka suatu file tersebut user menggunakan program yang telah dibuat dengan menggunakan bantuan API, maka perintah dari user tersebut diterjemahkan dulu oleh program menjadi perintah open(). Perintah open() ini merupakan perintah dari API dan bukan perintah yang langsung dimengerti oleh kernel sistem operasi. Oleh karena itu, agar keinginan user dapat dimengerti oleh sistem operasi, maka perintah open() tadi diterjemahkan ke dalam bentuk system call oleh system call interface. Implementasi perintah open() tadi bisa bermacam-macam tergantung dari sistem operasi yang kita gunakan.





