Anda di halaman 1dari 57

1.

6 Manajemen Proses
Sebuah program tidak melakukan apapun kecuali jika instruksi dijalankan
oleh CPU. Sebuah
program dalam pelaksanaan, seperti yang disebutkan, adalah sebuah
proses. Program pengguna bersama waktu seperti compiler adalah sebuah
proses. Program pengolah kata yang dijalankan oleh sebuah pengguna
individual pada PC adalah sebuah proses. Sebuah tugas sistem, seperti
mengirim output ke printer, juga bisa menjadi proses (atau paling tidak
satu bagian dari satu). Untuk saat ini, Anda bisa pertimbangkan proses
untuk menjadi pekerjaan atau program time-shared, tapi nantinya Anda
akan belajar konsep itu lebih umum. Seperti yang akan kita lihat di Bab 3,
itu mungkin untuk menyediakan panggilan sistem yang memungkinkan
proses membuat subproses untuk dieksekusi secara bersamaan. Proses
membutuhkan sumber daya tertentu-termasuk waktu CPU, memori, file,
dan perangkat I / O - untuk menyelesaikan tugasnya. Sumber daya ini
diberikan proses saat dibuat atau dialokasikan padanya saat sedang
berjalan. Sebagai tambahan ke berbagai sumber daya fisik dan logis yang
diperoleh proses saat itu dibuat, berbagai inisialisasi data (input) bisa
dilalui. Sebagai contoh, pertimbangkan sebuah proses yang fungsinya
untuk menampilkan status sebuah file di layar dari terminal Prosesnya
akan diberi nama file sebagai masukan dan kemauan jalankan instruksi dan
panggilan sistem yang sesuai untuk mendapatkan dan menampilkan
informasi yang diinginkan di terminal Saat proses berakhir, sistem operasi
akan mengklaim kembali sumber daya yang dapat digunakan kembali.
Kami menekankan bahwa sebuah program dengan sendirinya bukanlah
sebuah proses. Sebuah program adalah sebuah
entitas pasif, seperti isi file yang tersimpan di disk, sedangkan sebuah
proses adalah entitas yang aktif Proses single-threaded memiliki satu
program counter menentukan instruksi berikutnya untuk dieksekusi.
(Thread dicakup dalam Bab 4). Eksekusi proses seperti itu harus
berurutan. CPU mengeksekusi satu instruksi proses demi proses, sampai
proses selesai. Lebih lanjut. Setiap saat, satu instruksi paling banyak
dieksekusi atas nama prosesnya. Demikian,
meskipun dua proses mungkin terkait dengan program yang sama. Meski
demikian dianggap dua urutan eksekusi terpisah. Sebuah multithreaded
proses memiliki beberapa program counter, masing-masing menunjuk ke
instruksi berikutnya untuk mengeksekusi untuk thread tertentu. Suatu
proses adalah unit kerja dalam sebuah sistem. Sistem terdiri dari koleksi
dari proses, beberapa di antaranya adalah proses sistem operasi (yang
dijalankan kode sistem) dan sisanya adalah proses pengguna (yang
mengeksekusi kode pengguna). Semua proses ini berpotensi dieksekusi
secara bersamaan multiplexing pada CPU tunggal, misalnya
sistem operasi bertanggung jawab untuk kegiatan berikut yang
berhubungandenganmanajemenproses:
Proses penjadwalan dan benang pada CPU
Membuat dan menghapus proses pengguna dan sistem
Menangguhkan dan melanjutkan proses
Menyediakanmekanismeuntuk sinkronisasi proses
Menyediakanmekanisme untuk komunikasi proses
Kami membahas teknik manajemen proses di Bab 3 sampai 5.

1.7 Manajemen Memori

Seperti yang telah kita bahas di Bagian 1.2.2, memori utama sangat penting
bagi operasi dari sistem komputer modern. Memori utama adalah array
byte yang besar, mulai dalam ukuran dari ratusan ribu sampai miliaran.
Setiap byte memiliki alamat sendiri. Memori utama adalah gudang data
yang cepat diakses bersama oleh CPU dan perangkat I / O Prosesor pusat
membaca instruksi dari main memory during siklus instruksi-pengambilan
dan keduanya membaca dan menulis data dari memori utama selama
siklus pengambilan data (pada arsitektur von Neumann). Seperti
disebutkan sebelumnya, memori utama umumnya satu-satunya perangkat
penyimpanan besar yang CPU mampu untuk alamat dan akses langsung.
Misalnya, untuk CPU memproses data dari disk, data tersebut pertama-
tama harus ditransfer ke memori utama oleh CPU-generated. Panggilan I /
O Dengan cara yang sama, instruksi harus di memori untuk CPU jalankan
mereka untuk program yang akan dijalankan, harus dipetakan ke alamat
absolut dan dimuat ke memori. Sebagai program dijalankan, ia mengakses
instruksi program dan data dari memori dengan menghasilkan alamat
absolut ini. Akhirnya, program berakhir, ruang memori dinyatakan
tersedia, dan berikutnya
Program bisa dimuat dan dieksekusi. Untuk meningkatkan utilisasi CPU
dan kecepatan komputer. Respon terhadap penggunanya, komputer tujuan
umum harus menyimpan beberapa program dalam memori, menciptakan
kebutuhan akan manajemen memori. Banyak memori berbeda.
Bab 1 Pendahuluan

Skema manajemen digunakan Skema ini mencerminkan berbagai


pendekatan, dan keefektifan setiap algoritma yang diberikan bergantung
pada situasinya. Dalam memiliki skema pengelolaan memori untuk sistem
tertentu, kita harus memperhitungkannya.
Banyak faktor-terutama desain hardware dari sistem. Setiap algoritma
membutuhkan dukungan hardware sendiri. Sistem operasi bertanggung
jawab untuk kegiatan berikut yang berhubungan dengan manajemen
memori:
Melacak bagian memori mana yang saat ini digunakan dan siapa
menggunakan mereka
Menentukan proses (atau bagian proses) dan data yang akan digunakan
dan kehabisan memori
Mengalokasikan dan mengalokasikan ruang memori seperlunya
Teknik pengelolaan memori dibahas pada Bab 8 dan 9.
1.8 Manajemen Penyimpanan

Agar sistem komputer nyaman bagi pengguna, sistem operasi menyediakan


seragam, tampilan logis dari penyimpanan informasi. Sistem operasi
abstrak dari sifat fisik perangkat penyimpanannya untuk mendefinisikan
logis unit penyimpanan, file Sistem operasi memetakan file ke media fisik
dan mengakses file-file ini melalui perangkat penyimpanan.

1.8.1 Manajemen File-Sistem

Manajemen file adalah salah satu komponen sistem operasi yang paling
terlihat.Komputer dapat menyimpan informasi pada beberapa jenis media
fisikyang berbeda. Disk magnetik, cakram optik, dan pita magnetik adalah
yang paling umum. Setiap media ini memiliki ciri khas dan sifat fisik
organisasi. Setiap media dikendalikan oleh perangkat, seperti disk drive
atau tape drive, itu juga memiliki karakteristik tersendiri. Properti ini
meliputi kecepatan akses, kapasitas, kecepatan transfer data, dan metode
akses (berurutan atau acak). Sebuah file adalah kumpulan informasi terkait
yang ditentukan oleh penciptanya. Biasanya, file mewakili program (baik
bentuk sumber dan objek) dan data. File data mungkin
menjadi numerik, alfabet, alfanumerik, atau biner. File bisa berbentuk
bebas (untuk contoh, file teks), atau formatnya bisa diformat secara kaku
(misalnya bidang tetap). Jelas, konsep sebuah file sangat umum. Sistem
operasi menerapkan konsep abstrak dari sebuah file dengan mengelola
media penyimpanan massal, seperti kaset dan disket, dan perangkat yang
mengendalikannya. Selain itu, file biasanya diatur ke dalam direktori agar
lebih mudah
menggunakan. Akhirnya, ketika beberapa pengguna memiliki akses ke file,
mungkin diinginkan untuk mengontrol pengguna mana yang dapat
mengakses file dan bagaimana pengguna dapat mengaksesnya (untuk
contoh, baca, tulis, tambahkan). Sistem operasi bertanggung jawab untuk
kegiatan berikut yang berhubungan dengan manajemen berkas:
Membuat dan menghapus file
Membuat dan menghapus direktori untuk mengatur file
Mendukung primitif untuk memanipulasi file dan direktori
Memetakan file ke penyimpanan sekunder
Mencadangkan file pada media penyimpanan yang stabil (nonvolatile)
Teknik pengelolaan berkas dibahas pada Bab 11 dan 12.

1.8.2 Manajemen Penyimpanan Massal

Seperti yang sudah kita lihat, karena memori utama terlalu kecil untuk
menampung semua data dan program, dan karena data yang dimilikinya
hilang saat power hilang, sistem komputer harus menyediakan secondary
storage untuk back up main ingatan. Sebagian besar sistem komputer
modern menggunakan disk sebagai on-line utama media penyimpanan
untuk kedua program dan data. Sebagian besar program-termasuk
kompiler, perakit, pengolah kata, editor, dan formatters-disimpan pada
disk sampai dimuat ke memori. Mereka kemudian menggunakan disk
sebagai sumbernya dan tujuan pengolahannya. Makanya, pengelolaan disk
yang tepat. Penyimpanan sangat penting bagi sistem komputer. Sistem
operasinya adalah bertanggung jawab untuk kegiatan berikut sehubungan
denganmanajemendisk:
Pengelolaan ruang bebas
Alokasi penyimpanan
Penjadwalan disk
Karena penyimpanan sekunder sering digunakan, harus digunakan secara
efisien. Itu seluruh kecepatan pengoperasian komputer dapat bergantung
pada kecepatan disk sub sistem dan algoritma yang memanipulasi
subsistem tersebut. Namun, ada banyak kegunaan untuk penyimpanan
yang lebih lambat dan lebih rendah biaya (dan kadang-kadang dengan
kapasitas lebih tinggi) daripada penyimpanan sekunder. Backup dari data
disk, penyimpanan data yang jarang digunakan, dan penyimpanan arsip
jangka panjang beberapa contoh. Drive tape magnetik dan kaset dan drive
CD dan DVD mereka dan piringan adalah perangkat penyimpanan tersier
yang khas. Media (kaset dan optik piring-piring) bervariasi antara WORM
(write-once, read-many-times) dan RW (baca- tulis) format. Penyimpanan
tersier tidak penting untuk kinerja sistem, namun tetap harus dikelola.
Beberapa sistem operasi mengambil tugas ini, sementara yang lain pergi
manajemen penyimpanan tersier ke program aplikasi. Beberapa fungsinya
sistem operasi yang dapat disediakan meliputi pemasangan dan
penguraian media di perangkat, mengalokasikan dan membebaskan
perangkat untuk penggunaan eksklusif oleh proses, dan memindahkan data
dari penyimpanan sekunder ke tersier.
Teknik pengelolaan penyimpanan sekunder dan tersier dibahas.
di Bab 10.
1.8.3 Caching

Caching adalah prinsip penting dari sistem komputer. Begini cara kerjanya.
Informasi biasanya disimpan di beberapa sistem penyimpanan (seperti
memori utama).
Seperti yang digunakan, ia disalin ke dalam sistem penyimpanan yang lebih
cepat-cache-on a.
Pengantar

Dasar sementara. Bila kita membutuhkan informasi tertentu, pertama kita


periksa apakah itu ada dalam cache Jika ya, kami menggunakan informasi
langsung dari cache Jika tidak, kami menggunakan informasi dari
sumbernya, memasang salinannya dalam cache di bawah asumsi bahwa
kita akan membutuhkannya lagi segera. Selain itu, register programmable
internal, seperti register indeks, berikan cache berkecepatan tinggi untuk
memori utama. Pemrogram (atau compiler) menerapkan algoritma
register-allocation dan register-replacement untuk
putuskan informasi mana yang harus disimpan dalam register dan yang
harus tetap di main
ingatan. Cache lainnya diimplementasikan sepenuhnya di perangkat keras.
Misalnya, paling
sistem memiliki instruksi cache untuk menahan instruksi yang diharapkan
dieksekusi selanjutnya Tanpa cache ini, CPU harus menunggu beberapa
siklus sementara sebuah instruksi diambil dari memori utama. Untuk
alasan yang sama, sebagian besar sistem memiliki satu atau lebih cache
data berkecepatan tinggi dalam hirarki memori. Kami tidak
memperhatikan cache khusus perangkat keras ini dalam teks ini, karena
mereka berada di luar kendali sistem operasi. Karena cache memiliki
ukuran terbatas, manajemen cache menjadi penting masalah desain
Pemilihan ukuran cache dan kebijakan penggantian secara hati-hati
dapat menghasilkan kinerja yang sangat meningkat. Gambar 1.11
membandingkan penyimpanan kinerja di workstation besar dan server
kecil. Berbagai penggantian
algoritma untuk cache yang dikendalikan perangkat lunak dibahas di Bab 9.
Memori utama dapat dilihat sebagai cache cepat untuk penyimpanan
sekunder, karena data dalam penyimpanan sekunder harus disalin ke
memori utama untuk digunakan dan data harus berada dalam memori
utama sebelum dipindahkan ke penyimpanan sekunder diamankan. File-
sistem data, yang berada secara permanen pada sekunder penyimpanan,
mungkin muncul pada beberapa tingkatan dalam hirarki penyimpanan.
Paling tinggi tingkat, sistem operasi dapat menyimpan cache data file-
sistem di main ingatan. Selain itu, cakram solid-state bisa digunakan untuk
penyimpanan berkecepatan tinggi itu diakses melalui antarmuka file-
system. Sebagian besar penyimpanan sekunder ada di cakram magnetik
Penyimpanan magnetic-disk, pada gilirannya, seringkali didukung ke kaset
magnetik atau removable disk untuk melindungi terhadap kehilangan data
dalam kasus dari kegagalan hard disk. Beberapa sistem secara otomatis
mengarsipkan data file lama dari penyimpanan sekunder untuk
penyimpanan tersier, seperti jukebox tape, untuk menurunkan biaya
penyimpanan (lihat Bab 10).

TABEL 1.11

TABEL 1.12
Pergerakan informasi antara tingkat hirarki penyimpanan mungkin
jadilah eksplisit atau implisit, tergantung pada desain perangkat keras dan
mengendalikan perangkat lunak sistem operasi. Misalnya, transfer data
dari cache ke CPU dan register biasanya merupakan fungsi hardware, tanpa
sistem operasi intervensi. Sebaliknya, transfer data dari disk ke memori
biasanya dikendalikan oleh sistem operasi. Dalam struktur penyimpanan
hirarkis, data yang sama mungkin muncul dalam perbedaan tingkat sistem
penyimpanan. Misalnya, anggaplah bahwa bilangan bulat A yang ada
bertambah dengan 1 terletak pada file B, dan file B berada pada disk
magnetik. Operasi kenaikan berjalan dengan terlebih dahulu mengeluarkan
operasi I / O untuk menyalin blok disk tempat A berada pada memori
utama. Operasi ini diikuti oleh menyalin A ke cache dan ke register internal.
Dengan demikian, salinan A muncul di beberapa tempat: pada disk
magnetik, di memori utama, di cache, dan di
register internal (lihat Gambar 1.12). Begitu kenaikan terjadi di internal
register, nilai A berbeda dalam berbagai sistem penyimpanan. Nilai A
menjadi sama hanya setelah nilai baru A ditulis dari internal daftar kembali
ke disk magnetik. Dalam lingkungan komputasi dimana hanya satu proses
yang dijalankan pada satu waktu, pengaturan ini tidak menimbulkan
kesulitan, karena akses ke bilangan bulat A akan selalu ke salinan pada
tingkat tertinggi dari hirarki. Namun, dalam multitasking lingkungan,
dimana CPU dinyalakan bolak-balik di antara berbagai proses, perhatian
ekstrim harus dilakukan untuk memastikan bahwa, jika beberapa proses
diinginkan untuk mengakses A, maka setiap proses ini akan mendapatkan
update terbaru nilai A. Keadaan menjadi lebih rumit dalam lingkungan
multiprosesor dimana, selain untuk menjaga register internal, masing-
masing CPU juga berisi cache lokal (Gambar 1.6). Di lingkungan seperti itu,
salinan A mungkin ada bersamaan di beberapa cache. Karena berbagai CPU
bisa dieksekusi secara paralel, kita harus memastikan bahwa update ke
nilai A dalam satu cache segera tercermin dalam semua cache lain di mana
A berada. Situasi ini
disebut koherensi cache, dan biasanya merupakan masalah perangkat
keras (ditangani di bawah tingkat sistem operasi). Di lingkungan
terdistribusi, situasinya menjadi semakin kompleks. Di lingkungan ini,
beberapa salinan (atau replika) file yang sama dapat disimpan
komputer yang berbeda Karena berbagai replika dapat diakses dan
diperbarui secara bersamaan, beberapa sistem terdistribusi memastikan
bahwa, ketika replika diperbarui
Di satu tempat, semua replika lainnya dibawa up to date sesegera mungkin.
Berbagai cara untuk mencapai jaminan ini, seperti yang akan kita bahas di
Bab 17.

1.8.4 Sistem I / O

Salah satu tujuan sistem operasi adalah menyembunyikan keistimewaan


yang spesifik
perangkat keras dari pengguna. Misalnya, di UNIX, kekhasan I / OBab 1
Pendahuluan

Perangkat tersembunyi dari sebagian besar sistem operasi itu sendiri oleh I
/Osubsistem Subsistem I / O terdiri dari beberapa komponen:
Komponen manajemen memori yang mencakup buffering, caching, dan
spooling
Antarmuka driver perangkat umum
Driver untuk perangkat keras tertentu
Hanya pengandar perangkat yang mengetahui kekhasan perangkat
tertentu itu ditugaskan. Kami membahas di Bagian 1.2.3 bagaimana
penangan interupsi dan driver perangkat berada digunakan dalam
pembangunan subsistem I / O yang efisien. Di Bab 13, kita bahas
bagaimana antarmuka subsistem I / O ke komponen sistem lainnya, kelola
perangkat, transfer data, dan mendeteksi penyelesaian I / O.

1.9 Perlindungan dan Keamanan

Jika sistem komputer memiliki banyak pengguna dan memungkinkan


eksekusi bersamaan
dari beberapa proses, maka akses terhadap data harus diatur. Untuk alasan
tersebut,
mekanisme memastikan bahwa file, segmen memori, CPU, dan sumber
daya lainnya dapat
dioperasi hanya oleh proses yang mendapatkan otorisasi yang tepat dari
sistem operasi. Misalnya hardware memory-addressing memastikan
bahwa sebuah proses dapat dijalankan hanya di dalam ruang alamatnya
sendiri. Itu timer memastikan bahwa tidak ada proses yang bisa
mengendalikan CPU tanpa pada akhirnya melepaskan kendali Register
kontrol perangkat tidak dapat diakses oleh pengguna integritas berbagai
perangkat periferal dilindungi.
Perlindungan, kemudian, adalah mekanisme untuk mengendalikan akses
proses atau pengguna ke sumber daya yang ditentukan oleh sistem
komputer. Mekanisme ini harus
providemeans untuk menentukan kontrol yang harus diberlakukan dan
untuk menegakkan kontrol. Perlindungan dapat meningkatkan kehandalan
dengan mendeteksi kesalahan laten pada antarmuka antara subsistem
komponen. Deteksi awal kesalahan antarmuka seringkali bisa terjadi
mencegah kontaminasi subsistem yang sehat oleh subsistem lain yaitu
tidak berfungsi Selanjutnya, sumber daya yang tidak dilindungi tidak dapat
dipertahankan gunakan (atau disalahgunakan) oleh pengguna yang tidak
sah atau tidak kompeten. Proteksi yang berorientasi sistem menyediakan
ameans untuk membedakan antara yang berwenang dan yang tidak
berwenang penggunaan, seperti yang akan kita bahas di Bab 14.
Sebuah sistem dapat memiliki perlindungan yang memadai namun tetap
rentan terhadap kegagalan dan memungkinkan akses yang tidak tepat
Pertimbangkan pengguna yang informasi autentikasinya (cara dia
mengidentifikasi dirinya ke sistem) dicuri. Data nya bisa
disalin atau dihapus, meskipun proteksi file dan memori berfungsi. Ini
tugas keamanan untuk mempertahankan sistem dari serangan eksternal
dan internal. Seperti itu serangan menyebar di kisaran yang sangat besar
dan mencakup virus dan worm, penolakan layanan serangan (yang
menggunakan semua sumber daya sistem dan tetaplah yang sah pengguna
keluar dari sistem), pencurian identitas, dan pencurian layanan (tidak sah
penggunaan sistem). Pencegahan beberapa serangan ini dianggap fungsi
sistem operasi pada beberapa sistem, sementara sistem lain
membiarkannya kebijakan atau perangkat lunak tambahan. Karena
kenaikan insiden keamanan yang mengkhawatirkan, fitur keamanan
sistem operasi merupakan area penelitian yang berkembang pesat dan
implementasi. Kami membahas keamanan di Bab 15. Perlindungan dan
keamanan mengharuskan sistem untuk bisa membedakan keduanya semua
penggunanya. Sebagian besar sistem operasi menyimpan daftar nama
pengguna dan pengenal pengguna terkait (ID pengguna). Dalam bahasa
Windows, ini adalah keamanan ID (SID). ID numerik ini unik, satu per
pengguna. Saat pengguna masuk ke sistem, tahap otentikasi menentukan
ID pengguna yang sesuai pengguna. ID pengguna itu terkait dengan semua
proses dan benang pengguna.
Bila ID perlu dibaca oleh pengguna, itu diterjemahkan kembali ke pengguna
nama melalui daftar nama pengguna. Dalam beberapa keadaan, kami ingin
membedakan beberapa pengguna daripada pengguna individual. Misalnya,
pemilik file pada sistem UNIX mungkin
diizinkan untuk mengeluarkan semua operasi pada file itu, sedangkan satu
set pengguna yang dipilih mungkin diizinkan hanya untuk membaca file
Untuk mencapai hal ini, kita perlu mendefinisikan sebuah kelompok nama
dan kumpulan pengguna milik kelompok tersebut. Fungsionalitas grup
dapat diimplementasikan sebagai daftar nama grup dan pengenal
kelompok secara keseluruhan. Seorang pengguna bisa berada dalam satu
atau lebih kelompok, tergantung pada desain sistem operasi keputusan. ID
grup pengguna juga disertakan dalam setiap proses yang terkait dan
benang. Dalam proses penggunaan sistem normal, ID pengguna dan ID
grup untuk pengguna cukup. Namun, terkadang pengguna perlu
meningkatkan hak istimewa untuk memperolehnya izin ekstra untuk
aktivitas Pengguna mungkin memerlukan akses ke perangkat yang ada
terbatas, misalnya. Sistem operasi menyediakan berbagai metode untuk
memungkinkan eskalasi hak istimewa Pada UNIX, misalnya, atribut setuid
pada sebuah program menyebabkan program berjalan dengan user ID dari
pemilik file, bukan ID pengguna saat ini. Proses berjalan dengan UID efektif
ini sampai mati hak istimewa tambahan atau berakhir.
1.10 Struktur Data Kernel

Kita beralih ke topik yang menjadi pusat penerapan sistem operasi:


caranya data terstruktur dalam sistem Pada bagian ini, kami secara singkat
menjelaskan beberapa struktur data fundamental digunakan secara luas
dalam sistem operasi. Pembaca yang memerlukan rincian lebih lanjut
tentang struktur ini, dan juga pihak lain, harus berkonsultasi bibliografi di
akhir bab ini.

1.10.1 Daftar, Tumpukan, dan Antrian

Array adalah struktur data sederhana dimana setiap elemen dapat diakses
langsung. Misalnya, memori utama dibangun sebagai array. Jika item data
disimpan lebih besar dari satu byte, maka beberapa byte dapat
dialokasikan ke item, dan item tersebut dialamatkan sebagai nomor item
ukuran barang. Tapi bagaimana dengan menyimpan barang yang
ukurannya mungkin berbeda? Dan bagaimana dengan mengeluarkan item
jika posisi relatif dari sisa barang harus dipertahankan? Dalam situasi
seperti itu, array memberi jalan ke struktur data lainnya.
Setelah array, daftar mungkin merupakan struktur data yang paling
mendasar ilmu Komputer. Sedangkan setiap item dalam array dapat
diakses secara langsung, maka item dalam daftar harus diakses dalam
urutan tertentu. Artinya, daftar mewakili kumpulan nilai data sebagai
urutan. Untuk metode yang paling umum.
Gambar 1.13 Daftar terkait tunggal.

Implementasi struktur ini adalah linked list, dimana item dihubungkan ke


satu
lain. Daftar tertaut terdiri dari beberapa jenis:
Dalam daftar satu-satunya, masing-masing item mengarah ke
penggantinya, seperti yang digambarkan di dalamnya Gambar 1.13.
Dalam daftar ganda terkait, item tertentu dapat merujuk ke
pendahulunya atau
ke penggantinya, seperti yang diilustrasikan pada Gambar 1.14.
Dalam daftar yang terkait secara sirkular, elemen terakhir dalam daftar
mengacu pada yang pertama elemen, bukan null, seperti yang
diilustrasikan pada Gambar1.15.Linked list mengakomodasi item dengan
berbagai ukuran dan memungkinkan penyisipan mudah dan penghapusan
barang. Salah satu potensi kerugian menggunakan daftar adalah itu
kinerja untuk mengambil item tertentu dalam daftar ukuran n adalah linier
- O (n), karena membutuhkan potensi untuk melintasi semua unsur dalam
kasus terburuk. Daftar terkadang digunakan secara langsung oleh
algoritma kernel. Seringkali, meskipun begitu, mereka
digunakan untuk membangun struktur data yang lebih kuat, seperti
tumpukan dan
antrian. Tumpukan adalah struktur data berurutan yang menggunakan
yang terakhir masuk terlebih dulu out (LIFO) untuk menambahkan dan
menghapus barang, yang berarti item terakhir ditempatkan ke tumpukan
adalah item pertama dihapus. Operasi untuk memasukkan dan menghapus
item dari tumpukan dikenal sebagai push and pop, masing-masing. Sebuah
sistem operasi sering menggunakan stack saat memanggil fungsi
pemanggilan. Parameter,
variabel lokal, dan alamat pengirim didorong ke tumpukan saat fungsi
disebut; Kembali dari fungsi panggil muncul barang - barang dari
tumpukan. Antrian, sebaliknya, adalah struktur data berurutan yang
menggunakan pertama, keluar pertama (FIFO) prinsip: barang dihapus dari
antrian sesuai pesanan di mana mereka dimasukkan. Ada banyak contoh
antrian sehari-hari, termasuk pembeli yang menunggu di jalur kasir di
sebuah toko dan mobil mengantri
pada sinyal lalu lintas. Antrian juga cukup umum dalam sistem operasi-
pekerjaan yang dikirim ke printer biasanya dicetak sesuai urutannya
disampaikan, misalnya. Seperti yang akan kita lihat di Bab 6, tugas yang
menunggu dijalankan pada CPU yang tersedia sering diatur dalam antrian.
Gambar 1.15 Daftar yang terkait secara sirkuler.

1.10.2 Pohon

Pohon adalah struktur data yang dapat digunakan untuk


merepresentasikan data secara hirarkis. Data nilai dalam struktur pohon
dihubungkan melalui hubungan orang tua-anak. Di sebuah pohon umum,
orang tua mungkin memiliki jumlah anak yang tidak terbatas. Dalam biner
pohon, orang tua mungkin memiliki paling banyak dua anak, yang kita
sebut anak kiri dan anak yang tepat Pohon pencarian biner juga
membutuhkan pemesanan antara dua anak orang tua di mana anak laki-
laki <= anak yang benar. Angka 1.16 memberikan contoh pohon pencarian
biner. Saat kita mencari item di pohon pencarian biner, kinerja terburuk
adalah O (n) (pertimbangkan bagaimana ini bisa terjadi terjadi). Untuk
memperbaiki situasi ini, kita bisa menggunakan algoritma untuk membuat
keseimbangan pohon pencarian biner Di sini, pohon yang berisi n item
paling banyak memiliki tingkat lg n memastikan performa terburuk O (lg
n). Kita akan lihat di Bagian 6.7.1 itu Linux menggunakan pohon pencarian
biner yang seimbang sebagai bagian dari algoritma penjadwalan CPU-nya.

1.10.3 Fungsi Hash dan Maps

Fungsi hash mengambil data sebagai inputnya, melakukan operasi numerik


dalamhalinidata, dan mengembalikan nilai numerik. Nilai numerik ini
kemudian bisa digunakan sebagai indeks ke dalam tabel (biasanya array)
untuk dengan cepat mengambil data.Sedangkan mencari item data melalui
daftar ukuran n bisa membutuhkan hingga O (n) perbandingan dalam
kasus terburuk, amenggunakan fungsi hash untuk mengambil data dari
meja bisa sama baiknya dengan O (1) dalam kasus terburuk, tergantung
implementasinya rincian. Karena kinerja ini, fungsi hash digunakan secara
ekstensif sistem operasi.

Gambar 1.17 peta Hash.

Salah satu potensi kesulitan dengan fungsi hash adalah dua input bisa
dihasilkan dalam nilai output yang sama-artinya, mereka dapat terhubung
ke lokasi tabel yang sama. Kita bisa mengakomodasi tabrakan hash ini
dengan memiliki linked list di meja itu lokasi yang berisi semua item
dengan nilai hash yang sama. Tentu saja tabrakan lebih banyak terjadi,
fungsi hash yang kurang efisien adalah. Salah satu penggunaan fungsi hash
adalah menerapkan peta hash, yang mengasosiasikannya (atau
memetakan) pasangan [kunci: nilai] menggunakan fungsi hash. Misalnya,
kita bisa memetakan kunci yang beroperasi pada sistem nilai. Begitu
pemetaan terbentuk, kita bisa menerapkan fungsi hash ke kunci untuk
mendapatkan nilai dari peta hash (Gambar 1.17). Misalnya, anggap bahwa
nama pengguna dipetakan ke kata sandi.
Otentikasi password kemudian dilanjutkan sebagai berikut: pengguna
memasukkan nama penggunanya dan password Fungsi hash diterapkan
pada nama pengguna, yang saat itu
digunakan untuk mengambil password Kata sandi yang diambil kemudian
dibandingkan dengan kata sandi yang dimasukkan oleh pengguna untuk
otentikasi.

1.10.4 Bitmaps

Bitmap adalah string dari n digit biner yang dapat digunakan untuk
mewakili status n item misalnya, kita punya beberapa sumber, dan
ketersediaannya dari setiap sumber daya ditunjukkan oleh nilai digit biner:
0 berarti bahwa sumber daya tersedia, sementara 1 menunjukkan bahwa
itu tidak tersedia (atau sebaliknya). Itu nilai dari posisi ke-i dalam bitmap
dikaitkan dengan sumber daya ith. Sebagai misalnya, perhatikan bitmap
yang ditunjukkan dibawah ini :001011101 Sumber daya 2, 4, 5, 6, dan 8
tidak tersedia; sumber daya 0, 1, 3, dan 7 tersedia. Kekuatan bitmap
menjadi jelas saat kita mempertimbangkan ruang mereka efisiensi. Jika kita
menggunakan nilai Boolean delapan bit dan bukan satu bit saja, struktur
data yang dihasilkan akan delapan kali lebih besar. Dengan demikian,
bitmap adalah biasa digunakan bila ada kebutuhan untuk mewakili
ketersediaan yang besar jumlah sumber daya Disk drive memberikan
ilustrasi yang bagus. Berukuran sedang, disk drive bisa dibagi menjadi
beberapa ribu unit individual, disebut disk blok. Bitmap dapat digunakan
untuk menunjukkan ketersediaan setiap blok disk. Struktur data tersebar
luas dalam implementasi sistem operasi. Demikian,kita akan melihat
struktur yang dibahas di sini, bersama dengan orang lain, selama ini teks
saat kita mengeksplorasi algoritma kernel dan implementasinya.
STRUKTUR DATA LINUX KERNEL

Struktur data yang digunakan dalam kernel Linux tersedia di kernel kode.
File include <linux / list.h> menyediakan rincian daftar-linked struktur
data yang digunakan di seluruh kernel. Antrian di Linux dikenal sebagai
sebuah kfifo, dan implementasinya dapat ditemukan di file kfifo.c di
direktori kernel kode sumber Linux juga menyediakan biner yang
seimbang
Implementasi pohon pencarian menggunakan pohon merah-hitam. Rincian
dapat ditemukan di sertakan file <linux / rbtree.h>.

1.11 Lingkungan Komputasi

Sejauh ini, kita telah secara singkat menjelaskan beberapa aspek sistem
komputer dan sistem operasi yang mengelolanya. Kita sekarang beralih ke
diskusi tentang bagaimana caranya sistem operasi digunakan di berbagai
lingkungan komputasi.

1.11.1 Komputasi Tradisional

Seiring komputasi telah matang, garis yang memisahkan banyak komputasi


tradisional
lingkungan telah kabur. Pertimbangkan "lingkungan kantor yang khas".
Beberapa tahun yang lalu, lingkungan ini terdiri dari PC yang terhubung ke
jaringan, dengan server menyediakan layanan file dan cetak. Akses jarak
jauh canggung, dan portabilitas dicapai dengan menggunakan komputer
laptop. Terminal terpasang untuk mainframe lazim di banyak perusahaan
juga, bahkan lebih sedikit lagi akses jarak jauh dan pilihan portabilitas.
Kecenderungan saat ini adalah untuk menyediakan lebih banyak cara
untuk mengakses komputasi ini lingkungan.Web teknologi dan
meningkatkan bandwidth WAN peregangan
batas-batas komputasi tradisional. Perusahaan membangun portal, yang
mana menyediakan akses Web ke server internal mereka. Jaringan
komputer (atau thin client) -yang pada dasarnya adalah terminal yang
mengerti berbasis web komputasi-digunakan menggantikan tempat kerja
tradisional di mana lebih banyak keamanan atau lebih mudah perawatan
yang diinginkan. Komputer mobile bisa melakukan sinkronisasi dengan PC
untuk memungkinkan penggunaan informasi perusahaan yang sangat
portabel. Komputer seluler juga bisa terhubung ke jaringan nirkabel dan
jaringan data seluler untuk menggunakan perusahaan
Portal web (begitu juga dengan banyak sumber lainnyaWeb). Di rumah,
kebanyakan pengguna pernah memiliki satu komputer dengan modem
yang lambat koneksi ke kantor, internet, atau keduanya. Hari ini, koneksi
jaringan kecepatan sekali tersedia hanya dengan biaya mahal relatif murah
di banyak tempat, memberi pengguna rumah lebih banyak akses ke lebih
banyak data. Ini koneksi data yang cepat memungkinkan komputer di
rumah untuk melayani halaman upWeb dan menjalankan jaringan itu
termasuk printer, PC klien, dan server. Banyak rumah menggunakan
firewall untuk melindungi jaringan mereka dari pelanggaran keamanan.
Pada paruh kedua abad ke-20, sumber daya komputasi relatif
langka. (Sebelum itu, mereka tidak ada!) Untuk jangka waktu tertentu,
sistem baik batch maupun interaktif. Sistem batch diproses dalam jumlah
besar, dengan masukan yang telah ditentukan sebelumnya dari file atau
sumber data lainnya. Sistem interaktif menunggu masukan dari pengguna
Untuk mengoptimalkan penggunaan sumber daya komputasi,
beberapa pengguna berbagi waktu pada sistem ini.
Bab 1 Pendahuluan

Timer dan algoritma penjadwalan untuk proses siklus dengan cepat


melalui CPU, memberi setiap pengguna bagian dari sumber daya. Saat ini,
sistem pembagian waktu tradisional jarang terjadi. Penjadwalan yang sama
teknik ini masih digunakan pada komputer desktop, laptop, server, dan
bahkan komputer mobile, tapi seringkali semua prosesnya dimiliki sama
pengguna (atau pengguna tunggal dan sistem operasi). Proses pengguna,
dan sistem proses yang memberikan layanan kepada pengguna, dikelola
sehingga sering dilakukan mendapat sepotong waktu komputer
Pertimbangkan jendela yang dibuat saat pengguna sedang mengerjakan
sebuah PC, misalnya, dan fakta bahwa mereka mungkin tampil tugas yang
berbeda pada saat bersamaan. Bahkan web browser pun bisa tersusun
beberapa proses, satu untuk setiap situs web yang saat ini dikunjungi,
dengan waktu sharing diterapkan pada setiap proses browser web.

1.11.2 Komputasi Bergerak

Komputasi mobile mengacu pada komputasi pada handheld smartphone


dan tablet komputer. Perangkat ini berbagi fitur fisik yang membedakan
portabel dan ringan. Secara historis, dibandingkan dengan desktop dan
laptop komputer, sistem mobile memberikan ukuran layar, kapasitas
memori, dan keseluruhan fungsionalitas sebagai pengganti akses mobile
genggam ke layanan seperti e-mail dan browsing web. Selama beberapa
tahun terakhir, ada fitur di ponsel perangkat telah menjadi begitu kaya
sehingga membedakan fungsi antara, katakanlah, laptop konsumen dan
komputer tablet mungkin sulit untuk membedakan. Faktanya, kita mungkin
berpendapat bahwa fitur dari perangkat mobile kontemporer
memungkinkannya menyediakan fungsionalitas yang tidak tersedia atau
tidak praktis pada desktop atau komputer laptop. Saat ini, sistem mobile
tidak hanya digunakan untuk e-mail dan browsing web tapi juga untuk
memutar musik dan video, membaca buku digital, mengambil foto, dan
merekam video berdefinisi tinggi. Dengan demikian, pertumbuhan yang
luar biasa terus berlanjut dalam berbagai aplikasi yang berjalan pada
perangkat tersebut. Banyak pengembang kini merancang aplikasi yang
memanfaatkan fitur unik dari perangkat seluler, seperti chip sistem
penentuan posisi global (GPS), akselerometer,
dan giroskop. Chip GPS tertanam memungkinkan perangkat seluler untuk
menggunakan satelit untuk menentukan lokasi tepatnya di bumi. Fungsi itu
sangat berguna dalam merancang aplikasi yang menyediakan navigasi-
misalnya memberi tahu pengguna, cara mana untuk berjalan atau
mengemudi atau mungkin mengarahkan mereka ke layanan terdekat,
semacam itu sebagai restoran. Accelerometer memungkinkan perangkat
mobile mendeteksi orientasinya sehubungan dengan tanah dan untuk
mendeteksi kekuatan tertentu lainnya, seperti memiringkan dan gemetar.
Di beberapa game komputer yang menggunakan accelerometers, pemain
antarmuka dengan sistem bukan dengan menggunakan mouse atau
keyboard melainkan dengan memiringkan, memutar, dan menggoyangkan
perangkat mobile! Mungkin lebih praktis penggunaannya fitur ini
ditemukan dalam aplikasi augmented-reality, yang overlay informasi
tentang tampilan lingkungan saat ini. Sulit dibayangkanbagaimana aplikasi
setara bisa dikembangkan di laptop tradisional atau sistem komputer
desktop
Untuk menyediakan akses ke layanan on-line, perangkat seluler biasanya
menggunakan keduanya. Jaringan data nirkabel atau seluler standar IEEE
802.11. Kapasitas memori dan kecepatan pemrosesan perangkat mobile,
bagaimanapun, lebih terbatas daripada itu dari PC. Sedangkan smartphone
atau tablet mungkin memiliki penyimpanan 64 GB, bukan jarang
menemukan 1 TB di gudang di komputer desktop. Demikian pula, karena
konsumsi daya sangat memprihatinkan, perangkat mobile sering
menggunakan prosesor itu
lebih kecil, lebih lambat, dan menawarkan lebih sedikit inti pemrosesan
daripada prosesor yang ditemukan pada desktop tradisional dan komputer
laptop. Dua sistem operasi saat ini mendominasi komputasi mobile: Apple
iOS dan Google Android. iOS dirancang untuk berjalan di Apple iPhone dan
iPad telepon genggam. Android memiliki kekuatan smartphone dan
komputer tablet yang tersedia dari banyak produsen. Kami memeriksa
kedua sistem operasi mobile di Indonesia detail lebih lanjut di Bab 2.

1.11.3 Sistem Terdistribusi

Sistem terdistribusi adalah kumpulan fisik yang terpisah, mungkin


heterogen, sistem komputer yang terhubung untuk menyediakan akses
bagi pengguna berbagai sumber daya yang dipertahankan sistem. Akses ke
sumber daya bersama meningkatkan kecepatan komputasi, fungsionalitas,
ketersediaan data, dan kehandalan. Beberapa sistem operasi
menggeneralisasi akses jaringan sebagai bentuk akses file, dengan rincian
jaringan yang terdapat pada driver perangkat antarmuka jaringan. Lainnya
membuat pengguna secara khusus memanggil fungsi jaringan. Umumnya,
sistem berisi gabungan dua mode-misalnya FTP dan NFS. Protokolnya yang
membuat sistem terdistribusi dapat sangat mempengaruhi utilitas sistem
dan kepopuleran. Sebuah jaringan, dalam istilah yang paling sederhana,
adalah jalur komunikasi antara dua atau lebih sistem. Sistem terdistribusi
bergantung pada jaringan untuk jaringan mereka fungsionalitas. Jaringan
bervariasi oleh protokol yang digunakan, jarak antara node, dan media
transportasi. TCP / IP adalah protokol jaringan yang paling umum, dan ini
menyediakan arsitektur dasar Internet. Sebagian besar beroperasi sistem
mendukung TCP / IP, termasuk semua tujuan umum. Beberapa sistem
mendukung protokol berpemilik yang sesuai dengan kebutuhan mereka.
Untuk sebuah sistem operasi, sebuah protokol jaringan hanya
membutuhkan perangkat antarmuka - adaptor jaringan misalnya-dengan
driver perangkat untuk mengelolanya, begitu pula perangkat lunak untuk
menangani data. Konsep-konsep ini dibahas di sepanjang buku ini.
Jaringan dicirikan berdasarkan jarak antara node mereka. Jaringan area
lokal (LAN) menghubungkan komputer dalam ruangan, bangunan, atau
kampus Jaringan wide-area (WAN) biasanya menghubungkan bangunan,
kota, atau negara. Perusahaan Aglobal mungkin memiliki WAN untuk
menghubungkan kantornya di seluruh dunia, sebagai contoh. Jaringan ini
bisa menjalankan satu protokol atau beberapa protokol. Itu terus
munculnya teknologi baru membawa bentuk jaringan baru. Misalnya,
jaringan area metropolitan (MAN) bisa menghubungkan bangunan di
dalamnya sebuah kota. Perangkat BlueTooth dan 802.11 menggunakan
teknologi nirkabel untuk berkomunikasi dengan jarak beberapa meter,
pada intinya menciptakan jaringan area pribadi (PAN) antara telepon dan
headset atau smartphone dan komputer desktop. Themedia untuk
membawa jaringan sama-sama bervariasi. Mereka termasuk kabel
tembaga, helai serat, dan transmisi nirkabel antar satelit, piring microwave,
dan radio. Saat perangkat komputasi terhubung ke telepon seluler, mereka
membuat jaringan Bahkan inframerah jarak dekat pun bisa digunakan
untuk jaringan. Pada tingkat dasar, setiap kali komputer berkomunikasi,
mereka menggunakan atau membuat jaringan Jaringan ini juga bervariasi
dalam kinerjanya dan kehandalan. Beberapa sistem operasi telah
mengambil konsep jaringan dan didistribusikan sistem lebih jauh daripada
gagasan untuk menyediakan konektivitas jaringan.

Bab 1 Pendahuluan

Sistem operasi jaringan adalah sistem operasi yang menyediakan fitur


seperti file sharing di seluruh jaringan, bersamaan dengan skema
komunikasi yang memungkinkan proses yang berbeda pada komputer
yang berbeda untuk bertukar pesan. Komputer yang menjalankan sistem
operasi jaringan bertindak secara otonom dari semua komputer lain di
jaringan, meski sudah sadar akan jaringan dan memang mampu
berkomunikasi dengan komputer jaringan lainnya. Operasi terdistribusi
sistem menyediakan lingkungan yang kurang otonom. Komputer yang
berbeda berkomunikasi cukup dekat untuk memberikan ilusi bahwa hanya
satu operasi saja sistem mengontrol jaringan. Kami mencakup jaringan
komputer dan didistribusikan sistem di Bab 17.

1.11.4 Komputasi Client-Server

Sebagai PC telah menjadi lebih cepat, lebih kuat, dan lebih murah, desainer
telah bergeser
jauh dari arsitektur sistem terpusat. Terminal terhubung ke terpusat
sistem sekarang digantikan oleh PC dan perangkat mobile. Sejalan dengan
itu, fungsi user-interface yang pernah ditangani langsung oleh sistem
terpusat semakin banyak ditangani oleh PC, cukup sering melalui
antarmuka web. Sebagai hasilnya, banyak sistem saat ini bertindak sebagai
sistem server untuk memenuhi permintaan dihasilkan oleh sistem klien.
Bentuk sistem terdistribusi khusus ini, disebut sistem client-server,
memiliki struktur umum yang digambarkan pada Gambar 1.18.
Sistem server dapat dikategorikan secara luas sebagai server dan file
hitung
server:
Sistem penghitung-server menyediakan antarmuka yang bisa digunakan
oleh klien kirim permintaan untuk melakukan tindakan (misalnya
membaca data). Sebagai tanggapan, server mengeksekusi tindakan dan
mengirimkan hasilnya ke klien. Server menjalankan database yang
merespons permintaan klien untuk data adalah sebuah contoh dari sistem
sepertiitu.
Sistem file-server menyediakan antarmuka file-sistem dimana klien bisa
membuat, memperbarui, membaca, dan menghapus file. Contoh sistem
seperti itu adalah aweb server yang mengirimkan file ke klien yang
menjalankan browser web.

Jaringan Server
klien
Desktop
klien
laptop
klien
smartphone
Gambar 1.18 Struktur umum sistem client-server
1.11.5 Komputasi Peer-to-Peer

Struktur lain untuk sistem terdistribusi adalah sistem peer-to-peer (P2P)


model. Dalam model ini, klien dan server tidak dibedakan dari satu lain.
Sebagai gantinya, semua node dalam sistem dianggap peer, dan masing-
masing dapat bertindak baik sebagai klien atau server, tergantung pada
apakah permintaan atau menyediakan layanan Peer-to-peer sistem
menawarkan keuntungan lebih tradisional sistem client-server Dalam
sistem client-server, server adalah bottleneck; tapi dalam sistem peer-to-
peer, layanan dapat diberikan oleh beberapa node yang didistribusikan di
seluruh jaringan. Untuk berpartisipasi dalam sistem peer-to-peer, sebuah
node pertama-tama harus bergabung dengan jaringan dari teman sebaya.
Begitu sebuah simpul bergabung dengan jaringan, ia bisa mulai
menyediakan layanan
ke-dan meminta layanan dari-node lain dalam jaringan. Menentukan
layanan apa yang tersedia dilakukan dengan salah satu dari dua cara
umum:
Bila sebuah simpul bergabung dengan sebuah jaringan, ia akan mencatat
layanannya dengan yang terpusat layanan pencarian pada jaringan Setiap
node menginginkan layanan tertentu terlebih dahulu kontak layanan
pencarian terpusat untuk menentukan node mana yang menyediakan
layanan. Sisa komunikasi terjadi antara klien dan penyedia layanan.
Skema alternatif tidak menggunakan layanan pencarian terpusat. Sebagai
gantinya, rekan sejawat
bertindak sebagai klien harus menemukan apa node menyediakan layanan
yang diinginkan oleh penyiaran permintaan layanan ke semua node lain
dalam jaringan. Itu node (atau node) yang memberikan layanan tersebut
menanggapi peer yang melakukan permintaan. Untuk mendukung
pendekatan ini, sebuah protokol penemuan harus disediakan yang
memungkinkan rekan - rekan untuk menemukan layanan yang diberikan
oleh rekan - rekan lain di jaringan. Gambar 1.19 menggambarkan skenario
seperti itu. Jaringan peer-to-peer mendapat popularitas luas di akhir tahun
1990an beberapa layanan file sharing, seperti Napster dan Gnutella, yang
memungkinkan rekan-rekannya untuk bertukar file satu sama lain. Sistem
Napster menggunakan pendekatan mirip dengan tipe pertama yang
dijelaskan di atas: server terpusat dipertahankan indeks semua file yang
tersimpan pada node peer di jaringan Napster, dan yang sebenarnya
klien
klien klien
klien klien
Gambar 1.19 Sistem peer-to-peer tanpa layanan terpusat.

Bab 1 Pendahuluan

pertukaran file terjadi antara node peer. Sistem Gnutella digunakan sebuah
teknik yang mirip dengan tipe kedua: permintaan file yang ditayangkan
oleh klien ke node lain dalam sistem, dan node yang bisa melayani
permintaan merespon langsung ke klien Masa depan pertukaran file tetap
tidak pasti karena jaringan peer-to-peer dapat digunakan untuk menukar
materi berhak cipta (musik, misalnya) secara anonim, dan ada hukum yang
mengatur distribusi materi berhak cipta Terutama, Napster mengalami
masalah hukum karena hak cipta pelanggaran dan layanannya ditutup pada
tahun 2001. Skype adalah contoh komputasi peer-to-peer lainnya. Hal ini
memungkinkan klien untuk membuat panggilan suara dan panggilan video
dan mengirim pesan teks melalui Internet menggunakan teknologi yang
dikenal dengan voice over IP (VoIP). Skype menggunakan hybrid peerto-
pendekatan rekan. Ini termasuk server login terpusat, tapi juga disertakan
teman terdesentralisasi dan memungkinkan dua rekan untuk
berkomunikasi.

1.11.6 Virtualisasi

Virtualisasi adalah teknologi yang memungkinkan sistem operasi berjalan


sebagai aplikasi dalam sistem operasi lainnya. Pada awalnya tersipu,
sepertinya ada sedikit alasan untuk fungsi tersebut. Tapi industri
virtualisasi sangat luas dan tumbuh, yang merupakan bukti utilitas dan
kepentingannya. Secara umum, virtualisasi adalah salah satu anggota kelas
perangkat lunak itu juga termasuk persaingan. Emulasi digunakan saat
sumber tipe CPU Berbeda dengan tipe target CPU. Misalnya, saat Apple
beralih dari CPU Power IBM ke CPU Intel x86 untuk komputer desktop dan
laptop, Ini termasuk fasilitas emulasi yang disebut "Rosetta," yang
memungkinkan aplikasi dikompilasi untuk CPU IBM yang berjalan di CPU
Intel. Konsep yang sama itu bisa diperluas untuk memungkinkan
keseluruhan sistem operasi ditulis untuk satu platform agar berjalan yang
lain. Emulasi datang dengan harga yang mahal. Setiap tingkat mesin
instruksi yang berjalan native pada sistem sumber harus diterjemahkan ke
dalam fungsi setara pada sistem target, sering menghasilkan beberapa
target instruksi. Jika sumber dan target CPU memiliki tingkat kinerja yang
sama, maka kode yang ditiru bisa berjalan jauh lebih lambat dari kode asli.
Contoh umum emulasi terjadi ketika bahasa komputer digunakan tidak
dikompilasi ke kode asli melainkan dijalankan di tingkat tinggi
bentuk atau diterjemahkan ke bentuk peralihan. Ini dikenal sebagai
interpretasi.
Beberapa bahasa, seperti BASIC, bisa dikompilasi atau diinterpretasikan.
Jawa, di
Sebaliknya, selalu ditafsirkan. Interpretasi adalah bentuk emulasi karena
kode bahasa tingkat tinggi diterjemahkan ke instruksi CPU asli, ditiru
bukan CPU lain tapi mesin virtual teoritis yang bisa digunakan bahasa itu
berjalan secara native. Dengan demikian, kita bisa menjalankan program
Java pada "Java virtual machines," tapi secara teknis mesin virtual tersebut
adalah emulator Java. Dengan virtualisasi, sebaliknya, sebuah sistem
operasi yang dikompilasi secara native untuk arsitektur CPU tertentu
berjalan dalam sistem operasi lain
juga asli CPU itu. Virtualisasi pertama kali muncul di mainframe IBM
sebagai metode bagi beberapa pengguna untuk menjalankan tugas secara
bersamaan. Menjalankan beberapa
Mesin virtual diperbolehkan (dan masih memungkinkan) banyak pengguna
menjalankan tugas di sistem dirancang untuk pengguna tunggal. Nantinya,
sebagai respons terhadap masalah dengan berjalan berlipat ganda. Aplikasi
Microsoft Windows XP pada CPU Intel x86, VMware menciptakan sebuah
teknologi virtualisasi baru berupa aplikasi yang berjalan di XP. Aplikasi itu
menjalankan satu atau beberapa salinan tamu Windows atau native
lainnya.

(Sebuah)
proses
perangkat keras
inti
(b)
pemrograman
antarmuka
proses
proses
proses
kernel kernel kernel
VM1 VM2 VM3
manajer
perangkat keras
mesin virtual
Gambar 1.20 VMware.

Sistem operasi x86, masing-masing menjalankan aplikasinya sendiri. (Lihat


Gambar 1.20).
Windows adalah sistem operasi host, dan aplikasi VMware adalah manajer
mesin virtual VMM. VMM menjalankan sistem operasi tamu, mengelola
penggunaan sumber daya mereka, dan melindungi setiap tamu dari yang
lain. Meski sistem operasi modern sepenuhnya mampu berjalan. Beberapa
aplikasi andal, penggunaan virtualisasi terus berkembang. Di laptop dan
desktop, VMM memungkinkan pengguna untuk menginstal beberapa
operasi sistem untuk eksplorasi atau menjalankan aplikasi yang ditulis
untuk sistem operasi selain host pribumi. Misalnya, laptop Apple yang
menjalankan Mac OS X pada CPU x86 dapat menjalankan Windows guest
untuk memungkinkan eksekusi Windows aplikasi. Perusahaan menulis
perangkat lunak untuk beberapa sistem operasi dapat menggunakan
virtualisasi untuk menjalankan semua sistem operasi tersebut secara
tunggal server fisik untuk pengembangan, pengujian, dan debugging. Di
pusat data, virtualisasi telah menjadi metode umum untuk mengeksekusi
dan mengelola lingkungan komputasi. VMM seperti VMware, ESX, dan
Citrix XenServer no lagi berjalan di sistem operasi host melainkan host.
Rincian lengkap dari
fitur dan implementasi virtualisasi ditemukan di Bab 16.

1.11.7 Komputasi Awan

Komputasi awan adalah jenis komputasi yang memberikan komputasi,


penyimpanan, dan bahkan aplikasi sebagai layanan di jaringan. Dalam
beberapa hal, ini perpanjangan virtualisasi logis, karena menggunakan
virtualisasi sebagai basis fungsinya. Misalnya fasilitas Amazon Elastic
Compute Cloud (EC2) memiliki ribuan server, jutaan mesin virtual, dan
petabyte penyimpanan tersedia untuk digunakan oleh siapapun di Internet.
Pengguna bayar per bulan berdasarkan caranya sebagian besar sumber
daya yang mereka gunakan. Sebenarnya ada banyak jenis cloud computing,
diantaranyasebagaiberikut:
Publik awan-awan tersedia melalui Internet untuk siapa pun bersedia
membayar untuk layanan.
Cloud pribadi-awan yang dijalankan oleh perusahaan untuk penggunaan
perusahaan itu sendiri
Hibrida awan - awan yang mencakup awan publik dan swasta komponen
Perangkat lunak sebagai layanan (SaaS) - satu atau lebih aplikasi (seperti
kata prosesor atau spreadsheet) yang tersedia melalui Internet.
Platform sebagai layanan (PaaS) - tumpukan perangkat lunak siap untuk
penggunaan aplikasi melalui internet (misalnya, database server)
Infrastruktur sebagai layanan (IaaS) - server atau penyimpanan yang
tersedia di Internet (misalnya, penyimpanan tersedia untuk membuat
salinan cadangan data produksi)
Jenis komputasi awan ini tidak diskrit, karena lingkungan komputasi awan
memungkinkan Anda kombinasi dari beberapa jenis. Misalnya, sebuah
organisasi dapat memberikan SaaS dan IaaS sebagai layanan publik. Tentu
saja, ada sistem operasi tradisional di dalam banyak jenis infrastruktur
awan Di luar itu adalah VMM yang mengelola mesin virtual di mana
pengguna menjalankan proses. Pada tingkat yang lebih tinggi, VMMs
mereka sendiri dikelola oleh alat manajemen awan, seperti Vware vCloud
direktur dan open source Eucalyptus toolset. Alat ini mengatur sumber
daya di awan yang diberikan dan menyediakan antarmuka ke komponen
awan, membuat argumen yang baik untuk mempertimbangkan mereka tipe
baru dari sistem operasi. Gambar 1.21 menggambarkan awan publik yang
menyediakan IaaS. Perhatikan bahwa keduanya layanan awan dan
antarmuka pengguna awan dilindungi oleh firewall.
firewall
awan
pelanggan
antarmuka
penyeimbang beban
virtual
mesin
virtual
mesin
server server
penyimpanan
Internet
pelanggan
permintaan
awan
pengelolaan
perintah
awan
manajemen
jasa
Gambar 1.21 Komputasi awan.

1.11.8 Sistem Embedded Real-Time

Komputer tersemat adalah bentuk komputer yang paling lazim. Perangkat


ini ditemukan di mana-mana, mulai dari mesin mobil dan manufaktur
robot untuk DVD dan oven microwave. Mereka cenderung memiliki tugas
yang sangat spesifik. Sistem yang mereka jalankan biasanya primitif,
sehingga sistem operasi menyediakan fitur terbatas. Biasanya, mereka
memiliki sedikit atau tidak ada user interface, lebih memilih untuk
meluangkan waktu mereka memantau dan mengelola perangkat keras,
seperti mesin mobil dan lengan robot.Sistem embedded ini sangat
bervariasi. Beberapa bersifat umum komputer, menjalankan sistem operasi
standar-seperti Linux-with aplikasi tujuan khusus untuk
mengimplementasikan fungsionalitas. Lainnya adalah perangkat keras
perangkat dengan sistem operasi serba guna khusus yang disediakan hanya
fungsi yang diinginkan. Namun, yang lainnya adalah perangkat keras
dengan aplikasi yang spesifik integrated circuits (ASICs) yang melakukan
tugasnya tanpa operasi sistem. Penggunaan embedded system terus
berkembang. Kekuatan ini perangkat, baik sebagai unit mandiri dan
sebagai elemen jaringan dan web, pasti akan meningkat juga. Bahkan
sekarang, seluruh rumah bisa terkomputerisasi bahwa komputer pusat-
entah komputer tujuan umum atau tertanam sistem bisa mengendalikan
pemanasan dan pencahayaan, sistem alarm, dan bahkan kopi pembuat.
Akses Web dapat memungkinkan pemilik rumah untuk memberitahu
rumah untuk memanaskan
sebelum dia tiba di rumah Suatu hari, kulkas bisa memberi tahu toko
kelontong
Saat melihat susu sudah habis. Sistem embedded hampir selalu
menjalankan sistem operasi real-time. Sebuah sistem real-time digunakan
saat persyaratan waktu yang kaku telah diterapkan pengoperasian
prosesor atau arus data; Dengan demikian, sering digunakan sebagai
kontrol perangkat dalam aplikasi khusus. Sensor membawa data ke
komputer.
Komputer harus menganalisis data dan mungkin menyesuaikan kontrol
untuk dimodifikasi
masukan sensor Sistem yang mengendalikan eksperimen ilmiah,
pencitraan medis sistem, sistem kontrol industri, dan sistem tampilan
tertentu bersifat realtime sistem. Beberapa sistem injeksi bahan bakar
mobil, alat rumah tangga pengendali, dan sistem senjata juga sistem real-
time. Sistem real-time telah didefinisikan dengan baik, batasan waktu
tetap. Pengolahan
Harus dilakukan dalam batasan yang ditetapkan, atau sistem akan gagal.
Untuk misalnya, tidak akan ada lengan robot yang diinstruksikan untuk
menghentikannya setelah itu menabrak mobil yang sedang dibangunnya.
Sebuah sistem real-time berfungsi dengan benar hanya jika
mengembalikan hasil yang benar dalam batasan waktunya. Kontras ini
sistem dengan sistem time-sharing, dimana diinginkan (tapi tidak wajib)
untuk merespon dengan cepat, atau sistem batch, yang mungkin tidak
memiliki kendala waktu semua. Pada Bab 6, kita mempertimbangkan
fasilitas penjadwalan yang dibutuhkan untuk mengimplementasikannya
fungsi real-time dalam suatu sistem operasi. Di Bab 9, kami menjelaskan
desain manajemen memori untuk komputasi real-time. Akhirnya, di Bab 18
dan 19, kami menjelaskan komponen real-time dari Linux dan Windows 7
sistem operasi.

1.12 Sistem Operasi Open Source

Kami mencatat pada awal bab ini bahwa studi tentang sistem operasi telah
dibuat lebih mudah dengan tersedianya sejumlah besar open source.

Bab 1 Pendahuluan

Rilis Sistem operasi open-source tersedia dalam kode sumber format


bukan sebagai kode biner terkompilasi. Linux adalah opensource yang
paling terkenal sistem operasi, sedangkan Microsoft Windows adalah
contoh yang terkenal dari pendekatan closed-source yang berlawanan.
Operasi Apple Mac OS X dan iOS sistem terdiri dari pendekatan hibrida.
Mereka berisi kernel open-source bernama Darwin termasuk juga
komponen sumber tertutup dan tertutup. Dimulai dengan kode sumber
memungkinkan programmer menghasilkan biner
kode yang bisa dieksekusi pada suatu sistem. Melakukan reverse-reverse
engineering
kode sumber dari binari - cukup banyak pekerjaan, dan berguna item
seperti komentar tidak pernah ditemukan belajar sistem operasi oleh
mengetahui kode sumber memiliki manfaat lain juga. Dengan kode
sumbernya di tangan, seorang siswa dapat memodifikasi sistem operasi
dan kemudian mengkompilasi dan jalankan kode untuk mencoba
perubahan tersebut, yang merupakan alat pembelajaran yang hebat. Teks
ini mencakup proyek yang melibatkan modifikasi sumber sistem operasi
kode, sementara juga menjelaskan algoritma pada tingkat tinggi untuk
memastikan semua penting. Topik sistem operasi ditutupi. Sepanjang teks,
kami menyediakan petunjuk untuk contoh kode sumber terbuka untuk
studi lebih dalam.
Ada banyak manfaat bagi sistem operasi open-source, termasuk komunitas
pemrogram yang tertarik (dan biasanya tidak dibayar) yang berkontribusi
ke kode dengan membantu debug, analisis, berikan dukungan, dan saran
perubahan. Bisa dibilang, kode open source lebih aman dibanding kode
sumber tertutup karena banyak lagi mata yang melihat kodenya. Tentu
saja, open-source code punya bug, namun pendukung open source
berpendapat bahwa bug cenderung ditemukan dan diperbaiki lebih cepat
karena jumlah orang yang menggunakan dan melihat kode. Perusahaan
yang mendapatkan penghasilan dari penjualan program mereka sering
ragu untuk open source kode mereka, tapi Red Hat dan segudang
perusahaan lain melakukan hal itu dan menunjukkan bahwa perusahaan
komersial mendapatkan keuntungan, daripada menderita, saat mereka
buka source kode mereka Pendapatan bisa dihasilkan melalui kontrak
dukungan dan penjualan perangkat keras yang menjalankan perangkat
lunak, misalnya.

1.12.1 Sejarah

Pada masa awal komputasi modern (yaitu, tahun 1950an), banyak sekali
perangkat lunak tersedia dalam format open-source. Peretas asli
(komputer penggemar) di MIT Tech Model Railroad Club meninggalkan
program mereka di laci bagi orang lain untuk dikerjakan. Kelompok
pengguna "Homebrew" bertukar kode selama mereka pertemuan.
Nantinya, kelompok pengguna khusus perusahaan, seperti Digital
Equipment Dec Corporation, menerima kontribusi program kode sumber,
yang dikumpulkan mereka ke kaset, dan membagikan rekaman itu kepada
anggota yang berminat. Perusahaan komputer dan perangkat lunak
akhirnya berusaha membatasi penggunaan perangkat lunak mereka ke
komputer yang berwenang dan pelanggan yang membayar. Melepaskan
saja file biner yang dikompilasi dari kode sumber, bukan kode sumbernya
itu sendiri, membantu mereka mencapai tujuan ini, sekaligus melindungi
kodenya dan isinya ide dari pesaing mereka. Masalah lain melibatkan
materi berhak cipta. Sistem operasi dan program lainnya bisa membatasi
kemampuan memutar film dan musik atau menampilkan buku elektronik
ke komputer yang berwenang. Salinan seperti itu perlindungan atau
manajemen hak digital (DRM) tidak akan efektif jika kode sumber yang
menerapkan batasan ini dipublikasikan. Hukum di banyak negara,
termasuk Digital Millennium Copyright Act (DMCA) A.S., membuat itu ilegal
untuk merekayasa balik kode DRM atau mencoba mengelak dari salinannya
perlindungan.

1.12 Sistem Operasi Open-Source 45

Untuk melawan langkah membatasi penggunaan perangkat lunak dan


redistribusi, Richard
Stallman pada tahun 1983 memulai proyek GNU untuk membuat UNIX
yang kompatibel dengan open source sistem operasi. Pada tahun 1985, ia
menerbitkan Manifesto GNU, yang
berpendapat bahwa semua perangkat lunak harus bebas dan terbuka. Dia
juga terbentuk
Free Software Foundation (FSF) dengan tujuan mendorong kebebasan
pertukaran kode sumber perangkat lunak dan penggunaan perangkat
lunak itu secara gratis. Daripada hak cipta perangkat lunaknya, FSF
"copylefts" perangkat lunak untuk mendorong berbagi dan perbaikan. GNU
General Public License (GPL) mengkodifikasi copylefting dan merupakan
lisensi umum di mana perangkat lunak bebas dilepaskan. Pada dasarnya,
GPL mensyaratkan bahwa kode sumber didistribusikan dengan binari dan
apapun perubahan yang dibuat pada kode sumber dilepaskan dengan
lisensi GPL yang sama.

1.12.2 Linux

Sebagai contoh sistem operasi open-source, pertimbangkan GNU / Linux.


Proyek GNU menghasilkan banyak alat yang kompatibel dengan UNIX,
termasuk kompiler, editor, dan utilitas, namun tidak pernah merilis sebuah
kernel. Pada tahun 1991, seorang siswa di Indonesia Finlandia, Linus
Torvalds, merilis kernel UNIX yang belum sempurna menggunakan
kompiler dan alat GNU dan kontribusi yang diundang ke seluruh dunia.
Kemunculan Internet berarti siapapun yang tertarik bisa mendownload
source code,
memodifikasi, dan mengirimkan perubahan ke Torvalds. Melepaskan
update seminggu sekali
membiarkan sistem operasi Linux yang disebut ini berkembang dengan
pesat, disempurnakan oleh beberapa ribu programmer. Sistem operasi
GNU / Linux yang dihasilkan telah menghasilkan ratusan distribusi unik,
atau custom build, dari sistem. Distribusi utama
termasuk RedHat, SUSE, Fedora, Debian, Slackware, dan Ubuntu. Distribusi
bervariasi fungsi, utilitas, aplikasi terinstal, dukungan perangkat keras,
antarmuka pengguna, dan tujuan. Sebagai contoh, RedHat Enterprise Linux
diarahkan untuk besar penggunaan komersial. PCLinuxOS adalah sistem
operasi LiveCD yang bisa jadi boot dan jalankan dari CD-ROM tanpa diinstal
pada sistem yang keras disk Salah satu varian PCLinuxOS yang disebut
"PCLinuxOS Supergamer DVD" -is a Live DVD yang mencakup driver grafis
dan game. Seorang gamer bisa menjalankannya sistem yang kompatibel
hanya dengan boot dari DVD. Saat gamer itu ada selesai, reboot sistem me-
reset ke sistem operasi yang terpasang.
Anda bisa menjalankan Linux pada sistem Windows dengan menggunakan
yang sederhana berikut ini, gratis pendekatan:
1. Download alat "VMware Player" gratis dari
http://www.vmware.com/download/player/
dan menginstalnya pada sistem anda.
2. Pilih versi Linux dari ratusan "peralatan", atau gambar mesin virtual,
tersedia dari VMware dihttp://www.vmware.com/appliances/
Gambar-gambar ini telah terinstal dengan sistem operasi dan aplikasi
dan mencakup banyak rasa dari Linux.

Bab 1 Pendahuluan

3. Boot mesin virtual dalam VMware Player.

Dengan teks ini, kami menyediakan gambar mesin virtual Linux yang
menjalankan Debian
melepaskan. Gambar ini berisi kode sumber Linux dan juga alat untuk
perangkat lunak
development.We mencakup contoh yang melibatkan citra Linux sepanjang
ini teks, dan juga dalam studi kasus terperinci di Bab 18.

1.12.3 BSD UNIX


BSD UNIX memiliki sejarah yang lebih panjang dan lebih rumit daripada
Linux. Ini dimulai di 1978 sebagai turunan AT & T's UNIX. Rilis dari
University of California di Berkeley (UCB) datang dalam bentuk sumber
dan biner, tapi bukan opensource karena ada lisensi dariAT & T.
Pengembangan BSD UNIX adalah diperlambat oleh gugatan oleh AT & T,
namun akhirnya berfungsi penuh, open-source versi, 4.4BSD-lite, dirilis
pada tahun 1994.
Sama seperti dengan Linux, ada banyak distribusi BSD UNIX, termasuk
FreeBSD, NetBSD, OpenBSD, dan DragonflyBSD. Untuk mengeksplorasi
kode sumber dari FreeBSD, cukup download gambar mesin virtual dari
versi minat dan boot dalam VMware, seperti yang dijelaskan di atas untuk
Linux. Sumber kode datang dengan distribusi dan disimpan di / usr / src /.
Kernel kode sumber ada di / usr / src / sys. Misalnya untuk memeriksa
memori virtual
kode implementasi di kernel FreeBSD, lihat file di / usr / src / sys / vm.
Darwin, komponen inti kernel Mac OS X, didasarkan pada BSD UNIX dan
juga open-source. Kode sumber yang tersedia dari
http://www.opensource.apple.com/ Setiap rilis Mac OS X memiliki
opensource-nya komponen diposting di situs itu. Nama paket yang berisi
kernel dimulai dengan "xnu." Apple juga menyediakan alat pengembang
yang luas, dokumentasi, dan dukungan di http://connect.apple.com. Untuk
informasi lebih lanjut, lihat Lampiran A.

1.12.4 Solaris

Solaris adalah sistem operasi komersial berbasis UNIX dari Sun


Microsystems. Awalnya, sistem operasi SunOS Sun berbasis BSD UNIX. Sun
bergerak ke Sistem AT & T V UNIX sebagai basisnya pada tahun 1991. Pada
tahun 2005, Sun open source kode Solaris sebagai proyek OpenSolaris.
Pembelian Sun oleh Oracle, pada tahun 2009, bagaimanapun,
meninggalkan keadaan proyek ini tidak jelas. Kode sumber seperti itu pada
tahun 2005 masih tersedia melalui browser kode sumber dan untuk
download di http://src.opensolaris.org/source. Beberapa kelompok yang
tertarik menggunakan OpenSolaris sudah mulai dari basis tersebut dan
memperluas fitur-fiturnya. Pekerjaan mereka adalah Project Illumos, yang
memiliki diperluas dari basis OpenSolaris untuk menyertakan lebih banyak
fitur dan menjadi dasar untuk beberapa produk. Illumos tersedia di
http://wiki.illumos.org.

1.12.5 Sistem Open Source sebagai Alat Belajar

Gerakan perangkat lunak bebas mendorong legiun pemrogram untuk


membuat ribuan proyek open-source, termasuk sistem operasi. Situs
seperti http://freshmeat.net/ dan http://distrowatch.com/ menyediakan
portal untuk banyak orang dari proyek-proyek ini. Seperti yang telah kami
nyatakan sebelumnya, proyek open-source memungkinkan siswa untuk
melakukannya gunakan kode sumber sebagai alat belajar. Mereka bisa
memodifikasi program dan mengujinya,
Membantu menemukan dan memperbaiki bug, dan jika tidak, jelajahi
operasi dengan fitur lengkap dan matang sistem, kompiler, alat, antarmuka
pengguna, dan jenis program lainnya. Itu ketersediaan kode sumber untuk
proyek bersejarah, seperti Multics, bisa membantu siswa untuk memahami
proyek tersebut dan untuk membangun pengetahuan yang akan membantu
pelaksanaan proyek baru. GNU / Linux dan BSD UNIX adalah semua sistem
operasi open-source, namun masing-masing memiliki tujuan, utilitas,
perizinan, dan tujuan tersendiri. Terkadang, lisensi tidak saling eksklusif
dan penyerbukan silang terjadi, memungkinkan perbaikan yang cepat
dalam proyek sistem operasi. Misalnya beberapa komponen utama
OpenSolaris telah di porting ke BSD UNIX. Kelebihan software gratisan dan
open source cenderung meningkatkan jumlah dan kualitas open-
sourceproyek, yang menyebabkan peningkatan jumlah individu dan
perusahaan yang menggunakan proyek ini.

1.13 Ringkasan

Sistem operasi adalah perangkat lunak yang mengelola perangkat keras


komputer juga seperti menyediakan lingkungan untuk program aplikasi
untuk dijalankan. Mungkin itu aspek yang paling terlihat dari sebuah
sistem operasi adalah interface ke komputer sistem yang diberikannya
kepada pengguna manusia. Agar komputer bisa menjalankan tugasnya
dalam melaksanakan program, program harus masuk memori utama.
Memori utama adalah satu-satunya area penyimpanan yang besar yaitu
prosesor bisa akses langsung Ini adalah array byte, mulai dari ukuran dari
jutaan ke miliaran. Setiap byte dalam memori memiliki alamatnya sendiri.
Memori utama biasanya perangkat penyimpanan volatile yang kehilangan
isinya saat power dimatikan atau kalah. Sebagian besar sistem komputer
menyediakan penyimpanan sekunder sebagai perpanjangan dari memori
utama. Penyimpanan sekunder memberikan bentuk penyimpanan
nonvolatile itu mampu menampung sejumlah besar data secara permanen.
Yang paling umum perangkat penyimpanan sekunder adalah disk
magnetik, yang menyediakan penyimpanan keduanya program dan data.
Berbagai macam sistem penyimpanan dalam sistem komputer bisa diatur
dalam hirarki sesuai kecepatan dan biaya. Tingkat yang lebih tinggi
mahal,tapi mereka cepat Saat kita turun hirarki, biaya per bit umumnya
menurun, sedangkan waktu akses umumnya meningkat. Ada beberapa
strategi berbeda untuk merancang sebuah sistem komputer. Sistem single-
processor hanya memiliki satu prosesor, sedangkan multiprosesor sistem
berisi dua atau lebih prosesor yang berbagi memori fisik dan perangkat
periferal Desain multiprosesor yang paling umum adalah simetris
multiprocessing (atau SMP), dimana semua prosesor dianggap peer dan
run mandiri satu sama lain. Sistem klaster adalah bentuk khusus sistem
multiprosesor dan terdiri dari beberapa sistem komputer yang terhubung
oleh jaringan area lokal. Untuk memanfaatkan CPU dengan sebaik-baiknya,
sistem operasi modern menggunakan multiprogramming, yang
memungkinkan beberapa pekerjaan menjadi inmemoryat pada saat yang
sama, sehingga memastikan bahwa CPU selalu memiliki pekerjaan untuk
dieksekusi. Sistem pembagian waktu adalah perpanjangan
multiprogramming dimana algoritma penjadwalan CPU cepat beralih
antara pekerjaan, sehingga memberikan ilusi bahwa setiap pekerjaan
berjalan secara bersamaan. Sistem operasi harus memastikan
pengoperasian komputer yang benar sistem. Untuk mencegah agar
program pengguna tidak diintervensi dengan pengoperasian yang benar

Bab 1 Pendahuluan

SISTEM OPERASI

Tidak pernah ada waktu yang cukup lama untuk mempelajari sistem
operasi, dan itu tidak pernah semudah ini. Gerakan open source telah
berhasil menyusul sistem, menyebabkan banyak dari mereka menjadi
bustom yang tersedia di kedua sumber dan biner (executable) format.
Daftar sistem operasi tersedia dalam kedua format termasuk Linux, BSD
UNIX, Solaris, dan bagian dari Mac OS X. Ketersediaannya kode sumber
memungkinkan kita mempelajari sistem operasi dari dalam ke luar.
Pertanyaan yang pernah bisa kita jawab hanya dengan melihat
dokumentasi atau perilaku suatu sistem operasi sekarang bisa kita jawab
dengan memeriksa kode itu sendiri sistem operasi yang tidak lagi layak
secara komersial open-source juga, memungkinkan kita untuk mempelajari
bagaimana sistem dioperasikan di waktu lebih sedikit sumber daya CPU,
memori, dan penyimpanan. Luas tapi daftar lengkap proyek sistem operasi
open-source tersedia dari
http://dmoz.org/Computers/Software/Operating Systems / Open Source
/. Selain itu, munculnya virtualisasi sebagai mainstream (dan sering gratis),
fungsi komputer memungkinkan untuk menjalankan banyak sistem operasi
di atas satu sistem inti Misalnya, VMware (http://www.vmware.com)
menyediakan "pemain" gratis untuk Windows di mana ratusan "peralatan
virtual" gratis dapat berlari. Virtualbox (http://www.virtualbox.com)
menyediakan opensource gratis manajer mesin virtual pada banyak sistem
operasi. Menggunakan itu alat, siswa bisa mencoba ratusan sistem operasi
tanpa dedikasi perangkat keras. Dalam beberapa kasus, simulator
perangkat keras tertentu juga tersedia, memungkinkan sistem operasi
berjalan di perangkat keras "asli", semuanya berada dalam batas-batasnya
dari komputer modern dan sistem operasi modern. Misalnya, DECSYSTEM-
20 simulator yang berjalan pada Mac OS X bisa boot TOPS-20, load sumber
kaset, dan memodifikasi dan mengkompilasi kernel TOPS-20 yang baru.
Yang tertarik siswa bisa mencari di internet untuk mencari tulisan asli yang
menggambarkan sistem operasi, serta manual asli. Munculnya sistem
operasi open source juga mempermudah pindah dari pelajar ke
pengembang sistem operasi. Dengan beberapa pengetahuan, beberapa
usaha, dan koneksi internet, seorang siswa bahkan bisa menciptakannya
sebuah distribusi sistem operasi baru. Beberapa tahun yang lalu, itu sulit
atau tidak mungkin untuk mendapatkan akses ke kode sumber Sekarang,
akses seperti itu dibatasi hanya oleh berapa banyak minat, waktu, dan
ruang disk yang dimiliki seorang siswa. Sistem, perangkat keras memiliki
dua mode: mode pengguna dan mode kernel. Berbagai instruksi (seperti
instruksi I / O dan instruksi yang dihentikan) diberi hak istimewa dan
dapat dieksekusi hanya dalam mode kernel. Memori tempat operasi sistem
tinggal juga harus dilindungi dari modifikasi oleh pengguna. Timer
mencegah loop tak terbatas Fasilitas ini (dual mode, instruksi istimewa,
proteksi memori, dan timer interrupt) adalah blok bangunan dasar yang
digunakan oleh sistem operasi untuk mencapai operasi yang benar. Suatu
proses (atau pekerjaan) adalah unit kerja dasar dalam suatu sistem
operasi. Manajemen proses mencakup pembuatan dan penghapusan proses
dan penyediaan mekanisme proses untuk berkomunikasi dan melakukan
sinkronisasi satu sama lain.

Latihan Latihan

Sistem operasi mengelola memori dengan mencatat bagian mana dari


memori sedang digunakan dan oleh siapa. Sistem operasi juga bertanggung
jawab untuk mengalokasikan dan membebaskan ruang memori secara
dinamis. Ruang penyimpanan juga dikelola oleh sistem operasi; ini
termasuk menyediakan file untuk sistem mewakili file dan direktori dan
ruang penyimpanan pada perangkat penyimpanan massal. Sistem operasi
juga harus memperhatikan perlindungan dan pengamanan sistem operasi
dan pengguna. Langkah-langkah perlindungan mengendalikan akses proses
atau pengguna untuk sumber daya yang tersedia oleh sistem komputer.
Keamanan tindakan bertanggung jawab untuk membela sistem komputer
dari eksternal atau serangan internal, beberapa struktur data yang
mendasar bagi ilmu komputer secara arsitektural digunakan dalam sistem
operasi, termasuk daftar, tumpukan, antrian, pohon, fungsi hash, peta, dan
bitmap. Komputasi terjadi di berbagai lingkungan. Komputasi tradisional
melibatkan PC desktop dan laptop, biasanya terhubung ke jaringan
komputer.
Komputasi mobile mengacu pada komputasi pada handheld smartphone
dan tablet komputer, yang menawarkan beberapa fitur unik. Sistem
terdistribusi memungkinkan pengguna untuk berbagi sumber daya pada
host yang tersebar secara geografis yang terhubung via sebuah jaringan
komputer Layanan dapat diberikan melalui klien- model server atau model
peer-to-peer. Virtualisasi melibatkan abstrak perangkat keras komputer
menjadi beberapa lingkungan eksekusi yang berbeda. Awan komputasi
menggunakan sistem terdistribusi untuk layanan abstrak menjadi "awan",
di mana pengguna dapat mengakses layanan dari lokasi terpencil. Operasi
real-time sistem dirancang untuk lingkungan tertanam, seperti perangkat
konsumen,
mobil, dan robotika. Gerakan perangkat lunak bebas telah menciptakan
ribuan proyek open-source, termasuk sistem operasi. Karena proyek ini,
siswa dapat menggunakannya kode sumber sebagai alat pembelajaran.
Mereka bisa memodifikasi program dan mengujinya,
membantu menemukan dan memperbaiki bug, dan jika tidak, jelajahi
operasi dengan fitur lengkap dan matang sistem, kompiler, alat, antarmuka
pengguna, dan jenis program lainnya.
GNU / Linux dan BSD UNIX adalah sistem operasi open-source.
Keuntungannya perangkat lunak bebas dan sumber terbuka cenderung
meningkatkan jumlahnya dan kualitas proyek open source, yang
menyebabkan peningkatan jumlah individu dan perusahaan yang
menggunakan proyek ini.

Latihan Latihan

1.1 Apa tiga tujuan utama dari sebuah sistem operasi?


1.2 Kami telah menekankan perlunya sistem operasi untuk memanfaatkan
secara efisien
dari perangkat keras komputer. Kapan itu sesuai untuk operasi sistem
untuk meninggalkan prinsip ini dan untuk "membuang" sumber daya?
Mengapa begitu? sistem yang tidak benar-benar boros?
1.3 Apa kesulitan utama yang harus diatasi seorang programmer secara
tertulis? sebuah sistem operasi untuk lingkungan real-time?
1.4 Mengingat berbagai definisi sistem operasi, pertimbangkan apakah
sistem operasi harus menyertakan aplikasi seperti web browser dan
program email. Argumentasi baik yang seharusnya dan harus itu tidak, dan
mendukung jawaban Anda.

Bab 1 Pendahuluan

1.5 Bagaimana perbedaan antara mode kernel dan fungsi mode pengguna
sebagai bentuk sistem perlindungan (keamanan) yang belum sempurna?
1.6 Manakah dari petunjuk berikut yang harus diistimewakan?
a. Tetapkan nilai timer.
b. Baca jam
c. Hapus memori
d. Terbitkan instruksi perangkap.
e. Matikan interrupts.
f. Ubah entri dalam tabel status perangkat.
g. Beralih dari pengguna ke mode kernel.
h. Akses perangkat I / O.
1.7 Beberapa komputer awal melindungi sistem operasi dengan
menempatkannya di dalamnya sebuah partisi memori yang tidak dapat
dimodifikasi oleh pekerjaan pengguna
atau sistem operasi itu sendiri. Jelaskan dua kesulitan yang Anda pikirkan
bisa timbul dengan skema seperti itu.
1.8 Beberapa CPU menyediakan lebih dari dua mode operasi. Apa dua
kemungkinan penggunaan beberapa mode ini?
1.9 Timer bisa digunakan untuk menghitung waktu sekarang. Berikan yang
pendek deskripsi tentang bagaimana hal ini dapat dicapai.
1.10 Berikan dua alasan mengapa cache berguna. Masalah apa yang mereka
selesaikan?
Masalah apa yang mereka sebabkan? Jika cache bisa dibuat sebesar
perangkat yang caching (misalnya, cache sebesar disk) mengapa tidak
membuatnya yang besar dan menghilangkan perangkat?
1.11 Bedakan antara model client-server dan peer-to-peer sistem
terdistribusi.
Latihan
1.12 Dalam lingkungan multiprogramming dan time-sharing, beberapa
pengguna berbagi sistem secara bersamaan Keadaan ini bisa berakibat
beragam masalah keamanan.
a. Apa dua masalah itu?
b. Bisakah kita memastikan tingkat keamanan yang sama dalam satu
waktu-bersama
mesin seperti pada mesin khusus? Jelaskan jawabanmu.
1.13 Isu pemanfaatan sumber daya muncul dalam berbagai bentuk berbeda
jenis sistem operasi Buat daftar sumber daya apa yang harus dikelola
hati-hati dalam pengaturan berikut:
a. Mainframe atau sistem komputer mini
b. Workstation terhubung ke server
c. Komputer mobile

Latihan

1.14 Dalam keadaan seperti apa pengguna menjadi lebih baik


menggunakan timesharing
sistem daripada PC atau workstation pengguna tunggal?
1.15 Jelaskan perbedaan antara multiprocessing simetris dan asimetris.
Apa tiga keunggulan dan satu kelemahan multiprosesor sistem?
1.16 Bagaimana sistem berkelompok berbeda dari sistem multiprosesor?
apa yang
diperlukan untuk dua mesin milik cluster untuk bekerja sama untuk
menyediakan
layanan yang sangat tersedia?
1.17 Pertimbangkan sebuah cluster komputasi yang terdiri dari dua node
yang menjalankan sebuah database. Jelaskan dua cara di mana
perangkat lunak cluster dapat dikelola akses ke data pada disk. Diskusikan
manfaat dan kerugiannya setiap.
1.18 Bagaimana komputer jaringan berbeda dari komputer pribadi
tradisional?
Jelaskan beberapa skenario penggunaan yang menguntungkannya
gunakan komputer jaringan
1.19 Apa tujuan dari interrupts? Bagaimana interupsi berbeda dari sebuah
perangkap? Bisakah perangkap dihasilkan secara sengaja oleh program
pengguna? Jika ya, untuk apa tujuannya?
1.20 Akses memori langsung digunakan untuk perangkat I / O
berkecepatan tinggi agar dapat hindari meningkatkan beban eksekusi CPU.
Sebuah. Bagaimana antarmuka CPU dengan perangkat untuk
mengkoordinasikannya transfer?
b. Bagaimana CPU mengetahui kapan operasi memori selesai?
c. CPU diijinkan untuk menjalankan program lain sementara DMA
Pengontrol sedang mentransfer data. Apakah proses ini mengganggu
pelaksanaan program pengguna? Jika ya, jelaskan bentuk apa gangguan
yang disebabkan.
1.21 Beberapa sistem komputer tidak menyediakan cara pengoperasian
yang istimewa di perangkat keras Mungkinkah membangun sistem operasi
yang aman? sistem komputer ini? Berikan argumen keduanya dan itu tidak
benar mungkin.
1.22 Banyak sistem SMP memiliki tingkat cache yang berbeda; satu
tingkat adalah lokal
setiap inti pemrosesan, dan tingkat lain dibagi di antara semua pemrosesan
inti Mengapa sistem caching didesain seperti ini?
1.23 Pertimbangkan sebuah sistem SMP yang serupa dengan yang
ditunjukkan pada Gambar 1.6. Menjelaskan dengan contoh bagaimana data
yang berada di memori sebenarnya bisa memiliki nilai yang berbeda di
masing-masing cache lokal.
1.24 Diskusikan, dengan contoh, bagaimana masalah menjaga koherensi
data cache memanifestasikan dirinya dalam lingkungan pemrosesan
berikut:
a. Sistem single-processor
b. Sistem multiprosesor
c. Sistem terdistribusi

Bab 1 Pendahuluan

1.25 Jelaskan mekanisme untuk menegakkan perlindungan memori agar


mencegah program memodifikasi memori yang terkait dengan yang lain
program.
1.26 Konfigurasi jaringan-LAN atau WAN-paling sesuai dengan lingkungan
berikut
a. Serikat mahasiswa kampus
b. Beberapa lokasi kampus di seluruh sistem universitas di seluruh negara
bagian
c. Sebuah lingkungan
1.27 Jelaskan beberapa tantangan dalam merancang sistem operasi untuk
perangkat mobile dibandingkan dengan perancangan sistem operasi untuk
tradisional PC.
1.28 Apa keuntungan dari sistem peer-to-peer melalui client-server
sistem?
1.29 Jelaskan beberapa aplikasi terdistribusi yang sesuai untuk sebuah
sistem peer-to-peer.
1.30 Identifikasi beberapa kelebihan dan beberapa kelemahan open-source
sistem operasi. Sertakan jenis orang yang akan menemukannya masing-
masing aspek menjadi keuntungan atau kerugian.

Catatan Pustaka
[Brookshear (2012)] memberikan gambaran umum tentang ilmu komputer
secara umum.
Cakupan menyeluruh struktur data dapat ditemukan di [Cormen et al.
(2009)].
[Russinovich dan Solomon (2009)] memberikan gambaran umum tentang
MicrosoftWindows
dan mencakup detail teknis yang cukup besar tentang sistem internal dan
komponen. [McDougall dan Mauro (2007)] menutupi bagian dalam Solaris
sistem operasi. Mac OS X internal dibahas di [Singh (2007)]. [Cinta (2010)]
memberikan gambaran umum tentang sistem operasi Linux dan detailnya
tentang struktur data yang digunakan di kernel Linux.
Banyak buku teks umum mencakup sistem operasi, termasuk [Stallings
(2011)], [Deitel dkk. (2004)], dan [Tanenbaum (2007)]. [Kurose dan Ross
(2013)] memberikan gambaran umum jaringan komputer, termasuk
diskusi sistem client-server dan peer-to-peer. [Tarkoma dan Lagerspetz
(2011)] memeriksa beberapa sistem operasi mobile yang berbeda,
termasuk Android dan Android iOS [Hennessy and Patterson (2012)]
menyediakan cakupan sistem dan bus I / O dan arsitektur sistem pada
umumnya. [Bryant dan O'Hallaron (2010)] berikan
gambaran menyeluruh tentang sistem komputer dari sudut pandang
komputer programmer. Rincian set instruksi Intel 64 dan mode privilege
dapat dilakukan ditemukan di [Intel (2011)].
Sejarah sumber terbuka dan manfaat dan tantangannya muncul di
[Raymond (1999)]. Free Software Foundation telah menerbitkan
filosofinya di http://www.gnu.org/philosophy/free-software-for-
freedom.html. Terbuka sumber Mac OS X tersedia dari http:
//www.apple.com/opensource/.
Daftar Pustaka

Wikipedia memiliki entri informatif tentang kontribusi Richard Stallman di


http://en.wikipedia.org/wiki/Richard Stallman. Kode sumber Multics
tersedia di http://web.mit.edu/multics-history/ source / Multics Internet
Server / Multics sources.html.

Bibliografi

[Brookshear (2012)] J. G. Brookshear, Ilmu Komputer: Gambaran Umum,


Kesebelas Edisi, Addison-Wesley (2012). [Bryant dan O'Hallaron (2010)] R.
Bryant dan D. O'Hallaron, Sistem Komputer: Perspektif Programer, Edisi
Kedua, Addison-Wesley (2010).
[Cormen et al. (2009)] T. H. Cormen, C. E. Leiserson, R. L. Rivest, dan C.
Stein, Pengantar Algoritma, Edisi Ketiga, MIT Press (2009). [Deitel dkk.
(2004)] H. Deitel, P. Deitel, dan D. Choffnes, Sistem Operasi, Edisi Ketiga,
Prentice Hall (2004). [Hennessy and Patterson (2012)] J. Hennessy dan D.
Patterson, Arsitektur Komputer: Pendekatan Kuantitatif, Edisi Kelima,
Morgan Kaufmann (2012). [Intel (2011)] Perangkat Lunak Intel 64 dan IA-
32 Arsitektur, Gabungan Volume: 1, 2A, 2B, 3A dan 3B. Intel Corporation
(2011). [Kurose dan Ross (2013)] J. Kurose dan K. Ross, Jaringan
Komputer-A Top - Down Approach, Edisi Keenam, Addison-Wesley (2013).
[Love (2010)] R. Cinta, Pengembangan Kernel Linux, Edisi Ketiga,
Pengembang Perpustakaan (2010). [McDougall dan Mauro (2007)] R.
McDougall dan J. Mauro, Solaris Internals, Edisi Kedua, Prentice Hall
(2007). [Raymond (1999)] E. S. Raymond, Katedral dan Bazaar, O'Reilly &
Associates (1999). [Russinovich dan Solomon (2009)] M. E. Russinovich
dan D. A. Solomon, Windows Internal: Termasuk Windows Server 2008 dan
Windows Vista, Edisi Kelima, Microsoft Press (2009). [Singh (2007)] A.
Singh, Mac OS X Internal: Pendekatan Sistem, Addison-
Wesley (2007). [Stallings (2011)] W. Stallings, Sistem Operasi, Edisi
Ketujuh, Prentice Hall
(2011). [Tanenbaum (2007)] A. S. Tanenbaum, Sistem Operasi Modern,
Edisi Ketiga,
Prentice Hall (2007). [Tarkoma dan Lagerspetz (2011)] S. Tarkoma dan E.
Lagerspetz, "Mengarsir Mobile Computing Chasm: Platform dan Runtimes ",
Komputer IEEE, Volume 44, (2011), halaman 22-28.